sdlc-workflow 1.0.1 → 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 +27 -8
  2. package/bin/cli.js +74 -3
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
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
 
@@ -22,10 +22,17 @@ npx sdlc-workflow init
22
22
 
23
23
  This creates:
24
24
 
25
+ **Project:**
25
26
  - `docs/sdlc/` — SDLC docs, templates, and phase folders
26
- - `.cursor/rules/sdlc-workflow.mdc` — Cursor rule for this project
27
- - `~/.cursor/skills/sdlc-workflow/` — Cursor skill (global, applies to all projects)
28
- - `.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
29
36
 
30
37
  ## Generated Structure
31
38
 
@@ -58,16 +65,28 @@ docs/sdlc/
58
65
 
59
66
  .cursor/rules/
60
67
  └── sdlc-workflow.mdc # Cursor rule
68
+
69
+ AGENTS.md # Antigravity, Codex (universal)
70
+ .agents/skills/sdlc-workflow/ # Codex repo skill
61
71
  ```
62
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
+
63
77
  ## Use with Claude
64
78
 
65
- - **Claude Code** (project): `.claude/CLAUDE.md` is created by init — Claude loads it automatically when you open this project.
66
- - **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.
67
81
 
68
- ## 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
69
87
 
70
- 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/`
71
90
 
72
91
  ## Release
73
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)) {
@@ -264,6 +318,23 @@ TC-001: [Scenario] — Precondition, Steps, Expected, Links to AC
264
318
  - Senior Dev (10+ yrs): implement, Unit Test ≥90% → docs/sdlc/dev/senior-developer/
265
319
  `;
266
320
 
321
+ const AGENTS_MD_CONTENT = `## SDLC Workflow
322
+
323
+ When working on requirements, features, or handoffs, follow these phases:
324
+
325
+ 1. **PO** — PRD, user stories → docs/sdlc/po/
326
+ 2. **Business BA** — FRS, process flows → docs/sdlc/ba/business/
327
+ 3. **Architect** — ADRs, diagrams → docs/sdlc/architecture/
328
+ 4. **Technical BA** — API specs, team breakdown → docs/sdlc/ba/technical/
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
333
+
334
+ Flow: ... → Technical BA → QE docs → Dev → QE testing → Deploy
335
+ Ask "Which phase are we in?" if unclear.
336
+ `;
337
+
267
338
  const CLAUDE_SDLC_CONTENT = `## SDLC Workflow
268
339
 
269
340
  1. **PO** — PRD, user stories → docs/sdlc/po/
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sdlc-workflow",
3
- "version": "1.0.1",
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": {