@plainconceptsplatform/workflows 1.9.1 → 1.10.1

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 (36) hide show
  1. package/dist/package-baseline.js +4 -1
  2. package/loops/actions/add-issue-labels/action.yml +50 -50
  3. package/loops/actions/agent-output.cjs +17 -17
  4. package/loops/actions/apply-agent-bundle/action.yml +24 -24
  5. package/loops/actions/apply-agent-comments/action.yml +42 -42
  6. package/loops/actions/apply-agent-labels/action.yml +55 -55
  7. package/loops/actions/cleanup-artifacts/action.yml +91 -91
  8. package/loops/actions/close-agent-issues/action.yml +43 -43
  9. package/loops/actions/collect-doc-drift/collect-doc-drift.mjs +7 -3
  10. package/loops/actions/create-issue-comment/action.yml +29 -29
  11. package/loops/actions/download-agent-output/action.yml +53 -53
  12. package/loops/actions/identify-gate-subject/action.yml +4 -0
  13. package/loops/actions/link-pr-to-issue/action.yml +40 -40
  14. package/loops/actions/list-open-issues/action.yml +33 -33
  15. package/loops/actions/load-issue-context/action.yml +45 -45
  16. package/loops/actions/merge-agent-pr/action.yml +49 -49
  17. package/loops/actions/remove-issue-labels/action.yml +37 -37
  18. package/loops/actions/report-workflow-errors/action.yml +63 -16
  19. package/loops/actions/report-workflow-errors/report-policy.cjs +89 -5
  20. package/loops/actions/update-agent-issues/action.yml +58 -58
  21. package/loops/actions/validate-refine-output/action.yml +6 -1
  22. package/loops/actions/validate-refine-output/validate-refine-output.sh +20 -2
  23. package/loops/actions/validate-review-output/action.yml +35 -35
  24. package/loops/actions/validate-triage-output/action.yml +36 -36
  25. package/loops/actions/verify-composite-actions/action.yml +9 -9
  26. package/loops/actions/verify-refine-output/action.yml +9 -9
  27. package/loops/actions/verify-route-matrix/action.yml +9 -9
  28. package/loops/actions/verify-route-matrix/verify-route-matrix.sh +20 -0
  29. package/loops/templates/agentics/agentics-maintenance.yml +121 -121
  30. package/loops/templates/issues/bug_report.yml +109 -109
  31. package/loops/templates/issues/feature_request.yml +75 -75
  32. package/loops/workflows/agent-merge-gate.md +11 -7
  33. package/loops/workflows/agent-refine.md +61 -11
  34. package/loops/workflows/shared/platform-defaults.md +53 -53
  35. package/loops/workflows/work-router.yml +77 -1
  36. package/package.json +1 -1
