cc-devflow 4.5.10 → 4.5.12
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.
- package/.claude/skills/cc-act/CHANGELOG.md +23 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
- package/.claude/skills/cc-act/SKILL.md +38 -418
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_INDEX_TEMPLATE.md +2 -13
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_TEMPLATE.md +1 -9
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +21 -177
- package/.claude/skills/cc-act/references/closure-contract.md +12 -63
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +5 -5
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -322
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +11 -2
- package/.claude/skills/cc-act/scripts/inspect-git-index.sh +58 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +40 -440
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +10 -50
- package/.claude/skills/cc-check/CHANGELOG.md +24 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
- package/.claude/skills/cc-check/SKILL.md +33 -454
- package/.claude/skills/cc-check/references/review-contract.md +12 -147
- package/.claude/skills/cc-dev/CHANGELOG.md +20 -0
- package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-dev/SKILL.md +52 -130
- package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
- package/.claude/skills/cc-do/CHANGELOG.md +17 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
- package/.claude/skills/cc-do/SKILL.md +39 -236
- package/.claude/skills/cc-do/references/execution-recovery.md +15 -109
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +5 -57
- package/.claude/skills/cc-do/scripts/check-task-status.sh +35 -65
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +9 -46
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +29 -97
- package/.claude/skills/cc-investigate/CHANGELOG.md +23 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
- package/.claude/skills/cc-investigate/SKILL.md +65 -513
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -95
- package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -217
- package/.claude/skills/cc-next/CHANGELOG.md +6 -0
- package/.claude/skills/cc-next/PLAYBOOK.md +12 -8
- package/.claude/skills/cc-next/SKILL.md +34 -140
- package/.claude/skills/cc-plan/CHANGELOG.md +29 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
- package/.claude/skills/cc-plan/SKILL.md +47 -640
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -225
- package/.claude/skills/cc-plan/references/planning-contract.md +24 -160
- package/.claude/skills/cc-plan/scripts/next-change-key.sh +8 -44
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +2 -2
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +1 -1
- package/.claude/skills/cc-pr-land/SKILL.md +14 -114
- package/.claude/skills/cc-pr-review/CHANGELOG.md +4 -0
- package/.claude/skills/cc-pr-review/SKILL.md +20 -103
- package/.claude/skills/cc-review/CHANGELOG.md +17 -0
- package/.claude/skills/cc-review/PLAYBOOK.md +13 -86
- package/.claude/skills/cc-review/SKILL.md +53 -241
- package/.claude/skills/cc-review/references/e2e-and-plugin-verification.md +2 -2
- package/.claude/skills/cc-review/references/implementation-review-branch.md +7 -147
- package/.claude/skills/cc-review/references/plan-review-branch.md +5 -147
- package/.claude/skills/cc-review/references/review-methods.md +10 -218
- package/.claude/skills/cc-review/scripts/collect-review-context.sh +4 -63
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-roadmap/SKILL.md +3 -3
- package/.claude/skills/cc-simplify/CHANGELOG.md +7 -0
- package/.claude/skills/cc-simplify/SKILL.md +26 -21
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +12 -48
- package/.claude/skills/cc-spec-init/SKILL.md +29 -132
- package/.claude/skills/cc-spec-init/references/spec-contract.md +8 -17
- package/CHANGELOG.md +27 -0
- package/README.md +5 -3
- package/README.zh-CN.md +5 -3
- package/bin/cc-devflow-cli.js +20 -260
- package/bin/cc-devflow.js +44 -7
- package/docs/commands/README.md +1 -1
- package/docs/commands/README.zh-CN.md +1 -1
- package/docs/examples/README.md +1 -1
- package/docs/examples/START-HERE.md +14 -14
- package/docs/examples/example-bindings.json +11 -11
- package/docs/examples/full-design-blocked/README.md +4 -6
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/{planning/tasks.md → task.md} +20 -15
- package/docs/examples/local-handoff/README.md +8 -11
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/pr-brief.md +31 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/pdca-loop/README.md +6 -9
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +9 -11
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/{planning/tasks.md → task.md} +18 -13
- package/docs/examples/scripts/check-example-bindings.sh +11 -62
- package/docs/guides/artifact-contract.md +10 -36
- package/docs/guides/getting-started.md +8 -7
- package/docs/guides/getting-started.zh-CN.md +8 -7
- package/docs/guides/minimize-artifacts.md +16 -116
- package/docs/guides/project-postmortem.md +14 -71
- package/lib/compiler/__tests__/skills-registry.test.js +9 -8
- package/lib/compiler/resource-copier.js +29 -0
- package/lib/skill-runtime/__tests__/archive-change.test.js +2 -2
- package/lib/skill-runtime/__tests__/benchmark-skills.test.js +109 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +14 -4
- package/lib/skill-runtime/errors.js +3 -3
- package/lib/skill-runtime/index.js +5 -23
- package/lib/skill-runtime/paths.js +5 -52
- package/lib/skill-runtime/query-registry.js +4 -4
- package/lib/skill-runtime/query.js +89 -201
- package/lib/skill-runtime/store.js +4 -40
- package/lib/skill-runtime/trace.js +2 -2
- package/package.json +5 -7
- package/.claude/skills/cc-act/assets/PROJECT_POSTMORTEM_PRINCIPLES_TEMPLATE.md +0 -29
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +0 -54
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +0 -92
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +0 -355
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +0 -234
- package/.claude/skills/cc-check/scripts/render-report-card.js +0 -438
- package/.claude/skills/cc-check/scripts/verify-gate.sh +0 -85
- package/.claude/skills/cc-do/scripts/build-task-context.sh +0 -175
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +0 -88
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +0 -82
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +0 -70
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +0 -109
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +0 -92
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +0 -225
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -179
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +0 -28
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +0 -45
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +0 -234
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +0 -488
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +0 -189
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +0 -39
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +0 -29
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +0 -123
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +0 -292
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +0 -136
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +0 -29
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +0 -124
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +0 -292
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +0 -136
- package/docs/get-shit-done-strategy-audit.md +0 -518
- package/docs/skill-runtime-migration.md +0 -46
- package/lib/skill-runtime/__tests__/approve.test.js +0 -92
- package/lib/skill-runtime/__tests__/autopilot.test.js +0 -253
- package/lib/skill-runtime/__tests__/benchmark-artifacts.test.js +0 -165
- package/lib/skill-runtime/__tests__/delegation.test.js +0 -97
- package/lib/skill-runtime/__tests__/dispatch.test.js +0 -237
- package/lib/skill-runtime/__tests__/intent.test.js +0 -203
- package/lib/skill-runtime/__tests__/lifecycle.test.js +0 -169
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +0 -331
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +0 -126
- package/lib/skill-runtime/__tests__/query.test.js +0 -860
- package/lib/skill-runtime/__tests__/readiness.test.js +0 -53
- package/lib/skill-runtime/__tests__/release.test.js +0 -85
- package/lib/skill-runtime/__tests__/review-check-integration.test.js +0 -148
- package/lib/skill-runtime/__tests__/review-records.test.js +0 -619
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +0 -351
- package/lib/skill-runtime/__tests__/schemas.test.js +0 -337
- package/lib/skill-runtime/__tests__/task-contract-migrate.test.js +0 -137
- package/lib/skill-runtime/__tests__/task-contract.test.js +0 -783
- package/lib/skill-runtime/__tests__/team-state.test.js +0 -51
- package/lib/skill-runtime/__tests__/verify-artifacts.test.js +0 -203
- package/lib/skill-runtime/__tests__/worker-run.test.js +0 -275
- package/lib/skill-runtime/__tests__/worker.test.js +0 -56
- package/lib/skill-runtime/__tests__/workflow-context-legacy-fallback.test.js +0 -31
- package/lib/skill-runtime/__tests__/workflow-context.test.js +0 -98
- package/lib/skill-runtime/artifacts.js +0 -88
- package/lib/skill-runtime/context-index.js +0 -545
- package/lib/skill-runtime/delegation.js +0 -533
- package/lib/skill-runtime/intent.js +0 -309
- package/lib/skill-runtime/lifecycle.js +0 -294
- package/lib/skill-runtime/operations/CLAUDE.md +0 -19
- package/lib/skill-runtime/operations/approve.js +0 -81
- package/lib/skill-runtime/operations/autopilot-core.js +0 -337
- package/lib/skill-runtime/operations/autopilot-execution.js +0 -307
- package/lib/skill-runtime/operations/autopilot-shared.js +0 -48
- package/lib/skill-runtime/operations/autopilot.js +0 -163
- package/lib/skill-runtime/operations/dispatch.js +0 -416
- package/lib/skill-runtime/operations/init.js +0 -60
- package/lib/skill-runtime/operations/janitor.js +0 -61
- package/lib/skill-runtime/operations/plan.js +0 -59
- package/lib/skill-runtime/operations/prepare-pr.js +0 -25
- package/lib/skill-runtime/operations/release.js +0 -99
- package/lib/skill-runtime/operations/resume.js +0 -126
- package/lib/skill-runtime/operations/review-records.js +0 -265
- package/lib/skill-runtime/operations/snapshot.js +0 -45
- package/lib/skill-runtime/operations/task-contract.js +0 -524
- package/lib/skill-runtime/operations/verify.js +0 -170
- package/lib/skill-runtime/operations/worker-run.js +0 -531
- package/lib/skill-runtime/operations/worker.js +0 -33
- package/lib/skill-runtime/planner.js +0 -539
- package/lib/skill-runtime/readiness.js +0 -84
- package/lib/skill-runtime/review-records.js +0 -123
- package/lib/skill-runtime/review.js +0 -855
- package/lib/skill-runtime/schemas.js +0 -746
- package/lib/skill-runtime/task-contract.js +0 -187
- package/lib/skill-runtime/team-state.js +0 -122
- package/lib/skill-runtime/workflow-context.js +0 -748
|
@@ -1,29 +1,17 @@
|
|
|
1
|
-
#
|
|
1
|
+
# task.md
|
|
2
2
|
|
|
3
|
-
##
|
|
3
|
+
## Plan Meta
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
- Analysis version:
|
|
7
|
-
- Investigate skill version:
|
|
5
|
+
- CC-Investigate skill version:
|
|
8
6
|
- Work branch:
|
|
9
7
|
- Output language:
|
|
10
|
-
- Source bug / incident:
|
|
11
|
-
- Roadmap sync status:
|
|
12
|
-
- Change meta: `change-meta.json`
|
|
13
|
-
|
|
14
|
-
## Progressive Disclosure Index
|
|
15
|
-
|
|
16
|
-
- Default read: Investigation Meta, Root Cause Contract, Execution Handoff, current task block.
|
|
17
|
-
- Runtime reset: run `cc-devflow query workflow-context --change <changeId> --change-key <changeKey> --cwd <repo-root> --data-only --no-trace --compact` before `cc-do`, `cc-check`, or `cc-act`; use `packetOnly` plus `mustNotForget` first, verify `sourceHashes`, open `defaultOpen` refs only when needed, and reserve `deepOpen` for matching `openWhen.conditions`.
|
|
18
|
-
- Open for root-cause doubt: `planning/tasks.md#Root Cause Contract` Project Postmortem Recall, Feedback Loop, Evidence Chain, Boundary Probe Matrix.
|
|
19
|
-
- Open for scheduling: `planning/task-manifest.json`, dependencies, touched files.
|
|
20
|
-
- Open for audit/recovery: Git state, CLI logs, report-card findings, Workflow Forensics.
|
|
21
8
|
|
|
22
9
|
## Root Cause Contract
|
|
23
10
|
|
|
24
11
|
Change:
|
|
25
12
|
Mode: investigation
|
|
26
|
-
|
|
13
|
+
Profile: tiny | standard | deep
|
|
14
|
+
Diagnosis:
|
|
27
15
|
|
|
28
16
|
Symptom:
|
|
29
17
|
-
|
|
@@ -31,98 +19,63 @@ Symptom:
|
|
|
31
19
|
Reproduction:
|
|
32
20
|
-
|
|
33
21
|
|
|
34
|
-
|
|
22
|
+
Expected:
|
|
35
23
|
-
|
|
36
24
|
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
- First bad state:
|
|
40
|
-
- Violated contract:
|
|
41
|
-
- Original trigger:
|
|
42
|
-
- Counterfactual proof:
|
|
43
|
-
- Escape reason:
|
|
25
|
+
Actual:
|
|
26
|
+
-
|
|
44
27
|
|
|
45
|
-
|
|
28
|
+
Root Cause:
|
|
46
29
|
-
|
|
47
30
|
|
|
48
|
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
31
|
+
Evidence Chain:
|
|
32
|
+
-
|
|
33
|
+
|
|
34
|
+
Repair Boundary:
|
|
35
|
+
-
|
|
52
36
|
|
|
53
37
|
Verification:
|
|
54
38
|
-
|
|
55
39
|
|
|
40
|
+
Prevention:
|
|
41
|
+
-
|
|
42
|
+
|
|
56
43
|
Risk / Escalate If:
|
|
57
44
|
-
|
|
58
45
|
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
## Execution Handoff
|
|
64
|
-
|
|
65
|
-
- Canonical contract: `planning/tasks.md#Root Cause Contract`
|
|
66
|
-
- Canonical change meta: `change-meta.json`
|
|
67
|
-
- Execution mode: `single-path` | `parallel-ready`
|
|
68
|
-
- Confirmed root cause:
|
|
69
|
-
- Root-cause hypothesis:
|
|
70
|
-
- Root Cause Proof Ladder:
|
|
71
|
-
- First bad state:
|
|
72
|
-
- Original trigger:
|
|
73
|
-
- Counterfactual proof:
|
|
74
|
-
- Feedback loop:
|
|
75
|
-
- Symptom match evidence:
|
|
76
|
-
- Frozen repair boundary:
|
|
77
|
-
- Boundary probes:
|
|
78
|
-
- Backward trace:
|
|
79
|
-
- Reference comparison:
|
|
80
|
-
- Project postmortem recall:
|
|
81
|
-
- Allowed files:
|
|
82
|
-
- Forbidden files:
|
|
83
|
-
- Blast radius:
|
|
84
|
-
- Capability specs:
|
|
85
|
-
- Read first:
|
|
86
|
-
- Commands to trust:
|
|
87
|
-
- Do not re-decide:
|
|
88
|
-
- Parallel boundaries:
|
|
89
|
-
- Correct test seam:
|
|
90
|
-
- Evidence request if blocked:
|
|
91
|
-
- Do not repair symptom site unless analysis proves it is the original trigger:
|
|
92
|
-
|
|
93
|
-
## Phase 1: Reproduce And Probe Guard
|
|
94
|
-
|
|
95
|
-
- [ ] T001 [TEST] Capture the failing behavior as a stable reproduction (dependsOn:none) `path/to/test`
|
|
96
|
-
Goal: 让 bug 先变成一个快、准、可复跑且匹配用户症状的失败事实。
|
|
97
|
-
Files: `path/to/test`
|
|
98
|
-
Read first: `analysis.md`, `tasks.md`
|
|
99
|
-
Project postmortem search: `rg -n "<symptom|test seam|module|model-risk>" devflow/postmortems` or record `no-project-postmortems-yet`
|
|
100
|
-
Verification: `npm test -- path/to/test`
|
|
101
|
-
Evidence: failing output or reproducible log + symptom match evidence
|
|
102
|
-
Correct seam: test must exercise the real trigger chain through a public interface
|
|
103
|
-
Root cause proof: must expose or preserve evidence for first bad state and original trigger
|
|
104
|
-
Ready when: feedback loop 已稳定,analysis 已记录必要的 boundary / trace / comparison / root-cause-ladder evidence
|
|
46
|
+
## Execution Protocol
|
|
47
|
+
|
|
48
|
+
Codex / ClaudeCode must treat this `task.md` as the only repair contract.
|
|
105
49
|
|
|
106
|
-
|
|
50
|
+
- CLI resolver: all workflow commands must run through `.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh` or `.codex/skills/cc-dev/scripts/resolve-cc-devflow.sh`; if it cannot prove `query workflow-context` and `next-change-key`, stop blocked.
|
|
51
|
+
- Do not generate process files beyond this `task.md`.
|
|
52
|
+
- Complete tasks with `scripts/mark-task-complete.sh --tasks devflow/changes/<change-key>/task.md --task <task-id>`.
|
|
53
|
+
- Stage commit rule: when PDCA or IDCA finishes in the current environment, commit the completed stage to Git.
|
|
107
54
|
|
|
108
|
-
|
|
109
|
-
|
|
55
|
+
## Phase 1: Repair
|
|
56
|
+
|
|
57
|
+
- [ ] T001 [TEST] Capture the confirmed failure (dependsOn:none) `path/to/test`
|
|
58
|
+
Goal: 证明 Root Cause Contract 的失败链在当前代码中可复现。
|
|
59
|
+
Root cause proof: reference the Root Cause Contract fields above.
|
|
60
|
+
Do not re-decide: first bad state, original trigger, repair boundary.
|
|
61
|
+
TDD phase: red
|
|
62
|
+
Files: `path/to/test`
|
|
63
|
+
Read first: `task.md`
|
|
64
|
+
Verification: `npm test -- path/to/test`
|
|
65
|
+
Evidence: failing output
|
|
66
|
+
Completion: after failing evidence exists, run `bash "$SCRIPT_ROOT/mark-task-complete.sh" --tasks devflow/changes/<change-key>/task.md --task T001`.
|
|
67
|
+
Public verification path: public interface / caller flow / CLI / API / UI / trace replay / harness.
|
|
68
|
+
Ready when: reproduction path is available.
|
|
69
|
+
|
|
70
|
+
- [ ] T002 [IMPL] Repair the first bad state (dependsOn:T001) `path/to/file`
|
|
71
|
+
Goal: 用最小代码修复已证明的根因。
|
|
72
|
+
Root cause proof: do not repair symptom site unless Root Cause Contract proves it is the original trigger.
|
|
73
|
+
Do not re-decide: repair boundary, test seam, forbidden files.
|
|
74
|
+
TDD phase: green
|
|
110
75
|
Files: `path/to/file`
|
|
111
|
-
Read first: `
|
|
112
|
-
Project postmortem search: `rg -n "<root cause|module|failure-class|model-risk>" devflow/postmortems` or record `no-project-postmortems-yet`
|
|
76
|
+
Read first: `task.md`, `path/to/test`
|
|
113
77
|
Verification: `npm test -- path/to/test`
|
|
114
78
|
Evidence: passing output + Git diff
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
## Phase 3: Verify
|
|
119
|
-
|
|
120
|
-
- [ ] T003 Run checks and collect fresh evidence (dependsOn:T002) `command or file`
|
|
121
|
-
Goal: 为 `cc-check` 准备新鲜证据。
|
|
122
|
-
Files: `command or file`
|
|
123
|
-
Read first: `tasks.md`, `task-manifest.json`
|
|
124
|
-
Project postmortem search: `rg -n "<verification|release|tooling|model-risk>" devflow/postmortems` or record `no-project-postmortems-yet`
|
|
125
|
-
Verification: `npm test && npm run lint`
|
|
126
|
-
Evidence: gate output
|
|
127
|
-
Root cause proof: verification must prove the first bad state no longer forms, not only that the symptom disappeared
|
|
128
|
-
Ready when: repair task 已收口
|
|
79
|
+
Completion: after green evidence exists, run `bash "$SCRIPT_ROOT/mark-task-complete.sh" --tasks devflow/changes/<change-key>/task.md --task T002`.
|
|
80
|
+
Public verification path: same as T001.
|
|
81
|
+
Ready when: T001 has the expected failing evidence.
|
|
@@ -2,235 +2,32 @@
|
|
|
2
2
|
|
|
3
3
|
## Iron Law
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
-
|
|
5
|
+
- No root cause, no repair.
|
|
6
|
+
- No frozen `task.md#Root Cause Contract`, no repair task.
|
|
7
7
|
|
|
8
8
|
## Minimum Evidence
|
|
9
9
|
|
|
10
|
-
每次调查至少留下这些事实:
|
|
11
|
-
|
|
12
10
|
- symptom
|
|
13
11
|
- reproduction path
|
|
14
|
-
- feedback loop contract
|
|
15
|
-
- symptom match evidence
|
|
16
12
|
- expected vs actual
|
|
17
13
|
- code path
|
|
18
14
|
- recent change signal
|
|
19
|
-
- prior
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
-
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
- pattern analysis
|
|
26
|
-
- ranked candidate hypotheses
|
|
27
|
-
- root-cause hypothesis
|
|
28
|
-
- falsification method
|
|
29
|
-
- confirmed root cause
|
|
30
|
-
- correct test seam
|
|
31
|
-
- root cause class
|
|
15
|
+
- prior postmortem signal
|
|
16
|
+
- first bad state
|
|
17
|
+
- violated contract
|
|
18
|
+
- original trigger
|
|
19
|
+
- counterfactual proof
|
|
20
|
+
- escape reason
|
|
32
21
|
- repair boundary
|
|
33
|
-
-
|
|
34
|
-
- roadmap sync status
|
|
22
|
+
- verification command
|
|
35
23
|
|
|
36
24
|
## Output Shape
|
|
37
25
|
|
|
38
|
-
- `
|
|
39
|
-
- `
|
|
40
|
-
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
## Root-Cause Hypothesis
|
|
44
|
-
|
|
45
|
-
每条假设都必须可证伪:
|
|
46
|
-
|
|
47
|
-
- `candidateRank`:候选假设排序,避免第一直觉锚定
|
|
48
|
-
- `hypothesis`:具体说明什么坏了,为什么会导致症状
|
|
49
|
-
- `evidenceFor`
|
|
50
|
-
- `evidenceAgainst`
|
|
51
|
-
- `falsificationMethod`
|
|
52
|
-
- `expectedObservation`
|
|
53
|
-
- `actualObservation`
|
|
54
|
-
- `status`:`pending` / `confirmed` / `rejected` / `needs-more-evidence`
|
|
55
|
-
|
|
56
|
-
只有 `confirmed` 假设可以进入 Root Cause。
|
|
57
|
-
|
|
58
|
-
## Root Cause Proof Ladder
|
|
59
|
-
|
|
60
|
-
confirmed root cause 必须证明:
|
|
61
|
-
|
|
62
|
-
- `symptomSite`:用户实际看到的失败点
|
|
63
|
-
- `firstBadState`:状态第一次变坏的位置和证据
|
|
64
|
-
- `violatedContract`:被破坏的契约、invariant、schema、协议或时序条件
|
|
65
|
-
- `originalTrigger`:制造 first bad state 的动作、事件、diff、配置或外部响应
|
|
66
|
-
- `counterfactualProof`:恢复契约、替换输入、回滚 diff 或断言边界后的实际观察
|
|
67
|
-
- `escapeReason`:为什么测试、类型、review、监控或 artifact gate 没挡住
|
|
68
|
-
|
|
69
|
-
缺 `firstBadState`、`originalTrigger` 或 `counterfactualProof` 时,根因状态只能是 `needs-more-evidence`;不允许生成 repair task。
|
|
70
|
-
|
|
71
|
-
## Feedback Loop Contract
|
|
72
|
-
|
|
73
|
-
调查必须先构造一个可信 pass/fail loop:
|
|
74
|
-
|
|
75
|
-
- `loopType`: failing-test / http-script / cli-fixture / browser-script / trace-replay / throwaway-harness / property-fuzz / bisect / differential / hitl
|
|
76
|
-
- `commandOrDriver`
|
|
77
|
-
- `expectedFailingSignal`
|
|
78
|
-
- `actualFailingSignal`
|
|
79
|
-
- `symptomMatchEvidence`
|
|
80
|
-
- `runtime`
|
|
81
|
-
- `determinism`
|
|
82
|
-
- `failureRate`
|
|
83
|
-
- `sharpeningPlan`
|
|
84
|
-
|
|
85
|
-
loop 必须复现用户报告的同一失败。无法构造 loop 时,只能进入 `Evidence Request`,不能冻结根因。
|
|
86
|
-
|
|
87
|
-
## Pattern Analysis
|
|
88
|
-
|
|
89
|
-
调查必须显式选择或排除常见模式:
|
|
90
|
-
|
|
91
|
-
- race condition
|
|
92
|
-
- null propagation
|
|
93
|
-
- state corruption
|
|
94
|
-
- integration failure
|
|
95
|
-
- configuration drift
|
|
96
|
-
- stale cache
|
|
97
|
-
- resource leak
|
|
98
|
-
- performance regression
|
|
99
|
-
- trust boundary drift
|
|
100
|
-
- timing guess / flaky wait
|
|
101
|
-
|
|
102
|
-
模式分析只是检索索引,不是 root cause。
|
|
103
|
-
|
|
104
|
-
## Boundary Probe Matrix
|
|
105
|
-
|
|
106
|
-
多组件链路必须记录每个边界的事实:
|
|
107
|
-
|
|
108
|
-
- `componentBoundary`
|
|
109
|
-
- `inputObserved`
|
|
110
|
-
- `outputObserved`
|
|
111
|
-
- `configEnvObserved`
|
|
112
|
-
- `stateObserved`
|
|
113
|
-
- `verdict`: `pass` / `fail` / `unknown`
|
|
114
|
-
|
|
115
|
-
第一个失败边界决定下一轮调查收缩点;多个边界同时失败时,优先追共同上游。
|
|
116
|
-
|
|
117
|
-
## Backward Trace Chain
|
|
118
|
-
|
|
119
|
-
深层堆栈或坏值来源不明时,必须追到源头:
|
|
120
|
-
|
|
121
|
-
- immediate failure site
|
|
122
|
-
- direct caller
|
|
123
|
-
- caller chain
|
|
124
|
-
- bad value origin
|
|
125
|
-
- original trigger
|
|
126
|
-
- why symptom-site fix is rejected
|
|
127
|
-
|
|
128
|
-
找不到 original trigger 时,不能冻结根因。
|
|
129
|
-
|
|
130
|
-
## Reference Comparison
|
|
131
|
-
|
|
132
|
-
有相似可用实现时,必须记录:
|
|
133
|
-
|
|
134
|
-
- similar working example
|
|
135
|
-
- broken path
|
|
136
|
-
- differences found
|
|
137
|
-
- differences accepted as hypothesis
|
|
138
|
-
- differences ruled out
|
|
139
|
-
|
|
140
|
-
不能用“差不多”跳过差异。
|
|
141
|
-
|
|
142
|
-
## Diagnostic Instrumentation
|
|
143
|
-
|
|
144
|
-
临时探针必须回答一个明确问题:
|
|
145
|
-
|
|
146
|
-
- probe tag
|
|
147
|
-
- probe location
|
|
148
|
-
- question answered
|
|
149
|
-
- command to run
|
|
150
|
-
- expected signal
|
|
151
|
-
- actual signal
|
|
152
|
-
- cleanup requirement
|
|
153
|
-
|
|
154
|
-
探针不是修复。handoff 必须说明删除、保留为正式日志,或转成测试断言。
|
|
155
|
-
|
|
156
|
-
debug 日志必须带唯一前缀,例如 `[DEBUG-FIX123-a4f2]`,确保 cleanup 可以用 grep 验证。
|
|
157
|
-
|
|
158
|
-
## Correct Test Seam
|
|
159
|
-
|
|
160
|
-
修复 handoff 必须记录回归测试是否覆盖真实触发链:
|
|
161
|
-
|
|
162
|
-
- `testSeam`
|
|
163
|
-
- `publicInterfaceExercised`
|
|
164
|
-
- `realTriggerChainCoverage`
|
|
165
|
-
- `whyShallowTestRejected`
|
|
166
|
-
- `ifNoCorrectSeam`
|
|
167
|
-
|
|
168
|
-
没有正确 seam 时,必须把它记录为架构事实,并保留原始 feedback loop 作为修复验证。
|
|
169
|
-
|
|
170
|
-
## Domain And Decision Context
|
|
171
|
-
|
|
172
|
-
调查前先读 cc-devflow 原生上下文:`devflow/specs/INDEX.md`、相关 capability specs、roadmap/backlog handoff、历史 `planning/design.md` / `planning/analysis.md`、`change-meta.json`。
|
|
173
|
-
|
|
174
|
-
- 输出中的领域概念、假设名、测试名使用项目既有词汇
|
|
175
|
-
- 如果根因或修复方向违反 capability spec、roadmap decision 或历史 design decision,必须显式记录冲突和理由
|
|
176
|
-
- 缺失领域词汇是调查信号,不要临时发明同义词掩盖契约缺口
|
|
177
|
-
|
|
178
|
-
## Prior History
|
|
179
|
-
|
|
180
|
-
调查必须记录是否检查了:
|
|
181
|
-
|
|
182
|
-
- `git log --oneline -20 -- <affected-files>`
|
|
183
|
-
- historical `planning/analysis.md`
|
|
184
|
-
- `TODOS.md` / backlog / roadmap
|
|
185
|
-
- previous `report-card.json` findings
|
|
186
|
-
|
|
187
|
-
如果同一区域重复出现 bug,必须标记为 architectural smell candidate。
|
|
188
|
-
|
|
189
|
-
## External Research
|
|
190
|
-
|
|
191
|
-
外部调研必须脱敏:
|
|
192
|
-
|
|
193
|
-
- 不搜索 host、IP、token、customer id、内部路径、SQL、私有 repo 名
|
|
194
|
-
- 只搜索通用错误类别、框架 / 库名、版本、组件名
|
|
195
|
-
- research finding 只能作为候选假设,必须回到本仓库验证
|
|
196
|
-
|
|
197
|
-
## No Code Root Cause
|
|
198
|
-
|
|
199
|
-
如果结论不是代码根因,必须写清:
|
|
200
|
-
|
|
201
|
-
- `rootCauseClass`: `code` / `config` / `environment` / `external` / `timing`
|
|
202
|
-
- why not code root cause
|
|
203
|
-
- monitoring or future evidence needed
|
|
204
|
-
- operator handling after fix
|
|
205
|
-
|
|
206
|
-
环境、外部服务、时序窗口仍然需要证据;不能把调查不足写成外因。
|
|
207
|
-
|
|
208
|
-
## Repair Boundary
|
|
209
|
-
|
|
210
|
-
修复边界至少记录:
|
|
211
|
-
|
|
212
|
-
- affected module
|
|
213
|
-
- allowed files
|
|
214
|
-
- forbidden files
|
|
215
|
-
- expected spec delta
|
|
216
|
-
- verification after fix
|
|
217
|
-
- blast radius file count
|
|
218
|
-
- blast radius risk
|
|
219
|
-
|
|
220
|
-
预计触碰超过 5 个文件时,必须 split / justify / reroute。
|
|
221
|
-
|
|
222
|
-
## Escalation
|
|
223
|
-
|
|
224
|
-
三次假设失败后,不再继续猜。必须记录:
|
|
225
|
-
|
|
226
|
-
- failed hypothesis count
|
|
227
|
-
- attempted evidence
|
|
228
|
-
- why current entry is suspect
|
|
229
|
-
- recommended next option:continue / instrument-and-wait / human-review / reroute-cc-plan
|
|
230
|
-
- evidence request:repro env / HAR / log dump / core dump / timestamped recording / temporary production instrumentation
|
|
26
|
+
- `task.md#Root Cause Contract` is the human truth.
|
|
27
|
+
- `task.md` task blocks are the repair handoff.
|
|
28
|
+
- Git commit records Investigate completion.
|
|
29
|
+
- No process file beyond `task.md`.
|
|
231
30
|
|
|
232
31
|
## Reroute
|
|
233
32
|
|
|
234
|
-
-
|
|
235
|
-
- 发现这不是 bug,而是范围/设计问题 -> `cc-plan`
|
|
236
|
-
- 发现这其实是项目优先级问题 -> `roadmap`
|
|
33
|
+
If the issue is missing product scope, go to `cc-plan`. If it is roadmap priority, go to `cc-roadmap`. If evidence is unavailable, return an Evidence Request.
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.1.1
|
|
4
|
+
|
|
5
|
+
- replace manifest and verification-report wording with `task.md`, fresh evidence, and response-only routing
|
|
6
|
+
- compress required output to queue truth, selected goal, reason, goal packet, and route
|
|
7
|
+
- forbid JSON/status/resume/report process files during next-work selection
|
|
8
|
+
|
|
3
9
|
## 1.0.1
|
|
4
10
|
|
|
5
11
|
- Include unarchived `devflow/changes/<REQ|FIX>-*` directories as next-work candidates before fresh issue selection.
|
|
@@ -33,22 +33,26 @@ find devflow/changes -maxdepth 1 -type d \
|
|
|
33
33
|
|
|
34
34
|
分类规则:
|
|
35
35
|
|
|
36
|
-
- `resume-planning`:
|
|
37
|
-
- `resume-execution`:
|
|
38
|
-
- `resume-check`: tasks
|
|
39
|
-
- `resume-act`:
|
|
36
|
+
- `resume-planning`: `task.md` 还没冻结。
|
|
37
|
+
- `resume-execution`: `task.md` 还有未完成任务。
|
|
38
|
+
- `resume-check`: tasks 完成但缺少当前新鲜验证结论。
|
|
39
|
+
- `resume-act`: 当前验证已过,但 PR / handoff / closeout 未闭合。
|
|
40
40
|
- `archive-closeout`: 已 merged/done,但仍在 active changes 根目录。
|
|
41
41
|
- `archive-blocked`: handoff 写了 `ArchiveSkip`、archive target 冲突或用户要求暂不归档。
|
|
42
42
|
|
|
43
43
|
同一 roadmap 优先级下,优先继续已有 active change,再选择新的 issue。已经在 `devflow/changes/archive/YYYY-MM/` 下的目录不进入普通候选。
|
|
44
44
|
|
|
45
|
-
## Required
|
|
45
|
+
## Required Output
|
|
46
|
+
|
|
47
|
+
Short response only:
|
|
46
48
|
|
|
47
49
|
- Queue truth
|
|
48
|
-
- Selected goal or no-ready-goal
|
|
49
|
-
-
|
|
50
|
+
- Selected goal or `no-ready-goal`
|
|
51
|
+
- Reason
|
|
50
52
|
- Goal Packet when selected
|
|
51
|
-
-
|
|
53
|
+
- Route: `cc-dev` / `cc-roadmap` / `stop`
|
|
54
|
+
|
|
55
|
+
Do not create process files.
|
|
52
56
|
|
|
53
57
|
## No-Ready Reasons
|
|
54
58
|
|