@plainconceptsplatform/workflows 1.13.0 → 1.14.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/loops/actions/add-issue-labels/action.yml +50 -50
- package/loops/actions/agent-output.cjs +17 -17
- package/loops/actions/apply-agent-bundle/action.yml +24 -24
- package/loops/actions/apply-agent-comments/action.yml +42 -42
- package/loops/actions/apply-agent-labels/action.yml +55 -55
- package/loops/actions/cleanup-artifacts/action.yml +91 -91
- package/loops/actions/close-agent-issues/action.yml +43 -43
- package/loops/actions/create-issue-comment/action.yml +29 -29
- package/loops/actions/download-agent-output/action.yml +53 -53
- package/loops/actions/link-pr-to-issue/action.yml +40 -40
- package/loops/actions/list-open-issues/action.yml +33 -33
- package/loops/actions/load-issue-context/action.yml +45 -45
- package/loops/actions/merge-agent-pr/action.yml +49 -49
- package/loops/actions/merge-dependabot/action.yml +10 -2
- package/loops/actions/merge-dependabot/merge-dependabot.mjs +47 -17
- package/loops/actions/remove-issue-labels/action.yml +37 -37
- package/loops/actions/update-agent-issues/action.yml +58 -58
- package/loops/actions/validate-review-output/action.yml +35 -35
- package/loops/actions/validate-triage-output/action.yml +36 -36
- package/loops/actions/verify-composite-actions/action.yml +9 -9
- package/loops/actions/verify-refine-output/action.yml +9 -9
- package/loops/actions/verify-route-matrix/action.yml +9 -9
- package/loops/actions/verify-route-matrix/verify-route-matrix.sh +7 -2
- package/loops/templates/agentics/agentics-maintenance.yml +121 -121
- package/loops/templates/dependabot-merge/.github/workflows/dependabot-merge.yml +3 -1
- package/loops/templates/issues/bug_report.yml +109 -109
- package/loops/templates/issues/feature_request.yml +75 -75
- package/loops/workflows/agent-implement.md +13 -12
- package/loops/workflows/shared/opencode-ci.md +17 -5
- package/loops/workflows/shared/platform-defaults.md +53 -53
- package/loops/workflows/work-router.yml +4 -0
- package/package.json +2 -2
|
@@ -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
|
+
#
|
|
@@ -46,7 +46,8 @@ jobs:
|
|
|
46
46
|
timeout-minutes: 15
|
|
47
47
|
permissions:
|
|
48
48
|
# Merging, deleting the merged branch, approving where a ruleset asks for it, and commenting
|
|
49
|
-
# `@dependabot rebase`. All of it through the API.
|
|
49
|
+
# `@dependabot rebase`. All of it through the API. checks and statuses: the reads run on
|
|
50
|
+
# this token, since the App installation may hold no Checks permission.
|
|
50
51
|
contents: write
|
|
51
52
|
pull-requests: write
|
|
52
53
|
issues: write
|
|
@@ -72,6 +73,7 @@ jobs:
|
|
|
72
73
|
- uses: ./.github/actions/merge-dependabot
|
|
73
74
|
with:
|
|
74
75
|
token: ${{ steps.app-token.outputs.token || github.token }}
|
|
76
|
+
read-token: ${{ github.token }}
|
|
75
77
|
scope: ${{ vars.DEPENDABOT_MERGE || env.DEPENDABOT_MERGE }}
|
|
76
78
|
merge-without-checks: ${{ env.DEPENDABOT_MERGE_WITHOUT_CHECKS }}
|
|
77
79
|
post-merge-event: ""
|
|
@@ -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
|
|
@@ -1,75 +1,75 @@
|
|
|
1
|
-
name: Feature request
|
|
2
|
-
description: Propose a small improvement or new capability
|
|
3
|
-
labels: ["enhancement"]
|
|
4
|
-
body:
|
|
5
|
-
- type: markdown
|
|
6
|
-
attributes:
|
|
7
|
-
value: |
|
|
8
|
-
This template is for small, well-scoped improvements a focused
|
|
9
|
-
enhancement, a missing convenience, a quality-of-life fix.
|
|
10
|
-
|
|
11
|
-
For large features, architecture changes, or cross-cutting work,
|
|
12
|
-
open a planning issue or an ADR instead.
|
|
13
|
-
|
|
14
|
-
Do **not** include real secrets or production data use placeholders.
|
|
15
|
-
- type: dropdown
|
|
16
|
-
id: scope
|
|
17
|
-
attributes:
|
|
18
|
-
label: Scope
|
|
19
|
-
description: How big is this change? If it doesn't fit Small or Medium, use a planning issue instead.
|
|
20
|
-
options:
|
|
21
|
-
- Small a single file or component, no refactoring
|
|
22
|
-
- Medium touches a few files or a feature area, may need minor refactoring
|
|
23
|
-
validations:
|
|
24
|
-
required: true
|
|
25
|
-
- type: textarea
|
|
26
|
-
id: current-behavior
|
|
27
|
-
attributes:
|
|
28
|
-
label: Current behavior
|
|
29
|
-
description: How does it work today? Describe the existing behavior or limitation.
|
|
30
|
-
validations:
|
|
31
|
-
required: true
|
|
32
|
-
- type: textarea
|
|
33
|
-
id: problem
|
|
34
|
-
attributes:
|
|
35
|
-
label: Problem / motivation
|
|
36
|
-
description: What user or business need does this address? Why is the current behavior a problem?
|
|
37
|
-
validations:
|
|
38
|
-
required: true
|
|
39
|
-
- type: textarea
|
|
40
|
-
id: proposal
|
|
41
|
-
attributes:
|
|
42
|
-
label: Proposed solution
|
|
43
|
-
description: What would you like to happen?
|
|
44
|
-
validations:
|
|
45
|
-
required: true
|
|
46
|
-
- type: textarea
|
|
47
|
-
id: alternatives
|
|
48
|
-
attributes:
|
|
49
|
-
label: Alternatives considered
|
|
50
|
-
validations:
|
|
51
|
-
required: false
|
|
52
|
-
- type: textarea
|
|
53
|
-
id: acceptance
|
|
54
|
-
attributes:
|
|
55
|
-
label: Acceptance criteria
|
|
56
|
-
description: A checklist a reviewer can verify when this is done (include the tests).
|
|
57
|
-
placeholder: |
|
|
58
|
-
- [ ] ...
|
|
59
|
-
- [ ] Tests
|
|
60
|
-
validations:
|
|
61
|
-
required: false
|
|
62
|
-
- type: textarea
|
|
63
|
-
id: open-questions
|
|
64
|
-
attributes:
|
|
65
|
-
label: Open questions
|
|
66
|
-
description: Decisions a maintainer must make before this can be planned. Leave blank if none.
|
|
67
|
-
validations:
|
|
68
|
-
required: false
|
|
69
|
-
- type: textarea
|
|
70
|
-
id: related
|
|
71
|
-
attributes:
|
|
72
|
-
label: Related links
|
|
73
|
-
description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
|
|
74
|
-
validations:
|
|
75
|
-
required: false
|
|
1
|
+
name: Feature request
|
|
2
|
+
description: Propose a small improvement or new capability
|
|
3
|
+
labels: ["enhancement"]
|
|
4
|
+
body:
|
|
5
|
+
- type: markdown
|
|
6
|
+
attributes:
|
|
7
|
+
value: |
|
|
8
|
+
This template is for small, well-scoped improvements a focused
|
|
9
|
+
enhancement, a missing convenience, a quality-of-life fix.
|
|
10
|
+
|
|
11
|
+
For large features, architecture changes, or cross-cutting work,
|
|
12
|
+
open a planning issue or an ADR instead.
|
|
13
|
+
|
|
14
|
+
Do **not** include real secrets or production data use placeholders.
|
|
15
|
+
- type: dropdown
|
|
16
|
+
id: scope
|
|
17
|
+
attributes:
|
|
18
|
+
label: Scope
|
|
19
|
+
description: How big is this change? If it doesn't fit Small or Medium, use a planning issue instead.
|
|
20
|
+
options:
|
|
21
|
+
- Small a single file or component, no refactoring
|
|
22
|
+
- Medium touches a few files or a feature area, may need minor refactoring
|
|
23
|
+
validations:
|
|
24
|
+
required: true
|
|
25
|
+
- type: textarea
|
|
26
|
+
id: current-behavior
|
|
27
|
+
attributes:
|
|
28
|
+
label: Current behavior
|
|
29
|
+
description: How does it work today? Describe the existing behavior or limitation.
|
|
30
|
+
validations:
|
|
31
|
+
required: true
|
|
32
|
+
- type: textarea
|
|
33
|
+
id: problem
|
|
34
|
+
attributes:
|
|
35
|
+
label: Problem / motivation
|
|
36
|
+
description: What user or business need does this address? Why is the current behavior a problem?
|
|
37
|
+
validations:
|
|
38
|
+
required: true
|
|
39
|
+
- type: textarea
|
|
40
|
+
id: proposal
|
|
41
|
+
attributes:
|
|
42
|
+
label: Proposed solution
|
|
43
|
+
description: What would you like to happen?
|
|
44
|
+
validations:
|
|
45
|
+
required: true
|
|
46
|
+
- type: textarea
|
|
47
|
+
id: alternatives
|
|
48
|
+
attributes:
|
|
49
|
+
label: Alternatives considered
|
|
50
|
+
validations:
|
|
51
|
+
required: false
|
|
52
|
+
- type: textarea
|
|
53
|
+
id: acceptance
|
|
54
|
+
attributes:
|
|
55
|
+
label: Acceptance criteria
|
|
56
|
+
description: A checklist a reviewer can verify when this is done (include the tests).
|
|
57
|
+
placeholder: |
|
|
58
|
+
- [ ] ...
|
|
59
|
+
- [ ] Tests
|
|
60
|
+
validations:
|
|
61
|
+
required: false
|
|
62
|
+
- type: textarea
|
|
63
|
+
id: open-questions
|
|
64
|
+
attributes:
|
|
65
|
+
label: Open questions
|
|
66
|
+
description: Decisions a maintainer must make before this can be planned. Leave blank if none.
|
|
67
|
+
validations:
|
|
68
|
+
required: false
|
|
69
|
+
- type: textarea
|
|
70
|
+
id: related
|
|
71
|
+
attributes:
|
|
72
|
+
label: Related links
|
|
73
|
+
description: Links to related issues, PRs, discussions, or docs. Leave blank if none.
|
|
74
|
+
validations:
|
|
75
|
+
required: false
|