cc-devflow 4.4.1 → 4.5.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.
Files changed (65) hide show
  1. package/.claude/skills/cc-act/CHANGELOG.md +6 -0
  2. package/.claude/skills/cc-act/SKILL.md +9 -1
  3. package/.claude/skills/cc-act/assets/PR_BRIEF_TEMPLATE.md +4 -0
  4. package/.claude/skills/cc-act/assets/RELEASE_NOTE_TEMPLATE.md +4 -0
  5. package/.claude/skills/cc-act/scripts/cc-act-common.sh +5 -0
  6. package/.claude/skills/cc-act/scripts/render-pr-brief.sh +5 -0
  7. package/.claude/skills/cc-act/scripts/sync-act-docs.sh +14 -1
  8. package/.claude/skills/cc-check/CHANGELOG.md +5 -0
  9. package/.claude/skills/cc-check/SKILL.md +9 -1
  10. package/.claude/skills/cc-check/assets/REPORT_CARD_TEMPLATE.json +3 -0
  11. package/.claude/skills/cc-do/CHANGELOG.md +5 -0
  12. package/.claude/skills/cc-do/SKILL.md +9 -1
  13. package/.claude/skills/cc-investigate/CHANGELOG.md +5 -0
  14. package/.claude/skills/cc-investigate/SKILL.md +9 -1
  15. package/.claude/skills/cc-investigate/assets/ANALYSIS_TEMPLATE.md +1 -0
  16. package/.claude/skills/cc-investigate/assets/TASKS_TEMPLATE.md +1 -0
  17. package/.claude/skills/cc-investigate/assets/TASK_MANIFEST_TEMPLATE.json +3 -0
  18. package/.claude/skills/cc-plan/CHANGELOG.md +5 -0
  19. package/.claude/skills/cc-plan/SKILL.md +9 -1
  20. package/.claude/skills/cc-plan/assets/DESIGN_TEMPLATE.md +1 -0
  21. package/.claude/skills/cc-plan/assets/TASKS_TEMPLATE.md +1 -0
  22. package/.claude/skills/cc-plan/assets/TASK_MANIFEST_TEMPLATE.json +3 -0
  23. package/.claude/skills/cc-plan/assets/TINY_DESIGN_TEMPLATE.md +1 -0
  24. package/.claude/skills/cc-roadmap/CHANGELOG.md +5 -0
  25. package/.claude/skills/cc-roadmap/SKILL.md +9 -1
  26. package/.claude/skills/cc-roadmap/assets/BACKLOG_TEMPLATE.md +1 -0
  27. package/.claude/skills/cc-roadmap/assets/ROADMAP_TEMPLATE.md +1 -0
  28. package/.claude/skills/cc-roadmap/assets/TRACKING_TEMPLATE.json +4 -1
  29. package/.claude/skills/cc-spec-init/CHANGELOG.md +5 -0
  30. package/.claude/skills/cc-spec-init/SKILL.md +9 -1
  31. package/.claude/skills/cc-spec-init/assets/CAPABILITY_TEMPLATE.md +1 -0
  32. package/.claude/skills/cc-spec-init/assets/CHANGE_META_TEMPLATE.json +3 -0
  33. package/.claude/skills/cc-spec-init/assets/INDEX_TEMPLATE.md +1 -0
  34. package/CHANGELOG.md +19 -0
  35. package/README.md +43 -0
  36. package/README.zh-CN.md +43 -0
  37. package/bin/cc-devflow-cli.js +226 -0
  38. package/config/schema/cc-devflow-config.schema.json +45 -0
  39. package/config/user-config.template.yml +16 -0
  40. package/docs/examples/example-bindings.json +8 -8
  41. package/docs/examples/full-design-blocked/BACKLOG.md +1 -1
  42. package/docs/examples/full-design-blocked/README.md +1 -1
  43. package/docs/examples/full-design-blocked/ROADMAP.md +1 -1
  44. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/design.md +1 -1
  45. package/docs/examples/full-design-blocked/changes/REQ-002-bulk-invite-import/planning/tasks.md +1 -1
  46. package/docs/examples/full-design-blocked/roadmap-tracking.json +1 -1
  47. package/docs/examples/local-handoff/BACKLOG.md +1 -1
  48. package/docs/examples/local-handoff/README.md +1 -1
  49. package/docs/examples/local-handoff/ROADMAP.md +1 -1
  50. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/design.md +1 -1
  51. package/docs/examples/local-handoff/changes/REQ-003-audit-log-export/planning/tasks.md +1 -1
  52. package/docs/examples/local-handoff/roadmap-tracking.json +1 -1
  53. package/docs/examples/pdca-loop/BACKLOG.md +1 -1
  54. package/docs/examples/pdca-loop/README.md +1 -1
  55. package/docs/examples/pdca-loop/ROADMAP.md +1 -1
  56. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/design.md +1 -1
  57. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/task-manifest.json +2 -2
  58. package/docs/examples/pdca-loop/changes/REQ-001-copy-invite-link/planning/tasks.md +1 -1
  59. package/docs/examples/pdca-loop/roadmap-tracking.json +1 -1
  60. package/lib/skill-runtime/__tests__/cli-bootstrap.integration.test.js +112 -2
  61. package/lib/skill-runtime/__tests__/config.test.js +161 -0
  62. package/lib/skill-runtime/__tests__/runtime.integration.test.js +2 -0
  63. package/lib/skill-runtime/config.js +379 -0
  64. package/lib/skill-runtime/index.js +2 -0
  65. package/package.json +1 -1
