Repository navigation
feat(vibe): Require traced decisions for new data directions and API writes - #302
Merged
Merged
Conversation
…writes - A write into another tool's data covers its files and its API or IPC, such as a method that changes that tool's stored state. A supported interface lowers the risk but does not remove the need for a traced human decision. The guardrails reviewer's Mechanisms check, the change and requirements workers, the plan-review prompt and planning step 13 now say so. - Add a Data direction readiness item to cl-execute's planning-and-gates.md: a new direction of data flow between surfaces needs a cited human decision or approved document traced per Decision provenance; an earlier restricting document is a conflict, and with no traced decision it is a numbered human decision. The plan-review prompt mirrors it in one DECISIONS line. - vibe: the requirements worker flags a new data direction in its brief, the change worker builds only along allowed directions and logs an untraced one as an Engineering decision, and the guardrails reviewer treats one in the diff as a blocking engineering decision finding. - cl-analyze: the EXTREME rule counts a decision as documented only when it traces to a human statement, and Decision provenance and Data direction readiness checks point to cl-execute's definitions and join the result's Readiness list. - Release vibe 1.0.51. Testing: node --test over every plugin test file (398 pass), pytest plugins/ (2335 pass, 3 skipped), ruff and pyright clean, manifest tests pass. The new contract tests fail against main's versions of the docs. Risks: Reviewers may flag ordinary reads as new data directions; the check only asks for the traced decision, so the cost is a longer review.
… result - Add Decision provenance and Data direction to the Readiness list of cl-execute's CL Execute Gate Result, so the gate reports the items it checks. - The data direction contract case pins both lines. Testing: node --test over every plugin test file (398 pass), pytest plugins/vibe (271 pass); the new assertions fail without the lines. Risks: None identified
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.
Purpose
#298 and #299 required a cited human decision for a write into another tool's data, but both described that write as a write into its files. A write through the tool's API or IPC, for example a method that changes its stored state, read as not covered. Neither change had a check for a new direction of data flow between surfaces, and cl-analyze could still treat a Decisions section as a documented decision when it rated risk.
What changed
planning-and-gates.mdgets a Data direction readiness item, defined once: a new direction of data flow between surfaces needs a cited human decision or approved document traced per Decision provenance. An earlier document that restricts the direction counts as a conflict. With no traced decision, it is a numbered human decision. The plan-review prompt mirrors it in one DECISIONS line, and the rest of that prompt is unchanged.data direction (new)in its brief, with its source oruntraced. The change worker builds only along directions that are already allowed and logs an untraced one as anEngineering decision. The guardrails reviewer treats an untraced new direction in the diff as a blockingengineering decisionfinding. None of this goes to the vibe person, and the build loop still has no plan review.Commands run
The new
test_vibe_data_direction_contract.pyand the newskill-contract.test.mjscase fail when run against main's versions of the six changed docs. One existing assertion intest_vibe_mechanism_provenance_contract.pypinned "each write into files another tool owns". It now pins the wider wording, which is the intended change.