Repository navigation
Model the two layers this project shipped and did not model - #52
Merged
Merged
Conversation
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.
v0.2 added Intent provenance and Outcome verification to the engine, the specification,
the reference digest, both skills and the explorer — and to no Flow. A project that
documents a capability everywhere except in the model it keeps of itself has demonstrated
the failure it sells a cure for.
Why nothing caught it
INV-023 requires a changed file to map to a Node.
traceos/engine.pywas already mapped,by assertions about
impact,coverageandobserve. Addingvalidate_intentsandvalidate_outcome_verificationto that file satisfied the ratchet completely while thebehaviour existed nowhere in the graph.
Decay did not cover it either, and for a reason worth writing down: now that decay is
symbol-granular, a symbol nobody cites cannot go stale. The precision that removed
93% of spurious decay also removed the accidental coverage a whole-file hash used to give
— the same trade as #44's, one level up. Filed as #51, and §13.0 now says outright that
INV-023 answers file membership, not behavioural coverage, so a reader stops mistaking
one for the other.
The correction
flow.account— cite the record, check that it still resolves, run the check an outcomedeclares, record a refutation. Three assertions, nine evidence references, all observed:
assert.account.intent-is-provenanceassert.account.outcome-declares-its-checkassert.account.refuted-is-an-errorIt is a separate flow rather than nodes bolted onto
flow.reconcile, becausereconciliation compares the model against the code and this compares a behaviour against
the decision that asked for it and against what happened. Folding them together would
have buried the one step where evidence can say the model is wrong.
The flow's own Intent section records why it was nearly not modelled at all — the model
of the project carries the account of its own lapse rather than a tidy version.
State of the self-model
The one remaining uncertain assertion is
assert.implement.not-ours, and it should be:implementation is explicitly not this project's, so the flow modelling it is a declared
stub.
flow.implementis also the one flow with no Intent, reported atinfo— which isthe correct reading rather than a gap to paper over.
39/39 groups, 185/185 assertions,
check_docs28/28, ratchet exit 0.