@@ -1,36 +1,36 @@
1
- # Managed by @plainconceptsplatform/workflows. Source: loops/actions/validate-triage-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
- name: Validate triage output
3
- description: Verify agent_output.json contains a usable triage verdict before any GitHub writes.
4
- inputs:
5
- output-file:
6
- description: Path to agent_output.json.
7
- required: true
8
- issue-number:
9
- description: Issue number that every triage outcome must target.
10
- required: true
11
- outputs:
12
- valid:
13
- description: Whether the output contains a usable triage comment with a verdict.
14
- value: ${{ steps.validate.outputs.valid }}
15
- outcome:
16
- description: "Deterministic triage outcome: pass, needs-info, needs-maintainer, block, or invalid."
17
- value: ${{ steps.validate.outputs.outcome }}
18
- runs:
19
- using: composite
20
- steps:
21
- - name: Validate triage outcome
22
- id: validate
23
- shell: bash
24
- env:
25
- ISSUE_NUMBER: ${{ inputs.issue-number }}
26
- OUTPUT_FILE: ${{ inputs.output-file }}
27
- run: |
28
- set -euo pipefail
29
-
30
- outcome="$(bash "${{ github.action_path }}/validate-triage-output.sh" "$OUTPUT_FILE" "$ISSUE_NUMBER")"
31
- echo "outcome=$outcome" >> "$GITHUB_OUTPUT"
32
- echo "valid=$([ "$outcome" != 'invalid' ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
33
-
34
- if [ "$outcome" = 'invalid' ]; then
35
- echo "::warning::Agent output has no usable triage outcome. It will not be applied."
36
- fi
1
+ # Managed by @plainconceptsplatform/workflows. Source: loops/actions/validate-triage-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
+ name: Validate triage output
3
+ description: Verify agent_output.json contains a usable triage verdict before any GitHub writes.
4
+ inputs:
5
+ output-file:
6
+ description: Path to agent_output.json.
7
+ required: true
8
+ issue-number:
9
+ description: Issue number that every triage outcome must target.
10
+ required: true
11
+ outputs:
12
+ valid:
13
+ description: Whether the output contains a usable triage comment with a verdict.
14
+ value: ${{ steps.validate.outputs.valid }}
15
+ outcome:
16
+ description: "Deterministic triage outcome: pass, needs-info, needs-maintainer, block, or invalid."
17
+ value: ${{ steps.validate.outputs.outcome }}
18
+ runs:
19
+ using: composite
20
+ steps:
21
+ - name: Validate triage outcome
22
+ id: validate
23
+ shell: bash
24
+ env:
25
+ ISSUE_NUMBER: ${{ inputs.issue-number }}
26
+ OUTPUT_FILE: ${{ inputs.output-file }}
27
+ run: |
28
+ set -euo pipefail
29
+
30
+ outcome="$(bash "${{ github.action_path }}/validate-triage-output.sh" "$OUTPUT_FILE" "$ISSUE_NUMBER")"
31
+ echo "outcome=$outcome" >> "$GITHUB_OUTPUT"
32
+ echo "valid=$([ "$outcome" != 'invalid' ] && echo true || echo false)" >> "$GITHUB_OUTPUT"
33
+
34
+ if [ "$outcome" = 'invalid' ]; then
35
+ echo "::warning::Agent output has no usable triage outcome. It will not be applied."
36
+ fi
@@ -1,9 +1,9 @@
1
- # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-composite-actions/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
- name: Verify composite actions
3
- description: Check every local composite action manifest parses and uses only contexts a composite action actually has.
4
- runs:
5
- using: composite
6
- steps:
7
- - name: Validate composite action manifests
8
- shell: bash
9
- run: bash "${GITHUB_ACTION_PATH}/verify-composite-actions.sh"
1
+ # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-composite-actions/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
+ name: Verify composite actions
3
+ description: Check every local composite action manifest parses and uses only contexts a composite action actually has.
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Validate composite action manifests
8
+ shell: bash
9
+ run: bash "${GITHUB_ACTION_PATH}/verify-composite-actions.sh"
@@ -1,9 +1,9 @@
1
- # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-refine-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
- name: Verify refine output validation
3
- description: Exercise deterministic Refine output validation regressions.
4
- runs:
5
- using: composite
6
- steps:
7
- - name: Verify refinement outcomes
8
- shell: bash
9
- run: bash "${{ github.action_path }}/verify-refine-output.sh"
1
+ # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-refine-output/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
+ name: Verify refine output validation
3
+ description: Exercise deterministic Refine output validation regressions.
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Verify refinement outcomes
8
+ shell: bash
9
+ run: bash "${{ github.action_path }}/verify-refine-output.sh"
@@ -1,9 +1,9 @@
1
- # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-route-matrix/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
- name: Verify route matrix
3
- description: Exercise the router's classifier against every supported event, and check that each route and dispatch operation has a job in work-router.yml.
4
- runs:
5
- using: composite
6
- steps:
7
- - name: Run route matrix verification
8
- shell: bash
9
- run: bash "${GITHUB_ACTION_PATH}/verify-route-matrix.sh"
1
+ # Managed by @plainconceptsplatform/workflows. Source: loops/actions/verify-route-matrix/action.yml. Update with workflows update --force; consumer edits may be overwritten.
2
+ name: Verify route matrix
3
+ description: Exercise the router's classifier against every supported event, and check that each route and dispatch operation has a job in work-router.yml.
4
+ runs:
5
+ using: composite
6
+ steps:
7
+ - name: Run route matrix verification
8
+ shell: bash
9
+ run: bash "${GITHUB_ACTION_PATH}/verify-route-matrix.sh"
@@ -2414,6 +2414,21 @@ if [ -f "$ERROR_REPORT_YML" ]; then
2414
2414
  ok(p.isQuiet(null, now, 30) === false, "no closing date is not quiet");
