docs(distribution): document copy-adoption and cross-doc reconciliation governance - #123
Merged
Merged
Conversation
…on governance Add distribution/governance-process.md recording two standing process requirements outside the sync-manifest.yml reconciliation loop: a copied prose file must carry a back-link to its canonical source and be covered by a periodic drift-check, and a change to a normative conventions/ doc requires a cross-reference check confirming no other doc now contradicts it before merge. Names the interim self-review owner given required_approving_review_count stays at 0 org-wide, and the future automated-check path once the cross-plugin drift check exists. conventions/README.md's copy-adoption bullet and distribution/README.md now point at the new doc. conventions/ was reviewed end to end for deterministic (mechanically checkable) rules not yet backed by a tracked component; every such rule already points to its owning component (biome/tsconfig, ruff/pyright, dotnet-analysis, gitleaks, comment-hygiene, lychee) or is explicitly deferred pending live-consumer admission evidence per docs/component-lifecycle.md (container-supply-chain.md's Docker/OSV checks). No sync-manifest.yml entry was added; forcing one without admission evidence would violate that same lifecycle contract. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
|
Claude finished @kyle-sexton's task in 1s —— View job I'll analyze this and get back to you. |
kyle-sexton
marked this pull request as ready for review
July 15, 2026 19:57
|
Claude finished @kyle-sexton's task in 2s —— View job I'll analyze this and get back to you. |
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.
Summary
Closes decisions #27, #63, and #65 from the Decisions Log (evidence/rationale: https://claude.ai/code/artifact/3160ae0e-c02f-4619-8de3-60d73faa1100).
#63 metadata-standards-copy-vs-cite-doctrine
Decision: keep the "copy" adoption path, require back-link + drift-check.
Adds
distribution/governance-process.md.conventions/README.mdalready documents two adoption paths for reasoning-only prose — copy into the consumer's tree, or point at this repo. The copy path stays available (prose has no runtime coupling to enforce reconciliation the waysync-manifest.ymldoes), but a copy now carries two mandatory requirements:reference-dont-duplicate.mdalready prescribes for the "Expose" file role.documentation-and-citations.mdalready requires for time-bound external claims.The doc is explicit that this is distinct from a
managedsync-manifest.ymlcomponent, which already reconciles automatically and deliberately carries no downstream receipt — the back-link/drift-check burden applies only where nothing else keeps a copy current.#65 naming-cross-doc-reconciliation-process-ownership
Decision: establish a standing cross-reference review step for normative-doc changes.
Same doc adds the standing process step: before a change to a normative doc (
naming.md,process/issue-tracker.md,review/code-quality.md, and any other file in the catalog stating a rule another doc cites or assumes) merges, a cross-reference check confirms no other doc now contradicts it.Ownership is named explicitly rather than left implicit:
required_approving_review_countstays at0org-wide (decision #11, single-maintainer), so there is no independent blocking reviewer to gate this. The step is documented as a self-review checklist item the author performs before merge, with a documented future automation path — extending the periodic cross-plugin-source consistency check (decision #37, forclaude-code-plugins) to this repo's own normative docs once that check exists, so the control stops depending solely on author diligence.conventions/README.mdgets a new "Changing a normative file" pointer to this requirement;distribution/README.mdgets a pointer alongside its existingTHREAT-MODEL.mdreference.#27 tooling-gov-conventions-graduate-to-enforced
Decision: graduate mechanically-checkable rules into sync-manifest-tracked components.
Reviewed every file under
conventions/againstenforceability-tiers.md's deterministic/detect-then-judge/reasoning-only split. Finding: no ungraduated deterministic rule exists to graduate. Every deterministic (mechanically-checkable) rule already points to its owning component instead of restating it:sync-manifest.yml?review/security.md)gitleaksreview/code-quality.md)comment-hygienecomment-hygiene-action)documentation-and-citations.md)lychee)review/overlays/typescript.md)biome,tsconfigextends) adoption perdistribution/README.md's ownership model, not exact materializationreview/overlays/python.md)ruff,pyrightreview/overlays/dotnet.md)dotnet-analysiscontainer-supply-chain.md)docs/component-lifecycle.md; graduating it without that evidence would violate the same lifecycle contractreview/code-quality.md)pr-title.yml)ci-workflows, per README.md's ownership boundariesnaming.md), label/issue-tracker usage (process/issue-tracker.md), duplication (reference-dont-duplicate.md)No
sync-manifest.ymlchange is included. The one adjacent orphan noticed in passing —components/lefthook-typescriptexists, is fully built, but is not registered insync-manifest.ymlfor any target — is tooling infrastructure, not aconventions/rule, and assigning it to a target'smanaged:list is a separate adoption decision requiring its own admission evidence; flagging it here for a follow-up rather than folding it into this PR.Test plan
npx markdownlint-cli2— 0 errors across the full repo (71 files, including the new/changed docs)lychee— 21/21 links OK on the changed files (0 errors)typos— clean on the changed fileslefthookpre-commit (typos, editorconfig, gitleaks, markdownlint) — all passed at commit time🤖 Generated with Claude Code