docs: align ADRs and the model-driven implementation with the proposal - #103
Merged
Merged
Conversation
…ith the revised proposal
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.
Part of #78. Follows #102, the revised Task 0 proposal, which is now the leading description of the project.
What this branch does
A review of
mainagainst the revised proposal found three kinds of drift, and this branch aligns them. No model decision inspec/v1changes.The proposal's shape of the model-driven implementation. The proposal defines two metamodels, not four: Project Intent as source and the Resolved Deployment as target, with the Deliverable Set as the generated files. It names the TypeScript code the production implementation and the EMF code the model-driven implementation, compares the two on validation, dependency resolution, errors and generated resources, and has the Xtext-generated editor run the OCL validators during editing.
emf/docs/architecture.md, the model-driven register and ADRs0108to0113said otherwise; they now match, each changed ADR carrying an amendment note.0109changed its decision and is renamed to0109-source-and-target-metamodels-are-hand-written.md.The parity contract.
docs/architecture.md#the-parity-contractstates what binds whom. Parsed intent, diagnostics, generated files and the source metamodel's descriptor bind both implementations.resolved.jsonbinds the production implementation only, and a new oracle,expected/dependencies.json, carries the resolved dependency edges both must agree on. ADR0105carries the amendment.Damage left by #100. The rename turned the ADR sense of "domain" into "project" in
CLAUDE.md("one directory per project", "the project table", "another project", "theemfproject inscripts/lint-adrs.ts") and inREADME.md, and capitalised "Project repository" in0065. All are restored.The decisions later tickets inherit
These are judgement calls where the two implementations deliberately differ:
spec/v1's three layers intact while matching the proposal's two metamodels.resolved.json(Specify the trace and check chapter 16's three properties on it #48); QVTo does not have to emit it.emf/until the transformation covers a case. They are test input, never oracles.Tickets. 18 open issues were aligned on GitHub: #78 (retitled for the production and model-driven names), #41, #42, #48, #56, #80, #82, #85, #86, #87 (now the target metamodel only, retitled), #88, #90, #91 (trace dropped, retitled), #92, #93, #94 (retitled), #95 and #96. #56 records which of its items #101 and #102 already superseded.
Verification
npm run verifyexit 0:ADR lint: 93 files clean,link lint: 172 files clean, 305 tests passed.node scripts/lint-adrs.ts emfreports9 files clean.main(Sections/01to06) againstCLAUDE.md,README.md,CONTEXT.md,docs/architecture.md,emf/, the ADR registers and every open issue that names a metamodel, an oracle, the trace or the editor.