cc-devflow 4.2.0 → 4.4.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.
- package/.claude/skills/cc-act/CHANGELOG.md +64 -0
- package/.claude/skills/cc-act/PLAYBOOK.md +212 -0
- package/.claude/skills/cc-act/SKILL.md +322 -0
- package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +64 -0
- package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +25 -0
- package/.claude/skills/cc-act/references/closure-contract.md +49 -0
- package/.claude/skills/cc-act/references/git-commit-guidelines.md +83 -0
- package/.claude/skills/cc-act/scripts/archive-requirement.sh +49 -0
- package/.claude/skills/cc-act/scripts/cc-act-common.sh +240 -0
- package/.claude/skills/cc-act/scripts/detect-ship-target.sh +82 -0
- package/.claude/skills/cc-act/scripts/generate-status-report.sh +83 -0
- package/.claude/skills/cc-act/scripts/render-pr-brief.sh +195 -0
- package/.claude/skills/cc-act/scripts/sync-act-docs.sh +315 -0
- package/.claude/skills/cc-act/scripts/verify-act-gate.sh +63 -0
- package/.claude/skills/cc-check/CHANGELOG.md +73 -0
- package/.claude/skills/cc-check/PLAYBOOK.md +153 -0
- package/.claude/skills/cc-check/SKILL.md +345 -0
- package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +50 -0
- package/.claude/skills/cc-check/references/gate-contract.md +29 -0
- package/.claude/skills/cc-check/references/review-contract.md +45 -0
- package/.claude/skills/cc-check/scripts/render-report-card.js +229 -0
- package/.claude/skills/cc-check/scripts/run-quality-gates.sh +86 -0
- package/.claude/skills/cc-check/scripts/verify-gate.sh +57 -0
- package/.claude/skills/cc-do/CHANGELOG.md +49 -0
- package/.claude/skills/cc-do/PLAYBOOK.md +119 -0
- package/.claude/skills/cc-do/SKILL.md +216 -0
- package/.claude/skills/cc-do/references/execution-recovery.md +86 -0
- package/.claude/skills/cc-do/references/parallel-dispatch.md +80 -0
- package/.claude/skills/cc-do/scripts/build-task-context.sh +184 -0
- package/.claude/skills/cc-do/scripts/cc-do-common.sh +79 -0
- package/.claude/skills/cc-do/scripts/check-task-status.sh +92 -0
- package/.claude/skills/cc-do/scripts/detect-file-conflicts.sh +87 -0
- package/.claude/skills/cc-do/scripts/mark-task-complete.sh +119 -0
- package/.claude/skills/cc-do/scripts/record-review-decision.sh +89 -0
- package/.claude/skills/cc-do/scripts/recover-workflow.sh +84 -0
- package/.claude/skills/cc-do/scripts/run-problem-analysis.sh +70 -0
- package/.claude/skills/cc-do/scripts/select-ready-tasks.sh +135 -0
- package/.claude/skills/cc-do/scripts/verify-task-gates.sh +94 -0
- package/.claude/skills/cc-do/scripts/write-task-checkpoint.sh +102 -0
- package/.claude/skills/cc-investigate/CHANGELOG.md +26 -0
- package/.claude/skills/cc-investigate/PLAYBOOK.md +49 -0
- package/.claude/skills/cc-investigate/SKILL.md +221 -0
- package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +55 -0
- package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +52 -0
- package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +103 -0
- package/.claude/skills/cc-investigate/references/investigation-contract.md +28 -0
- package/.claude/skills/cc-investigate/scripts/bootstrap-analysis.sh +38 -0
- package/.claude/skills/cc-plan/CHANGELOG.md +99 -0
- package/.claude/skills/cc-plan/PLAYBOOK.md +106 -0
- package/.claude/skills/cc-plan/SKILL.md +325 -0
- package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +155 -0
- package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +98 -0
- package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +108 -0
- package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +79 -0
- package/.claude/skills/cc-plan/references/planning-contract.md +82 -0
- package/.claude/skills/cc-plan/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-plan/scripts/parse-task-dependencies.js +75 -0
- package/.claude/skills/cc-plan/scripts/validate-scope.sh +78 -0
- package/.claude/skills/cc-roadmap/CHANGELOG.md +114 -0
- package/.claude/skills/cc-roadmap/PLAYBOOK.md +136 -0
- package/.claude/skills/cc-roadmap/SKILL.md +259 -0
- package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +45 -0
- package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +153 -0
- package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +48 -0
- package/.claude/skills/cc-roadmap/references/roadmap-dialogue.md +37 -0
- package/.claude/skills/cc-roadmap/scripts/bump-skill-version.sh +103 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/markdown.js +604 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/query.js +63 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/schema.js +245 -0
- package/.claude/skills/cc-roadmap/scripts/lib/roadmap-tracking/store.js +139 -0
- package/.claude/skills/cc-roadmap/scripts/locate-roadmap-item.sh +109 -0
- package/.claude/skills/cc-roadmap/scripts/roadmap-tracking.js +153 -0
- package/.claude/skills/cc-roadmap/scripts/sync-roadmap-progress.sh +100 -0
- package/.claude/skills/cc-simplify/CHANGELOG.md +10 -0
- package/.claude/skills/cc-simplify/SKILL.md +55 -0
- package/.claude/skills/cc-spec-init/CHANGELOG.md +7 -0
- package/.claude/skills/cc-spec-init/PLAYBOOK.md +55 -0
- package/.claude/skills/cc-spec-init/SKILL.md +127 -0
- package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +63 -0
- package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +25 -0
- package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +34 -0
- package/.claude/skills/cc-spec-init/references/spec-contract.md +22 -0
- package/.claude/skills/cc-spec-init/scripts/bootstrap-specs.sh +31 -0
- package/.claude/skills/cc-spec-init/scripts/validate-spec-links.sh +45 -0
- package/CHANGELOG.md +101 -4
- package/README.md +120 -755
- package/README.zh-CN.md +119 -755
- package/bin/adapt.js +2 -6
- package/bin/cc-devflow-cli.js +72 -177
- package/config/distributable-skills.json +24 -0
- package/docs/CLAUDE.md +10 -6
- package/docs/commands/README.md +19 -46
- package/docs/commands/README.zh-CN.md +25 -48
- package/docs/examples/BY-ARTIFACT.md +7 -0
- package/docs/examples/README.md +38 -0
- package/docs/examples/START-HERE.md +149 -0
- package/docs/examples/example-bindings.json +38 -0
- package/docs/examples/full-design-blocked/BACKLOG.md +45 -0
- package/docs/examples/full-design-blocked/README.md +55 -0
- package/docs/examples/full-design-blocked/ROADMAP.md +53 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +154 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/task-manifest.json +146 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +78 -0
- package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/review/report-card.json +52 -0
- package/docs/examples/full-design-blocked/roadmap-tracking.json +50 -0
- package/docs/examples/local-handoff/BACKLOG.md +45 -0
- package/docs/examples/local-handoff/README.md +56 -0
- package/docs/examples/local-handoff/ROADMAP.md +45 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/resume-index.md +39 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/handoff/status.md +29 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +71 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/task-manifest.json +98 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +59 -0
- package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/review/report-card.json +44 -0
- package/docs/examples/local-handoff/roadmap-tracking.json +48 -0
- package/docs/examples/pdca-loop/BACKLOG.md +46 -0
- package/docs/examples/pdca-loop/README.md +58 -0
- package/docs/examples/pdca-loop/ROADMAP.md +133 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/pr-brief.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/handoff/status.md +29 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +72 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +201 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +73 -0
- package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/review/report-card.json +44 -0
- package/docs/examples/pdca-loop/roadmap-tracking.json +114 -0
- package/docs/examples/scripts/check-example-bindings.sh +116 -0
- package/docs/guides/getting-started.md +94 -129
- package/docs/guides/getting-started.zh-CN.md +103 -84
- package/docs/skill-runtime-migration.md +46 -0
- package/docs/v4.3.0-migration-guide.md +111 -0
- package/lib/compiler/CLAUDE.md +55 -84
- package/lib/compiler/__tests__/drift.test.js +1 -1
- package/lib/compiler/__tests__/errors.test.js +0 -1
- package/lib/compiler/__tests__/integration.test.js +49 -3
- package/lib/compiler/__tests__/manifest.test.js +0 -156
- package/lib/compiler/__tests__/parser.test.js +33 -104
- package/lib/compiler/__tests__/schemas.test.js +30 -34
- package/lib/compiler/__tests__/skills-registry.test.js +114 -0
- package/lib/compiler/__tests__/transformer.test.js +5 -9
- package/lib/compiler/emitters/antigravity-emitter.js +5 -213
- package/lib/compiler/emitters/base-emitter.js +3 -298
- package/lib/compiler/emitters/codex-emitter.js +4 -202
- package/lib/compiler/emitters/cursor-emitter.js +3 -287
- package/lib/compiler/emitters/qwen-emitter.js +4 -176
- package/lib/compiler/index.js +65 -345
- package/lib/compiler/manifest.js +6 -68
- package/lib/compiler/parser.js +31 -63
- package/lib/compiler/platforms.js +32 -277
- package/lib/compiler/resource-copier.js +176 -6
- package/lib/compiler/rules-emitters/__tests__/antigravity-rules-emitter.test.js +3 -3
- package/lib/compiler/rules-emitters/__tests__/cursor-rules-emitter.test.js +14 -4
- package/lib/compiler/rules-emitters/__tests__/qwen-rules-emitter.test.js +16 -7
- package/lib/compiler/rules-emitters/antigravity-rules-emitter.js +10 -15
- package/lib/compiler/rules-emitters/base-rules-emitter.js +5 -5
- package/lib/compiler/rules-emitters/cursor-rules-emitter.js +7 -12
- package/lib/compiler/rules-emitters/index.js +6 -3
- package/lib/compiler/rules-emitters/qwen-rules-emitter.js +7 -7
- package/lib/compiler/schemas.js +8 -4
- package/lib/compiler/skills-registry.js +213 -15
- package/lib/compiler/transformer.js +1 -1
- package/lib/skill-runtime/CLAUDE.md +19 -0
- package/lib/skill-runtime/__tests__/autopilot.test.js +210 -0
- package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +181 -0
- package/lib/skill-runtime/__tests__/delegation.test.js +97 -0
- package/lib/skill-runtime/__tests__/dispatch.test.js +267 -0
- package/lib/skill-runtime/__tests__/intent.test.js +219 -0
- package/lib/skill-runtime/__tests__/lifecycle.test.js +169 -0
- package/lib/skill-runtime/__tests__/paths.test.js +42 -0
- package/lib/skill-runtime/__tests__/planner.tdd.test.js +250 -0
- package/lib/skill-runtime/__tests__/prepare-pr.test.js +139 -0
- package/lib/skill-runtime/__tests__/query.test.js +284 -0
- package/lib/skill-runtime/__tests__/runtime.integration.test.js +279 -0
- package/lib/skill-runtime/__tests__/schemas.test.js +207 -0
- package/lib/skill-runtime/__tests__/team-state.test.js +51 -0
- package/lib/skill-runtime/__tests__/worker-run.test.js +253 -0
- package/lib/skill-runtime/__tests__/worker.test.js +56 -0
- package/lib/skill-runtime/artifacts.js +93 -0
- package/lib/skill-runtime/delegation.js +533 -0
- package/lib/skill-runtime/index.js +34 -0
- package/lib/skill-runtime/intent.js +333 -0
- package/lib/skill-runtime/lifecycle.js +294 -0
- package/lib/skill-runtime/operations/CLAUDE.md +19 -0
- package/lib/skill-runtime/operations/approve.js +66 -0
- package/lib/skill-runtime/operations/autopilot-core.js +337 -0
- package/lib/skill-runtime/operations/autopilot-execution.js +307 -0
- package/lib/skill-runtime/operations/autopilot-shared.js +48 -0
- package/lib/skill-runtime/operations/autopilot.js +163 -0
- package/lib/skill-runtime/operations/dispatch.js +454 -0
- package/lib/skill-runtime/operations/init.js +64 -0
- package/lib/{harness → skill-runtime}/operations/janitor.js +9 -6
- package/lib/skill-runtime/operations/plan.js +59 -0
- package/lib/skill-runtime/operations/prepare-pr.js +25 -0
- package/lib/{harness → skill-runtime}/operations/release.js +18 -5
- package/lib/skill-runtime/operations/resume.js +143 -0
- package/lib/skill-runtime/operations/snapshot.js +45 -0
- package/lib/skill-runtime/operations/verify.js +170 -0
- package/lib/skill-runtime/operations/worker-run.js +529 -0
- package/lib/skill-runtime/operations/worker.js +33 -0
- package/lib/skill-runtime/paths.js +213 -0
- package/lib/skill-runtime/planner.js +519 -0
- package/lib/skill-runtime/query.js +157 -0
- package/lib/skill-runtime/review.js +557 -0
- package/lib/skill-runtime/schemas.js +400 -0
- package/lib/{harness → skill-runtime}/store.js +45 -30
- package/lib/skill-runtime/team-state.js +122 -0
- package/package.json +13 -11
- package/.claude/CLAUDE.md +0 -125
- package/.claude/agents/architecture-designer.md +0 -443
- package/.claude/agents/bug-analyzer.md +0 -381
- package/.claude/agents/checklist-agent.md +0 -175
- package/.claude/agents/clarify-analyst.md +0 -50
- package/.claude/agents/code-quality-reviewer.md +0 -205
- package/.claude/agents/code-reviewer.md +0 -71
- package/.claude/agents/codex-analyzer.md +0 -39
- package/.claude/agents/compatibility-checker.md +0 -579
- package/.claude/agents/consistency-checker.md +0 -532
- package/.claude/agents/dev-implementer.md +0 -195
- package/.claude/agents/flow-researcher.md +0 -132
- package/.claude/agents/impact-analyzer.md +0 -440
- package/.claude/agents/planner.md +0 -230
- package/.claude/agents/prd-writer.md +0 -320
- package/.claude/agents/project-guidelines-generator.md +0 -1329
- package/.claude/agents/qa-tester.md +0 -313
- package/.claude/agents/release-manager.md +0 -295
- package/.claude/agents/security-reviewer.md +0 -314
- package/.claude/agents/spec-reviewer.md +0 -221
- package/.claude/agents/style-guide-generator.md +0 -458
- package/.claude/agents/tech-architect.md +0 -516
- package/.claude/agents/ui-designer.md +0 -485
- package/.claude/commands/core/architecture.md +0 -459
- package/.claude/commands/core/guidelines.md +0 -511
- package/.claude/commands/core/roadmap.md +0 -468
- package/.claude/commands/core/style.md +0 -83
- package/.claude/commands/flow/CLAUDE.md +0 -28
- package/.claude/commands/flow/archive.md +0 -280
- package/.claude/commands/flow/checklist.md +0 -18
- package/.claude/commands/flow/clarify.md +0 -18
- package/.claude/commands/flow/constitution.md +0 -82
- package/.claude/commands/flow/context.md +0 -150
- package/.claude/commands/flow/delta.md +0 -245
- package/.claude/commands/flow/dev.md +0 -40
- package/.claude/commands/flow/fix.md +0 -217
- package/.claude/commands/flow/ideate.md +0 -214
- package/.claude/commands/flow/init.md +0 -38
- package/.claude/commands/flow/new.md +0 -23
- package/.claude/commands/flow/quality.md +0 -21
- package/.claude/commands/flow/release.md +0 -36
- package/.claude/commands/flow/restart.md +0 -97
- package/.claude/commands/flow/spec.md +0 -36
- package/.claude/commands/flow/status.md +0 -64
- package/.claude/commands/flow/update.md +0 -111
- package/.claude/commands/flow/upgrade.md +0 -115
- package/.claude/commands/flow/verify.md +0 -37
- package/.claude/commands/flow/workspace.md +0 -155
- package/.claude/commands/util/cancel-ralph.md +0 -60
- package/.claude/commands/util/code-review.md +0 -58
- package/.claude/commands/util/git-commit.md +0 -422
- package/.claude/commands/util/problem-analyzer.md +0 -60
- package/.claude/config/quality-gates.yml +0 -305
- package/.claude/config/quality-rules.yml +0 -161
- package/.claude/docs/SPEC_KIT_CONSTITUTION_ANALYSIS.md +0 -426
- package/.claude/docs/design/consistency-conflict-detection-algorithms.md +0 -658
- package/.claude/docs/design/intent-driven-input-design.md +0 -380
- package/.claude/docs/design/prd-version-management-design.md +0 -437
- package/.claude/docs/guides/INIT_TROUBLESHOOTING.md +0 -117
- package/.claude/docs/guides/NEW_TROUBLESHOOTING.md +0 -99
- package/.claude/docs/guides/ROADMAP_TROUBLESHOOTING.md +0 -188
- package/.claude/docs/guides/TASK_COMPLETION_MARKING.md +0 -338
- package/.claude/docs/guides/TEAM_MODE_GUIDE.md +0 -312
- package/.claude/docs/templates/ARCHITECTURE_TEMPLATE.md +0 -633
- package/.claude/docs/templates/ATTEMPT_TEMPLATE.md +0 -156
- package/.claude/docs/templates/BACKLOG_TEMPLATE.md +0 -261
- package/.claude/docs/templates/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/docs/templates/CHECKLIST_TEMPLATE.md +0 -52
- package/.claude/docs/templates/CLARIFICATION_REPORT_TEMPLATE.md +0 -206
- package/.claude/docs/templates/CODE_REVIEW_TEMPLATE.md +0 -71
- package/.claude/docs/templates/DELTA_SPEC_TEMPLATE.md +0 -91
- package/.claude/docs/templates/DESIGN_DECISIONS_TEMPLATE.md +0 -151
- package/.claude/docs/templates/EPIC_TEMPLATE.md +0 -805
- package/.claude/docs/templates/ERROR_LOG_TEMPLATE.md +0 -80
- package/.claude/docs/templates/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/docs/templates/INTENT_CLARIFICATION_TEMPLATE.md +0 -57
- package/.claude/docs/templates/JOURNAL_TEMPLATE.md +0 -75
- package/.claude/docs/templates/NEW_ORCHESTRATION_TEMPLATE.md +0 -76
- package/.claude/docs/templates/PRD_TEMPLATE.md +0 -562
- package/.claude/docs/templates/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/docs/templates/REVIEW-HIGH.md +0 -57
- package/.claude/docs/templates/ROADMAP_DIALOGUE_TEMPLATE.md +0 -198
- package/.claude/docs/templates/ROADMAP_TEMPLATE.md +0 -310
- package/.claude/docs/templates/STYLE_TEMPLATE.md +0 -1266
- package/.claude/docs/templates/TASKS_TEMPLATE.md +0 -523
- package/.claude/docs/templates/TECH_DESIGN_TEMPLATE.md +0 -1019
- package/.claude/docs/templates/UI_PROTOTYPE_TEMPLATE.md +0 -1435
- package/.claude/docs/templates/_shared/CLAUDE.md +0 -36
- package/.claude/docs/templates/_shared/CONSTITUTION_CHECK.md +0 -125
- package/.claude/docs/templates/_shared/VALIDATION_CHECKLIST.md +0 -187
- package/.claude/docs/templates/_shared/YAML_FRONTMATTER.md +0 -164
- package/.claude/docs/templates/context/dev.jsonl.template +0 -6
- package/.claude/docs/templates/context/epic.jsonl.template +0 -5
- package/.claude/docs/templates/context/prd.jsonl.template +0 -4
- package/.claude/docs/templates/context/research.jsonl.template +0 -4
- package/.claude/docs/templates/context/review.jsonl.template +0 -5
- package/.claude/docs/templates/context/tech.jsonl.template +0 -5
- package/.claude/guides/agent-guides/agent-coordination-guide.md +0 -459
- package/.claude/guides/project-guidelines-system.md +0 -463
- package/.claude/guides/technical-guides/datetime-handling-guide.md +0 -563
- package/.claude/guides/technical-guides/git-github-guide.md +0 -642
- package/.claude/guides/technical-guides/test-execution-guide.md +0 -618
- package/.claude/guides/workflow-guides/bug-fix-orchestrator.md +0 -217
- package/.claude/guides/workflow-guides/flow-orchestrator.md +0 -48
- package/.claude/hooks/CLAUDE.md +0 -342
- package/.claude/hooks/checklist-gate.js +0 -397
- package/.claude/hooks/error-handling-reminder.sh +0 -12
- package/.claude/hooks/error-handling-reminder.ts +0 -459
- package/.claude/hooks/hooks.json +0 -15
- package/.claude/hooks/inject-agent-context.ts +0 -480
- package/.claude/hooks/inject-skill-context.ts +0 -359
- package/.claude/hooks/post-tool-use-tracker.sh +0 -280
- package/.claude/hooks/pre-tool-use-guardrail.sh +0 -36
- package/.claude/hooks/pre-tool-use-guardrail.ts +0 -342
- package/.claude/hooks/ralph-loop.ts +0 -931
- package/.claude/hooks/ralph-stop-hook.sh +0 -190
- package/.claude/hooks/skill-activation-prompt.sh +0 -36
- package/.claude/hooks/skill-activation-prompt.ts +0 -214
- package/.claude/hooks/state/skills-used-test-guard.json +0 -3
- package/.claude/hooks/task-completed-hook.ts +0 -593
- package/.claude/hooks/teammate-idle-hook.ts +0 -690
- package/.claude/hooks/types/team-types.d.ts +0 -238
- package/.claude/rules/devflow-conventions.md +0 -286
- package/.claude/rules/project-constitution.md +0 -1002
- package/.claude/rules/rationalization-library.md +0 -282
- package/.claude/schemas/constitution.schema.json +0 -43
- package/.claude/scripts/CLAUDE.md +0 -76
- package/.claude/scripts/analyze-upgrade-impact.sh +0 -200
- package/.claude/scripts/archive-requirement.sh +0 -394
- package/.claude/scripts/calculate-checklist-completion.sh +0 -243
- package/.claude/scripts/calculate-quarter.sh +0 -206
- package/.claude/scripts/check-dependencies.sh +0 -409
- package/.claude/scripts/check-prerequisites.sh +0 -232
- package/.claude/scripts/check-task-status.sh +0 -288
- package/.claude/scripts/checklist-errors.sh +0 -131
- package/.claude/scripts/common.sh +0 -1102
- package/.claude/scripts/consolidate-research.sh +0 -182
- package/.claude/scripts/create-requirement.sh +0 -451
- package/.claude/scripts/delta-parser.ts +0 -527
- package/.claude/scripts/detect-file-conflicts.sh +0 -151
- package/.claude/scripts/export-contracts.sh +0 -117
- package/.claude/scripts/extract-data-model.sh +0 -78
- package/.claude/scripts/flow-context-add.sh +0 -134
- package/.claude/scripts/flow-context-init.sh +0 -133
- package/.claude/scripts/flow-context-validate.sh +0 -144
- package/.claude/scripts/flow-delta-apply.sh +0 -297
- package/.claude/scripts/flow-delta-archive.sh +0 -71
- package/.claude/scripts/flow-delta-create.sh +0 -202
- package/.claude/scripts/flow-delta-list.sh +0 -142
- package/.claude/scripts/flow-delta-status.sh +0 -235
- package/.claude/scripts/flow-quality-full.sh +0 -215
- package/.claude/scripts/flow-quality-quick.sh +0 -119
- package/.claude/scripts/flow-workspace-init.sh +0 -117
- package/.claude/scripts/flow-workspace-record.sh +0 -164
- package/.claude/scripts/generate-clarification-questions.sh +0 -377
- package/.claude/scripts/generate-clarification-report.sh +0 -463
- package/.claude/scripts/generate-quickstart.sh +0 -146
- package/.claude/scripts/generate-research-tasks.sh +0 -157
- package/.claude/scripts/generate-status-report.sh +0 -523
- package/.claude/scripts/generate-tech-analysis.sh +0 -46
- package/.claude/scripts/get-workflow-status.sh +0 -415
- package/.claude/scripts/locate-requirement-in-roadmap.sh +0 -233
- package/.claude/scripts/manage-constitution.sh +0 -602
- package/.claude/scripts/mark-task-complete.sh +0 -198
- package/.claude/scripts/parse-task-dependencies.js +0 -334
- package/.claude/scripts/populate-research-tasks.sh +0 -284
- package/.claude/scripts/record-quality-error.sh +0 -165
- package/.claude/scripts/recover-workflow.sh +0 -463
- package/.claude/scripts/run-clarify-scan.sh +0 -601
- package/.claude/scripts/run-high-review.sh +0 -62
- package/.claude/scripts/run-problem-analysis.sh +0 -68
- package/.claude/scripts/run-quality-gates.sh +0 -242
- package/.claude/scripts/setup-epic.sh +0 -173
- package/.claude/scripts/setup-ralph-loop.sh +0 -155
- package/.claude/scripts/sync-roadmap-progress.sh +0 -300
- package/.claude/scripts/sync-task-marks.sh +0 -199
- package/.claude/scripts/team-dev-init.sh +0 -319
- package/.claude/scripts/team-state-recovery.sh +0 -229
- package/.claude/scripts/test-clarify-scan.sh +0 -515
- package/.claude/scripts/update-agent-context.sh +0 -806
- package/.claude/scripts/validate-constitution.sh +0 -567
- package/.claude/scripts/validate-hooks.sh +0 -487
- package/.claude/scripts/validate-research.sh +0 -332
- package/.claude/scripts/validate-scope-boundary.sh +0 -493
- package/.claude/scripts/verify-gate.sh +0 -269
- package/.claude/scripts/verify-setup.sh +0 -37
- package/.claude/scripts/workflow-status.ts +0 -433
- package/.claude/settings.json +0 -95
- package/.claude/skills/_reference-implementations/README.md +0 -96
- package/.claude/skills/_reference-implementations/backend-express-prisma/SKILL.md +0 -302
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/architecture-overview.md +0 -451
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/async-and-errors.md +0 -307
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/complete-examples.md +0 -638
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/configuration.md +0 -275
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/database-patterns.md +0 -224
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/middleware-guide.md +0 -213
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/routing-and-controllers.md +0 -756
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/sentry-and-monitoring.md +0 -336
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/services-and-repositories.md +0 -789
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/testing-guide.md +0 -235
- package/.claude/skills/_reference-implementations/backend-express-prisma/resources/validation-patterns.md +0 -754
- package/.claude/skills/_reference-implementations/frontend-react-mui/SKILL.md +0 -399
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/common-patterns.md +0 -331
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/complete-examples.md +0 -872
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/component-patterns.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/data-fetching.md +0 -767
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/file-organization.md +0 -502
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/loading-and-error-states.md +0 -501
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/performance.md +0 -406
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/routing-guide.md +0 -364
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/styling-guide.md +0 -428
- package/.claude/skills/_reference-implementations/frontend-react-mui/resources/typescript-standards.md +0 -418
- package/.claude/skills/cc-devflow-orchestrator/SKILL.md +0 -169
- package/.claude/skills/domain/attention-refresh/SKILL.md +0 -170
- package/.claude/skills/domain/brainstorming/SKILL.md +0 -161
- package/.claude/skills/domain/debugging/SKILL.md +0 -221
- package/.claude/skills/domain/finishing-branch/SKILL.md +0 -189
- package/.claude/skills/domain/receiving-review/SKILL.md +0 -153
- package/.claude/skills/domain/tdd/SKILL.md +0 -218
- package/.claude/skills/domain/verification/SKILL.md +0 -158
- package/.claude/skills/guardrail/constitution-guardian/SKILL.md +0 -306
- package/.claude/skills/guardrail/tdd-enforcer/SKILL.md +0 -192
- package/.claude/skills/skill-rules.json +0 -359
- package/.claude/skills/utility/constitution-quick-ref/SKILL.md +0 -374
- package/.claude/skills/utility/file-standards/SKILL.md +0 -353
- package/.claude/skills/utility/fractal-docs/SKILL.md +0 -45
- package/.claude/skills/utility/journey-checker/SKILL.md +0 -199
- package/.claude/skills/utility/journey-checker/pressure-scenarios.md +0 -164
- package/.claude/skills/utility/npm-release/SKILL.md +0 -314
- package/.claude/skills/utility/skill-creator/LICENSE.txt +0 -202
- package/.claude/skills/utility/skill-creator/SKILL.md +0 -356
- package/.claude/skills/utility/skill-creator/references/output-patterns.md +0 -82
- package/.claude/skills/utility/skill-creator/references/workflows.md +0 -28
- package/.claude/skills/utility/skill-creator/scripts/init_skill.py +0 -303
- package/.claude/skills/utility/skill-creator/scripts/package_skill.py +0 -110
- package/.claude/skills/utility/skill-creator/scripts/quick_validate.py +0 -95
- package/.claude/skills/workflow/CLAUDE.md +0 -24
- package/.claude/skills/workflow/flow-dev/CLAUDE.md +0 -16
- package/.claude/skills/workflow/flow-dev/SKILL.md +0 -94
- package/.claude/skills/workflow/flow-dev/assets/IMPLEMENTATION_PLAN_TEMPLATE.md +0 -71
- package/.claude/skills/workflow/flow-dev/context.jsonl +0 -4
- package/.claude/skills/workflow/flow-dev/dev-implementer.jsonl +0 -8
- package/.claude/skills/workflow/flow-dev/scripts/entry-gate.sh +0 -116
- package/.claude/skills/workflow/flow-dev/scripts/exit-gate.sh +0 -101
- package/.claude/skills/workflow/flow-dev/scripts/task-orchestrator.sh +0 -106
- package/.claude/skills/workflow/flow-fix/SKILL.md +0 -105
- package/.claude/skills/workflow/flow-fix/context.jsonl +0 -6
- package/.claude/skills/workflow/flow-fix/references/bug-analyzer.md +0 -381
- package/.claude/skills/workflow/flow-init/SKILL.md +0 -84
- package/.claude/skills/workflow/flow-init/assets/BRAINSTORM_TEMPLATE.md +0 -148
- package/.claude/skills/workflow/flow-init/assets/INIT_FLOW_TEMPLATE.md +0 -198
- package/.claude/skills/workflow/flow-init/assets/RESEARCH_TEMPLATE.md +0 -276
- package/.claude/skills/workflow/flow-init/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-init/references/flow-researcher.md +0 -132
- package/.claude/skills/workflow/flow-init/scripts/check-prerequisites.sh +0 -240
- package/.claude/skills/workflow/flow-init/scripts/consolidate-research.sh +0 -182
- package/.claude/skills/workflow/flow-init/scripts/create-requirement.sh +0 -404
- package/.claude/skills/workflow/flow-init/scripts/generate-research-tasks.sh +0 -157
- package/.claude/skills/workflow/flow-init/scripts/populate-research-tasks.sh +0 -284
- package/.claude/skills/workflow/flow-init/scripts/validate-research.sh +0 -340
- package/.claude/skills/workflow/flow-quality/SKILL.md +0 -98
- package/.claude/skills/workflow/flow-quality/context.jsonl +0 -6
- package/.claude/skills/workflow/flow-quality/references/code-quality-reviewer.md +0 -205
- package/.claude/skills/workflow/flow-quality/references/qa-tester.md +0 -313
- package/.claude/skills/workflow/flow-quality/references/security-reviewer.md +0 -314
- package/.claude/skills/workflow/flow-quality/references/spec-reviewer.md +0 -221
- package/.claude/skills/workflow/flow-release/SKILL.md +0 -49
- package/.claude/skills/workflow/flow-release/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-release/references/release-manager.md +0 -295
- package/.claude/skills/workflow/flow-spec/CLAUDE.md +0 -17
- package/.claude/skills/workflow/flow-spec/SKILL.md +0 -74
- package/.claude/skills/workflow/flow-spec/context.jsonl +0 -5
- package/.claude/skills/workflow/flow-spec/scripts/entry-gate.sh +0 -194
- package/.claude/skills/workflow/flow-spec/scripts/exit-gate.sh +0 -244
- package/.claude/skills/workflow/flow-spec/scripts/parallel-orchestrator.sh +0 -205
- package/.claude/skills/workflow/flow-spec/scripts/team-communication.sh +0 -353
- package/.claude/skills/workflow/flow-spec/scripts/team-init.sh +0 -195
- package/.claude/skills/workflow/flow-spec/scripts/test-team-mode.sh +0 -496
- package/.claude/skills/workflow/flow-spec/team-config.json +0 -165
- package/.claude/skills/workflow/flow-verify/CLAUDE.md +0 -10
- package/.claude/skills/workflow/flow-verify/SKILL.md +0 -53
- package/.claude/skills/workflow/flow-verify/context.jsonl +0 -5
- package/.claude/skills/workflow.yaml +0 -219
- package/.claude/tests/README.md +0 -300
- package/.claude/tests/TODO.md +0 -69
- package/.claude/tests/__pycache__/test_analyze_upgrade_impact.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_consolidate_research.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_export_contracts.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_extract_data_model.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_quickstart.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/__pycache__/test_generate_research_tasks.cpython-311-pytest-7.2.2.pyc +0 -0
- package/.claude/tests/constitution/run_all_constitution_tests.sh +0 -111
- package/.claude/tests/constitution/test_agent_assignment.sh +0 -207
- package/.claude/tests/constitution/test_article_coverage.sh +0 -201
- package/.claude/tests/constitution/test_template_completeness.sh +0 -150
- package/.claude/tests/constitution/test_version_consistency.sh +0 -120
- package/.claude/tests/fixtures/spec_delta_full.md +0 -16
- package/.claude/tests/fixtures/tasks_progress_sample.md +0 -5
- package/.claude/tests/run-all-tests.sh +0 -229
- package/.claude/tests/scripts/run.sh +0 -30
- package/.claude/tests/scripts/test-framework.sh +0 -128
- package/.claude/tests/scripts/test_check_prerequisites.sh +0 -511
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak +0 -504
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak2 +0 -505
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak3 +0 -506
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak4 +0 -507
- package/.claude/tests/scripts/test_check_prerequisites.sh.bak5 +0 -508
- package/.claude/tests/scripts/test_check_task_status.sh +0 -499
- package/.claude/tests/scripts/test_common.sh +0 -244
- package/.claude/tests/scripts/test_generate_status_report.sh +0 -71
- package/.claude/tests/scripts/test_mark_task_complete.sh +0 -441
- package/.claude/tests/scripts/test_mark_task_complete.sh.backup +0 -410
- package/.claude/tests/scripts/test_recover_workflow.sh +0 -304
- package/.claude/tests/scripts/test_setup_epic.sh +0 -437
- package/.claude/tests/scripts/test_sync_task_marks.sh +0 -196
- package/.claude/tests/scripts/test_validate_constitution.sh +0 -74
- package/.claude/tests/scripts/test_validate_research.sh +0 -462
- package/.claude/tests/slugify.bats +0 -82
- package/.claude/tests/test-framework.sh +0 -732
- package/.claude/tests/test_analyze_upgrade_impact.py +0 -34
- package/.claude/tests/test_consolidate_research.py +0 -48
- package/.claude/tests/test_export_contracts.py +0 -43
- package/.claude/tests/test_extract_data_model.py +0 -33
- package/.claude/tests/test_generate_quickstart.py +0 -50
- package/.claude/tests/test_generate_research_tasks.py +0 -52
- package/bin/harness.js +0 -22
- package/docs/commands/core-roadmap.md +0 -106
- package/docs/commands/core-roadmap.zh-CN.md +0 -102
- package/docs/commands/core-style.md +0 -53
- package/docs/commands/core-style.zh-CN.md +0 -53
- package/docs/commands/flow-init.md +0 -140
- package/docs/commands/flow-init.zh-CN.md +0 -169
- package/docs/commands/flow-new.md +0 -39
- package/docs/commands/flow-new.zh-CN.md +0 -39
- package/lib/compiler/__tests__/compile-regression.test.js +0 -103
- package/lib/compiler/__tests__/multi-module-emitters.test.js +0 -534
- package/lib/compiler/__tests__/resource-copier.test.js +0 -26
- package/lib/compiler/__tests__/skill-discovery.test.js +0 -72
- package/lib/compiler/context-expander.js +0 -179
- package/lib/compiler/rules-emitters/__tests__/codex-rules-emitter.test.js +0 -109
- package/lib/compiler/rules-emitters/codex-rules-emitter.js +0 -116
- package/lib/compiler/skill-discovery.js +0 -68
- package/lib/harness/CLAUDE.md +0 -21
- package/lib/harness/cli.js +0 -208
- package/lib/harness/index.js +0 -16
- package/lib/harness/operations/dispatch.js +0 -285
- package/lib/harness/operations/init.js +0 -48
- package/lib/harness/operations/pack.js +0 -100
- package/lib/harness/operations/plan.js +0 -29
- package/lib/harness/operations/resume.js +0 -44
- package/lib/harness/operations/verify.js +0 -163
- package/lib/harness/planner.js +0 -141
- package/lib/harness/schemas.js +0 -108
|
@@ -1,150 +1,169 @@
|
|
|
1
|
-
#
|
|
1
|
+
# cc-devflow 快速开始
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[中文文档](./getting-started.zh-CN.md) | [English](./getting-started.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
---
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
pnpm dlx tiged Dimon94/cc-devflow/.claude .claude
|
|
9
|
-
```
|
|
7
|
+
## 概览
|
|
10
8
|
|
|
11
|
-
|
|
9
|
+
CC-DevFlow 现在有两条入口:
|
|
12
10
|
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
unzip cc-devflow.zip
|
|
16
|
-
cp -r cc-devflow-main/.claude .claude
|
|
17
|
-
rm -rf cc-devflow.zip cc-devflow-main
|
|
18
|
-
```
|
|
11
|
+
- `cc-devflow init`:把整包 `.claude` 安装到你的项目里
|
|
12
|
+
- `cc-devflow adapt`:生成 Codex、Cursor、Qwen、Antigravity 等平台产物
|
|
19
13
|
|
|
20
|
-
|
|
14
|
+
真正的工作流由 6 个可见 Skill 组成:
|
|
21
15
|
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
```
|
|
16
|
+
```text
|
|
17
|
+
cc-roadmap
|
|
25
18
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
✅ All checks passed!
|
|
29
|
-
cc-devflow is ready to use.
|
|
19
|
+
PDCA: cc-plan -> cc-do -> cc-check -> cc-act
|
|
20
|
+
IDCA: cc-investigate -> cc-do -> cc-check -> cc-act
|
|
30
21
|
```
|
|
31
22
|
|
|
32
|
-
|
|
23
|
+
公开 Skill 本身就是可见 harness。现在每个分发 `SKILL.md` 都带结构化 frontmatter 和 `Harness Contract`,每个 `PLAYBOOK.md` 都带 `Visible State Machine`,不再依赖隐藏运行时语义来理解阶段流转。
|
|
33
24
|
|
|
34
|
-
|
|
25
|
+
## 前置条件
|
|
26
|
+
|
|
27
|
+
- Node.js 18+
|
|
28
|
+
- 已初始化的 Git 仓库
|
|
29
|
+
- Claude Code 或其他受支持的 Agent 环境
|
|
30
|
+
|
|
31
|
+
## 安装
|
|
32
|
+
|
|
33
|
+
### 整包安装
|
|
35
34
|
|
|
36
35
|
```bash
|
|
37
|
-
|
|
36
|
+
npx cc-devflow init --dir /path/to/your/project
|
|
38
37
|
```
|
|
39
38
|
|
|
40
|
-
|
|
39
|
+
整包安装会带上 6 个可见 workflow skill,以及维护用的 `cc-spec-init` 和 `cc-simplify`。
|
|
41
40
|
|
|
42
|
-
###
|
|
41
|
+
### 单个 Skill 安装
|
|
43
42
|
|
|
44
43
|
```bash
|
|
45
|
-
|
|
46
|
-
/flow:spec "REQ-001"
|
|
47
|
-
/flow:dev "REQ-001"
|
|
48
|
-
/flow:verify "REQ-001" --strict
|
|
49
|
-
/flow:release "REQ-001"
|
|
44
|
+
npx skills add https://github.com/Dimon94/cc-devflow --skill cc-roadmap
|
|
50
45
|
```
|
|
51
46
|
|
|
52
|
-
|
|
47
|
+
## 生成平台产物
|
|
53
48
|
|
|
54
49
|
```bash
|
|
55
|
-
/
|
|
50
|
+
npx cc-devflow adapt --cwd /path/to/your/project --platform codex
|
|
51
|
+
npx cc-devflow adapt --cwd /path/to/your/project --platform cursor
|
|
52
|
+
npx cc-devflow adapt --cwd /path/to/your/project --platform qwen
|
|
53
|
+
npx cc-devflow adapt --cwd /path/to/your/project --platform antigravity
|
|
56
54
|
```
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
## 验证安装
|
|
57
|
+
|
|
58
|
+
检查 Skill 目录是否存在:
|
|
59
59
|
|
|
60
60
|
```bash
|
|
61
|
-
/
|
|
61
|
+
find .claude/skills -mindepth 1 -maxdepth 1 -type d | sort
|
|
62
|
+
find .claude/skills -mindepth 2 -maxdepth 2 -name SKILL.md | sort
|
|
62
63
|
```
|
|
63
64
|
|
|
64
|
-
|
|
65
|
+
如果已经适配 Codex,再检查镜像出来的 skill 目录:
|
|
65
66
|
|
|
66
67
|
```bash
|
|
67
|
-
/
|
|
68
|
+
find .codex/skills -mindepth 2 -maxdepth 2 -name SKILL.md | sort
|
|
68
69
|
```
|
|
69
70
|
|
|
70
|
-
|
|
71
|
+
## 第一次跑工作流
|
|
71
72
|
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
按这个顺序使用 Skill:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
1. cc-roadmap
|
|
77
|
+
2. 在 cc-plan 和 cc-investigate 里二选一
|
|
78
|
+
3. cc-do
|
|
79
|
+
4. cc-check
|
|
80
|
+
5. cc-act
|
|
81
|
+
6. repeat
|
|
74
82
|
```
|
|
75
83
|
|
|
76
|
-
|
|
84
|
+
常见产物:
|
|
77
85
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
86
|
+
- `cc-roadmap` 产出 `devflow/ROADMAP.md` 和 `devflow/BACKLOG.md`;如果使用内置同步脚本,还会维护 `devflow/roadmap-tracking.json` 作为 roadmap/backlog 的共享真相源
|
|
87
|
+
- `cc-spec-init` 产出 `devflow/specs/INDEX.md`、capability spec 和 `change-meta.json`
|
|
88
|
+
- `cc-plan` 产出 `planning/design.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
|
|
89
|
+
- `cc-investigate` 产出 `planning/analysis.md`、`planning/tasks.md`、`task-manifest.json` 和 `change-meta.json`
|
|
90
|
+
- `cc-check` 产出 `report-card.json`
|
|
91
|
+
- `cc-act` 只产出一个最终 handoff 文件:`handoff/pr-brief.md`、`handoff/resume-index.md` 或 `handoff/release-note.md`
|
|
81
92
|
|
|
82
|
-
|
|
83
|
-
bash .claude/scripts/check-task-status.sh --verbose
|
|
93
|
+
durable truth 分两层:
|
|
84
94
|
|
|
85
|
-
|
|
86
|
-
|
|
95
|
+
- `devflow/specs/`:capability 真相,保留 `INDEX.md` 与 `capabilities/*.md`
|
|
96
|
+
- 新 change 目录必须命名为 `REQ-<number>-<description>`(需求)或 `FIX-<number>-<description>`(修复);旧小写目录只作为历史兼容读取。
|
|
97
|
+
- `devflow/changes/<change>/`:变更真相,保留 `change-state.json`、`change-meta.json`、planning 文档、`task-manifest.json`、可选 `team-state.json`、任务级 `checkpoint.json`、`report-card.json` 和唯一的最终 handoff 文件。
|
|
98
|
+
- worker prompt、journal、assignment、session log 统一放到 `devflow/workspaces/<change>/`,作为 ephemeral scratch。
|
|
87
99
|
|
|
88
|
-
|
|
89
|
-
bash .claude/scripts/generate-status-report.sh --format markdown
|
|
100
|
+
公开契约字段的典型形状:
|
|
90
101
|
|
|
91
|
-
|
|
92
|
-
|
|
102
|
+
- `triggers`、`reads`、结构化 `writes`、`effects`
|
|
103
|
+
- `entry_gate`、`exit_criteria`
|
|
104
|
+
- `reroutes`、`recovery_modes`、`tool_budget`
|
|
105
|
+
|
|
106
|
+
如果你想先看几套完整产物链,再自己开始跑 Skill,可以先读 [../examples/START-HERE.md](../examples/START-HERE.md)。如果你在升级 skill 同时维护样例,可以跑 [../examples/scripts/check-example-bindings.sh](../examples/scripts/check-example-bindings.sh)。
|
|
107
|
+
|
|
108
|
+
## 升级
|
|
109
|
+
|
|
110
|
+
通过最新版打包 CLI 刷新整包:
|
|
111
|
+
|
|
112
|
+
```bash
|
|
113
|
+
npx cc-devflow@latest init --dir /path/to/your/project
|
|
93
114
|
```
|
|
94
115
|
|
|
95
|
-
|
|
116
|
+
刷新平台产物:
|
|
96
117
|
|
|
97
118
|
```bash
|
|
98
|
-
|
|
99
|
-
|
|
119
|
+
npx cc-devflow adapt --cwd /path/to/your/project --all
|
|
120
|
+
```
|
|
100
121
|
|
|
101
|
-
|
|
102
|
-
bash .claude/tests/constitution/run_all_constitution_tests.sh
|
|
122
|
+
刷新单个已安装 Skill:
|
|
103
123
|
|
|
104
|
-
|
|
105
|
-
|
|
124
|
+
```bash
|
|
125
|
+
npx skills update
|
|
106
126
|
```
|
|
107
127
|
|
|
108
|
-
##
|
|
128
|
+
## 常见问题
|
|
109
129
|
|
|
110
|
-
|
|
130
|
+
### `.claude` 已经存在
|
|
111
131
|
|
|
112
|
-
```
|
|
113
|
-
|
|
114
|
-
"permissions": {
|
|
115
|
-
"allowGitOperations": true,
|
|
116
|
-
"allowNetworkRequests": true,
|
|
117
|
-
"allowSubprocesses": true
|
|
118
|
-
}
|
|
119
|
-
}
|
|
132
|
+
```bash
|
|
133
|
+
npx cc-devflow init --dir /path/to/your/project --force
|
|
120
134
|
```
|
|
121
135
|
|
|
122
|
-
|
|
136
|
+
`--force` 现在只会强制升级 cc-devflow 正式分发的 skill,不会删除现有的 `.claude/commands`、自定义 skill 或其他项目文件。
|
|
137
|
+
|
|
138
|
+
### 没有生成 Codex 输出
|
|
139
|
+
|
|
140
|
+
运行:
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
npx cc-devflow adapt --cwd /path/to/your/project --platform codex
|
|
144
|
+
```
|
|
123
145
|
|
|
124
|
-
|
|
146
|
+
如果你的项目没有可选的 `.claude/commands/` 输入目录,这也是正常的;编译器仍然会生成 skills registry,并为 Codex 镜像正式分发 skill 集合。
|
|
125
147
|
|
|
126
|
-
|
|
148
|
+
Codex 现在会把正式分发的 skill 从 `.claude/skills/<skill>/` 镜像到 `.codex/skills/<skill>/`。这套集合包含 6 个公开 workflow skill 和维护类 skill `cc-spec-init`、`cc-simplify`,并且镜像是纯增量的:项目里已有的自定义 Codex skill 不会被删除。
|
|
127
149
|
|
|
128
|
-
###
|
|
150
|
+
### 保持 skill 和样例同步
|
|
129
151
|
|
|
130
|
-
**A**: 先初始化 Git 仓库:
|
|
131
152
|
```bash
|
|
132
|
-
|
|
133
|
-
git add .
|
|
134
|
-
git commit -m "Initial commit"
|
|
153
|
+
npm run verify
|
|
135
154
|
```
|
|
136
155
|
|
|
137
|
-
|
|
156
|
+
如果你在准备可发布的整包,再跑:
|
|
138
157
|
|
|
139
|
-
**A**: 给脚本添加执行权限:
|
|
140
158
|
```bash
|
|
141
|
-
|
|
142
|
-
chmod +x .claude/hooks/*.sh
|
|
159
|
+
npm run verify:publish
|
|
143
160
|
```
|
|
144
161
|
|
|
145
|
-
##
|
|
162
|
+
## 下一步
|
|
146
163
|
|
|
147
|
-
- [
|
|
164
|
+
- [CLI 与 Skill](../commands/README.zh-CN.md)
|
|
148
165
|
- [工作流详解](./workflow-guide.md)
|
|
149
166
|
- [最佳实践](./best-practices.md)
|
|
150
|
-
- [
|
|
167
|
+
- [样例入口页](../examples/START-HERE.md)
|
|
168
|
+
- [简版样例列表](../examples/README.md)
|
|
169
|
+
- [项目 README](../../README.zh-CN.md)
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
# Skill Runtime Migration
|
|
2
|
+
|
|
3
|
+
## Result
|
|
4
|
+
|
|
5
|
+
`lib/harness/` has been removed from the repository.
|
|
6
|
+
|
|
7
|
+
The workflow now follows one clear ownership model:
|
|
8
|
+
|
|
9
|
+
- public workflow semantics live in `SKILL.md`, `PLAYBOOK.md`, templates, and skill-local scripts
|
|
10
|
+
- reusable internal helpers live in `lib/skill-runtime/`
|
|
11
|
+
- the public entry surface remains `cc-devflow init`, `cc-devflow adapt`, and the five shipped skills
|
|
12
|
+
|
|
13
|
+
## What Moved
|
|
14
|
+
|
|
15
|
+
The old internal runtime modules were moved from `lib/harness/` to `lib/skill-runtime/`.
|
|
16
|
+
|
|
17
|
+
That includes:
|
|
18
|
+
|
|
19
|
+
- artifact and IO helpers
|
|
20
|
+
- schema and planner helpers
|
|
21
|
+
- lifecycle and query helpers
|
|
22
|
+
- runtime operations used by internal tests
|
|
23
|
+
|
|
24
|
+
## What Changed
|
|
25
|
+
|
|
26
|
+
- `cc-check` gate execution and `report-card.json` assembly now run through skill-local scripts
|
|
27
|
+
- task/context recovery guidance lives with `cc-do`
|
|
28
|
+
- `cc-act` owns PR and release-side closure scripts
|
|
29
|
+
- the old `autopilot-stages.js` compatibility layer was removed
|
|
30
|
+
- tests and contributor docs now point at `lib/skill-runtime/` and `lib/skill-runtime/__tests__/`
|
|
31
|
+
|
|
32
|
+
## Current Boundary
|
|
33
|
+
|
|
34
|
+
`lib/skill-runtime/` is not the product story.
|
|
35
|
+
|
|
36
|
+
It exists only as shared support code for skill-local scripts and internal verification. When adding new behavior:
|
|
37
|
+
|
|
38
|
+
1. put workflow rules in the relevant public skill first
|
|
39
|
+
2. prefer skill-local scripts over new shared runtime logic
|
|
40
|
+
3. only add shared code when duplication would be fragile or noisy
|
|
41
|
+
|
|
42
|
+
## Follow-ups
|
|
43
|
+
|
|
44
|
+
- keep trimming duplicated narration from `intent.js`, `query.js`, and `autopilot` helpers
|
|
45
|
+
- continue replacing compatibility-only tests with skill-script-oriented coverage where practical
|
|
46
|
+
- avoid introducing any new `harness:*` language, paths, or mental model in docs or code
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
# CC-DevFlow v4.3.0 Migration Guide
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
This guide is for teams moving from the old slash-command and harness-heavy mental model to the current skills-first distribution model.
|
|
6
|
+
|
|
7
|
+
The key change is simple:
|
|
8
|
+
|
|
9
|
+
- visible workflow surface: skills
|
|
10
|
+
- distribution surface: `cc-devflow init` and `cc-devflow adapt`
|
|
11
|
+
- shared skill runtime: internal implementation detail
|
|
12
|
+
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
## What Changed
|
|
16
|
+
|
|
17
|
+
### 1. Workflow Entry Changed
|
|
18
|
+
|
|
19
|
+
Old mental model:
|
|
20
|
+
|
|
21
|
+
```text
|
|
22
|
+
/flow:init -> /flow:spec -> /flow:dev -> /flow:verify -> /flow:release
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
Current mental model:
|
|
26
|
+
|
|
27
|
+
```text
|
|
28
|
+
cc-roadmap
|
|
29
|
+
|
|
30
|
+
cc-plan -> cc-do -> cc-check -> cc-act
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
The workflow is now represented by explicit skills rather than a slash-command namespace.
|
|
34
|
+
|
|
35
|
+
### 2. Distribution Entry Changed
|
|
36
|
+
|
|
37
|
+
Whole-pack install and platform adaptation now belong to the packaged CLI:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
npx cc-devflow init --dir /path/to/project
|
|
41
|
+
npx cc-devflow adapt --cwd /path/to/project --platform codex
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
### 3. `skills.sh` Scope Narrowed
|
|
45
|
+
|
|
46
|
+
`skills.sh` remains supported, but only for single-skill distribution:
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
npx skills add https://github.com/Dimon94/cc-devflow --skill cc-roadmap
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Do not use `skills.sh` as the whole-pack lifecycle anymore.
|
|
53
|
+
|
|
54
|
+
### 4. `.claude/commands/` Is Optional
|
|
55
|
+
|
|
56
|
+
The compiler still accepts legacy prompt inputs if a project has `.claude/commands/`, but the repository no longer requires that directory to exist.
|
|
57
|
+
|
|
58
|
+
Skills-first repositories are valid.
|
|
59
|
+
|
|
60
|
+
### 5. Harness CLI Is Gone
|
|
61
|
+
|
|
62
|
+
`harness:*` is no longer the public CLI surface.
|
|
63
|
+
|
|
64
|
+
Shared support code may still exist under `lib/skill-runtime/`, but it should be treated as internal runtime support for the public skills.
|
|
65
|
+
|
|
66
|
+
---
|
|
67
|
+
|
|
68
|
+
## Old To New Mapping
|
|
69
|
+
|
|
70
|
+
| Old Concept | New Concept |
|
|
71
|
+
|-------------|-------------|
|
|
72
|
+
| `/flow:*` | visible skills |
|
|
73
|
+
| `harness:*` CLI | internal skill runtime only |
|
|
74
|
+
| clone `.claude` manually | `cc-devflow init` |
|
|
75
|
+
| per-platform handwritten setup | `cc-devflow adapt` |
|
|
76
|
+
| skills pack via old CLI lifecycle | whole pack via `cc-devflow`, single skill via `skills.sh` |
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Migration Checklist
|
|
81
|
+
|
|
82
|
+
1. Replace old workflow references in docs with the five visible skills.
|
|
83
|
+
2. Replace old pack-install steps with `cc-devflow init`.
|
|
84
|
+
3. Replace old platform setup steps with `cc-devflow adapt`.
|
|
85
|
+
4. Keep `skills.sh` only for single-skill install or refresh.
|
|
86
|
+
5. Treat `.claude/commands/` as optional compatibility input, not required structure.
|
|
87
|
+
6. Stop documenting `harness:*` as if users should run it directly.
|
|
88
|
+
|
|
89
|
+
---
|
|
90
|
+
|
|
91
|
+
## Verification
|
|
92
|
+
|
|
93
|
+
After migration, these commands should succeed:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
npx cc-devflow --help
|
|
97
|
+
npx cc-devflow init --dir /tmp/cc-devflow-demo
|
|
98
|
+
npx cc-devflow adapt --cwd /tmp/cc-devflow-demo --platform codex
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
And the installed project should contain:
|
|
102
|
+
|
|
103
|
+
```text
|
|
104
|
+
.claude/skills/cc-roadmap/SKILL.md
|
|
105
|
+
.claude/skills/cc-plan/SKILL.md
|
|
106
|
+
.claude/skills/cc-investigate/SKILL.md
|
|
107
|
+
.claude/skills/cc-do/SKILL.md
|
|
108
|
+
.claude/skills/cc-check/SKILL.md
|
|
109
|
+
.claude/skills/cc-act/SKILL.md
|
|
110
|
+
.claude/skills/cc-simplify/SKILL.md
|
|
111
|
+
```
|
package/lib/compiler/CLAUDE.md
CHANGED
|
@@ -1,125 +1,96 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Skills-First Compiler Module Architecture
|
|
2
2
|
|
|
3
3
|
## Purpose
|
|
4
|
-
Multi-platform compiler that transforms `.claude/`
|
|
4
|
+
Multi-platform compiler that transforms `.claude/skills/` plus optional `.claude/commands/*.md` into native outputs for Codex, Cursor, Qwen, and Antigravity platforms.
|
|
5
5
|
|
|
6
|
-
## Architecture
|
|
6
|
+
## Architecture
|
|
7
7
|
|
|
8
8
|
```
|
|
9
9
|
lib/compiler/
|
|
10
|
-
├── parser.js # Parse .md files, extract frontmatter + detect placeholders
|
|
10
|
+
├── parser.js # Parse optional command .md files, extract frontmatter + detect placeholders
|
|
11
11
|
├── transformer.js # Expand {SCRIPT:*}, {AGENT_SCRIPT}, map $ARGUMENTS
|
|
12
12
|
├── manifest.js # Incremental compilation, drift detection
|
|
13
|
-
├── schemas.js # Zod validation schemas (
|
|
13
|
+
├── schemas.js # Zod validation schemas (PromptIR, Manifest)
|
|
14
14
|
├── errors.js # Custom error types (MissingFrontmatter, UnknownAlias, etc.)
|
|
15
15
|
├── skills-registry.js # Generate skills registry from .claude/skills/
|
|
16
|
-
├── skill-discovery.js # Recursive SKILL.md discovery (grouped + root skills)
|
|
17
|
-
├── resource-copier.js # Resource collection/copy and .claude path rewriting
|
|
18
|
-
├── platforms.js # Platform configuration registry (v2.0)
|
|
19
|
-
├── context-expander.js # context.jsonl expansion (v3.0)
|
|
20
16
|
├── index.js # Compiler entry point, orchestrates pipeline
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
└── rules-emitters/ # Legacy rules emitters (deprecated)
|
|
29
|
-
└── ...
|
|
17
|
+
└── emitters/
|
|
18
|
+
├── base-emitter.js # Abstract base class
|
|
19
|
+
├── codex-emitter.js # .codex/prompts/*.md (YAML frontmatter)
|
|
20
|
+
├── cursor-emitter.js # .cursor/commands/*.md (pure Markdown)
|
|
21
|
+
├── qwen-emitter.js # .qwen/commands/*.toml (TOML format)
|
|
22
|
+
├── antigravity-emitter.js # .agent/workflows/*.md (12K limit, auto-split)
|
|
23
|
+
└── index.js # Emitter factory
|
|
30
24
|
```
|
|
31
25
|
|
|
32
|
-
##
|
|
33
|
-
|
|
34
|
-
### Supported Modules
|
|
35
|
-
|
|
36
|
-
| Module | Source | Codex | Cursor | Qwen | Antigravity |
|
|
37
|
-
|--------|--------|-------|--------|------|-------------|
|
|
38
|
-
| skills | `.claude/skills/` | `.codex/skills/` | `.cursor/rules/*.mdc` | `.qwen/commands/*.toml` | `.agent/skills/` |
|
|
39
|
-
| commands | `.claude/commands/` | `.codex/prompts/` | `.cursor/commands/` | `.qwen/commands/` | `.agent/workflows/` |
|
|
40
|
-
| agents | `.claude/agents/` | `AGENTS.md` | `.cursor/subagents/` | `.qwen/agents/` | `AGENTS.md` |
|
|
41
|
-
| rules | `.claude/rules/` | `AGENTS.md` | `.cursor/rules/*.mdc` | `CONTEXT.md` | `.agent/rules/` |
|
|
42
|
-
| hooks | `.claude/hooks/` | ❌ | `hooks.json` + `hooks/` | ❌ | ❌ |
|
|
43
|
-
|
|
44
|
-
### Data Flow (v3.0)
|
|
26
|
+
## Data Flow
|
|
45
27
|
|
|
46
28
|
```
|
|
47
|
-
.claude/
|
|
48
|
-
├── skills/*/SKILL.md
|
|
49
|
-
├── commands/*.md
|
|
50
|
-
├── agents/*.md
|
|
51
|
-
├── rules/*.md
|
|
52
|
-
└── hooks/*.ts
|
|
29
|
+
.claude/skills/
|
|
53
30
|
│
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
│
|
|
58
|
-
|
|
31
|
+
├──────────────► skills-registry.json + platform rules
|
|
32
|
+
│
|
|
33
|
+
└── optional `.claude/commands/*.md`
|
|
34
|
+
│
|
|
35
|
+
▼
|
|
36
|
+
┌─────────────────┐
|
|
37
|
+
│ Parser │ gray-matter → PromptIR
|
|
38
|
+
│ (parser.js) │ - Extract frontmatter
|
|
39
|
+
│ │ - Detect placeholders
|
|
40
|
+
│ │ - Compute SHA-256 hash
|
|
41
|
+
└────────┬────────┘
|
|
42
|
+
│ PromptIR[]
|
|
43
|
+
▼
|
|
44
|
+
┌─────────────────┐
|
|
45
|
+
│ Transformer │ Platform-specific transforms
|
|
46
|
+
│(transformer.js) │ - {SCRIPT:alias} → "bash <path>"
|
|
47
|
+
│ │ - $ARGUMENTS → {{args}} / [arguments]
|
|
48
|
+
│ │ - {AGENT_SCRIPT} + __AGENT__ substitution
|
|
49
|
+
└────────┬────────┘
|
|
50
|
+
│ TransformedContent
|
|
51
|
+
▼
|
|
52
|
+
┌─────────────────┐
|
|
53
|
+
│ Emitters │ Platform format + file write
|
|
54
|
+
│ (emitters/*.js) │ - Codex: MD + YAML frontmatter
|
|
55
|
+
│ │ - Cursor: pure MD
|
|
56
|
+
│ │ - Qwen: TOML
|
|
57
|
+
│ │ - Antigravity: MD + YAML (12K limit)
|
|
58
|
+
└────────┬────────┘
|
|
59
59
|
│
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
│
|
|
64
|
-
│
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
▼ ▼ ▼ ▼ ▼
|
|
68
|
-
Platform-specific output directories
|
|
60
|
+
▼
|
|
61
|
+
┌─────────────────┐
|
|
62
|
+
│ Manifest │ devflow/.generated/manifest.json
|
|
63
|
+
│ (manifest.js) │ - Track source/target hashes
|
|
64
|
+
│ │ - Enable incremental compilation
|
|
65
|
+
│ │ - Detect drift
|
|
66
|
+
└─────────────────┘
|
|
69
67
|
```
|
|
70
68
|
|
|
71
69
|
## CLI Usage
|
|
72
70
|
|
|
73
71
|
```bash
|
|
74
|
-
# Compile commands + modules
|
|
75
72
|
npm run adapt # Compile all platforms
|
|
76
73
|
npm run adapt -- --platform codex # Compile single platform
|
|
77
74
|
npm run adapt -- --check # Drift detection only
|
|
78
|
-
|
|
79
|
-
#
|
|
80
|
-
npm run adapt -- --modules skills,commands,agents,rules
|
|
81
|
-
npm run adapt -- --modules skills --platform cursor
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
## Key APIs
|
|
85
|
-
|
|
86
|
-
### compile(options) - Main Flow
|
|
87
|
-
Compiles commands and emits platform modules (skills, agents, rules, hooks).
|
|
88
|
-
|
|
89
|
-
### compileMultiModule(options) - v3.0
|
|
90
|
-
Compiles all specified modules.
|
|
91
|
-
|
|
92
|
-
```javascript
|
|
93
|
-
const { compileMultiModule } = require('./lib/compiler');
|
|
94
|
-
|
|
95
|
-
await compileMultiModule({
|
|
96
|
-
sourceBaseDir: '.claude/',
|
|
97
|
-
outputBaseDir: '.',
|
|
98
|
-
platforms: ['codex', 'cursor', 'qwen', 'antigravity'],
|
|
99
|
-
modules: ['skills', 'commands', 'agents', 'rules'],
|
|
100
|
-
verbose: true
|
|
101
|
-
});
|
|
75
|
+
npm run adapt -- --skills # Generate skills-registry.json
|
|
76
|
+
npm run adapt -- --verbose # Detailed output
|
|
102
77
|
```
|
|
103
78
|
|
|
104
79
|
## Key Schemas
|
|
105
80
|
|
|
106
|
-
- **
|
|
81
|
+
- **PromptIR**: Intermediate representation after parsing
|
|
107
82
|
- **ManifestEntry**: Single compilation record (source, target, hash, platform)
|
|
108
83
|
- **Manifest**: Complete compilation history
|
|
109
|
-
- **PlatformConfig**: Platform-specific configuration (v2.0)
|
|
110
84
|
|
|
111
85
|
## Dependencies
|
|
112
86
|
|
|
113
87
|
- `gray-matter`: Frontmatter parsing
|
|
114
88
|
- `@iarna/toml`: TOML serialization (Qwen)
|
|
115
|
-
- `js-yaml`: YAML serialization (Codex, Antigravity
|
|
89
|
+
- `js-yaml`: YAML serialization (Codex, Antigravity)
|
|
116
90
|
- `zod`: Schema validation
|
|
117
91
|
|
|
118
92
|
---
|
|
119
93
|
|
|
120
94
|
**Created**: 2025-12-18
|
|
121
|
-
**
|
|
122
|
-
**
|
|
123
|
-
**Version**: 3.0.0
|
|
124
|
-
|
|
125
|
-
[PROTOCOL]: 变更时更新此头部,然后检查 CLAUDE.md
|
|
95
|
+
**REQ**: REQ-005 (RM-007)
|
|
96
|
+
**Version**: 1.0.0
|
|
@@ -124,7 +124,7 @@ describe('Drift Detection', () => {
|
|
|
124
124
|
|
|
125
125
|
describe('Rules Entry Drift Detection', () => {
|
|
126
126
|
test('should include rules entry files in drift check', async () => {
|
|
127
|
-
//
|
|
127
|
+
// 规则入口文件应该和其他编译产物一样被检测
|
|
128
128
|
// 这需要在 Phase 4 扩展 checkDrift 函数
|
|
129
129
|
|
|
130
130
|
const { checkDrift, hashContent, addRulesEntry, createManifest } = require('../manifest');
|