create-agentic-pdlc 2.4.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.
Files changed (33) hide show
  1. package/.agentic-pdlc/hooks/pdlc-stage-gate.sh +37 -10
  2. package/.claude/settings.json +18 -0
  3. package/.coderabbit.yaml +41 -0
  4. package/.github/workflows/add-to-board.yml +55 -7
  5. package/.github/workflows/agent-trigger.yml +57 -25
  6. package/.github/workflows/board-reconciliation.yml +176 -0
  7. package/.github/workflows/pdlc-health-check.yml +81 -81
  8. package/.github/workflows/project-automation.yml +252 -259
  9. package/CLAUDE.md +1 -1
  10. package/README.md +33 -32
  11. package/adapters/claude-code/skill.md +12 -8
  12. package/bin/cli.js +607 -213
  13. package/docs/superpowers/plans/2026-06-04-spec-format-issue-template.md +160 -0
  14. package/docs/superpowers/plans/2026-06-04-two-tier-installer.md +1056 -0
  15. package/docs/superpowers/plans/2026-06-05-archive-card-on-issue-close.md +105 -0
  16. package/docs/superpowers/plans/2026-06-05-project-id-actions-variable.md +336 -0
  17. package/docs/superpowers/specs/2026-06-04-spec-format-issue-template-design.md +46 -0
  18. package/docs/superpowers/specs/2026-06-05-project-id-actions-variable-design.md +114 -0
  19. package/package.json +2 -2
  20. package/scripts/derive-column.js +20 -0
  21. package/templates/.github/workflows/add-to-board.yml +2 -2
  22. package/templates/.github/workflows/agent-trigger.yml +2 -2
  23. package/templates/.github/workflows/pdlc-health-check.yml +2 -2
  24. package/templates/.github/workflows/project-automation.yml +47 -8
  25. package/templates/full/CLAUDE.md +30 -0
  26. package/templates/lite/AGENTS.md +121 -0
  27. package/templates/lite/CLAUDE.md +44 -0
  28. package/tests/cli.test.js +118 -0
  29. package/.github/workflows/agentic-metrics.yml +0 -545
  30. package/.github/workflows/qa-agent.yml +0 -139
  31. package/.github/workflows/qa-gate.yml +0 -51
  32. /package/templates/{AGENTS.md → full/AGENTS.md} +0 -0
  33. /package/templates/{docs → full/docs}/pdlc.md +0 -0
