cc-devflow 4.1.6 → 4.3.0
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/commands/core/architecture.md +30 -0
- package/.claude/commands/core/guidelines.md +25 -0
- package/.claude/commands/core/roadmap.md +29 -0
- package/.claude/commands/core/style.md +18 -0
- package/.claude/commands/flow/CLAUDE.md +0 -4
- package/.claude/docs/examples/design-inspiration-pool.md +59 -0
- package/.claude/docs/examples/ui-prototype-constitution-checklist.md +75 -0
- package/.claude/docs/implementation-summary-v7.md +449 -0
- package/.claude/docs/spec-format-guide.md +349 -0
- package/.claude/docs/state-consolidation-design.md +323 -0
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +85 -386
- package/.claude/docs/templates/DESIGN_TEMPLATE.md +157 -0
- package/.claude/docs/templates/PROPOSAL_TEMPLATE.md +91 -0
- package/.claude/docs/templates/SPEC_TEMPLATE_DELTA.md +139 -0
- package/.claude/docs/templates/SPEC_TEMPLATE_PROJECT.md +93 -0
- package/.claude/docs/templates/STYLE_TEMPLATE.md +114 -901
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +143 -1205
- package/.claude/hooks/inject-agent-context.ts +9 -9
- package/.claude/scripts/.claude/commands/flow/export-openspec.md +221 -0
- package/.claude/scripts/.claude/commands/flow/import-openspec.md +171 -0
- package/.claude/scripts/__tests__/openspec.test.js +212 -0
- package/.claude/scripts/delta-parser.ts +112 -2
- package/.claude/scripts/export-openspec.js +222 -0
- package/.claude/scripts/import-openspec.js +272 -0
- package/.claude/scripts/validate-scope.sh +200 -0
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +25 -0
- package/.claude/skills/flow-dev/SKILL.md +94 -0
- package/.claude/skills/flow-init/SKILL.md +105 -0
- package/.claude/skills/{workflow/flow-release → flow-release}/SKILL.md +14 -3
- package/.claude/skills/flow-spec/SKILL.md +102 -0
- package/.claude/skills/utility/npm-release/CLAUDE.md +55 -0
- package/.claude/skills/utility/npm-release/SKILL.md +111 -46
- package/.claude/skills/utility/npm-release/references/version-decision-guide.md +134 -0
- package/.claude/skills/utility/npm-release/scripts/atomic-version-bump.sh +95 -0
- package/.claude/skills/utility/npm-release/scripts/validate-version-sync.sh +82 -0
- package/.claude/skills/utility/npm-release/scripts/version-decision-tree.sh +44 -0
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/affected-repos.txt +1 -0
- package/.claude/tsc-cache/70d2fc6d-2936-429b-b529-429f1aae8c88/edited-files.log +2 -0
- package/CHANGELOG.md +81 -0
- package/README.md +7 -1
- package/README.zh-CN.md +7 -1
- package/bin/cc-devflow-cli.js +154 -0
- package/docs/v4.3.0-migration-guide.md +276 -0
- package/lib/harness/CLAUDE.md +5 -4
- package/lib/harness/__tests__/planner.tdd.test.js +125 -0
- package/lib/harness/index.js +4 -2
- package/lib/harness/operations/dispatch.js +13 -0
- package/lib/harness/operations/plan.js +55 -1
- package/lib/harness/operations/release.js +87 -0
- package/lib/harness/operations/verify.js +14 -0
- package/lib/harness/planner.js +131 -0
- package/lib/harness/query.js +126 -0
- package/lib/harness/schemas.js +22 -1
- package/package.json +1 -1
- package/.claude/commands/flow/checklist.md +0 -18
- package/.claude/commands/flow/clarify.md +0 -18
- package/.claude/commands/flow/new.md +0 -23
- package/.claude/commands/flow/quality.md +0 -21
- package/.claude/docs/templates/EPIC_TEMPLATE.md +0 -805
- package/.claude/docs/templates/PRD_TEMPLATE.md +0 -562
- package/.claude/docs/templates/TASKS_TEMPLATE.md +0 -523
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +0 -1019
- package/.claude/skills/workflow/CLAUDE.md +0 -24
- package/.claude/skills/workflow/flow-dev/SKILL.md +0 -58
- package/.claude/skills/workflow/flow-init/SKILL.md +0 -55
- package/.claude/skills/workflow/flow-spec/SKILL.md +0 -42
- /package/.claude/skills/{domain/attention-refresh → attention-refresh}/SKILL.md +0 -0
- /package/.claude/skills/{domain/brainstorming → brainstorming}/SKILL.md +0 -0
- /package/.claude/skills/{guardrail/constitution-guardian → constitution-guardian}/SKILL.md +0 -0
- /package/.claude/skills/{utility/constitution-quick-ref → constitution-quick-ref}/SKILL.md +0 -0
- /package/.claude/skills/{domain/debugging → debugging}/SKILL.md +0 -0
- /package/.claude/skills/{utility/file-standards → file-standards}/SKILL.md +0 -0
- /package/.claude/skills/{domain/finishing-branch → finishing-branch}/SKILL.md +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/CLAUDE.md +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/dev-implementer.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/scripts/entry-gate.sh +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/scripts/exit-gate.sh +0 -0
- /package/.claude/skills/{workflow/flow-dev → flow-dev}/scripts/task-orchestrator.sh +0 -0
- /package/.claude/skills/{workflow/flow-fix → flow-fix}/SKILL.md +0 -0
- /package/.claude/skills/{workflow/flow-fix → flow-fix}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-fix → flow-fix}/references/bug-analyzer.md +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/assets/BRAINSTORM_TEMPLATE.md +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/assets/INIT_FLOW_TEMPLATE.md +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/assets/RESEARCH_TEMPLATE.md +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/references/flow-researcher.md +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/check-prerequisites.sh +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/consolidate-research.sh +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/create-requirement.sh +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/generate-research-tasks.sh +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/populate-research-tasks.sh +0 -0
- /package/.claude/skills/{workflow/flow-init → flow-init}/scripts/validate-research.sh +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/SKILL.md +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/references/code-quality-reviewer.md +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/references/qa-tester.md +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/references/security-reviewer.md +0 -0
- /package/.claude/skills/{workflow/flow-quality → flow-quality}/references/spec-reviewer.md +0 -0
- /package/.claude/skills/{workflow/flow-release → flow-release}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-release → flow-release}/references/release-manager.md +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/CLAUDE.md +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/context.jsonl +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/entry-gate.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/exit-gate.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/parallel-orchestrator.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/team-communication.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/team-init.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/scripts/test-team-mode.sh +0 -0
- /package/.claude/skills/{workflow/flow-spec → flow-spec}/team-config.json +0 -0
- /package/.claude/skills/{workflow/flow-verify → flow-verify}/CLAUDE.md +0 -0
- /package/.claude/skills/{workflow/flow-verify → flow-verify}/SKILL.md +0 -0
- /package/.claude/skills/{workflow/flow-verify → flow-verify}/context.jsonl +0 -0
- /package/.claude/skills/{utility/fractal-docs → fractal-docs}/SKILL.md +0 -0
- /package/.claude/skills/{utility/journey-checker → journey-checker}/SKILL.md +0 -0
- /package/.claude/skills/{utility/journey-checker → journey-checker}/pressure-scenarios.md +0 -0
- /package/.claude/skills/{domain/receiving-review → receiving-review}/SKILL.md +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/LICENSE.txt +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/SKILL.md +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/references/output-patterns.md +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/references/workflows.md +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/scripts/init_skill.py +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/scripts/package_skill.py +0 -0
- /package/.claude/skills/{utility/skill-creator → skill-creator}/scripts/quick_validate.py +0 -0
- /package/.claude/skills/{domain/tdd → tdd}/SKILL.md +0 -0
- /package/.claude/skills/{guardrail/tdd-enforcer → tdd-enforcer}/SKILL.md +0 -0
- /package/.claude/skills/{domain/verification → verification}/SKILL.md +0 -0
package/lib/harness/schemas.js
CHANGED
|
@@ -14,9 +14,23 @@ const ChangeIdSchema = z.string().regex(CHANGE_ID_PATTERN, 'Invalid changeId for
|
|
|
14
14
|
|
|
15
15
|
const TaskStatusSchema = z.enum(['pending', 'running', 'passed', 'failed', 'skipped']);
|
|
16
16
|
|
|
17
|
+
const HarnessStatusSchema = z.enum(['initialized', 'planned', 'in_progress', 'verified', 'released']);
|
|
18
|
+
|
|
19
|
+
const HarnessStateSchema = z.object({
|
|
20
|
+
changeId: ChangeIdSchema,
|
|
21
|
+
goal: z.string().min(1),
|
|
22
|
+
status: HarnessStatusSchema,
|
|
23
|
+
initializedAt: z.string().datetime(),
|
|
24
|
+
plannedAt: z.string().datetime().optional(),
|
|
25
|
+
verifiedAt: z.string().datetime().optional(),
|
|
26
|
+
releasedAt: z.string().datetime().optional(),
|
|
27
|
+
updatedAt: z.string().datetime()
|
|
28
|
+
});
|
|
29
|
+
|
|
17
30
|
const TaskSchema = z.object({
|
|
18
31
|
id: z.string().regex(TASK_ID_PATTERN, 'Invalid task id'),
|
|
19
32
|
title: z.string().min(1, 'Task title is required'),
|
|
33
|
+
type: z.enum(['TEST', 'IMPL', 'OTHER']).default('OTHER'),
|
|
20
34
|
dependsOn: z.array(z.string().regex(TASK_ID_PATTERN)).default([]),
|
|
21
35
|
touches: z.array(z.string().min(1)).default([]),
|
|
22
36
|
run: z.array(z.string().min(1)).min(1, 'At least one run command is required'),
|
|
@@ -94,15 +108,22 @@ function parseReportCard(input) {
|
|
|
94
108
|
return parseWithSchema(ReportCardSchema, input, 'ReportCard');
|
|
95
109
|
}
|
|
96
110
|
|
|
111
|
+
function parseHarnessState(input) {
|
|
112
|
+
return parseWithSchema(HarnessStateSchema, input, 'HarnessState');
|
|
113
|
+
}
|
|
114
|
+
|
|
97
115
|
module.exports = {
|
|
98
116
|
ChangeIdSchema,
|
|
99
117
|
TaskSchema,
|
|
100
118
|
TaskStatusSchema,
|
|
119
|
+
HarnessStatusSchema,
|
|
120
|
+
HarnessStateSchema,
|
|
101
121
|
ManifestSchema,
|
|
102
122
|
CheckpointSchema,
|
|
103
123
|
GateResultSchema,
|
|
104
124
|
ReportCardSchema,
|
|
105
125
|
parseManifest,
|
|
106
126
|
parseCheckpoint,
|
|
107
|
-
parseReportCard
|
|
127
|
+
parseReportCard,
|
|
128
|
+
parseHarnessState
|
|
108
129
|
};
|
package/package.json
CHANGED
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-checklist
|
|
3
|
-
description: 'Deprecated. Checklist stage merged into /flow:verify gates.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /flow:checklist (Deprecated)
|
|
7
|
-
|
|
8
|
-
`/flow:checklist` 已废弃。
|
|
9
|
-
|
|
10
|
-
## Migration
|
|
11
|
-
|
|
12
|
-
- 使用:`/flow:verify "REQ-123"`
|
|
13
|
-
- 严格模式:`/flow:verify "REQ-123" --strict`
|
|
14
|
-
|
|
15
|
-
## Reason
|
|
16
|
-
|
|
17
|
-
- Checklist 功能已并入 report-card 门禁模型。
|
|
18
|
-
- 统一 gate 输出为 `devflow/requirements/<REQ_ID>/report-card.json`。
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-clarify
|
|
3
|
-
description: 'Deprecated. Clarification step removed from default workflow. Use /flow:spec directly.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /flow:clarify (Deprecated)
|
|
7
|
-
|
|
8
|
-
`/flow:clarify` 已从默认主链移除。
|
|
9
|
-
|
|
10
|
-
## Migration
|
|
11
|
-
|
|
12
|
-
- 直接执行:`/flow:spec "REQ-123"`
|
|
13
|
-
- 如需补充澄清,请将澄清结果写入:`devflow/requirements/<REQ_ID>/context-package.md`
|
|
14
|
-
|
|
15
|
-
## Reason
|
|
16
|
-
|
|
17
|
-
- 独立澄清阶段导致链路变长且可恢复点分散。
|
|
18
|
-
- 主链改为 `init -> spec -> dev -> verify -> release`。
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-new
|
|
3
|
-
description: 'Deprecated. Use /flow:init -> /flow:spec -> /flow:dev -> /flow:verify -> /flow:release.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /flow:new (Deprecated)
|
|
7
|
-
|
|
8
|
-
`/flow:new` 已停止作为默认入口。
|
|
9
|
-
|
|
10
|
-
## Migration Path
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/flow:init "REQ-123|Feature|URLs?"
|
|
14
|
-
/flow:spec "REQ-123"
|
|
15
|
-
/flow:dev "REQ-123"
|
|
16
|
-
/flow:verify "REQ-123" --strict
|
|
17
|
-
/flow:release "REQ-123"
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Why
|
|
21
|
-
|
|
22
|
-
- 旧一键编排耦合了已下线阶段(clarify/checklist/quality)。
|
|
23
|
-
- 新主链将复杂度收敛到 harness 引擎,支持 checkpoint 恢复与分层门禁。
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: flow-quality
|
|
3
|
-
description: 'Deprecated. Use /flow:verify for quick/strict quality gates.'
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# /flow:quality (Deprecated)
|
|
7
|
-
|
|
8
|
-
`/flow:quality` 已废弃。
|
|
9
|
-
|
|
10
|
-
## Migration
|
|
11
|
-
|
|
12
|
-
```bash
|
|
13
|
-
/flow:verify "REQ-123"
|
|
14
|
-
/flow:verify "REQ-123" --strict
|
|
15
|
-
/flow:verify "REQ-123" --strict --skip-review
|
|
16
|
-
```
|
|
17
|
-
|
|
18
|
-
## Reason
|
|
19
|
-
|
|
20
|
-
- 质量验证统一收口到 harness verify。
|
|
21
|
-
- 门禁结果统一输出到 `report-card.json` 并作为 `/flow:release` 唯一准入条件。
|