sddx-workflow 0.7.0 → 0.9.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/dist/cli.js CHANGED
@@ -107,6 +107,48 @@ var PROVIDERS = {
107
107
  { src: "copilot-prompts/finish.prompt.md", dest: ".github/prompts/finish.prompt.md" },
108
108
  { src: "copilot-instructions.md", dest: ".github/copilot-instructions.md" }
109
109
  ]
110
+ },
111
+ codex: {
112
+ name: "OpenAI Codex",
113
+ dirs: [
114
+ ".agents/skills/bootstrap",
115
+ ".agents/skills/ask",
116
+ ".agents/skills/assume",
117
+ ".agents/skills/bugfix",
118
+ ".agents/skills/refactor",
119
+ ".agents/skills/spec-new",
120
+ ".agents/skills/spec-plan",
121
+ ".agents/skills/spec-tasks",
122
+ ".agents/skills/review",
123
+ ".agents/skills/finish"
124
+ ],
125
+ files: [
126
+ { src: "AGENTS.md", dest: "AGENTS.md" },
127
+ { src: "codex-skills/bootstrap/SKILL.md", dest: ".agents/skills/bootstrap/SKILL.md" },
128
+ { src: "codex-skills/ask/SKILL.md", dest: ".agents/skills/ask/SKILL.md" },
129
+ { src: "codex-skills/assume/SKILL.md", dest: ".agents/skills/assume/SKILL.md" },
130
+ { src: "codex-skills/bugfix/SKILL.md", dest: ".agents/skills/bugfix/SKILL.md" },
131
+ { src: "codex-skills/refactor/SKILL.md", dest: ".agents/skills/refactor/SKILL.md" },
132
+ { src: "codex-skills/spec-new/SKILL.md", dest: ".agents/skills/spec-new/SKILL.md" },
133
+ { src: "codex-skills/spec-plan/SKILL.md", dest: ".agents/skills/spec-plan/SKILL.md" },
134
+ { src: "codex-skills/spec-tasks/SKILL.md", dest: ".agents/skills/spec-tasks/SKILL.md" },
135
+ { src: "codex-skills/review/SKILL.md", dest: ".agents/skills/review/SKILL.md" },
136
+ { src: "codex-skills/finish/SKILL.md", dest: ".agents/skills/finish/SKILL.md" }
137
+ ]
138
+ },
139
+ gemini: {
140
+ name: "Gemini CLI",
141
+ dirs: [],
142
+ files: [
143
+ { src: "gemini.md", dest: "GEMINI.md" }
144
+ ]
145
+ },
146
+ zed: {
147
+ name: "Zed",
148
+ dirs: [],
149
+ files: [
150
+ { src: "zed-rules/sddx-workflow.md", dest: ".rules" }
151
+ ]
110
152
  }
111
153
  };
112
154
  var ALL_PROVIDER_IDS = Object.keys(PROVIDERS);
@@ -141,6 +183,8 @@ async function initCommand(options) {
141
183
  }
142
184
  }
143
185
  const claudeExisted = import_fs2.default.existsSync(import_path2.default.join(cwd, "CLAUDE.md"));
186
+ const geminiExisted = import_fs2.default.existsSync(import_path2.default.join(cwd, "GEMINI.md"));
187
+ const agentsExisted = import_fs2.default.existsSync(import_path2.default.join(cwd, "AGENTS.md"));
144
188
  for (const file of CORE_FILES) {
145
189
  copyTemplate(file.src, import_path2.default.join(cwd, file.dest), force);
146
190
  }
@@ -149,7 +193,6 @@ async function initCommand(options) {
149
193
  copyTemplate(file.src, import_path2.default.join(cwd, file.dest), force);
150
194
  }
151
195
  }
152
- const providerNames = selectedProviders.map((id) => PROVIDERS[id].name).join(", ");
153
196
  console.log("");
154
197
  console.log(" Done. Next steps:");
155
198
  console.log("");
@@ -160,8 +203,33 @@ async function initCommand(options) {
160
203
  } else {
161
204
  console.log(" 2. CLAUDE.md already exists \u2014 add a reference to .sdd/ files manually");
162
205
  }
