cclaw-cli 0.14.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/content/archive-command.js +6 -6
  2. package/dist/content/contracts.js +1 -1
  3. package/dist/content/diff-command.js +2 -2
  4. package/dist/content/feature-command.js +7 -7
  5. package/dist/content/harnesses-doc.js +13 -9
  6. package/dist/content/hooks.js +2 -2
  7. package/dist/content/learnings.d.ts +0 -1
  8. package/dist/content/learnings.js +0 -9
  9. package/dist/content/next-command.js +7 -7
  10. package/dist/content/ops-command.js +6 -6
  11. package/dist/content/retro-command.js +3 -3
  12. package/dist/content/rewind-command.js +5 -5
  13. package/dist/content/skills.js +0 -2
  14. package/dist/content/stage-common-guidance.js +14 -6
  15. package/dist/content/stage-schema.d.ts +2 -108
  16. package/dist/content/stage-schema.js +7 -1515
  17. package/dist/content/stages/brainstorm.d.ts +2 -0
  18. package/dist/content/stages/brainstorm.js +136 -0
  19. package/dist/content/stages/design.d.ts +2 -0
  20. package/dist/content/stages/design.js +215 -0
  21. package/dist/content/stages/index.d.ts +8 -0
  22. package/dist/content/stages/index.js +11 -0
  23. package/dist/content/stages/plan.d.ts +2 -0
  24. package/dist/content/stages/plan.js +146 -0
  25. package/dist/content/stages/review.d.ts +2 -0
  26. package/dist/content/stages/review.js +197 -0
  27. package/dist/content/stages/schema-types.d.ts +94 -0
  28. package/dist/content/stages/schema-types.js +1 -0
  29. package/dist/content/stages/scope.d.ts +2 -0
  30. package/dist/content/stages/scope.js +188 -0
  31. package/dist/content/stages/ship.d.ts +2 -0
  32. package/dist/content/stages/ship.js +142 -0
  33. package/dist/content/stages/spec.d.ts +2 -0
  34. package/dist/content/stages/spec.js +136 -0
  35. package/dist/content/stages/tdd.d.ts +2 -0
  36. package/dist/content/stages/tdd.js +184 -0
  37. package/dist/content/status-command.d.ts +2 -2
  38. package/dist/content/status-command.js +13 -13
  39. package/dist/content/tdd-log-command.js +6 -6
  40. package/dist/content/templates.d.ts +1 -1
  41. package/dist/content/templates.js +2 -2
  42. package/dist/content/tree-command.js +3 -3
  43. package/dist/content/utility-skills.js +1 -1
  44. package/dist/content/view-command.js +3 -3
  45. package/dist/doctor-registry.js +22 -4
  46. package/dist/doctor.js +8 -32
  47. package/dist/harness-adapters.d.ts +1 -0
  48. package/dist/harness-adapters.js +3 -63
  49. package/dist/install.js +4 -10
  50. package/dist/policy.js +1 -1
  51. package/dist/runs.js +1 -1
  52. package/dist/types.d.ts +1 -1
  53. package/package.json +1 -1
