sdlc-workflow 1.0.0 → 1.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.
Files changed (3) hide show
  1. package/README.md +40 -12
  2. package/bin/cli.js +158 -32
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,13 +1,17 @@
1
1
  # sdlc-workflow
2
2
 
3
- Scaffold SDLC workflow docs and templates into your project. Works with **Cursor** and **Claude**.
3
+ Scaffold SDLC workflow docs and templates into your project. Works with **Cursor**, **Claude**, **Antigravity**, and **Codex**.
4
4
 
5
5
  ## Flow
6
6
 
7
7
  ```
8
- User Request → PO → Business BA → Architect → Technical BA → Dev Teams → QE → Deploy
8
+ User Request → PO → Business BA → Architect → Technical BA → QE (docs)Dev → QE (testing) → Deploy
9
9
  ```
10
10
 
11
+ - **QE (docs)**: Test plan, test cases — before Dev implements
12
+ - **Dev**: Tech Lead (review, merge) + Senior Dev (implement, Unit Test ≥90%)
13
+ - **QE (testing)**: After Dev unit tests — automation + manual, sign-off
14
+
11
15
  ## Usage
12
16
 
13
17
  In your project directory:
@@ -18,10 +22,17 @@ npx sdlc-workflow init
18
22
 
19
23
  This creates:
20
24
 
25
+ **Project:**
21
26
  - `docs/sdlc/` — SDLC docs, templates, and phase folders
22
- - `.cursor/rules/sdlc-workflow.mdc` — Cursor rule for this project
23
- - `~/.cursor/skills/sdlc-workflow/` — Cursor skill (global, applies to all projects)
24
- - `.claude/CLAUDE.md` — Claude Code instructions (project-level)
27
+ - `AGENTS.md` — Antigravity, Codex (universal project guidance)
28
+ - `.agents/skills/sdlc-workflow/` — Codex repo skill
29
+ - `.cursor/rules/sdlc-workflow.mdc` — Cursor rule
30
+ - `.claude/CLAUDE.md` — Claude Code instructions
31
+
32
+ **Global (user home):**
33
+ - `~/.cursor/skills/sdlc-workflow/` — Cursor skill
34
+ - `~/.codex/AGENTS.md` — Codex global instructions
35
+ - `~/.agents/skills/sdlc-workflow/` — Codex global skill
25
36
 
26
37
  ## Generated Structure
27
38
 
@@ -43,22 +54,39 @@ docs/sdlc/
43
54
  ├── architecture/ # Architect
44
55
  │ ├── adr.template.md
45
56
  │ └── README.md
46
- └── qe/ # QE
47
- ├── test-case.template.md
48
- └── README.md
57
+ ├── qe/ # QE (docs + testing)
58
+ ├── test-case.template.md
59
+ └── README.md
60
+ └── dev/ # Dev team (per role)
61
+ ├── tech-lead/ # Tech Lead 15+ yrs: tech stack, review & merge
62
+ │ └── README.md
63
+ └── senior-developer/ # Senior Dev 10+ yrs: implement, Unit Test ≥90%
64
+ └── README.md
49
65
 
50
66
  .cursor/rules/
51
67
  └── sdlc-workflow.mdc # Cursor rule
