@trench-craft/sds 1.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/README.en.md +522 -0
- package/README.md +566 -0
- package/dist/bin/sds.d.ts +3 -0
- package/dist/bin/sds.d.ts.map +1 -0
- package/dist/bin/sds.js +50 -0
- package/dist/bin/sds.js.map +1 -0
- package/dist/src/__tests__/cli.test.d.ts +2 -0
- package/dist/src/__tests__/cli.test.d.ts.map +1 -0
- package/dist/src/__tests__/cli.test.js +37 -0
- package/dist/src/__tests__/cli.test.js.map +1 -0
- package/dist/src/__tests__/e2e.test.d.ts +5 -0
- package/dist/src/__tests__/e2e.test.d.ts.map +1 -0
- package/dist/src/__tests__/e2e.test.js +143 -0
- package/dist/src/__tests__/e2e.test.js.map +1 -0
- package/dist/src/__tests__/graph.test.d.ts +5 -0
- package/dist/src/__tests__/graph.test.d.ts.map +1 -0
- package/dist/src/__tests__/graph.test.js +423 -0
- package/dist/src/__tests__/graph.test.js.map +1 -0
- package/dist/src/__tests__/openspec.test.d.ts +5 -0
- package/dist/src/__tests__/openspec.test.d.ts.map +1 -0
- package/dist/src/__tests__/openspec.test.js +172 -0
- package/dist/src/__tests__/openspec.test.js.map +1 -0
- package/dist/src/commands/apply.d.ts +4 -0
- package/dist/src/commands/apply.d.ts.map +1 -0
- package/dist/src/commands/apply.js +14 -0
- package/dist/src/commands/apply.js.map +1 -0
- package/dist/src/commands/archive.d.ts +4 -0
- package/dist/src/commands/archive.d.ts.map +1 -0
- package/dist/src/commands/archive.js +20 -0
- package/dist/src/commands/archive.js.map +1 -0
- package/dist/src/commands/cache.d.ts +4 -0
- package/dist/src/commands/cache.d.ts.map +1 -0
- package/dist/src/commands/cache.js +31 -0
- package/dist/src/commands/cache.js.map +1 -0
- package/dist/src/commands/config.d.ts +4 -0
- package/dist/src/commands/config.d.ts.map +1 -0
- package/dist/src/commands/config.js +29 -0
- package/dist/src/commands/config.js.map +1 -0
- package/dist/src/commands/e2e.d.ts +4 -0
- package/dist/src/commands/e2e.d.ts.map +1 -0
- package/dist/src/commands/e2e.js +65 -0
- package/dist/src/commands/e2e.js.map +1 -0
- package/dist/src/commands/graph.d.ts +4 -0
- package/dist/src/commands/graph.d.ts.map +1 -0
- package/dist/src/commands/graph.js +783 -0
- package/dist/src/commands/graph.js.map +1 -0
- package/dist/src/commands/init.d.ts +4 -0
- package/dist/src/commands/init.d.ts.map +1 -0
- package/dist/src/commands/init.js +15 -0
- package/dist/src/commands/init.js.map +1 -0
- package/dist/src/commands/project.d.ts +4 -0
- package/dist/src/commands/project.d.ts.map +1 -0
- package/dist/src/commands/project.js +6 -0
- package/dist/src/commands/project.js.map +1 -0
- package/dist/src/commands/propose.d.ts +4 -0
- package/dist/src/commands/propose.d.ts.map +1 -0
- package/dist/src/commands/propose.js +26 -0
- package/dist/src/commands/propose.js.map +1 -0
- package/dist/src/commands/registry.d.ts +4 -0
- package/dist/src/commands/registry.d.ts.map +1 -0
- package/dist/src/commands/registry.js +6 -0
- package/dist/src/commands/registry.js.map +1 -0
- package/dist/src/commands/skills-install.d.ts +4 -0
- package/dist/src/commands/skills-install.d.ts.map +1 -0
- package/dist/src/commands/skills-install.js +158 -0
- package/dist/src/commands/skills-install.js.map +1 -0
- package/dist/src/commands/skills.d.ts +4 -0
- package/dist/src/commands/skills.d.ts.map +1 -0
- package/dist/src/commands/skills.js +19 -0
- package/dist/src/commands/skills.js.map +1 -0
- package/dist/src/commands/verify.d.ts +4 -0
- package/dist/src/commands/verify.d.ts.map +1 -0
- package/dist/src/commands/verify.js +31 -0
- package/dist/src/commands/verify.js.map +1 -0
- package/dist/src/core/engine.d.ts +33 -0
- package/dist/src/core/engine.d.ts.map +1 -0
- package/dist/src/core/engine.js +87 -0
- package/dist/src/core/engine.js.map +1 -0
- package/dist/src/core/engine.test.d.ts +2 -0
- package/dist/src/core/engine.test.d.ts.map +1 -0
- package/dist/src/core/engine.test.js +13 -0
- package/dist/src/core/engine.test.js.map +1 -0
- package/dist/src/core/session-state.d.ts +18 -0
- package/dist/src/core/session-state.d.ts.map +1 -0
- package/dist/src/core/session-state.js +55 -0
- package/dist/src/core/session-state.js.map +1 -0
- package/dist/src/core/session-state.test.d.ts +2 -0
- package/dist/src/core/session-state.test.d.ts.map +1 -0
- package/dist/src/core/session-state.test.js +90 -0
- package/dist/src/core/session-state.test.js.map +1 -0
- package/dist/src/core/subagent-timeout.d.ts +18 -0
- package/dist/src/core/subagent-timeout.d.ts.map +1 -0
- package/dist/src/core/subagent-timeout.js +61 -0
- package/dist/src/core/subagent-timeout.js.map +1 -0
- package/dist/src/core/subagent-timeout.test.d.ts +2 -0
- package/dist/src/core/subagent-timeout.test.d.ts.map +1 -0
- package/dist/src/core/subagent-timeout.test.js +57 -0
- package/dist/src/core/subagent-timeout.test.js.map +1 -0
- package/dist/src/core/task-sync.d.ts +19 -0
- package/dist/src/core/task-sync.d.ts.map +1 -0
- package/dist/src/core/task-sync.js +62 -0
- package/dist/src/core/task-sync.js.map +1 -0
- package/dist/src/core/task-sync.test.d.ts +2 -0
- package/dist/src/core/task-sync.test.d.ts.map +1 -0
- package/dist/src/core/task-sync.test.js +84 -0
- package/dist/src/core/task-sync.test.js.map +1 -0
- package/dist/src/graph/advanced-performance.d.ts +137 -0
- package/dist/src/graph/advanced-performance.d.ts.map +1 -0
- package/dist/src/graph/advanced-performance.js +375 -0
- package/dist/src/graph/advanced-performance.js.map +1 -0
- package/dist/src/graph/database.d.ts +79 -0
- package/dist/src/graph/database.d.ts.map +1 -0
- package/dist/src/graph/database.js +305 -0
- package/dist/src/graph/database.js.map +1 -0
- package/dist/src/graph/engine.d.ts +43 -0
- package/dist/src/graph/engine.d.ts.map +1 -0
- package/dist/src/graph/engine.js +334 -0
- package/dist/src/graph/engine.js.map +1 -0
- package/dist/src/graph/exporter.d.ts +56 -0
- package/dist/src/graph/exporter.d.ts.map +1 -0
- package/dist/src/graph/exporter.js +273 -0
- package/dist/src/graph/exporter.js.map +1 -0
- package/dist/src/graph/index.d.ts +21 -0
- package/dist/src/graph/index.d.ts.map +1 -0
- package/dist/src/graph/index.js +14 -0
- package/dist/src/graph/index.js.map +1 -0
- package/dist/src/graph/layouts.d.ts +77 -0
- package/dist/src/graph/layouts.d.ts.map +1 -0
- package/dist/src/graph/layouts.js +368 -0
- package/dist/src/graph/layouts.js.map +1 -0
- package/dist/src/graph/parser.d.ts +47 -0
- package/dist/src/graph/parser.d.ts.map +1 -0
- package/dist/src/graph/parser.js +228 -0
- package/dist/src/graph/parser.js.map +1 -0
- package/dist/src/graph/performance.d.ts +90 -0
- package/dist/src/graph/performance.d.ts.map +1 -0
- package/dist/src/graph/performance.js +275 -0
- package/dist/src/graph/performance.js.map +1 -0
- package/dist/src/graph/semantic.d.ts +151 -0
- package/dist/src/graph/semantic.d.ts.map +1 -0
- package/dist/src/graph/semantic.js +402 -0
- package/dist/src/graph/semantic.js.map +1 -0
- package/dist/src/graph/types.d.ts +114 -0
- package/dist/src/graph/types.d.ts.map +1 -0
- package/dist/src/graph/types.js +5 -0
- package/dist/src/graph/types.js.map +1 -0
- package/dist/src/graph/visualizer.d.ts +50 -0
- package/dist/src/graph/visualizer.d.ts.map +1 -0
- package/dist/src/graph/visualizer.js +869 -0
- package/dist/src/graph/visualizer.js.map +1 -0
- package/dist/src/openspec/apply.d.ts +16 -0
- package/dist/src/openspec/apply.d.ts.map +1 -0
- package/dist/src/openspec/apply.js +140 -0
- package/dist/src/openspec/apply.js.map +1 -0
- package/dist/src/openspec/archive.d.ts +3 -0
- package/dist/src/openspec/archive.d.ts.map +1 -0
- package/dist/src/openspec/archive.js +17 -0
- package/dist/src/openspec/archive.js.map +1 -0
- package/dist/src/openspec/e2e-generate.d.ts +39 -0
- package/dist/src/openspec/e2e-generate.d.ts.map +1 -0
- package/dist/src/openspec/e2e-generate.js +315 -0
- package/dist/src/openspec/e2e-generate.js.map +1 -0
- package/dist/src/openspec/e2e-runner.d.ts +32 -0
- package/dist/src/openspec/e2e-runner.d.ts.map +1 -0
- package/dist/src/openspec/e2e-runner.js +208 -0
- package/dist/src/openspec/e2e-runner.js.map +1 -0
- package/dist/src/openspec/explore.d.ts +3 -0
- package/dist/src/openspec/explore.d.ts.map +1 -0
- package/dist/src/openspec/explore.js +20 -0
- package/dist/src/openspec/explore.js.map +1 -0
- package/dist/src/openspec/propose.d.ts +8 -0
- package/dist/src/openspec/propose.d.ts.map +1 -0
- package/dist/src/openspec/propose.js +124 -0
- package/dist/src/openspec/propose.js.map +1 -0
- package/dist/src/openspec/verify.d.ts +13 -0
- package/dist/src/openspec/verify.d.ts.map +1 -0
- package/dist/src/openspec/verify.js +156 -0
- package/dist/src/openspec/verify.js.map +1 -0
- package/dist/src/platform/claudecode.d.ts +2 -0
- package/dist/src/platform/claudecode.d.ts.map +1 -0
- package/dist/src/platform/claudecode.js +7 -0
- package/dist/src/platform/claudecode.js.map +1 -0
- package/dist/src/platform/codex.d.ts +2 -0
- package/dist/src/platform/codex.d.ts.map +1 -0
- package/dist/src/platform/codex.js +7 -0
- package/dist/src/platform/codex.js.map +1 -0
- package/dist/src/platform/opencode.d.ts +2 -0
- package/dist/src/platform/opencode.d.ts.map +1 -0
- package/dist/src/platform/opencode.js +7 -0
- package/dist/src/platform/opencode.js.map +1 -0
- package/dist/src/platform/router.d.ts +13 -0
- package/dist/src/platform/router.d.ts.map +1 -0
- package/dist/src/platform/router.js +57 -0
- package/dist/src/platform/router.js.map +1 -0
- package/dist/src/skills/cache.d.ts +16 -0
- package/dist/src/skills/cache.d.ts.map +1 -0
- package/dist/src/skills/cache.js +53 -0
- package/dist/src/skills/cache.js.map +1 -0
- package/dist/src/skills/discovery.d.ts +12 -0
- package/dist/src/skills/discovery.d.ts.map +1 -0
- package/dist/src/skills/discovery.js +61 -0
- package/dist/src/skills/discovery.js.map +1 -0
- package/dist/src/skills/loader.d.ts +12 -0
- package/dist/src/skills/loader.d.ts.map +1 -0
- package/dist/src/skills/loader.js +69 -0
- package/dist/src/skills/loader.js.map +1 -0
- package/dist/src/skills/registry.d.ts +23 -0
- package/dist/src/skills/registry.d.ts.map +1 -0
- package/dist/src/skills/registry.js +68 -0
- package/dist/src/skills/registry.js.map +1 -0
- package/dist/src/utils/fs.d.ts +5 -0
- package/dist/src/utils/fs.d.ts.map +1 -0
- package/dist/src/utils/fs.js +23 -0
- package/dist/src/utils/fs.js.map +1 -0
- package/dist/src/utils/logger.d.ts +7 -0
- package/dist/src/utils/logger.d.ts.map +1 -0
- package/dist/src/utils/logger.js +8 -0
- package/dist/src/utils/logger.js.map +1 -0
- package/dist/src/utils/yaml.d.ts +3 -0
- package/dist/src/utils/yaml.d.ts.map +1 -0
- package/dist/src/utils/yaml.js +8 -0
- package/dist/src/utils/yaml.js.map +1 -0
- package/package.json +62 -0
- package/registry/skills-registry.yaml +218 -0
- package/skills/core/brainstorming/SKILL.md +259 -0
- package/skills/core/brainstorming/scripts/frame-template.html +214 -0
- package/skills/core/brainstorming/scripts/helper.js +88 -0
- package/skills/core/brainstorming/scripts/server.cjs +338 -0
- package/skills/core/brainstorming/scripts/start-server.sh +153 -0
- package/skills/core/brainstorming/scripts/stop-server.sh +55 -0
- package/skills/core/brainstorming/skill.yaml +12 -0
- package/skills/core/brainstorming/spec-document-reviewer-prompt.md +48 -0
- package/skills/core/brainstorming/visual-companion.md +286 -0
- package/skills/core/claude-code-core/SKILL.md +164 -0
- package/skills/core/claude-code-core/skill.yaml +14 -0
- package/skills/core/claude-code-prompt/SKILL.md +283 -0
- package/skills/core/claude-code-prompt/skill.yaml +14 -0
- package/skills/core/claude-code-subagent/SKILL.md +168 -0
- package/skills/core/claude-code-subagent/skill.yaml +14 -0
- package/skills/core/e2e-generate/SKILL.md +147 -0
- package/skills/core/e2e-generate/skill.yaml +12 -0
- package/skills/core/ecc-agents-md-router/SKILL.md +90 -0
- package/skills/core/ecc-agents-md-router/skill.yaml +12 -0
- package/skills/core/ecc-context-injector/SKILL.md +69 -0
- package/skills/core/ecc-context-injector/skill.yaml +12 -0
- package/skills/core/existing-code-caveman/SKILL.md +340 -0
- package/skills/core/existing-code-caveman/skill.yaml +12 -0
- package/skills/core/opsx-apply/SKILL.md +121 -0
- package/skills/core/opsx-apply/skill.yaml +12 -0
- package/skills/core/opsx-archive/SKILL.md +83 -0
- package/skills/core/opsx-archive/skill.yaml +12 -0
- package/skills/core/opsx-explore/SKILL.md +101 -0
- package/skills/core/opsx-explore/skill.yaml +12 -0
- package/skills/core/opsx-propose/SKILL.md +131 -0
- package/skills/core/opsx-propose/skill.yaml +16 -0
- package/skills/core/opsx-verify/SKILL.md +109 -0
- package/skills/core/opsx-verify/skill.yaml +12 -0
- package/skills/core/subagent-driven-development/SKILL.md +157 -0
- package/skills/core/subagent-driven-development/code-quality-reviewer-prompt.md +64 -0
- package/skills/core/subagent-driven-development/implementer-prompt.md +122 -0
- package/skills/core/subagent-driven-development/skill.yaml +12 -0
- package/skills/core/subagent-driven-development/spec-reviewer-prompt.md +61 -0
- package/skills/core/writing-plans/SKILL.md +268 -0
- package/skills/core/writing-plans/plan-document-reviewer-prompt.md +63 -0
- package/skills/core/writing-plans/skill.yaml +12 -0
- package/skills/locale/chinese-code-review/SKILL.md +17 -0
- package/skills/locale/chinese-code-review/skill.yaml +16 -0
- package/skills/locale/chinese-commit-conventions/SKILL.md +17 -0
- package/skills/locale/chinese-commit-conventions/skill.yaml +16 -0
- package/skills/locale/chinese-documentation/SKILL.md +17 -0
- package/skills/locale/chinese-documentation/skill.yaml +16 -0
- package/skills/locale/chinese-git-workflow/SKILL.md +17 -0
- package/skills/locale/chinese-git-workflow/skill.yaml +16 -0
- package/templates/agents-md.md +42 -0
- package/templates/claude-md.md +44 -0
- package/templates/codex-md.md +49 -0
package/README.en.md
ADDED
|
@@ -0,0 +1,522 @@
|
|
|
1
|
+
# @trench-craft/sds
|
|
2
|
+
|
|
3
|
+
**Spec-Driven Superpowers** — A structured development workflow for AI coding tools.
|
|
4
|
+
|
|
5
|
+
Transform vague requirements into quality code through a 6-phase pipeline: **explore → brainstorm → propose → plan → apply → verify → archive**.
|
|
6
|
+
|
|
7
|
+
Works with **Claude Code**, **OpenCode**, and compatible AI coding assistants.
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Table of Contents
|
|
12
|
+
|
|
13
|
+
- [Features](#features)
|
|
14
|
+
- [Prerequisites](#prerequisites)
|
|
15
|
+
- [Quick Start](#quick-start)
|
|
16
|
+
- [Workflow Overview](#workflow-overview)
|
|
17
|
+
- [Phase 0: Context Awareness](#phase-0-context-awareness)
|
|
18
|
+
- [Phase 1: Requirements Analysis](#phase-1-requirements-analysis)
|
|
19
|
+
- [Phase 2: Generate 4 Artifacts](#phase-2-generate-4-artifacts)
|
|
20
|
+
- [Phase 3: Write Plans](#phase-3-write-plans)
|
|
21
|
+
- [Phase 4: Implementation](#phase-4-implementation)
|
|
22
|
+
- [Phase 5: Quality Verification](#phase-5-quality-verification)
|
|
23
|
+
- [Phase 6: Archive & Delivery](#phase-6-archive--delivery)
|
|
24
|
+
- [CLI Reference](#cli-reference)
|
|
25
|
+
- [Platform Support](#platform-support)
|
|
26
|
+
- [Uninstall](#uninstall)
|
|
27
|
+
- [Troubleshooting](#troubleshooting)
|
|
28
|
+
- [FAQ](#faq)
|
|
29
|
+
- [Architecture](#architecture)
|
|
30
|
+
- [Development](#development)
|
|
31
|
+
- [Migrate from V1](#migrate-from-v1)
|
|
32
|
+
- [License](#license)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## Features
|
|
37
|
+
|
|
38
|
+
| Feature | Description |
|
|
39
|
+
|---------|-------------|
|
|
40
|
+
| **6-Phase Pipeline** | From context gathering to delivery archive — every change follows a proven path |
|
|
41
|
+
| **4 Standard Artifacts** | `proposal.md` / `design.md` / `specs.md` / `tasks.md` for every change |
|
|
42
|
+
| **HARD-GATE** | No coding before design approval — enforced at the skill level |
|
|
43
|
+
| **TDD Mandatory** | Test-driven development enforced during implementation |
|
|
44
|
+
| **Subagent Review** | Spec compliance + code quality reviews via parallel subagents |
|
|
45
|
+
| **Empty Project Skip** | Phase 0 auto-skipped when project has no code |
|
|
46
|
+
| **Dual Platform** | Works with both Claude Code and OpenCode |
|
|
47
|
+
| **Conversation Guard** | Skills only trigger on development tasks, not casual chat |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## Prerequisites
|
|
52
|
+
|
|
53
|
+
- **Node.js** >= 18.0.0
|
|
54
|
+
- **npm** >= 9.0.0
|
|
55
|
+
- One of: **Claude Code** CLI or **OpenCode** (or compatible AI coding tool)
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## Quick Start
|
|
60
|
+
|
|
61
|
+
> This is a **project-level installation** — run `npx` in your project directory, no `npm install -g` needed.
|
|
62
|
+
> SDS skills are installed to your project's `.opencode/skills/` or `.claude/skills/` directory.
|
|
63
|
+
|
|
64
|
+
### 1. Install Skills
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Navigate to your project
|
|
68
|
+
cd my-project
|
|
69
|
+
|
|
70
|
+
# ─── Option A: Auto-detect tool (recommended) ───
|
|
71
|
+
# Automatically detects if .opencode or .claude exists
|
|
72
|
+
npx @trench-craft/sds@2.0.0 skills install core
|
|
73
|
+
|
|
74
|
+
# ─── Option B: Specify tool manually ───
|
|
75
|
+
# OpenCode:
|
|
76
|
+
npx @trench-craft/sds@2.0.0 skills install core --tool opencode
|
|
77
|
+
# Shorthand: --tool oc
|
|
78
|
+
|
|
79
|
+
# Claude Code:
|
|
80
|
+
npx @trench-craft/sds@2.0.0 skills install core --tool claude
|
|
81
|
+
# Shorthand: --tool cc or --tool claude-code
|
|
82
|
+
|
|
83
|
+
# Install all skills (core + locale plugins)
|
|
84
|
+
npx @trench-craft/sds skills install all --tool opencode
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### 2. Verify Installation
|
|
88
|
+
|
|
89
|
+
```bash
|
|
90
|
+
# Check installed skills
|
|
91
|
+
# OpenCode:
|
|
92
|
+
ls .opencode/skills/
|
|
93
|
+
|
|
94
|
+
# Claude Code:
|
|
95
|
+
ls .claude/skills/
|
|
96
|
+
|
|
97
|
+
# Check generated config files
|
|
98
|
+
# OpenCode:
|
|
99
|
+
cat AGENTS.md
|
|
100
|
+
|
|
101
|
+
# Claude Code:
|
|
102
|
+
cat CLAUDE.md
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 3. View Available Commands
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
npx @trench-craft/sds --help
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### 2. Verify Installation
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
# Check installed skills
|
|
115
|
+
# OpenCode:
|
|
116
|
+
ls .opencode/skills/
|
|
117
|
+
|
|
118
|
+
# Claude Code:
|
|
119
|
+
ls .claude/skills/
|
|
120
|
+
|
|
121
|
+
# Check generated config
|
|
122
|
+
# OpenCode:
|
|
123
|
+
cat AGENTS.md
|
|
124
|
+
|
|
125
|
+
# Claude Code:
|
|
126
|
+
cat CLAUDE.md
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 3. Start Using
|
|
130
|
+
|
|
131
|
+
Open the project in your AI coding tool and type:
|
|
132
|
+
|
|
133
|
+
> "I want to implement a user login feature"
|
|
134
|
+
|
|
135
|
+
The AI will recognize this as a development task and start the workflow automatically.
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Workflow Overview
|
|
140
|
+
|
|
141
|
+
```
|
|
142
|
+
┌─────────────────────────────────────────────────────────────────────┐
|
|
143
|
+
│ SDS 6-Phase Pipeline │
|
|
144
|
+
├─────────┬──────────┬──────────┬─────────┬─────────┬────────┬───────┤
|
|
145
|
+
│ Phase 0 │ Phase 1 │ Phase 2 │ Phase 3 │ Phase 4 │ Phase5 │Phase6 │
|
|
146
|
+
│ Context │ Brain- │ Generate │ Write │ Imple- │ Verify │Archive│
|
|
147
|
+
│ Aware- │ storm │ Artifacts│ Plans │ ment │ │ │
|
|
148
|
+
│ ness │ │ │ │ │ │ │
|
|
149
|
+
├─────────┼──────────┼──────────┼─────────┼─────────┼────────┼───────┤
|
|
150
|
+
│ codebase│ brain- │ generate │ write- │ apply- │ verify-│archive│
|
|
151
|
+
│ -map │ storming │ -artifac-│ plans │ changes │ changes│-chang-│
|
|
152
|
+
│ deep- │ │ ts │ │ subagen-│ │ es │
|
|
153
|
+
│ explore │ │ │ │ t-dev │ │ │
|
|
154
|
+
└─────────┴──────────┴──────────┴─────────┴─────────┴────────┴───────┘
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Phase 0: Context Awareness
|
|
158
|
+
|
|
159
|
+
**Skills**: `codebase-map`, `deep-explore`
|
|
160
|
+
|
|
161
|
+
Understand the existing codebase before making changes.
|
|
162
|
+
|
|
163
|
+
| Scenario | Action |
|
|
164
|
+
|----------|--------|
|
|
165
|
+
| **Existing project** | Scan structure, detect tech stack, map modules, identify risks |
|
|
166
|
+
| **New / empty project** | **Auto-skipped** — jump directly to Phase 1 |
|
|
167
|
+
| **Specific module inquiry** | Deep investigation of a targeted area |
|
|
168
|
+
|
|
169
|
+
**Output**: `AGENTS.md` / `CLAUDE.md` (project map), or exploration notes.
|
|
170
|
+
|
|
171
|
+
**Example prompt**: "What does this project do?" / "Analyze the auth system"
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
### Phase 1: Requirements Analysis
|
|
176
|
+
|
|
177
|
+
**Skill**: `brainstorming`
|
|
178
|
+
|
|
179
|
+
The most critical phase. The AI explores requirements through structured conversation before any code is written.
|
|
180
|
+
|
|
181
|
+
```
|
|
182
|
+
┌─────────────────────────────────────────────────────┐
|
|
183
|
+
│ Brainstorming Flow │
|
|
184
|
+
├─────────────────────────────────────────────────────┤
|
|
185
|
+
│ │
|
|
186
|
+
│ 1. Explore project context (files, docs, commits) │
|
|
187
|
+
│ 2. Ask clarifying questions (one at a time) │
|
|
188
|
+
│ 3. Propose 2-3 approaches with tradeoffs │
|
|
189
|
+
│ 4. Present design section by section │
|
|
190
|
+
│ 5. Write design document │
|
|
191
|
+
│ 6. Subagent spec review │
|
|
192
|
+
│ 7. User reviews written spec │
|
|
193
|
+
│ 8. Transition to Phase 2 │
|
|
194
|
+
│ │
|
|
195
|
+
└─────────────────────────────────────────────────────┘
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
**🚫 HARD-GATE**: No implementation code is written during or after this phase until design is approved.
|
|
199
|
+
|
|
200
|
+
**Output**: `openspec/changes/<name>/brainstorming.md`
|
|
201
|
+
|
|
202
|
+
**Example prompt**: "I want to implement a login feature"
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
### Phase 2: Generate 4 Artifacts
|
|
207
|
+
|
|
208
|
+
**Skill**: `generate-artifacts`
|
|
209
|
+
|
|
210
|
+
Transform approved requirements into 4 standard artifacts:
|
|
211
|
+
|
|
212
|
+
| Artifact | Content | Purpose |
|
|
213
|
+
|----------|---------|---------|
|
|
214
|
+
| `proposal.md` | Background, goals, scope (in/out), tech stack | **What** & **Why** |
|
|
215
|
+
| `design.md` | Architecture diagram, API definitions, data models, security | **How** |
|
|
216
|
+
| `specs.md` | Functional specs, non-functional specs, acceptance criteria | **Definition of Done** |
|
|
217
|
+
| `tasks.md` | Task list, dependency graph, time estimates | **Execution Plan** |
|
|
218
|
+
|
|
219
|
+
> ⚠️ **All 4 artifacts are mandatory.** None may be skipped.
|
|
220
|
+
|
|
221
|
+
**Output directory**: `openspec/changes/<name>/`
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
### Phase 3: Write Plans
|
|
226
|
+
|
|
227
|
+
**Skill**: `write-plans`
|
|
228
|
+
|
|
229
|
+
Break specs into detailed, executable implementation plans. Each task follows TDD (Red → Green → Refactor).
|
|
230
|
+
|
|
231
|
+
**Plan structure**:
|
|
232
|
+
|
|
233
|
+
```
|
|
234
|
+
### Task N: [Component Name]
|
|
235
|
+
|
|
236
|
+
**Files**:
|
|
237
|
+
- Create: `path/to/file.py`
|
|
238
|
+
- Modify: `path/to/existing.py:123-145`
|
|
239
|
+
|
|
240
|
+
- [ ] Step 1: Write failing test
|
|
241
|
+
- [ ] Step 2: Run test (expect FAIL)
|
|
242
|
+
- [ ] Step 3: Write minimal implementation
|
|
243
|
+
- [ ] Step 4: Run test (expect PASS)
|
|
244
|
+
- [ ] Step 5: Commit
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
**No placeholders allowed** — every step must contain actual code and expected output.
|
|
248
|
+
|
|
249
|
+
**Output**: `openspec/changes/<name>/plan.md`
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
### Phase 4: Implementation
|
|
254
|
+
|
|
255
|
+
**Skills**: `apply-changes`, `subagent-development`
|
|
256
|
+
|
|
257
|
+
Two execution modes:
|
|
258
|
+
|
|
259
|
+
#### Mode A: Standard (Manual)
|
|
260
|
+
|
|
261
|
+
Execute tasks sequentially from `plan.md`, following TDD.
|
|
262
|
+
|
|
263
|
+
#### Mode B: Subagent Development (Recommended)
|
|
264
|
+
|
|
265
|
+
Each task is executed by a dedicated subagent with isolated context:
|
|
266
|
+
|
|
267
|
+
```
|
|
268
|
+
┌─────────────┐ ┌──────────────┐ ┌──────────────────┐
|
|
269
|
+
│ Implementer │───▶│ Spec Reviewer│───▶│ Code Quality │
|
|
270
|
+
│ Subagent │ │ Subagent │ │ Reviewer │
|
|
271
|
+
│ (TDD+code) │ │ (compliance) │ │ Subagent │
|
|
272
|
+
└─────────────┘ └──────────────┘ └──────────────────┘
|
|
273
|
+
│ │
|
|
274
|
+
└────── Retry on failure ──────────────┘
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**Benefits**:
|
|
278
|
+
- Isolated context per task (no contamination)
|
|
279
|
+
- 2-phase review catches issues early
|
|
280
|
+
- TDD enforced automatically
|
|
281
|
+
- Parallel-safe execution
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
### Phase 5: Quality Verification
|
|
286
|
+
|
|
287
|
+
**Skill**: `verify-changes`
|
|
288
|
+
|
|
289
|
+
7 mandatory checks:
|
|
290
|
+
|
|
291
|
+
| # | Check | How |
|
|
292
|
+
|---|-------|-----|
|
|
293
|
+
| 1 | **Compilation** | `tsc --noEmit`, `go build`, etc. |
|
|
294
|
+
| 2 | **Tests** | All tests pass |
|
|
295
|
+
| 3 | **Spec Alignment** | All spec requirements implemented |
|
|
296
|
+
| 4 | **Task Completeness** | No unfinished tasks |
|
|
297
|
+
| 5 | **Code Quality** | LSP clean, no TODOs/FIXMEs, naming consistent |
|
|
298
|
+
| 6 | **Documentation** | README, API docs, env vars synced |
|
|
299
|
+
| 7 | **Breaking Changes** | API backward compatibility, config changes, DB migrations |
|
|
300
|
+
|
|
301
|
+
All 7 checks must pass. If any fails, fix and re-run verification.
|
|
302
|
+
|
|
303
|
+
**Output**: `openspec/changes/<name>/verify.md`
|
|
304
|
+
|
|
305
|
+
---
|
|
306
|
+
|
|
307
|
+
### Phase 6: Archive & Delivery
|
|
308
|
+
|
|
309
|
+
**Skill**: `archive-changes`
|
|
310
|
+
|
|
311
|
+
Archive completed changes for historical reference:
|
|
312
|
+
|
|
313
|
+
```
|
|
314
|
+
openspec/
|
|
315
|
+
├── changes/<name>/ (active — removed after archive)
|
|
316
|
+
└── archive/<date>-<name>/ (permanent record)
|
|
317
|
+
```
|
|
318
|
+
|
|
319
|
+
**Prerequisite**: Phase 5 must pass before archiving.
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## CLI Reference
|
|
324
|
+
|
|
325
|
+
```bash
|
|
326
|
+
@trench-craft/sds <command> [options]
|
|
327
|
+
|
|
328
|
+
Commands:
|
|
329
|
+
skills install <type> Install skills (core | locale | all) [default: all]
|
|
330
|
+
skills verify [skill] Verify skill installation
|
|
331
|
+
skills list List installed skills
|
|
332
|
+
|
|
333
|
+
Options:
|
|
334
|
+
--tool <tool> Target tool: opencode | oc | claude-code | cc | claude
|
|
335
|
+
[auto-detects from .opencode / .claude directory]
|
|
336
|
+
--verbose Verbose output
|
|
337
|
+
-V, --version Output version
|
|
338
|
+
-h, --help Display help
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
### Examples
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
# Auto-detect and install
|
|
345
|
+
npx @trench-craft/sds skills install core
|
|
346
|
+
|
|
347
|
+
# Specify tool with shorthand
|
|
348
|
+
npx @trench-craft/sds skills install all --tool oc
|
|
349
|
+
npx @trench-craft/sds skills install core --tool cc
|
|
350
|
+
|
|
351
|
+
# Install locale plugins only
|
|
352
|
+
npx @trench-craft/sds skills install locale --tool opencode
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
---
|
|
356
|
+
|
|
357
|
+
## Platform Support
|
|
358
|
+
|
|
359
|
+
| Platform | Config File | Skills Directory | Detection |
|
|
360
|
+
|----------|-------------|-----------------|-----------|
|
|
361
|
+
| **OpenCode** | `AGENTS.md` | `.opencode/skills/` | `.opencode/` exists |
|
|
362
|
+
| **Claude Code** | `CLAUDE.md` | `.claude/skills/` | `.claude/` exists |
|
|
363
|
+
|
|
364
|
+
**Claude Code also receives**:
|
|
365
|
+
- `core-engine` — File system, Git, command execution
|
|
366
|
+
- `prompt-manager` — Prompt optimization
|
|
367
|
+
- `subagent-dispatcher` — Subagent lifecycle management
|
|
368
|
+
|
|
369
|
+
---
|
|
370
|
+
|
|
371
|
+
## Uninstall
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
# Remove installed skills and config
|
|
375
|
+
rm -rf .opencode/skills AGENTS.md # OpenCode
|
|
376
|
+
rm -rf .claude/skills CLAUDE.md # Claude Code
|
|
377
|
+
|
|
378
|
+
# Remove npm package
|
|
379
|
+
npm uninstall @trench-craft/sds
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
---
|
|
383
|
+
|
|
384
|
+
## Troubleshooting
|
|
385
|
+
|
|
386
|
+
| Problem | Solution |
|
|
387
|
+
|---------|----------|
|
|
388
|
+
| **Skills not recognized** | Restart your AI coding tool after installation |
|
|
389
|
+
| **"No tool detected" error** | Use `--tool opencode` or `--tool claude-code` explicitly |
|
|
390
|
+
| **Skills appear with Chinese names** | Reinstall with latest version: old V1 names cached |
|
|
391
|
+
| **Subagent not triggering** | Ensure `plan.md` is generated first, then call `subagent-development` |
|
|
392
|
+
| **verify fails on spec alignment** | Check `specs.md` acceptance criteria match implemented features |
|
|
393
|
+
| **Windows path issues** | Use forward slashes or escaped backslashes in paths |
|
|
394
|
+
|
|
395
|
+
---
|
|
396
|
+
|
|
397
|
+
## FAQ
|
|
398
|
+
|
|
399
|
+
### What's the difference between V1 and V2?
|
|
400
|
+
|
|
401
|
+
V2 (`@trench-craft/sds`) is a complete rewrite with OpenSpec workflow. See [Migrate from V1](#migrate-from-v1).
|
|
402
|
+
|
|
403
|
+
### Can I use this with other AI tools?
|
|
404
|
+
|
|
405
|
+
The skills are designed for Claude Code and OpenCode but can be adapted for any AI coding assistant that supports skill/plugin systems.
|
|
406
|
+
|
|
407
|
+
### Do I need to install this in every project?
|
|
408
|
+
|
|
409
|
+
Yes. Skills are project-local. Each project needs its own installation.
|
|
410
|
+
|
|
411
|
+
### Will this slow down my AI?
|
|
412
|
+
|
|
413
|
+
No. Skills only activate on matching tasks. Casual conversation, questions, and non-development topics pass through without interference.
|
|
414
|
+
|
|
415
|
+
### What if I skip a phase?
|
|
416
|
+
|
|
417
|
+
The workflow is designed to catch issues early. Skipping phases increases risk of rework, missed requirements, or quality issues.
|
|
418
|
+
|
|
419
|
+
---
|
|
420
|
+
|
|
421
|
+
## Architecture
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
@trench-craft/sds
|
|
425
|
+
├── bin/sds.ts ← CLI entry point
|
|
426
|
+
├── src/
|
|
427
|
+
│ ├── commands/
|
|
428
|
+
│ │ ├── init.ts ← Project init
|
|
429
|
+
│ │ ├── skills-install.ts ← Skill installer (core logic)
|
|
430
|
+
│ │ ├── skills.ts ← Skills command group
|
|
431
|
+
│ │ ├── config.ts ← Configuration
|
|
432
|
+
│ │ ├── project.ts ← Project management
|
|
433
|
+
│ │ └── ... ← Other commands
|
|
434
|
+
│ ├── platform/
|
|
435
|
+
│ │ ├── opencode.ts ← OpenCode adapter
|
|
436
|
+
│ │ └── claude.ts ← Claude Code adapter
|
|
437
|
+
│ ├── core/
|
|
438
|
+
│ │ └── engine.ts ← SDS engine
|
|
439
|
+
│ └── skills/ ← Skill loader
|
|
440
|
+
├── skills/
|
|
441
|
+
│ ├── core/ ← 14 core skills
|
|
442
|
+
│ │ ├── brainstorming/
|
|
443
|
+
│ │ ├── opsx-propose/
|
|
444
|
+
│ │ ├── writing-plans/
|
|
445
|
+
│ │ ├── opsx-apply/
|
|
446
|
+
│ │ ├── opsx-verify/
|
|
447
|
+
│ │ ├── opsx-archive/
|
|
448
|
+
│ │ ├── existing-code-caveman/
|
|
449
|
+
│ │ ├── opsx-explore/
|
|
450
|
+
│ │ ├── subagent-driven-development/
|
|
451
|
+
│ │ ├── ecc-agents-md-router/
|
|
452
|
+
│ │ ├── ecc-context-injector/
|
|
453
|
+
│ │ ├── claude-code-core/ (Claude Code only)
|
|
454
|
+
│ │ ├── claude-code-prompt/ (Claude Code only)
|
|
455
|
+
│ │ └── claude-code-subagent/ (Claude Code only)
|
|
456
|
+
│ └── locale/ ← 4 locale skills (zh-CN)
|
|
457
|
+
│ ├── chinese-code-review/
|
|
458
|
+
│ ├── chinese-commit-conventions/
|
|
459
|
+
│ ├── chinese-documentation/
|
|
460
|
+
│ └── chinese-git-workflow/
|
|
461
|
+
├── templates/
|
|
462
|
+
│ ├── agents-md.md ← OpenCode AGENTS.md template
|
|
463
|
+
│ └── claude-md.md ← Claude Code CLAUDE.md template
|
|
464
|
+
└── package.json
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## Development
|
|
470
|
+
|
|
471
|
+
```bash
|
|
472
|
+
# Clone the monorepo
|
|
473
|
+
git clone <repo-url>
|
|
474
|
+
cd packages/sds
|
|
475
|
+
|
|
476
|
+
# Install dependencies
|
|
477
|
+
npm install
|
|
478
|
+
|
|
479
|
+
# Build from source
|
|
480
|
+
npm run build
|
|
481
|
+
|
|
482
|
+
# Test locally
|
|
483
|
+
npm link
|
|
484
|
+
cd /path/to/test-project
|
|
485
|
+
npm link @trench-craft/sds
|
|
486
|
+
npx sds skills install core --tool opencode
|
|
487
|
+
```
|
|
488
|
+
|
|
489
|
+
---
|
|
490
|
+
|
|
491
|
+
## Migrate from V1
|
|
492
|
+
|
|
493
|
+
V2 (`@trench-craft/sds`) is a major upgrade from V1 (`trench-craft-skills`).
|
|
494
|
+
|
|
495
|
+
| Aspect | V1 | V2 |
|
|
496
|
+
|--------|----|----|
|
|
497
|
+
| **Package** | `trench-craft-skills` | **`@trench-craft/sds`** |
|
|
498
|
+
| **Workflow** | Linear process | **6-phase OpenSpec pipeline** |
|
|
499
|
+
| **Artifact Path** | `docs/superpowers/` | **`openspec/changes/<name>/`** |
|
|
500
|
+
| **4 Artifacts** | Not available | **proposal / design / specs / tasks** |
|
|
501
|
+
| **CLI Flag** | `--platform` | **`--tool`** |
|
|
502
|
+
| **Skill Names** | Chinese | **English kebab-case** |
|
|
503
|
+
| **Phase 0** | Not available | **Context awareness (auto-skip empty projects)** |
|
|
504
|
+
| **Plan Review** | Optional | **Mandatory subagent plan review** |
|
|
505
|
+
| **Verify Phase** | Not available | **7 mandatory quality checks** |
|
|
506
|
+
| **Archive Phase** | Not available | **Structured archive with history** |
|
|
507
|
+
|
|
508
|
+
### Migration Steps
|
|
509
|
+
|
|
510
|
+
1. Uninstall V1 skills: `rm -rf .opencode/skills .claude/skills AGENTS.md CLAUDE.md`
|
|
511
|
+
2. Install V2: `npx @trench-craft/sds skills install core --tool opencode`
|
|
512
|
+
3. Existing `docs/superpowers/` artifacts remain readable but new work uses `openspec/changes/`
|
|
513
|
+
|
|
514
|
+
---
|
|
515
|
+
|
|
516
|
+
## License
|
|
517
|
+
|
|
518
|
+
MIT
|
|
519
|
+
|
|
520
|
+
---
|
|
521
|
+
|
|
522
|
+
*Built with ❤️ for developers who believe AI-assisted coding deserves structure.*
|