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.
@@ -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
+ }
@@ -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. Create a Pull Request with `Closes #N` in the body — automation moves the board.
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}}
@@ -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