Repository navigation
chore(repo): adopt engineering-conventions 0.7.0 and enforce every family - #164
Merged
Merged
Conversation
…mily Bump the conventions pin to 0.7.0 and fix every finding (ADR 0037): declare each kind family's schema as an interface delivered by its bundle, add the site output and the contracts:* tasks, ship the conventions release record as release.json in each kind family archive (our record moves to specification.json), attest releases through SHA256SUMS, publish drafts as the release App, block release tag creation with the App as the one bypass actor, and title release pull requests chore(release). check:conventions now runs with --fail-on warning, and CFG-01..CFG-08 and RUL-09 retire in favour of CONF and GHA-15. Also correct listing §9, which still described v1 as unreleased. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Justin Merrell <merrelljustin@gmail.com>
Contributor
You own some of the paths this pull request changes@justinmerrell, this pull request touches paths you are a code owner for. Your authorship waives the code-owner review requirement — GitHub cannot request a review from a pull request's author — so nobody is automatically notified about these changes:
Double-check they are intentional. If you want a second pair of eyes, request a review manually. (Automated notice from the repository-codeowners-notice workflow — ADR 0015.) |
This was referenced Oct 1, 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.
Adopts engineering-conventions 0.7.0 and enforces every family (ADR 0037). Closes #163.
Checked against 0.7.0,
mainreported nine findings. This PR fixes all of them, andconventions check --fail-on warningnow reports none.What changes
github:musher-dev/engineering-conventions0.6.1 → 0.7.0, relocked. The REPO-04 waiver is dropped (ADOPT-06)..repo/outputs.tomlmoves toschema_version = 2.contractoutputs become[[interfaces]]: one<family>-schemaper kind family,json-schema,gated, delivered by<family>-release.kind = "site", published bydeploy.yml.contracts:*tasks (IFACE-11..13):taskfiles/contracts.Taskfile.ymlwraps the existing checks.checkrunscheck:schema,check:generatedandcheck:examples.breakingrunscheck:compat.bundlerunsrelease:stage.task contracts:check contracts:breaking ci:test.release.ymlstages throughcontracts:bundle, falling back torelease:stagefor pre-0037 tags.release.json, validated againstrelease-record.schema.json.specification.json, with the same content. Core carries onlyspecification.json.release.ymlreads either name.chore(release): …, andreleaseis added to every copy of the scope list.creationrule, with the musher-release App (4991671) as its one bypass actor.SHA256SUMSis written and uploaded, andactions/attestruns withsubject-checksums.check:conventionsruns--fail-on warning, with no[adoption]table. CFG-01..08 retire in favour of CONF-01..09, and RUL-09 in favour of GHA-15. CFG-09 and RUL-01..08 stay.Deviations from #163
compatibility = "gated", not"versioned".versionedneeds.vN.in each file name (IFACE-07), but here the major is the directory. A break needs a newv<N>, which is exactly whatgatedpromises.delivered_bytakes one value, so each interface is delivered by its family bundle, which carries the record. The site is its own output.Before merging: apply the tag ruleset
A creation rule without the App bypass would stop release-please from tagging. Apply the new ruleset first:
What the listing release should show
chore(release): release listing 1.0.1and passescheck:title.listing.schema.json,listing-v1.0.1.tar.gzandSHA256SUMS, with one attestation viasubject-checksums.listing-v1/release.json(the conventions record) andlisting-v1/specification.json.BEGIN_COMMIT_OVERRIDE
chore(repo): adopt engineering-conventions 0.7.0 and enforce every family
docs(listing): state that closing a known debt needs a new major now that v1 is released
END_COMMIT_OVERRIDE
🤖 Generated with Claude Code