@@ -0,0 +1,136 @@
1
+ // ---------------------------------------------------------------------------
2
+ // SPEC
3
+ // ---------------------------------------------------------------------------
4
+ export const SPEC = {
5
+ stage: "spec",
6
+ skillFolder: "specification-authoring",
7
+ skillName: "specification-authoring",
8
+ skillDescription: "Specification stage. Produce measurable, testable requirements without ambiguity.",
9
+ hardGate: "Do NOT plan tasks or write implementation code. This stage produces a specification document only. Every requirement must be expressed in observable, testable terms.",
10
+ ironLaw: "EVERY ACCEPTANCE CRITERION MUST BE OBSERVABLE AND TESTABLE — OR IT DOES NOT EXIST.",
11
+ purpose: "Create a testable specification aligned with approved design and constraints.",
12
+ whenToUse: [
13
+ "After design lock",
14
+ "Before planning and implementation",
15
+ "When acceptance criteria must be measurable"
16
+ ],
17
+ whenNotToUse: [
18
+ "Design decisions are still unresolved or disputed",
19
+ "The task is implementation-only cleanup with unchanged behavior",
20
+ "You still need to challenge scope rather than author requirements"
21
+ ],
22
+ checklist: [
23
+ "Read upstream — load design artifact and scope contract. Cross-reference architecture decisions.",
24
+ "Define measurable acceptance criteria — each criterion must be observable and falsifiable. No vague adjectives.",
25
+ "Capture edge cases — for each criterion, define at least one boundary condition and one error condition.",
26
+ "Document constraints and assumptions — regulatory, system, integration, and performance boundaries. Surface implicit assumptions explicitly.",
27
+ "Confirm testability — for each acceptance criterion, describe the test that would prove it. If untestable, rewrite the criterion.",
28
+ "Write spec artifact and request user approval — wait for explicit confirmation before proceeding."
29
+ ],
30
+ interactionProtocol: [
31
+ "Express each requirement in observable terms.",
32
+ "Resolve ambiguity before moving to plan. Challenge vague language.",
33
+ "Capture assumptions explicitly, not implicitly.",
34
+ "Require user confirmation on the written spec. **STOP.** Do NOT proceed to plan until user approves.",
35
+ "For each criterion, ask: how would you test this? If the answer is unclear, rewrite.",
36
+ "When encountering ambiguity, classify it before acting: (A) ask user for missing info, (B) enumerate interpretations and pick one with justification, (C) propose hypothesis with validation path. Do NOT silently resolve ambiguity."
37
+ ],
38
+ process: [
39
+ "Define measurable acceptance criteria.",
40
+ "Capture constraints, assumptions, and edge cases.",
41
+ "Build testability map: criterion -> test description.",
42
+ "Confirm testability for each criterion.",
43
+ "Write spec artifact and request approval."
44
+ ],
45
+ requiredGates: [
46
+ { id: "spec_acceptance_measurable", description: "Acceptance criteria are measurable and observable." },
47
+ { id: "spec_edge_cases_documented", description: "Boundary and error conditions are defined for each criterion." },
48
+ { id: "spec_constraints_documented", description: "Constraints and assumptions are explicit." },
49
+ { id: "spec_testability_confirmed", description: "Each criterion has a described test method." },
50
+ { id: "spec_user_approved", description: "User approved the final written spec." }
51
+ ],
52
+ requiredEvidence: [
53
+ "Artifact written to `.cclaw/artifacts/04-spec.md`.",
54
+ "Each acceptance criterion maps to a testable outcome.",
55
+ "Edge cases documented per criterion.",
56
+ "Approval marker captured in artifact."
57
+ ],
58
+ inputs: ["design artifact", "business constraints", "quality requirements"],
59
+ requiredContext: [
60
+ "design lock baseline",
61
+ "regulatory or system boundaries",
62
+ "integration constraints"
63
+ ],
64
+ outputs: [
65
+ "measurable specification",
66
+ "acceptance-to-testability map",
67
+ "approved spec artifact"
68
+ ],
69
+ blockers: [
70
+ "non-measurable criteria",
71
+ "constraints missing",
72
+ "open ambiguities remain"
73
+ ],
74
+ exitCriteria: [
75
+ "spec approved by user",
76
+ "required gates marked satisfied",
77
+ "plan-ready acceptance mapping exists",
78
+ "testability confirmed for all criteria"
79
+ ],
80
+ antiPatterns: [
81
+ "High-level goals without measurable outcomes",
82
+ "Implicit assumptions",
83
+ "Proceeding to plan before approval",
84
+ "Using vague adjectives (fast, intuitive, robust) without thresholds"
85
+ ],
86
+ redFlags: [
87
+ "Criteria use vague language (fast, intuitive, robust) without thresholds",
88
+ "No explicit assumptions section",
89
+ "No approval record",
90
+ "No testability mapping",
91
+ "Edge cases missing or deferred"
92
+ ],
93
+ policyNeedles: ["Acceptance Criteria", "Constraints", "Testability", "approved spec", "Edge Cases"],
94
+ artifactFile: "04-spec.md",
95
+ next: "plan",
96
+ reviewSections: [
97
+ {
98
+ title: "Acceptance Criteria Audit",
99
+ evaluationPoints: [
100
+ "Is every criterion observable (can you point to evidence of pass/fail)?",
101
+ "Is every criterion measurable (numeric threshold or boolean outcome)?",
102
+ "Is every criterion falsifiable (can you describe what failure looks like)?",
103
+ "Does every criterion trace to a design decision (Design Decision Ref)?",
104
+ "Are there any vague adjectives (fast, intuitive, robust) without thresholds?"
105
+ ],
106
+ stopGate: true
107
+ },
108
+ {
109
+ title: "Testability Audit",
110
+ evaluationPoints: [
111
+ "Does every criterion have a concrete test description in the Testability Map?",
112
+ "Does every test specify a verification approach (unit, integration, e2e, manual)?",
113
+ "Does every test include a runnable command or manual steps?",
114
+ "Are edge cases (boundary + error) defined for every criterion?",
115
+ "Can you run every verification command right now and get a meaningful result?"
116
+ ],
117
+ stopGate: true
118
+ }
119
+ ],
120
+ completionStatus: ["DONE", "DONE_WITH_CONCERNS", "BLOCKED"],
121
+ crossStageTrace: {
122
+ readsFrom: [".cclaw/artifacts/03-design.md", ".cclaw/artifacts/02-scope.md"],
123
+ writesTo: [".cclaw/artifacts/04-spec.md"],
124
+ traceabilityRule: "Every acceptance criterion must trace to a design decision. Every downstream plan task must trace to a spec criterion."
125
+ },
126
+ artifactValidation: [
127
+ { section: "Acceptance Criteria", required: true, validationRule: "Each criterion is observable, measurable, and falsifiable. Table must include a Requirement Ref column linking to R# IDs in 02-scope.md and a Design Decision Ref column tracing back to design artifact. AC IDs (AC-1, AC-2…) are stable across revisions — dropped ACs stay with Priority `DROPPED`." },
128
+ { section: "Edge Cases", required: true, validationRule: "At least one boundary and one error condition per criterion." },
129
+ { section: "Constraints and Assumptions", required: true, validationRule: "All implicit assumptions surfaced. Constraints have sources." },
130
+ { section: "Testability Map", required: true, validationRule: "Each criterion maps to a concrete test description with verification approach (unit, integration, e2e, manual) and command or manual steps." },
131
+ { section: "Vague to Fixed", required: false, validationRule: "If present: table with original vague wording and rewritten observable/testable version for each ambiguous requirement." },
132
+ { section: "Non-Functional Requirements", required: false, validationRule: "If present: performance thresholds, security constraints, scalability limits, reliability targets with measurable values." },
133
+ { section: "Interface Contracts", required: false, validationRule: "If present: for each module boundary list produces (outputs) and consumes (inputs) with data types." },
134
+ { section: "Approval", required: true, validationRule: "Explicit user approval marker present." }
135
+ ]
136
+ };
@@ -0,0 +1,2 @@
1
+ import type { StageSchemaInput } from "./schema-types.js";
2
+ export declare const TDD: StageSchemaInput;
@@ -0,0 +1,184 @@
1
+ // ---------------------------------------------------------------------------
2
+ // TDD — RED → GREEN → REFACTOR cycle (merged test + build)
3
+ // ---------------------------------------------------------------------------
4
+ export const TDD = {
5
+ stage: "tdd",
6
+ skillFolder: "test-driven-development",
7
+ skillName: "test-driven-development",
8
+ skillDescription: "Full TDD cycle: RED (failing tests), GREEN (minimal implementation), REFACTOR (cleanup). One plan slice at a time with strict traceability.",
9
+ hardGate: "Do NOT merge, ship, or skip review. Follow RED → GREEN → REFACTOR strictly for each plan slice. Do NOT write implementation code before RED tests exist. Do NOT skip the REFACTOR step.",
10
+ ironLaw: "NO PRODUCTION CODE WITHOUT A FAILING TEST FIRST — THE RED FAILURE IS THE SPEC.",
11
+ purpose: "Implement features through the TDD cycle: write failing tests, make them pass with minimal code, then refactor.",
12
+ whenToUse: [
13
+ "After plan confirmation",
14
+ "For every behavior change in scope",
15
+ "Before review stage"
16
+ ],
17
+ whenNotToUse: [
18
+ "Plan approval is still pending WAIT_FOR_CONFIRM",
19
+ "The change is docs-only and does not alter behavior",
20
+ "The stage intent is review/ship sign-off rather than implementation"
21
+ ],
22
+ checklist: [
23
+ "Select plan slice — pick one task from the plan. Do not batch multiple tasks.",
24
+ "Map to acceptance criterion — identify the specific spec criterion this test proves.",
25
+ "RED: Write behavior-focused test — test the expected behavior, not implementation details. Tests MUST fail.",
26
+ "RED: Capture failure output — copy the exact failure output as RED evidence. Record in artifact.",
27
+ "GREEN: Minimal implementation — write the smallest code change that makes the RED tests pass. No extra features.",
28
+ "GREEN: Run full suite — execute ALL tests, not just the ones you wrote. The full suite must be GREEN.",
29
+ "GREEN: Verify no regressions — if any existing test breaks, fix the regression before proceeding.",
30
+ "REFACTOR: Improve code quality — without changing behavior. Document what you changed and why.",
31
+ "Record evidence — capture RED failure, GREEN output, and REFACTOR notes in the TDD artifact.",
32
+ "Annotate traceability — link to plan task ID and spec criterion.",
33
+ "Repeat for each slice — return to step 1 for the next plan slice."
34
+ ],
35
+ interactionProtocol: [
36
+ "Pick one planned slice at a time.",
37
+ "Write behavior-focused tests before changing implementation (RED).",
38
+ "Capture and store failing output as RED evidence.",
39
+ "Apply minimal change to satisfy RED tests (GREEN).",
40
+ "Run full suite, not partial checks, for GREEN validation.",
41
+ "Refactor without changing behavior and document rationale (REFACTOR).",
42
+ "Stop if regressions appear and fix before proceeding.",
43
+ "If a test passes unexpectedly, investigate: does the behavior already exist, or is the test wrong?"
44
+ ],
45
+ process: [
46
+ "Select slice and map to acceptance criterion.",
47
+ "Write test(s) that fail for expected reason (RED).",
48
+ "Run tests and capture failure output.",
49
+ "Implement smallest change needed for GREEN.",
50
+ "Run full tests and build checks.",
51
+ "Perform refactor pass preserving behavior.",
52
+ "Record RED, GREEN, and REFACTOR evidence in artifact.",
53
+ "Annotate traceability to plan task and spec criterion."
54
+ ],
55
+ requiredGates: [
56
+ { id: "tdd_red_test_written", description: "Failing tests exist before implementation changes." },
57
+ { id: "tdd_red_failure_captured", description: "Failure output is captured as evidence." },
58
+ { id: "tdd_trace_to_acceptance", description: "RED tests trace to explicit acceptance criteria." },
59
+ { id: "tdd_red_failure_reason_verified", description: "Failure is for the expected reason, not an unrelated error." },
60
+ { id: "tdd_green_full_suite", description: "Full relevant suite passes in GREEN state." },
61
+ { id: "tdd_refactor_completed", description: "Refactor pass completed with behavior preservation verified." },
62
+ { id: "tdd_refactor_notes_written", description: "Refactor decisions and outcomes are documented." },
63
+ { id: "tdd_traceable_to_plan", description: "Change traceability to plan slice is explicit." }
64
+ ],
65
+ requiredEvidence: [
66
+ "Artifact updated at `.cclaw/artifacts/06-tdd.md` with RED, GREEN, and REFACTOR sections.",
67
+ "Failing command output captured (RED).",
68
+ "Full test/build output recorded (GREEN).",
69
+ "Acceptance mapping documented.",
70
+ "Failure reason analysis recorded.",
71
+ "Refactor rationale captured.",
72
+ "Traceability to task identifier is documented."
73
+ ],
74
+ inputs: ["approved plan slice", "spec acceptance criterion", "test harness configuration", "coding standards and constraints"],
75
+ requiredContext: ["plan artifact", "spec artifact", "existing test patterns"],
76
+ outputs: ["failing test set", "passing implementation", "refactor evidence", "review-ready change set"],
77
+ blockers: [
78
+ "tests pass before behavior change (RED failure missing)",
79
+ "full suite not green",
80
+ "behavior changed during refactor",
81
+ "no evidence recorded"
82
+ ],
83
+ exitCriteria: [
84
+ "RED evidence exists and is traceable",
85
+ "GREEN evidence captured with full suite pass",
86
+ "REFACTOR evidence captured",
87
+ "required gates marked satisfied",
88
+ "traceability annotated"
89
+ ],
90
+ antiPatterns: [
91
+ "Writing code before failing test",
92
+ "Asserting implementation details instead of behavior",
93
+ "Big-bang implementation across multiple slices",
94
+ "Partial test runs presented as GREEN",
95
+ "Skipping evidence capture",
96
+ "Undocumented refactor changes",
97
+ "Adding features beyond what RED tests require"
98
+ ],
99
+ redFlags: [
100
+ "No failing test output (RED missing)",
101
+ "Implementation edits appear before RED evidence",
102
+ "No full-suite GREEN evidence",
103
+ "No refactor notes",
104
+ "Multiple tasks implemented in one pass without justification",
105
+ "Files changed outside current slice scope"
106
+ ],
107
+ policyNeedles: ["RED", "GREEN", "REFACTOR", "failing test", "full test suite", "acceptance criteria", "traceable to plan slice"],
108
+ artifactFile: "06-tdd.md",
109
+ next: "review",
110
+ reviewSections: [
111
+ {
112
+ title: "RED Evidence Audit",
113
+ evaluationPoints: [
114
+ "Does every slice have a captured failing test output?",
115
+ "Does each failure reason match the expected missing behavior (not a typo or config error)?",
116
+ "Were tests written BEFORE any production code for that slice?",
117
+ "Does each RED test assert observable behavior, not implementation details?",
118
+ "Is there a test for each acceptance criterion mapped in the plan?"
119
+ ],
120
+ stopGate: true
121
+ },
122
+ {
123
+ title: "GREEN/REFACTOR Audit",
124
+ evaluationPoints: [
125
+ "Does GREEN evidence show a FULL suite pass (not partial)?",
126
+ "Is the GREEN implementation minimal — no features beyond what RED tests require?",
127
+ "Does the REFACTOR step preserve all existing behavior (no new failures)?",
128
+ "Are REFACTOR notes documented with rationale?",
129
+ "Is traceability complete: every change links to plan task ID and spec criterion?"
130
+ ],
131
+ stopGate: true
132
+ },
133
+ {
134
+ title: "Test Pyramid + Size Audit",
135
+ evaluationPoints: [
136
+ "Is the tests-added count skewed toward Small (unit) tests, with Medium and Large used only when a real boundary justifies the cost?",
137
+ "Does every newly added test declare a size class (Small / Medium / Large) — either inline in the test file or in the TDD artifact table?",
138
+ "Are Large tests reserved for genuine end-to-end user journeys (not substitutes for unit coverage)?",
139
+ "Has the slice avoided using Medium/Large tests to paper over testability problems that should be fixed at the design layer?"
140
+ ],
141
+ stopGate: false
142
+ },
143
+ {
144
+ title: "Prove-It Reproduction (bug-fix slices)",
145
+ evaluationPoints: [
146
+ "Does the artifact identify this slice as a bug fix, and if so, include a reproduction test checked in alongside the fix?",
147
+ "Is there captured RED evidence from running the reproduction WITHOUT the fix applied?",
148
+ "Is there captured GREEN evidence from the same reproduction AFTER the fix was applied?",
149
+ "Is there a note confirming the reproduction test fails again if the fix is reverted (or equivalent evidence that the test is actually pinned to this fix)?"
150
+ ],
151
+ stopGate: false
152
+ },
153
+ {
154
+ title: "State-over-Interaction + Beyoncé Coverage",
155
+ evaluationPoints: [
156
+ "Do assertions target observable state (return values, persisted data, HTTP responses, logs) rather than which internal helpers were called?",
157
+ "Are mocks/spies used only at true trust boundaries (network, filesystem, time, external services), not for module-internal collaborators?",
158
+ "For every public surface touched in this slice (exported API, CLI flag, config key, env var, exit code, schema field) — does at least one test observe it?",
159
+ "If a bug or review finding revealed an uncovered surface, was a test added alongside the fix, not just the code change?",
160
+ "Are interaction-style assertions (e.g. `toHaveBeenCalledWith` without a state assertion) justified by an explicit boundary comment, or flagged for follow-up?"
161
+ ],
162
+ stopGate: false
163
+ }
164
+ ],
165
+ completionStatus: ["DONE", "DONE_WITH_CONCERNS", "BLOCKED"],
166
+ crossStageTrace: {
167
+ readsFrom: [".cclaw/artifacts/05-plan.md", ".cclaw/artifacts/04-spec.md", ".cclaw/artifacts/03-design.md"],
168
+ writesTo: [".cclaw/artifacts/06-tdd.md"],
169
+ traceabilityRule: "Every RED test traces to a plan task. Every GREEN change traces to a RED test. Every plan task traces to a spec criterion. Design decisions inform test strategy. Evidence chain must be unbroken."
170
+ },
171
+ artifactValidation: [
172
+ { section: "RED Evidence", required: true, validationRule: "Failing test output captured per slice." },
173
+ { section: "Acceptance Mapping", required: true, validationRule: "Each RED test links to a plan task and spec criterion." },
174
+ { section: "Failure Analysis", required: true, validationRule: "Failure reason matches expected missing behavior." },
175
+ { section: "GREEN Evidence", required: true, validationRule: "Full suite pass output captured." },
176
+ { section: "REFACTOR Notes", required: true, validationRule: "What changed, why, behavior preservation confirmed." },
177
+ { section: "Traceability", required: true, validationRule: "Plan task ID and spec criterion linked." },
178
+ { section: "Verification Ladder", required: false, validationRule: "If present: per-slice verification tier (static, command, behavioral, human) with evidence for highest tier reached." },
179
+ { section: "Coverage Targets", required: false, validationRule: "If present: per-module or per-code-type coverage thresholds with current values and measurement commands." },
180
+ { section: "Test Pyramid Shape", required: false, validationRule: "If present: per-slice count of Small/Medium/Large tests added, to let reviewers verify the suite is not drifting top-heavy." },
181
+ { section: "Prove-It Reproduction", required: false, validationRule: "Required for bug-fix slices: original failing reproduction test (RED without fix), passing output with fix (GREEN), and a note confirming the test fails again if the fix is reverted." }
182
+ ],
183
+ waveExecutionAllowed: true
184
+ };
@@ -1,9 +1,9 @@
1
1
  /**
2
- * Command contract for /cc-status — a read-only snapshot command.
2
+ * Command contract for /cc-view status — a read-only snapshot command.
3
3
  * Does not mutate state. Always safe to run.
4
4
  */