@@ -1,5 +1,11 @@
1
1
  # CC-Act Skill Changelog
2
2
 
3
+ ## v1.6.2 - 2026-04-27
4
+
5
+ - require closeout handoff documents to resolve the runtime output policy before writing PR briefs, release notes, resume indexes, or status handoffs
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+ - render `Output language` metadata in generated PR briefs, release notes, resume indexes, and doc sync reports
8
+
3
9
  ## v1.6.1 - 2026-04-25
4
10
 
5
11
  - remove external tool provenance from the public skill contract so ship and documentation release rules read as native `cc-act` behavior
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-act
3
- version: 1.6.1
3
+ version: 1.6.2
4
4
  description: 'Use when verified work must be shipped or handed off with a clear landing path: run simplify and required tests, create or update a PR, prepare a local handoff, close out merged work, sync docs, write release notes, and fold follow-ups back into backlog or roadmap.'
5
5
  triggers:
6
6
  - 准备提 PR
@@ -73,6 +73,14 @@ tool_budget:
73
73
 
74
74
  一句话:`cc-check` 证明“东西已经好”,`cc-act` 负责把“已经好”变成“已经落地”。
75
75
 
76
+ ## Runtime Output Policy
77
+
78
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
79
+
80
+ - `Output language` 是机器约束,PR brief、resume index、release note 和 status handoff 必须记录并遵守它。
81
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
82
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
83
+
76
84
  ## Read First
77
85
 
78
86
  1. `PLAYBOOK.md`
@@ -1,5 +1,9 @@
1
1
  # PR Brief
2
2
 
3
+ ## Document Meta
4
+
5
+ - Output language:
6
+
3
7
  ## Decision
4
8
 
5
9
  - Recommended mode:
@@ -1,5 +1,9 @@
1
1
  # Release Note
2
2
 
3
+ ## Document Meta
4
+
5
+ - Output language:
6
+
3
7
  ## Release Scope
4
8
 
5
9
  - Why a release note is needed now:
@@ -103,6 +103,11 @@ req_act_spec_sync_ready() {
103
103
  jq -r '.specSyncReady // false' "$report_card" 2>/dev/null || echo false
104
104
  }
105
105
 
