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.
Files changed (233) hide show
  1. package/README.md +34 -100
  2. package/dist/agent-EWKA7357.js +32 -0
  3. package/dist/{analyze-Q4ONIWRZ.js → analyze-Z7ODC27F.js} +42 -41
  4. package/dist/analyze-Z7ODC27F.js.map +1 -0
  5. package/dist/{apply-EEFPY2W4.js → apply-VNSWQS6O.js} +22 -24
  6. package/dist/apply-VNSWQS6O.js.map +1 -0
  7. package/dist/artifacts-AMJQJFFV.js +82 -0
  8. package/dist/artifacts-AMJQJFFV.js.map +1 -0
  9. package/dist/{bench-WWWXLTFH.js → bench-ZJEIACUK.js} +42 -42
  10. package/dist/{chunk-RYOUZ6EK.js → chunk-23VHVVKW.js} +3 -3
  11. package/dist/chunk-2EYLOS5I.js +99 -0
  12. package/dist/chunk-2EYLOS5I.js.map +1 -0
  13. package/dist/{chunk-XUEMATVY.js → chunk-2EZW4X57.js} +28 -25
  14. package/dist/chunk-2EZW4X57.js.map +1 -0
  15. package/dist/{chunk-LGHND47K.js → chunk-2Q6PG3MT.js} +15 -15
  16. package/dist/chunk-2Q6PG3MT.js.map +1 -0
  17. package/dist/{chunk-C5TL7T4V.js → chunk-2YM2VH6R.js} +2 -2
  18. package/dist/{chunk-OODXFCQV.js → chunk-2YYP7AE6.js} +14 -16
  19. package/dist/{chunk-OODXFCQV.js.map → chunk-2YYP7AE6.js.map} +1 -1
  20. package/dist/chunk-3JD25HHJ.js +278 -0
  21. package/dist/chunk-3JD25HHJ.js.map +1 -0
  22. package/dist/{chunk-PMLE7KAQ.js → chunk-46S7APLQ.js} +30 -14
  23. package/dist/chunk-46S7APLQ.js.map +1 -0
  24. package/dist/chunk-6AOZCWN2.js +21 -0
  25. package/dist/chunk-6AOZCWN2.js.map +1 -0
  26. package/dist/{chunk-QPGEFLMY.js → chunk-7CMVL4X6.js} +7 -7
  27. package/dist/chunk-7MJGYPHF.js +1571 -0
  28. package/dist/chunk-7MJGYPHF.js.map +1 -0
  29. package/dist/chunk-7ZZUSMBJ.js +35 -0
  30. package/dist/chunk-7ZZUSMBJ.js.map +1 -0
  31. package/dist/{chunk-DUS5ZNKL.js → chunk-DIMDAYZS.js} +7 -6
  32. package/dist/{chunk-DGRTJD5R.js → chunk-DXH4TQRB.js} +7 -7
  33. package/dist/{chunk-CRGIQFUQ.js → chunk-E2H3JV2E.js} +3 -1
  34. package/dist/chunk-E2H3JV2E.js.map +1 -0
  35. package/dist/{chunk-YUNBOUQH.js → chunk-ERAG5IQB.js} +8 -8
  36. package/dist/{chunk-ZVZMWNCG.js → chunk-F2NFJ27Z.js} +2 -2
  37. package/dist/{chunk-SOM4QA6C.js → chunk-GD7JZMSJ.js} +93 -18
  38. package/dist/chunk-GD7JZMSJ.js.map +1 -0
  39. package/dist/{chunk-6K2LCFG6.js → chunk-HEHHQU4G.js} +70 -81
  40. package/dist/chunk-HEHHQU4G.js.map +1 -0
  41. package/dist/{chunk-34OCSKOB.js → chunk-HHXWAWU6.js} +159 -114
  42. package/dist/chunk-HHXWAWU6.js.map +1 -0
  43. package/dist/{chunk-E4I6MMHD.js → chunk-HWWB22HC.js} +152 -100
  44. package/dist/chunk-HWWB22HC.js.map +1 -0
  45. package/dist/chunk-IMB6FA2F.js +673 -0
  46. package/dist/chunk-IMB6FA2F.js.map +1 -0
  47. package/dist/{chunk-ECU7YO7S.js → chunk-IQYXXFRC.js} +22 -6
  48. package/dist/chunk-IQYXXFRC.js.map +1 -0
  49. package/dist/chunk-J6VJ5M2U.js +1201 -0
  50. package/dist/chunk-J6VJ5M2U.js.map +1 -0
  51. package/dist/{chunk-QJ44VG5G.js → chunk-KDQRNVBZ.js} +3 -3
  52. package/dist/{chunk-7UMMFOL2.js → chunk-LRWIP7QS.js} +39 -24
  53. package/dist/chunk-LRWIP7QS.js.map +1 -0
  54. package/dist/{chunk-LI35PIIS.js → chunk-LYC57OXF.js} +20 -117
  55. package/dist/chunk-LYC57OXF.js.map +1 -0
  56. package/dist/{chunk-HAKDLR6N.js → chunk-MAJ6QDRL.js} +65 -78
  57. package/dist/chunk-MAJ6QDRL.js.map +1 -0
  58. package/dist/{chunk-CWSQVHVV.js → chunk-MHA7Q3KU.js} +248 -102
  59. package/dist/chunk-MHA7Q3KU.js.map +1 -0
  60. package/dist/{chunk-TZYINKCC.js → chunk-MQTVMB7W.js} +33 -28
  61. package/dist/chunk-MQTVMB7W.js.map +1 -0
  62. package/dist/chunk-NP47HRX2.js +136 -0
  63. package/dist/chunk-NP47HRX2.js.map +1 -0
  64. package/dist/{chunk-EG2MGDP5.js → chunk-NYDAHE3Y.js} +52 -46
  65. package/dist/chunk-NYDAHE3Y.js.map +1 -0
  66. package/dist/{chunk-45WZ6GMI.js → chunk-P7ZYOC23.js} +16 -16
  67. package/dist/{chunk-3R27MJ5R.js → chunk-PFWHHYEO.js} +3 -3
  68. package/dist/{chunk-NEWNXZ65.js → chunk-PHPAK2L6.js} +28 -26
  69. package/dist/{chunk-NEWNXZ65.js.map → chunk-PHPAK2L6.js.map} +1 -1
  70. package/dist/{chunk-PPZ3K4YM.js → chunk-PRGPSNGA.js} +2 -2
  71. package/dist/{chunk-V7QOIQYC.js → chunk-RGFMQFX7.js} +9 -23
  72. package/dist/{chunk-V7QOIQYC.js.map → chunk-RGFMQFX7.js.map} +1 -1
  73. package/dist/{chunk-YVPZUN6X.js → chunk-TJVX42KY.js} +335 -38
  74. package/dist/chunk-TJVX42KY.js.map +1 -0
  75. package/dist/{chunk-HOAHMERN.js → chunk-UDRAD7MF.js} +21 -21
  76. package/dist/{chunk-QF7VEL3M.js → chunk-UHDXXLYH.js} +39 -127
  77. package/dist/chunk-UHDXXLYH.js.map +1 -0
  78. package/dist/{chunk-RNFUVKC3.js → chunk-UPAAZU4W.js} +30 -13
  79. package/dist/chunk-UPAAZU4W.js.map +1 -0
  80. package/dist/{chunk-L6HSKTQE.js → chunk-W7LZLJAF.js} +4 -4
  81. package/dist/{chunk-KMCS76ZW.js → chunk-WB2FVIUS.js} +44 -12
  82. package/dist/chunk-WB2FVIUS.js.map +1 -0
  83. package/dist/{chunk-SA6HXL4Y.js → chunk-WPHC6JBR.js} +9 -9
  84. package/dist/chunk-WPHC6JBR.js.map +1 -0
  85. package/dist/{chunk-KRAGAUKD.js → chunk-XHCP6ZNO.js} +201 -64
  86. package/dist/chunk-XHCP6ZNO.js.map +1 -0
  87. package/dist/{chunk-7F7LGMVO.js → chunk-XKR3VD2Z.js} +12 -12
  88. package/dist/{chunk-7F7LGMVO.js.map → chunk-XKR3VD2Z.js.map} +1 -1
  89. package/dist/{chunk-ICM463EO.js → chunk-XNK5UN2D.js} +5 -649
  90. package/dist/chunk-XNK5UN2D.js.map +1 -0
  91. package/dist/{chunk-LTH6XYZ3.js → chunk-XQLNZW7I.js} +40 -30
  92. package/dist/chunk-XQLNZW7I.js.map +1 -0
  93. package/dist/{chunk-62GVVZQO.js → chunk-ZAYATXJD.js} +32 -316
  94. package/dist/chunk-ZAYATXJD.js.map +1 -0
  95. package/dist/cli.js +127 -59
  96. package/dist/cli.js.map +1 -1
  97. package/dist/compat-YPDZB34U.js +24 -0
  98. package/dist/{config-LEBZZCJP.js → config-56B4OHZE.js} +20 -17
  99. package/dist/{contract-JH2WBIO6.js → contract-HWLFFL3F.js} +2 -2
  100. package/dist/{conventions-XOT6YW5L.js → conventions-DW2CM5I3.js} +20 -16
  101. package/dist/{conventions-XOT6YW5L.js.map → conventions-DW2CM5I3.js.map} +1 -1
  102. package/dist/db-5NU77PJA.js +264 -0
  103. package/dist/db-5NU77PJA.js.map +1 -0
  104. package/dist/diagnostics-UCTS2VUF.js +25 -0
  105. package/dist/execute-R7AVOLNG.js +38 -0
  106. package/dist/{generate-JGW5JSKB.js → generate-O7GUXLN4.js} +46 -43
  107. package/dist/generate-O7GUXLN4.js.map +1 -0
  108. package/dist/{git-A2IP32PQ.js → git-LCG45YXD.js} +2 -3
  109. package/dist/history-6GSURU3H.js +101 -0
  110. package/dist/history-6GSURU3H.js.map +1 -0
  111. package/dist/init-DD6DBRC5.js +28 -0
  112. package/dist/{operations-O4FORFIH.js → operations-HU5ZFEBA.js} +78 -52
  113. package/dist/operations-HU5ZFEBA.js.map +1 -0
  114. package/dist/{permissions-G4XCAESF.js → permissions-NNNSRC4P.js} +5 -6
  115. package/dist/plan-XR6B7EM3.js +38 -0
  116. package/dist/{policy-U5NBFAO5.js → policy-RFJOJQL6.js} +17 -15
  117. package/dist/{policy-U5NBFAO5.js.map → policy-RFJOJQL6.js.map} +1 -1
  118. package/dist/pr-OSCNJCOO.js +42 -0
  119. package/dist/pr-review-IKIYHFBO.js +33 -0
  120. package/dist/prd-HFDZJJQR.js +37 -0
  121. package/dist/{ps-76L6ZAZL.js → ps-AKRHGPSR.js} +26 -15
  122. package/dist/ps-AKRHGPSR.js.map +1 -0
  123. package/dist/{recorder-2BAKPBRA.js → recorder-T7426CKV.js} +11 -7
  124. package/dist/registry-DWRKD65A.js +17 -0
  125. package/dist/repository-TABBRW2C.js +80 -0
  126. package/dist/resume-GDXKK5XP.js +278 -0
  127. package/dist/resume-GDXKK5XP.js.map +1 -0
  128. package/dist/review-JJHMQA2O.js +38 -0
  129. package/dist/routing-FPNUVE7T.js +35 -0
  130. package/dist/run-RLCURLLL.js +61 -0
  131. package/dist/{session-publisher-KAJQRHNZ.js → session-publisher-Q5TNEZPX.js} +3 -3
  132. package/dist/session-publisher-Q5TNEZPX.js.map +1 -0
  133. package/dist/{state-manager-UPHO2EA2.js → state-manager-IGNTD4AB.js} +9 -4
  134. package/dist/state-manager-IGNTD4AB.js.map +1 -0
  135. package/dist/{usage-KTMYXAPF.js → usage-XW27AL5K.js} +69 -63
  136. package/dist/usage-XW27AL5K.js.map +1 -0
  137. package/dist/web-NCDBVZ5Y.js +205 -0
  138. package/dist/web-NCDBVZ5Y.js.map +1 -0
  139. package/package.json +20 -7
  140. package/prompts/analyze.md +16 -19
  141. package/prompts/execute.md +73 -144
  142. package/prompts/generate.md +23 -10
  143. package/prompts/plan.md +32 -60
  144. package/prompts/pr-review.md +58 -40
  145. package/prompts/pr.md +50 -16
  146. package/prompts/prd.md +26 -19
  147. package/prompts/review.md +41 -18
  148. package/web/public/app.js +109 -110
  149. package/dist/agent-HMZTXCRT.js +0 -30
  150. package/dist/analyze-Q4ONIWRZ.js.map +0 -1
  151. package/dist/apply-EEFPY2W4.js.map +0 -1
  152. package/dist/chunk-34OCSKOB.js.map +0 -1
  153. package/dist/chunk-62GVVZQO.js.map +0 -1
  154. package/dist/chunk-6K2LCFG6.js.map +0 -1
  155. package/dist/chunk-7UMMFOL2.js.map +0 -1
  156. package/dist/chunk-CRGIQFUQ.js.map +0 -1
  157. package/dist/chunk-CWSQVHVV.js.map +0 -1
  158. package/dist/chunk-E4I6MMHD.js.map +0 -1
  159. package/dist/chunk-ECU7YO7S.js.map +0 -1
  160. package/dist/chunk-EG2MGDP5.js.map +0 -1
  161. package/dist/chunk-HAKDLR6N.js.map +0 -1
  162. package/dist/chunk-ICM463EO.js.map +0 -1
  163. package/dist/chunk-KMCS76ZW.js.map +0 -1
  164. package/dist/chunk-KRAGAUKD.js.map +0 -1
  165. package/dist/chunk-LGHND47K.js.map +0 -1
  166. package/dist/chunk-LI35PIIS.js.map +0 -1
  167. package/dist/chunk-LTH6XYZ3.js.map +0 -1
  168. package/dist/chunk-PMLE7KAQ.js.map +0 -1
  169. package/dist/chunk-QF7VEL3M.js.map +0 -1
  170. package/dist/chunk-RNFUVKC3.js.map +0 -1
  171. package/dist/chunk-SA6HXL4Y.js.map +0 -1
  172. package/dist/chunk-SOM4QA6C.js.map +0 -1
  173. package/dist/chunk-TZYINKCC.js.map +0 -1
  174. package/dist/chunk-WCCZJL7W.js +0 -141
  175. package/dist/chunk-WCCZJL7W.js.map +0 -1
  176. package/dist/chunk-XEYH6ZZI.js +0 -289
  177. package/dist/chunk-XEYH6ZZI.js.map +0 -1
  178. package/dist/chunk-XUEMATVY.js.map +0 -1
  179. package/dist/chunk-XZUEFTUP.js +0 -243
  180. package/dist/chunk-XZUEFTUP.js.map +0 -1
  181. package/dist/chunk-YVPZUN6X.js.map +0 -1
  182. package/dist/diagnostics-HTCWF7F4.js +0 -23
  183. package/dist/execute-LELOSR5T.js +0 -37
  184. package/dist/generate-JGW5JSKB.js.map +0 -1
  185. package/dist/init-TO6MUXO4.js +0 -26
  186. package/dist/operations-O4FORFIH.js.map +0 -1
  187. package/dist/plan-OXAT344Q.js +0 -34
  188. package/dist/pr-UZHNKKZC.js +0 -39
  189. package/dist/pr-review-Q4ACAWDM.js +0 -32
  190. package/dist/prd-6CYEMLDY.js +0 -33
  191. package/dist/ps-76L6ZAZL.js.map +0 -1
  192. package/dist/registry-XLHHYLTR.js +0 -15
  193. package/dist/resume-URCU6CIJ.js +0 -244
  194. package/dist/resume-URCU6CIJ.js.map +0 -1
  195. package/dist/review-LVZT2TMW.js +0 -35
  196. package/dist/routing-EK6RBZM4.js +0 -33
  197. package/dist/run-2RXJCJKT.js +0 -56
  198. package/dist/usage-KTMYXAPF.js.map +0 -1
  199. package/dist/web-B5UPHHR5.js +0 -172
  200. package/dist/web-B5UPHHR5.js.map +0 -1
  201. /package/dist/{agent-HMZTXCRT.js.map → agent-EWKA7357.js.map} +0 -0
  202. /package/dist/{bench-WWWXLTFH.js.map → bench-ZJEIACUK.js.map} +0 -0
  203. /package/dist/{chunk-RYOUZ6EK.js.map → chunk-23VHVVKW.js.map} +0 -0
  204. /package/dist/{chunk-C5TL7T4V.js.map → chunk-2YM2VH6R.js.map} +0 -0
  205. /package/dist/{chunk-QPGEFLMY.js.map → chunk-7CMVL4X6.js.map} +0 -0
  206. /package/dist/{chunk-DUS5ZNKL.js.map → chunk-DIMDAYZS.js.map} +0 -0
  207. /package/dist/{chunk-DGRTJD5R.js.map → chunk-DXH4TQRB.js.map} +0 -0
  208. /package/dist/{chunk-YUNBOUQH.js.map → chunk-ERAG5IQB.js.map} +0 -0
  209. /package/dist/{chunk-ZVZMWNCG.js.map → chunk-F2NFJ27Z.js.map} +0 -0
  210. /package/dist/{chunk-QJ44VG5G.js.map → chunk-KDQRNVBZ.js.map} +0 -0
  211. /package/dist/{chunk-45WZ6GMI.js.map → chunk-P7ZYOC23.js.map} +0 -0
  212. /package/dist/{chunk-3R27MJ5R.js.map → chunk-PFWHHYEO.js.map} +0 -0
  213. /package/dist/{chunk-PPZ3K4YM.js.map → chunk-PRGPSNGA.js.map} +0 -0
  214. /package/dist/{chunk-HOAHMERN.js.map → chunk-UDRAD7MF.js.map} +0 -0
  215. /package/dist/{chunk-L6HSKTQE.js.map → chunk-W7LZLJAF.js.map} +0 -0
  216. /package/dist/{config-LEBZZCJP.js.map → compat-YPDZB34U.js.map} +0 -0
  217. /package/dist/{contract-JH2WBIO6.js.map → config-56B4OHZE.js.map} +0 -0
  218. /package/dist/{diagnostics-HTCWF7F4.js.map → contract-HWLFFL3F.js.map} +0 -0
  219. /package/dist/{execute-LELOSR5T.js.map → diagnostics-UCTS2VUF.js.map} +0 -0
  220. /package/dist/{git-A2IP32PQ.js.map → execute-R7AVOLNG.js.map} +0 -0
  221. /package/dist/{init-TO6MUXO4.js.map → git-LCG45YXD.js.map} +0 -0
  222. /package/dist/{permissions-G4XCAESF.js.map → init-DD6DBRC5.js.map} +0 -0
  223. /package/dist/{plan-OXAT344Q.js.map → permissions-NNNSRC4P.js.map} +0 -0
  224. /package/dist/{pr-UZHNKKZC.js.map → plan-XR6B7EM3.js.map} +0 -0
  225. /package/dist/{pr-review-Q4ACAWDM.js.map → pr-OSCNJCOO.js.map} +0 -0
  226. /package/dist/{prd-6CYEMLDY.js.map → pr-review-IKIYHFBO.js.map} +0 -0
  227. /package/dist/{recorder-2BAKPBRA.js.map → prd-HFDZJJQR.js.map} +0 -0
  228. /package/dist/{registry-XLHHYLTR.js.map → recorder-T7426CKV.js.map} +0 -0
  229. /package/dist/{review-LVZT2TMW.js.map → registry-DWRKD65A.js.map} +0 -0
  230. /package/dist/{routing-EK6RBZM4.js.map → repository-TABBRW2C.js.map} +0 -0
  231. /package/dist/{run-2RXJCJKT.js.map → review-JJHMQA2O.js.map} +0 -0
  232. /package/dist/{session-publisher-KAJQRHNZ.js.map → routing-FPNUVE7T.js.map} +0 -0
  233. /package/dist/{state-manager-UPHO2EA2.js.map → run-RLCURLLL.js.map} +0 -0