@@ -0,0 +1,160 @@
1
+ # Spec-Format Issue Template Installation Plan
2
+
3
+ > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking.
4
+
5
+ **Goal:** Make `npx create-agentic-pdlc` install `.github/ISSUE_TEMPLATE/` directly into the target project so GitHub shows the spec-format template when users create issues.
6
+
7
+ **Architecture:** Single change in `bin/cli.js` — inside `runSetup()`, after the existing template copy block, add a `copyDirSync` call that copies `templates/.github/ISSUE_TEMPLATE/` directly to `targetDir/.github/ISSUE_TEMPLATE/`. No placeholder substitution needed.
8
+
9
+ **Tech Stack:** Node.js, `fs`, `path` — all already imported. No new dependencies.
10
+
11
+ ---
12
+
13
+ ### Task 1: Add i18n string
14
+
15
+ **Files:**
16
+ - Modify: `bin/cli.js:77` (inside `i18n` object, before the closing `}`)
17
+
18
+ No test infrastructure exists in this project — verification is manual (Task 2).
19
+
20
+ - [ ] **Step 1: Add the i18n string**
21
+
22
+ In [bin/cli.js](bin/cli.js), on line 77 (right before the closing `};` of the `i18n` object), add:
23
+
24
+ ```js
25
+ protection_warn: t('⚠️ Branch protection could not be set automatically.\n Set required checks manually: Settings → Branches → main → Required status checks.\n Required: "PDLC Stage Gate" and "QA Gate"', '⚠️ Proteção de branch não pôde ser configurada automaticamente.\n Configure manualmente: Settings → Branches → main → Required status checks.\n Obrigatórios: "PDLC Stage Gate" e "QA Gate"', '⚠️ No se pudo configurar la protección de rama automáticamente.\n Configúralo en: Settings → Branches → main → Required status checks.\n Requeridos: "PDLC Stage Gate" y "QA Gate"'),
26
+ issue_templates_copied: t(
27
+ '✅ Issue templates copied to .github/ISSUE_TEMPLATE/',
28
+ '✅ Issue templates copiados para .github/ISSUE_TEMPLATE/',
29
+ '✅ Issue templates copiados a .github/ISSUE_TEMPLATE/'
30
+ ),
31
+ };
32
+ ```
33
+
34
+ (Replace the existing `protection_warn` line + closing `};` with the block above — adds the new key before `};`.)
35
+
36
+ ---
37
+
38
+ ### Task 2: Add copyDirSync call in runSetup()
39
+
40
+ **Files:**
41
+ - Modify: `bin/cli.js:387` (inside `if (fs.existsSync(sourceTemplates))` block, after the `templates_copied` log line)
42
+
43
+ - [ ] **Step 1: Add the copy block**
44
+
45
+ In [bin/cli.js](bin/cli.js), after line 387 (`console.log(`${i18n.templates_copied}`)`), insert:
46
+
47
+ ```js
48
+ // Copy issue templates directly to .github/ISSUE_TEMPLATE/ so GitHub picks them up
49
+ const sourceIssueTemplates = path.join(sourceDir, 'templates', '.github', 'ISSUE_TEMPLATE');
50
+ const targetIssueTemplates = path.join(targetDir, '.github', 'ISSUE_TEMPLATE');
51
+ if (fs.existsSync(sourceIssueTemplates)) {
52
+ copyDirSync(sourceIssueTemplates, targetIssueTemplates);
53
+ console.log(i18n.issue_templates_copied);
54
+ }
55
+ ```
56
+
57
+ The result in context should look like:
58
+
59
+ ```js
60
+ if (fs.existsSync(sourceTemplates)) {
61
+ copyDirSync(sourceTemplates, targetTemplates);
62
+ console.log(`${i18n.templates_copied}`);
63
+
64
+ // Copy issue templates directly to .github/ISSUE_TEMPLATE/ so GitHub picks them up
65
+ const sourceIssueTemplates = path.join(sourceDir, 'templates', '.github', 'ISSUE_TEMPLATE');
66
+ const targetIssueTemplates = path.join(targetDir, '.github', 'ISSUE_TEMPLATE');
67
+ if (fs.existsSync(sourceIssueTemplates)) {
68
+ copyDirSync(sourceIssueTemplates, targetIssueTemplates);
69
+ console.log(i18n.issue_templates_copied);
70
+ }
71
+
72
+ // Substitute values in docs/pdlc.md automatically
73
+ const pdlcDest = path.join(targetTemplates, 'docs', 'pdlc.md');
74
+ ```
75
+
76
+ - [ ] **Step 2: Verify syntax is valid**
77
+
78
+ ```bash
79
+ node --check bin/cli.js
80
+ ```
81
+
82
+ Expected: no output (exit code 0). Any output means a syntax error — fix before continuing.
83
+
84
+ ---
85
+
86
+ ### Task 3: Manual verification
87
+
88
+ - [ ] **Step 1: Create a temp target directory and run the copy logic in isolation**
89
+
90
+ ```bash
91
+ node -e "
92
+ const fs = require('fs');
93
+ const path = require('path');
94
+ const sourceDir = '.';
95
+ const targetDir = '/tmp/pdlc-test-157';
96
+
97
+ function copyDirSync(src, dest) {
98
+ if (!fs.existsSync(dest)) fs.mkdirSync(dest, { recursive: true });
99
+ for (const entry of fs.readdirSync(src, { withFileTypes: true })) {
100
+ const s = path.join(src, entry.name);
101
+ const d = path.join(dest, entry.name);
102
+ entry.isDirectory() ? copyDirSync(s, d) : fs.copyFileSync(s, d);
103
+ }
104
+ }
105
+
106
+ const sourceIssueTemplates = path.join(sourceDir, 'templates', '.github', 'ISSUE_TEMPLATE');
107
+ const targetIssueTemplates = path.join(targetDir, '.github', 'ISSUE_TEMPLATE');
108
+ if (fs.existsSync(sourceIssueTemplates)) {
109
+ copyDirSync(sourceIssueTemplates, targetIssueTemplates);
110
+ console.log('copied');
111
+ } else {
112
+ console.log('source not found');
113
+ }
114
+ "
115
+ ```
116
+
117
+ Expected output: `copied`
118
+
119
+ - [ ] **Step 2: Verify files are in the right place**
120
+
121
+ ```bash
122
+ ls /tmp/pdlc-test-157/.github/ISSUE_TEMPLATE/
123
+ ```
124
+
125
+ Expected output:
126
+ ```
127
+ bug.md
128
+ feature.md
129
+ task.md
130
+ ```
131
+
132
+ - [ ] **Step 3: Verify .github/ was created recursively (didn't exist before)**
133
+
134
+ ```bash
135
+ ls /tmp/pdlc-test-157/.github/
136
+ ```
137
+
138
+ Expected output:
139
+ ```
140
+ ISSUE_TEMPLATE
141
+ ```
142
+
143
+ - [ ] **Step 4: Clean up**
144
+
145
+ ```bash
146
+ rm -rf /tmp/pdlc-test-157
147
+ ```
148
+
149
+ ---
150
+
151
+ ### Task 4: Commit
152
+
153
+ - [ ] **Step 1: Stage and commit**
154
+
155
+ ```bash
156
+ git add bin/cli.js
157
+ git commit -m "feat(cli): install issue templates to .github/ISSUE_TEMPLATE/ during setup
158
+
159
+ Closes #157"
160
+ ```