cc-devflow 4.5.11 → 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 +18 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +17 -269
- package/.claude/skills/cc-act/SKILL.md +38 -425
- 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 +18 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +19 -273
- package/.claude/skills/cc-check/SKILL.md +33 -456
- package/.claude/skills/cc-check/references/review-contract.md +12 -147
- package/.claude/skills/cc-dev/CHANGELOG.md +15 -0
- package/.claude/skills/cc-dev/PLAYBOOK.md +1 -1
- package/.claude/skills/cc-dev/SKILL.md +52 -137
- package/.claude/skills/cc-dev/scripts/resolve-cc-devflow.sh +181 -0
- package/.claude/skills/cc-do/CHANGELOG.md +11 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +19 -113
- package/.claude/skills/cc-do/SKILL.md +39 -245
- 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 +16 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +20 -180
- package/.claude/skills/cc-investigate/SKILL.md +64 -246
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +48 -98
- package/.claude/skills/cc-investigate/references/investigation-contract.md +14 -218
- 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 +16 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +22 -161
- package/.claude/skills/cc-plan/SKILL.md +45 -295
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +30 -228
- package/.claude/skills/cc-plan/references/planning-contract.md +24 -161
- 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 +13 -0
- 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 -15
- 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 -40
- package/docs/guides/getting-started.md +8 -8
- package/docs/guides/getting-started.zh-CN.md +8 -8
- package/docs/guides/minimize-artifacts.md +16 -130
- 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 +3 -3
- 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 +2 -5
- 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 -224
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +0 -178
- 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 -874
- 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 -593
- 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 -188
- package/lib/skill-runtime/team-state.js +0 -122
- package/lib/skill-runtime/workflow-context.js +0 -748
|
@@ -1,151 +1,9 @@
|
|
|
1
1
|
# Plan Review Branch
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Read:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
1. `task.md`
|
|
6
|
+
2. relevant roadmap or issue text
|
|
7
|
+
3. affected code/tests/docs
|
|
6
8
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
1. `planning/design.md` or `planning/analysis.md`
|
|
10
|
-
2. `planning/tasks.md`
|
|
11
|
-
3. `planning/task-manifest.json`
|
|
12
|
-
4. `change-meta.json`
|
|
13
|
-
5. related roadmap/spec/docs/code referenced by the plan
|
|
14
|
-
|
|
15
|
-
If no change directory exists, review the user-provided plan text and clearly mark missing durable artifacts.
|
|
16
|
-
|
|
17
|
-
## Review Shape
|
|
18
|
-
|
|
19
|
-
First select applicable facets, then create one or more review nodes for each selected facet. Do not load every facet when the plan is small, but do not skip a selected facet merely to keep the answer short.
|
|
20
|
-
|
|
21
|
-
For complex plans, assign selected facets to independent read-only reviewers when subagent support is available. Strategy, engineering, design, DX, and TOC reviewers should not share intermediate conclusions; the main thread merges their findings after each reviewer returns.
|
|
22
|
-
|
|
23
|
-
### 1. Strategy Facet
|
|
24
|
-
|
|
25
|
-
Use a native strategy review question set:
|
|
26
|
-
|
|
27
|
-
- Is this the right problem?
|
|
28
|
-
- Is the stated user/business outcome direct or a proxy?
|
|
29
|
-
- What happens if we do nothing?
|
|
30
|
-
- What does the 12-month ideal look like?
|
|
31
|
-
- What existing code or workflow already solves part of this?
|
|
32
|
-
|
|
33
|
-
Output:
|
|
34
|
-
|
|
35
|
-
```text
|
|
36
|
-
CURRENT -> THIS PLAN -> 12-MONTH IDEAL
|
|
37
|
-
```
|
|
38
|
-
|
|
39
|
-
Node examples:
|
|
40
|
-
|
|
41
|
-
- `plan.strategy.problem-fit`
|
|
42
|
-
- `plan.strategy.outcome-signal`
|
|
43
|
-
- `plan.strategy.do-nothing-risk`
|
|
44
|
-
|
|
45
|
-
### 2. Engineering Facet
|
|
46
|
-
|
|
47
|
-
Review:
|
|
48
|
-
|
|
49
|
-
- component boundaries
|
|
50
|
-
- data flow and shadow paths
|
|
51
|
-
- state transitions
|
|
52
|
-
- security boundaries
|
|
53
|
-
- rollback shape
|
|
54
|
-
- testability seam
|
|
55
|
-
- parallelization risk
|
|
56
|
-
|
|
57
|
-
Required diagram for non-trivial plans:
|
|
58
|
-
|
|
59
|
-
```text
|
|
60
|
-
Entry -> validate -> transform -> persist -> output
|
|
61
|
-
| | | | |
|
|
62
|
-
nil invalid exception conflict stale
|
|
63
|
-
empty wrong type timeout duplicate partial
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
Node examples:
|
|
67
|
-
|
|
68
|
-
- `plan.engineering.boundaries`
|
|
69
|
-
- `plan.engineering.data-flow`
|
|
70
|
-
- `plan.engineering.state-transitions`
|
|
71
|
-
- `plan.engineering.testability`
|
|
72
|
-
|
|
73
|
-
### 3. Design Facet
|
|
74
|
-
|
|
75
|
-
Run only for user-facing UI or interaction flows.
|
|
76
|
-
|
|
77
|
-
Check:
|
|
78
|
-
|
|
79
|
-
- first, second, third thing the user sees
|
|
80
|
-
- loading / empty / error / success / partial states
|
|
81
|
-
- responsive and accessibility intent
|
|
82
|
-
- generic UI or AI slop risk
|
|
83
|
-
- whether live design review will be needed after implementation
|
|
84
|
-
|
|
85
|
-
Node examples:
|
|
86
|
-
|
|
87
|
-
- `plan.design.primary-flow`
|
|
88
|
-
- `plan.design.states`
|
|
89
|
-
- `plan.design.responsive-accessibility`
|
|
90
|
-
|
|
91
|
-
### 4. DX Facet
|
|
92
|
-
|
|
93
|
-
Run only for API, CLI, SDK, package, docs, agent skill, MCP, or developer/operator surfaces.
|
|
94
|
-
|
|
95
|
-
Check:
|
|
96
|
-
|
|
97
|
-
- target developer/operator persona
|
|
98
|
-
- time to first value
|
|
99
|
-
- install/run/debug/upgrade path
|
|
100
|
-
- actionable errors: problem + cause + fix
|
|
101
|
-
- copy-paste examples and escape hatches
|
|
102
|
-
|
|
103
|
-
Node examples:
|
|
104
|
-
|
|
105
|
-
- `plan.dx.first-value`
|
|
106
|
-
- `plan.dx.errors`
|
|
107
|
-
- `plan.dx.examples`
|
|
108
|
-
|
|
109
|
-
## TOC Root-Cause Pass
|
|
110
|
-
|
|
111
|
-
For complex bugs, use:
|
|
112
|
-
|
|
113
|
-
1. Current reality tree: symptoms, causes, enabling conditions.
|
|
114
|
-
2. Conflict diagram: why the obvious fix conflicts with a real need.
|
|
115
|
-
3. Future reality tree: what the proposed fix changes and what it may break.
|
|
116
|
-
|
|
117
|
-
If the root cause is not proven, reroute to `cc-investigate`, not `cc-do`.
|
|
118
|
-
|
|
119
|
-
Record each TOC pass as a separate node so the review can resume:
|
|
120
|
-
|
|
121
|
-
- current reality tree
|
|
122
|
-
- conflict diagram
|
|
123
|
-
- future reality tree
|
|
124
|
-
|
|
125
|
-
## Code Smell Pass In Planning
|
|
126
|
-
|
|
127
|
-
Plans can contain smells before code exists:
|
|
128
|
-
|
|
129
|
-
- repeated implementation steps with slight variations
|
|
130
|
-
- parallel data sources
|
|
131
|
-
- task split by technical layer instead of behavior
|
|
132
|
-
- fake abstraction or one-adapter seam
|
|
133
|
-
- missing owner for shared state
|
|
134
|
-
- hand-wavy "handle edge cases" or "add validation"
|
|
135
|
-
|
|
136
|
-
Each planning smell must become a plan finding and route to `cc-plan`.
|
|
137
|
-
|
|
138
|
-
## Output Requirements
|
|
139
|
-
|
|
140
|
-
Record in `review-ledger.jsonl` and render on-demand Markdown when a human report is needed:
|
|
141
|
-
|
|
142
|
-
- plan review nodes checked, skipped, or blocked
|
|
143
|
-
- plan reviewer agents used or fallback reason
|
|
144
|
-
- plan artifacts read
|
|
145
|
-
- strategy/engineering/design/DX facets used
|
|
146
|
-
- diagrams produced
|
|
147
|
-
- in-scope bad smells
|
|
148
|
-
- decisions needed
|
|
149
|
-
- reroute recommendation
|
|
150
|
-
|
|
151
|
-
If any plan facet changes the task list or implementation contract, route to `cc-plan`.
|
|
9
|
+
Find scope, architecture, test-strategy, and ambiguity problems. Report findings in the response only. Do not write review files.
|
|
@@ -1,221 +1,13 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Review Methods
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Pick only the methods that match the current risk:
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
- diff review
|
|
6
|
+
- test-quality review
|
|
7
|
+
- security review
|
|
8
|
+
- performance review
|
|
9
|
+
- API contract review
|
|
10
|
+
- UI/browser review
|
|
11
|
+
- documentation/PR body review
|
|
6
12
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
| Risk | Method |
|
|
10
|
-
| --- | --- |
|
|
11
|
-
| unclear goal | goal tree |
|
|
12
|
-
| repeated symptom | current reality tree |
|
|
13
|
-
| hidden tradeoff | conflict diagram |
|
|
14
|
-
| uncertain fix impact | future reality tree |
|
|
15
|
-
| implementation complexity | logic tree and smell scan |
|
|
16
|
-
| UI/runtime mismatch | E2E/plugin verification |
|
|
17
|
-
| code quality or simplification risk | cc-simplify reference plus smell scan |
|
|
18
|
-
| broad implementation diff | risk-lane review swarm profile |
|
|
19
|
-
|
|
20
|
-
## Review Plan Nodes
|
|
21
|
-
|
|
22
|
-
Before findings, create ordered nodes:
|
|
23
|
-
|
|
24
|
-
```text
|
|
25
|
-
R001 plan.strategy.outcome
|
|
26
|
-
target: planning/design.md
|
|
27
|
-
method: goal tree
|
|
28
|
-
check: outcome and scope consistency
|
|
29
|
-
status: pending
|
|
30
|
-
|
|
31
|
-
R002 plan.engineering.data-flow
|
|
32
|
-
target: planning/design.md + referenced code
|
|
33
|
-
method: engineering facet
|
|
34
|
-
check: single truth source and state transitions
|
|
35
|
-
status: pending
|
|
36
|
-
```
|
|
37
|
-
|
|
38
|
-
Node rules:
|
|
39
|
-
|
|
40
|
-
- one node reviews one coherent question, artifact, or changed surface
|
|
41
|
-
- every selected method creates at least one node
|
|
42
|
-
- every changed file or user-facing surface is assigned to a node or explicitly skipped
|
|
43
|
-
- every node has an owner: `main` or a named read-only reviewer
|
|
44
|
-
- every node ends as `checked`, `skipped`, or `blocked`
|
|
45
|
-
- no finding limit exists while nodes remain pending
|
|
46
|
-
- when a prior ledger exists, reuse checked nodes only if their target and dependencies did not change
|
|
47
|
-
|
|
48
|
-
## Independent Reviewer Assignment
|
|
49
|
-
|
|
50
|
-
Use subagents to preserve independent context when the host supports them.
|
|
51
|
-
|
|
52
|
-
Assignment rules:
|
|
53
|
-
|
|
54
|
-
- Assign independent reviewers by facet, not by random file chunks.
|
|
55
|
-
- Keep each reviewer packet self-contained: scope, delta, node ids, required artifacts, reference to use, and output schema.
|
|
56
|
-
- Do not ask one reviewer to wait for another reviewer result unless the dependency is explicit in `review-ledger.jsonl`.
|
|
57
|
-
- Do not assign two reviewers to the same node unless a critical finding needs a second opinion.
|
|
58
|
-
- Main thread validates reviewer evidence before final findings.
|
|
59
|
-
|
|
60
|
-
Reviewer result states:
|
|
61
|
-
|
|
62
|
-
```text
|
|
63
|
-
accepted -> finding has concrete in-scope evidence
|
|
64
|
-
merged -> duplicate finding folded into stronger finding
|
|
65
|
-
downgraded -> real note but not blocking or confidence too low
|
|
66
|
-
rejected -> out-of-scope, stale, speculative, or contradicted by evidence
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
Record these states in `review-ledger.jsonl` or on-demand rendered Markdown and preserve raw reviewer output in `review-agent-results.jsonl`.
|
|
70
|
-
|
|
71
|
-
## Risk-Lane Review Swarm Profile
|
|
72
|
-
|
|
73
|
-
Use this profile when a broad implementation diff, PR landing review, or mixed review benefits from independent read-only context. The profile is a default decomposition, not a requirement to manufacture findings.
|
|
74
|
-
|
|
75
|
-
| Lane | Reviewer question |
|
|
76
|
-
| --- | --- |
|
|
77
|
-
| intent-regression | Does the diff match the intended behavior without extra behavior drift, broken edge cases, fallback loss, or caller/callee contract drift? |
|
|
78
|
-
| security-privacy | Did the diff weaken auth, validation, secret handling, sensitive data boundaries, defaults, or trust of external input? |
|
|
79
|
-
| performance-reliability | Did the diff add duplicate work, hot-path cost, missing cleanup, retry storms, ordering races, or brittle failure handling? |
|
|
80
|
-
| contracts-coverage | Did the diff miss API/schema/type/config/flag alignment, migration fallout, regression tests, logs, metrics, assertions, or error paths? |
|
|
81
|
-
|
|
82
|
-
Small diffs may use one combined reviewer that covers all lanes. Large or multi-surface diffs should assign separate reviewers for the highest-risk lanes when the host supports subagents.
|
|
83
|
-
|
|
84
|
-
The main thread owns aggregation:
|
|
85
|
-
|
|
86
|
-
- Merge duplicate findings under the clearest evidence.
|
|
87
|
-
- Reject style preferences, nits, and speculative concerns with no concrete impact.
|
|
88
|
-
- Downgrade low-confidence notes unless they point to critical impact.
|
|
89
|
-
- Convert intent-unclear claims into decision questions instead of findings.
|
|
90
|
-
- Order final findings by severity, confidence, and current-scope impact.
|
|
91
|
-
|
|
92
|
-
## Stateful Delta Review
|
|
93
|
-
|
|
94
|
-
Use git and prior records to avoid repeating stale work:
|
|
95
|
-
|
|
96
|
-
1. Find the previous reviewed SHA from `review-ledger.jsonl`, falling back to legacy `cc-review-ledger.jsonl` or `cc-review-report.md`.
|
|
97
|
-
2. Compare `git diff <previous-sha>...HEAD` when possible.
|
|
98
|
-
3. If no previous SHA exists, compare against the base branch or reviewed artifact timestamps.
|
|
99
|
-
4. Re-review changed nodes and dependent nodes.
|
|
100
|
-
5. Preserve previous clean nodes only when their target content and assumptions are unchanged.
|
|
101
|
-
|
|
102
|
-
If git cannot identify the delta, mark the delta source as `unknown` and review the full in-scope surface.
|
|
103
|
-
|
|
104
|
-
## Thinking Tools
|
|
105
|
-
|
|
106
|
-
### Goal Tree
|
|
107
|
-
|
|
108
|
-
Use when the plan has too many proposed actions and not enough outcome clarity.
|
|
109
|
-
|
|
110
|
-
```text
|
|
111
|
-
GOAL
|
|
112
|
-
├── necessary condition A
|
|
113
|
-
│ ├── measurable signal
|
|
114
|
-
│ └── blocked by
|
|
115
|
-
├── necessary condition B
|
|
116
|
-
└── NOT IN SCOPE
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
### Current Reality Tree
|
|
120
|
-
|
|
121
|
-
Use for bugs and recurring failures.
|
|
122
|
-
|
|
123
|
-
```text
|
|
124
|
-
SYMPTOM
|
|
125
|
-
├── direct cause
|
|
126
|
-
│ └── deeper cause
|
|
127
|
-
├── enabling condition
|
|
128
|
-
└── missing control
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
### Conflict Diagram
|
|
132
|
-
|
|
133
|
-
Use when two requirements appear incompatible.
|
|
134
|
-
|
|
135
|
-
```text
|
|
136
|
-
Objective
|
|
137
|
-
├── Need A -> Want X
|
|
138
|
-
└── Need B -> Want not-X
|
|
139
|
-
Assumption to break: ...
|
|
140
|
-
```
|
|
141
|
-
|
|
142
|
-
### Future Reality Tree
|
|
143
|
-
|
|
144
|
-
Use before recommending a non-trivial redesign.
|
|
145
|
-
|
|
146
|
-
```text
|
|
147
|
-
CHANGE
|
|
148
|
-
├── desired effect
|
|
149
|
-
├── possible negative branch
|
|
150
|
-
│ └── prevention
|
|
151
|
-
└── verification signal
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
### Logic Tree
|
|
155
|
-
|
|
156
|
-
Use for implementation reviews.
|
|
157
|
-
|
|
158
|
-
```text
|
|
159
|
-
Entry point
|
|
160
|
-
├── path A
|
|
161
|
-
│ ├── happy
|
|
162
|
-
│ ├── empty
|
|
163
|
-
│ └── error
|
|
164
|
-
└── path B
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
## Code Smell Taxonomy
|
|
168
|
-
|
|
169
|
-
Only report smells inside the current requirement blast radius or smells made worse by the current work.
|
|
170
|
-
|
|
171
|
-
| Smell | Review question | Preferred fix shape |
|
|
172
|
-
| --- | --- | --- |
|
|
173
|
-
| rigidity | Does a small change force unrelated edits? | move decision to one owner |
|
|
174
|
-
| duplication | Is the same logic repeated with small variations? | reuse existing helper or make one narrow helper |
|
|
175
|
-
| cycle | Do modules know each other's internals? | invert dependency or extract boundary |
|
|
176
|
-
| fragility | Can one change break unrelated behavior? | isolate side effects and add focused tests |
|
|
177
|
-
| obscurity | Is intent hidden behind clever names or control flow? | rename, split, or make data shape explicit |
|
|
178
|
-
| data-clump | Do fields always travel together? | group them into one object/value |
|
|
179
|
-
| unnecessary-complexity | Is abstraction solving a hypothetical future? | delete seam or collapse to direct code |
|
|
180
|
-
|
|
181
|
-
## Severity
|
|
182
|
-
|
|
183
|
-
- `critical`: ships wrong behavior, data/security risk, silent failure, broken root cause, or impossible verification.
|
|
184
|
-
- `important`: likely maintenance, test, UX, DX, performance, or operability problem in current scope.
|
|
185
|
-
- `advisory`: good improvement but not required for this change.
|
|
186
|
-
|
|
187
|
-
## Confidence
|
|
188
|
-
|
|
189
|
-
- `9-10`: directly verified in code, artifact, command output, UI run, or log.
|
|
190
|
-
- `7-8`: strong evidence from nearby patterns and diff.
|
|
191
|
-
- `5-6`: plausible but needs confirmation; mark as verify-first.
|
|
192
|
-
- `<5`: do not put in main findings unless critical impact.
|
|
193
|
-
|
|
194
|
-
## Decision Questions
|
|
195
|
-
|
|
196
|
-
Ask only when a finding requires user judgment. Do not stop the whole review at the first decision unless that answer blocks the next review node.
|
|
197
|
-
|
|
198
|
-
Use:
|
|
199
|
-
|
|
200
|
-
```text
|
|
201
|
-
D<N> - <decision title>
|
|
202
|
-
Evidence: <concrete artifact/path/line/log/UI action>
|
|
203
|
-
Risk: <what breaks if ignored>
|
|
204
|
-
Recommendation: A because <principle>
|
|
205
|
-
Options:
|
|
206
|
-
A) <fix now> (recommended) - impact
|
|
207
|
-
B) <defer> - impact
|
|
208
|
-
C) <skip> - impact
|
|
209
|
-
STOP: wait for the user answer before continuing.
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
After the node pass, present a decision queue:
|
|
213
|
-
|
|
214
|
-
```text
|
|
215
|
-
Decision Queue
|
|
216
|
-
├── D1 scope or architecture decision
|
|
217
|
-
├── D2 user-visible behavior decision
|
|
218
|
-
└── D3 test strategy decision
|
|
219
|
-
```
|
|
220
|
-
|
|
221
|
-
Then ask decisions one by one. Do not batch unrelated issues inside one decision.
|
|
13
|
+
Each finding needs evidence, impact, recommendation, and route. Do not write process files.
|
|
@@ -3,24 +3,10 @@
|
|
|
3
3
|
set -euo pipefail
|
|
4
4
|
|
|
5
5
|
# ------------------------------------------------------------
|
|
6
|
-
# 收集 cc-review
|
|
6
|
+
# 收集 cc-review 的 Git 增量上下文,不读取过程文件
|
|
7
7
|
# ------------------------------------------------------------
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
base_ref="${2:-origin/main}"
|
|
11
|
-
|
|
12
|
-
if [[ -z "$change_dir" ]]; then
|
|
13
|
-
echo "Usage: collect-review-context.sh <change-dir> [base-ref]" >&2
|
|
14
|
-
exit 2
|
|
15
|
-
fi
|
|
16
|
-
|
|
17
|
-
review_dir="$change_dir/review"
|
|
18
|
-
ledger="$review_dir/review-ledger.jsonl"
|
|
19
|
-
legacy_ledger="$review_dir/cc-review-ledger.jsonl"
|
|
20
|
-
report="$review_dir/cc-review-report.md"
|
|
21
|
-
plan="$review_dir/cc-review-plan.md"
|
|
22
|
-
findings="$review_dir/review-findings.json"
|
|
23
|
-
legacy_findings="$review_dir/cc-review-findings.json"
|
|
9
|
+
base_ref="${1:-origin/main}"
|
|
24
10
|
|
|
25
11
|
head_sha="$(git rev-parse HEAD)"
|
|
26
12
|
base_sha=""
|
|
@@ -28,60 +14,15 @@ if git rev-parse --verify "$base_ref" >/dev/null 2>&1; then
|
|
|
28
14
|
base_sha="$(git merge-base "$base_ref" HEAD)"
|
|
29
15
|
fi
|
|
30
16
|
|
|
31
|
-
reviewed_sha=""
|
|
32
|
-
ledger_for_read="$ledger"
|
|
33
|
-
if [[ ! -f "$ledger_for_read" && -f "$legacy_ledger" ]]; then
|
|
34
|
-
ledger_for_read="$legacy_ledger"
|
|
35
|
-
fi
|
|
36
|
-
|
|
37
|
-
if [[ -f "$ledger_for_read" ]]; then
|
|
38
|
-
reviewed_sha="$(
|
|
39
|
-
sed -n 's/.*"headSha"[[:space:]]*:[[:space:]]*"\([^"]*\)".*/\1/p' "$ledger_for_read" |
|
|
40
|
-
tail -n 1
|
|
41
|
-
)"
|
|
42
|
-
fi
|
|
43
|
-
|
|
44
|
-
if [[ -z "$reviewed_sha" && -f "$report" ]]; then
|
|
45
|
-
reviewed_sha="$(
|
|
46
|
-
sed -n 's/.*Reviewed head SHA:[[:space:]]*`\?\([0-9a-f]\{7,40\}\)`\?.*/\1/p' "$report" |
|
|
47
|
-
tail -n 1
|
|
48
|
-
)"
|
|
49
|
-
fi
|
|
50
|
-
|
|
51
|
-
diff_base="$base_sha"
|
|
52
|
-
if [[ -n "$reviewed_sha" ]] && git rev-parse --verify "$reviewed_sha^{commit}" >/dev/null 2>&1; then
|
|
53
|
-
diff_base="$reviewed_sha"
|
|
54
|
-
fi
|
|
55
|
-
|
|
56
17
|
echo "CC_REVIEW_CONTEXT"
|
|
57
|
-
echo "change_dir=$change_dir"
|
|
58
|
-
echo "review_dir=$review_dir"
|
|
59
18
|
echo "base_ref=$base_ref"
|
|
60
19
|
echo "base_sha=${base_sha:-unknown}"
|
|
61
|
-
echo "reviewed_sha=${reviewed_sha:-none}"
|
|
62
20
|
echo "head_sha=$head_sha"
|
|
63
|
-
echo "diff_base=${diff_base:-unknown}"
|
|
64
|
-
|
|
65
|
-
echo
|
|
66
|
-
echo "PRIOR_REVIEW_FILES"
|
|
67
|
-
for file in "$ledger" "$findings" "$plan" "$report" "$legacy_ledger" "$legacy_findings"; do
|
|
68
|
-
if [[ -f "$file" ]]; then
|
|
69
|
-
printf 'present %s\n' "$file"
|
|
70
|
-
else
|
|
71
|
-
printf 'missing %s\n' "$file"
|
|
72
|
-
fi
|
|
73
|
-
done
|
|
74
21
|
|
|
75
22
|
echo
|
|
76
23
|
echo "CHANGED_FILES"
|
|
77
|
-
if [[ -n "$
|
|
78
|
-
git diff --name-status "$
|
|
24
|
+
if [[ -n "$base_sha" ]]; then
|
|
25
|
+
git diff --name-status "$base_sha...HEAD"
|
|
79
26
|
else
|
|
80
27
|
git diff --name-status HEAD
|
|
81
28
|
fi
|
|
82
|
-
|
|
83
|
-
if [[ -f "$ledger_for_read" ]]; then
|
|
84
|
-
echo
|
|
85
|
-
echo "RECENT_LEDGER"
|
|
86
|
-
tail -n 20 "$ledger_for_read"
|
|
87
|
-
fi
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
|
|
41
41
|
1. 现有 `devflow/roadmap.json` / `devflow/ROADMAP.md` / `devflow/BACKLOG.md`
|
|
42
42
|
2. `CLAUDE.md`、`README*`、`TODOS.md`
|
|
43
|
-
3. 项目语言和持久决策:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog
|
|
43
|
+
3. 项目语言和持久决策:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog
|
|
44
44
|
4. 最近相关 docs / specs / plans
|
|
45
45
|
5. 最近相关提交、当前工作树状态、正在推进的 requirement
|
|
46
46
|
6. 现实 forcing functions:deadline、distribution、资源、依赖、当前卡点
|
|
@@ -35,7 +35,7 @@ writes:
|
|
|
35
35
|
when: "legacy projects are being migrated into devflow/roadmap.json"
|
|
36
36
|
entry_gate:
|
|
37
37
|
- "Read current roadmap, backlog, related capability specs, and surrounding repo context before proposing direction."
|
|
38
|
-
- "Load cc-devflow native language and durable-decision sources (`devflow/specs/`, current roadmap/backlog, prior `planning/design.md` or `planning/analysis.md
|
|
38
|
+
- "Load cc-devflow native language and durable-decision sources (`devflow/specs/`, current roadmap/backlog, prior `planning/design.md` or `planning/analysis.md`) before naming stages, capabilities, users, or backlog items."
|
|
39
39
|
- "Confirm this is a project-direction problem, not a single requirement execution problem."
|
|
40
40
|
- "Run the Project Direction Gate before evidence-maturity routing: classify the user's goal as founder/business, internal company project, hackathon/demo, open-source/research, learning, side project, infrastructure, or recovery."
|
|
41
41
|
- "Classify planning posture and evidence maturity before selecting the route or forcing questions."
|
|
@@ -156,7 +156,7 @@ Builder 模式(hackathon、open-source/research、learning、side-project)
|
|
|
156
156
|
2. 先判断这是“项目方向问题”还是“单 requirement 执行问题”。
|
|
157
157
|
3. 如果输入是多个独立子系统的混合目标,先拆成阶段和 `RM` 候选;不要继续追问某个子系统的实现细节。
|
|
158
158
|
4. 先做一次上下文扫描,不能跳过现有事实直接写愿景。
|
|
159
|
-
5. 先读取 cc-devflow 原生项目语言与持久决策:`devflow/specs/INDEX.md`、相关 capability specs、`devflow/ROADMAP.md`、`devflow/BACKLOG.md
|
|
159
|
+
5. 先读取 cc-devflow 原生项目语言与持久决策:`devflow/specs/INDEX.md`、相关 capability specs、`devflow/ROADMAP.md`、`devflow/BACKLOG.md`;不存在时静默跳过,但术语或决策冲突必须写进 roadmap。
|
|
160
160
|
6. 方向没被批准前,不准把 roadmap 偷偷下放成实现任务。
|
|
161
161
|
|
|
162
162
|
## Context Sweep
|
|
@@ -165,7 +165,7 @@ Builder 模式(hackathon、open-source/research、learning、side-project)
|
|
|
165
165
|
|
|
166
166
|
1. 当前 `devflow/ROADMAP.md` / `devflow/BACKLOG.md` 的主线、版本、已停放事项。
|
|
167
167
|
2. `devflow/specs/INDEX.md` 与相关 capability specs 的边界、状态、open gaps。
|
|
168
|
-
3. 项目语言 / 决策上下文:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog
|
|
168
|
+
3. 项目语言 / 决策上下文:`devflow/specs/INDEX.md`、相关 capability specs、当前 roadmap/backlog 和长期 design decision。
|
|
169
169
|
4. `CLAUDE.md`、`README*`、`TODOS.md`、最近相关 docs / specs / plans。
|
|
170
170
|
5. 最近相关提交、当前分支脏状态、正在进行中的 requirement。
|
|
171
171
|
6. 真实 forcing functions:deadline、发布窗口、资源上限、依赖、distribution、adoption / trust / delivery 卡点。
|
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# CC-Simplify Skill Changelog
|
|
2
2
|
|
|
3
|
+
## v1.4.2 - 2026-05-13
|
|
4
|
+
|
|
5
|
+
- replace reviewer-agent JSONL findings with short response-only finding lines
|
|
6
|
+
- keep dedupe and confidence rules without requiring JSON schemas or process files
|
|
7
|
+
- clarify that simplify output is a compact report in the response, not a durable JSON document
|
|
8
|
+
- remove old no-op and verification-report wording from simplify output rules
|
|
9
|
+
|
|
3
10
|
## v1.4.1 - 2026-05-10
|
|
4
11
|
|
|
5
12
|
- make `cc-simplify` itself the explicit trigger for automatic read-only subagent review in ClaudeCode and Codex environments
|
|
@@ -1,7 +1,17 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: cc-simplify
|
|
3
|
-
version: 1.4.
|
|
3
|
+
version: 1.4.2
|
|
4
4
|
description: "Use when changed code needs an automatic subagent-backed simplification pass for scope drift, reuse, code quality, efficiency, test quality, and confidence-gated smell fixes before cc-check or cc-act."
|
|
5
|
+
reads:
|
|
6
|
+
- devflow/changes/<change-key>/task.md
|
|
7
|
+
- current Git diff
|
|
8
|
+
writes:
|
|
9
|
+
- path: code changes
|
|
10
|
+
durability: working-tree
|
|
11
|
+
required: false
|
|
12
|
+
- path: test changes
|
|
13
|
+
durability: working-tree
|
|
14
|
+
required: false
|
|
5
15
|
---
|
|
6
16
|
|
|
7
17
|
# CC-Simplify
|
|
@@ -30,7 +40,7 @@ ONLY FIX CONFIRMED SMELLS. DO NOT BEAUTIFY BY GUESS.
|
|
|
30
40
|
- stack signals: `package.json` / `pyproject.toml` / `go.mod` / `Cargo.toml` / etc.
|
|
31
41
|
- test framework signals: `jest` / `vitest` / `pytest` / `go test` / etc.
|
|
32
42
|
- scope flags: API / auth / backend / frontend / migration / docs / release
|
|
33
|
-
- related `
|
|
43
|
+
- related `task.md` / capability specs
|
|
34
44
|
- already-run verification, if any
|
|
35
45
|
3. 如果变更跨多个互不相关模块,先按模块分组;不要让一个 cleanup pass 变成大扫除。
|
|
36
46
|
4. 只审当前 diff 新增或本次改动扩大后的坏味道。历史债只在它阻挡当前交付或被本次 diff 放大时进入清理范围。
|
|
@@ -50,7 +60,7 @@ ONLY FIX CONFIRMED SMELLS. DO NOT BEAUTIFY BY GUESS.
|
|
|
50
60
|
- 不依赖 repo-local `.codex/agents/*.toml` 自定义 agent 名称来完成核心流程。自定义 agent 可以作为增强,但主流程必须能依赖 Codex 内置 `explorer` / `default` 或宿主内置 subAgent 机制。
|
|
51
61
|
- 只把只读评审交给智能体;主线程负责最终判断和实际编辑。
|
|
52
62
|
- 每个智能体拿到同一份完整 diff、相关任务/设计/spec 路径、当前 repo 根目录。
|
|
53
|
-
-
|
|
63
|
+
- 智能体不能改文件,只输出短 findings;不要写报告文件。
|
|
54
64
|
- 如果当前运行时没有子智能体工具,或工具调用被上层策略禁止,主线程按同样清单顺序执行,并在报告里写 `Agents used: no (subagent tool unavailable)`;不要伪造子智能体结果。
|
|
55
65
|
- 小 diff 也要尝试启动子智能体;如果资源或宿主限制不适合三路并行,至少启动一个合并维度的只读 reviewer。
|
|
56
66
|
- 条件 specialist 只在对应 scope 出现时启用;不要为了“完整”启动无关评审。
|
|
@@ -66,22 +76,17 @@ ONLY FIX CONFIRMED SMELLS. DO NOT BEAUTIFY BY GUESS.
|
|
|
66
76
|
```text
|
|
67
77
|
你是 cc-simplify 的只读评审智能体。不要编辑文件。
|
|
68
78
|
输入:repo root、完整 diff、相关任务/spec 路径、你的评审维度。
|
|
69
|
-
输出:每行一个
|
|
79
|
+
输出:每行一个 finding;没有发现时只输出 NO FINDINGS。
|
|
70
80
|
没有证据的猜测不要输出为 finding。
|
|
71
81
|
```
|
|
72
82
|
|
|
73
|
-
Finding
|
|
83
|
+
Finding line shape:
|
|
74
84
|
|
|
75
|
-
```
|
|
76
|
-
|
|
85
|
+
```text
|
|
86
|
+
severity | confidence | file:line | category | evidence | fix | route
|
|
77
87
|
```
|
|
78
88
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
- 必填:`severity`、`confidence`、`path`、`category`、`summary`、`evidence`、`fix`、`specialist`
|
|
82
|
-
- 可选:`line`、`fingerprint`、`test_stub`
|
|
83
|
-
- `confidence` 用 1-10;低于 5 的 finding 不能进入自动修复列表。
|
|
84
|
-
- `test_stub` 只给能用一个小测试抓住的问题;架构判断不要伪造测试。
|
|
89
|
+
字段要求:`severity`、`confidence`、`file:line`、`category`、`evidence`、`fix`、`route`。`confidence` 用 1-10;低于 5 的 finding 不能进入自动修复列表。
|
|
85
90
|
|
|
86
91
|
### 推荐三个智能体
|
|
87
92
|
|
|
@@ -93,7 +98,7 @@ Finding JSONL schema:
|
|
|
93
98
|
|
|
94
99
|
1. 是否遗漏了任务要求。
|
|
95
100
|
2. 是否多做了未要求功能。
|
|
96
|
-
3. 是否改变行为、边界或 invariant,却没有同步 `
|
|
101
|
+
3. 是否改变行为、边界或 invariant,却没有同步 `task.md` 或 capability spec。
|
|
97
102
|
4. 是否把 bug 修复伪装成新需求,或把新需求伪装成 cleanup。
|
|
98
103
|
5. 是否应该 reroute:
|
|
99
104
|
- 设计范围变了 -> `cc-plan`
|
|
@@ -126,7 +131,7 @@ Finding JSONL schema:
|
|
|
126
131
|
2. 热路径膨胀:启动、请求、渲染、轮询、事件处理里新增阻塞工作。
|
|
127
132
|
3. 重复 IO / 网络 / API 调用、N+1、整文件读取但只需要局部数据。
|
|
128
133
|
4. missed concurrency:互不依赖的读文件、搜索、请求、验证命令被串行执行。
|
|
129
|
-
5.
|
|
134
|
+
5. redundant update:轮询或 reducer 明明没有变化却通知下游。
|
|
130
135
|
6. TOCTOU:先检查文件存在再操作;应直接操作并处理错误。
|
|
131
136
|
7. 内存和生命周期:无界数组/map/cache、listener 未清理、timer 未释放。
|
|
132
137
|
8. 测试坏味道:
|
|
@@ -152,13 +157,13 @@ Finding JSONL schema:
|
|
|
152
157
|
|
|
153
158
|
## Phase 3: 汇总和去重 findings
|
|
154
159
|
|
|
155
|
-
先解析
|
|
160
|
+
先解析 finding lines;`NO FINDINGS` 表示该 source 没有发现。无法定位文件、证据或修复路径的行丢弃。
|
|
156
161
|
|
|
157
162
|
Fingerprint 规则:
|
|
158
163
|
|
|
159
|
-
1.
|
|
160
|
-
2.
|
|
161
|
-
3.
|
|
164
|
+
1. 优先用 `{file}:{line}:{category}`。
|
|
165
|
+
2. 没有 `line` 时用 `{file}:{category}:{evidence}`。
|
|
166
|
+
3. 证据相同、修复相同的 finding 合并。
|
|
162
167
|
|
|
163
168
|
同一 fingerprint 的 finding 合并:
|
|
164
169
|
|
|
@@ -221,7 +226,7 @@ Decision:
|
|
|
221
226
|
|
|
222
227
|
1. **代码事实**:打开对应文件和相邻实现,确认问题真实存在。
|
|
223
228
|
2. **使用事实**:用 `rg` 查调用方,确认不是 reviewer 缺上下文。
|
|
224
|
-
3. **需求事实**:对照 `
|
|
229
|
+
3. **需求事实**:对照 `task.md`、capability spec,确认没有误删必要行为。
|
|
225
230
|
4. **验证事实**:明确修复后用什么命令或检查证明没有回归。
|
|
226
231
|
|
|
227
232
|
架构类 finding 还必须过删除测试:想象删除这个模块、helper、wrapper 或 seam。
|
|
@@ -283,7 +288,7 @@ Decision:
|
|
|
283
288
|
- Verification run:
|
|
284
289
|
- Next step: `cc-check` / `cc-act` / `cc-plan` / `cc-investigate`
|
|
285
290
|
|
|
286
|
-
如果 `cc-simplify` 修改了代码或验证口径,下一步必须回 `cc-check
|
|
291
|
+
如果 `cc-simplify` 修改了代码或验证口径,下一步必须回 `cc-check`,不能带旧验证结论继续 `cc-act`。
|
|
287
292
|
|
|
288
293
|
## Do Not
|
|
289
294
|
|