5
5
  export declare function statusCommandContract(): string;
6
6
  /**
7
- * Skill body for /cc-status — read-only status snapshot.
7
+ * Skill body for /cc-view status — read-only status snapshot.
8
8
  */
9
9
  export declare function statusCommandSkillMarkdown(): string;
@@ -23,13 +23,13 @@ function snapshotPath() {
23
23
  return `${RUNTIME_ROOT}/state/flow-state.snapshot.json`;
24
24
  }
25
25
  /**
26
- * Command contract for /cc-status — a read-only snapshot command.
26
+ * Command contract for /cc-view status — a read-only snapshot command.
27
27
  * Does not mutate state. Always safe to run.
28
28
  */
29
29
  export function statusCommandContract() {
30
30
  const flowPath = flowStatePath();
31
31
  const delegationPath = delegationLogPath();
32
- return `# /cc-status
32
+ return `# /cc-view status
33
33
 
34
34
  ## Purpose
35
35
 
@@ -41,10 +41,10 @@ time to answer "where are we?" without advancing the flow.
41
41
 
42
42
  ## HARD-GATE
43
43
 
44
- - **Do not** use \`/cc-status\` output to infer gate completion for decisions — cite
44
+ - **Do not** use \`/cc-view status\` output to infer gate completion for decisions — cite
45
45
  artifact evidence via \`/cc-next\` when advancing.
46
46
  - **Do not** mutate \`${flowPath}\` or delegation log from this command.
47
- - **Do not** rewrite \`${snapshotPath()}\` from this command (use \`/cc-diff\`).
47
+ - **Do not** rewrite \`${snapshotPath()}\` from this command (use \`/cc-view diff\`).
48
48
 
49
49
  ## Algorithm
50
50
 
@@ -59,7 +59,7 @@ time to answer "where are we?" without advancing the flow.
59
59
  - Compute the duration as \`now - signalTimestamp\` and render compactly: \`<X>m\`, \`<X>h<Y>m\`, or \`<X>d<Y>h\`.
60
60
  - If no signal exists, render \`(unknown)\`.
61
61
  5. Optionally read **\`${snapshotPath()}\`** to compute gate delta versus prior baseline:
62
- - If missing or invalid, render \`delta: (baseline unavailable; run /cc-diff)\`.
62
+ - If missing or invalid, render \`delta: (baseline unavailable; run /cc-view diff)\`.
63
63
  6. Read the top of **\`${knowledgePath}\`** — surface up to 3 most recent entries
64
64
  (by trailing timestamp or source marker).
65
65
  7. Emit the visual status block described below. Do **not** load any stage skill.
@@ -83,14 +83,14 @@ cclaw status
83
83
  - <latest entry summary>
84
84
  - <second entry summary>
85
85
  - <third entry summary>
86
- next: /cc-next · /cc-tree · /cc-diff
86
+ next: /cc-next · /cc-view tree · /cc-view diff
87
87
  \`\`\`
88
88
 
89
89
  ## Anti-patterns
90
90
 
91
91
  - Inventing gate status without reading \`${flowPath}\`.
92
92
  - Reporting delegations as satisfied when the log says \`pending\`.
93
- - Advancing the stage from \`/cc-status\` — progression belongs to \`/cc-next\`.
93
+ - Advancing the stage from \`/cc-view status\` — progression belongs to \`/cc-next\`.
94
94
  - Hiding stale stages; stale markers must be surfaced directly in the status line.
95
95
 
96
96
  ## Primary skill
@@ -99,7 +99,7 @@ cclaw status
99
99
  `;
100
100
  }
