sddx-workflow 0.8.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
@@ -135,6 +135,20 @@ var PROVIDERS = {
135
135
  { src: "codex-skills/review/SKILL.md", dest: ".agents/skills/review/SKILL.md" },
136
136
  { src: "codex-skills/finish/SKILL.md", dest: ".agents/skills/finish/SKILL.md" }
137
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
+ ]
138
152
  }
139
153
  };
140
154
  var ALL_PROVIDER_IDS = Object.keys(PROVIDERS);
@@ -169,6 +183,7 @@ async function initCommand(options) {
169
183
  }
170
184
  }
171
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"));
172
187
  const agentsExisted = import_fs2.default.existsSync(import_path2.default.join(cwd, "AGENTS.md"));
173
188
  for (const file of CORE_FILES) {
174
189
  copyTemplate(file.src, import_path2.default.join(cwd, file.dest), force);
@@ -178,7 +193,6 @@ async function initCommand(options) {
178
193
  copyTemplate(file.src, import_path2.default.join(cwd, file.dest), force);
179
194
  }
180
195
  }
181
- const providerNames = selectedProviders.map((id) => PROVIDERS[id].name).join(", ");
182
196
  console.log("");
183
197
  console.log(" Done. Next steps:");
184
198
  console.log("");
@@ -189,6 +203,13 @@ async function initCommand(options) {
189
203
  } else {
190
204
  console.log(" 2. CLAUDE.md already exists \u2014 add a reference to .sdd/ files manually");
191
205
  }
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
+ }
192
213
  if (selectedProviders.includes("codex")) {
193
214
  if (!agentsExisted) {
194
215
  console.log(" AGENTS.md was created \u2014 Codex will read it automatically");
@@ -196,8 +217,19 @@ async function initCommand(options) {
196
217
  console.log(" AGENTS.md already exists \u2014 add a reference to .sdd/ files manually");
197
218
  }
198
219
  }
199
- console.log(` 3. Slash commands are ready in: ${providerNames}. Type / to see them.
200
- `);
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("");
201
233
  }
202
234
 
203
235
  // src/commands/add.ts
@@ -257,7 +289,8 @@ var WORKFLOW_FILES = [
257
289
  { src: "copilot-prompts/spec-tasks.prompt.md", dest: ".github/prompts/spec-tasks.prompt.md" },
258
290
  { src: "copilot-prompts/review.prompt.md", dest: ".github/prompts/review.prompt.md" },
259
291
  { src: "copilot-prompts/finish.prompt.md", dest: ".github/prompts/finish.prompt.md" },
260
- { 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" }
261
294
  ];
262
295
  function updateCommand() {
263
296
  const cwd = process.cwd();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sddx-workflow",
3
- "version": "0.8.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,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`.