68
+
69
+ AGENTS.md # Antigravity, Codex (universal)
70
+ .agents/skills/sdlc-workflow/ # Codex repo skill
52
71
  ```
53
72
 
73
+ ## Use with Cursor
74
+
75
+ The rule `.cursor/rules/sdlc-workflow.mdc` activates when working with `docs/sdlc/**` or `*.md`. Global skill: `~/.cursor/skills/sdlc-workflow/`.
76
+
54
77
  ## Use with Claude
55
78
 
56
- - **Claude Code** (project): `.claude/CLAUDE.md` is created by init — Claude loads it automatically when you open this project.
57
- - **Claude.ai** (web): Copy `docs/sdlc/SDLC-WORKFLOW.md` into Custom Instructions or @ mention it in chat.
79
+ - **Claude Code** (project): `.claude/CLAUDE.md` — Claude loads it when you open this project.
80
+ - **Claude.ai** (web): Copy `docs/sdlc/SDLC-WORKFLOW.md` into Custom Instructions or @ mention it.
58
81
 
59
- ## Use with Cursor
82
+ ## Use with Antigravity
83
+
84
+ `AGENTS.md` at project root — Antigravity reads it (priority: AGENTS.md → GEMINI.md). Universal format, works across agentic IDEs.
85
+
86
+ ## Use with Codex
60
87
 
61
- The rule `.cursor/rules/sdlc-workflow.mdc` activates when working with `docs/sdlc/**` or `*.md`.
88
+ - **Project**: `AGENTS.md` + `.agents/skills/sdlc-workflow/`
89
+ - **Global**: `~/.codex/AGENTS.md` + `~/.agents/skills/sdlc-workflow/`
62
90
 
63
91
  ## Release
64
92
 
package/bin/cli.js CHANGED
@@ -18,7 +18,7 @@ async function main() {
18
18
  if (command !== "init") {
19
19
  console.log("Usage: npx sdlc-workflow init");
20
20
  console.log(" Scaffolds SDLC docs and templates into current project.");
21
- console.log(" Installs Cursor skill (global) and Claude instructions (project).");
21
+ console.log(" Installs for: Cursor, Claude, Antigravity, Codex.");
22
22
  process.exit(1);
23
23
  }
24
24
 
@@ -29,9 +29,12 @@ async function main() {
29
29
  await scaffold(cwd);
30
30
  await installCursorSkill(home);
31
31
  await installClaudeSkill(cwd);
32
+ await installAgentsMd(cwd);
33
+ await installCodexSkill(home);
32
34
  console.log("\nDone.");
33
- console.log(" - Project: docs/sdlc/, .cursor/rules/, .claude/");
34
- console.log(" - Cursor skill: ~/.cursor/skills/sdlc-workflow/ (global)");
35
+ console.log(" - Project: docs/sdlc/, .cursor/rules/, .claude/, AGENTS.md, .agents/skills/");
36
+ console.log(" - Cursor: ~/.cursor/skills/sdlc-workflow/");
37
+ console.log(" - Codex: ~/.codex/AGENTS.md, ~/.agents/skills/sdlc-workflow/");
35
38
  } catch (err) {
36
39
  console.error("Error:", err.message);
37
40
  process.exit(1);
@@ -69,6 +72,57 @@ async function installClaudeSkill(cwd) {
69
72
  console.log(" + .claude/CLAUDE.md (Claude instructions)");
70
73
  }
71
74
 
75
+ async function installAgentsMd(cwd) {
76
+ const agentsPath = join(cwd, "AGENTS.md");
77
+ const content = AGENTS_MD_CONTENT;
78
+ if (existsSync(agentsPath)) {
79
+ const existing = await readFile(agentsPath, "utf8");
80
+ if (existing.includes("## SDLC Workflow")) {
81
+ console.log(" + AGENTS.md (SDLC section already present)");
82
+ return;
83
+ }
84
+ await writeFile(agentsPath, existing.trimEnd() + "\n\n" + content, "utf8");
85
+ } else {
86
+ await writeFile(agentsPath, content, "utf8");
87
+ }
88
+ console.log(" + AGENTS.md (Antigravity, Codex project)");
89
+
90
+ const codexSkillDir = join(cwd, ".agents", "skills", "sdlc-workflow");
91
+ await mkdir(codexSkillDir, { recursive: true });
92
+ await writeFile(join(codexSkillDir, "SKILL.md"), CURSOR_SKILL_MD, "utf8");
93
+ await writeFile(join(codexSkillDir, "reference.md"), CURSOR_REFERENCE_MD, "utf8");
94
+ console.log(" + .agents/skills/sdlc-workflow/ (Codex repo skill)");
95
+ }
96
+
97
+ async function installCodexSkill(home) {
98
+ const codexDir = join(home, ".codex");
99
+ const codexAgentsPath = join(codexDir, "AGENTS.md");
100
+ const sdlcContent = CLAUDE_SDLC_CONTENT;
101
+ await mkdir(codexDir, { recursive: true });
102
+ if (existsSync(codexAgentsPath)) {
103
+ const existing = await readFile(codexAgentsPath, "utf8");
104
+ if (existing.includes("## SDLC Workflow")) {
105
+ console.log(" + ~/.codex/AGENTS.md (SDLC section already present)");
106
+ } else {
107
+ await writeFile(
108
+ codexAgentsPath,
109
+ existing.trimEnd() + "\n\n" + sdlcContent,
110
+ "utf8"
111
+ );
112
+ console.log(" + ~/.codex/AGENTS.md (Codex global)");
113
+ }
114
+ } else {
115
+ await writeFile(codexAgentsPath, sdlcContent, "utf8");
116
+ console.log(" + ~/.codex/AGENTS.md (Codex global)");
117
+ }
118
+
119
+ const agentsSkillDir = join(home, ".agents", "skills", "sdlc-workflow");
120
+ await mkdir(agentsSkillDir, { recursive: true });
121
+ await writeFile(join(agentsSkillDir, "SKILL.md"), CURSOR_SKILL_MD, "utf8");
122
+ await writeFile(join(agentsSkillDir, "reference.md"), CURSOR_REFERENCE_MD, "utf8");
123
+ console.log(" + ~/.agents/skills/sdlc-workflow/ (Codex global skill)");
124
+ }
125
+
72
126
  async function scaffold(cwd) {
73
127
  const templates = join(TEMPLATES_DIR, "project");
74
128
  if (!existsSync(templates)) {
@@ -95,6 +149,8 @@ async function generateFromInline(cwd) {
95
149
  join(base, "ba", "technical"),
96
150
  join(base, "architecture"),
97
151
  join(base, "qe"),
152
+ join(base, "dev", "tech-lead"),
153
+ join(base, "dev", "senior-developer"),
98
154
  ];
99
155
 
100
156
  for (const d of dirs) {
@@ -115,6 +171,8 @@ async function generateFromInline(cwd) {
115
171
  ["architecture/README.md", ARCH_README],
116
172
  ["qe/test-case.template.md", QE_TC_TEMPLATE],
117
173
  ["qe/README.md", QE_README],
174
+ ["dev/tech-lead/README.md", DEV_TECH_LEAD_README],
175
+ ["dev/senior-developer/README.md", DEV_SENIOR_README],
118
176
  ];
119
177
 
120
178
  for (const [rel, content] of files) {
@@ -125,21 +183,21 @@ async function generateFromInline(cwd) {
125
183
  }
126
184
 
127
185
  const CURSOR_RULE_CONTENT = `---
128
- description: SDLC multi-role workflow (PO → BA → Architect → Tech BA → Dev → QE)
186
+ description: SDLC multi-role workflow (PO → BA → Architect → Tech BA → QE docs → Dev → QE testing)
129
187
  alwaysApply: false
130
188
  globs: docs/sdlc/**/*, **/*.md
131
189
  ---
132
190
 
133
191
  # SDLC Workflow
134
192
 
135
- When working on requirements or docs, follow the SDLC phases:
136
-
137
193
  1. **PO** — PRD, user stories → docs/sdlc/po/
138
194
  2. **Business BA** — FRS, process flows → docs/sdlc/ba/business/
139
195
  3. **Architect** — ADRs, diagrams → docs/sdlc/architecture/
140
196
  4. **Technical BA** — API specs, team breakdown → docs/sdlc/ba/technical/
141
- 5. **Dev Teams** — Implementation
142
- 6. **QE** — Test plan, test cases → docs/sdlc/qe/
197
+ 5. **QE (docs)** — Test plan, test cases → docs/sdlc/qe/
198
+ 6. **Dev** — Tech Lead (review, merge) + Senior Dev (implement, ≥90% unit test) → docs/sdlc/dev/{role}/
199
+ 7. **QE (testing)** — Automation + manual tests, sign-off
200
+ 8. **Deploy** — Release, monitor
143
201
 
144
202
  Full workflow: docs/sdlc/SDLC-WORKFLOW.md
145
203
  `;
@@ -156,7 +214,7 @@ Sequential workflow for approaching user requirements. Each phase produces docs/
156
214
  ## Flow Overview
157
215
 
158
216
  \`\`\`
159
- User Request → PO → Business BA → Architect → Technical BA → Dev Teams → QE → Deploy
217
+ User Request → PO → Business BA → Architect → Technical BA → QE (docs)Dev → QE (testing) → Deploy
160
218
  \`\`\`
161
219
 
162
220
  **Determine current phase** before acting. If unsure, ask: "Which phase are we in?"
@@ -190,17 +248,30 @@ User Request → PO → Business BA → Architect → Technical BA → Dev Teams
190
248
 
191
249
  **Role**: Translate business + architecture into implementable specs.
192
250
  **Deliverables**: API specs, DB schema, team breakdown, acceptance criteria per ticket.
193
- **Output**: \`docs/sdlc/ba/technical/\` — **Handoff to Dev Teams.**
251
+ **Output**: \`docs/sdlc/ba/technical/\` — **Handoff to QE + Dev.**
252
+
253
+ ## Phase 5a: QE (Docs phase)
194
254
 
195
- ## Phase 5: Dev Teams
255
+ **Role**: Create test plan, test cases before Dev implements.
256
+ **Deliverables**: Test plan, test cases.
257
+ **Output**: \`docs/sdlc/qe/\` — Ready for Dev to start implementation.
196
258
 
197
- **Role**: Implement. Backend | Frontend | Mobile | Data / DevOps.
198
- **Output**: Code + tests. **Handoff to QE.**
259
+ ## Phase 5b: Dev Teams
199
260
 
200
- ## Phase 6: QE (Quality Engineering)
261
+ **Trigger**: After QE docs complete. **Start implementation.**
201
262
 
202
- **Role**: Test against acceptance criteria; ensure quality.
203
- **Deliverables**: Test plan, test cases, sign-off.
263
+ **Roles**:
264
+ - **Tech Lead (15+ yrs)**: Decide tech stack, libraries; review & merge code. Docs: \`docs/sdlc/dev/tech-lead/\`
265
+ - **Senior Developer (10+ yrs)**: Implement features per spec. Docs: \`docs/sdlc/dev/senior-developer/\`
266
+
267
+ **Requirements**: Unit Test coverage **≥ 90%**.
268
+
269
+ **Output**: Code + unit tests. **Handoff to QE (testing).**
270
+
271
+ ## Phase 6: QE (Testing phase)
272
+
273
+ **Trigger**: After Dev completes unit tests.
274
+ **Role**: Run tests, include **automation tests**, sign-off.
204
275
  **Output**: Test report. **Handoff to Deploy.**
205
276
 
206
277
  ## Phase 7: Deploy & Maintenance
@@ -216,8 +287,9 @@ User Request → PO → Business BA → Architect → Technical BA → Dev Teams
216
287
  | 2 | Business BA | FRS, process flows |
217
288
  | 3 | Architect | ADRs, system diagrams |
218
289
  | 4 | Technical BA | API specs, tech breakdown |
219
- | 5 | Dev Teams | Code, tests |
220
- | 6 | QE | Test plan, sign-off |
290
+ | 5a | QE (docs) | Test plan, test cases |
291
+ | 5b | Dev | Code, unit tests (≥90%) |
292
+ | 6 | QE (testing) | Automation + manual, sign-off |
221
293
  | 7 | Ops | Deploy, monitor |
222
294
 
223
295
  See reference.md for templates.
@@ -240,9 +312,13 @@ POST /api/v1/[resource] — Purpose, Request, Response, Contract
240
312
 
241
313
  ## QE: Test Case
242
314
  TC-001: [Scenario] — Precondition, Steps, Expected, Links to AC
315
+
316
+ ## Dev Team
317
+ - Tech Lead (15+ yrs): tech stack, libraries, review & merge → docs/sdlc/dev/tech-lead/
318
+ - Senior Dev (10+ yrs): implement, Unit Test ≥90% → docs/sdlc/dev/senior-developer/
243
319
  `;
244
320
 
245
- const CLAUDE_SDLC_CONTENT = `## SDLC Workflow
321
+ const AGENTS_MD_CONTENT = `## SDLC Workflow
246
322
 
247
323
  When working on requirements, features, or handoffs, follow these phases:
248
324
 
@@ -250,11 +326,27 @@ When working on requirements, features, or handoffs, follow these phases:
250
326
  2. **Business BA** — FRS, process flows → docs/sdlc/ba/business/
251
327
  3. **Architect** — ADRs, diagrams → docs/sdlc/architecture/
252
328
  4. **Technical BA** — API specs, team breakdown → docs/sdlc/ba/technical/
253
- 5. **Dev Teams** — Implementation (Backend, Frontend, Mobile)
254
- 6. **QE** — Test plan, test cases → docs/sdlc/qe/
255
- 7. **Deploy** — Release, monitor
329
+ 5. **QE (docs)** — Test plan, test cases → docs/sdlc/qe/
330
+ 6. **Dev** — After QE docs: Tech Lead (15+ yrs, tech stack, review & merge) + Senior Dev (10+ yrs, implement, Unit Test ≥90%) → docs/sdlc/dev/{role}/
331
+ 7. **QE (testing)** — After Dev unit tests: automation + manual, sign-off
332
+ 8. **Deploy** — Release, monitor
256
333
 
257
- Flow: User Request PO → Business BA → Architect Technical BA → Dev Teams → QE → Deploy
334
+ Flow: ...Technical BA → QE docs → Dev → QE testing → Deploy
335
+ Ask "Which phase are we in?" if unclear.
336
+ `;
337
+
338
+ const CLAUDE_SDLC_CONTENT = `## SDLC Workflow
339
+
340
+ 1. **PO** — PRD, user stories → docs/sdlc/po/
341
+ 2. **Business BA** — FRS, process flows → docs/sdlc/ba/business/
342
+ 3. **Architect** — ADRs, diagrams → docs/sdlc/architecture/
343
+ 4. **Technical BA** — API specs, team breakdown → docs/sdlc/ba/technical/
344
+ 5. **QE (docs)** — Test plan, test cases → docs/sdlc/qe/
345
+ 6. **Dev** — After QE docs: Tech Lead (15+ yrs, tech stack, review & merge) + Senior Dev (10+ yrs, implement, Unit Test ≥90%) → docs/sdlc/dev/{role}/
346
+ 7. **QE (testing)** — After Dev unit tests: automation + manual, sign-off
347
+ 8. **Deploy** — Release, monitor
348
+
349
+ Flow: ... → Technical BA → QE docs → Dev → QE testing → Deploy
258
350
  Ask "Which phase are we in?" if unclear.
259
351
  `;
260
352
 
@@ -266,7 +358,7 @@ For Cursor, see .cursor/rules/sdlc-workflow.mdc
266
358
  ## Flow
267
359
 
268
360
  \`\`\`
269
- User Request → PO → Business BA → Architect → Technical BA → Dev Teams → QE → Deploy
361
+ User Request → PO → Business BA → Architect → Technical BA → QE (docs)Dev → QE (testing) → Deploy
270
362
  \`\`\`
271
363
 
272
364
  ## Phase Checklist
@@ -278,8 +370,9 @@ User Request → PO → Business BA → Architect → Technical BA → Dev Teams
278
370
  | 2 | Business BA | FRS, process flows |
279
371
  | 3 | Architect | ADRs, system diagrams |
280
372
  | 4 | Technical BA | API specs, tech breakdown |
281
- | 5 | Dev Teams | Code, tests |
282
- | 6 | QE | Test plan, sign-off |
373
+ | 5a | QE (docs) | Test plan, test cases |
374
+ | 5b | Dev | Code, unit tests (≥90%) |
375
+ | 6 | QE (testing) | Automation + manual, sign-off |
283
376
  | 7 | Ops | Deploy, monitor |
284
377
 
285
378
  ## Phase Details
@@ -300,12 +393,22 @@ User Request → PO → Business BA → Architect → Technical BA → Dev Teams
300
393
  - API specs, DB schema, team breakdown
301
394
  - Output: \`docs/sdlc/ba/technical/\`
302
395
 
303
- ### Phase 5: Dev Teams
304
- - Backend, Frontend, Mobileimplement per spec
305
-
306
- ### Phase 6: QE
307
- - Test plan, test cases, sign-off
396
+ ### Phase 5a: QE (Docs)
397
+ - Test plan, test cases **before Dev implements**
308
398
  - Output: \`docs/sdlc/qe/\`
399
+ - **Then**: Dev team starts implementation
400
+
401
+ ### Phase 5b: Dev Teams
402
+ - **Tech Lead (15+ yrs)**: Tech stack, libraries; review & merge. Output: \`docs/sdlc/dev/tech-lead/\`
403
+ - **Senior Developer (10+ yrs)**: Implement features. Output: \`docs/sdlc/dev/senior-developer/\`
404
+ - **Requirement**: Unit Test coverage **≥ 90%**
405
+ - **Then**: QE starts testing phase
406
+
407
+ ### Phase 6: QE (Testing)
408
+ - After Dev unit tests complete: automation tests + manual tests, sign-off
409
+
410
+ ### Phase 7: Deploy
411
+ - Release, monitor
309
412
 
310
413
  See [reference.md](./reference.md) for templates.
311
414
  `;
@@ -433,8 +536,31 @@ const QE_TC_TEMPLATE = `## TC-001: [Scenario]
433
536
 
434
537
  const QE_README = `# QE (Quality Engineering)
435
538
 
436
- Test plan, test cases, sign-off checklist.
539
+ Two phases:
540
+ 1. **Docs phase** — Test plan, test cases (before Dev implements). Output ready for Dev team.
541
+ 2. **Testing phase** — After Dev completes unit tests: run tests, include automation tests, sign-off.
542
+
437
543
  Use test-case.template.md for test cases.
438
544
  `;
439
545
 
546
+ const DEV_TECH_LEAD_README = `# Tech Lead (15+ years exp)
547
+
548
+ **Responsibilities**:
549
+ - Decide tech stack, frameworks, libraries
550
+ - Review and merge code
551
+ - Ensure architecture alignment
552
+
553
+ **Docs**: ADRs, tech decisions, review checklist.
554
+ `;
555
+
556
+ const DEV_SENIOR_README = `# Senior Developer (10+ years exp)
557
+
558
+ **Responsibilities**:
559
+ - Implement features per Technical BA spec
560
+ - Write code with Unit Test coverage **≥ 90%**
561
+ - Follow Tech Lead's tech decisions
562
+
563
+ **Docs**: Implementation notes, API usage.
564
+ `;
565
+
440
566
  main();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdlc-workflow",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "Scaffold SDLC workflow docs and templates for Cursor, Claude, and dev teams",
5
5
  "type": "module",
6
6
  "bin": {