issue-flow 0.18.0 → 0.19.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.
- package/README.md +34 -100
- package/dist/agent-EWKA7357.js +32 -0
- package/dist/{analyze-Q4ONIWRZ.js → analyze-Z7ODC27F.js} +42 -41
- package/dist/analyze-Z7ODC27F.js.map +1 -0
- package/dist/{apply-EEFPY2W4.js → apply-VNSWQS6O.js} +22 -24
- package/dist/apply-VNSWQS6O.js.map +1 -0
- package/dist/artifacts-AMJQJFFV.js +82 -0
- package/dist/artifacts-AMJQJFFV.js.map +1 -0
- package/dist/{bench-WWWXLTFH.js → bench-ZJEIACUK.js} +42 -42
- package/dist/{chunk-RYOUZ6EK.js → chunk-23VHVVKW.js} +3 -3
- package/dist/chunk-2EYLOS5I.js +99 -0
- package/dist/chunk-2EYLOS5I.js.map +1 -0
- package/dist/{chunk-XUEMATVY.js → chunk-2EZW4X57.js} +28 -25
- package/dist/chunk-2EZW4X57.js.map +1 -0
- package/dist/{chunk-LGHND47K.js → chunk-2Q6PG3MT.js} +15 -15
- package/dist/chunk-2Q6PG3MT.js.map +1 -0
- package/dist/{chunk-C5TL7T4V.js → chunk-2YM2VH6R.js} +2 -2
- package/dist/{chunk-OODXFCQV.js → chunk-2YYP7AE6.js} +14 -16
- package/dist/{chunk-OODXFCQV.js.map → chunk-2YYP7AE6.js.map} +1 -1
- package/dist/chunk-3JD25HHJ.js +278 -0
- package/dist/chunk-3JD25HHJ.js.map +1 -0
- package/dist/{chunk-PMLE7KAQ.js → chunk-46S7APLQ.js} +30 -14
- package/dist/chunk-46S7APLQ.js.map +1 -0
- package/dist/chunk-6AOZCWN2.js +21 -0
- package/dist/chunk-6AOZCWN2.js.map +1 -0
- package/dist/{chunk-QPGEFLMY.js → chunk-7CMVL4X6.js} +7 -7
- package/dist/chunk-7MJGYPHF.js +1571 -0
- package/dist/chunk-7MJGYPHF.js.map +1 -0
- package/dist/chunk-7ZZUSMBJ.js +35 -0
- package/dist/chunk-7ZZUSMBJ.js.map +1 -0
- package/dist/{chunk-DUS5ZNKL.js → chunk-DIMDAYZS.js} +7 -6
- package/dist/{chunk-DGRTJD5R.js → chunk-DXH4TQRB.js} +7 -7
- package/dist/{chunk-CRGIQFUQ.js → chunk-E2H3JV2E.js} +3 -1
- package/dist/chunk-E2H3JV2E.js.map +1 -0
- package/dist/{chunk-YUNBOUQH.js → chunk-ERAG5IQB.js} +8 -8
- package/dist/{chunk-ZVZMWNCG.js → chunk-F2NFJ27Z.js} +2 -2
- package/dist/{chunk-SOM4QA6C.js → chunk-GD7JZMSJ.js} +93 -18
- package/dist/chunk-GD7JZMSJ.js.map +1 -0
- package/dist/{chunk-6K2LCFG6.js → chunk-HEHHQU4G.js} +70 -81
- package/dist/chunk-HEHHQU4G.js.map +1 -0
- package/dist/{chunk-34OCSKOB.js → chunk-HHXWAWU6.js} +159 -114
- package/dist/chunk-HHXWAWU6.js.map +1 -0
- package/dist/{chunk-E4I6MMHD.js → chunk-HWWB22HC.js} +152 -100
- package/dist/chunk-HWWB22HC.js.map +1 -0
- package/dist/chunk-IMB6FA2F.js +673 -0
- package/dist/chunk-IMB6FA2F.js.map +1 -0
- package/dist/{chunk-ECU7YO7S.js → chunk-IQYXXFRC.js} +22 -6
- package/dist/chunk-IQYXXFRC.js.map +1 -0
- package/dist/chunk-J6VJ5M2U.js +1201 -0
- package/dist/chunk-J6VJ5M2U.js.map +1 -0
- package/dist/{chunk-QJ44VG5G.js → chunk-KDQRNVBZ.js} +3 -3
- package/dist/{chunk-7UMMFOL2.js → chunk-LRWIP7QS.js} +39 -24
- package/dist/chunk-LRWIP7QS.js.map +1 -0
- package/dist/{chunk-LI35PIIS.js → chunk-LYC57OXF.js} +20 -117
- package/dist/chunk-LYC57OXF.js.map +1 -0
- package/dist/{chunk-HAKDLR6N.js → chunk-MAJ6QDRL.js} +65 -78
- package/dist/chunk-MAJ6QDRL.js.map +1 -0
- package/dist/{chunk-CWSQVHVV.js → chunk-MHA7Q3KU.js} +248 -102
- package/dist/chunk-MHA7Q3KU.js.map +1 -0
- package/dist/{chunk-TZYINKCC.js → chunk-MQTVMB7W.js} +33 -28
- package/dist/chunk-MQTVMB7W.js.map +1 -0
- package/dist/chunk-NP47HRX2.js +136 -0
- package/dist/chunk-NP47HRX2.js.map +1 -0
- package/dist/{chunk-EG2MGDP5.js → chunk-NYDAHE3Y.js} +52 -46
- package/dist/chunk-NYDAHE3Y.js.map +1 -0
- package/dist/{chunk-45WZ6GMI.js → chunk-P7ZYOC23.js} +16 -16
- package/dist/{chunk-3R27MJ5R.js → chunk-PFWHHYEO.js} +3 -3
- package/dist/{chunk-NEWNXZ65.js → chunk-PHPAK2L6.js} +28 -26
- package/dist/{chunk-NEWNXZ65.js.map → chunk-PHPAK2L6.js.map} +1 -1
- package/dist/{chunk-PPZ3K4YM.js → chunk-PRGPSNGA.js} +2 -2
- package/dist/{chunk-V7QOIQYC.js → chunk-RGFMQFX7.js} +9 -23
- package/dist/{chunk-V7QOIQYC.js.map → chunk-RGFMQFX7.js.map} +1 -1
- package/dist/{chunk-YVPZUN6X.js → chunk-TJVX42KY.js} +335 -38
- package/dist/chunk-TJVX42KY.js.map +1 -0
- package/dist/{chunk-HOAHMERN.js → chunk-UDRAD7MF.js} +21 -21
- package/dist/{chunk-QF7VEL3M.js → chunk-UHDXXLYH.js} +39 -127
- package/dist/chunk-UHDXXLYH.js.map +1 -0
- package/dist/{chunk-RNFUVKC3.js → chunk-UPAAZU4W.js} +30 -13
- package/dist/chunk-UPAAZU4W.js.map +1 -0
- package/dist/{chunk-L6HSKTQE.js → chunk-W7LZLJAF.js} +4 -4
- package/dist/{chunk-KMCS76ZW.js → chunk-WB2FVIUS.js} +44 -12
- package/dist/chunk-WB2FVIUS.js.map +1 -0
- package/dist/{chunk-SA6HXL4Y.js → chunk-WPHC6JBR.js} +9 -9
- package/dist/chunk-WPHC6JBR.js.map +1 -0
- package/dist/{chunk-KRAGAUKD.js → chunk-XHCP6ZNO.js} +201 -64
- package/dist/chunk-XHCP6ZNO.js.map +1 -0
- package/dist/{chunk-7F7LGMVO.js → chunk-XKR3VD2Z.js} +12 -12
- package/dist/{chunk-7F7LGMVO.js.map → chunk-XKR3VD2Z.js.map} +1 -1
- package/dist/{chunk-ICM463EO.js → chunk-XNK5UN2D.js} +5 -649
- package/dist/chunk-XNK5UN2D.js.map +1 -0
- package/dist/{chunk-LTH6XYZ3.js → chunk-XQLNZW7I.js} +40 -30
- package/dist/chunk-XQLNZW7I.js.map +1 -0
- package/dist/{chunk-62GVVZQO.js → chunk-ZAYATXJD.js} +32 -316
- package/dist/chunk-ZAYATXJD.js.map +1 -0
- package/dist/cli.js +127 -59
- package/dist/cli.js.map +1 -1
- package/dist/compat-YPDZB34U.js +24 -0
- package/dist/{config-LEBZZCJP.js → config-56B4OHZE.js} +20 -17
- package/dist/{contract-JH2WBIO6.js → contract-HWLFFL3F.js} +2 -2
- package/dist/{conventions-XOT6YW5L.js → conventions-DW2CM5I3.js} +20 -16
- package/dist/{conventions-XOT6YW5L.js.map → conventions-DW2CM5I3.js.map} +1 -1
- package/dist/db-5NU77PJA.js +264 -0
- package/dist/db-5NU77PJA.js.map +1 -0
- package/dist/diagnostics-UCTS2VUF.js +25 -0
- package/dist/execute-R7AVOLNG.js +38 -0
- package/dist/{generate-JGW5JSKB.js → generate-O7GUXLN4.js} +46 -43
- package/dist/generate-O7GUXLN4.js.map +1 -0
- package/dist/{git-A2IP32PQ.js → git-LCG45YXD.js} +2 -3
- package/dist/history-6GSURU3H.js +101 -0
- package/dist/history-6GSURU3H.js.map +1 -0
- package/dist/init-DD6DBRC5.js +28 -0
- package/dist/{operations-O4FORFIH.js → operations-HU5ZFEBA.js} +78 -52
- package/dist/operations-HU5ZFEBA.js.map +1 -0
- package/dist/{permissions-G4XCAESF.js → permissions-NNNSRC4P.js} +5 -6
- package/dist/plan-XR6B7EM3.js +38 -0
- package/dist/{policy-U5NBFAO5.js → policy-RFJOJQL6.js} +17 -15
- package/dist/{policy-U5NBFAO5.js.map → policy-RFJOJQL6.js.map} +1 -1
- package/dist/pr-OSCNJCOO.js +42 -0
- package/dist/pr-review-IKIYHFBO.js +33 -0
- package/dist/prd-HFDZJJQR.js +37 -0
- package/dist/{ps-76L6ZAZL.js → ps-AKRHGPSR.js} +26 -15
- package/dist/ps-AKRHGPSR.js.map +1 -0
- package/dist/{recorder-2BAKPBRA.js → recorder-T7426CKV.js} +11 -7
- package/dist/registry-DWRKD65A.js +17 -0
- package/dist/repository-TABBRW2C.js +80 -0
- package/dist/resume-GDXKK5XP.js +278 -0
- package/dist/resume-GDXKK5XP.js.map +1 -0
- package/dist/review-JJHMQA2O.js +38 -0
- package/dist/routing-FPNUVE7T.js +35 -0
- package/dist/run-RLCURLLL.js +61 -0
- package/dist/{session-publisher-KAJQRHNZ.js → session-publisher-Q5TNEZPX.js} +3 -3
- package/dist/session-publisher-Q5TNEZPX.js.map +1 -0
- package/dist/{state-manager-UPHO2EA2.js → state-manager-IGNTD4AB.js} +9 -4
- package/dist/state-manager-IGNTD4AB.js.map +1 -0
- package/dist/{usage-KTMYXAPF.js → usage-XW27AL5K.js} +69 -63
- package/dist/usage-XW27AL5K.js.map +1 -0
- package/dist/web-NCDBVZ5Y.js +205 -0
- package/dist/web-NCDBVZ5Y.js.map +1 -0
- package/package.json +20 -7
- package/prompts/analyze.md +16 -19
- package/prompts/execute.md +73 -144
- package/prompts/generate.md +23 -10
- package/prompts/plan.md +32 -60
- package/prompts/pr-review.md +58 -40
- package/prompts/pr.md +50 -16
- package/prompts/prd.md +26 -19
- package/prompts/review.md +41 -18
- package/web/public/app.js +109 -110
- package/dist/agent-HMZTXCRT.js +0 -30
- package/dist/analyze-Q4ONIWRZ.js.map +0 -1
- package/dist/apply-EEFPY2W4.js.map +0 -1
- package/dist/chunk-34OCSKOB.js.map +0 -1
- package/dist/chunk-62GVVZQO.js.map +0 -1
- package/dist/chunk-6K2LCFG6.js.map +0 -1
- package/dist/chunk-7UMMFOL2.js.map +0 -1
- package/dist/chunk-CRGIQFUQ.js.map +0 -1
- package/dist/chunk-CWSQVHVV.js.map +0 -1
- package/dist/chunk-E4I6MMHD.js.map +0 -1
- package/dist/chunk-ECU7YO7S.js.map +0 -1
- package/dist/chunk-EG2MGDP5.js.map +0 -1
- package/dist/chunk-HAKDLR6N.js.map +0 -1
- package/dist/chunk-ICM463EO.js.map +0 -1
- package/dist/chunk-KMCS76ZW.js.map +0 -1
- package/dist/chunk-KRAGAUKD.js.map +0 -1
- package/dist/chunk-LGHND47K.js.map +0 -1
- package/dist/chunk-LI35PIIS.js.map +0 -1
- package/dist/chunk-LTH6XYZ3.js.map +0 -1
- package/dist/chunk-PMLE7KAQ.js.map +0 -1
- package/dist/chunk-QF7VEL3M.js.map +0 -1
- package/dist/chunk-RNFUVKC3.js.map +0 -1
- package/dist/chunk-SA6HXL4Y.js.map +0 -1
- package/dist/chunk-SOM4QA6C.js.map +0 -1
- package/dist/chunk-TZYINKCC.js.map +0 -1
- package/dist/chunk-WCCZJL7W.js +0 -141
- package/dist/chunk-WCCZJL7W.js.map +0 -1
- package/dist/chunk-XEYH6ZZI.js +0 -289
- package/dist/chunk-XEYH6ZZI.js.map +0 -1
- package/dist/chunk-XUEMATVY.js.map +0 -1
- package/dist/chunk-XZUEFTUP.js +0 -243
- package/dist/chunk-XZUEFTUP.js.map +0 -1
- package/dist/chunk-YVPZUN6X.js.map +0 -1
- package/dist/diagnostics-HTCWF7F4.js +0 -23
- package/dist/execute-LELOSR5T.js +0 -37
- package/dist/generate-JGW5JSKB.js.map +0 -1
- package/dist/init-TO6MUXO4.js +0 -26
- package/dist/operations-O4FORFIH.js.map +0 -1
- package/dist/plan-OXAT344Q.js +0 -34
- package/dist/pr-UZHNKKZC.js +0 -39
- package/dist/pr-review-Q4ACAWDM.js +0 -32
- package/dist/prd-6CYEMLDY.js +0 -33
- package/dist/ps-76L6ZAZL.js.map +0 -1
- package/dist/registry-XLHHYLTR.js +0 -15
- package/dist/resume-URCU6CIJ.js +0 -244
- package/dist/resume-URCU6CIJ.js.map +0 -1
- package/dist/review-LVZT2TMW.js +0 -35
- package/dist/routing-EK6RBZM4.js +0 -33
- package/dist/run-2RXJCJKT.js +0 -56
- package/dist/usage-KTMYXAPF.js.map +0 -1
- package/dist/web-B5UPHHR5.js +0 -172
- package/dist/web-B5UPHHR5.js.map +0 -1
- /package/dist/{agent-HMZTXCRT.js.map → agent-EWKA7357.js.map} +0 -0
- /package/dist/{bench-WWWXLTFH.js.map → bench-ZJEIACUK.js.map} +0 -0
- /package/dist/{chunk-RYOUZ6EK.js.map → chunk-23VHVVKW.js.map} +0 -0
- /package/dist/{chunk-C5TL7T4V.js.map → chunk-2YM2VH6R.js.map} +0 -0
- /package/dist/{chunk-QPGEFLMY.js.map → chunk-7CMVL4X6.js.map} +0 -0
- /package/dist/{chunk-DUS5ZNKL.js.map → chunk-DIMDAYZS.js.map} +0 -0
- /package/dist/{chunk-DGRTJD5R.js.map → chunk-DXH4TQRB.js.map} +0 -0
- /package/dist/{chunk-YUNBOUQH.js.map → chunk-ERAG5IQB.js.map} +0 -0
- /package/dist/{chunk-ZVZMWNCG.js.map → chunk-F2NFJ27Z.js.map} +0 -0
- /package/dist/{chunk-QJ44VG5G.js.map → chunk-KDQRNVBZ.js.map} +0 -0
- /package/dist/{chunk-45WZ6GMI.js.map → chunk-P7ZYOC23.js.map} +0 -0
- /package/dist/{chunk-3R27MJ5R.js.map → chunk-PFWHHYEO.js.map} +0 -0
- /package/dist/{chunk-PPZ3K4YM.js.map → chunk-PRGPSNGA.js.map} +0 -0
- /package/dist/{chunk-HOAHMERN.js.map → chunk-UDRAD7MF.js.map} +0 -0
- /package/dist/{chunk-L6HSKTQE.js.map → chunk-W7LZLJAF.js.map} +0 -0
- /package/dist/{config-LEBZZCJP.js.map → compat-YPDZB34U.js.map} +0 -0
- /package/dist/{contract-JH2WBIO6.js.map → config-56B4OHZE.js.map} +0 -0
- /package/dist/{diagnostics-HTCWF7F4.js.map → contract-HWLFFL3F.js.map} +0 -0
- /package/dist/{execute-LELOSR5T.js.map → diagnostics-UCTS2VUF.js.map} +0 -0
- /package/dist/{git-A2IP32PQ.js.map → execute-R7AVOLNG.js.map} +0 -0
- /package/dist/{init-TO6MUXO4.js.map → git-LCG45YXD.js.map} +0 -0
- /package/dist/{permissions-G4XCAESF.js.map → init-DD6DBRC5.js.map} +0 -0
- /package/dist/{plan-OXAT344Q.js.map → permissions-NNNSRC4P.js.map} +0 -0
- /package/dist/{pr-UZHNKKZC.js.map → plan-XR6B7EM3.js.map} +0 -0
- /package/dist/{pr-review-Q4ACAWDM.js.map → pr-OSCNJCOO.js.map} +0 -0
- /package/dist/{prd-6CYEMLDY.js.map → pr-review-IKIYHFBO.js.map} +0 -0
- /package/dist/{recorder-2BAKPBRA.js.map → prd-HFDZJJQR.js.map} +0 -0
- /package/dist/{registry-XLHHYLTR.js.map → recorder-T7426CKV.js.map} +0 -0
- /package/dist/{review-LVZT2TMW.js.map → registry-DWRKD65A.js.map} +0 -0
- /package/dist/{routing-EK6RBZM4.js.map → repository-TABBRW2C.js.map} +0 -0
- /package/dist/{run-2RXJCJKT.js.map → review-JJHMQA2O.js.map} +0 -0
- /package/dist/{session-publisher-KAJQRHNZ.js.map → routing-FPNUVE7T.js.map} +0 -0
- /package/dist/{state-manager-UPHO2EA2.js.map → run-RLCURLLL.js.map} +0 -0
package/prompts/analyze.md
CHANGED
|
@@ -1,25 +1,22 @@
|
|
|
1
|
+
<!-- Generated by skills:sync; edit canonical sources, not this artifact. -->
|
|
2
|
+
|
|
1
3
|
You are analyzing issue #__ISSUE_NUMBER__ for this repository.
|
|
2
4
|
|
|
3
|
-
The issue content is already resolved
|
|
4
|
-
not assume it lives on GitHub.
|
|
5
|
+
The issue content is already resolved; do not fetch it or assume it is on GitHub.
|
|
5
6
|
|
|
6
7
|
- Source: __ISSUE_SOURCE__
|
|
7
8
|
- Reference: __ISSUE_URL__
|
|
8
9
|
- Title: __ISSUE_TITLE__
|
|
9
10
|
- Labels: __ISSUE_LABELS__
|
|
10
11
|
|
|
11
|
-
Issue body:
|
|
12
|
-
|
|
13
12
|
<issue-body>
|
|
14
13
|
__ISSUE_BODY__
|
|
15
14
|
</issue-body>
|
|
16
15
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
2. Identify the scope, complexity, and key files/modules involved
|
|
20
|
-
3. Produce a structured analysis
|
|
16
|
+
Analyze the codebase, identify affected areas, architecture, scope, complexity,
|
|
17
|
+
risks and key files. Return exactly one final block with this structure:
|
|
21
18
|
|
|
22
|
-
|
|
19
|
+
<issue-analysis>
|
|
23
20
|
|
|
24
21
|
# Issue Analysis: #__ISSUE_NUMBER__
|
|
25
22
|
|
|
@@ -37,24 +34,24 @@ Save your analysis to __ANALYSIS_PATH__ with this structure:
|
|
|
37
34
|
|
|
38
35
|
## Implementation Notes
|
|
39
36
|
[Key considerations, risks, dependencies]
|
|
37
|
+
</issue-analysis>
|
|
40
38
|
|
|
41
|
-
|
|
39
|
+
Do not write the artifact yourself. The orchestrator validates and persists the block.
|
|
42
40
|
|
|
43
41
|
<!-- if:__REPO_POLICY__ -->
|
|
44
42
|
## Repository policy
|
|
45
43
|
|
|
46
|
-
The repository this runs in declares the conventions below. They were discovered
|
|
47
|
-
from its own files (Issue Templates, labels, `AGENTS.md`, `CONTRIBUTING.md`,
|
|
48
|
-
`CODEOWNERS`) and from its configuration.
|
|
49
|
-
|
|
50
44
|
__REPO_POLICY__
|
|
51
45
|
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
46
|
+
For repository conventions, these resolved values take precedence over prompt
|
|
47
|
+
defaults. Defaults apply only to undeclared choices. Paths are references: read the
|
|
48
|
+
applicable documents when a decision depends on them, following instruction indexes.
|
|
49
|
+
|
|
50
|
+
Use the repository's applicable issue template instead of layering another body template over it. Fill required fields; ask when two templates fit equally. Keep the PR template's sections, explaining non-applicable ones briefly.
|
|
51
|
+
|
|
52
|
+
Use existing label casing. Never create a label unless explicitly opted in by issues.allowLabelCreation and the action is authorized. Drop labels known to be absent; report lost classification. When the registry is unavailable, report that validation could not be performed rather than claiming the label does not exist. Local metadata labels are free-form and should reuse the local vocabulary.
|
|
55
53
|
|
|
56
|
-
|
|
57
|
-
a decision depends on what they say.
|
|
54
|
+
Prefer native fields over labels and textual prefixes. Do not reintroduce a type prefix when the repository uses native Issue Types unless its declared title convention requires it. Defaults apply only to undeclared choices; obtain the fallback taxonomy from the bundled conventions helper where supplied.
|
|
58
55
|
|
|
59
56
|
### Judging completeness against this repository
|
|
60
57
|
|
package/prompts/execute.md
CHANGED
|
@@ -1,163 +1,92 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
- **Learnings for future iterations:** (omit this block when the iteration discovered nothing reusable)
|
|
39
|
-
- Patterns discovered (e.g., "this codebase uses X for Y")
|
|
40
|
-
- Gotchas encountered (e.g., "don't forget to update Z when changing W")
|
|
41
|
-
- Useful context (e.g., "the evaluation panel is in component X")
|
|
42
|
-
---
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
The learnings section is required only when the iteration discovered something reusable. Do not invent patterns.
|
|
46
|
-
|
|
47
|
-
## Consolidate Patterns
|
|
48
|
-
|
|
49
|
-
If you discover a **reusable pattern** that future iterations should know, add it to the `## Codebase Patterns` section at the TOP of `__PROGRESS_FILE__` (create it if it doesn't exist). This section should consolidate the most important learnings:
|
|
50
|
-
|
|
51
|
-
```
|
|
52
|
-
## Codebase Patterns
|
|
53
|
-
- Example: Use `sql<number>` template for aggregations
|
|
54
|
-
- Example: Always use `IF NOT EXISTS` for migrations
|
|
55
|
-
- Example: Export types from actions.ts for UI components
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
Only add patterns that are **general and reusable**, not story-specific details.
|
|
59
|
-
|
|
60
|
-
## Update CLAUDE.md Files
|
|
61
|
-
|
|
62
|
-
Before committing, check if any edited files have learnings worth preserving in nearby CLAUDE.md files:
|
|
63
|
-
|
|
64
|
-
1. **Identify directories with edited files** - Look at which directories you modified
|
|
65
|
-
2. **Check for existing CLAUDE.md** - Look for CLAUDE.md in those directories or parent directories
|
|
66
|
-
3. **Add valuable learnings** - If you discovered something future developers/agents should know:
|
|
67
|
-
- API patterns or conventions specific to that module
|
|
68
|
-
- Gotchas or non-obvious requirements
|
|
69
|
-
- Dependencies between files
|
|
70
|
-
- Testing approaches for that area
|
|
71
|
-
- Configuration or environment requirements
|
|
72
|
-
|
|
73
|
-
**Examples of good CLAUDE.md additions:**
|
|
74
|
-
- "When modifying X, also update Y to keep them in sync"
|
|
75
|
-
- "This module uses pattern Z for all API calls"
|
|
76
|
-
- "Tests require the dev server running on PORT 3000"
|
|
77
|
-
- "Field names must match the template exactly"
|
|
78
|
-
|
|
79
|
-
**Do NOT add:**
|
|
80
|
-
- Story-specific implementation details
|
|
81
|
-
- Temporary debugging notes
|
|
82
|
-
- Information already in progress.txt
|
|
83
|
-
|
|
84
|
-
Only update CLAUDE.md if you have **genuinely reusable knowledge** that would help future work in that directory.
|
|
85
|
-
|
|
86
|
-
## Quality Requirements
|
|
87
|
-
|
|
88
|
-
- ALL commits must pass your project's quality checks (typecheck, lint, test)
|
|
89
|
-
- Do NOT commit broken code
|
|
90
|
-
- Keep changes focused and minimal
|
|
91
|
-
- Follow existing code patterns
|
|
92
|
-
|
|
93
|
-
## Browser Testing (If Available)
|
|
94
|
-
|
|
95
|
-
For any story that changes UI, verify it works in the browser if you have browser testing tools configured (e.g., via MCP):
|
|
96
|
-
|
|
97
|
-
1. Navigate to the relevant page
|
|
98
|
-
2. Verify the UI changes work as expected
|
|
99
|
-
3. Take a screenshot if helpful for the progress log
|
|
100
|
-
|
|
101
|
-
If no browser tools are available, note in your progress report that manual browser verification is needed.
|
|
102
|
-
|
|
103
|
-
## Pipeline State Tracking
|
|
1
|
+
<!-- Generated by skills:sync; edit canonical sources, not this artifact. -->
|
|
2
|
+
|
|
3
|
+
# Execute the current task
|
|
4
|
+
|
|
5
|
+
Implement the selected story or resolve pending review findings in this repository.
|
|
6
|
+
|
|
7
|
+
## Workflow and constraints
|
|
8
|
+
|
|
9
|
+
1. Verify the attached checkout matches `branchName`. If `noBranch=true`, never
|
|
10
|
+
switch/create a branch: report a mismatch. Otherwise use the planned branch,
|
|
11
|
+
creating it from `__BASE_BRANCH__` only when safe. Preserve unrelated user work.
|
|
12
|
+
2. Pending `lastReviewFindings` take priority even if every story passes.
|
|
13
|
+
Otherwise implement the active story in the context below.
|
|
14
|
+
Work on one story; when __STORIES_PER_ITERATION__ is greater than 1, you may
|
|
15
|
+
complete that many related stories after verifying their dependencies in the plan.
|
|
16
|
+
3. Follow existing code and applicable repository rules. Verify the change with
|
|
17
|
+
relevant checks after the final edit. The orchestrator runs acceptance at the end
|
|
18
|
+
of execute and again before review; that does not replace this story's evidence.
|
|
19
|
+
4. Stage only this logical change and commit after its required checks pass, using
|
|
20
|
+
`__COMMIT_MESSAGE__`. Update only verified stories to `passes: true` and record
|
|
21
|
+
concise evidence in their notes. Preserve other plan fields and unrelated stories.
|
|
22
|
+
5. Append progress with timestamp, story ID, changes, affected files, commands/results
|
|
23
|
+
and unresolved limitations. Add reusable discoveries to Codebase Patterns; preserve
|
|
24
|
+
previous entries. Put durable repository knowledge in its existing documentation,
|
|
25
|
+
linking it from AGENTS.md when appropriate, without duplicating instruction files.
|
|
26
|
+
|
|
27
|
+
<!-- if:__CORRECTION_MODE__ -->
|
|
28
|
+
## Correction findings
|
|
29
|
+
|
|
30
|
+
Validate each finding against code and requirements. Make focused corrections rather
|
|
31
|
+
than reimplementing completed stories. Commit fixes using `__FIX_COMMIT_MESSAGE__`
|
|
32
|
+
(or a more specific subject with the same resolved prefix).
|
|
33
|
+
|
|
34
|
+
Clear `lastReviewFindings` only after every finding is addressed or rejected with
|
|
35
|
+
recorded evidence. If work remains, keep the findings and record what remains in
|
|
36
|
+
progress. A fresh review still decides whether the corrected work passes.
|
|
37
|
+
<!-- /if -->
|
|
104
38
|
|
|
105
|
-
|
|
39
|
+
## Completion and blockers
|
|
106
40
|
|
|
107
|
-
|
|
108
|
-
|
|
41
|
+
Emit `<promise>COMPLETE</promise>` only after all stories pass, pending findings have
|
|
42
|
+
been addressed, and required verification is complete. Otherwise end normally for
|
|
43
|
+
another iteration, or record a non-transient blocker in top-level `lastError` as
|
|
44
|
+
`{message, category, at}` with an ISO timestamp. Clear lastError only when its blocker is resolved.
|
|
109
45
|
|
|
110
|
-
The
|
|
46
|
+
__EXECUTION_SCOPE__ The CLI owns pipeline flags, timestamps and final phase status;
|
|
47
|
+
changing these fields in the projection cannot complete review or publication.
|
|
111
48
|
|
|
112
|
-
|
|
49
|
+
<!-- if:__REPO_POLICY__ -->
|
|
50
|
+
## Repository policy
|
|
113
51
|
|
|
114
|
-
|
|
52
|
+
__REPO_POLICY__
|
|
115
53
|
|
|
116
|
-
|
|
54
|
+
For repository conventions, these resolved values take precedence over prompt
|
|
55
|
+
defaults. Defaults apply only to undeclared choices. Paths are references: read the
|
|
56
|
+
applicable documents when a decision depends on them, following instruction indexes.
|
|
117
57
|
|
|
118
|
-
|
|
119
|
-
- Set `issueStatus` to `completed`
|
|
120
|
-
- Set `completedAt` to the current ISO timestamp
|
|
121
|
-
- Set `lastAttemptAt` to the current ISO timestamp
|
|
122
|
-
- Clear `lastError`
|
|
123
|
-
- If `pipeline` object exists, set `pipeline.executionCompleted` to `true`
|
|
58
|
+
Use the repository's applicable issue template instead of layering another body template over it. Fill required fields; ask when two templates fit equally. Keep the PR template's sections, explaining non-applicable ones briefly.
|
|
124
59
|
|
|
125
|
-
|
|
126
|
-
<promise>COMPLETE</promise>
|
|
60
|
+
Use existing label casing. Never create a label unless explicitly opted in by issues.allowLabelCreation and the action is authorized. Drop labels known to be absent; report lost classification. When the registry is unavailable, report that validation could not be performed rather than claiming the label does not exist. Local metadata labels are free-form and should reuse the local vocabulary.
|
|
127
61
|
|
|
128
|
-
|
|
129
|
-
|
|
62
|
+
Prefer native fields over labels and textual prefixes. Do not reintroduce a type prefix when the repository uses native Issue Types unless its declared title convention requires it. Defaults apply only to undeclared choices; obtain the fallback taxonomy from the bundled conventions helper where supplied.
|
|
63
|
+
<!-- /if -->
|
|
130
64
|
|
|
131
|
-
|
|
65
|
+
<!-- if:__COMMIT_CONVENTION__ -->
|
|
66
|
+
## Commit convention
|
|
132
67
|
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
68
|
+
This repository declares: __COMMIT_CONVENTION__
|
|
69
|
+
The messages above use the resolved format. Choose any `<type>` from the repository
|
|
70
|
+
vocabulary to match the actual change.
|
|
71
|
+
<!-- /if -->
|
|
137
72
|
|
|
138
|
-
|
|
139
|
-
## Repository policy
|
|
73
|
+
## Evidence before completion
|
|
140
74
|
|
|
141
|
-
|
|
142
|
-
from its own files (Issue Templates, labels, `AGENTS.md`, `CONTRIBUTING.md`,
|
|
143
|
-
`CODEOWNERS`) and from its configuration.
|
|
75
|
+
Use fresh evidence from the revision being delivered. Read the repository's test/build instructions and execute the relevant checks after the final meaningful change. Record commands, results and material coverage limits. An earlier green run, a checked checkbox or another agent's claim is not current verification.
|
|
144
76
|
|
|
145
|
-
|
|
77
|
+
If a required check fails or cannot run, report the failure or unverified criterion. Do not mark that criterion passed or emit a completion/approval signal. Discover checks appropriate to the stack; do not require TypeScript checks in a project without TypeScript. For UI acceptance, use an available browser capability and record what was exercised; missing browser verification remains pending when required.
|
|
146
78
|
|
|
147
|
-
|
|
148
|
-
prompt.** Where the two disagree, follow the repository. Where the repository is
|
|
149
|
-
silent, the defaults above still apply.
|
|
79
|
+
For bug fixes, reproduce the defect with a focused check before correcting it when the repository and environment permit. Follow existing testing conventions; do not impose universal TDD or tests that merely restate the implementation.
|
|
150
80
|
|
|
151
|
-
|
|
152
|
-
a decision depends on what they say.
|
|
153
|
-
<!-- /if -->
|
|
81
|
+
Evaluate review feedback against the code and requirements before applying it. Reproduce valid defects where feasible. Record why an incorrect or inapplicable finding was rejected, with evidence, rather than changing code just to satisfy its wording. Re-review after valid fixes.
|
|
154
82
|
|
|
155
|
-
|
|
156
|
-
## Commit convention
|
|
83
|
+
## Required context
|
|
157
84
|
|
|
158
|
-
|
|
85
|
+
__EXECUTION_CONTEXT__
|
|
159
86
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
87
|
+
This is a read-only projection of `__PRD_FILE__` (the task plan, not the prose PRD).
|
|
88
|
+
Use the selected story and its complete criteria. Read other plan entries or
|
|
89
|
+
requirements only when a dependency, finding or implementation decision needs them.
|
|
90
|
+
Read Codebase Patterns and the latest relevant entries of `__PROGRESS_FILE__`;
|
|
91
|
+
search older entries when an unresolved decision or finding requires their evidence.
|
|
92
|
+
Do not load the entire history merely because another iteration started.
|
package/prompts/generate.md
CHANGED
|
@@ -1,4 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
<!-- Generated by skills:sync; edit canonical sources, not this artifact. -->
|
|
2
|
+
|
|
3
|
+
You are drafting an issue for this repository. Destination: __DESTINATION__.
|
|
4
|
+
For local delivery, never run GitHub commands or remote probes. Inspect local
|
|
5
|
+
conventions and duplicates only; unavailable remote information is not required.
|
|
2
6
|
|
|
3
7
|
The user provided this description:
|
|
4
8
|
__USER_PROMPT__
|
|
@@ -17,11 +21,13 @@ Steps:
|
|
|
17
21
|
3. Check for duplicates before drafting. This is a **multi-strategy search** —
|
|
18
22
|
one query finds only issues worded the way you happened to word yours:
|
|
19
23
|
- Local issues: read `__LOCAL_ISSUES_DIR__/*/metadata.json` (the directory may not exist)
|
|
24
|
+
<!-- if:__REMOTE_DISCOVERY__ -->
|
|
20
25
|
- Remote issues, only if `gh` is installed and authenticated:
|
|
21
26
|
- 2-3 different keyword combinations drawn from the title and the core problem:
|
|
22
27
|
`gh issue list --search "<keyword1> <keyword2>" --state all --limit 30 --json number,title,state,url`
|
|
23
28
|
- the affected area, when the request names one (auth, database, API…)
|
|
24
29
|
- a label the request maps to, when the repository has a matching one
|
|
30
|
+
<!-- /if -->
|
|
25
31
|
Judge a candidate on whether it describes the **same problem**, not on textual
|
|
26
32
|
overlap. If an existing issue already covers the request, still emit the draft,
|
|
27
33
|
but say so in the body under a "Possible duplicates" section, citing the issue.
|
|
@@ -62,18 +68,17 @@ Rules for the block:
|
|
|
62
68
|
<!-- if:__REPO_POLICY__ -->
|
|
63
69
|
## Repository policy
|
|
64
70
|
|
|
65
|
-
The repository this runs in declares the conventions below. They were discovered
|
|
66
|
-
from its own files (Issue Templates, labels, `AGENTS.md`, `CONTRIBUTING.md`,
|
|
67
|
-
`CODEOWNERS`) and from its configuration.
|
|
68
|
-
|
|
69
71
|
__REPO_POLICY__
|
|
70
72
|
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
73
|
+
For repository conventions, these resolved values take precedence over prompt
|
|
74
|
+
defaults. Defaults apply only to undeclared choices. Paths are references: read the
|
|
75
|
+
applicable documents when a decision depends on them, following instruction indexes.
|
|
76
|
+
|
|
77
|
+
Use the repository's applicable issue template instead of layering another body template over it. Fill required fields; ask when two templates fit equally. Keep the PR template's sections, explaining non-applicable ones briefly.
|
|
78
|
+
|
|
79
|
+
Use existing label casing. Never create a label unless explicitly opted in by issues.allowLabelCreation and the action is authorized. Drop labels known to be absent; report lost classification. When the registry is unavailable, report that validation could not be performed rather than claiming the label does not exist. Local metadata labels are free-form and should reuse the local vocabulary.
|
|
74
80
|
|
|
75
|
-
|
|
76
|
-
a decision depends on what they say.
|
|
81
|
+
Prefer native fields over labels and textual prefixes. Do not reintroduce a type prefix when the repository uses native Issue Types unless its declared title convention requires it. Defaults apply only to undeclared choices; obtain the fallback taxonomy from the bundled conventions helper where supplied.
|
|
77
82
|
|
|
78
83
|
### Drafting against this repository's conventions
|
|
79
84
|
|
|
@@ -92,3 +97,11 @@ a decision depends on what they say.
|
|
|
92
97
|
- **Labels.** Use only the ones listed. Anything else is dropped.
|
|
93
98
|
- **Title.** Follow the convention shown above when there is one.
|
|
94
99
|
<!-- /if -->
|
|
100
|
+
|
|
101
|
+
## Authorized publication
|
|
102
|
+
|
|
103
|
+
A request to analyze, plan or review does not itself request a remote comment, closure, push or PR. Publish only when the user's request or existing session authorization includes that action. Preparing a concrete draft, diff and verification result comes before asking for any missing authorization. Do not ask again for authorization already granted.
|
|
104
|
+
|
|
105
|
+
Before creating an issue or PR, check for an existing equivalent item. Reuse a matching open PR instead of creating another. Updating, closing or reopening an existing item requires authorization for that action. On an uncertain publication result, query the remote before retrying to avoid duplicates.
|
|
106
|
+
|
|
107
|
+
Pass user text as structured tool arguments or a UTF-8 body file, never shell interpolation. Use argument arrays for commands. Verify success before deleting a draft. If publishing fails, preserve the draft and report the failed operation and actionable reason. Never force-push.
|
package/prompts/plan.md
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
|
+
<!-- Generated by skills:sync; edit canonical sources, not this artifact. -->
|
|
2
|
+
|
|
1
3
|
You are converting a PRD into a structured JSON task plan for issue #__ISSUE_NUMBER__.
|
|
2
4
|
|
|
3
|
-
The issue is already resolved
|
|
5
|
+
The issue content is already resolved; do not fetch it or assume it is on GitHub.
|
|
4
6
|
|
|
5
7
|
- Source: __ISSUE_SOURCE__
|
|
6
8
|
- Reference: __ISSUE_URL__
|
|
7
9
|
- Title: __ISSUE_TITLE__
|
|
8
10
|
- Labels: __ISSUE_LABELS__
|
|
9
11
|
|
|
10
|
-
Issue body (the original demand, for the description field):
|
|
11
|
-
|
|
12
12
|
<issue-body>
|
|
13
13
|
__ISSUE_BODY__
|
|
14
14
|
</issue-body>
|
|
@@ -17,82 +17,54 @@ Here is the PRD:
|
|
|
17
17
|
|
|
18
18
|
__PRD_CONTENT__
|
|
19
19
|
|
|
20
|
-
|
|
21
|
-
was already resolved by the CLI (from the project's numbering history, or from an
|
|
22
|
-
explicit --continue / --start-us override) — do NOT restart numbering at US-001
|
|
23
|
-
unless __NEXT_US_NUMBER__ is itself US-001. Number the first story in this plan
|
|
24
|
-
__NEXT_US_NUMBER__ and every subsequent story sequentially from there (e.g. if
|
|
25
|
-
__NEXT_US_NUMBER__ is US-016, use US-016, US-017, US-018, ...).
|
|
26
|
-
|
|
27
|
-
Create a tasks.json file at __TASKS_PATH__ with this exact structure:
|
|
20
|
+
Return the semantic plan as exactly one final block:
|
|
28
21
|
|
|
22
|
+
<task-plan>
|
|
29
23
|
{
|
|
30
|
-
"project": "<repo-name>",
|
|
31
|
-
"issueNumber": __ISSUE_NUMBER__,
|
|
32
|
-
"issueUrl": "__ISSUE_URL__",
|
|
33
|
-
"branchName": "__BRANCH_NAME__",
|
|
34
24
|
"description": "<brief description>",
|
|
35
|
-
"
|
|
36
|
-
"completedAt": null,
|
|
37
|
-
"lastAttemptAt": null,
|
|
38
|
-
"lastError": null,
|
|
39
|
-
"correctionCycle": 0,
|
|
40
|
-
"maxCorrectionCycles": 3,
|
|
41
|
-
"lastReviewFindings": null,
|
|
42
|
-
"pipeline": {
|
|
43
|
-
"analyzeCompleted": true,
|
|
44
|
-
"prdCompleted": true,
|
|
45
|
-
"jsonCompleted": true,
|
|
46
|
-
"executionCompleted": false,
|
|
47
|
-
"reviewCompleted": false,
|
|
48
|
-
"prCreated": false
|
|
49
|
-
},
|
|
50
|
-
"userStories": [
|
|
25
|
+
"stories": [
|
|
51
26
|
{
|
|
52
|
-
"
|
|
27
|
+
"key": "short-unique-key",
|
|
53
28
|
"title": "...",
|
|
54
29
|
"description": "As a ..., I want ... so that ...",
|
|
55
30
|
"acceptanceCriteria": ["..."],
|
|
56
|
-
"
|
|
57
|
-
"passes": false,
|
|
58
|
-
"notes": ""
|
|
31
|
+
"dependsOn": []
|
|
59
32
|
}
|
|
60
33
|
]
|
|
61
34
|
}
|
|
35
|
+
</task-plan>
|
|
62
36
|
|
|
63
37
|
Rules:
|
|
64
|
-
-
|
|
65
|
-
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
and never derive it yourself
|
|
72
|
-
- Get the repo name from the repository itself (package name, directory name)
|
|
73
|
-
- If __ISSUE_NUMBER__ is not a number, keep it as a JSON string in issueNumber
|
|
74
|
-
- branchName is already resolved: use __BRANCH_NAME__ verbatim. Do not invent a branch.
|
|
75
|
-
|
|
76
|
-
IMPORTANT: You MUST write the tasks.json to the file path above. Do not just output it.
|
|
38
|
+
- Order stories by dependency and implementation priority; foundations come first
|
|
39
|
+
- key is unique inside this plan and dependencies refer to earlier story keys
|
|
40
|
+
- acceptanceCriteria must name relevant checks from the repository toolchain; include
|
|
41
|
+
typechecking only when the project has a typechecker
|
|
42
|
+
- Do not include lifecycle state, story IDs, priorities, branch or issue metadata;
|
|
43
|
+
the orchestrator derives and validates those fields deterministically
|
|
44
|
+
- Do not write tasks.json yourself
|
|
77
45
|
|
|
78
46
|
<!-- if:__REPO_POLICY__ -->
|
|
79
47
|
## Repository policy
|
|
80
48
|
|
|
81
|
-
The repository this runs in declares the conventions below. They were discovered
|
|
82
|
-
from its own files (Issue Templates, labels, `AGENTS.md`, `CONTRIBUTING.md`,
|
|
83
|
-
`CODEOWNERS`) and from its configuration.
|
|
84
|
-
|
|
85
49
|
__REPO_POLICY__
|
|
86
50
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
51
|
+
For repository conventions, these resolved values take precedence over prompt
|
|
52
|
+
defaults. Defaults apply only to undeclared choices. Paths are references: read the
|
|
53
|
+
applicable documents when a decision depends on them, following instruction indexes.
|
|
54
|
+
|
|
55
|
+
Use the repository's applicable issue template instead of layering another body template over it. Fill required fields; ask when two templates fit equally. Keep the PR template's sections, explaining non-applicable ones briefly.
|
|
90
56
|
|
|
91
|
-
|
|
92
|
-
|
|
57
|
+
Use existing label casing. Never create a label unless explicitly opted in by issues.allowLabelCreation and the action is authorized. Drop labels known to be absent; report lost classification. When the registry is unavailable, report that validation could not be performed rather than claiming the label does not exist. Local metadata labels are free-form and should reuse the local vocabulary.
|
|
58
|
+
|
|
59
|
+
Prefer native fields over labels and textual prefixes. Do not reintroduce a type prefix when the repository uses native Issue Types unless its declared title convention requires it. Defaults apply only to undeclared choices; obtain the fallback taxonomy from the bundled conventions helper where supplied.
|
|
93
60
|
<!-- /if -->
|
|
94
61
|
|
|
95
|
-
##
|
|
62
|
+
## Evidence before completion
|
|
63
|
+
|
|
64
|
+
Use fresh evidence from the revision being delivered. Read the repository's test/build instructions and execute the relevant checks after the final meaningful change. Record commands, results and material coverage limits. An earlier green run, a checked checkbox or another agent's claim is not current verification.
|
|
65
|
+
|
|
66
|
+
If a required check fails or cannot run, report the failure or unverified criterion. Do not mark that criterion passed or emit a completion/approval signal. Discover checks appropriate to the stack; do not require TypeScript checks in a project without TypeScript. For UI acceptance, use an available browser capability and record what was exercised; missing browser verification remains pending when required.
|
|
67
|
+
|
|
68
|
+
For bug fixes, reproduce the defect with a focused check before correcting it when the repository and environment permit. Follow existing testing conventions; do not impose universal TDD or tests that merely restate the implementation.
|
|
96
69
|
|
|
97
|
-
|
|
98
|
-
repository convention; do not slugify the title yourself.
|
|
70
|
+
Evaluate review feedback against the code and requirements before applying it. Reproduce valid defects where feasible. Record why an incorrect or inapplicable finding was rejected, with evidence, rather than changing code just to satisfy its wording. Re-review after valid fixes.
|