2415
2415
  ok(p.parseVersion("# Managed by @plainconceptsplatform/workflows@1.2.3. Source: x") === "1.2.3", "the version has no trailing full stop");
2416
2416
  ok(p.parseVersion("nothing here") === "unknown", "no version reads as unknown");
2417
+ // The layer that still got through: a secret the consumer never set, an agent failure the
2418
+ // worker had already retried, a lint check failing on a pull request, an outdated install.
2419
+ ok(p.severityOf("missing-secret") === "consumer", "a missing secret belongs to the consumer");
2420
+ ok(p.causeFromStep("Validate CODEX_API_KEY or OPENAI_API_KEY secret") === "missing-secret", "the secret check is read from its step name");
2421
+ ok(p.causeFromStep("Execute OpenCode CLI") === null, "any other step is left to the catalogue");
2422
+ const held = p.select([f("s", 39, "consumer"), f("u", 2, "unknown"), f("k", 2, "package-bug")], { minOccurrences: 2, minUnknown: 3, maxFindings: 5 });
2423
+ ok(held.file.map((x) => x.patternId).join() === "k", "a consumer cause and an undiagnosed pair are held, a diagnosed pair is filed");
2424
+ const retry = (conclusion) => [{ steps: [{ name: "Execute OpenCode CLI", conclusion: "failure" }] }, { steps: [{ name: "Send the work back through the router", conclusion }] }];
2425
+ ok(p.wasRetried(retry("success")) === true, "a run whose retry was sent is answered");
2426
+ ok(p.wasRetried(retry("skipped")) === false, "a run that parked is not");
2427
+ ok(p.isReviewCheck({ workflow: "agentics-checks.yml", event: "pull_request" }) === true, "a check failing on a pull request did its job");
2428
+ ok(p.isReviewCheck({ workflow: "agentics-checks.yml", event: "push" }) === false, "a check failing on the default branch is read");
2429
+ ok(p.isOutdated("1.6.41", "v1.10.0") === true && p.isOutdated("1.10.0", "v1.10.1") === false, "only a minor or more behind is outdated");
2430
+ ok(p.isOutdated("unknown", "v1.10.0") === false && p.isOutdated("1.9.0", "") === false, "an unknown version files as before");
2431
+ ok(p.latestVersion(["v1.9.4", "v1.10.0", "v0.28.11-alpha.1", "v1.8.3"]) === "v1.10.0", "the newest tag is read numerically, prereleases left out");
2417
2432
  if (bad.length) { console.error(bad.join("\n")); process.exit(1); }
2418
2433
  '
2419
2434
  if node -e "$policy_js" "$POLICY_CJS" 2>/tmp/policy-err; then
@@ -2432,6 +2447,9 @@ if [ -f "$ERROR_REPORT_YML" ]; then
2432
2447
  er "patternId === 'log-unavailable'\) \{ quiet\.unreadable \+= 1; continue; \}" 'files jobs whose log could not be read'
2433
2448
  er 'policy\.isQuiet\(' 'does not keep a recently closed signature quiet'
2434
2449
  er 'listAnnotations' 'does not read the job annotations, where the runner shutdown is written'