163
- console.log(` 3. Slash commands are ready in: ${providerNames}. Type / to see them.
164
- `);
206
+ if (selectedProviders.includes("gemini")) {
207
+ if (!geminiExisted) {
208
+ console.log(" GEMINI.md was created \u2014 Gemini CLI will read it automatically");
209
+ } else {
210
+ console.log(" GEMINI.md already exists \u2014 add a reference to .sdd/ files manually");
211
+ }
212
+ }
213
+ if (selectedProviders.includes("codex")) {
214
+ if (!agentsExisted) {
215
+ console.log(" AGENTS.md was created \u2014 Codex will read it automatically");
216
+ } else {
217
+ console.log(" AGENTS.md already exists \u2014 add a reference to .sdd/ files manually");
218
+ }
219
+ }
220
+ const commandProviders = ["claude-code", "copilot", "codex"];
221
+ const withCommands = selectedProviders.filter((id) => commandProviders.includes(id));
222
+ const rulesOnly = selectedProviders.filter((id) => !commandProviders.includes(id));
223
+ if (withCommands.length > 0) {
224
+ const names = withCommands.map((id) => PROVIDERS[id].name).join(", ");
225
+ console.log(` 3. Slash commands ready in: ${names}. Type / to see them.`);
226
+ }
227
+ if (rulesOnly.length > 0) {
228
+ const names = rulesOnly.map((id) => PROVIDERS[id].name).join(", ");
229
+ const step = withCommands.length === 0 ? "3." : " ";
230
+ console.log(` ${step} Context rules installed for: ${names}. The agent reads workflow.md on every task.`);
231
+ }
232
+ console.log("");
165
233
  }
166
234
 
167
235
  // src/commands/add.ts
@@ -221,7 +289,8 @@ var WORKFLOW_FILES = [
221
289
  { src: "copilot-prompts/spec-tasks.prompt.md", dest: ".github/prompts/spec-tasks.prompt.md" },
222
290
  { src: "copilot-prompts/review.prompt.md", dest: ".github/prompts/review.prompt.md" },
223
291
  { src: "copilot-prompts/finish.prompt.md", dest: ".github/prompts/finish.prompt.md" },
224
- { src: "copilot-instructions.md", dest: ".github/copilot-instructions.md" }
292
+ { src: "copilot-instructions.md", dest: ".github/copilot-instructions.md" },
293
+ { src: "zed-rules/sddx-workflow.md", dest: ".rules" }
225
294
  ];
