dev-playbooks 2.4.0 → 3.0.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 (34) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/README.md +9 -0
  3. package/bin/devbooks.js +86 -4
  4. package/package.json +1 -1
  5. package/scripts/dependency-audit.sh +97 -0
  6. package/skills/devbooks-coder/SKILL.md +233 -47
  7. package/skills/devbooks-docs-consistency/scripts/completeness-checker.sh +2 -2
  8. package/skills/devbooks-router/SKILL.md +2 -0
  9. package/skills/devbooks-router/references/routing-rules-and-templates.md +12 -1
  10. package/templates/claude-commands/devbooks/apply.md +27 -0
  11. package/templates/claude-commands/devbooks/archive.md +16 -0
  12. package/templates/claude-commands/devbooks/backport.md +16 -0
  13. package/templates/claude-commands/devbooks/bootstrap.md +16 -0
  14. package/templates/claude-commands/devbooks/c4.md +16 -0
  15. package/templates/claude-commands/devbooks/challenger.md +16 -0
  16. package/templates/claude-commands/devbooks/code.md +21 -0
  17. package/templates/claude-commands/devbooks/debate.md +27 -0
  18. package/templates/claude-commands/devbooks/delivery.md +22 -0
  19. package/templates/claude-commands/devbooks/design.md +23 -0
  20. package/templates/claude-commands/devbooks/entropy.md +16 -0
  21. package/templates/claude-commands/devbooks/federation.md +16 -0
  22. package/templates/claude-commands/devbooks/gardener.md +16 -0
  23. package/templates/claude-commands/devbooks/impact.md +16 -0
  24. package/templates/claude-commands/devbooks/index.md +22 -0
  25. package/templates/claude-commands/devbooks/judge.md +16 -0
  26. package/templates/claude-commands/devbooks/plan.md +16 -0
  27. package/templates/claude-commands/devbooks/proposal.md +23 -0
  28. package/templates/claude-commands/devbooks/quick.md +20 -0
  29. package/templates/claude-commands/devbooks/review.md +16 -0
  30. package/templates/claude-commands/devbooks/router.md +24 -0
  31. package/templates/claude-commands/devbooks/spec.md +16 -0
  32. package/templates/claude-commands/devbooks/start.md +22 -0
  33. package/templates/claude-commands/devbooks/test-review.md +16 -0
  34. package/templates/claude-commands/devbooks/test.md +23 -0
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [3.0.0] - 2026-01-26
9
+
10
+ ### Added
11
+
12
+ - **AI-native workflow and protocol updates**:
13
+ - Start/Router entrypoints and phase routing guidance
14
+ - Change package templates and protocol contracts (RUNBOOK, verification/compliance/rollback, Knife Plan, contract schemas)
15
+ - Quality gates and evidence structure (G0–G6, risk and audit requirements)
16
+ - Dependency audit script and release verification entrypoints
17
+ - Updated architecture/file-system views and workflow diagram template
18
+
19
+ ### Changed
20
+
21
+ - **CLI entrypoints**:
22
+ - Add `start` and `router` commands for entry guidance (does not run AI)
23
+ - Help output links to templates and workflow docs
24
+
25
+ ---
26
+
8
27
  ## [2.3.0] - 2026-01-25
9
28
 
10
29
  ### Added
package/README.md CHANGED
@@ -21,6 +21,14 @@ This skill orchestrates the full development loop: Proposal -> Design -> Spec ->
21
21
 
22
22
  **Best for**: new feature work, major refactors, teams new to DevBooks
23
23
 
24
+ If you're not sure which entrypoint to use, start with:
25
+
26
+ ```bash
27
+ /devbooks:start
28
+ ```
29
+
30
+ Start is the default entrypoint. It routes you to the shortest closed-loop next step.
31
+
24
32
  ---
25
33
 
26
34
  ## Positioning and Writing Conventions
@@ -108,6 +116,7 @@ dev-playbooks update
108
116
  ## Docs
109
117
 
110
118
  - [DevBooks setup guide](docs/devbooks-setup-guide.md) - setup instructions
119
+ - [AI-native workflow](docs/ai-native-workflow.md) - workflow, roles, evidence
111
120
  - [Recommended MCP](docs/Recommended-MCP.md) - MCP server recommendations
112
121
 
113
122
  ---
package/bin/devbooks.js CHANGED
@@ -9,6 +9,8 @@
9
9
  * dev-playbooks init [path] [options]
10
10
  * dev-playbooks update [path] # Update CLI and configured tools
11
11
  * dev-playbooks migrate --from <framework> [options]
12
+ * dev-playbooks start [options] # Entry guidance (does not run AI)
13
+ * dev-playbooks router [options] # Routing guidance (does not run AI)
12
14
  *
13
15
  * Options:
14
16
  * --tools <tools> Non-interactive tool selection: all, none, or comma-separated list
@@ -33,6 +35,11 @@ const __dirname = path.dirname(__filename);
33
35
 
34
36
  const CLI_COMMAND = 'dev-playbooks';
35
37
  const XDG_CONFIG_HOME = process.env.XDG_CONFIG_HOME || path.join(os.homedir(), '.config');
38
+ const ENTRY_DOC = 'docs/ai-native-workflow.md';
39
+ const ENTRY_TEMPLATES = {
40
+ start: 'templates/claude-commands/devbooks/start.md',
41
+ router: 'templates/claude-commands/devbooks/router.md'
42
+ };
36
43
 
