Repository navigation
Docs: lock Jim causal roadmap - #135
Conversation
|
Warning Review limit reached
More reviews will be available in 28 minutes and 46 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more credits in the billing tab to continue. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (4)
WalkthroughDocumentation-only PR that synchronizes Jim's product promise and causal loop messaging across README, VISION, and BEARING; advances WF-0105 to active status and positions WF-0108 as the next pinned design cycle; adds comprehensive WF-0108 design document specifying ChangesProduct Roadmap and Vision Coherence
WF-0108 Causal Command Provenance Design Document
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Possibly related issues
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 28b19eb495
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/design/0108-causal-command-provenance-surface.md`:
- Around line 337-357: The spec lists two invalid states ("Command event claims
a mutation without a receipt posture" and "Command event claims a range without
a basis") but doesn't mandate enforcement—add explicit validation in the model
layer: implement sealed/validated constructors or factory functions for the
CommandEvent and Range types (the entities driving the Parsed→Resolved→Applied
state machine) that throw or return typed errors when a mutation lacks a
receiptPosture or when a Range lacks a basis, and add runtime guards/schema
checks (e.g., in CommandEvent.fromPayload or Range.validate) so the Slice 1
model code deterministically rejects these cases and surfaces diagnostics rather
than silently tolerating them; update the spec text to name those
constructors/validators and the error types so Slice 0 preflight can confirm
detection is possible.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: a7858819-608e-4f3b-9577-4fcbf4a4b183
📒 Files selected for processing (6)
CHANGELOG.mdREADME.mdVISION.mddocs/BEARING.mddocs/design/0105-vim-power-moves-causal-parity.mddocs/design/0108-causal-command-provenance-surface.md
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
- GitHub Check: test / cycle-proofs
- GitHub Check: test / misc-fast
- GitHub Check: test / workspace-ui
- GitHub Check: test / contract-api
- GitHub Check: test / title-rendering
- GitHub Check: test / echo-authority
- GitHub Check: test / docs-release
- GitHub Check: release-gate / jedit-echo
🧰 Additional context used
📓 Path-based instructions (3)
**
⚙️ CodeRabbit configuration file
**: # jedit Agent ContractGit Safety
- Never amend commits. Make a new commit.
- Never rebase unless the user explicitly approves it after a concrete explanation.
- Never force git operations.
- Draft pull requests are allowed only for design-cycle kickoff or active cycle
work. Convert them to ready before merge. If draft PRs are unavailable, use a
normal PR with thework-in-progresslabel.Quality Doctrine
These are hard repo rules, not suggestions:
- No
any.- No
unknown.- Hexagonal architecture, strict.
- Encoding and decoding happen only at the boundary, inside a port/adapter.
- One file equals one runtime truth.
- Runtime truth beats compile-time theater.
- No ad hoc string comparison in core logic. Prefer
instanceof, numeric tags, symbols, or explicit runtime objects.- No magic strings.
- No magic numbers.
- SOLID.
- DRY.
- DI.
- Red to green.
- Tests are spec.
- Agent-first.
- No file over 500 lines of code.
Structure
ARCHITECTURE.mdis the canonical repo architecture doctrine.docs/BEARING.mdrecords the current execution gravity.docs/method/process.mdis the canonical cycle workflow.docs/method/roadmap-planning.mddefines release-gate, roadmap, slice, and
proof policy for multi-cycle planning.docs/design/TEMPLATE.mdis the required template for full cycle designs.docs/design/0034-design-cycle-template-and-lifecycle.mdrecords the policy
decision that made executable design docs official.docs/design/0024-jedit-powered-by-echo-release-gate.mdis the completed
baseline plan for the first thirty slices proving jedit has an installed
package/evidence path while Echo remains generic.docs/design/0025-echo-application-hosting-pattern.mdis the completed
post-release-pressure ten-slice plan for proving the reusable Echo
application-hosting pattern before applying it to Graft, Think, or other apps.docs/design/0026-echo-hosting-hardening-first-twenty.mdis th...
Files:
CHANGELOG.mdVISION.mddocs/design/0105-vim-power-moves-causal-parity.mdREADME.mddocs/design/0108-causal-command-provenance-surface.mddocs/BEARING.md
docs/design/*.md
📄 CodeRabbit inference engine (AGENTS.md)
Use the template from
docs/design/TEMPLATE.mdfor all full cycle designs
Files:
docs/design/0105-vim-power-moves-causal-parity.mddocs/design/0108-causal-command-provenance-surface.md
docs/BEARING.md
📄 CodeRabbit inference engine (AGENTS.md)
Record current execution gravity in
docs/BEARING.md
Files:
docs/BEARING.md
🪛 LanguageTool
VISION.md
[style] ~249-~249: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...t make Echo know jedit product nouns. - Do not make jedit know Echo substrate coor...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~250-~250: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...edit know Echo substrate coordinates. - Do not publish packages just because the w...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~251-~251: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ust because the witness ritual works. - Do not prepare a public editor release unt...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
docs/design/0108-causal-command-provenance-surface.md
[style] ~190-~190: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ... Full Vim parity. - Full visual mode. - Full macro replay. - Full causal undo. - Dur...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~191-~191: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ull visual mode. - Full macro replay. - Full causal undo. - Durable replay completio...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[grammar] ~282-~282: Ensure spelling is correct
Context: .... ## Runtime / API Contract Contract: JeditCommandEvent. Initial event shape: ```text JeditComma...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[style] ~385-~385: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...mmand keys ran? - What syntax parsed? - What mode was active? - What basis or readin...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~386-~386: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...yntax parsed? - What mode was active? - What basis or reading was used? - What targe...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~387-~387: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ve? - What basis or reading was used? - What target resolved? - What range or range ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~388-~388: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ing was used? - What target resolved? - What range or range set changed? - What regi...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~389-~389: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...d? - What range or range set changed? - What register changed? - What receipt/result...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~390-~390: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...set changed? - What register changed? - What receipt/result reading was available? -...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~391-~391: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...receipt/result reading was available? - What obstruction occurred? - What short huma...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
[style] ~392-~392: Three successive sentences begin with the same word. Consider rewording the sentence or use a thesaurus to find a synonym.
Context: ...ailable? - What obstruction occurred? - What short human explanation did Jim show? ...
(ENGLISH_WORD_REPEAT_BEGINNING_RULE)
🔇 Additional comments (19)
VISION.md (1)
245-255: 💤 Low valueNon-goals list style: governance doctrine or prose repetition?
Lines 248–255 establish constraints as a "Do not X" governance list, which is valid doctrine style. However, LanguageTool flagged lines 249–251 for three successive identical sentence structures:
- "Do not make Echo know jedit product nouns."
- "Do not make jedit know Echo substrate coordinates."
- "Do not publish packages just because the witness ritual works."
This repetition is intentional if the list is pure governance constraints (all negations). If this is design prose meant to flow, the three-in-a-row structure becomes awkward.
Recommendation: Keep this list as-is if it's intended as a non-negotiable constraint checklist (analogous to the "Non-Negotiables" section at the bottom of BEARING.md). If it's meant as flowing prose, consider restructuring one or two items to break the repetition while preserving the "Do not" constraint signal.
Source: Linters/SAST tools
docs/BEARING.md (2)
173-174: ⚡ Quick winDeferred rewrite bullets now explicitly separate command-provenance from broad-edit proof gates.
Splitting the single "causal or transactional edit operations" bullet into two:
- "causal command provenance beyond the landed core operators"
- "previewable broad edits"
…clarifies that WF-0108 (command provenance) and WF-0110 (search/substitute strand preview) are distinct proof requirements for the full rewrite decision. This reduces ambiguity about what proof is needed before the rewrite starts.
141-148: Next Cycle Anchors table: link consistency is solid; issue URL liveness still needs GitHub check.
docs/BEARING.md’s Next Cycle Anchors URLs use#131/#132/#133/#134, and those same issue links also appear indocs/design/0108-causal-command-provenance-surface.mdfor the corresponding WF cycles.- Public web lookup doesn’t show these issue numbers indexed for
flyingrobots/jedit, so the “URL resolves to an actual issue” part can’t be trusted without checking GitHub directly (private/unindexed issues are plausible).WIP: docs/BEARING.md issue URL liveness check
- Confirm each linked GitHub issue exists/resolves in the repo’s tracker at merge time
- If issues are intentionally private/internal, switch links to the agreed internal reference format
0% (0/0 slices)
WIP: docs/BEARING.md issue URL liveness check
- Next Cycle Anchors link liveness
🙈 OFF-ROADMAP
docs/design/0105-vim-power-moves-causal-parity.md (1)
34-40: ⚡ Quick winClean status transition and narrative reframing: WF-0105 from sole signpost to substrate roadmap.
The status change from
drafttoactive(line 6, date 2026-06-13) combined with the narrative update explicitly repositions WF-0105:
- No longer the only active product signpost
- Remains the broad Vim/Jim power-move substrate
- WF-0108 is now the next pinned cycle
- Future WF-0105 slices chosen by provenance/preview/replay/trust criteria (aligned with Jim's product promise)
This is disciplined roadmap doctrine. The subordination is clear without erasing WF-0105's continued role.
CHANGELOG.md (1)
5-7: 💤 Low valueChangelog entry: concise and stakeholder-focused, but missing the product promise.
The Unreleased entry captures the roadmap repin (signature loop + WF-0108 + release-planning shift) but omits two important coordination facts:
- The product promise ("explainable, recoverable, reviewable") is now the north star for all downstream decisions.
- WF-0105 transitioned from draft to active (stakeholders may expect this to be called out).
Recommendation (low priority): Consider expanding the entry to include the product promise and WF-0105 status change, since this PR establishes both. Current wording focuses on roadmap structure (the loop and next cycle) rather than product doctrine (the promise and execution ladder). A two-sentence entry could cover both:
"Pinned Jim's product promise (
explainable, recoverable, reviewable) and established the signature causal loop (explain -> preview -> admit -> recover) as the roadmap ordering mechanism. Promoted WF-0105 to active status and added WF-0108 for Jim Command Provenance And:whyas the next pinned product cycle."But current wording is acceptable as-is if the changelog prioritizes external roadmap visibility over internal promise doctrine.
README.md (1)
207-245: Product ladder names match VISION.md and docs/BEARING.md (items 1–7) with no cross-doc drift.The 7 active product ladder goalpost titles appear in VISION.md “## Execution sequence” and docs/BEARING.md with the same names and ordering, and README’s “Next implementation start” aligns with BEARING’s immediate ordering and deferred-rewrite guidance.
docs/design/0108-causal-command-provenance-surface.md (13)
1-11: LGTM on front matter and issue linkage.Front matter is complete and correct; issue
#131is properly cited. ✓
19-98: Product roadmap lock, decision summary, and version ladder are architecturally sound.The product promise (explainable, recoverable, reviewable) and signature loop (explain → preview → admit → recover) are clear and grounded. The version ladder correctly disclaims advisory-only status (line 84), and the command grammar (
:why,:preview,:admit,:history,:yankfrom,:explain) is well-motivated and free of magic strings. Goalpost ordering defers full Vim parity and agent autonomy until causality is proven. ✓
100-166: Sponsored human, sponsored agent, hill, and current truth are precisely scoped.Sponsored human wants trust and repeatability (lines 100-105); sponsored agent wants structured JSON facts (107-112). The hill (line 114-118) is narrow: explain the last edit through
:whyand JSON witness, without terminal scraping. Current truth section anchors the design in existing substrate (Echo session flow, Vim runtime, search/motion facts, incomplete undo). References to prior design anchors (WF-0105, WF-0106, Echo History, causal event model, text-edit algebra) ground the work. ✓
168-181: Scope is laser-focused and non-goals are honest.In scope: trust preflight,
JeditCommandEventmodel, provenance for five commands (ciw/dw/d%/gUap/n|N), lower-mode summary,:whydispatch, JSON witness, typed obstruction. Out of scope: public release, jim alias, full Vim parity, visual mode, macros, undo, replay, timeline, AI, plugins, Git, title rendering. This is disciplined boundary-setting. ✓
199-277: UX flow, mockups, and accessibility posture are well-articulated.The user journey (lines 214-226) traces raw keys → parsed syntax → resolved target → mutation/obstruction → receipt/reading → summary →
:whydetail → JSON witness. This is honest to the phase model and event lifecycle. Wide and narrow terminal mockups (lines 228-268) show the principle: lower-mode summary names the last meaningful command;:whydetail command expands it. Accessibility posture (lines 273-278) mandates model facts independent of color/layout/geometry; no visual-only explanations. Keyboard-first interaction required. ✓
280-336: Runtime/API contract and lower modes are grounded in existing codebase patterns.The
JeditCommandEventcore shape (lines 287-304) itemizes eventId, keys, command, mode, operator, motionOrTextObject, count, register, basisReadingId, targetKind, rangeSet, registerEffect, receiptId, resultReadingId, obstruction, summary. This is architecturally sound: command-owned fields (keys, command, mode, operator, motion, count, register) are joined with Echo-owned fields (basisReadingId, receiptId, resultReadingId) and obstruction facts. The three-phase model (lines 307-314: raw keys → parsed syntax → resolved target → mutation vs obstruction) aligns with existingapplyResolvedMotionobstruction checks invim-command-executor.ts(context snippet 1). Lower-mode requirements (lines 321-335) are explicit: JSON witness, no-color summary, narrow summary, honest posture when evidence is unavailable, keyboard access. ✓Cross-codebase alignment: The proposed witness posture (JSON with command facts for agent assertion) mirrors the existing
ProductionTextSessionWitnessReportpattern (context snippet 2: applied vs obstructed with status/stage/issue). Design correctly positions command provenance as a Jim-owned layer over Echo's witness layer. ✓
337-392: Data/state model and agent inspectability posture are rigorous.The state machine (lines 348-357) traces Parsed → Resolved → Applied/Obstructed → Summarized → Explained. Invalid-state invariant is explicit (line 343): "Command event claims a mutation without a receipt posture, or claims a range without a basis." Source of truth is Echo readings/receipts plus jedit-owned syntax/resolution state; derived state is lower-mode summary and
:whydetail. Reset behavior: new meaningful command supersedes prior summary. Determinism is declared (line 346).Agent inspectability checklist (lines 383-392) enumerates nine explicit facts: command keys, parsed syntax, mode, basis, resolved target, range/range-set, register change, receipt/result posture, obstruction reason. This is comprehensive and testable. ✓
Minor style note: LanguageTool flags the bulleted "What" question repetition (lines 383-392) as word-repeat. This is intentional parallelism for specification clarity and is acceptable. No action needed.
394-495: Roadmap system objects and linked invariants are well-stratified.Four systems are cleanly separated:
- System A (Command Provenance): Enables
:why,:explain, register provenance, repeat explanation, evidence lens, agent edit explanation. Core:JeditCommandEvent. ✓- System B (Basis-Bound Views): Enables historical preview, time-travel yank, stale diagnostics, search results, panes. Core:
JeditBasisViewwith basisId/currentHeadId/viewPosture/sourceEvidence/readBudget/returnCommand. Product rule (line 437-440) is critical: "Viewing a historical or proposal basis must never mutate current head unless an explicit admission command runs." ✓- System C (Result Sets / Proposal Strands): Enables search results, substitute preview, global preview, formatter preview, agent proposals, admit-selected, macro dry-run. Cores:
JeditResultSet,JeditProposalStrand,JeditAdmissionSelection. ✓- System D (Retained Material Provenance): Enables time-travel yank, register provenance, undo fragments, historical paste, macro replay. Core:
JeditRetainedTextMaterialwith materialRef/digest/sourceBasis/sourceRange/producingEvent/retentionPosture. Constraint (line 483): "Missing retention is an obstruction, not a fallback invitation." ✓Linked invariants (lines 485-495) are well-chosen: tests are spec, runtime truth > compile-time theater, design becomes repo truth, files/previews are projections, Echo authority is external, unsupported work is final, retry is explicit input, semantic distinction between buffers/panes/panels/lenses, main surface stays quiet. These are architectural guardrails. ✓
497-545: Design alternatives are candid; Option C decision is justified.Option A (full timeline first): Rejected as too large, spectacle-risk, hard to keep honest before historical projection/durable replay. Option B (JSON-only): Rejected as invisible to users, leaves Jim's differentiator hidden. Option C (command provenance +
:whyfirst): Chosen as narrow enough to land, turns existing Vim/Echo/receipt work into product shape, shared facts through different projections, foundation for future systems. Acknowledged cons: discipline needed to avoid debug-spew, trust preflight required. This is thoughtful and honest risk-taking. ✓
546-577: Implementation slices are correct-order and tests-first discipline is present.Slice 0 (preflight) comes first, blocking implementation if gaps are found (line 650-651 risk mitigation). Slices 1-6 then proceed: model definition (Slice 1), provenance emission (Slice 2), lower-mode rendering (Slice 3),
:whydispatch (Slice 4), JSON witness (Slice 5), obstruction posture (Slice 6).Tests-to-write-first section is explicit:
- Behavior tests: trust preflight, command event model stability, runtime vs provenance parity, rendering at wide/narrow,
:whydetail, JSON witness, obstruction. ✓- Command assertions: ciw/dw/d%/gUap/n|N must report text-object/target/range/register/receipt/result facts.
:whywith no event reports calm obstruction. ✓Documentation/process test (line 581) verifies roadmap/signpost docs link WF-0108 as active. ✓
Minor style note: LanguageTool flags "Full visual mode / Full macro replay / Full causal undo" repetition in non-goals as word-repeat. This is intentional parallelism in a bulleted list and is acceptable.
583-609: Acceptance criteria and validation plan are complete and executable.Acceptance criteria (lines 585-597):
- Preflight names blockers ✓
- ≥5 commands emit stable facts ✓
- Lower-mode summary is informative without overwhelming ✓
:whyexposes structured facts ✓- JSON witness matches
:whyfacts ✓- Obstruction/unavailable/stale cases return typed facts ✓
- CI and local validation green ✓
Validation plan (lines 603-608) specifies exact commands:
npm run build node --test --test-concurrency=1 spec/<focused-command-provenance>.spec.mjs npm run quality npx --yes markdownlint-cli2 docs/BEARING.md README.md VISION.md docs/design/0108-causal-command-provenance-surface.md git diff --checkThis is executable and matches the PR validation already run (per PR objectives). ✓
611-652: Playback/witness targets and risks/mitigations are grounded in current reality.Playback targets (lines 613-634) correctly distinguish aspirational (
:jim demo.txtonce alias earned) from current (:npm run dev -- demo.txt). Witness script namejedit-command-provenance-witness.mjsis labeled "target, not current runtime truth" (line 634). ✓Risks (lines 638-652):
- Provenance noise violating quiet-editor invariant → mitigation: compact summaries, details behind explicit command. ✓
- Event facts overclaiming Echo evidence → mitigation: separate receipt/result from syntax facts. ✓
- First commands skip user-facing trust gaps → mitigation: run Slice 0 preflight first. ✓
- Search/motion evidence may not cover
/and?→ mitigation: move into trust gate if blocking demo. ✓These are known, concrete risks with proportionate mitigations. No hand-waving.
654-688: Follow-on debt and retrospective placeholders are well-organized.Follow-on issues anchor the roadmap:
- WF-0109 Historical Basis Preview (
#134) ✓- WF-0110 Search Sets And Substitute Strand Preview (
#132) ✓- WF-0111 Historical Yank And Register Provenance (
#133) ✓Additional debt items: macro dry-run, causal marks,
:explainrange, register detail, dot-repeat explanation, stale diagnostics, agent proposals. All are credible follow-on work, not hidden in the cycle. ✓Retrospective placeholder (lines 669-687) is correctly formatted for post-implementation fill-in. PR link placeholder awaits merge. ✓
Self-Code Review@codex please sanity-check these findings before this PR is treated as clean.
Review Notes
|
|
Codex Review: Didn't find any major issues. Swish! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
Code Lawyer Activity SummaryAll discovered PR review threads were processed one issue at a time with a RED regression, GREEN fix, VERIFY pass, and one commit per issue. No additional self-discovered issues remained after the post-fix self-audit.
Verification
|
Summary
explain -> preview -> admit -> recover.WF-0108 - Jim Command Provenance And :whyas the next design cycle, linked to WF-0108: Jim Command Provenance And :why #131.Refs #131
Refs #132
Refs #133
Refs #134
Validation
npx --yes markdownlint-cli2 CHANGELOG.md README.md VISION.md docs/BEARING.md docs/design/0105-vim-power-moves-causal-parity.md docs/design/0108-causal-command-provenance-surface.mdgit diff --checknpm run --silent qualitynode --test --test-concurrency=1 spec/design-cycle-policy.spec.mjs spec/vim-power-parity-matrix.spec.mjs spec/vim-power-target-usability-fixtures.spec.mjs