@curdx/flow 2.0.0 → 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude-plugin/marketplace.json +1 -1
- package/CHANGELOG.md +1 -1
- package/README.md +3 -3
- package/README.zh.md +5 -5
- package/agent-preamble/preamble.md +1 -1
- package/bin/curdx-flow.js +1 -1
- package/cli/doctor.js +1 -1
- package/cli/install.js +6 -6
- package/cli/uninstall.js +1 -1
- package/cli/upgrade.js +1 -1
- package/commands/help.md +4 -4
- package/commands/implement.md +1 -1
- package/commands/init.md +5 -5
- package/commands/review.md +1 -1
- package/commands/spec.md +1 -1
- package/commands/start.md +1 -1
- package/commands/verify.md +1 -1
- package/gates/verification-gate.md +1 -1
- package/knowledge/atomic-commits.md +6 -6
- package/knowledge/karpathy-guidelines.md +2 -2
- package/knowledge/planning-reviews.md +1 -1
- package/knowledge/spec-driven-development.md +1 -1
- package/knowledge/two-stage-review.md +2 -2
- package/knowledge/wave-execution.md +1 -1
- package/package.json +2 -2
- package/schemas/config.schema.json +1 -1
- package/schemas/spec-frontmatter.schema.json +1 -1
- package/schemas/spec-state.schema.json +1 -1
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
},
|
|
7
7
|
"metadata": {
|
|
8
8
|
"description": "Claude Code Discipline Layer — spec-driven workflow + goal-backward verification + Karpathy 4 principles enforced via gates. Stops Claude from faking \"done\" on non-trivial features.",
|
|
9
|
-
"version": "2.0.
|
|
9
|
+
"version": "2.0.2"
|
|
10
10
|
},
|
|
11
11
|
"plugins": [
|
|
12
12
|
{
|
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CurdX-Flow
|
|
2
2
|
|
|
3
3
|
> **Stop Claude Code from faking "done".**
|
|
4
4
|
> Spec-driven workflow + goal-backward verification + Karpathy discipline.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
Claude Code drifts. It claims features work without running the tests. It uses stale library APIs from its training data. It takes three questions worth of code and squeezes in six.
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
CurdX-Flow is a thin **discipline layer** on top of Claude Code that makes non-trivial feature work actually work:
|
|
18
18
|
|
|
19
19
|
1. **A spec workflow** (research → requirements → design → tasks) for features too big to vibe-code.
|
|
20
20
|
2. **Goal-backward verification** that scans your implementation against your own FR / AC / AD and catches stubs, fake completions, and untested acceptance criteria.
|
|
@@ -119,7 +119,7 @@ npm i -g @curdx/flow@^1.1
|
|
|
119
119
|
|
|
120
120
|
## Credits
|
|
121
121
|
|
|
122
|
-
|
|
122
|
+
CurdX-Flow v2 is a distillation, not an invention. Ideas we depend on:
|
|
123
123
|
|
|
124
124
|
- [**Andrej Karpathy's 4 principles**](https://github.com/forrestchang/andrej-karpathy-skills) — the discipline foundation
|
|
125
125
|
- [**GitHub Spec Kit**](https://github.com/github/spec-kit) — spec-driven development boiled down
|
package/README.zh.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CurdX-Flow
|
|
2
2
|
|
|
3
3
|
> **Claude Code 的 AI 工程工作流元框架**
|
|
4
4
|
> 把 Claude Code 变成有工程纪律的 AI 团队 — 编排 MCP 和插件,强制 Karpathy 4 原则,用规格驱动工作流交付高质量软件。
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
|
|
13
13
|
## 是什么
|
|
14
14
|
|
|
15
|
-
|
|
15
|
+
CurdX-Flow 是一个 Claude Code 插件,把 6 个验证过的 AI 工程工作流(Karpathy guidelines / BMAD / get-shit-done / gstack / smart-ralph / superpowers)蒸馏成一个可组合系统,然后把基础设施委托给专业的第三方插件(context7 / sequential-thinking / chrome-devtools / claude-mem / pua / frontend-design)。
|
|
16
16
|
|
|
17
17
|
**不重造轮子。编排好轮子。**
|
|
18
18
|
|
|
@@ -31,7 +31,7 @@ CurDX-Flow 是一个 Claude Code 插件,把 6 个验证过的 AI 工程工作
|
|
|
31
31
|
|
|
32
32
|
现有 AI 编程工作流常见问题:
|
|
33
33
|
|
|
34
|
-
| 问题 |
|
|
34
|
+
| 问题 | CurdX-Flow 的答案 |
|
|
35
35
|
|-----|-----------------|
|
|
36
36
|
| 上下文腐烂(长会话质量下降) | Subagent 隔离 + stop-hook 循环 + claude-mem |
|
|
37
37
|
| 无工程纪律(AI 跳步、幻觉) | Karpathy L1 + verification-gate + TDD-gate |
|
|
@@ -45,7 +45,7 @@ CurDX-Flow 是一个 Claude Code 插件,把 6 个验证过的 AI 工程工作
|
|
|
45
45
|
npx @curdx/flow install --all
|
|
46
46
|
```
|
|
47
47
|
|
|
48
|
-
这会用 `claude plugin ...` 非交互 CLI 安装
|
|
48
|
+
这会用 `claude plugin ...` 非交互 CLI 安装 CurdX-Flow 插件、Context7 官方插件、必需 MCP,并安装推荐插件。
|
|
49
49
|
|
|
50
50
|
**注意:** 如果你在 `curdx-flow` 项目目录内运行此命令,请使用 `npx --ignore-existing @curdx/flow install --all` 避免 npx 尝试使用本地未安装依赖的包。
|
|
51
51
|
|
|
@@ -121,7 +121,7 @@ claude --plugin-dir ./curdx-flow
|
|
|
121
121
|
|
|
122
122
|
## 致谢
|
|
123
123
|
|
|
124
|
-
|
|
124
|
+
CurdX-Flow 是蒸馏,不是原创。深深致谢:
|
|
125
125
|
|
|
126
126
|
- [**andrej-karpathy-skills**](https://github.com/forrestchang/andrej-karpathy-skills) — 4 原则
|
|
127
127
|
- [**smart-ralph**](https://github.com/Nibzard/smart-ralph) — 规格引擎 + stop-hook 循环
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
#
|
|
1
|
+
# CurdX-Flow Agent Shared Preamble
|
|
2
2
|
|
|
3
3
|
> All `flow-*` agents and commands inherit this file via `@${CLAUDE_PLUGIN_ROOT}/agent-preamble/preamble.md`.
|
|
4
4
|
> This is a behavioral baseline, not a suggestion. Violation counts as agent failure.
|
package/bin/curdx-flow.js
CHANGED
|
@@ -36,7 +36,7 @@ const rest = args.slice(1);
|
|
|
36
36
|
function printHelp() {
|
|
37
37
|
console.log(`
|
|
38
38
|
${color.bold("curdx-flow")} ${color.dim(`v${VERSION}`)}
|
|
39
|
-
|
|
39
|
+
CurdX-Flow installer & helper for Claude Code
|
|
40
40
|
|
|
41
41
|
${color.bold("USAGE")}
|
|
42
42
|
npx @curdx/flow <command> [options]
|
package/cli/doctor.js
CHANGED
|
@@ -21,7 +21,7 @@ import { BUNDLED_MCPS, REQUIRED_PLUGINS, RECOMMENDED_PLUGINS } from "./registry.
|
|
|
21
21
|
export async function doctor(args = []) {
|
|
22
22
|
const verbose = args.includes("--verbose") || args.includes("-v");
|
|
23
23
|
|
|
24
|
-
log.title("🏥
|
|
24
|
+
log.title("🏥 CurdX-Flow Health Check");
|
|
25
25
|
|
|
26
26
|
let errors = 0;
|
|
27
27
|
let warnings = 0;
|
package/cli/install.js
CHANGED
|
@@ -78,9 +78,9 @@ export async function install(args = []) {
|
|
|
78
78
|
|
|
79
79
|
// Use @clack intro only in interactive TTY mode
|
|
80
80
|
if (process.stdout.isTTY && !yes) {
|
|
81
|
-
await intro("🚀
|
|
81
|
+
await intro("🚀 CurdX-Flow Installer");
|
|
82
82
|
} else {
|
|
83
|
-
log.title("🚀
|
|
83
|
+
log.title("🚀 CurdX-Flow Installer");
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
// ---------- Step 0: Language selection ----------
|
|
@@ -576,13 +576,13 @@ async function promptPluginConfig(plugin, language, config) {
|
|
|
576
576
|
message: language === "zh"
|
|
577
577
|
? "输入你的 Context7 API key(或按 Enter 跳过)"
|
|
578
578
|
: "Enter your Context7 API key (or press Enter to skip)",
|
|
579
|
-
placeholder: "
|
|
579
|
+
placeholder: "ctx7sk-...",
|
|
580
580
|
validate: (value) => {
|
|
581
581
|
if (!value) return; // Allow skip
|
|
582
|
-
if (!value.startsWith("ctx7_")) {
|
|
582
|
+
if (!value.startsWith("ctx7sk-") && !value.startsWith("ctx7_")) {
|
|
583
583
|
return language === "zh"
|
|
584
|
-
? "API key 应该以 ctx7_ 开头"
|
|
585
|
-
: "API key should start with ctx7_";
|
|
584
|
+
? "API key 应该以 ctx7sk- 或 ctx7_ 开头"
|
|
585
|
+
: "API key should start with ctx7sk- or ctx7_";
|
|
586
586
|
}
|
|
587
587
|
},
|
|
588
588
|
});
|
package/cli/uninstall.js
CHANGED
|
@@ -47,7 +47,7 @@ export async function uninstall(args = []) {
|
|
|
47
47
|
const purge = args.includes("--purge");
|
|
48
48
|
const keepRecommended = args.includes("--keep-recommended");
|
|
49
49
|
|
|
50
|
-
log.title("🗑️
|
|
50
|
+
log.title("🗑️ CurdX-Flow Uninstaller");
|
|
51
51
|
|
|
52
52
|
// ---------- Step 1: claude CLI present? ----------
|
|
53
53
|
const cv = claudeVersion();
|
package/cli/upgrade.js
CHANGED
package/commands/help.md
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: help
|
|
3
|
-
description: Show
|
|
3
|
+
description: Show CurdX-Flow command list, workflow overview, or troubleshooting guide. With a command name, show that command's detail.
|
|
4
4
|
argument-hint: "[<command-name> | workflow | troubleshoot]"
|
|
5
5
|
allowed-tools: [Read, Bash]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
#
|
|
8
|
+
# CurdX-Flow Help
|
|
9
9
|
|
|
10
10
|
## No argument — quick overview
|
|
11
11
|
|
|
12
12
|
Show the 9 core slash commands + 5 auto-invoked skills. Keep the table compact, use tabs for alignment.
|
|
13
13
|
|
|
14
14
|
```
|
|
15
|
-
🚀
|
|
15
|
+
🚀 CurdX-Flow v2 — Claude Code Discipline Layer
|
|
16
16
|
|
|
17
17
|
9 slash commands (explicit control)
|
|
18
18
|
────────────────────────────────────
|
|
@@ -61,7 +61,7 @@ If the argument isn't a known command, list the 9 candidates and the 5 skill nam
|
|
|
61
61
|
## `workflow` — standard workflow
|
|
62
62
|
|
|
63
63
|
```
|
|
64
|
-
📐
|
|
64
|
+
📐 CurdX-Flow v2 Standard Workflow
|
|
65
65
|
|
|
66
66
|
1. One-time setup (outside Claude Code)
|
|
67
67
|
└─ npx @curdx/flow install --all
|
package/commands/implement.md
CHANGED
|
@@ -15,7 +15,7 @@ Execute spec tasks per tasks.md. Select the best execution strategy based on arg
|
|
|
15
15
|
## Step 1: Preflight Checks
|
|
16
16
|
|
|
17
17
|
```bash
|
|
18
|
-
[ ! -d ".flow" ] && { echo "✗ Not a
|
|
18
|
+
[ ! -d ".flow" ] && { echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first"; exit 1; }
|
|
19
19
|
|
|
20
20
|
ARGS="$ARGUMENTS"
|
|
21
21
|
SPEC_NAME=""
|
package/commands/init.md
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: init
|
|
3
|
-
description: Initialize the
|
|
3
|
+
description: Initialize the CurdX-Flow project structure (create the .flow/ directory and core files)
|
|
4
4
|
argument-hint: "[--force]"
|
|
5
5
|
allowed-tools: [Read, Write, Bash, AskUserQuestion]
|
|
6
6
|
---
|
|
7
7
|
|
|
8
|
-
# Initialize
|
|
8
|
+
# Initialize CurdX-Flow Project
|
|
9
9
|
|
|
10
|
-
Create the `.flow/` directory structure in the current directory so
|
|
10
|
+
Create the `.flow/` directory structure in the current directory so CurdX-Flow can operate in this project.
|
|
11
11
|
|
|
12
12
|
## Execution Steps
|
|
13
13
|
|
|
@@ -56,7 +56,7 @@ Placeholders:
|
|
|
56
56
|
Append (if not already present):
|
|
57
57
|
|
|
58
58
|
```
|
|
59
|
-
#
|
|
59
|
+
# CurdX-Flow runtime files
|
|
60
60
|
.flow/checkpoints/
|
|
61
61
|
.flow/threads/
|
|
62
62
|
.flow/seeds/
|
|
@@ -91,7 +91,7 @@ Items the CLI doctor covers (for user reference):
|
|
|
91
91
|
Output:
|
|
92
92
|
|
|
93
93
|
```
|
|
94
|
-
✓
|
|
94
|
+
✓ CurdX-Flow project initialized
|
|
95
95
|
.flow/
|
|
96
96
|
├── PROJECT.md ← fill in your project vision
|
|
97
97
|
├── CONTEXT.md ← fill in your preferences
|
package/commands/review.md
CHANGED
|
@@ -22,7 +22,7 @@ Distinct from `/curdx-flow:verify`:
|
|
|
22
22
|
## Preflight
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
[ ! -d ".flow" ] && { echo "✗ Not a
|
|
25
|
+
[ ! -d ".flow" ] && { echo "✗ Not a CurdX-Flow project."; exit 1; }
|
|
26
26
|
|
|
27
27
|
SPEC_NAME=$(cat .flow/.active-spec 2>/dev/null)
|
|
28
28
|
[ -z "$SPEC_NAME" ] && { echo "✗ No active spec."; exit 1; }
|
package/commands/spec.md
CHANGED
|
@@ -24,7 +24,7 @@ This command writes the four spec documents (`research.md`, `requirements.md`, `
|
|
|
24
24
|
```bash
|
|
25
25
|
# 1. A .flow project must exist
|
|
26
26
|
[ ! -d ".flow" ] && {
|
|
27
|
-
echo "✗ Not a
|
|
27
|
+
echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first.";
|
|
28
28
|
exit 1;
|
|
29
29
|
}
|
|
30
30
|
|
package/commands/start.md
CHANGED
|
@@ -25,7 +25,7 @@ Entry point for every feature. Works in four modes depending on flags and existi
|
|
|
25
25
|
```bash
|
|
26
26
|
# Require a .flow project
|
|
27
27
|
[ ! -d ".flow" ] && {
|
|
28
|
-
echo "✗ Not a
|
|
28
|
+
echo "✗ Not a CurdX-Flow project. Run /curdx-flow:init first.";
|
|
29
29
|
exit 1;
|
|
30
30
|
}
|
|
31
31
|
```
|
package/commands/verify.md
CHANGED
|
@@ -18,7 +18,7 @@ This is the **differentiator command**: it scans the implementation against the
|
|
|
18
18
|
## Preflight
|
|
19
19
|
|
|
20
20
|
```bash
|
|
21
|
-
[ ! -d ".flow" ] && { echo "✗ Not a
|
|
21
|
+
[ ! -d ".flow" ] && { echo "✗ Not a CurdX-Flow project."; exit 1; }
|
|
22
22
|
|
|
23
23
|
SPEC_NAME=$(cat .flow/.active-spec 2>/dev/null)
|
|
24
24
|
[ -z "$SPEC_NAME" ] && { echo "✗ No active spec. Run /curdx-flow:start first."; exit 1; }
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Atomic Commits — Atomic Commit Rules
|
|
2
2
|
|
|
3
|
-
> One task, one commit. This is the iron rule for all execution agents in
|
|
3
|
+
> One task, one commit. This is the iron rule for all execution agents in CurdX-Flow.
|
|
4
4
|
>
|
|
5
5
|
> Agents reference this via `@${CLAUDE_PLUGIN_ROOT}/knowledge/atomic-commits.md`.
|
|
6
6
|
|
|
@@ -18,7 +18,7 @@ Why:
|
|
|
18
18
|
|
|
19
19
|
---
|
|
20
20
|
|
|
21
|
-
## Commit Message Format (Conventional Commits +
|
|
21
|
+
## Commit Message Format (Conventional Commits + CurdX-Flow extensions)
|
|
22
22
|
|
|
23
23
|
```
|
|
24
24
|
<type>(<scope>): <summary>
|
|
@@ -94,7 +94,7 @@ Added tests for success and failure cases.
|
|
|
94
94
|
|
|
95
95
|
## Footer (reference IDs)
|
|
96
96
|
|
|
97
|
-
|
|
97
|
+
CurdX-Flow extension: if a task references FR / AC / AD / D-NN, list them in the footer:
|
|
98
98
|
|
|
99
99
|
```
|
|
100
100
|
feat(auth): implement JWT refresh flow
|
|
@@ -230,7 +230,7 @@ PR review reads each commit's message.
|
|
|
230
230
|
- Good commit message → reviewer finishes in 5 minutes
|
|
231
231
|
- Bad commit message → reviewer either rubber-stamps or blocks without reading
|
|
232
232
|
|
|
233
|
-
|
|
233
|
+
CurdX-Flow's `/curdx-flow:ship` command (Phase 6) will turn atomic commits into a clean PR description. Poor commit quality yields poor PR descriptions.
|
|
234
234
|
|
|
235
235
|
---
|
|
236
236
|
|
|
@@ -255,8 +255,8 @@ Reading this history, anyone can understand:
|
|
|
255
255
|
- Then TDD red (tests) → green (implementation)
|
|
256
256
|
- Every step is atomic
|
|
257
257
|
|
|
258
|
-
This is the quality
|
|
258
|
+
This is the quality CurdX-Flow demands.
|
|
259
259
|
|
|
260
260
|
---
|
|
261
261
|
|
|
262
|
-
|
|
262
|
+
_CurdX-Flow internal rule. Violation counts as a flow-executor task failure._
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Karpathy Guidelines — Detailed Version
|
|
2
2
|
|
|
3
|
-
> Source: Andrej Karpathy's observations on X about LLM coding pitfalls. This is
|
|
3
|
+
> Source: Andrej Karpathy's observations on X about LLM coding pitfalls. This is CurdX-Flow's L1 behavior baseline — all agents inherit from it.
|
|
4
4
|
>
|
|
5
5
|
> Agents reference this file via `@${CLAUDE_PLUGIN_ROOT}/knowledge/karpathy-guidelines.md`.
|
|
6
6
|
|
|
@@ -216,4 +216,4 @@ These 4 principles **reduce speed to improve accuracy**. For trivial tasks (rena
|
|
|
216
216
|
|
|
217
217
|
---
|
|
218
218
|
|
|
219
|
-
_Source: Andrej Karpathy's observations on LLM coding pitfalls, distilled for
|
|
219
|
+
_Source: Andrej Karpathy's observations on LLM coding pitfalls, distilled for CurdX-Flow._
|
|
@@ -208,4 +208,4 @@ The two don't overlap. Plan Review prevents "doing the wrong thing", Code Review
|
|
|
208
208
|
|
|
209
209
|
---
|
|
210
210
|
|
|
211
|
-
_source: gstack's 4 maps review system.
|
|
211
|
+
_source: gstack's 4 maps review system. CurdX-Flow simplifies to 4 independent commands + one aggregated command._
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Two-Stage Review — Two-Stage Code Review
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> CurdX-Flow version of Superpowers' code review skill.
|
|
4
4
|
>
|
|
5
5
|
> Agents reference this via `@${CLAUDE_PLUGIN_ROOT}/knowledge/two-stage-review.md`.
|
|
6
6
|
|
|
@@ -231,4 +231,4 @@ Verify is "did we implement the right thing", Review is "is the implementation g
|
|
|
231
231
|
|
|
232
232
|
---
|
|
233
233
|
|
|
234
|
-
_Source: superpowers' code-review two-stage design, extended with
|
|
234
|
+
_Source: superpowers' code-review two-stage design, extended with CurdX-Flow's Gate system._
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@curdx/flow",
|
|
3
|
-
"version": "2.0.
|
|
4
|
-
"description": "CLI installer for
|
|
3
|
+
"version": "2.0.2",
|
|
4
|
+
"description": "CLI installer for CurdX-Flow — AI engineering workflow meta-framework for Claude Code",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
7
|
"curdx-flow": "bin/curdx-flow.js"
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://curdx-flow.dev/schemas/config.schema.json",
|
|
4
|
-
"title": "
|
|
4
|
+
"title": "CurdX-Flow Project Config",
|
|
5
5
|
"description": "Schema for .flow/config.json",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["version", "mode"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://curdx-flow.dev/schemas/spec-frontmatter.schema.json",
|
|
4
|
-
"title": "
|
|
4
|
+
"title": "CurdX-Flow Spec Document Frontmatter",
|
|
5
5
|
"description": "YAML frontmatter at the top of research.md / requirements.md / design.md / tasks.md",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["spec", "phase", "created", "version"],
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://curdx-flow.dev/schemas/spec-state.schema.json",
|
|
4
|
-
"title": "
|
|
4
|
+
"title": "CurdX-Flow Spec State",
|
|
5
5
|
"description": "Schema for .flow/specs/<name>/.state.json — tracks phase progress across sessions",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": ["version", "spec_name", "phase"],
|