37
44
  // Version check cache configuration
38
45
  const VERSION_CACHE_FILE = path.join(os.tmpdir(), `${CLI_COMMAND}-version-cache.json`);
@@ -103,8 +110,9 @@ const AI_TOOLS = [
103
110
  id: 'cursor',
104
111
  name: 'Cursor',
105
112
  description: 'Cursor AI IDE',
106
- skillsSupport: SKILLS_SUPPORT.RULES,
113
+ skillsSupport: SKILLS_SUPPORT.FULL,
107
114
  slashDir: '.cursor/commands/devbooks',
115
+ skillsDir: '.cursor/skills', // Project-level
108
116
  rulesDir: '.cursor/rules',
109
117
  instructionFile: null,
110
118
  available: true
@@ -1799,6 +1807,48 @@ async function migrateCommand(projectDir, options) {
1799
1807
  // Help Information
1800
1808
  // ============================================================================
1801
1809
 
1810
+ function showStartHelp() {
1811
+ console.log();
1812
+ console.log(chalk.bold('DevBooks Start') + ' - default entry guidance');
1813
+ console.log();
1814
+ console.log(chalk.cyan('Usage:'));
1815
+ console.log(` ${CLI_COMMAND} start [options]`);
1816
+ console.log();
1817
+ console.log(chalk.cyan('Notes:'));
1818
+ console.log(' This command provides entry guidance only (it does not run AI or call Skills).');
1819
+ console.log(' If you are unsure what to do next, use Start to get routing guidance.');
1820
+ console.log();
1821
+ console.log(chalk.cyan('Entry template:'));
1822
+ console.log(` ${ENTRY_TEMPLATES.start}`);
1823
+ console.log();
1824
+ console.log(chalk.cyan('Workflow doc:'));
1825
+ console.log(` ${ENTRY_DOC}`);
1826
+ console.log();
1827
+ console.log(chalk.cyan('Related:'));
1828
+ console.log(` ${CLI_COMMAND} router --help`);
1829
+ }
1830
+
1831
+ function showRouterHelp() {
1832
+ console.log();
1833
+ console.log(chalk.bold('DevBooks Router') + ' - routing guidance');
1834
+ console.log();
1835
+ console.log(chalk.cyan('Usage:'));
1836
+ console.log(` ${CLI_COMMAND} router [options]`);
1837
+ console.log();
1838
+ console.log(chalk.cyan('Notes:'));
1839
+ console.log(' This command provides routing guidance only (it does not run AI or call Skills).');
1840
+ console.log(' Use Router when you need phase detection and shortest-path routing.');
1841
+ console.log();
1842
+ console.log(chalk.cyan('Entry template:'));
1843
+ console.log(` ${ENTRY_TEMPLATES.router}`);
1844
+ console.log();
1845
+ console.log(chalk.cyan('Workflow doc:'));
1846
+ console.log(` ${ENTRY_DOC}`);
1847
+ console.log();
1848
+ console.log(chalk.cyan('Related:'));
1849
+ console.log(` ${CLI_COMMAND} start --help`);
1850
+ }
1851
+
1802
1852
  function showHelp() {
1803
1853
  console.log();
1804
1854
  console.log(chalk.bold('DevBooks') + ' - AI-agnostic spec-driven development workflow');
@@ -1807,6 +1857,8 @@ function showHelp() {
1807
1857
  console.log(` ${CLI_COMMAND} init [path] [options] Initialize DevBooks`);
1808
1858
  console.log(` ${CLI_COMMAND} update [path] Update CLI and configured tools`);
1809
1859
  console.log(` ${CLI_COMMAND} migrate --from <framework> [opts] Migrate from other frameworks`);
1860
+ console.log(` ${CLI_COMMAND} start [options] Entry guidance (does not run AI)`);
1861
+ console.log(` ${CLI_COMMAND} router [options] Routing guidance (does not run AI)`);
1810
1862
  console.log();
1811
1863
  console.log(chalk.cyan('Options:'));
1812
1864
  console.log(' --tools <tools> Non-interactive AI tool selection');
@@ -1820,6 +1872,11 @@ function showHelp() {
1820
1872
  console.log(' -h, --help Show this help message');
1821
1873
  console.log(' -v, --version Show version');
1822
1874
  console.log();
1875
+ console.log(chalk.cyan('Entry templates and docs:'));
1876
+ console.log(` Start template: ${ENTRY_TEMPLATES.start}`);
1877
+ console.log(` Router template: ${ENTRY_TEMPLATES.router}`);
1878
+ console.log(` Workflow doc: ${ENTRY_DOC}`);
1879
+ console.log();
1823
1880
  console.log(chalk.cyan('Supported AI Tools:'));
1824
1881
 
1825
1882
  // Group tools by Skills support level
@@ -1863,26 +1920,35 @@ function showHelp() {
1863
1920
  console.log(` ${CLI_COMMAND} migrate --from openspec # Migrate from OpenSpec`);
1864
1921
  console.log(` ${CLI_COMMAND} migrate --from speckit # Migrate from spec-kit`);
1865
1922
  console.log(` ${CLI_COMMAND} migrate --from openspec --dry-run # Dry run migration`);
1923
+ console.log(` ${CLI_COMMAND} start # Show default entry guidance`);
1924
+ console.log(` ${CLI_COMMAND} router # Show routing guidance`);
1866
1925
  }
1867
1926
 
1868
1927
  // ============================================================================
1869
1928
  // Main Entry
1870
1929
  // ============================================================================
1871
1930
 
1931
+ async function startCommand() {
1932
+ showStartHelp();
1933
+ }
1934
+
1935
+ async function routerCommand() {
1936
+ showRouterHelp();
1937
+ }
1938
+
1872
1939
  async function main() {
1873
1940
  const args = process.argv.slice(2);
1874
1941
 
1875
1942
  // Parse arguments
1876
1943
  let command = null;
1877
1944
  let projectPath = null;
1878
- const options = {};
1945
+ const options = { help: false };
1879
1946
 
1880
1947
  for (let i = 0; i < args.length; i++) {
1881
1948
  const arg = args[i];
1882
1949
 
1883
1950
  if (arg === '-h' || arg === '--help') {
1884
- showHelp();
1885
- process.exit(0);
1951
+ options.help = true;
1886
1952
  } else if (arg === '-v' || arg === '--version') {
1887
1953
  showVersion();
1888
1954
  process.exit(0);
@@ -1912,12 +1978,28 @@ async function main() {
1912
1978
 
1913
1979
  // 执行命令
1914
1980
  try {
1981
+ if (options.help) {
1982
+ if (command === 'start') {
1983
+ showStartHelp();
1984
+ return;
1985
+ }
1986
+ if (command === 'router') {
1987
+ showRouterHelp();
1988
+ return;
1989
+ }
1990
+ showHelp();
1991
+ return;
1992
+ }
1915
1993
  if (command === 'init' || !command) {
1916
1994
  await initCommand(projectDir, options);
1917
1995
  } else if (command === 'update') {
1918
1996
  await updateCommand(projectDir);
1919
1997
  } else if (command === 'migrate') {
1920
1998
  await migrateCommand(projectDir, options);
1999
+ } else if (command === 'start') {
2000
+ await startCommand();
2001
+ } else if (command === 'router') {
2002
+ await routerCommand();
1921
2003
  } else {
1922
2004
  console.log(chalk.red(`未知命令: ${command}`));
1923
2005
  showHelp();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dev-playbooks",
3
- "version": "2.4.0",
3
+ "version": "3.0.0",
4
4
  "description": "AI-powered spec-driven development workflow",
5
5
  "keywords": [
6
6
  "devbooks",
@@ -0,0 +1,97 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ usage() {
5
+ cat <<'USAGE'
6
+ Usage: dependency-audit.sh [options]
7
+
8
+ Description:
9
+ Run a dependency audit and write a log for evidence review.
10
+
11
+ Options:
12
+ --project-root DIR Project root directory (default: current dir)
13
+ --output FILE Output log file path (default: dependency-audit.log)
14
+ -h, --help Show this help message
15
+
16
+ Examples:
17
+ dependency-audit.sh --output evidence/audit/dependency-audit.log
18
+ USAGE
19
+ }
20
+
21
+ project_root="$(pwd)"
22
+ output_file="dependency-audit.log"
23
+
24
+ while [[ $# -gt 0 ]]; do
25
+ case "$1" in
26
+ -h|--help)
27
+ usage
28
+ exit 0
29
+ ;;
30
+ --project-root)
31
+ project_root="${2:-}"
32
+ shift 2
33
+ ;;
34
+ --output)
35
+ output_file="${2:-}"
36
+ shift 2
37
+ ;;
38
+ *)
39
+ echo "ERROR: unknown option: $1" >&2
40
+ usage >&2
41
+ exit 2
42
+ ;;
43
+ esac
44
+ done
45
+
46
+ if [[ -z "$project_root" || -z "$output_file" ]]; then
47
+ echo "ERROR: project root and output file are required" >&2
48
+ exit 2
49
+ fi
50
+
51
+ pkg_file="${project_root}/package.json"
52
+ lock_file="${project_root}/package-lock.json"
53
+
54
+ if [[ ! -f "$pkg_file" ]]; then
55
+ echo "ERROR: package.json not found at ${pkg_file}" >&2
56
+ exit 1
57
+ fi
58
+
59
+ mkdir -p "$(dirname "$output_file")"
60
+
61
+ {
62
+ echo "Dependency Audit"
63
+ echo "run_at: $(date +%Y-%m-%dT%H:%M:%S%z)"
64
+ echo "project_root: ${project_root}"
65
+ echo "package.json: ${pkg_file}"
66
+ if [[ -f "$lock_file" ]]; then
67
+ echo "package-lock.json: ${lock_file}"
68
+ else
69
+ echo "package-lock.json: missing"
70
+ fi
71
+ echo ""
72
+ } >"$output_file"
73
+
74
+ status=0
75
+
76
+ if command -v npm >/dev/null 2>&1; then
77
+ temp_output="$(mktemp)"
78
+ if npm --prefix "$project_root" audit --json >"$temp_output" 2>/dev/null; then
79
+ echo "npm_audit: ok" >>"$output_file"
80
+ echo "summary: no audit errors" >>"$output_file"
81
+ else
82
+ status=1
83
+ echo "npm_audit: failed" >>"$output_file"
84
+ echo "summary: audit reported issues or failed" >>"$output_file"
85
+ fi
86
+ echo "" >>"$output_file"
87
+ echo "raw_audit_json:" >>"$output_file"
88
+ cat "$temp_output" >>"$output_file"
89
+ rm -f "$temp_output"
90
+ else
91
+ status=1
92
+ echo "npm_audit: skipped (npm not found)" >>"$output_file"
93
+ echo "summary: audit not executed" >>"$output_file"
94
+ fi
95
+
96
+ exit "$status"
97
+
@@ -14,75 +14,261 @@ allowed-tools:
14
14
 
15
15
  ## Progressive Disclosure
16
16
 
17
- ### Base (Required)
17
+ ### Base Layer (Required)
18
18
  Goal: Implement only what is specified in `tasks.md` and produce Green evidence.
19
- Inputs: user goal, `tasks.md`, project codebase, change package context.
20
- Outputs: implementation changes, updated `tasks.md`, Green evidence logs under `evidence/green-final/`.
21
- Boundaries: do not modify `tests/**`; do not edit `verification.md` or the AC matrix.
22
- Evidence: reference gate outputs and log paths.
19
+ Inputs: User goal, existing docs, change package context, or project path.
20
+ Outputs: Executable artifacts, updated `tasks.md`, Green evidence logs under `evidence/green-final/`.
21
+ Boundaries: Do not replace other roles' duties; do not modify `tests/**`.
22
+ Evidence: Reference output artifact paths or execution logs.
23
23
 
24
- ### Advanced (Optional)
25
- Use when you need: risk notes, minimal-diff planning, deviation recording.
24
+ ### Advanced Layer (Optional)
25
+ Use when: You need to refine strategies, boundaries, or highlight risks.
26
26
 
27
- ### Extended (Optional)
28
- Use when you need: faster search/impact via optional MCP capabilities.
27
+ ### Extended Layer (Optional)
28
+ Use when: You need to collaborate with external systems or optional tools.
29
29
 
30
30
  ## Recommended MCP Capability Types
31
-
32
31
  - Code search (code-search)
33
32
  - Reference tracking (reference-tracking)
34
33
  - Impact analysis (impact-analysis)
35
34
 
36
- ## Role Isolation (Mandatory)
37
-
38
- - Test Owner and Coder must be separate conversations/instances.
39
- - Do not switch roles within one conversation.
40
- - If tests or `verification.md` require changes, hand off to Test Owner.
35
+ ## Quick Start
41
36
 
42
- ## Core Responsibilities
37
+ My Responsibilities:
38
+ 1. **Strictly implement functionality according to tasks.md**
39
+ 2. **Run acceptance anchors in the verification plan** (tests/, static checks, build, etc.)
40
+ 3. **Save Green evidence** to the change package `evidence/green-final/`
41
+ 4. **Prohibited from modifying tests/** (If tests need changes, hand back to Test Owner)
43
42
 
44
- 1. Implement strictly according to `<change-root>/<change-id>/tasks.md`.
45
- 2. Run the gate checks required by the change (tests/build/static checks).
46
- 3. Save Green evidence to `<change-root>/<change-id>/evidence/green-final/`.
47
- 4. Check off tasks only when relevant gates pass.
48
- 5. Record discoveries that require design/spec updates to `deviation-log.md`.
43
+ ## Role Isolation (Mandatory)
49
44
 
50
- ## Hard Boundaries
45
+ - Test Owner and Coder must be in separate conversations/instances.
46
+ - This Skill executes only as Coder and does not switch to other roles.
51
47
 
52
- - Allowed: implementation code, `tasks.md`, `deviation-log.md`, evidence logs.
53
- - Prohibited: `tests/**`, edits to `verification.md`, checking off the AC matrix.
48
+ ---
54
49
 
55
50
  ## Prerequisites: Configuration Discovery
56
51
 
57
52
  Before execution, you **must** search for configuration in the following order (stop when found):
58
53
  1. `.devbooks/config.yaml` (if exists) -> Parse and use its mappings
59
- 2. `dev-playbooks/project.md` (if exists) -> Dev-Playbooks protocol, use default mappings
60
- 3. `project.md` (if exists) -> Template protocol, use default mappings
54
+ 2. `dev-playbooks/project.md` (if exists) -> Dev-Playbooks protocol
55
+ 3. `project.md` (if exists) -> template protocol
61
56
  4. If still undetermined -> **Stop and ask the user**
62
57
 
63
- If the configuration specifies `agents_doc` (rules document), you **must read that document first** before performing any operations.
58
+ **Key Constraints**:
59
+ - If the configuration specifies `agents_doc` (rules document), you **must read that document first** before performing any operations.
60
+ - Do not guess the directory root.
61
+
62
+ ---
63
+
64
+ ## 📚 Reference Documents
65
+
66
+ ### Required (Read Immediately)
67
+
68
+ 1. **AI Behavior Guidelines**: `~/.claude/skills/_shared/references/ai-behavior-guidelines.md`
69
+ - Verifiability gatekeeping, structural quality gatekeeping, completeness gatekeeping
70
+ - Basic rules for all skills
71
+
72
+ 2. **Code Implementation Prompt**: `references/code-implementation-prompt.md`
73
+ - Complete code implementation guide
74
+ - Execute strictly according to this prompt
75
+
76
+ ### Read on Demand
77
+
78
+ 3. **Test Execution Strategy**: `references/test-execution-strategy.md`
79
+ - Details on @smoke/@critical/@full tags
80
+ - Async vs. Sync boundaries
81
+ - *When to read*: When you need to understand the test execution strategy
82
+
83
+ 4. **Completion Status and Routing**: `references/completion-status-and-routing.md`
84
+ - Completion status classification (MECE)
85
+ - Routing output templates
86
+ - *When to read*: When outputting status upon task completion
87
+
88
+ 5. **Hotspot Awareness and Risk Assessment**: `references/hotspot-awareness-and-risk-assessment.md`
89
+ - Hotspot file warnings
90
+ - *When to read*: When risk assessment is needed
91
+
92
+ 6. **Low Risk Modification Techniques**: `references/low-risk-modification-techniques.md`
93
+ - Safe refactoring techniques
94
+ - *When to read*: When refactoring is needed
95
+
96
+ 7. **Coding Style Guidelines**: `references/coding-style-guidelines.md`
97
+ - Code style specifications
98
+ - *When to read*: When unsure about code style
99
+
100
+ 8. **Logging Standard**: `references/logging-standard.md`
101
+ - Log levels and formats
102
+ - *When to read*: When logging needs to be added
103
+
104
+ 9. **Error Code Standard**: `references/error-code-standard.md`
105
+ - Error code design
106
+ - *When to read*: When error codes need to be defined
107
+
108
+ ---
109
+
110
+ ## Core Workflow
111
+
112
+ ### 1. Resume from Breakpoint
113
+
114
+ Before starting, you **must** execute:
115
+
116
+ 1. **Read Progress**: Open `<change-root>/<change-id>/tasks.md`, identify checked `- [x]` tasks.
117
+ 2. **Locate Resume Point**: Find the first `- [ ]` after the "last `[x]`".
118
+ 3. **Output Confirmation**: Clearly inform the user of the current progress, for example:
119
+ ```
120
+ Detected T1-T6 completed (6/10), resuming from T7.
121
+ ```
122
+
123
+ ### 2. Real-time Progress Updates
124
+
125
+ > **Core Principle**: Complete one task, check one box immediately. Do not wait until all are done to batch check.
126
+
127
+ **Check-off Timing**:
128
+
129
+ | Timing | Action |
130
+ |--------|--------|
131
+ | Code writing complete | Do not check yet |
132
+ | Compilation passes | Do not check yet |
133
+ | Relevant tests pass | **Check immediately** |
134
+ | Multiple tasks complete together | Check one by one, do not batch |
135
+
136
+ ### 3. Implement Code
137
+
138
+ Execute strictly according to `references/code-implementation-prompt.md`.
139
+
140
+ ### 4. Run Tests
141
+
142
+ ```bash
143
+ # During development: run @smoke frequently
144
+ npm test -- --grep "@smoke"
145
+
146
+ # Before committing: run @critical
147
+ npm test -- --grep "@smoke|@critical"
148
+
149
+ # After commit: CI automatically runs @full (Coder does not wait)
150
+ git push # triggers CI
151
+ ```
152
+
153
+ ### 5. Output Completion Status
154
+
155
+ Refer to `references/completion-status-and-routing.md`.
156
+
157
+ ---
158
+
159
+ ## Key Constraints
160
+
161
+ ### Role Boundaries
162
+
163
+ | Allowed | Prohibited |
164
+ |---------|------------|
165
+ | Modify `src/**` code | ❌ Modify `tests/**` |
166
+ | Check `tasks.md` items | ❌ Modify `verification.md` |
167
+ | Record deviations to `deviation-log.md` | ❌ Check AC coverage matrix |
168
+ | Run fast-track tests (`@smoke`/`@critical`) | ❌ Set verification.md Status to Verified/Done |
169
+ | Trigger `@full` tests (CI/Background) | ❌ Wait for @full completion (can start next change) |
170
+
171
+ ### Code Quality Constraints
172
+
173
+ #### Forbidden Commit Patterns
174
+
175
+ | Pattern | Detection Command | Reason |
176
+ |---------|-------------------|--------|
177
+ | `test.only` | `rg '\.only\s*\(' src/` | Skips other tests |
178
+ | `console.log` | `rg 'console\.log' src/` | Debug code residue |
179
+ | `debugger` | `rg 'debugger' src/` | Debug breakpoint residue |
180
+ | `// TODO` without issue | `rg 'TODO(?!.*#\d+)' src/` | Untrackable todo |
181
+ | `any` type | `rg ': any[^a-z]' src/` | Type safety hole |
182
+ | `@ts-ignore` | `rg '@ts-ignore' src/` | Hides type errors |
183
+
184
+ #### Pre-commit Mandatory Checks
185
+
186
+ ```bash
187
+ # 1. Compilation Check (Mandatory)
188
+ npm run compile || exit 1
189
+
190
+ # 2. Lint Check (Mandatory)
191
+ npm run lint || exit 1
192
+
193
+ # 3. Test Check (Mandatory)
194
+ npm test || exit 1
195
+
196
+ # 4. test.only Check (Mandatory)
197
+ if rg -l '\.only\s*\(' tests/ src/**/test/; then
198
+ echo "error: found .only() in tests" >&2
199
+ exit 1
200
+ fi
201
+
202
+ # 5. Debug Code Check (Mandatory)
203
+ if rg -l 'console\.(log|debug)|debugger' src/ --type ts; then
204
+ echo "error: found debug statements" >&2
205
+ exit 1
206
+ fi
207
+ ```
208
+
209
+ ---
210
+
211
+ ## Output Management
212
+
213
+ Prevent large output from polluting context:
214
+
215
+ | Scenario | Handling Method |
216
+ |----------|-----------------|
217
+ | Command output > 50 lines | Keep only first/last 10 lines + middle summary |
218
+ | Test output | Extract key failure info, do not paste full log |
219
+ | Log output | Save to disk at `<change-root>/<change-id>/evidence/`, quote path only |
220
+ | Large file content | Quote path, do not inline |
221
+
222
+ ---
223
+
224
+ ## Evidence Path Convention
225
+
226
+ **Green evidence must be saved to**:
227
+ ```
228
+ <change-root>/<change-id>/evidence/green-final/
229
+ ```
230
+
231
+ **Correct Path Examples**:
232
+ ```bash
233
+ # Dev-Playbooks default path
234
+ dev-playbooks/changes/<change-id>/evidence/green-final/test-$(date +%Y%m%d-%H%M%S).log
235
+
236
+ # Using script
237
+ devbooks change-evidence <change-id> --label green-final -- npm test
238
+ ```
239
+
240
+ ---
241
+
242
+ ## Deviation Detection and Recording
243
+
244
+ **Reference**: `~/.claude/skills/_shared/references/deviation-detection-routing-protocol.md`
245
+
246
+ During implementation, you **must immediately** write the following situations to `deviation-log.md`:
247
+
248
+ | Situation | Type | Example |
249
+ |-----------|------|---------|
250
+ | Added feature not in tasks.md | NEW_FEATURE | Added warmup() method |
251
+ | Changed constraint in design.md | CONSTRAINT_CHANGE | Timeout changed to 60s |
252
+ | Found edge case not covered by design | DESIGN_GAP | Public interface inconsistent with design |
253
+ | API Signature Change | API_CHANGE | Argument added |
254
+
255
+ ---
256
+
257
+ ## Context Awareness
64
258
 
65
- ## Minimal Workflow
259
+ Detection rules refer to: `~/.claude/skills/_shared/context-detection-template.md`
66
260
 
67
- 1. Read `<change-root>/<change-id>/tasks.md` and resume from the first unchecked item.
68
- 2. Implement tasks with a minimal diff.
69
- 3. Run relevant gates; if any gate fails, fix implementation (not tests) and rerun.
70
- 4. Write logs to `evidence/green-final/` and reference them in your output.
71
- 5. Check off completed tasks; do not batch-check.
72
- 6. If you find gaps in design/spec/tasks, write them to `deviation-log.md` and hand off.
261
+ ### Modes Supported by This Skill
73
262
 
74
- ## References
263
+ | Mode | Trigger Condition | Behavior |
264
+ |------|-------------------|----------|
265
+ | **First Implementation** | tasks.md all `[ ]` | Start from MP1.1 |
266
+ | **Resume from Breakpoint** | tasks.md has some `[x]` | Continue from first `[ ]` after last `[x]` |
267
+ | **Gate Fix** | Test failures need fixing | Prioritize failed items |
75
268
 
76
- Required:
77
- - `~/.claude/skills/_shared/references/ai-behavior-guidelines.md`
78
- - `references/code-implementation-prompt.md`
269
+ ### Prerequisite Checks
79
270
 
80
- As needed:
81
- - `references/test-execution-strategy.md`
82
- - `references/completion-status-and-routing.md`
83
- - `references/hotspot-awareness-and-risk-assessment.md`
84
- - `references/low-risk-modification-techniques.md`
85
- - `references/coding-style-guidelines.md`
86
- - `references/logging-standard.md`
87
- - `references/error-code-standard.md`
88
- - `~/.claude/skills/_shared/references/deviation-detection-routing-protocol.md`
271
+ - [ ] `tasks.md` exists
272
+ - [ ] `verification.md` exists
273
+ - [ ] Test Owner not executed in current session
274
+ - [ ] `tests/**` has test files
@@ -58,9 +58,9 @@ report_line() {
58
58
  local ok="$2"
59
59
  local msg="$3"
60
60
  if [[ "$ok" == "1" ]]; then
61
- printf "- %s: ✓ %s\n" "$name" "$msg"
61
+ printf -- "- %s: ✓ %s\n" "$name" "$msg"
62
62
  else
63
- printf "- %s: ✗ %s\n" "$name" "$msg"
63
+ printf -- "- %s: ✗ %s\n" "$name" "$msg"
64
64
  fi
65
65
  }
66
66
 
@@ -1,6 +1,7 @@
1
1
  ---
2
2
  name: devbooks-router
3
3
  description: devbooks-router: DevBooks workflow entry guidance. Helps users determine which skill to start with, detects project current status, and provides shortest closed-loop path. Use when the user says "what's next/where to start/run DevBooks closed-loop/project status" etc. Note: Routing after skill completion is handled by each skill itself, no need to call router.
4
+ recommended_experts: ["System Architect", "Product Manager"]
4
5
  allowed-tools:
5
6
  - Glob
6
7
  - Grep
@@ -30,6 +31,7 @@ Use when you need: prototype track, pre-archive checks, context-detection detail
30
31
  - Run config discovery (prefer `.devbooks/config.yaml`) and read `agents_doc` before routing.
31
32
  - Output 2 minimum key questions + 3-6 routing results (paths + rationale).
32
33
  - If the user asks to "start producing files", switch to the target Skill's output mode.
34
+ - Start is the default entrypoint; use Router to output phase recommendations and shortest-path routing.
33
35
 
34
36
  ## References
35
37
 
@@ -35,6 +35,18 @@ Before routing, check whether structured code analysis is available (dependency/
35
35
 
36
36
  3) If the user asks to “start producing file content”, switch to the target Skill’s output mode.
37
37
 
38
+ ## Start entry rules (default entrypoint)
39
+
40
+ Start is the default entrypoint. When Start is triggered, follow these rules:
41
+
42
+ 1) If `<change-id>` is unclear, ask for `<change-id>` and confirm `<truth-root>/<change-root>`.
43
+ 2) If the change package state can be inferred (e.g. `pending/in_progress/review/completed`), recommend the next entrypoint:
44
+ - `pending` → `proposal`
45
+ - `in_progress` → `design/spec/plan` (recommend based on missing artifacts)
46
+ - `review` → `review`
47
+ - `completed` → `archive`
48
+ 3) Keep the routing output to 3–6 items, each including Skill + path + rationale.
49
+
38
50
  ## Default routing rules
39
51
 
40
52
  ### A) Proposal phase
@@ -117,4 +129,3 @@ impact_profile:
117
129
  Infer phase from existing artifacts:
118
130
  - `proposal.md`, `design.md`, `tasks.md`, `verification.md`
119
131
  - `evidence/green-final/`
120
-
@@ -0,0 +1,27 @@
1
+ ---
2
+ skill: multi-skill-combo
3
+ skills:
4
+ - devbooks-test-owner
5
+ - devbooks-coder
6
+ - devbooks-reviewer
7
+ ---
8
+
9
+ # DevBooks: Apply (backward compatible)
10
+
11
+ Runs the apply stage as a multi-skill combo: Test Owner → Coder → Reviewer.
12
+
13
+ ## Usage
14
+
15
+ /devbooks:apply [args]
16
+
17
+ ## Args
18
+
19
+ $ARGUMENTS
20
+
21
+ ## Notes
22
+
23
+ This is a backward compatible command. Prefer direct commands when possible:
24
+ - `/devbooks:test` - acceptance tests
25
+ - `/devbooks:code` - implementation
26
+ - `/devbooks:review` - review
27
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-archiver
3
+ ---
4
+
5
+ # DevBooks: Archive (backward compatible)
6
+
7
+ Use devbooks-archiver to complete the archive loop for a change package.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:archive [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-design-doc
3
+ ---
4
+
5
+ # DevBooks: Design Backport
6
+
7
+ Use devbooks-design-doc to backport newly discovered constraints/gaps into `design.md`.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:backport [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-brownfield-bootstrap
3
+ ---
4
+
5
+ # DevBooks: Bootstrap (Brownfield)
6
+
7
+ Use devbooks-brownfield-bootstrap to generate baseline specs and project profile for an existing codebase.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:bootstrap [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-design-doc
3
+ ---
4
+
5
+ # DevBooks: C4 / Architecture Map
6
+
7
+ Use devbooks-design-doc to produce or update architecture impact (including C4 notes) for the change.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:c4 [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-proposal-challenger
3
+ ---
4
+
5
+ # DevBooks: Challenger
6
+
7
+ Use devbooks-proposal-challenger to critique the proposal and surface risks, gaps, and missing acceptance criteria.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:challenger [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,21 @@
1
+ ---
2
+ skill: devbooks-coder
3
+ ---
4
+
5
+ # DevBooks: Code
6
+
7
+ Use devbooks-coder to implement according to `tasks.md` and make the gates green.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:code [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ - Follow `tasks.md` only.
20
+ - Must not modify `tests/**`.
21
+
@@ -0,0 +1,27 @@
1
+ ---
2
+ skill: multi-skill-combo
3
+ skills:
4
+ - devbooks-proposal-author
5
+ - devbooks-proposal-challenger
6
+ - devbooks-proposal-judge
7
+ ---
8
+
9
+ # DevBooks: Proposal Debate (backward compatible)
10
+
11
+ Runs the full proposal debate loop: Author → Challenger → Judge.
12
+
13
+ ## Usage
14
+
15
+ /devbooks:debate [args]
16
+
17
+ ## Args
18
+
19
+ $ARGUMENTS
20
+
21
+ ## Notes
22
+
23
+ This is a backward compatible command that triggers a multi-skill combo. You can also use the direct commands:
24
+ - `/devbooks:proposal`
25
+ - `/devbooks:challenger`
26
+ - `/devbooks:judge`
27
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ skill: devbooks-delivery-workflow
3
+ ---
4
+
5
+ # DevBooks: Delivery Workflow
6
+
7
+ Use devbooks-delivery-workflow to orchestrate the full loop end-to-end.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:delivery [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ Orchestrates Proposal -> Design -> Spec -> Plan -> Test -> Implement -> Review -> Archive:
20
+ - Coordinates multi-role collaboration (when supported by the tool)
21
+ - Keeps the loop complete and verifiable
22
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ skill: devbooks-design-doc
3
+ ---
4
+
5
+ # DevBooks: Design
6
+
7
+ Use devbooks-design-doc to produce the change package design doc (`design.md`).
8
+
9
+ ## Usage
10
+
11
+ /devbooks:design [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ Write What/Constraints + AC-xxx only (no implementation steps):
20
+ - Define acceptance criteria
21
+ - State constraints
22
+ - Provide architecture impact (if applicable)
23
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-entropy-monitor
3
+ ---
4
+
5
+ # DevBooks: Entropy Monitor
6
+
7
+ Use devbooks-entropy-monitor to collect entropy metrics and generate a health report.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:entropy [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-impact-analysis
3
+ ---
4
+
5
+ # DevBooks: Cross-Repo Analysis
6
+
7
+ Use devbooks-impact-analysis to assess cross-repo impact and integration risks.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:federation [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-spec-gardener
3
+ ---
4
+
5
+ # DevBooks: Spec Gardener
6
+
7
+ Use devbooks-spec-gardener to maintain the truth specs and keep them consistent.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:gardener [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-impact-analysis
3
+ ---
4
+
5
+ # DevBooks: Impact Analysis
6
+
7
+ Use devbooks-impact-analysis before cross-module or contract-affecting changes.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:impact [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ skill: devbooks-router
3
+ ---
4
+
5
+ # DevBooks: Index
6
+
7
+ A quick index of common DevBooks commands.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:index [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ - Default entrypoint: `/devbooks:start`
20
+ - Routing and phase detection: `/devbooks:router`
21
+ - Full loop orchestrator: `/devbooks:delivery`
22
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-proposal-judge
3
+ ---
4
+
5
+ # DevBooks: Judge
6
+
7
+ Use devbooks-proposal-judge to decide Approved/Revise/Rejected and write the decision log into `proposal.md`.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:judge [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-implementation-plan
3
+ ---
4
+
5
+ # DevBooks: Plan
6
+
7
+ Use devbooks-implementation-plan to derive a trackable `tasks.md` from `design.md`.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:plan [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ skill: devbooks-proposal-author
3
+ ---
4
+
5
+ # DevBooks: Proposal
6
+
7
+ Use devbooks-proposal-author to write a change proposal (`proposal.md`).
8
+
9
+ ## Usage
10
+
11
+ /devbooks:proposal [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ This is the proposal entrypoint and produces `proposal.md` (Why/What/Impact + Debate Packet):
20
+ - Generates a compliant change-id
21
+ - Clarifies motivation and goals
22
+ - Presents options for design decisions when needed
23
+
@@ -0,0 +1,20 @@
1
+ ---
2
+ skill: devbooks-router
3
+ ---
4
+
5
+ # DevBooks: Quick (backward compatible)
6
+
7
+ Quick entry for small changes. Uses Router to pick the shortest path.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:quick [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ If the change becomes non-trivial (multi-file or cross-module), use `/devbooks:router` to get a full plan.
20
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-reviewer
3
+ ---
4
+
5
+ # DevBooks: Review
6
+
7
+ Use devbooks-reviewer for maintainability/consistency review.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:review [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,24 @@
1
+ ---
2
+ skill: devbooks-router
3
+ ---
4
+
5
+ # DevBooks: Router
6
+
7
+ Use Router to detect the current status and output the shortest closed-loop routing plan.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:router [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ Router is the main entry guide for non-trivial changes (multi-file or cross-module):
20
+ - Detects the current phase based on existing artifacts
21
+ - Recommends the next Skill and the exact artifact paths
22
+
23
+ If you already know the specific Skill to run, use the direct command. If unsure, prefer `/devbooks:start`.
24
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-spec-contract
3
+ ---
4
+
5
+ # DevBooks: Spec / Contract
6
+
7
+ Use devbooks-spec-contract to define behavior specs and external contracts.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:spec [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,22 @@
1
+ ---
2
+ skill: devbooks-router
3
+ ---
4
+
5
+ # DevBooks: Start
6
+
7
+ Start is the default entrypoint. It detects the current phase and routes to the shortest closed-loop next step.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:start [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ - If you're unsure what to do next, start here.
20
+ - Router reads config mappings and existing artifacts to recommend the next Skill.
21
+ - If you already know the change-id, provide it to reduce questions.
22
+
@@ -0,0 +1,16 @@
1
+ ---
2
+ skill: devbooks-test-reviewer
3
+ ---
4
+
5
+ # DevBooks: Test Review
6
+
7
+ Use devbooks-test-reviewer to review tests quality (coverage, boundaries, maintainability).
8
+
9
+ ## Usage
10
+
11
+ /devbooks:test-review [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
@@ -0,0 +1,23 @@
1
+ ---
2
+ skill: devbooks-test-owner
3
+ ---
4
+
5
+ # DevBooks: Test (Acceptance)
6
+
7
+ Use devbooks-test-owner to turn design/spec into executable acceptance tests and `verification.md`.
8
+
9
+ ## Usage
10
+
11
+ /devbooks:test [args]
12
+
13
+ ## Args
14
+
15
+ $ARGUMENTS
16
+
17
+ ## Notes
18
+
19
+ As Test Owner:
20
+ - Work in a separate conversation from Coder
21
+ - Produce a Red baseline first
22
+ - Maintain the traceability matrix
23
+