fix(spec): Conventions §Artefact-tiers — add re-frame2-resources (016) row#4960
Merged
Merged
Conversation
…rs per-feature table The per-feature artefact table omitted re-frame2-resources (Spec 016), which every other location already treats as a named per-feature artefact (spec/README Capability layer, spec/Ownership day8/re-frame2-resources row, the reserved-keys tables, 001-Registration's late-bound :resource kind). The table is the canonical per-feature enumeration, so the omission was drift. Add the resources row tagged (post-v1) per the bead's preferred option (a) so the table stays the single complete enumeration, annotated as the richest such artefact (three runtime subsystems + three registrar kinds). Adjust the tier caption to acknowledge post-v1 inclusion, and add a one-line note that other post-v1 capabilities (e.g. Stories/007, which has no fixed coordinate yet) follow the same convention once their coordinate settles. Refs: rf2-9ck5il
mike-thompson-day8
added a commit
that referenced
this pull request
Jun 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The drift
spec/Conventions.md§"Artefact tiers" — the per-feature table — is the canonical "what are the per-feature optional-capability artefacts" enumeration (machines / flows / routing / http / ssr / schemas / epoch). It omitted re-frame2-resources (Spec 016), even though resources is treated as a named per-feature artefact in every other location:spec/README.mdCapability layer lists 016-Resources as an optional capability.spec/Ownership.mdnamesday8/re-frame2-resources(post-v1 optional artefact) on the 016 row.spec/Conventions.mdreserved-keys tables already mark:rf.runtime/resources+:rf.runtime/work-ledger+:rf.runtime/mutationsas the post-v1 Resources artefact.spec/001-Registration.mdmarks the:resourceregistry kind late-bound byday8/re-frame2-resources.So the table — the single complete per-feature enumeration — was the one place out of step.
Resolution — bead's preferred option (a)
The table caption says the CLJS reference's published artefact set; resources is post-v1 (not yet published). Rather than leave it out (which keeps the table incomplete) I took the bead's preferred option (a): include post-v1 artefacts with an explicit "(post-v1)" annotation so the table stays the single complete enumeration.
Changes (5 insertions / 2 deletions, table-only):
re-frame2-resources(post-v1) → 016, annotated as the richest per-feature artefact: it alone contributes three runtime subsystems (:rf.runtime/resources/:rf.runtime/work-ledger/:rf.runtime/mutations) and three registrar kinds (:resource/:mutation/:resource-scope). Facts cross-checked against Ownership's 016 row and 001-Registration's:resource/:mutation/:resource-scoperows.Stories (007) stays a note
007-Stories is also post-v1, but unlike resources it has no fixed artefact coordinate in Ownership (just "post-v1"). Under option (a) Stories would need a coordinate decision first — out of scope here. So resources gets the annotated row; Stories is covered by the one-line note ("e.g. Stories (007) is a post-v1 capability without a fixed artefact coordinate yet, so it earns a row here once one is assigned") — no Stories coordinate invented.
Secondary (glossary) — skipped
I skipped the optional "optional capability = per-feature artefact" glossary line. The equivalence is not a triangulation the reader is forced to make at this point in the doc, and adding it would read as gold-plating on a hot-zone surgical edit. The new note already ties "post-v1 capability" → "earns a row," which is the only place the equivalence was load-bearing for this change.
Out of scope (untouched)
The downstream count inconsistencies (setup-skill "ten artefacts", "6 per-feature splits" phrasing in late-bind / bundle-isolation) are separate beads — not chased here.
Gate results
Ran the doc/spec gates the repo wires for
spec/changes (per.github/workflows/docs.yml), all PASS:check_doc_slugs.py(link target + anchor validator) — self-test + live: PASScheck_runtime_subsystem_grading.py— self-test + live: PASScheck_inject_cofx_residue.py— self-test + live: PASScheck_retired_composition_vocab.py— self-test + live: PASScheck_retired_image_keys.py— self-test + live: PASScheck_ep_status_sync.py— PASSspec/→docs/specthenmkdocs build --strict— PASS (exit 0; only pre-existing INFO-level relative-link notes aboutexamples/andthe-mayor-method/, none from this edit; no WARNING fired).Table-only edit; no CLJS / spec-conformance gate keys off Conventions table content.
Refs: rf2-9ck5il