106
+ req_act_output_language() {
107
+ local report_card="$1"
108
+ jq -r '.outputPolicy.documentLanguage // "en"' "$report_card" 2>/dev/null || echo en
109
+ }
110
+
106
111
  req_act_design_goal() {
107
112
  local design_file="$1"
108
113
  awk -F': ' '/^- Deliver:/{print $2; exit} /^- Change:/{print $2; exit}' "$design_file" 2>/dev/null || true
@@ -62,6 +62,7 @@ pr_url="$(req_act_ship_field "$ship_context" "PR_URL")"
62
62
  requirement_id="$(req_act_requirement_id "$manifest" "$CHANGE_DIR")"
63
63
  report_summary="$(req_act_report_summary "$report_card")"
64
64
  report_verdict="$(req_act_report_verdict "$report_card")"
65
+ output_language="$(req_act_output_language "$report_card")"
65
66
  design_goal="$(req_act_design_goal "$design_file")"
66
67
  main_risk="$(req_act_main_risk "$design_file")"
67
68
 
@@ -97,6 +98,10 @@ fi
97
98
  {
98
99
  echo "# PR Brief"
99
100
  echo
101
+ echo "## Document Meta"
102
+ echo
103
+ echo "- Output language: $output_language"
104
+ echo
100
105
  echo "## Requirement"
101
106
  echo
102
107
  echo "- $requirement_id"
@@ -59,6 +59,7 @@ requirement_id="$(req_act_requirement_id "$manifest" "$CHANGE_DIR")"
59
59
  report_summary="$(req_act_report_summary "$report_card")"
60
60
  report_verdict="$(req_act_report_verdict "$report_card")"
61
61
  spec_sync_ready="$(req_act_spec_sync_ready "$report_card")"
62
+ output_language="$(req_act_output_language "$report_card")"
62
63
  design_goal="$(req_act_design_goal "$design_file")"
63
64
  main_risk="$(req_act_main_risk "$design_file")"
64
65
 
@@ -128,6 +129,10 @@ find "$REPO_ROOT" -maxdepth 2 -type f \( -iname 'README.md' -o -iname 'README*.m
128
129
  {
129
130
  echo "# Release Note"
130
131
  echo
132
+ echo "## Document Meta"
133
+ echo
134
+ echo "- Output language: $output_language"
135
+ echo
131
136
  echo "## User Impact"
132
137
  if [[ -n "$report_summary" ]]; then
133
138
  echo
@@ -198,6 +203,10 @@ esac
198
203
  {
199
204
  echo "# Resume Index"
200
205
  echo
206
+ echo "## Document Meta"
207
+ echo
208
+ echo "- Output language: $output_language"
209
+ echo
201
210
  echo "- Requirement: $requirement_id"
202
211
  echo "- Current stage: cc-act"
203
212
  echo "- Current task: ship:$ship_mode"
@@ -218,7 +227,7 @@ esac
218
227
  echo "- Ship mode decided as \`$ship_mode\`."
219
228
  [[ -n "$pr_url" ]] && echo "- Active PR / MR: $pr_url"
220
229
  echo
221
- echo "## Blockers"
230
+ echo "## Follow-Ups"
222
231
  echo
223
232
  if [[ -s "$tmp_followups" ]]; then
224
233
  while IFS= read -r line; do
@@ -245,6 +254,10 @@ esac
245
254
  {
246
255
  echo "# Doc Sync Report"
247
256
  echo
257
+ echo "## Document Meta"
258
+ echo
259
+ echo "- Output language: $output_language"
260
+ echo
248
261
  echo "- Requirement: $requirement_id"
249
262
  echo "- Ship mode: $ship_mode"
250
263
  echo "- CC-Check verdict: $report_verdict"
@@ -1,5 +1,10 @@
1
1
  # CC-Check Skill Changelog
2
2
 
3
+ ## v1.8.2 - 2026-04-27
4
+
5
+ - require verification reports to resolve the runtime output policy before writing human-readable verdicts or summaries
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v1.8.1 - 2026-04-25
4
9
 
5
10
  - remove external tool provenance from the public skill contract so diff review reads as native `cc-check` behavior
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-check
3
- version: 1.8.1
3
+ version: 1.8.2
4
4
  description: Use when a planned or investigated change needs fresh verification evidence, layered gate proof, review truth, and an honest pass fail blocked verdict before entering cc-act.
5
5
  triggers:
6
6
  - 验收这个需求
@@ -57,6 +57,14 @@ tool_budget:
57
57
 
58
58
  它不是收尾话术器,也不是替 `cc-do` 涂绿。
59
59
 
60
+ ## Runtime Output Policy
61
+
62
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
63
+
64
+ - `Output language` 是机器约束,`review/report-card.json` 中新增的人类可读 verdict 和报告摘要必须记录并遵守它。
65
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
66
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
67
+
60
68
  ## Iron Law
61
69
 
62
70
  ```text
@@ -1,5 +1,8 @@
1
1
  {
2
2
  "changeId": "REQ-123",
3
+ "outputPolicy": {
4
+ "documentLanguage": ""
5
+ },
3
6
  "verdict": "blocked",
4
7
  "overall": "fail",
5
8
  "summary": "verdict=blocked quick=1/2 strict=0/0 review=blocked",
@@ -1,5 +1,10 @@
1
1
  # CC-Do Skill Changelog
2
2
 
3
+ ## v1.5.2 - 2026-04-27
4
+
5
+ - require execution evidence that adds human-readable summaries to resolve the runtime output policy first
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v1.5.1 - 2026-04-25
4
9
 
5
10
  - remove external tool provenance from the public skill contract so test-first execution reads as native `cc-do` behavior
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-do
3
- version: 1.5.1
3
+ version: 1.5.2
4
4
  description: Use when implementing planned tasks, resuming interrupted work, applying a frozen investigation handoff, or landing review feedback after cc-plan or cc-investigate.
5
5
  triggers:
6
6
  - 开始做 T003
@@ -71,6 +71,14 @@ tool_budget:
71
71
 
72
72
  它只做一件事:沿着已经冻结的任务,把代码真正做出来,并把执行证据留到足够让别人接手、复盘、复验。
73
73
 
74
+ ## Runtime Output Policy
75
+
76
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
77
+
78
+ - `Output language` 是机器约束,checkpoint、events、team-state 中新增的人类可读摘要必须记录并遵守它。
79
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
80
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
81
+
74
82
  上游冻结合同可以来自两条路:
75
83
 
76
84
  - `cc-plan` 产出的 `planning/design.md`
@@ -1,5 +1,10 @@
1
1
  # CC-Investigate Skill Changelog
2
2
 
3
+ ## v1.1.2 - 2026-04-27
4
+
5
+ - require investigation outputs to resolve the runtime output policy before writing analysis, task, or change metadata artifacts
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v1.1.1 - 2026-04-25
4
9
 
5
10
  - require new bug-fix investigations to use `FIX-<number>-<description>` change keys
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-investigate
3
- version: 1.1.1
3
+ version: 1.1.2
4
4
  description: "Use when a bug, regression, broken task, or unexpected behavior needs root-cause investigation, reproducible evidence, and a frozen repair handoff before cc-do resumes coding."
5
5
  triggers:
6
6
  - "帮我查这个 bug"
@@ -79,6 +79,14 @@ tool_budget:
79
79
  - `PDCA`
80
80
  - `IDCA`,如果你更喜欢口语,也可以把它理解成 `DDCA`
81
81
 
82
+ ## Runtime Output Policy
83
+
84
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
85
+
86
+ - `Output language` 是机器约束,`planning/analysis.md`、`planning/tasks.md` 和 `change-meta.json` 必须记录并遵守它。
87
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
88
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
89
+
82
90
  ## Read First
83
91
 
84
92
  1. `PLAYBOOK.md`
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Analysis version:
7
7
  - Investigate skill version:
8
+ - Output language:
8
9
  - Source roadmap item:
9
10
  - Source roadmap version:
10
11
  - Incident / bug ID:
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Analysis version:
7
7
  - Investigate skill version:
8
+ - Output language:
8
9
  - Source bug / incident:
9
10
  - Change meta: `change-meta.json`
10
11
 
@@ -2,6 +2,9 @@
2
2
  "changeId": "FIX-XXX",
3
3
  "requirementId": "FIX-XXX",
4
4
  "requirementVersion": "FIX-XXX.v1",
5
+ "outputPolicy": {
6
+ "documentLanguage": ""
7
+ },
5
8
  "sourceRoadmap": {
6
9
  "itemId": "RM-001",
7
10
  "roadmapVersion": "1.0",
@@ -1,5 +1,10 @@
1
1
  # CC-Plan Skill Changelog
2
2
 
3
+ ## v3.5.4 - 2026-04-27
4
+
5
+ - require planning outputs to resolve the runtime output policy before writing `planning/design.md`, `planning/tasks.md`, or `change-meta.json`
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v3.5.3 - 2026-04-25
4
9
 
5
10
  - require new planning change directories to use `REQ-<number>-<description>` for requirements and `FIX-<number>-<description>` for fixes
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-plan
3
- version: 3.5.3
3
+ version: 3.5.4
4
4
  description: Use when a requirement, roadmap item, or bug needs scope clarification, design decisions, and executable task breakdown before coding starts.
5
5
  triggers:
6
6
  - 帮我规划这个需求
@@ -67,6 +67,14 @@ tool_budget:
67
67
 
68
68
  它的目标不是制造一串 planning 文档,而是把 requirement 压成最少但足够强的交付物,让 `cc-do` 不需要临场补脑。
69
69
 
70
+ ## Runtime Output Policy
71
+
72
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
73
+
74
+ - `Output language` 是机器约束,`planning/design.md`、`planning/tasks.md` 和 `change-meta.json` 必须记录并遵守它。
75
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
76
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
77
+
70
78
  ## Read First
71
79
 
72
80
  1. `PLAYBOOK.md`
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Design version:
7
7
  - CC-Plan skill version:
8
+ - Output language:
8
9
  - Requirement ID:
9
10
  - Design mode: `full-design`
10
11
  - Why not `tiny-design`:
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Design version:
7
7
  - CC-Plan skill version:
8
+ - Output language:
8
9
  - Source roadmap item:
9
10
  - Source roadmap version:
10
11
  - Change meta: `change-meta.json`
@@ -2,6 +2,9 @@
2
2
  "changeId": "REQ-XXX",
3
3
  "requirementId": "REQ-XXX",
4
4
  "requirementVersion": "REQ-XXX.v1",
5
+ "outputPolicy": {
6
+ "documentLanguage": ""
7
+ },
5
8
  "sourceRoadmap": {
6
9
  "itemId": "RM-001",
7
10
  "roadmapVersion": "1.0",
@@ -5,6 +5,7 @@
5
5
  - Requirement version:
6
6
  - Design version:
7
7
  - CC-Plan skill version:
8
+ - Output language:
8
9
  - Requirement ID:
9
10
  - Design mode: `tiny-design`
10
11
  - Why this stays `tiny-design`:
@@ -1,5 +1,10 @@
1
1
  # Roadmap Skill Changelog
2
2
 
3
+ ## v4.3.2 - 2026-04-27
4
+
5
+ - require roadmap outputs to resolve the runtime output policy before writing durable roadmap/backlog documents
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v4.3.1 - 2026-04-19
4
9
 
5
10
  - refactor `scripts/roadmap-tracking.js` into focused schema / markdown / store helpers so the CLI stops carrying parsing, rendering, upgrade, and persistence in one 1000-line file
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-roadmap
3
- version: 4.3.1
3
+ version: 4.3.2
4
4
  description: "Use when defining, resetting, or narrowing project direction, stage order, or backlog priority before a concrete requirement enters the PDCA loop."
5
5
  triggers:
6
6
  - "帮我定路线图"
@@ -61,6 +61,14 @@ tool_budget:
61
61
 
62
62
  它先尽可能收集真实上下文,再逼出真实用户、真实痛点、真实紧迫性,最后把这些现实压成一条能落地、能进入 `cc-plan` 的主线。
63
63
 
64
+ ## Runtime Output Policy
65
+
66
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
67
+
68
+ - `Output language` 是机器约束,`devflow/ROADMAP.md`、`devflow/BACKLOG.md` 和 tracking metadata 必须记录并遵守它。
69
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
70
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
71
+
64
72
  ## Read First
65
73
 
66
74
  1. `PLAYBOOK.md`
@@ -4,6 +4,7 @@
4
4
 
5
5
  - Roadmap version:
6
6
  - Skill version:
7
+ - Output language:
7
8
  - Last synced:
8
9
  - Current focus stage:
9
10
  - Tracking source: `devflow/roadmap-tracking.json`
@@ -4,6 +4,7 @@
4
4
 
5
5
  - Roadmap version:
6
6
  - Skill version:
7
+ - Output language:
7
8
  - Status:
8
9
  - Last updated:
9
10
  - Owner / decider:
@@ -1,9 +1,12 @@
1
1
  {
2
2
  "version": 2,
3
+ "outputPolicy": {
4
+ "documentLanguage": ""
5
+ },
3
6
  "lastSyncedAt": "2026-04-19",
4
7
  "backlogMeta": {
5
8
  "roadmapVersion": "roadmap.v1",
6
- "skillVersion": "4.3.1",
9
+ "skillVersion": "4.3.2",
7
10
  "currentFocusStage": "Stage 1"
8
11
  },
9
12
  "dependencyHandoff": {
@@ -1,5 +1,10 @@
1
1
  # CC-Spec-Init Skill Changelog
2
2
 
3
+ ## v1.0.1 - 2026-04-27
4
+
5
+ - require capability specs, spec indexes, and change metadata to resolve the runtime output policy before writing durable artifacts
6
+ - record `Output language` as the machine-enforced language contract while treating `agent_preferences` as advisory style input
7
+
3
8
  ## v1.0.0 - 2026-04-19
4
9
 
5
10
  - 初始版 `cc-spec-init`,用于 capability-centered spec 初始化、能力真相源维护和 `change-meta.json` 链路收口。
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: cc-spec-init
3
- version: 1.0.0
3
+ version: 1.0.1
4
4
  description: Use when you need to initialize capability specs under `devflow/specs/`, create or evolve capability truth sources, generate `change-meta.json`, or validate roadmap/change/spec links before roadmap, planning, or closeout work continues.
5
5
  ---
6
6
 
@@ -33,6 +33,14 @@ description: Use when you need to initialize capability specs under `devflow/spe
33
33
  - 重建 `devflow/specs/INDEX.md`
34
34
  - 校验 capability、roadmap item、change 之间的链接完整性
35
35
 
36
+ ## Runtime Output Policy
37
+
38
+ 写入任何 durable Markdown 或 JSON metadata 前,先运行 `cc-devflow config resolve --format policy`。
39
+
40
+ - `Output language` 是机器约束,capability spec、`devflow/specs/INDEX.md` 和 `change-meta.json` 必须记录并遵守它。
41
+ - `agent_preferences` 是用户偏好建议,只影响表达方式和结构选择,不覆盖本 Skill 的工作流边界。
42
+ - 如果配置解析失败,先修配置或向用户说明阻塞,不要用默认语言继续生成正式文档。
43
+
36
44
  ## Read First
37
45
 
38
46
  1. `PLAYBOOK.md`
@@ -4,6 +4,7 @@ title: Example Capability
4
4
  type: user-visible
5
5
  status: partial
6
6
  primary_owner: ""
7
+ output_language: ""
7
8
  last_verified_at: 2026-04-19
8
9
  roadmap_links:
9
10
  - RM-001
@@ -1,6 +1,9 @@
1
1
  {
2
2
  "changeId": "REQ-001",
3
3
  "requirementId": "REQ-001",
4
+ "outputPolicy": {
5
+ "documentLanguage": ""
6
+ },
4
7
  "sourceRoadmap": {
5
8
  "itemId": "RM-001",
6
9
  "roadmapVersion": "roadmap.v1",
@@ -3,6 +3,7 @@
3
3
  ## Index Meta
4
4
 
5
5
  - Spec system version: `spec.v1`
6
+ - Output language:
6
7
  - Last updated:
7
8
  - Maintainer:
8
9
  - Notes:
package/CHANGELOG.md CHANGED
@@ -9,6 +9,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
9
9
 
10
10
  ## [Unreleased]
11
11
 
12
+ ## [4.5.0] - 2026-04-27
13
+
14
+ ### ✨ Runtime YAML Config
15
+
16
+ v4.5.0 adds a personal/project YAML config mechanism that resolves output policy
17
+ at runtime before durable workflow documents are written.
18
+
19
+ ### Added
20
+
21
+ - Added `~/.cc-devflow/config.yml`, `<repo>/.cc-devflow/config.yml`, and `<repo>/.cc-devflow/config.local.yml` resolution with deterministic defaults < user < project < local < env < CLI precedence.
22
+ - Added strict `output.document_language` validation for `en` and `zh-CN`, with non-standard preferences preserved under advisory `agent_preferences`.
23
+ - Added `cc-devflow config init|get|set|resolve|doctor` so users can create, inspect, update, trace, and diagnose the effective output contract.
24
+ - Added `config/user-config.template.yml` and `config/schema/cc-devflow-config.schema.json`.
25
+
26
+ ### Changed
27
+
28
+ - Public workflow skills now resolve config at runtime with `cc-devflow config resolve --format policy` before writing durable Markdown or human-readable metadata.
29
+ - `cc-devflow init` and `cc-devflow adapt --platform codex` no longer bake resolved user policy into managed Skill files.
30
+
12
31
  ## [4.4.1] - 2026-04-25
13
32
 
14
33
  ### 🔧 Canonical Change Keys + Planning Contract Hardening
package/README.md CHANGED
@@ -76,6 +76,49 @@ Whole-pack installation ships the six visible workflow skills plus the maintenan
76
76
 
77
77
  If you are running from a source checkout instead of an installed package, use `node bin/cc-devflow-cli.js ...` or `npm exec -- cc-devflow ...`.
78
78
 
79
+ ## ⚙️ Personal YAML Config
80
+
81
+ CC-DevFlow reads personal/project YAML config at runtime before durable workflow documents are written. Create one or more config files:
82
+
83
+ ```text
84
+ ~/.cc-devflow/config.yml
85
+ <repo>/.cc-devflow/config.yml
86
+ <repo>/.cc-devflow/config.local.yml
87
+ ```
88
+
89
+ Precedence is deterministic: defaults < user < project < local < env < CLI. `output.document_language` is machine-enforced and currently supports only `en` and `zh-CN`. Non-standard user preferences belong under `agent_preferences`; they are advisory and never override workflow contracts.
90
+
91
+ Example:
92
+
93
+ ```yaml
94
+ version: 1
95
+ output:
96
+ document_language: zh-CN
97
+ agent_preferences:
98
+ general:
99
+ - Start with the conclusion.
100
+ documentation:
101
+ - Keep headings short and avoid marketing language.
102
+ ```
103
+
104
+ Create or edit config with:
105
+
106
+ ```bash
107
+ npx cc-devflow config init --cwd /path/to/your/project --project
108
+ npx cc-devflow config set output.document_language zh-CN --cwd /path/to/your/project --project
109
+ npx cc-devflow config set output.document_language zh-CN --user
110
+ ```
111
+
112
+ Inspect and diagnose the resolved policy with:
113
+
114
+ ```bash
115
+ npx cc-devflow config resolve --cwd /path/to/your/project --format policy
116
+ npx cc-devflow config get output.document_language --cwd /path/to/your/project
117
+ npx cc-devflow config doctor --cwd /path/to/your/project
118
+ ```
119
+
120
+ See `config/user-config.template.yml` for the full sample.
121
+
79
122
  ## 🧩 skills.sh Distribution
80
123
 
81
124
  [skills.sh](https://skills.sh/) is supported only as a distribution channel for the new `.claude` skills.
package/README.zh-CN.md CHANGED
@@ -76,6 +76,49 @@ npx cc-devflow adapt --cwd /path/to/your/project --platform antigravity
76
76
 
77
77
  如果你不是通过已安装包,而是在源码仓库里调试 CLI,本地运行请用 `node bin/cc-devflow-cli.js ...` 或 `npm exec -- cc-devflow ...`。
78
78
 
79
+ ## ⚙️ 个人 YAML 配置
80
+
81
+ CC-DevFlow 会在写入 durable workflow 文档前按运行时读取个人 / 项目 YAML 配置。配置文件支持三层:
82
+
83
+ ```text
84
+ ~/.cc-devflow/config.yml
85
+ <repo>/.cc-devflow/config.yml
86
+ <repo>/.cc-devflow/config.local.yml
87
+ ```
88
+
89
+ 优先级固定为:默认值 < 用户 < 项目 < 本地 < 环境变量 < CLI 参数。`output.document_language` 是机器约束,目前只支持 `en` 和 `zh-CN`。非标偏好统一放在 `agent_preferences` 下,它只作为表达和格式建议,不覆盖 workflow 合同。
90
+
91
+ 最小示例:
92
+
93
+ ```yaml
94
+ version: 1
95
+ output:
96
+ document_language: zh-CN
97
+ agent_preferences:
98
+ general:
99
+ - 先给结论。
100
+ documentation:
101
+ - 标题短一些,避免营销腔。
102
+ ```
103
+
104
+ 创建或修改配置:
105
+
106
+ ```bash
107
+ npx cc-devflow config init --cwd /path/to/your/project --project
108
+ npx cc-devflow config set output.document_language zh-CN --cwd /path/to/your/project --project
109
+ npx cc-devflow config set output.document_language zh-CN --user
110
+ ```
111
+
112
+ 查看和诊断解析后的策略:
113
+
114
+ ```bash
115
+ npx cc-devflow config resolve --cwd /path/to/your/project --format policy
116
+ npx cc-devflow config get output.document_language --cwd /path/to/your/project
117
+ npx cc-devflow config doctor --cwd /path/to/your/project
118
+ ```
119
+
120
+ 完整样例见 `config/user-config.template.yml`。
121
+
79
122
  ## 🧩 skills.sh 分发
80
123
 
81
124
  [skills.sh](https://skills.sh/) 只作为新的 `.claude` Skill 分发渠道使用。