@curdx/flow 3.0.0 → 3.1.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 +21 -87
- package/LICENSE +1 -1
- package/README.md +28 -129
- package/dist/index.mjs +995 -0
- package/package.json +33 -44
- package/.claude-plugin/marketplace.json +0 -48
- package/.claude-plugin/plugin.json +0 -52
- package/agent-preamble/preamble.md +0 -314
- package/agents/flow-adversary.md +0 -203
- package/agents/flow-architect.md +0 -198
- package/agents/flow-brownfield-analyst.md +0 -143
- package/agents/flow-debugger.md +0 -321
- package/agents/flow-edge-hunter.md +0 -289
- package/agents/flow-executor.md +0 -269
- package/agents/flow-orchestrator.md +0 -145
- package/agents/flow-planner.md +0 -247
- package/agents/flow-product-designer.md +0 -159
- package/agents/flow-qa-engineer.md +0 -282
- package/agents/flow-researcher.md +0 -166
- package/agents/flow-reviewer.md +0 -304
- package/agents/flow-security-auditor.md +0 -401
- package/agents/flow-triage-analyst.md +0 -272
- package/agents/flow-ui-researcher.md +0 -230
- package/agents/flow-ux-designer.md +0 -221
- package/agents/flow-verifier.md +0 -350
- package/bin/curdx-flow +0 -5
- package/bin/curdx-flow-state +0 -104
- package/bin/curdx-flow.js +0 -54
- package/cli/README.md +0 -104
- package/cli/doctor-workflow.js +0 -483
- package/cli/doctor.js +0 -73
- package/cli/help.js +0 -59
- package/cli/install-bundled-mcps.js +0 -37
- package/cli/install-companions.js +0 -19
- package/cli/install-context7-config.js +0 -80
- package/cli/install-curdx-plugin.js +0 -96
- package/cli/install-language.js +0 -35
- package/cli/install-next-steps.js +0 -29
- package/cli/install-options.js +0 -9
- package/cli/install-paths.js +0 -52
- package/cli/install-recommended-plugins.js +0 -104
- package/cli/install-required-plugins.js +0 -57
- package/cli/install-self-update.js +0 -62
- package/cli/install-workflow.js +0 -209
- package/cli/install.js +0 -101
- package/cli/lib/claude-commands.js +0 -41
- package/cli/lib/claude-ops.js +0 -47
- package/cli/lib/claude.js +0 -183
- package/cli/lib/config.js +0 -24
- package/cli/lib/doctor-claude-settings.js +0 -1186
- package/cli/lib/doctor-report.js +0 -978
- package/cli/lib/doctor-runtime-environment.js +0 -196
- package/cli/lib/frontmatter.js +0 -44
- package/cli/lib/json-schema.js +0 -57
- package/cli/lib/logging.js +0 -25
- package/cli/lib/process.js +0 -60
- package/cli/lib/prompts.js +0 -135
- package/cli/lib/runtime.js +0 -107
- package/cli/lib/semver.js +0 -109
- package/cli/lib/version.js +0 -12
- package/cli/protocols-body.md +0 -22
- package/cli/protocols.js +0 -162
- package/cli/registry.js +0 -123
- package/cli/router.js +0 -49
- package/cli/uninstall-actions.js +0 -360
- package/cli/uninstall-workflow.js +0 -146
- package/cli/uninstall.js +0 -42
- package/cli/upgrade-workflow.js +0 -80
- package/cli/upgrade.js +0 -91
- package/cli/utils.js +0 -40
- package/gates/adversarial-review-gate.md +0 -219
- package/gates/coverage-audit-gate.md +0 -182
- package/gates/devex-gate.md +0 -254
- package/gates/edge-case-gate.md +0 -194
- package/gates/karpathy-gate.md +0 -130
- package/gates/security-gate.md +0 -218
- package/gates/tdd-gate.md +0 -182
- package/gates/test-quality-gate.md +0 -59
- package/gates/verification-gate.md +0 -179
- package/hooks/hooks.json +0 -130
- package/hooks/scripts/common.sh +0 -237
- package/hooks/scripts/config-change-guard.sh +0 -94
- package/hooks/scripts/flow-context-watch.sh +0 -94
- package/hooks/scripts/inject-karpathy.sh +0 -53
- package/hooks/scripts/quick-mode-guard.sh +0 -69
- package/hooks/scripts/session-start.sh +0 -94
- package/hooks/scripts/session-title.sh +0 -87
- package/hooks/scripts/stop-watcher.sh +0 -231
- package/hooks/scripts/subagent-artifact-guard.sh +0 -92
- package/hooks/scripts/subagent-statusline.sh +0 -111
- package/hooks/scripts/task-lifecycle-guard.sh +0 -106
- package/hooks/scripts/teammate-idle-guard.sh +0 -83
- package/knowledge/artifact-output-discipline.md +0 -24
- package/knowledge/artifact-summary-contracts.md +0 -50
- package/knowledge/atomic-commits.md +0 -262
- package/knowledge/claude-code-runtime-contracts.md +0 -240
- package/knowledge/epic-decomposition.md +0 -307
- package/knowledge/execution-strategies.md +0 -303
- package/knowledge/karpathy-guidelines.md +0 -219
- package/knowledge/planning-reviews.md +0 -211
- package/knowledge/poc-first-workflow.md +0 -223
- package/knowledge/review-feedback-intake.md +0 -57
- package/knowledge/spec-driven-development.md +0 -180
- package/knowledge/systematic-debugging.md +0 -378
- package/knowledge/two-stage-review.md +0 -249
- package/knowledge/wave-execution.md +0 -403
- package/monitors/monitors.json +0 -8
- package/monitors/scripts/flow-state-monitor.sh +0 -102
- package/output-styles/curdx-evidence-first.md +0 -34
- package/output-styles/curdx-fast-mode.md +0 -42
- package/output-styles/curdx-spec-mode.md +0 -46
- package/schemas/agent-frontmatter.schema.json +0 -66
- package/schemas/config.schema.json +0 -134
- package/schemas/gate-frontmatter.schema.json +0 -30
- package/schemas/hooks.schema.json +0 -115
- package/schemas/output-style-frontmatter.schema.json +0 -22
- package/schemas/plugin-manifest.schema.json +0 -436
- package/schemas/plugin-settings.schema.json +0 -29
- package/schemas/skill-frontmatter.schema.json +0 -177
- package/schemas/spec-frontmatter.schema.json +0 -42
- package/schemas/spec-state.schema.json +0 -165
- package/settings.json +0 -8
- package/skills/brownfield-index/SKILL.md +0 -53
- package/skills/brownfield-index/references/applicability.md +0 -12
- package/skills/brownfield-index/references/handoff.md +0 -8
- package/skills/brownfield-index/references/index-contract.md +0 -10
- package/skills/browser-qa/SKILL.md +0 -39
- package/skills/browser-qa/references/handoff.md +0 -6
- package/skills/browser-qa/references/prerequisites.md +0 -10
- package/skills/browser-qa/references/qa-contract.md +0 -20
- package/skills/cancel/SKILL.md +0 -41
- package/skills/cancel/references/destructive-mode.md +0 -17
- package/skills/cancel/references/reporting.md +0 -18
- package/skills/cancel/references/state-recovery.md +0 -30
- package/skills/cancel/references/target-resolution.md +0 -7
- package/skills/debug/SKILL.md +0 -45
- package/skills/debug/references/context-gathering.md +0 -11
- package/skills/debug/references/failure-guard.md +0 -25
- package/skills/debug/references/intake.md +0 -12
- package/skills/debug/references/phase-workflow.md +0 -34
- package/skills/debug/references/reporting.md +0 -20
- package/skills/epic/SKILL.md +0 -39
- package/skills/epic/references/epic-artifacts.md +0 -20
- package/skills/epic/references/epic-intake.md +0 -9
- package/skills/epic/references/slice-handoff.md +0 -16
- package/skills/fast/SKILL.md +0 -62
- package/skills/fast/references/applicability.md +0 -25
- package/skills/fast/references/clarification.md +0 -20
- package/skills/fast/references/execution-contract.md +0 -56
- package/skills/help/SKILL.md +0 -55
- package/skills/help/references/dispatch.md +0 -20
- package/skills/help/references/overview.md +0 -39
- package/skills/help/references/troubleshoot.md +0 -47
- package/skills/help/references/workflow.md +0 -37
- package/skills/implement/SKILL.md +0 -104
- package/skills/implement/references/error-recovery.md +0 -36
- package/skills/implement/references/linear-execution.md +0 -43
- package/skills/implement/references/native-task-sync.md +0 -107
- package/skills/implement/references/preflight.md +0 -43
- package/skills/implement/references/progress-contract.md +0 -36
- package/skills/implement/references/state-init.md +0 -36
- package/skills/implement/references/stop-hook-execution.md +0 -50
- package/skills/implement/references/strategy-router.md +0 -38
- package/skills/implement/references/subagent-execution.md +0 -57
- package/skills/implement/references/wave-execution.md +0 -180
- package/skills/init/SKILL.md +0 -49
- package/skills/init/references/gitignore-and-health.md +0 -26
- package/skills/init/references/next-steps.md +0 -22
- package/skills/init/references/preflight.md +0 -15
- package/skills/init/references/scaffold-contract.md +0 -27
- package/skills/review/SKILL.md +0 -82
- package/skills/review/references/optional-passes.md +0 -48
- package/skills/review/references/preflight.md +0 -38
- package/skills/review/references/report-contract.md +0 -49
- package/skills/review/references/reporting.md +0 -20
- package/skills/review/references/stage-execution.md +0 -32
- package/skills/security-audit/SKILL.md +0 -47
- package/skills/security-audit/references/audit-contract.md +0 -21
- package/skills/security-audit/references/gate-handoff.md +0 -8
- package/skills/security-audit/references/scope-and-depth.md +0 -9
- package/skills/spec/SKILL.md +0 -100
- package/skills/spec/references/artifact-landing.md +0 -31
- package/skills/spec/references/phase-execution.md +0 -50
- package/skills/spec/references/planning-review.md +0 -31
- package/skills/spec/references/preflight-and-routing.md +0 -46
- package/skills/spec/references/reporting.md +0 -21
- package/skills/start/SKILL.md +0 -84
- package/skills/start/references/branch-routing.md +0 -51
- package/skills/start/references/mode-semantics.md +0 -12
- package/skills/start/references/preflight.md +0 -13
- package/skills/start/references/reporting.md +0 -20
- package/skills/start/references/state-seeding.md +0 -44
- package/skills/start/references/workflow-handoff.md +0 -26
- package/skills/status/SKILL.md +0 -41
- package/skills/status/references/gather-contract.md +0 -30
- package/skills/status/references/health-rules.md +0 -27
- package/skills/status/references/output-contract.md +0 -25
- package/skills/status/references/preflight.md +0 -10
- package/skills/status/references/recovery-hints.md +0 -18
- package/skills/ui-sketch/SKILL.md +0 -39
- package/skills/ui-sketch/references/brief-intake.md +0 -10
- package/skills/ui-sketch/references/iteration-handoff.md +0 -5
- package/skills/ui-sketch/references/variant-contract.md +0 -15
- package/skills/verify/SKILL.md +0 -56
- package/skills/verify/references/evidence-workflow.md +0 -39
- package/skills/verify/references/output-contract.md +0 -23
- package/skills/verify/references/preflight.md +0 -11
- package/skills/verify/references/report-handoff.md +0 -35
- package/skills/verify/references/strict-mode.md +0 -12
- package/templates/CONTEXT.md.tmpl +0 -53
- package/templates/PROJECT.md.tmpl +0 -59
- package/templates/ROADMAP.md.tmpl +0 -50
- package/templates/STATE.md.tmpl +0 -49
- package/templates/config.json.tmpl +0 -51
- package/templates/design.md.tmpl +0 -83
- package/templates/progress.md.tmpl +0 -77
- package/templates/requirements.md.tmpl +0 -76
- package/templates/research.md.tmpl +0 -83
- package/templates/tasks.md.tmpl +0 -107
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
-
"$id": "https://curdx-flow.dev/schemas/spec-state.schema.json",
|
|
4
|
-
"title": "CurdX-Flow Spec State",
|
|
5
|
-
"description": "Schema for .flow/specs/<name>/.state.json — tracks phase progress across sessions",
|
|
6
|
-
"type": "object",
|
|
7
|
-
"required": ["version", "spec_name", "phase"],
|
|
8
|
-
"properties": {
|
|
9
|
-
"version": {
|
|
10
|
-
"type": "string",
|
|
11
|
-
"const": "1.0"
|
|
12
|
-
},
|
|
13
|
-
"spec_name": {
|
|
14
|
-
"type": "string",
|
|
15
|
-
"pattern": "^[a-z0-9][a-z0-9-]*$",
|
|
16
|
-
"description": "Kebab-case identifier matching the directory name"
|
|
17
|
-
},
|
|
18
|
-
"goal": {
|
|
19
|
-
"type": "string",
|
|
20
|
-
"description": "One-sentence goal from /curdx-flow:start"
|
|
21
|
-
},
|
|
22
|
-
"mode": {
|
|
23
|
-
"type": "string",
|
|
24
|
-
"enum": ["fast", "standard", "enterprise"],
|
|
25
|
-
"default": "standard"
|
|
26
|
-
},
|
|
27
|
-
"strategy": {
|
|
28
|
-
"type": "string",
|
|
29
|
-
"enum": ["auto", "subagent", "stop-hook", "wave", "linear"],
|
|
30
|
-
"default": "auto"
|
|
31
|
-
},
|
|
32
|
-
"quickMode": {
|
|
33
|
-
"type": "boolean",
|
|
34
|
-
"default": false,
|
|
35
|
-
"description": "When true, execution hooks block AskUserQuestion and agents must record assumptions instead of asking."
|
|
36
|
-
},
|
|
37
|
-
"phase": {
|
|
38
|
-
"type": "string",
|
|
39
|
-
"enum": [
|
|
40
|
-
"research",
|
|
41
|
-
"requirements",
|
|
42
|
-
"design",
|
|
43
|
-
"tasks",
|
|
44
|
-
"execute",
|
|
45
|
-
"verify",
|
|
46
|
-
"review",
|
|
47
|
-
"completed"
|
|
48
|
-
]
|
|
49
|
-
},
|
|
50
|
-
"phase_status": {
|
|
51
|
-
"type": "object",
|
|
52
|
-
"properties": {
|
|
53
|
-
"research": { "$ref": "#/definitions/phaseStatus" },
|
|
54
|
-
"requirements": { "$ref": "#/definitions/phaseStatus" },
|
|
55
|
-
"design": { "$ref": "#/definitions/phaseStatus" },
|
|
56
|
-
"tasks": { "$ref": "#/definitions/phaseStatus" },
|
|
57
|
-
"execute": { "$ref": "#/definitions/phaseStatus" },
|
|
58
|
-
"verify": { "$ref": "#/definitions/phaseStatus" },
|
|
59
|
-
"review": { "$ref": "#/definitions/phaseStatus" }
|
|
60
|
-
}
|
|
61
|
-
},
|
|
62
|
-
"execute_state": {
|
|
63
|
-
"type": "object",
|
|
64
|
-
"description": "Runtime state for Phase 2 (execution engine, post-Phase 1)",
|
|
65
|
-
"properties": {
|
|
66
|
-
"poc_complete": { "type": "boolean" },
|
|
67
|
-
"refactor_complete": { "type": "boolean" },
|
|
68
|
-
"test_complete": { "type": "boolean" },
|
|
69
|
-
"quality_gate_complete": { "type": "boolean" },
|
|
70
|
-
"task_index": { "type": "integer", "minimum": 0 },
|
|
71
|
-
"total_tasks": { "type": "integer", "minimum": 0 },
|
|
72
|
-
"task_iteration": { "type": "integer", "minimum": 1 },
|
|
73
|
-
"global_iteration": { "type": "integer", "minimum": 1 },
|
|
74
|
-
"failed_attempts": { "type": "integer", "minimum": 0 },
|
|
75
|
-
"recovery_mode": {
|
|
76
|
-
"type": "string",
|
|
77
|
-
"enum": ["manual", "fix-task"],
|
|
78
|
-
"default": "manual"
|
|
79
|
-
},
|
|
80
|
-
"max_fix_tasks_per_original": {
|
|
81
|
-
"type": "integer",
|
|
82
|
-
"minimum": 1,
|
|
83
|
-
"maximum": 5,
|
|
84
|
-
"default": 2
|
|
85
|
-
},
|
|
86
|
-
"fix_task_map": {
|
|
87
|
-
"type": "object",
|
|
88
|
-
"description": "Per-original-task recovery attempts created by fix-task mode.",
|
|
89
|
-
"additionalProperties": {
|
|
90
|
-
"type": "object",
|
|
91
|
-
"required": ["attempts", "fix_task_ids"],
|
|
92
|
-
"properties": {
|
|
93
|
-
"attempts": { "type": "integer", "minimum": 0 },
|
|
94
|
-
"fix_task_ids": {
|
|
95
|
-
"type": "array",
|
|
96
|
-
"items": { "type": "string" }
|
|
97
|
-
},
|
|
98
|
-
"last_error": { "type": "string" }
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
"native_task_map": {
|
|
103
|
-
"type": "object",
|
|
104
|
-
"description": "Best-effort mapping from CurDX task ids (for example 1.2 or 4.VF) to Claude native task ids for interactive task-list sync.",
|
|
105
|
-
"additionalProperties": {
|
|
106
|
-
"type": "string"
|
|
107
|
-
}
|
|
108
|
-
},
|
|
109
|
-
"native_sync_enabled": {
|
|
110
|
-
"type": "boolean",
|
|
111
|
-
"default": true,
|
|
112
|
-
"description": "When false, execution skips Claude native task-list sync and relies only on tasks.md plus state.json."
|
|
113
|
-
},
|
|
114
|
-
"native_sync_failure_count": {
|
|
115
|
-
"type": "integer",
|
|
116
|
-
"minimum": 0,
|
|
117
|
-
"default": 0,
|
|
118
|
-
"description": "Consecutive best-effort native task sync failures during the current execute run."
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
"decisions": {
|
|
123
|
-
"type": "array",
|
|
124
|
-
"description": "Decisions locked in this spec (mirror of what's in STATE.md)",
|
|
125
|
-
"items": {
|
|
126
|
-
"type": "object",
|
|
127
|
-
"required": ["id", "decision"],
|
|
128
|
-
"properties": {
|
|
129
|
-
"id": {
|
|
130
|
-
"type": "string",
|
|
131
|
-
"pattern": "^D-[0-9]{2,}$"
|
|
132
|
-
},
|
|
133
|
-
"decision": { "type": "string" },
|
|
134
|
-
"rationale": { "type": "string" },
|
|
135
|
-
"timestamp": {
|
|
136
|
-
"type": "string",
|
|
137
|
-
"format": "date-time"
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
},
|
|
142
|
-
"gates_enabled": {
|
|
143
|
-
"type": "array",
|
|
144
|
-
"items": { "type": "string" }
|
|
145
|
-
},
|
|
146
|
-
"agents_active": {
|
|
147
|
-
"type": "array",
|
|
148
|
-
"items": { "type": "string" }
|
|
149
|
-
},
|
|
150
|
-
"created": {
|
|
151
|
-
"type": "string",
|
|
152
|
-
"format": "date"
|
|
153
|
-
},
|
|
154
|
-
"updated": {
|
|
155
|
-
"type": "string",
|
|
156
|
-
"format": "date-time"
|
|
157
|
-
}
|
|
158
|
-
},
|
|
159
|
-
"definitions": {
|
|
160
|
-
"phaseStatus": {
|
|
161
|
-
"type": "string",
|
|
162
|
-
"enum": ["not_started", "in_progress", "completed", "skipped", "failed"]
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
}
|
package/settings.json
DELETED
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: brownfield-index
|
|
3
|
-
description: Use when the user needs structural understanding of an unfamiliar, inherited, legacy, or brownfield codebase.
|
|
4
|
-
when_to_use: Triggers on "legacy code", "brownfield", "unfamiliar", "new to this code", "new to this project", "just joined", "inherited codebase", "explore codebase", "understand structure", "index code", "map modules", "tour", "onboard", "what is this project".
|
|
5
|
-
argument-hint: "[path]"
|
|
6
|
-
context: fork
|
|
7
|
-
agent: flow-brownfield-analyst
|
|
8
|
-
paths:
|
|
9
|
-
- "package.json"
|
|
10
|
-
- "pnpm-workspace.yaml"
|
|
11
|
-
- "turbo.json"
|
|
12
|
-
- "nx.json"
|
|
13
|
-
- "pyproject.toml"
|
|
14
|
-
- "requirements*.txt"
|
|
15
|
-
- "go.mod"
|
|
16
|
-
- "Cargo.toml"
|
|
17
|
-
- "Gemfile"
|
|
18
|
-
- "composer.json"
|
|
19
|
-
- "pom.xml"
|
|
20
|
-
- "build.gradle*"
|
|
21
|
-
- "mix.exs"
|
|
22
|
-
- "deno.json*"
|
|
23
|
-
- "src/**"
|
|
24
|
-
- "lib/**"
|
|
25
|
-
- "app/**"
|
|
26
|
-
- "apps/**"
|
|
27
|
-
- "packages/**"
|
|
28
|
-
- "services/**"
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
# Brownfield Index
|
|
32
|
-
|
|
33
|
-
This is a fast structural mapping skill for inherited codebases. Keep the
|
|
34
|
-
entrypoint focused on when to index, what the analyst must produce, and where
|
|
35
|
-
to route the user next. Detailed rules live in:
|
|
36
|
-
|
|
37
|
-
- `references/applicability.md`
|
|
38
|
-
- `references/index-contract.md`
|
|
39
|
-
- `references/handoff.md`
|
|
40
|
-
|
|
41
|
-
## Preconditions
|
|
42
|
-
|
|
43
|
-
Use `references/applicability.md` to decide whether the repository actually
|
|
44
|
-
needs a brownfield index first.
|
|
45
|
-
|
|
46
|
-
## Index Contract
|
|
47
|
-
|
|
48
|
-
`flow-brownfield-analyst` writes the structural map defined in
|
|
49
|
-
`references/index-contract.md`.
|
|
50
|
-
|
|
51
|
-
## Handoff
|
|
52
|
-
|
|
53
|
-
Use `references/handoff.md` to route the user to the next relevant command.
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Brownfield Applicability — When to Index First
|
|
2
|
-
|
|
3
|
-
Use this skill when:
|
|
4
|
-
|
|
5
|
-
- the repository is unfamiliar, inherited, or legacy
|
|
6
|
-
- the user needs a quick structural map before feature work
|
|
7
|
-
|
|
8
|
-
Do not use it for a fresh greenfield repo that should start directly with:
|
|
9
|
-
|
|
10
|
-
```text
|
|
11
|
-
/curdx-flow:start <name> "<goal>"
|
|
12
|
-
```
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
# Brownfield Handoff — What to Do After Indexing
|
|
2
|
-
|
|
3
|
-
Route to the next concrete action:
|
|
4
|
-
|
|
5
|
-
- feature work -> `/curdx-flow:start <name> "<goal>"`
|
|
6
|
-
- targeted bug work -> `/curdx-flow:debug "<symptom>"`
|
|
7
|
-
|
|
8
|
-
For deep framework or library research, use Context7 directly.
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Brownfield Index Contract — What the Analyst Must Produce
|
|
2
|
-
|
|
3
|
-
`flow-brownfield-analyst` should:
|
|
4
|
-
|
|
5
|
-
1. detect the actual stack from manifests
|
|
6
|
-
2. scan structure, entry points, boundaries, and developer-loop commands
|
|
7
|
-
3. map API or CLI surfaces when they exist
|
|
8
|
-
4. write `.flow/codebase-index.md`
|
|
9
|
-
|
|
10
|
-
The index should be quick and decision-useful, not exhaustive.
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: browser-qa
|
|
3
|
-
description: Use when the user needs real-browser QA for a UI or frontend flow.
|
|
4
|
-
when_to_use: Triggers on "browser test", "test in browser", "UI test", "e2e test", "frontend test", "accessibility", "a11y", "WCAG", "lighthouse", "performance audit", "console error", "network request", "cross-browser", "responsive", "mobile test", "visual regression", "screenshot".
|
|
5
|
-
argument-hint: "\"<url or user flow>\""
|
|
6
|
-
context: fork
|
|
7
|
-
agent: flow-qa-engineer
|
|
8
|
-
paths:
|
|
9
|
-
- "**/*.{html,css,scss,sass,less,js,jsx,ts,tsx,vue,svelte,astro}"
|
|
10
|
-
- "app/**"
|
|
11
|
-
- "pages/**"
|
|
12
|
-
- "components/**"
|
|
13
|
-
- "public/**"
|
|
14
|
-
---
|
|
15
|
-
|
|
16
|
-
# Browser QA
|
|
17
|
-
|
|
18
|
-
This skill orchestrates real-browser validation, not a generic UI review. Keep
|
|
19
|
-
the entrypoint focused on prerequisites, QA artifact requirements, and the
|
|
20
|
-
handoff after findings. Detailed rules live in:
|
|
21
|
-
|
|
22
|
-
- `references/prerequisites.md`
|
|
23
|
-
- `references/qa-contract.md`
|
|
24
|
-
- `references/handoff.md`
|
|
25
|
-
|
|
26
|
-
## Preconditions
|
|
27
|
-
|
|
28
|
-
Use `references/prerequisites.md` to confirm browser MCP availability and the
|
|
29
|
-
URL or flow under test. Real browser execution in this skill depends on
|
|
30
|
-
`mcp__chrome_devtools__*`.
|
|
31
|
-
|
|
32
|
-
## QA Contract
|
|
33
|
-
|
|
34
|
-
`flow-qa-engineer` should execute the browser workflow in
|
|
35
|
-
`references/qa-contract.md`.
|
|
36
|
-
|
|
37
|
-
## Handoff
|
|
38
|
-
|
|
39
|
-
Post-QA routing and bug follow-up live in `references/handoff.md`.
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
# Browser QA Handoff — Where Findings Go Next
|
|
2
|
-
|
|
3
|
-
- if reproducible bugs are found -> `/curdx-flow:debug "<bug title>"`
|
|
4
|
-
- if accessibility issues are found -> report concrete WCAG-linked fixes
|
|
5
|
-
- if the flow is clean -> hand off `qa-report.md` as additional evidence, not a
|
|
6
|
-
replacement for `verify` or `review`
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
# Browser QA Prerequisites — Browser and URL Required
|
|
2
|
-
|
|
3
|
-
Before dispatching:
|
|
4
|
-
|
|
5
|
-
- confirm `mcp__chrome_devtools__*` is available
|
|
6
|
-
- confirm a URL under test exists
|
|
7
|
-
- confirm the flow and success criteria
|
|
8
|
-
|
|
9
|
-
If browser MCP is missing, fall back to a manual checklist rather than
|
|
10
|
-
pretending a real-browser run happened.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Browser QA Contract — What the QA Agent Must Do
|
|
2
|
-
|
|
3
|
-
`flow-qa-engineer` should:
|
|
4
|
-
|
|
5
|
-
1. open the target URL
|
|
6
|
-
2. drive the flow in a real browser
|
|
7
|
-
3. collect console, network, screenshot, and optional Lighthouse evidence
|
|
8
|
-
4. compare observed behavior to expected behavior
|
|
9
|
-
|
|
10
|
-
## Required Artifacts
|
|
11
|
-
|
|
12
|
-
- `.flow/specs/<active>/qa-report.md`
|
|
13
|
-
- `.flow/specs/<active>/qa-screenshots/`
|
|
14
|
-
|
|
15
|
-
The report should include:
|
|
16
|
-
|
|
17
|
-
- bugs by severity
|
|
18
|
-
- performance metrics
|
|
19
|
-
- accessibility findings
|
|
20
|
-
- console errors
|
package/skills/cancel/SKILL.md
DELETED
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: cancel
|
|
3
|
-
description: Cancel the active execution loop or delete a spec with explicit confirmation.
|
|
4
|
-
when_to_use: Use when the user wants to stop the current execution loop, abort a stuck run, or delete the active spec intentionally.
|
|
5
|
-
argument-hint: "[spec-name] [--delete-spec --yes]"
|
|
6
|
-
disable-model-invocation: true
|
|
7
|
-
allowed-tools: [Read, Bash]
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# CurdX-Flow Cancel
|
|
11
|
-
|
|
12
|
-
`cancel` is a recovery control, not an execution path. Keep this entrypoint
|
|
13
|
-
focused on target selection, destructive-mode gating, and the final recovery
|
|
14
|
-
message. Detailed cancel rules live in:
|
|
15
|
-
|
|
16
|
-
- `references/target-resolution.md`
|
|
17
|
-
- `references/state-recovery.md`
|
|
18
|
-
- `references/destructive-mode.md`
|
|
19
|
-
- `references/reporting.md`
|
|
20
|
-
|
|
21
|
-
## Target Resolution
|
|
22
|
-
|
|
23
|
-
Use `references/target-resolution.md` to resolve the target spec.
|
|
24
|
-
|
|
25
|
-
## Default Behavior
|
|
26
|
-
|
|
27
|
-
Default mode is non-destructive. Use `references/state-recovery.md` to:
|
|
28
|
-
|
|
29
|
-
- roll execution state back safely
|
|
30
|
-
- preserve spec artifacts and reports
|
|
31
|
-
- append a recovery note to `.progress.md`
|
|
32
|
-
- recommend the best resume command
|
|
33
|
-
|
|
34
|
-
## Destructive Behavior
|
|
35
|
-
|
|
36
|
-
Delete a spec only when both `--delete-spec` and `--yes` are present. The
|
|
37
|
-
deletion rules live in `references/destructive-mode.md`.
|
|
38
|
-
|
|
39
|
-
## Output
|
|
40
|
-
|
|
41
|
-
Use `references/reporting.md` for the default and destructive-mode summaries.
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
# Cancel Destructive Mode — Explicit and Narrow
|
|
2
|
-
|
|
3
|
-
Delete the spec directory only when both flags are present:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
/curdx-flow:cancel <spec-name> --delete-spec --yes
|
|
7
|
-
```
|
|
8
|
-
|
|
9
|
-
## Destructive Flow
|
|
10
|
-
|
|
11
|
-
1. print the target path and removal scope
|
|
12
|
-
2. delete `.flow/specs/<target>`
|
|
13
|
-
3. if it was active, clear `.flow/.active-spec`
|
|
14
|
-
4. leave all project-level `.flow` files untouched
|
|
15
|
-
|
|
16
|
-
If `--delete-spec` appears without `--yes`, stop and print the exact command
|
|
17
|
-
required.
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
# Cancel Reporting — Recovery vs Deletion Summary
|
|
2
|
-
|
|
3
|
-
Default mode:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
✓ Cancelled execution loop: <spec-name>
|
|
7
|
-
State: execute → cancelled, phase → tasks
|
|
8
|
-
Preserved: spec artifacts and progress
|
|
9
|
-
Resume: /curdx-flow:implement --strategy=subagent
|
|
10
|
-
```
|
|
11
|
-
|
|
12
|
-
Destructive mode:
|
|
13
|
-
|
|
14
|
-
```text
|
|
15
|
-
✓ Deleted spec: <spec-name>
|
|
16
|
-
Removed: .flow/specs/<spec-name>
|
|
17
|
-
Active spec cleared: yes|no
|
|
18
|
-
```
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
# Cancel State Recovery — Safe Rollback Without Deletion
|
|
2
|
-
|
|
3
|
-
Default mode preserves all human-readable artifacts.
|
|
4
|
-
|
|
5
|
-
## Recovery Steps
|
|
6
|
-
|
|
7
|
-
1. Read `.flow/specs/<target>/.state.json`
|
|
8
|
-
2. Set `phase` to `tasks`
|
|
9
|
-
3. Set `phase_status.execute` to `cancelled`
|
|
10
|
-
4. Remove `execute_state` and `strategy`
|
|
11
|
-
5. If the state file is missing, print `No execution state for <target>. Nothing to cancel.`
|
|
12
|
-
|
|
13
|
-
Use checkpoint-tracked `Edit` or `Write`, not ad-hoc Bash or Python writers.
|
|
14
|
-
|
|
15
|
-
## Progress Entry
|
|
16
|
-
|
|
17
|
-
Append to `.progress.md`:
|
|
18
|
-
|
|
19
|
-
```markdown
|
|
20
|
-
## Execution Cancelled YYYY-MM-DD
|
|
21
|
-
- Cancelled by: /curdx-flow:cancel
|
|
22
|
-
- Preserved: research.md, requirements.md, design.md, tasks.md, progress, reports
|
|
23
|
-
- Resume: /curdx-flow:implement --strategy=subagent or /curdx-flow:spec --phase=tasks --regenerate
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
## Safety
|
|
27
|
-
|
|
28
|
-
- never delete project-level `.flow` files
|
|
29
|
-
- if `.state.json` is corrupt, rename it to `.state.json.corrupt.<timestamp>`
|
|
30
|
-
- prefer `/curdx-flow:status` after cancel to confirm recovery state
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
# Cancel Target Resolution — Positional Spec Name or Active Spec
|
|
2
|
-
|
|
3
|
-
1. If `$ARGUMENTS` includes a positional spec name, target `.flow/specs/<name>`
|
|
4
|
-
2. Otherwise read `.flow/.active-spec`
|
|
5
|
-
3. If no target exists, print `No active spec to cancel` and stop
|
|
6
|
-
|
|
7
|
-
`cancel` uses a positional spec argument, not `--spec=<name>`.
|
package/skills/debug/SKILL.md
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: debug
|
|
3
|
-
description: Debug a bug or failing test with the root-cause workflow.
|
|
4
|
-
when_to_use: Use when the user reports a bug, failing test, regression, stack trace, flaky behavior, or wants root-cause analysis instead of trial-and-error edits.
|
|
5
|
-
argument-hint: "\"<bug description>\""
|
|
6
|
-
disable-model-invocation: true
|
|
7
|
-
context: fork
|
|
8
|
-
agent: flow-debugger
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# Systematic Debug
|
|
12
|
-
|
|
13
|
-
Use the 4-phase root-cause methodology in
|
|
14
|
-
`@${CLAUDE_PLUGIN_ROOT}/knowledge/systematic-debugging.md`. Keep this entrypoint
|
|
15
|
-
focused on bug intake, required context, and the hard-stop contract. Detailed
|
|
16
|
-
debugging rules live in:
|
|
17
|
-
|
|
18
|
-
- `references/intake.md`
|
|
19
|
-
- `references/context-gathering.md`
|
|
20
|
-
- `references/phase-workflow.md`
|
|
21
|
-
- `references/failure-guard.md`
|
|
22
|
-
- `references/reporting.md`
|
|
23
|
-
|
|
24
|
-
## Intake
|
|
25
|
-
|
|
26
|
-
Use `references/intake.md` to validate `$ARGUMENTS` and anchor the debugging
|
|
27
|
-
target before entering diagnosis.
|
|
28
|
-
|
|
29
|
-
## Pre-Diagnosis Context
|
|
30
|
-
|
|
31
|
-
Gather the baseline context from `references/context-gathering.md` before
|
|
32
|
-
entering Phase 1.
|
|
33
|
-
|
|
34
|
-
## Four Phases
|
|
35
|
-
|
|
36
|
-
Use `references/phase-workflow.md` as the 4-phase contract.
|
|
37
|
-
|
|
38
|
-
## Three-Failure Guard
|
|
39
|
-
|
|
40
|
-
Use `references/failure-guard.md` for the stop contract and required failure
|
|
41
|
-
report.
|
|
42
|
-
|
|
43
|
-
## Output to User
|
|
44
|
-
|
|
45
|
-
Use `references/reporting.md` for the compact completion summary.
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
# Debug Context Gathering — Baseline Before Diagnosis
|
|
2
|
-
|
|
3
|
-
Gather these before diagnosing:
|
|
4
|
-
|
|
5
|
-
- recent commits: `git log --oneline -20`
|
|
6
|
-
- uncommitted changes: `git status --short`, `git diff --stat`
|
|
7
|
-
- active spec, if any:
|
|
8
|
-
- read `.flow/.active-spec`
|
|
9
|
-
- if set, read `.flow/specs/<active>/.progress.md`
|
|
10
|
-
|
|
11
|
-
The point is to debug against observed repo state, not assumptions.
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
# Debug Failure Guard — Stop After Three Real Attempts
|
|
2
|
-
|
|
3
|
-
If Phase 4 has tried three genuinely different approaches and all failed, stop.
|
|
4
|
-
Do not try a fourth.
|
|
5
|
-
|
|
6
|
-
## Required Failure Report
|
|
7
|
-
|
|
8
|
-
```text
|
|
9
|
-
⚠ Systematic debug halted after 3 attempts
|
|
10
|
-
|
|
11
|
-
Attempts:
|
|
12
|
-
1. <approach 1>: <why it failed>
|
|
13
|
-
2. <approach 2>: <why it failed>
|
|
14
|
-
3. <approach 3>: <why it failed>
|
|
15
|
-
|
|
16
|
-
Root-issue hypothesis: architecture | dependency | data | unknown
|
|
17
|
-
Recommended next step: <user action>
|
|
18
|
-
```
|
|
19
|
-
|
|
20
|
-
## Forbidden
|
|
21
|
-
|
|
22
|
-
- prayer-driven retries
|
|
23
|
-
- "maybe it's..." as a Phase 1 conclusion
|
|
24
|
-
- green fix commits without a corresponding red test commit
|
|
25
|
-
- fix claims without BEFORE/AFTER reality evidence
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
# Debug Intake — Require a Concrete Bug Target
|
|
2
|
-
|
|
3
|
-
The debug target is `$ARGUMENTS`.
|
|
4
|
-
|
|
5
|
-
If `$ARGUMENTS` is empty, print:
|
|
6
|
-
|
|
7
|
-
```text
|
|
8
|
-
Usage: /curdx-flow:debug "<bug description>"
|
|
9
|
-
```
|
|
10
|
-
|
|
11
|
-
Do not begin diagnosis until the failing behavior, test, or regression target is
|
|
12
|
-
concrete enough to reproduce.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
# Debug Phases — Root Cause, Pattern, Hypothesis, Fix
|
|
2
|
-
|
|
3
|
-
## Phase 1 — Root-Cause Investigation
|
|
4
|
-
|
|
5
|
-
- read the error carefully
|
|
6
|
-
- build a minimal reproduction
|
|
7
|
-
- append `Reality Check (BEFORE)` to `.progress.md` when a spec is active
|
|
8
|
-
- trace recent changes and data flow
|
|
9
|
-
- exit only when the root cause fits in one sentence
|
|
10
|
-
|
|
11
|
-
## Phase 2 — Pattern Analysis
|
|
12
|
-
|
|
13
|
-
- find a working counter-example nearby
|
|
14
|
-
- identify the difference from the failing case
|
|
15
|
-
- classify the issue as `isolated` or `systemic`
|
|
16
|
-
|
|
17
|
-
If systemic, Phase 4 must sweep sibling cases.
|
|
18
|
-
|
|
19
|
-
## Phase 3 — Hypothesis and Test
|
|
20
|
-
|
|
21
|
-
- state one hypothesis
|
|
22
|
-
- write the smallest distinguishing test
|
|
23
|
-
- run it before committing
|
|
24
|
-
- if disproved, return to Phase 1 with the new signal
|
|
25
|
-
|
|
26
|
-
## Phase 4 — Implement the Fix
|
|
27
|
-
|
|
28
|
-
1. write a failing test and confirm it fails
|
|
29
|
-
2. fix the root cause and confirm the test now passes
|
|
30
|
-
3. run the full regression suite
|
|
31
|
-
4. re-run the original reproduction command and append `Reality Check (AFTER)`
|
|
32
|
-
5. if systemic, sweep sibling occurrences in the same stage
|
|
33
|
-
|
|
34
|
-
Do not mask the issue with defensive noise that leaves the root cause intact.
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
# Debug Reporting — Compact Root-Cause Closeout
|
|
2
|
-
|
|
3
|
-
End with:
|
|
4
|
-
|
|
5
|
-
```text
|
|
6
|
-
✓ Debug complete
|
|
7
|
-
|
|
8
|
-
Root cause: <Phase 1 — one sentence>
|
|
9
|
-
Pattern: <Phase 2 — isolated or systemic>
|
|
10
|
-
|
|
11
|
-
Fix commits:
|
|
12
|
-
- <sha>: test(<scope>): red - failing test
|
|
13
|
-
- <sha>: fix(<scope>): green - root-cause fix
|
|
14
|
-
- <sha>: fix(<scope>): sweep - N sibling cases (if systemic)
|
|
15
|
-
|
|
16
|
-
Verification: failing test now PASS ✓; full suite green ✓
|
|
17
|
-
```
|
|
18
|
-
|
|
19
|
-
Keep the closeout evidence-first. The root cause and verification outcome
|
|
20
|
-
matter more than narrative.
|
package/skills/epic/SKILL.md
DELETED
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: epic
|
|
3
|
-
description: Use when the user needs to decompose a large feature into smaller vertical-slice specs with dependencies.
|
|
4
|
-
when_to_use: Triggers on "epic", "big feature", "too big", "decompose", "break down", "break into", "split into", "multi-spec", "multiple features", "sub-features", "vertical slice", "parent feature", "large scope", "won't fit in one sprint", "needs splitting".
|
|
5
|
-
argument-hint: "\"<epic goal>\""
|
|
6
|
-
context: fork
|
|
7
|
-
agent: flow-triage-analyst
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# Epic Decomposition
|
|
11
|
-
|
|
12
|
-
This is a specialty orchestration skill for multi-spec planning. Keep the
|
|
13
|
-
entrypoint focused on when to use epic decomposition and what artifacts it must
|
|
14
|
-
leave behind. Detailed rules live in:
|
|
15
|
-
|
|
16
|
-
- `references/epic-intake.md`
|
|
17
|
-
- `references/epic-artifacts.md`
|
|
18
|
-
- `references/slice-handoff.md`
|
|
19
|
-
|
|
20
|
-
## Preconditions
|
|
21
|
-
|
|
22
|
-
- a `.flow/` project exists
|
|
23
|
-
- the feature scope is too large for a single spec
|
|
24
|
-
|
|
25
|
-
## Intake
|
|
26
|
-
|
|
27
|
-
Use `references/epic-intake.md` to confirm the epic boundary before dispatching
|
|
28
|
-
`flow-triage-analyst`.
|
|
29
|
-
|
|
30
|
-
## Artifact Contract
|
|
31
|
-
|
|
32
|
-
Use `references/epic-artifacts.md` for the required outputs:
|
|
33
|
-
|
|
34
|
-
- `.flow/_epics/<epic-name>/epic.md`
|
|
35
|
-
- one `.flow/specs/<epic-name>-<slice-id>/` skeleton per slice
|
|
36
|
-
|
|
37
|
-
## Handoff
|
|
38
|
-
|
|
39
|
-
User-facing next-step routing lives in `references/slice-handoff.md`.
|