2450
+ er 'if \(policy\.wasRetried\(jobs\)\) \{ quiet\.retried \+= 1; continue; \}' 'files agent failures the worker already retried'
2451
+ er 'if \(policy\.isReviewCheck\(.*\{ quiet\.reviewChecks \+= 1; continue; \}' 'files lint checks that failed on a pull request'
2452
+ er 'if \(!existing && policy\.isOutdated\(' 'opens issues from installs a minor or more behind'
2435
2453
 
2436
2454
  # 4. No model. A model asked to summarise a failure paraphrases whatever the log held, which
2437
2455
  # is the one thing that must not cross the boundary. This job stays deterministic.
@@ -2626,6 +2644,8 @@ assert "a dispatched apply-review carries its attempt count" 3 \
2626
2644
  "$(route_field attempts EVENT=workflow_dispatch OPERATION=apply-review INPUT_PR_NUMBER=9 INPUT_ATTEMPTS_SO_FAR=3)"
2627
2645
  assert "a dispatched refine still carries its mode alongside the count" rerefine \
2628
2646
  "$(route_field refine-mode EVENT=workflow_dispatch OPERATION=refine INPUT_ISSUE_NUMBER=42 INPUT_MODE=rerefine INPUT_ATTEMPTS_SO_FAR=3)"
2647
+ assert "the hourly sweep's assume pass reaches refine in assume mode" assume \
2648
+ "$(route_field refine-mode EVENT=workflow_dispatch OPERATION=refine INPUT_ISSUE_NUMBER=42 INPUT_MODE=assume)"
2629
2649
 
2630
2650
  if [ "$RETRY_OK" -eq 1 ]; then PASS=$((PASS + 1)); else FAIL=$((FAIL + 1)); fi
2631
2651
 
