create-agentic-pdlc 2.3.0 → 3.0.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 (64) hide show
  1. package/.agentic-pdlc/hooks/pdlc-stage-gate.sh +37 -10
  2. package/.agentic-pdlc/metrics/raw/2026-W22.jsonl +114 -0
  3. package/.claude/settings.json +18 -0
  4. package/.coderabbit.yaml +35 -0
  5. package/.github/ISSUE_TEMPLATE/bug.md +53 -0
  6. package/.github/ISSUE_TEMPLATE/feature.md +54 -0
  7. package/.github/ISSUE_TEMPLATE/task.md +33 -0
  8. package/.github/workflows/add-to-board.yml +1 -1
  9. package/.github/workflows/agent-trigger.yml +4 -4
  10. package/.github/workflows/ci.yml +1 -1
  11. package/.github/workflows/npm-publish.yml +2 -2
  12. package/.github/workflows/pdlc-health-check.yml +1 -1
  13. package/.github/workflows/pdlc-stage-gate.yml +2 -2
  14. package/.github/workflows/project-automation.yml +25 -40
  15. package/AGENTS.md +50 -8
  16. package/CLAUDE.md +3 -1
  17. package/README.md +33 -32
  18. package/SETUP.md +2 -1
  19. package/adapters/claude-code/skill.md +39 -14
  20. package/adapters/hooks/pdlc-stage-gate.sh +3 -8
  21. package/bin/cli.js +555 -194
  22. package/docs/pdlc.md +5 -5
  23. package/docs/superpowers/plans/2026-05-28-jules-label-pat-split.md +240 -0
  24. package/docs/superpowers/plans/2026-05-29-agentic-pulse-rework-taxonomy.md +474 -0
  25. package/docs/superpowers/plans/2026-05-29-qa-gate-enforcement.md +354 -0
  26. package/docs/superpowers/plans/2026-06-04-spec-format-issue-template.md +160 -0
  27. package/docs/superpowers/plans/2026-06-04-two-tier-installer.md +1056 -0
  28. package/docs/superpowers/specs/2026-05-29-agentic-pulse-rework-taxonomy-design.md +122 -0
  29. package/docs/superpowers/specs/2026-06-04-spec-format-issue-template-design.md +46 -0
  30. package/package.json +2 -2
  31. package/templates/.github/ISSUE_TEMPLATE/bug.md +53 -0
  32. package/templates/.github/ISSUE_TEMPLATE/feature.md +54 -0
  33. package/templates/.github/ISSUE_TEMPLATE/task.md +33 -0
  34. package/templates/.github/workflows/add-to-board.yml +4 -4
  35. package/templates/.github/workflows/agent-trigger.yml +22 -13
  36. package/{.agentic-pdlc/templates → templates}/.github/workflows/agentic-metrics.yml +150 -27
  37. package/templates/.github/workflows/ci.yml +1 -1
  38. package/templates/.github/workflows/pdlc-health-check.yml +1 -1
  39. package/templates/.github/workflows/pdlc-stage-gate.yml +2 -2
  40. package/templates/.github/workflows/project-automation.yml +71 -32
  41. package/templates/.github/workflows/qa-agent.yml +32 -18
  42. package/templates/.github/workflows/qa-gate.yml +51 -0
  43. package/templates/full/AGENTS.md +143 -0
  44. package/templates/full/CLAUDE.md +30 -0
  45. package/templates/{docs → full/docs}/pdlc.md +4 -4
  46. package/templates/lite/AGENTS.md +121 -0
  47. package/templates/lite/CLAUDE.md +44 -0
  48. package/tests/cli.test.js +32 -0
  49. package/.agentic-pdlc/templates/.github/CODEOWNERS +0 -5
  50. package/.agentic-pdlc/templates/.github/copilot-instructions.md +0 -12
  51. package/.agentic-pdlc/templates/.github/workflows/add-to-board.yml +0 -38
  52. package/.agentic-pdlc/templates/.github/workflows/agent-trigger.yml +0 -146
  53. package/.agentic-pdlc/templates/.github/workflows/auto-approve.yml +0 -16
  54. package/.agentic-pdlc/templates/.github/workflows/ci.yml +0 -54
  55. package/.agentic-pdlc/templates/.github/workflows/pdlc-health-check.yml +0 -121
  56. package/.agentic-pdlc/templates/.github/workflows/pdlc-stage-gate.yml +0 -51
  57. package/.agentic-pdlc/templates/.github/workflows/project-automation.yml +0 -274
  58. package/.agentic-pdlc/templates/.github/workflows/protect-workflows.yml +0 -21
  59. package/.agentic-pdlc/templates/.github/workflows/qa-agent.yml +0 -128
  60. package/.agentic-pdlc/templates/AGENTS.md +0 -104
  61. package/.agentic-pdlc/templates/docs/pdlc.md +0 -123
  62. package/.github/workflows/agentic-metrics.yml +0 -422
  63. package/.github/workflows/qa-agent.yml +0 -128
  64. package/templates/AGENTS.md +0 -115