226
295
  function updateCommand() {
227
296
  const cwd = process.cwd();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sddx-workflow",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Spec-Driven Development CLI — installs an SDD system in any project",
5
5
  "keywords": [
6
6
  "sdd",
@@ -0,0 +1,37 @@
1
+ # Codex — Project Context
2
+
3
+ This project uses the SDD Protocol. Read these files before starting any task:
4
+
5
+ 1. **[.sdd/workflow.md](.sdd/workflow.md)** — commands, ceremony levels, and stop points
6
+ 2. **[.sdd/project-overview.md](.sdd/project-overview.md)** — what this app is, its non-goals, domains, and definition of done
7
+ 3. **[.sdd/conventions.md](.sdd/conventions.md)** — project-specific conventions and patterns
8
+
9
+ ## Available Skills
10
+
11
+ Type `/skills` or `$skill-name` to invoke. Skills are defined in `.agents/skills/`.
12
+
13
+ | Intent | Skill |
14
+ |---|---|
15
+ | Initialize project context | `$bootstrap` (new) · `$bootstrap --scan` (existing) |
16
+ | Explore / research | `$ask` |
17
+ | Surface and validate assumptions | `$assume` |
18
+ | Fix a confirmed bug | `$bugfix` → `$finish` |
19
+ | Restructure without behavior change | `$refactor` → `$finish` |
20
+ | New feature | `$spec-new` → `$spec-plan` → `$spec-tasks` → `$review` → `$finish` |
21
+ | Stage + commit after any work | `$finish` |
22
+
23
+ ## Active Specs
24
+
25
+ <!-- List specs currently in progress — completed specs live in specs/_done/ and are not active context.
26
+ - specs/auth-refresh/ — in spec-tasks (task 3 of 5)
27
+ - specs/payments-v2/ — plan pending approval
28
+ -->
29
+
30
+ ## Domain Files
31
+
32
+ Relevant domain context lives in `.sdd/domains/`. Read the relevant domain file before working in that area.
33
+
34
+ <!-- List domains present in this project, e.g.:
35
+ - [.sdd/domains/auth.md](.sdd/domains/auth.md)
36
+ - [.sdd/domains/payments.md](.sdd/domains/payments.md)
37
+ -->
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: ask
3
+ description: Research and exploration only — no code changes. Use when understanding a system, gathering context, analyzing options, or investigating a bug without touching files.
4
+ ---
5
+
6
+ Execute the /ask command defined in .sdd/workflow.md.
7
+
8
+ Research and exploration only — no code changes. Read files, analyze, and summarize findings with explicit options or recommendations.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: assume
3
+ description: Surface all assumptions before acting on a task. Use before spec-plan, before complex diagnosis, or any time an unstated guess is being made about requirements or codebase state.
4
+ ---
5
+
6
+ Execute the /assume command defined in .sdd/workflow.md.
7
+
8
+ List every assumption being made about the task, codebase state, and technical decisions.
9
+ For each: what you're assuming, why, and what changes if it's wrong.
10
+ Stop and wait for confirmation before proceeding.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: bootstrap
3
+ description: Populate .sdd/project-overview.md and .sdd/conventions.md with real project context. Use when initializing a new project or onboarding to an existing codebase.
4
+ ---
5
+
6
+ Execute the /bootstrap command defined in .sdd/workflow.md.
7
+
8
+ Populate .sdd/project-overview.md and .sdd/conventions.md with real project context.
9
+ If the request contains --scan, analyze the existing codebase first before asking questions.
10
+ Present the full draft for approval before writing any file.
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: bugfix
3
+ description: Lightweight flow for confirmed bugs. Use when fixing a known bug that fits within ~1 file or ~50 lines. Follows Reproduce → Diagnose → Fix → Validate stages.
4
+ ---
5
+
6
+ Execute the /bugfix command defined in .sdd/workflow.md.
7
+
8
+ Follow the stages in order: Reproduce → Diagnose → Fix → Validate.
9
+ Do not skip stages. Stop after Reproduce if the bug cannot be confirmed.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: finish
3
+ description: Stage changed files and produce a conventional commit message for approval. Use after completing any unit of work — bug fix, refactor, or feature tasks.
4
+ ---
5
+
6
+ Execute the /finish command defined in .sdd/workflow.md.
7
+
8
+ Run git status and git diff. Stage all relevant files. Determine the commit type.
9
+ Draft a conventional commit message following the format in workflow.md.
10
+ Stop and present the staged files and commit message for approval before committing.
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: refactor
3
+ description: Restructure code without changing external behavior. Use when cleaning up internals while keeping all observable behavior identical. Requires a green test baseline first.
4
+ ---
5
+
6
+ Execute the /refactor command defined in .sdd/workflow.md.
7
+
8
+ Restructure code without changing external behavior. Establish a green test baseline first.
9
+ Every observable behavior before the refactor must be identical after it.
@@ -0,0 +1,8 @@
1
+ ---
2
+ name: review
3
+ description: Final audit before closing a spec or merging. Use after all spec tasks are complete to verify goals are met, tests pass, and no scope creep was introduced.
4
+ ---
5
+
6
+ Execute the /review command defined in .sdd/workflow.md.
7
+
8
+ Audit the spec before closing. Verify all goals (G1, G2…) are satisfied, every acceptance scenario has a passing test, no out-of-scope changes were introduced, and the implementation is the simplest that meets requirements.
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: spec-new
3
+ description: Scaffold a spec folder for a new feature or significant change. Use at the start of any feature work to create the requirements, plan, and tasks files.
4
+ ---
5
+
6
+ Execute the /spec-new command defined in .sdd/workflow.md.
7
+
8
+ Create a specs/<name>/ folder by copying the three template files from specs/_template/.
9
+ Replace <Feature Name> in each file title with the actual feature name.
@@ -0,0 +1,9 @@
1
+ ---
2
+ name: spec-plan
3
+ description: Generate a technical plan from an approved requirements doc. Use after filling out 1-requirements.md. Stops for explicit approval before any code is written.
4
+ ---
5
+
6
+ Execute the /spec-plan command defined in .sdd/workflow.md.
7
+
8
+ Read specs/<name>/1-requirements.md, run /assume, then draft the technical plan in specs/<name>/2-plan.md.
9
+ Stop for explicit approval before writing any implementation code.
@@ -0,0 +1,10 @@
1
+ ---
2
+ name: spec-tasks
3
+ description: Execute an approved technical plan as atomic tasks, one at a time. Use after spec-plan is approved. Follows TDD: write test first (red), implement until green, run full suite.
4
+ ---
5
+
6
+ Execute the /spec-tasks command defined in .sdd/workflow.md.
7
+
8
+ Read the approved specs/<name>/2-plan.md and execute tasks one at a time.
9
+ Write the test first (red), implement until green, run the full suite, then move to the next task.
10
+ Stop if tests fail or if a task reveals new scope.
@@ -0,0 +1,38 @@
1
+ # Gemini — Project Context
2
+
3
+ This project uses the SDD Protocol. Read these files before starting any task:
4
+
5
+ 1. **[.sdd/workflow.md](.sdd/workflow.md)** — commands, ceremony levels, and stop points
6
+ 2. **[.sdd/project-overview.md](.sdd/project-overview.md)** — what this app is, its non-goals, domains, and definition of done
7
+ 3. **[.sdd/conventions.md](.sdd/conventions.md)** — project-specific conventions and patterns
8
+
9
+ ## Quick Reference
10
+
11
+ | Intent | Workflow |
12
+ |---|---|
13
+ | Initialize project context | `bootstrap` (new) · `bootstrap --scan` (existing) |
14
+ | Explore / research | `ask` |
15
+ | Surface and validate assumptions | `assume` |
16
+ | Fix a confirmed bug | `bugfix` → `finish` |
17
+ | Restructure without behavior change | `refactor` → `finish` |
18
+ | New feature | `spec-new` → `spec-plan` → `spec-tasks` → `review` → `finish` |
19
+ | Stage + commit after any work | `finish` |
20
+
21
+ Invoke any workflow by name (e.g., "run bootstrap", "start spec-new for auth-refresh").
22
+ Full definitions are in `.sdd/workflow.md`.
23
+
24
+ ## Active Specs
25
+
26
+ <!-- List specs currently in progress — completed specs live in specs/_done/ and are not active context.
27
+ - specs/auth-refresh/ — in spec-tasks (task 3 of 5)
28
+ - specs/payments-v2/ — plan pending approval
29
+ -->
30
+
31
+ ## Domain Files
32
+
33
+ Relevant domain context lives in `.sdd/domains/`. Read the relevant domain file before working in that area.
34
+
35
+ <!-- List domains present in this project, e.g.:
36
+ - [.sdd/domains/auth.md](.sdd/domains/auth.md)
37
+ - [.sdd/domains/payments.md](.sdd/domains/payments.md)
38
+ -->
@@ -0,0 +1,23 @@
1
+ This project uses the SDD Protocol. Before starting any task, read:
2
+
3
+ 1. `.sdd/workflow.md` — all commands, ceremony levels, and stop points
4
+ 2. `.sdd/project-overview.md` — what this app is, its non-goals, and domains
5
+ 3. `.sdd/conventions.md` — project-specific conventions and patterns
6
+
7
+ ## Workflows
8
+
9
+ | Workflow | Purpose |
10
+ |---|---|
11
+ | `bootstrap` | Populate project context — interview or codebase scan |
12
+ | `ask` | Research only — no code changes |
13
+ | `assume` | List assumptions and stop for confirmation |
14
+ | `bugfix` | Reproduce → diagnose → fix → validate |
15
+ | `refactor` | Restructure without behavior change |
16
+ | `spec-new` | Scaffold a spec folder |
17
+ | `spec-plan` | Generate technical plan — stop for approval |
18
+ | `spec-tasks` | Execute plan one task at a time, TDD-first |
19
+ | `review` | Final audit before closing |
20
+ | `finish` | Stage files and generate commit message |
21
+
22
+ Invoke by name (e.g., "run bootstrap", "start spec-new for auth-refresh").
23
+ Full definitions are in `.sdd/workflow.md`.