docs: the instruction set says what the tree actually does - #110
Conversation
|
The red check is not from this PR —
Reproduced on It passes locally from a warm cache, which is why This PR touches two Go files, both comment-only ( Not repinning here. Worth noting for the gate itself: |
CLAUDE.md and README.md had both drifted from the code they describe. CLAUDE.md called this repo a rewrite of terraform-plugin-framework-codegen, which is its own module path: the -1 suffix that made the sentence true was dropped when the repos were renamed. It fixed the release contract on a moving v1 tag the repo has never cut, contradicting docs/releasing.md and every caller pin. It retired twelve words, nine of which are in use — three inside approved glossary definitions, six as ordinary English. Adds what a contributor needed and could not find: the four already-decided library absences, the test naming convention, the third hygiene rule, the generated files that must not be hand-edited, and the rule that a claim about generated output is measured against a generated tree rather than by grepping this repo for a symbol an emitter builds with Sprintf. README gains install instructions, how provider repos consume the toolkit, the backends, the four docs it never listed and a licence line; its repo table now names repos that exist, its arrow starts at config validate, and mapping.md's behaviour table is thirteen rows rather than twelve. release.yml told callers to pin @v1. Five comments carrying v1 war stories are reworded to what and why, which is what CLAUDE.md asks of every other comment. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
383f3a1 to
029728f
Compare
CLAUDE.mdis the only file that claims authority over the others, and several of its load-bearing rules no longer matched the code they govern.README.mdhad drifted too, and had gaps a reader could not work around.Everything here is documentation and comments. No behaviour changes.
What was wrong
terraform-plugin-framework-codegen, no suffix) is the failed attempt it replaces"-1suffix that made the sentence true was dropped when the repos were renamed —terraform-plugin-framework-codegen-1,tfpfgen-provider-template-1andterraform-provider-thousandeyes-1all redirect to their unsuffixed names now.v1tag; breaking changes cutv2"v0.x, latestv0.7.0, withv0in sync.docs/releasing.mdand every caller pin already sayv0;docs/contract.mdsaidv1in one spot and@v0everywhere else.cassette,blueprintanddoctorare absent.probe,rehearsalandscenarioappear inside approved glossary definitions;docs/rehearsal.mdandtestdata/curated/exist;patch-mergeis an approved extension value; andrecording,sweep,draft,merge,factsare ordinary English throughout. The list banned domain nouns but read as banning words.scripts/repo_hygiene_gate.shenforces three. The third is: no tracked file over 1 MiB.docs/contract.mdhas one global 0/1/2 table, not a per-verb contract..github/workflows/release.ymltold callers to pin@v1, which no longer exists.What was missing
CLAUDE.md now records the four library absences that were already decided and nowhere written down — no OpenAPI library (
internal/specmodelreadsyaml.Nodedirectly, because document order is load-bearing for the SDK generators), no test framework, no HTTP client, no mocking library — plus the test naming convention, and a Generated and measured files section coveringdocs/config.md,docs/emittance_tracker.mdand the authored/derived split.Verifying claims gains the rule the handoff audit demonstrates the need for: a claim about generated output is measured against a generated tree, never by grepping this repo.
internal/emit/render_constraints.gospells a bound asfmt.Sprintf("%sBetween(%v, %v)", …), so grepping here forint64validator.Betweenfinds nothing while the generator emits it.README gains install instructions (there were none), how provider repos consume the toolkit, the backends as a named concept, the four
docs/files it never listed, and a licence line. Its repo table now names repos that exist and marks theopenapi-generatorproof provider as not yet stood up; the pipeline arrow starts atconfig validate; anddocs/mapping.md's behaviour table is thirteen rows, not twelve.Five comments carrying v1 war stories are reworded to what-and-why, which is what CLAUDE.md asks of every other comment in the tree.
Verification
Left for you
terraform-provider-thousandeyesandtfpfgen-provider-templatestill calldeploymenttheory/terraform-plugin-framework-codegen-1/...@v0. It resolves only through GitHub's rename redirect, which breaks the day anything claims the old name. Fixing that is a change in those repos.internal/", which is whatcoverage_gate.shdoes — say if you meant a narrower set.🤖 Generated with Claude Code