@@ -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 and given below do NOT fetch it, and do
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
- Steps:
18
- 1. Analyze the codebase to understand the affected areas, tech stack, and architecture
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
- Save your analysis to __ANALYSIS_PATH__ with this structure:
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
- IMPORTANT: You MUST write the analysis to the file path above. Do not just output it.
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
- **This section takes precedence over any convention stated earlier in this
53
- prompt.** Where the two disagree, follow the repository. Where the repository is
54
- silent, the defaults above still apply.
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
- Paths listed under "Policy documents" are pointers, not content: read them when
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
 
@@ -1,163 +1,92 @@
1
- # Issue Flow Agent Instructions
2
-
3
- You are an autonomous coding agent working on a software project.
4
-
5
- ## Your Task
6
-
7
- 1. Read the PRD at `__PRD_FILE__`
8
- 2. Read the progress log at `__PROGRESS_FILE__` (check Codebase Patterns section first)
9
- 3. Check you're on the correct branch from PRD `branchName`. If not, check it out or create it from `__BASE_BRANCH__`.
10
- 4. Treat the issue as unresolved if **any** `userStories[].passes` is `false`, **or** if the PRD's top-level `lastReviewFindings` is non-null — that second condition holds even when every story already passes (see "Correction Findings from a Failed Review" below).
11
- 5. If `lastReviewFindings` is non-null, address it first (see below); otherwise pick the **highest priority** user story where `passes: false`
12
- 6. Implement that single user story
13
- 7. Run the quality checks that cover the files you changed (typecheck/lint/test for those paths). The orchestrator runs the full suite at the end of execute and again in review.
14
- 8. Update CLAUDE.md files if you discover reusable patterns (see below)
15
- 9. If checks pass, commit ALL changes with message: `__COMMIT_MESSAGE__`
16
- 10. Update the PRD to set `passes: true` for the completed story
17
- 11. Append your progress to `__PROGRESS_FILE__`
18
-
19
- ## Correction Findings from a Failed Review
20
-
21
- A prior automated review may have already run against this same code and found it wanting — its findings are persisted verbatim in the PRD's top-level `lastReviewFindings` field. When that field is non-null:
22
-
23
- - Treat it as **the** priority for this iteration, ahead of any story whose `passes` is still `false`.
24
- - The findings describe concrete defects in code that was already implemented and marked `passes: true` — they are not a new story. Do **not** re-implement stories from scratch; make the smallest correct change that addresses every finding.
25
- - Run the project's quality checks (typecheck, lint, test) to confirm the fix, exactly as for a normal story.
26
- - Commit the fix with message `__FIX_COMMIT_MESSAGE__` (or a more specific message naming what was fixed, keeping the same prefix).
27
- - Once every finding has been addressed, set `lastReviewFindings` back to `null` in the PRD before finishing this iteration. Leaving it non-null means the orchestrator will treat the issue as still uncorrected and loop again.
28
- - If a finding turns out to be a false positive or already fixed, still clear `lastReviewFindings` to `null`, but say so explicitly in the progress log entry so a human can double-check.
29
- - If you cannot fully resolve the findings in this iteration, leave `lastReviewFindings` as-is (do not clear it) and record what you did and what remains in the progress log — the orchestrator will invoke another iteration.
30
-
31
- ## Progress Report Format
32
-
33
- APPEND to `__PROGRESS_FILE__` (never replace, always append):
34
- ```
35
- ## [Date/Time] - [Story ID]
36
- - What was implemented
37
- - Files changed
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
- The task plan may contain a `pipeline` object that tracks orchestrator phase completion. Update these fields as appropriate:
39
+ ## Completion and blockers
106
40
 
107
- - After completing a story: set `pipeline.executionCompleted` to `false` (still in progress)
108
- - After ALL stories complete: set `pipeline.executionCompleted` to `true`
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 task plan may also contain `correctionCycle` and `maxCorrectionCycles` fields. These track how many review-fix cycles have occurred. The execution loop does not manage the correction loop — that is handled by the orchestrator or manually.
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
- If these fields don't exist in the task plan (older format), ignore them — they are optional.
49
+ <!-- if:__REPO_POLICY__ -->
50
+ ## Repository policy
113
51
 
114
- ## Stop Condition
52
+ __REPO_POLICY__
115
53
 
116
- After completing a user story or addressing `lastReviewFindings`, check if ALL stories have `passes: true` **and** `lastReviewFindings` is `null`.
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
- If ALL stories are complete and passing and there are no pending review findings, first update the task plan metadata:
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
- Then reply with:
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
- If there are still stories with `passes: false`, or `lastReviewFindings` is still non-null, end your response normally (another iteration will pick up the next story, or continue addressing the findings).
129
- If you need to stop for user guidance or another non-transient blocker, record it in top-level `lastError` and do not clear it.
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
- ## Important
65
+ <!-- if:__COMMIT_CONVENTION__ -->
66
+ ## Commit convention
132
67
 
133
- - Work on ONE story per iteration unless `__STORIES_PER_ITERATION__` is greater than 1, in which case you may close that many related stories that touch the same files, in one session. The default is 1.
134
- - Commit frequently
135
- - Keep CI green
136
- - Read the Codebase Patterns section in `__PROGRESS_FILE__` before starting
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
- <!-- if:__REPO_POLICY__ -->
139
- ## Repository policy
73
+ ## Evidence before completion
140
74
 
141
- The repository this runs in declares the conventions below. They were discovered
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
- __REPO_POLICY__
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
- **This section takes precedence over any convention stated earlier in this
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
- Paths listed under "Policy documents" are pointers, not content: read them when
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
- <!-- if:__COMMIT_CONVENTION__ -->
156
- ## Commit convention
83
+ ## Required context
157
84
 
158
- This repository declares: __COMMIT_CONVENTION__
85
+ __EXECUTION_CONTEXT__
159
86
 
160
- The commit message above is already in the resolved format. If you must pick a
161
- `<type>` inside that format, choose from the repository's vocabulary and match
162
- the **nature of this commit** never invent a type outside it.
163
- <!-- /if -->
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.
@@ -1,4 +1,8 @@
1
- You are drafting an issue for this repository.
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
- **This section takes precedence over any convention stated earlier in this
72
- prompt.** Where the two disagree, follow the repository. Where the repository is
73
- silent, the defaults above still apply.
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
- Paths listed under "Policy documents" are pointers, not content: read them when
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 do NOT fetch it:
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
- The next available User Story number for this project is __NEXT_US_NUMBER__. This
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
- "issueStatus": "pending",
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
- "id": "__NEXT_US_NUMBER__",
27
+ "key": "short-unique-key",
53
28
  "title": "...",
54
29
  "description": "As a ..., I want ... so that ...",
55
30
  "acceptanceCriteria": ["..."],
56
- "priority": 1,
57
- "passes": false,
58
- "notes": ""
31
+ "dependsOn": []
59
32
  }
60
33
  ]
61
34
  }
35
+ </task-plan>
62
36
 
63
37
  Rules:
64
- - Each user story from the PRD becomes one entry in userStories
65
- - Priority should order stories by dependency (build foundations first)
66
- - Story ids MUST start at __NEXT_US_NUMBER__ and increase sequentially — never
67
- restart at US-001 when __NEXT_US_NUMBER__ says otherwise
68
- - acceptanceCriteria must include "Typecheck passes" for code changes
69
- - issueUrl is already resolved above: a GitHub URL when the source is `github`,
70
- the path of the local issue file when the source is `local`. Use it verbatim
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
- **This section takes precedence over any convention stated earlier in this
88
- prompt.** Where the two disagree, follow the repository. Where the repository is
89
- silent, the defaults above still apply.
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
- Paths listed under "Policy documents" are pointers, not content: read them when
92
- a decision depends on what they say.
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
- ## Branch naming
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
- `branchName` is `__BRANCH_NAME__`. Copy it exactly. The CLI computed it from the
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.