package/docs/pdlc.md CHANGED
@@ -53,7 +53,7 @@ REPO = {{REPO_OWNER}}/{{REPO_NAME}}
53
53
  ```
54
54
  [icon] [PREFIX]: [short description, imperative tense]
55
55
 
56
- 👤 US: user story
56
+ feat: new feature or behavioral change
57
57
  🐛 BUG: bug
58
58
  🔧 TASK: operational task
59
59
  🔬 SPIKE: exploration/evaluation spike
@@ -69,7 +69,7 @@ REPO = {{REPO_OWNER}}/{{REPO_NAME}}
69
69
  | `spec:approved` | Issue | Green | Gate 2 — agent is cleared to implement |
70
70
  | `pr:in-review` | PR | Yellow | Awaiting code review |
71
71
  | `pr:approved` | PR | Green | Code review approved |
72
- | `type:us` | Issue | Blue | New feature or behavioral change — full flow |
72
+ | `type:feature` | Issue | Blue | New feature or behavioral change — full flow |
73
73
  | `type:task` | Issue | Yellow | Operational/non-functional change — full flow |
74
74
  | `type:bug` | Issue | Red | Something broken — full flow |
75
75
  | `type:spike` | Issue | Gray | Research/evaluation — never reaches Development |
@@ -90,12 +90,12 @@ The `type:*` label is the authoritative signal — set automatically by the agen
90
90
 
91
91
  | Label | Flow |
92
92
  |---|---|
93
- | `type:us` | brainstorming → Gate 1 → detailing → approval |
93
+ | `type:feature` | brainstorming → Gate 1 → detailing → approval |
94
94
  | `type:task` | brainstorming → Gate 1 → detailing → approval |
95
95
  | `type:bug` | brainstorming → Gate 1 → detailing → approval |
96
96
  | `type:spike` | brainstorming → Gate 1 → detailing → conclusion comment (never reaches Development) |
97
97
 
98
- If no `type:*` label present and agent confidence < 85%, defaults to `type:us` (safe fallback — never skips gates by omission).
98
+ If no `type:*` label present and agent confidence < 85%, defaults to `type:feature` (safe fallback — never skips gates by omission).
99
99
 
100
100
  ## Bypass Mechanism
101
101
 
@@ -103,7 +103,7 @@ Agents MUST NOT skip any stage. The ONLY authorized bypasses are:
103
103
 
104
104
  | Mechanism | Who authorizes | What it bypasses |
105
105
  |---|---|---|
106
- | `human-approved` label on issue | PM (human) only | All stage gates |
106
+ | `human-approved` label on issue | PM (human) only | All stage gates — automation adds `qa:approved` to linked PRs, moving card to Code Review / PR. `pdlc-stage-gate` accepts `stage:testing` as a valid post-gate state. |
107
107
  | Branch prefix `hotfix/` | PM (human) only | PR gate only |
108
108
 
109
109
  Agents MUST NOT self-authorize a bypass. Stop and ask the PM explicitly.
@@ -0,0 +1,240 @@
1
+ # Jules Label PAT Split Implementation 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:** Split the `Update Labels` step in both template `agent-trigger.yml` files so stage labels use `GITHUB_TOKEN` and the agent label (`jules`) uses `PROJECT_PAT`, ensuring external GitHub App webhooks fire.
6
+
7
+ **Architecture:** Two YAML edits — one per template file (they are identical in content). The existing single step that adds all labels via `GITHUB_TOKEN` is replaced by two sequential steps: first adds stage labels via `GITHUB_TOKEN`, second adds the agent label via `PROJECT_PAT` with a guard condition. No new files, no script changes.
8
+
9
+ **Tech Stack:** GitHub Actions YAML, `actions/github-script@v7`
10
+
11
+ ---
12
+
13
+ ## File Map
14
+
15
+ | Action | File |
16
+ |---|---|
17
+ | Modify | `templates/.github/workflows/agent-trigger.yml` |
18
+ | Modify | `.agentic-pdlc/templates/.github/workflows/agent-trigger.yml` |
19
+
20
+ Both files are identical — apply the same change to each.
21
+
22
+ ---
23
+
24
+ ### Task 1: Fix `templates/.github/workflows/agent-trigger.yml`
25
+
26
+ **Files:**
27
+ - Modify: `templates/.github/workflows/agent-trigger.yml`
28
+
29
+ Current `Update Labels` step (lines 25–53):
30
+
31
+ ```yaml
32
+ - name: Update Labels
33
+ uses: actions/github-script@v7
34
+ with:
35
+ github-token: ${{ secrets.GITHUB_TOKEN }}
36
+ script: |
37
+ const { owner, repo } = context.repo;
38
+ const issue_number = context.payload.issue.number;
39
+
40
+ try {
41
+ await github.rest.issues.removeLabel({
42
+ owner,
43
+ repo,
44
+ issue_number,
45
+ name: 'stage:approval'
46
+ });
47
+ } catch (error) {
48
+ console.log('Label stage:approval not found or could not be removed');
49
+ }
50
+
51
+ const agentLabel = '{{IMPLEMENTATION_AGENT_LABEL}}';
52
+ const labelsToAdd = ['stage:development'];
53
+ if (!agentLabel.includes('{{')) labelsToAdd.push(agentLabel, 'agent:working');
54
+
55
+ await github.rest.issues.addLabels({
56
+ owner,
57
+ repo,
58
+ issue_number,
59
+ labels: labelsToAdd
60
+ });
61
+ ```
62
+
63
+ - [ ] **Step 1: Replace `Update Labels` step with two steps**
64
+
65
+ Replace the step above with:
66
+
67
+ ```yaml
68
+ - name: Update stage labels
69
+ uses: actions/github-script@v7
70
+ with:
71
+ github-token: ${{ secrets.GITHUB_TOKEN }}
72
+ script: |
73
+ const { owner, repo } = context.repo;
74
+ const issue_number = context.payload.issue.number;
75
+
76
+ try {
77
+ await github.rest.issues.removeLabel({
78
+ owner,
79
+ repo,
80
+ issue_number,
81
+ name: 'stage:approval'
82
+ });
83
+ } catch (error) {
84
+ console.log('Label stage:approval not found or could not be removed');
85
+ }
86
+
87
+ await github.rest.issues.addLabels({
88
+ owner,
89
+ repo,
90
+ issue_number,
91
+ labels: ['stage:development', 'agent:working']
92
+ });
93
+
94
+ - name: Add agent label via PAT
95
+ if: ${{ env.PROJECT_PAT != '' && !contains('{{IMPLEMENTATION_AGENT_LABEL}}', '{{') }}
96
+ uses: actions/github-script@v7
97
+ with:
98
+ github-token: ${{ env.PROJECT_PAT }}
99
+ script: |
100
+ await github.rest.issues.addLabels({
101
+ owner: context.repo.owner,
102
+ repo: context.repo.repo,
103
+ issue_number: context.payload.issue.number,
104
+ labels: ['{{IMPLEMENTATION_AGENT_LABEL}}']
105
+ });
106
+ ```
107
+
108
+ - [ ] **Step 2: Verify file looks correct**
109
+
110
+ Run:
111
+ ```bash
112
+ grep -n "name:\|github-token:" templates/.github/workflows/agent-trigger.yml
113
+ ```
114
+
115
+ Expected output (step names and tokens in order):
116
+ ```
117
+ 25: - name: Update stage labels
118
+ 28: github-token: ${{ secrets.GITHUB_TOKEN }}
119
+ 55: - name: Add agent label via PAT
120
+ 59: github-token: ${{ env.PROJECT_PAT }}
121
+ 65: - name: Move board card to Development
122
+ ```
123
+
124
+ - [ ] **Step 3: Commit**
125
+
126
+ ```bash
127
+ git add templates/.github/workflows/agent-trigger.yml
128
+ git commit -m "fix(templates): split jules label into PAT step to fire external App webhook"
129
+ ```
130
+
131
+ ---
132
+
133
+ ### Task 2: Fix `.agentic-pdlc/templates/.github/workflows/agent-trigger.yml`
134
+
135
+ **Files:**
136
+ - Modify: `.agentic-pdlc/templates/.github/workflows/agent-trigger.yml`
137
+
138
+ Same change as Task 1 — the two files are identical.
139
+
140
+ - [ ] **Step 1: Replace `Update Labels` step with two steps**
141
+
142
+ Replace the same `Update Labels` block with:
143
+
144
+ ```yaml
145
+ - name: Update stage labels
146
+ uses: actions/github-script@v7
147
+ with:
148
+ github-token: ${{ secrets.GITHUB_TOKEN }}
149
+ script: |
150
+ const { owner, repo } = context.repo;
151
+ const issue_number = context.payload.issue.number;
152
+
153
+ try {
154
+ await github.rest.issues.removeLabel({
155
+ owner,
156
+ repo,
157
+ issue_number,
158
+ name: 'stage:approval'
159
+ });
160
+ } catch (error) {
161
+ console.log('Label stage:approval not found or could not be removed');
162
+ }
163
+
164
+ await github.rest.issues.addLabels({
165
+ owner,
166
+ repo,
167
+ issue_number,
168
+ labels: ['stage:development', 'agent:working']
169
+ });
170
+
171
+ - name: Add agent label via PAT
172
+ if: ${{ env.PROJECT_PAT != '' && !contains('{{IMPLEMENTATION_AGENT_LABEL}}', '{{') }}
173
+ uses: actions/github-script@v7
174
+ with:
175
+ github-token: ${{ env.PROJECT_PAT }}
176
+ script: |
177
+ await github.rest.issues.addLabels({
178
+ owner: context.repo.owner,
179
+ repo: context.repo.repo,
180
+ issue_number: context.payload.issue.number,
181
+ labels: ['{{IMPLEMENTATION_AGENT_LABEL}}']
182
+ });
183
+ ```
184
+
185
+ - [ ] **Step 2: Verify both files are identical**
186
+
187
+ Run:
188
+ ```bash
189
+ diff templates/.github/workflows/agent-trigger.yml .agentic-pdlc/templates/.github/workflows/agent-trigger.yml
190
+ ```
191
+
192
+ Expected: no output (files identical).
193
+
194
+ - [ ] **Step 3: Commit**
195
+
196
+ ```bash
197
+ git add .agentic-pdlc/templates/.github/workflows/agent-trigger.yml
198
+ git commit -m "fix(templates): mirror jules label PAT split in .agentic-pdlc/templates"
199
+ ```
200
+
201
+ ---
202
+
203
+ ### Task 3: Open PR
204
+
205
+ - [ ] **Step 1: Push branch**
206
+
207
+ ```bash
208
+ git push -u origin feat/125-jules-label-pat-split
209
+ ```
210
+
211
+ - [ ] **Step 2: Create PR**
212
+
213
+ ```bash
214
+ gh pr create \
215
+ --title "fix(templates): split jules label into PAT step — fix external App webhook" \
216
+ --body "$(cat <<'EOF'
217
+ ## Summary
218
+
219
+ - Splits `Update Labels` step in both template `agent-trigger.yml` files into two steps
220
+ - Stage labels (`stage:development`, `agent:working`) remain on `GITHUB_TOKEN`
221
+ - Agent label (`{{IMPLEMENTATION_AGENT_LABEL}}`, e.g. `jules`) moved to new step using `PROJECT_PAT`
222
+ - New step guarded by `PROJECT_PAT != ''` and placeholder check — graceful degradation when PAT not configured
223
+
224
+ ## Why
225
+
226
+ GitHub's anti-loop protection suppresses external App webhooks for events generated by `GITHUB_TOKEN`. Jules (external GitHub App) watches the `jules` label event — if generated by `GITHUB_TOKEN`, Jules never fires. Fix confirmed in context-optimizer PR#12.
227
+
228
+ ## Test plan
229
+
230
+ - [ ] Scaffold new project with `npx create-agentic-pdlc`
231
+ - [ ] Configure `PROJECT_PAT` secret
232
+ - [ ] Add `spec:approved` to an issue
233
+ - [ ] Verify `stage:development` + `agent:working` added first (GITHUB_TOKEN), then `jules` added as separate event (PAT) → Jules activates automatically
234
+
235
+ Closes #125
236
+
237
+ 🤖 Generated with [Claude Code](https://claude.com/claude-code)
238
+ EOF
239
+ )"
240
+ ```