@@ -1,121 +1,121 @@
1
- # Managed by @plainconceptsplatform/workflows. Source: loops/templates/agentics/agentics-maintenance.yml. Update with `workflows update --force`; consumer edits may be overwritten.
2
- # Derived from the gh-aw v0.87.5 maintenance workflow.
3
- # Copy provenance is documented in docs/ownership.md.
4
- name: Agentic Maintenance
5
-
6
- on:
7
- schedule:
8
- - cron: "37 0 * * *"
9
- workflow_dispatch:
10
- inputs:
11
- operation:
12
- description: Optional maintenance operation to run
13
- required: false
14
- type: choice
15
- default: ""
16
- options:
17
- - ""
18
- - disable
19
- - enable
20
- - update
21
- - upgrade
22
- - safe_outputs
23
- - create_labels
24
- - activity_report
25
- - close_agentic_workflows_issues
26
- - clean_cache_memories
27
- - update_pull_request_branches
28
- - validate
29
- - forecast
30
- run_url:
31
- description: Run URL or run ID required for safe_outputs
32
- required: false
33
- type: string
34
- default: ""
35
- workflow_call:
36
- inputs:
37
- operation:
38
- required: false
39
- type: string
40
- default: ""
41
- run_url:
42
- required: false
43
- type: string
44
- default: ""
45
-
46
- permissions: {}
47
-
48
- jobs:
49
- close-expired-discussions:
50
- if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
51
- runs-on: agents-arc
52
- permissions:
53
- discussions: write
54
- steps:
55
- - name: Setup Scripts
56
- uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
57
- with:
58
- destination: ${{ runner.temp }}/gh-aw/actions
59
- - name: Close expired discussions
60
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
61
- with:
62
- script: |
63
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
64
- setupGlobals(core, github, context, exec, io, getOctokit);
65
- const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_discussions.cjs');
66
- await main();
67
- close-expired-issues:
68
- if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
69
- runs-on: agents-arc
70
- permissions:
71
- issues: write
72
- steps:
73
- - name: Setup Scripts
74
- uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
75
- with:
76
- destination: ${{ runner.temp }}/gh-aw/actions
77
- - name: Close expired issues
78
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
79
- with:
80
- script: |
81
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
82
- setupGlobals(core, github, context, exec, io, getOctokit);
83
- const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_issues.cjs');
84
- await main();
85
- close-expired-pull-requests:
86
- if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
87
- runs-on: agents-arc
88
- permissions:
89
- pull-requests: write
90
- steps:
91
- - name: Setup Scripts
92
- uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
93
- with:
94
- destination: ${{ runner.temp }}/gh-aw/actions
95
- - name: Close expired pull requests
96
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
97
- with:
98
- script: |
99
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
100
- setupGlobals(core, github, context, exec, io, getOctokit);
101
- const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_pull_requests.cjs');
102
- await main();
103
- cleanup-cache-memory:
104
- if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '' || inputs.operation == 'clean_cache_memories') }}
105
- runs-on: agents-arc
106
- permissions:
107
- actions: write
108
- steps:
109
- - name: Setup Scripts
110
- uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
111
- with:
112
- destination: ${{ runner.temp }}/gh-aw/actions
113
- - name: Cleanup outdated cache-memory entries
114
- uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
115
- with:
116
- script: |
117
- const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
118
- setupGlobals(core, github, context, exec, io, getOctokit);
119
- const { main } = require('${{ runner.temp }}/gh-aw/actions/cleanup_cache_memory.cjs');
120
- await main();
121
- #
1
+ # Managed by @plainconceptsplatform/workflows. Source: loops/templates/agentics/agentics-maintenance.yml. Update with `workflows update --force`; consumer edits may be overwritten.
2
+ # Derived from the gh-aw v0.87.5 maintenance workflow.
3
+ # Copy provenance is documented in docs/ownership.md.
4
+ name: Agentic Maintenance
5
+
6
+ on:
7
+ schedule:
8
+ - cron: "37 0 * * *"
9
+ workflow_dispatch:
10
+ inputs:
11
+ operation:
12
+ description: Optional maintenance operation to run
13
+ required: false
14
+ type: choice
15
+ default: ""
16
+ options:
17
+ - ""
18
+ - disable
19
+ - enable
20
+ - update
21
+ - upgrade
22
+ - safe_outputs
23
+ - create_labels
24
+ - activity_report
25
+ - close_agentic_workflows_issues
26
+ - clean_cache_memories
27
+ - update_pull_request_branches
28
+ - validate
29
+ - forecast
30
+ run_url:
31
+ description: Run URL or run ID required for safe_outputs
32
+ required: false
33
+ type: string
34
+ default: ""
35
+ workflow_call:
36
+ inputs:
37
+ operation:
38
+ required: false
39
+ type: string
40
+ default: ""
41
+ run_url:
42
+ required: false
43
+ type: string
44
+ default: ""
45
+
46
+ permissions: {}
47
+
48
+ jobs:
49
+ close-expired-discussions:
50
+ if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
51
+ runs-on: agents-arc
52
+ permissions:
53
+ discussions: write
54
+ steps:
55
+ - name: Setup Scripts
56
+ uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
57
+ with:
58
+ destination: ${{ runner.temp }}/gh-aw/actions
59
+ - name: Close expired discussions
60
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
61
+ with:
62
+ script: |
63
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
64
+ setupGlobals(core, github, context, exec, io, getOctokit);
65
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_discussions.cjs');
66
+ await main();
67
+ close-expired-issues:
68
+ if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
69
+ runs-on: agents-arc
70
+ permissions:
71
+ issues: write
72
+ steps:
73
+ - name: Setup Scripts
74
+ uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
75
+ with:
76
+ destination: ${{ runner.temp }}/gh-aw/actions
77
+ - name: Close expired issues
78
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
79
+ with:
80
+ script: |
81
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
82
+ setupGlobals(core, github, context, exec, io, getOctokit);
83
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_issues.cjs');
84
+ await main();
85
+ close-expired-pull-requests:
86
+ if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '') }}
87
+ runs-on: agents-arc
88
+ permissions:
89
+ pull-requests: write
90
+ steps:
91
+ - name: Setup Scripts
92
+ uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
93
+ with:
94
+ destination: ${{ runner.temp }}/gh-aw/actions
95
+ - name: Close expired pull requests
96
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
97
+ with:
98
+ script: |
99
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
100
+ setupGlobals(core, github, context, exec, io, getOctokit);
101
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/close_expired_pull_requests.cjs');
102
+ await main();
103
+ cleanup-cache-memory:
104
+ if: ${{ !(github.event.repository.fork) && github.event_name != 'push' && (github.event_name != 'workflow_dispatch' && github.event_name != 'workflow_call' || inputs.operation == '' || inputs.operation == 'clean_cache_memories') }}
105
+ runs-on: agents-arc
106
+ permissions:
107
+ actions: write
108
+ steps:
109
+ - name: Setup Scripts
110
+ uses: github/gh-aw-actions/setup@2a78d04403fdc6907d0f05327cffac9dbad5312d # v0.87.5
111
+ with:
112
+ destination: ${{ runner.temp }}/gh-aw/actions
113
+ - name: Cleanup outdated cache-memory entries
114
+ uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v9.0.0
115
+ with:
116
+ script: |
117
+ const { setupGlobals } = require('${{ runner.temp }}/gh-aw/actions/setup_globals.cjs');
118
+ setupGlobals(core, github, context, exec, io, getOctokit);
119
+ const { main } = require('${{ runner.temp }}/gh-aw/actions/cleanup_cache_memory.cjs');
120
+ await main();
121
+ #
@@ -1,109 +1,109 @@
1
- name: Bug report
2
- description: Report a defect
3
- labels: ["bug"]
4
- body:
5
- - type: markdown
6
- attributes:
7
- value: |
8
- Thanks for reporting. Do **not** include real secrets or production data use placeholders.
9
-
10
- For security vulnerabilities, contact the team directly instead of filing a public issue.
11
- - type: dropdown
12
- id: severity
13
- attributes:
14
- label: Severity
15
- options:
16
- - Production-down / data loss
17
- - Major broken core flow
18
- - Minor broken edge case
19
- - Cosmetic / polish
20
- validations:
21
- required: true
22
- - type: dropdown
23
- id: frequency
24
- attributes:
25
- label: Frequency
26
- description: How often does this happen?
27
- options:
28
- - Always
29
- - Intermittent
30
- - Only once
31
- validations:
32
- required: true
33
- - type: textarea
34
- id: what-happened
35
- attributes:
36
- label: What happened?
37
- description: A clear description of the bug and its impact.
38
- validations:
39
- required: true
40
- - type: textarea
41
- id: repro
42
- attributes:
43
- label: Steps to reproduce
44
- description: How can a maintainer reproduce it?
45
- placeholder: |
46
- 1. Go to ...
47
- 2. Do ...
48
- 3. See error
49
- validations:
50
- required: true
51
- - type: textarea
52
- id: expected
53
- attributes:
54
- label: Expected behavior
55
- validations:
56
- required: true
57
- - type: dropdown
58
- id: area
59
- attributes:
60
- label: Where does it occur?
61
- options:
62
- - Backend
63
- - Frontend
64
- - Both
65
- - CLI / tooling
66
- - Configuration / deployment
67
- - Documentation
68
- - Other
69
- validations:
70
- required: true
71
- - type: textarea
72
- id: acceptance
73
- attributes:
74
- label: Acceptance criteria
75
- description: How will we know it's fixed? A checklist a reviewer can verify (include the test that should turn green).
76
- placeholder: |
77
- - [ ] ...
78
- - [ ] A test that fails before the fix and passes after
79
- validations:
80
- required: false
81
- - type: textarea
82
- id: open-questions
83
- attributes:
84
- label: Open questions
85
- description: Decisions a maintainer must make before this can be planned. Leave blank if none.
86
- validations:
87
- required: false
88
- - type: textarea
89
- id: environment
90
- attributes:
91
- label: Environment
92
- description: Local vs deployed, branch/commit, OS, runtime versions if relevant.
93
- validations:
94
- required: false
95
- - type: textarea
96
- id: logs
97
- attributes:
98
- label: Logs / screenshots
99
- description: Paste relevant logs or screenshots. Redact secrets and PII.
100
- render: shell
101
- validations:
102
- required: false
103
- - type: textarea
104
- id: related
105
- attributes:
106
- label: Related links
107
- description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
108
- validations:
109
- required: false
1
+ name: Bug report
2
+ description: Report a defect
3
+ labels: ["bug"]
4
+ body:
5
+ - type: markdown
6
+ attributes:
7
+ value: |
8
+ Thanks for reporting. Do **not** include real secrets or production data use placeholders.
9
+
10
+ For security vulnerabilities, contact the team directly instead of filing a public issue.
11
+ - type: dropdown
12
+ id: severity
13
+ attributes:
14
+ label: Severity
15
+ options:
16
+ - Production-down / data loss
17
+ - Major broken core flow
18
+ - Minor broken edge case
19
+ - Cosmetic / polish
20
+ validations:
21
+ required: true
22
+ - type: dropdown
23
+ id: frequency
24
+ attributes:
25
+ label: Frequency
26
+ description: How often does this happen?
27
+ options:
28
+ - Always
29
+ - Intermittent
30
+ - Only once
31
+ validations:
32
+ required: true
33
+ - type: textarea
34
+ id: what-happened
35
+ attributes:
36
+ label: What happened?
37
+ description: A clear description of the bug and its impact.
38
+ validations:
39
+ required: true
40
+ - type: textarea
41
+ id: repro
42
+ attributes:
43
+ label: Steps to reproduce
44
+ description: How can a maintainer reproduce it?
45
+ placeholder: |
46
+ 1. Go to ...
47
+ 2. Do ...
48
+ 3. See error
49
+ validations:
50
+ required: true
51
+ - type: textarea
52
+ id: expected
53
+ attributes:
54
+ label: Expected behavior
55
+ validations:
56
+ required: true
57
+ - type: dropdown
58
+ id: area
59
+ attributes:
60
+ label: Where does it occur?
61
+ options:
62
+ - Backend
63
+ - Frontend
64
+ - Both
65
+ - CLI / tooling
66
+ - Configuration / deployment
67
+ - Documentation
68
+ - Other
69
+ validations:
70
+ required: true
71
+ - type: textarea
72
+ id: acceptance
73
+ attributes:
74
+ label: Acceptance criteria
75
+ description: How will we know it's fixed? A checklist a reviewer can verify (include the test that should turn green).
76
+ placeholder: |
77
+ - [ ] ...
78
+ - [ ] A test that fails before the fix and passes after
79
+ validations:
80
+ required: false
81
+ - type: textarea
82
+ id: open-questions
83
+ attributes:
84
+ label: Open questions
85
+ description: Decisions a maintainer must make before this can be planned. Leave blank if none.
86
+ validations:
87
+ required: false
88
+ - type: textarea
89
+ id: environment
90
+ attributes:
91
+ label: Environment
92
+ description: Local vs deployed, branch/commit, OS, runtime versions if relevant.
93
+ validations:
94
+ required: false
95
+ - type: textarea
96
+ id: logs
97
+ attributes:
98
+ label: Logs / screenshots
99
+ description: Paste relevant logs or screenshots. Redact secrets and PII.
100
+ render: shell
101
+ validations:
102
+ required: false
103
+ - type: textarea
104
+ id: related
105
+ attributes:
106
+ label: Related links
107
+ description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
108
+ validations:
109
+ required: false