101
101
  /**
102
- * Skill body for /cc-status — read-only status snapshot.
102
+ * Skill body for /cc-view status — read-only status snapshot.
103
103
  */
104
104
  export function statusCommandSkillMarkdown() {
105
105
  const flowPath = flowStatePath();
@@ -109,11 +109,11 @@ name: ${STATUS_SKILL_NAME}
109
109
  description: "Read-only visual snapshot of the cclaw flow with progress bar, gate delta, delegations, and stale markers."
110
110
  ---
111
111
 
112
- # /cc-status — Flow Status Snapshot
112
+ # /cc-view status — Flow Status Snapshot
113
113
 
114
114
  ## Overview
115
115
 
116
- \`/cc-status\` is the quickest way to answer "where are we in the flow?" without
116
+ \`/cc-view status\` is the quickest way to answer "where are we in the flow?" without
117
117
  advancing or mutating anything. Safe to run at any point.
118
118
 
119
119
  ## HARD-GATE
@@ -132,7 +132,7 @@ a read-only command. Do **not** update \`${snapshotPath()}\` here.
132
132
  - Render \`<X>d<Y>h\`, \`<X>h<Y>m\`, \`<X>m\`, or \`(unknown)\`.
133
133
  5. Try reading \`${snapshotPath()}\` for gate delta:
134
134
  - If available, compare current stage \`passed\` / \`blocked\` sets against baseline.
135
- - If unavailable, render \`delta: (baseline unavailable; run /cc-diff)\`.
135
+ - If unavailable, render \`delta: (baseline unavailable; run /cc-view diff)\`.
136
136
  6. Read \`${RUNTIME_ROOT}/knowledge.jsonl\`. If missing or empty → knowledge highlights are \`(none recorded)\`. Parse each line as JSON and surface its \`trigger\`/\`action\`.
137
137
  7. For each gate in \`stageGateCatalog[currentStage].required\`:
138
138
  - Satisfied if present in \`passed\` and absent from \`blocked\`.
@@ -151,11 +151,11 @@ a read-only command. Do **not** update \`${snapshotPath()}\` here.
151
151
  - Keep output compact (≤ 30 lines) — status, not narrative.
152
152
  - Report counts, not full artifact contents.
153
153
  - If any data source is missing or corrupt, say so explicitly rather than guessing.
154
- - Include \`/cc-tree\` for deep structure and \`/cc-diff\` for before/after map in the final line.
154
+ - Include \`/cc-view tree\` for deep structure and \`/cc-view diff\` for before/after map in the final line.
155
155
 
156
156
  ## Anti-patterns
157
157
 
158
- - Rebuilding trace-matrix or running doctor from \`/cc-status\` — those belong to dedicated tools.
158
+ - Rebuilding trace-matrix or running doctor from \`/cc-view status\` — those belong to dedicated tools.
159
159
  - Treating absence of delegation log as "all delegations complete".
160
160
  - Mutating state to "clean up" during a status check.
161
161
  `;
@@ -8,7 +8,7 @@ function flowStatePath() {
8
8
  return `${RUNTIME_ROOT}/state/flow-state.json`;
9
9
  }
10
10
  export function tddLogCommandContract() {
11
- return `# /cc-tdd-log
11
+ return `# /cc-ops tdd-log
12
12
 
13
13
  ## Purpose
14
14
 
@@ -21,10 +21,10 @@ Record explicit RED/GREEN/REFACTOR evidence used by workflow guard and doctor ch
21
21
 
22
22
  ## Subcommands
23
23
 
24
- - \`/cc-tdd-log red <slice> <command> [note]\`
25
- - \`/cc-tdd-log green <slice> <command> [note]\`
26
- - \`/cc-tdd-log refactor <slice> <command> [note]\`
27
- - \`/cc-tdd-log show\`
24
+ - \`/cc-ops tdd-log red <slice> <command> [note]\`
25
+ - \`/cc-ops tdd-log green <slice> <command> [note]\`
26
+ - \`/cc-ops tdd-log refactor <slice> <command> [note]\`
27
+ - \`/cc-ops tdd-log show\`
28
28
 
29
29
  ## Log Schema
30
30
 
@@ -48,7 +48,7 @@ name: ${TDD_LOG_SKILL_NAME}
48
48
  description: "Append RED/GREEN/REFACTOR entries into tdd-cycle-log.jsonl for guard/doctor enforcement."
49
49
  ---
50
50
 
51
- # /cc-tdd-log
51
+ # /cc-ops tdd-log
52
52
 
53
53
  ## HARD-GATE
54
54
 
@@ -1,4 +1,4 @@
1
1
  export declare const ARTIFACT_TEMPLATES: Record<string, string>;
2
2
  export declare const RULEBOOK_MARKDOWN = "# Cclaw Rulebook\n\n## MUST_ALWAYS\n- Follow flow order: brainstorm -> scope -> design -> spec -> plan -> tdd -> review -> ship\n- Require explicit user confirmation after plan before TDD\n- Keep evidence artifacts in `.cclaw/artifacts/`\n- Enforce RED before GREEN in TDD\n- Run two-layer review (spec_compliance and code_quality) before ship\n- Validate all inputs before processing \u2014 never trust external data without sanitization\n- Prefer immutable data patterns and pure functions where the language supports them\n- Follow existing repo conventions, patterns, and directory structure \u2014 match the codebase\n- Verify claims with fresh evidence: \"tests pass\" requires running tests in this message\n- Use conventional commits: `type(scope): description` (feat, fix, refactor, test, docs, chore)\n\n## MUST_NEVER\n- Skip RED phase and jump directly to GREEN in TDD\n- Ship with critical review findings\n- Start implementation during /brainstorm\n- Modify generated cclaw files manually when CLI can regenerate them\n- Commit `.cclaw/` or generated shim files\n- Expose secrets, tokens, API keys, or absolute system paths in agent output\n- Duplicate existing functionality without explicit justification \u2014 search before building\n- Bypass security checks, linting hooks, or type checking to \"move faster\"\n- Claim success (\"Done,\" \"All good,\" \"Tests pass\") without running verification in this message\n- Make changes outside the blast radius of the current task without user consent\n\n## DELEGATION\nWhen a task requires specialist knowledge (security audit, performance profiling, database review),\ndelegate to a specialized agent or skill if the harness supports it. The primary agent should:\n1. Identify the specialist domain\n2. Provide focused context (relevant files, the specific concern)\n3. Evaluate the specialist output before acting on it \u2014 do not blindly apply recommendations\n";
3
- export declare const CURSOR_WORKFLOW_RULE_MDC = "---\ndescription: cclaw workflow guardrails for Cursor agent sessions\nglobs:\n - \"**/*\"\nalwaysApply: true\n---\n\n<!-- cclaw-managed-cursor-workflow-rule -->\n\n# Cclaw Workflow Guardrails\n\n## Activation Rule\n\nBefore responding to coding work:\n1. Read `.cclaw/state/flow-state.json`.\n2. Start with `/cc` or continue with `/cc-next`.\n3. If no software-stage flow applies, respond normally.\n\n## Stage Order\n\n`brainstorm -> scope -> design -> spec -> plan -> tdd -> review -> ship`\n\nTrack-specific skips are allowed only when `flow-state.track` + `skippedStages` explicitly say so.\n\n## Task Classification\n\n| Class | Route |\n|---|---|\n| non-trivial software work | `/cc <idea>` |\n| trivial software fix | `/cc <idea>` (quick or medium track) |\n| bugfix with repro | `/cc <idea>` and enforce RED-first in tdd |\n| pure question / non-software | direct answer (no stage flow) |\n\n## Command Surface\n\n- `/cc` = entry and resume.\n- `/cc-next` = only progression path.\n- `/cc-learn` = knowledge capture and recall.\n\n## Verification Discipline\n\n- No completion claim without fresh command evidence in this turn.\n- Do not mark gates passed from memory.\n- Keep evidence in `.cclaw/artifacts/`; archive via `/cc-archive` (agent flow) or archive runtime.\n\n## Delegation And Approvals\n\n- Machine-only checks in design/plan/tdd/review/ship should auto-dispatch when tooling supports it.\n- Ask for user input only at explicit approval gates (scope mode, plan approval, challenge resolution, ship finalization).\n- If harness capabilities are partial, record waiver reasons in delegation logs.\n\n## Routing Source Of Truth\n\n- Primary router: `.cclaw/skills/using-cclaw/SKILL.md`.\n- Protocols: `.cclaw/references/protocols/*.md`.\n- Preamble budget: `.cclaw/references/protocols/ethos.md`.\n";
3
+ export declare const CURSOR_WORKFLOW_RULE_MDC = "---\ndescription: cclaw workflow guardrails for Cursor agent sessions\nglobs:\n - \"**/*\"\nalwaysApply: true\n---\n\n<!-- cclaw-managed-cursor-workflow-rule -->\n\n# Cclaw Workflow Guardrails\n\n## Activation Rule\n\nBefore responding to coding work:\n1. Read `.cclaw/state/flow-state.json`.\n2. Start with `/cc` or continue with `/cc-next`.\n3. If no software-stage flow applies, respond normally.\n\n## Stage Order\n\n`brainstorm -> scope -> design -> spec -> plan -> tdd -> review -> ship`\n\nTrack-specific skips are allowed only when `flow-state.track` + `skippedStages` explicitly say so.\n\n## Task Classification\n\n| Class | Route |\n|---|---|\n| non-trivial software work | `/cc <idea>` |\n| trivial software fix | `/cc <idea>` (quick or medium track) |\n| bugfix with repro | `/cc <idea>` and enforce RED-first in tdd |\n| pure question / non-software | direct answer (no stage flow) |\n\n## Command Surface\n\n- `/cc` = entry and resume.\n- `/cc-next` = only progression path.\n- `/cc-learn` = knowledge capture and recall.\n\n## Verification Discipline\n\n- No completion claim without fresh command evidence in this turn.\n- Do not mark gates passed from memory.\n- Keep evidence in `.cclaw/artifacts/`; archive via `/cc-ops archive` (agent flow) or archive runtime.\n\n## Delegation And Approvals\n\n- Machine-only checks in design/plan/tdd/review/ship should auto-dispatch when tooling supports it.\n- Ask for user input only at explicit approval gates (scope mode, plan approval, challenge resolution, ship finalization).\n- If harness capabilities are partial, record waiver reasons in delegation logs.\n\n## Routing Source Of Truth\n\n- Primary router: `.cclaw/skills/using-cclaw/SKILL.md`.\n- Protocols: `.cclaw/references/protocols/*.md`.\n- Preamble budget: `.cclaw/references/protocols/ethos.md`.\n";
4
4
  export declare function buildRulesJson(): Record<string, unknown>;
@@ -481,7 +481,7 @@ Execution rule: complete and verify each wave before starting the next wave.
481
481
  - Exceptions (if any):
482
482
 
483
483
  ## Retro Gate Handoff
484
- - Run \`/cc-retro\` before archive.
484
+ - Run \`/cc-ops retro\` before archive.
485
485
  - Retro artifact path: \`.cclaw/artifacts/09-retro.md\`
486
486
  - Archive remains blocked until retro gate is complete.
487
487
  `,
@@ -593,7 +593,7 @@ Track-specific skips are allowed only when \`flow-state.track\` + \`skippedStage
593
593
 
594
594
  - No completion claim without fresh command evidence in this turn.
595
595
  - Do not mark gates passed from memory.
596
- - Keep evidence in \`.cclaw/artifacts/\`; archive via \`/cc-archive\` (agent flow) or archive runtime.
596
+ - Keep evidence in \`.cclaw/artifacts/\`; archive via \`/cc-ops archive\` (agent flow) or archive runtime.
597
597
 
598
598
  ## Delegation And Approvals
599
599
 
@@ -14,7 +14,7 @@ function rewindLogPath() {
14
14
  return `${RUNTIME_ROOT}/state/rewind-log.jsonl`;
15
15
  }
16
16
  export function treeCommandContract() {
17
- return `# /cc-tree
17
+ return `# /cc-view tree
18
18
 
19
19
  ## Purpose
20
20
 
@@ -23,7 +23,7 @@ stale markers, and artifact presence.
23
23
 
24
24
  ## HARD-GATE
25
25
 
26
- - \`/cc-tree\` is read-only. Do not mutate flow-state or artifacts.
26
+ - \`/cc-view tree\` is read-only. Do not mutate flow-state or artifacts.
27
27
  - Use values from \`${flowStatePath()}\` and \`${delegationLogPath()}\`; never infer missing evidence.
28
28
 
29
29
  ## Algorithm
@@ -64,7 +64,7 @@ name: ${TREE_SKILL_NAME}
64
64
  description: "Render a visual flow tree for stages, gates, delegations, and artifacts."
65
65
  ---
66
66
 
67
- # /cc-tree
67
+ # /cc-view tree
68
68
 
69
69
  ## HARD-GATE
70
70
 
@@ -771,7 +771,7 @@ description: "Read-only curation pass over the canonical strict-JSONL knowledge
771
771
  ## When to run
772
772
 
773
773
  - Triggered automatically by **\`/cc-learn curate\`**.
774
- - Recommended after \`/cc-archive\` (or archive runtime) of a feature run, when knowledge has grown.
774
+ - Recommended after \`/cc-ops archive\` (or archive runtime) of a feature run, when knowledge has grown.
775
775
  - Recommended when active entry count exceeds **50**.
776
776
 
777
777
  ## Audit dimensions
@@ -48,9 +48,9 @@ Wrapper is read-only and dispatch-only. It must not mutate flow state directly.
48
48
 
49
49
  1. Parse optional subcommand token:
50
50
  - missing -> \`status\`
51
- - \`status\` -> dispatch to \`/cc-status\`
52
- - \`tree\` -> dispatch to \`/cc-tree\`
53
- - \`diff\` -> dispatch to \`/cc-diff\`
51
+ - \`status\` -> dispatch to \`${RUNTIME_ROOT}/commands/status.md\`
52
+ - \`tree\` -> dispatch to \`${RUNTIME_ROOT}/commands/tree.md\`
53
+ - \`diff\` -> dispatch to \`${RUNTIME_ROOT}/commands/diff.md\`
54
54
  2. Execute the target command contract and skill.
55
55
  3. Return concise output and suggest \`/cc-view <subcommand>\` variants for navigation.
56
56
  `;
@@ -58,7 +58,7 @@ const RULES = [
58
58
  }
59
59
  },
60
60
  {
61
- test: /^(hook:|lifecycle:|git_hooks:)/,
61
+ test: /^(hook:|hooks:|lifecycle:|git_hooks:)/,
62
62
  metadata: {
63
63
  severity: "error",
64
64
  summary: "Hook wiring and lifecycle integration check.",
@@ -67,7 +67,7 @@ const RULES = [
67
67
  }
68
68
  },
69
69
  {
70
- test: /^(shim:|agents:cclaw_block|rules:cursor:workflow)/,
70
+ test: /^(shim:|agents:cclaw_block|rules:cursor:)/,
71
71
  metadata: {
72
72
  severity: "error",
73
73
  summary: "Harness shim and routing file consistency check.",
@@ -84,6 +84,24 @@ const RULES = [
84
84
  docRef: ref("state-and-gates.md")
85
85
  }
86
86
  },
87
+ {
88
+ test: /^(knowledge:|artifacts:|runs:)/,
89
+ metadata: {
90
+ severity: "error",
91
+ summary: "Knowledge and artifact runtime integrity check.",
92
+ fix: "Restore missing runtime files under `.cclaw/` or re-run `cclaw sync`.",
93
+ docRef: ref("runtime-layout.md")
94
+ }
95
+ },
96
+ {
97
+ test: /^(meta_skill:|protocol:|stage_skill:|context_mode:)/,
98
+ metadata: {
99
+ severity: "error",
100
+ summary: "Routing skill and protocol integrity check.",
101
+ fix: "Regenerate runtime references and skills via `cclaw sync`, then re-run doctor.",
102
+ docRef: ref("harness-and-routing.md")
103
+ }
104
+ },
87
105
  {
88
106
  test: /^delegation:/,
89
107
  metadata: {
@@ -119,9 +137,9 @@ export function doctorCheckMetadata(checkName) {
119
137
  }
120
138
  }
121
139
  return {
122
- severity: "warning",
140
+ severity: "error",
123
141
  summary: "Unclassified doctor check.",
124
- fix: "Review the check details and add a matching rule in doctor-registry when this check should be severity-scoped.",
142
+ fix: "Report this check name to cclaw maintainers so doctor-registry can classify it explicitly.",
125
143
  docRef: ref("README.md")
126
144
  };
127
145
  }