create-agentic-pdlc 1.2.1 → 2.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.
- package/.github/assets/agentic-pdlc-flow.svg +255 -0
- package/.github/workflows/agent-trigger.yml +40 -1
- package/.github/workflows/ci.yml +3 -0
- package/.github/workflows/pdlc-health-check.yml +123 -0
- package/.github/workflows/project-automation.yml +17 -40
- package/AGENTS.md +3 -1
- package/README.md +12 -8
- package/SETUP.md +41 -2
- package/adapters/claude-code/skill.md +17 -2
- package/docs/flow.md +160 -0
- package/docs/pdlc.md +1 -1
- package/docs/spikes/04-upstream-flow-gap-analysis.md +39 -0
- package/package.json +1 -1
- package/templates/.github/CODEOWNERS +5 -0
- package/templates/.github/workflows/agent-trigger.yml +40 -1
- package/templates/.github/workflows/ci.yml +3 -0
- package/templates/.github/workflows/pdlc-health-check.yml +123 -0
- package/templates/.github/workflows/project-automation.yml +17 -40
- package/templates/.github/workflows/upstream-gate.yml +54 -0
- package/templates/AGENTS.md +28 -1
- package/templates/docs/pdlc.md +1 -1
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
name: Upstream Gate 1
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
issue_comment:
|
|
5
|
+
types: [created]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
evaluate-gate:
|
|
9
|
+
name: Evaluate Brainstorming Approval
|
|
10
|
+
if: ${{ !github.event.issue.pull_request && contains(github.event.issue.labels.*.name, 'upstream:brainstorming') }}
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
env:
|
|
13
|
+
PROJECT_TOKEN: ${{ secrets.PROJECT_TOKEN }}
|
|
14
|
+
steps:
|
|
15
|
+
- name: Check for approval and swap label
|
|
16
|
+
if: ${{ env.PROJECT_TOKEN != '' }}
|
|
17
|
+
uses: actions/github-script@v7
|
|
18
|
+
with:
|
|
19
|
+
github-token: ${{ env.PROJECT_TOKEN }}
|
|
20
|
+
script: |
|
|
21
|
+
const comment = context.payload.comment.body.toLowerCase();
|
|
22
|
+
const isApproved =
|
|
23
|
+
comment.includes('approved') ||
|
|
24
|
+
comment.includes('lgtm') ||
|
|
25
|
+
/option\s+[a-z0-9]/i.test(comment) ||
|
|
26
|
+
/go\s+with\s+[a-z0-9]/i.test(comment) ||
|
|
27
|
+
/proceed/i.test(comment);
|
|
28
|
+
|
|
29
|
+
if (isApproved) {
|
|
30
|
+
const { owner, repo } = context.repo;
|
|
31
|
+
const issue_number = context.payload.issue.number;
|
|
32
|
+
|
|
33
|
+
console.log('Approval detected, swapping labels...');
|
|
34
|
+
|
|
35
|
+
try {
|
|
36
|
+
await github.rest.issues.removeLabel({
|
|
37
|
+
owner,
|
|
38
|
+
repo,
|
|
39
|
+
issue_number,
|
|
40
|
+
name: 'upstream:brainstorming'
|
|
41
|
+
});
|
|
42
|
+
} catch (e) {
|
|
43
|
+
console.log('Could not remove upstream:brainstorming label');
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
await github.rest.issues.addLabels({
|
|
47
|
+
owner,
|
|
48
|
+
repo,
|
|
49
|
+
issue_number,
|
|
50
|
+
labels: ['upstream:detailing']
|
|
51
|
+
});
|
|
52
|
+
} else {
|
|
53
|
+
console.log('No approval pattern detected in the comment.');
|
|
54
|
+
}
|
package/templates/AGENTS.md
CHANGED
|
@@ -35,7 +35,33 @@ Always start from the current `main` HEAD. Never work over stale snapshots.
|
|
|
35
35
|
3. Read all files mentioned in the issue's technical context.
|
|
36
36
|
4. Implement the **minimum viable change** that satisfies the ACs — do not refactor beyond scope.
|
|
37
37
|
5. Run tests: `{{TEST_COMMAND}}`
|
|
38
|
-
6.
|
|
38
|
+
6. Run typecheck (if applicable): `{{TYPECHECK_COMMAND}}`
|
|
39
|
+
7. Create a Pull Request with `Closes #N` in the body — automation moves the board.
|
|
40
|
+
|
|
41
|
+
### Spec format (Upstream Agents)
|
|
42
|
+
|
|
43
|
+
When detailing a solution in an issue body, you must **always** include both the user story and the acceptance criteria. Never append only the ACs to an existing text; rewrite the full issue body in this standard format:
|
|
44
|
+
|
|
45
|
+
```
|
|
46
|
+
**As** [user],
|
|
47
|
+
**I want** [action],
|
|
48
|
+
**so that** [benefit].
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Acceptance Criteria
|
|
53
|
+
|
|
54
|
+
**AC1 — ...**
|
|
55
|
+
- Given ...
|
|
56
|
+
- When ...
|
|
57
|
+
- Then ...
|
|
58
|
+
|
|
59
|
+
**AC2 — ...**
|
|
60
|
+
...
|
|
61
|
+
|
|
62
|
+
## Files to modify
|
|
63
|
+
- `path/to/file.ts` — what changes
|
|
64
|
+
```
|
|
39
65
|
|
|
40
66
|
## What NOT to do
|
|
41
67
|
|
|
@@ -49,5 +75,6 @@ Always start from the current `main` HEAD. Never work over stale snapshots.
|
|
|
49
75
|
|
|
50
76
|
- **Tests:** `{{TEST_COMMAND}}`
|
|
51
77
|
- **Lint/Types:** `{{LINT_COMMAND}}`
|
|
78
|
+
- **Typecheck:** `{{TYPECHECK_COMMAND}}`
|
|
52
79
|
- **Build:** `{{BUILD_COMMAND}}`
|
|
53
80
|
{{EXTRA_PATTERNS}}
|
package/templates/docs/pdlc.md
CHANGED
|
@@ -72,7 +72,7 @@ REPO = {{REPO_OWNER}}/{{REPO_NAME}}
|
|
|
72
72
|
| `stage:detailing` | Issue | Blue | Technical spec is being written |
|
|
73
73
|
| `stage:development` | Issue | Orange | Agent is implementing the spec |
|
|
74
74
|
| `spec:approved` | Issue | Green | Gate 2 — agent is cleared to implement |
|
|
75
|
-
| `pr:review` | PR | Yellow | Awaiting code review |
|
|
75
|
+
| `pr:in-review` | PR | Yellow | Awaiting code review |
|
|
76
76
|
| `pr:approved` | PR | Green | Code review approved |
|
|
77
77
|
|
|
78
78
|
## Approval Gates
|