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.
- package/CHANGELOG.md +19 -0
- package/README.md +9 -0
- package/bin/devbooks.js +86 -4
- package/package.json +1 -1
- package/scripts/dependency-audit.sh +97 -0
- package/skills/devbooks-coder/SKILL.md +233 -47
- package/skills/devbooks-docs-consistency/scripts/completeness-checker.sh +2 -2
- package/skills/devbooks-router/SKILL.md +2 -0
- package/skills/devbooks-router/references/routing-rules-and-templates.md +12 -1
- package/templates/claude-commands/devbooks/apply.md +27 -0
- package/templates/claude-commands/devbooks/archive.md +16 -0
- package/templates/claude-commands/devbooks/backport.md +16 -0
- package/templates/claude-commands/devbooks/bootstrap.md +16 -0
- package/templates/claude-commands/devbooks/c4.md +16 -0
- package/templates/claude-commands/devbooks/challenger.md +16 -0
- package/templates/claude-commands/devbooks/code.md +21 -0
- package/templates/claude-commands/devbooks/debate.md +27 -0
- package/templates/claude-commands/devbooks/delivery.md +22 -0
- package/templates/claude-commands/devbooks/design.md +23 -0
- package/templates/claude-commands/devbooks/entropy.md +16 -0
- package/templates/claude-commands/devbooks/federation.md +16 -0
- package/templates/claude-commands/devbooks/gardener.md +16 -0
- package/templates/claude-commands/devbooks/impact.md +16 -0
- package/templates/claude-commands/devbooks/index.md +22 -0
- package/templates/claude-commands/devbooks/judge.md +16 -0
- package/templates/claude-commands/devbooks/plan.md +16 -0
- package/templates/claude-commands/devbooks/proposal.md +23 -0
- package/templates/claude-commands/devbooks/quick.md +20 -0
- package/templates/claude-commands/devbooks/review.md +16 -0
- package/templates/claude-commands/devbooks/router.md +24 -0
- package/templates/claude-commands/devbooks/spec.md +16 -0
- package/templates/claude-commands/devbooks/start.md +22 -0
- package/templates/claude-commands/devbooks/test-review.md +16 -0
- 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.
|
|
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
|
-
|
|
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
|
@@ -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:
|
|
20
|
-
Outputs:
|
|
21
|
-
Boundaries:
|
|
22
|
-
Evidence:
|
|
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
|
|
24
|
+
### Advanced Layer (Optional)
|
|
25
|
+
Use when: You need to refine strategies, boundaries, or highlight risks.
|
|
26
26
|
|
|
27
|
-
### Extended (Optional)
|
|
28
|
-
Use when
|
|
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
|
-
##
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
60
|
-
3. `project.md` (if exists) ->
|
|
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
|
-
|
|
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
|
-
|
|
259
|
+
Detection rules refer to: `~/.claude/skills/_shared/context-detection-template.md`
|
|
66
260
|
|
|
67
|
-
|
|
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
|
-
|
|
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
|
-
|
|
77
|
-
- `~/.claude/skills/_shared/references/ai-behavior-guidelines.md`
|
|
78
|
-
- `references/code-implementation-prompt.md`
|
|
269
|
+
### Prerequisite Checks
|
|
79
270
|
|
|
80
|
-
|
|
81
|
-
- `
|
|
82
|
-
-
|
|
83
|
-
- `
|
|
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-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,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,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,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,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,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
|
+
|