@codyswann/lisa 2.119.1 → 2.121.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 (766) hide show
  1. package/.claude-plugin/marketplace.json +18 -0
  2. package/dist/agy/agents-md-installer.d.ts +24 -0
  3. package/dist/agy/agents-md-installer.d.ts.map +1 -0
  4. package/dist/agy/agents-md-installer.js +126 -0
  5. package/dist/agy/agents-md-installer.js.map +1 -0
  6. package/dist/agy/mcp-installer.d.ts +102 -0
  7. package/dist/agy/mcp-installer.d.ts.map +1 -0
  8. package/dist/agy/mcp-installer.js +155 -0
  9. package/dist/agy/mcp-installer.js.map +1 -0
  10. package/dist/agy/plugin-installer.d.ts +21 -0
  11. package/dist/agy/plugin-installer.d.ts.map +1 -0
  12. package/dist/agy/plugin-installer.js +88 -0
  13. package/dist/agy/plugin-installer.js.map +1 -0
  14. package/dist/claude/claude-md-installer.d.ts +18 -0
  15. package/dist/claude/claude-md-installer.d.ts.map +1 -0
  16. package/dist/claude/claude-md-installer.js +62 -0
  17. package/dist/claude/claude-md-installer.js.map +1 -0
  18. package/dist/codex/lisa-plugin-detection.d.ts +68 -0
  19. package/dist/codex/lisa-plugin-detection.d.ts.map +1 -0
  20. package/dist/codex/lisa-plugin-detection.js +139 -0
  21. package/dist/codex/lisa-plugin-detection.js.map +1 -0
  22. package/dist/copilot/copilot-instructions-installer.d.ts +18 -0
  23. package/dist/copilot/copilot-instructions-installer.d.ts.map +1 -0
  24. package/dist/copilot/copilot-instructions-installer.js +61 -0
  25. package/dist/copilot/copilot-instructions-installer.js.map +1 -0
  26. package/dist/copilot/plugin-installer.d.ts +29 -0
  27. package/dist/copilot/plugin-installer.d.ts.map +1 -0
  28. package/dist/copilot/plugin-installer.js +144 -0
  29. package/dist/copilot/plugin-installer.js.map +1 -0
  30. package/dist/core/config.d.ts +28 -4
  31. package/dist/core/config.d.ts.map +1 -1
  32. package/dist/core/config.js +24 -0
  33. package/dist/core/config.js.map +1 -1
  34. package/dist/core/lisa.d.ts +35 -0
  35. package/dist/core/lisa.d.ts.map +1 -1
  36. package/dist/core/lisa.js +99 -2
  37. package/dist/core/lisa.js.map +1 -1
  38. package/package.json +1 -1
  39. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  40. package/plugins/lisa/.codex-plugin/plugin.json +2 -1
  41. package/plugins/lisa/hooks/hooks.json +75 -0
  42. package/plugins/lisa-agy/agents/architecture-specialist.md +47 -0
  43. package/plugins/lisa-agy/agents/bug-fixer.md +39 -0
  44. package/plugins/lisa-agy/agents/builder.md +40 -0
  45. package/plugins/lisa-agy/agents/confluence-prd-intake.md +65 -0
  46. package/plugins/lisa-agy/agents/debug-specialist.md +114 -0
  47. package/plugins/lisa-agy/agents/git-history-analyzer.md +183 -0
  48. package/plugins/lisa-agy/agents/github-agent.md +148 -0
  49. package/plugins/lisa-agy/agents/github-build-intake.md +64 -0
  50. package/plugins/lisa-agy/agents/github-prd-intake.md +66 -0
  51. package/plugins/lisa-agy/agents/jira-agent.md +129 -0
  52. package/plugins/lisa-agy/agents/jira-build-intake.md +64 -0
  53. package/plugins/lisa-agy/agents/learner.md +43 -0
  54. package/plugins/lisa-agy/agents/learnings-synthesizer.md +135 -0
  55. package/plugins/lisa-agy/agents/linear-agent.md +134 -0
  56. package/plugins/lisa-agy/agents/linear-build-intake.md +64 -0
  57. package/plugins/lisa-agy/agents/linear-prd-intake.md +66 -0
  58. package/plugins/lisa-agy/agents/notion-prd-intake.md +63 -0
  59. package/plugins/lisa-agy/agents/performance-specialist.md +85 -0
  60. package/plugins/lisa-agy/agents/pr-mining-specialist.md +85 -0
  61. package/plugins/lisa-agy/agents/product-specialist.md +63 -0
  62. package/plugins/lisa-agy/agents/quality-specialist.md +56 -0
  63. package/plugins/lisa-agy/agents/security-specialist.md +51 -0
  64. package/plugins/lisa-agy/agents/skill-evaluator.md +245 -0
  65. package/plugins/lisa-agy/agents/spec-conformance-specialist.md +49 -0
  66. package/plugins/lisa-agy/agents/test-specialist.md +49 -0
  67. package/plugins/lisa-agy/agents/tracker-mining-specialist.md +85 -0
  68. package/plugins/lisa-agy/agents/verification-specialist.md +135 -0
  69. package/plugins/lisa-agy/commands/automation-status.md +12 -0
  70. package/plugins/lisa-agy/commands/codify-verification.md +6 -0
  71. package/plugins/lisa-agy/commands/debrief/apply.md +6 -0
  72. package/plugins/lisa-agy/commands/debrief.md +6 -0
  73. package/plugins/lisa-agy/commands/doctor.md +6 -0
  74. package/plugins/lisa-agy/commands/fix/linter-error.md +7 -0
  75. package/plugins/lisa-agy/commands/git/commit.md +7 -0
  76. package/plugins/lisa-agy/commands/git/prune.md +6 -0
  77. package/plugins/lisa-agy/commands/git/submit-pr.md +7 -0
  78. package/plugins/lisa-agy/commands/implement.md +6 -0
  79. package/plugins/lisa-agy/commands/improve/code-complexity.md +6 -0
  80. package/plugins/lisa-agy/commands/improve/max-lines-per-function.md +7 -0
  81. package/plugins/lisa-agy/commands/improve/max-lines.md +7 -0
  82. package/plugins/lisa-agy/commands/improve/test-coverage.md +7 -0
  83. package/plugins/lisa-agy/commands/improve/tests.md +7 -0
  84. package/plugins/lisa-agy/commands/intake-explain.md +31 -0
  85. package/plugins/lisa-agy/commands/intake.md +6 -0
  86. package/plugins/lisa-agy/commands/monitor.md +6 -0
  87. package/plugins/lisa-agy/commands/plan.md +6 -0
  88. package/plugins/lisa-agy/commands/plugin-sync-explain.md +8 -0
  89. package/plugins/lisa-agy/commands/product-walkthrough.md +7 -0
  90. package/plugins/lisa-agy/commands/project-ideation.md +6 -0
  91. package/plugins/lisa-agy/commands/pull-request/review.md +7 -0
  92. package/plugins/lisa-agy/commands/queue-status.md +34 -0
  93. package/plugins/lisa-agy/commands/repair-intake.md +6 -0
  94. package/plugins/lisa-agy/commands/research.md +6 -0
  95. package/plugins/lisa-agy/commands/review/local.md +6 -0
  96. package/plugins/lisa-agy/commands/security/zap-scan.md +6 -0
  97. package/plugins/lisa-agy/commands/setup/atlassian.md +7 -0
  98. package/plugins/lisa-agy/commands/setup/confluence.md +7 -0
  99. package/plugins/lisa-agy/commands/setup/github.md +7 -0
  100. package/plugins/lisa-agy/commands/setup/jira.md +7 -0
  101. package/plugins/lisa-agy/commands/setup/linear.md +7 -0
  102. package/plugins/lisa-agy/commands/setup/notion.md +7 -0
  103. package/plugins/lisa-agy/commands/setup-automations.md +6 -0
  104. package/plugins/lisa-agy/commands/tear-down-automations.md +6 -0
  105. package/plugins/lisa-agy/commands/verify-prd.md +6 -0
  106. package/plugins/lisa-agy/commands/verify.md +6 -0
  107. package/plugins/lisa-agy/commands/wiki/install.md +7 -0
  108. package/plugins/lisa-agy/plugin.json +8 -0
  109. package/plugins/lisa-agy/scripts/automation-status-claude-adapter.mjs +672 -0
  110. package/plugins/lisa-agy/scripts/automation-status-codex-adapter.mjs +697 -0
  111. package/plugins/lisa-agy/scripts/automation-status-contract-drift.mjs +392 -0
  112. package/plugins/lisa-agy/scripts/automation-status-expected-fleet.mjs +319 -0
  113. package/plugins/lisa-agy/scripts/automation-status-report.mjs +170 -0
  114. package/plugins/lisa-agy/scripts/doctor-report.mjs +143 -0
  115. package/plugins/lisa-agy/scripts/plugin-sync-explain.mjs +512 -0
  116. package/plugins/lisa-agy/scripts/project-ideation-idempotency-harness.mjs +319 -0
  117. package/plugins/lisa-agy/scripts/queue-contract-resolution.mjs +453 -0
  118. package/plugins/lisa-agy/scripts/queue-health-classification.mjs +157 -0
  119. package/plugins/lisa-agy/scripts/queue-status-build-readers.mjs +509 -0
  120. package/plugins/lisa-agy/scripts/queue-status-prd-readers.mjs +452 -0
  121. package/plugins/lisa-agy/skills/acceptance-criteria/SKILL.md +71 -0
  122. package/plugins/lisa-agy/skills/agent-design-best-practices/SKILL.md +219 -0
  123. package/plugins/lisa-agy/skills/atlassian-access/SKILL.md +293 -0
  124. package/plugins/lisa-agy/skills/automation-status/SKILL.md +111 -0
  125. package/plugins/lisa-agy/skills/bug-triage/SKILL.md +23 -0
  126. package/plugins/lisa-agy/skills/codebase-research/SKILL.md +87 -0
  127. package/plugins/lisa-agy/skills/codify-verification/SKILL.md +152 -0
  128. package/plugins/lisa-agy/skills/confluence-prd-intake/SKILL.md +417 -0
  129. package/plugins/lisa-agy/skills/confluence-to-tracker/SKILL.md +360 -0
  130. package/plugins/lisa-agy/skills/confluence-write-prd/SKILL.md +109 -0
  131. package/plugins/lisa-agy/skills/debrief/SKILL.md +94 -0
  132. package/plugins/lisa-agy/skills/debrief-apply/SKILL.md +63 -0
  133. package/plugins/lisa-agy/skills/doctor/SKILL.md +317 -0
  134. package/plugins/lisa-agy/skills/epic-triage/SKILL.md +28 -0
  135. package/plugins/lisa-agy/skills/fix-linter-error/SKILL.md +45 -0
  136. package/plugins/lisa-agy/skills/git-commit/SKILL.md +48 -0
  137. package/plugins/lisa-agy/skills/git-prune/SKILL.md +35 -0
  138. package/plugins/lisa-agy/skills/git-submit-pr/SKILL.md +105 -0
  139. package/plugins/lisa-agy/skills/github-add-journey/SKILL.md +115 -0
  140. package/plugins/lisa-agy/skills/github-build-intake/SKILL.md +377 -0
  141. package/plugins/lisa-agy/skills/github-create/SKILL.md +101 -0
  142. package/plugins/lisa-agy/skills/github-evidence/SKILL.md +110 -0
  143. package/plugins/lisa-agy/skills/github-journey/SKILL.md +121 -0
  144. package/plugins/lisa-agy/skills/github-prd-intake/SKILL.md +432 -0
  145. package/plugins/lisa-agy/skills/github-project-v2/SKILL.md +227 -0
  146. package/plugins/lisa-agy/skills/github-read-issue/SKILL.md +248 -0
  147. package/plugins/lisa-agy/skills/github-sync/SKILL.md +119 -0
  148. package/plugins/lisa-agy/skills/github-to-tracker/SKILL.md +345 -0
  149. package/plugins/lisa-agy/skills/github-validate-issue/SKILL.md +331 -0
  150. package/plugins/lisa-agy/skills/github-verify/SKILL.md +29 -0
  151. package/plugins/lisa-agy/skills/github-write-issue/SKILL.md +339 -0
  152. package/plugins/lisa-agy/skills/github-write-prd/SKILL.md +157 -0
  153. package/plugins/lisa-agy/skills/implement/SKILL.md +145 -0
  154. package/plugins/lisa-agy/skills/improve-code-complexity/SKILL.md +44 -0
  155. package/plugins/lisa-agy/skills/improve-max-lines/SKILL.md +45 -0
  156. package/plugins/lisa-agy/skills/improve-max-lines-per-function/SKILL.md +46 -0
  157. package/plugins/lisa-agy/skills/improve-test-coverage/SKILL.md +44 -0
  158. package/plugins/lisa-agy/skills/improve-tests/SKILL.md +47 -0
  159. package/plugins/lisa-agy/skills/intake/SKILL.md +132 -0
  160. package/plugins/lisa-agy/skills/intake-explain/SKILL.md +279 -0
  161. package/plugins/lisa-agy/skills/jira-add-journey/SKILL.md +121 -0
  162. package/plugins/lisa-agy/skills/jira-build-intake/SKILL.md +286 -0
  163. package/plugins/lisa-agy/skills/jira-create/SKILL.md +154 -0
  164. package/plugins/lisa-agy/skills/jira-evidence/SKILL.md +90 -0
  165. package/plugins/lisa-agy/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  166. package/plugins/lisa-agy/skills/jira-journey/SKILL.md +127 -0
  167. package/plugins/lisa-agy/skills/jira-journey/scripts/generate-templates.py +233 -0
  168. package/plugins/lisa-agy/skills/jira-journey/scripts/parse-plan.py +368 -0
  169. package/plugins/lisa-agy/skills/jira-read-ticket/SKILL.md +198 -0
  170. package/plugins/lisa-agy/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
  171. package/plugins/lisa-agy/skills/jira-sync/SKILL.md +95 -0
  172. package/plugins/lisa-agy/skills/jira-validate-ticket/SKILL.md +318 -0
  173. package/plugins/lisa-agy/skills/jira-verify/SKILL.md +30 -0
  174. package/plugins/lisa-agy/skills/jira-write-ticket/SKILL.md +265 -0
  175. package/plugins/lisa-agy/skills/jsdoc-best-practices/SKILL.md +432 -0
  176. package/plugins/lisa-agy/skills/linear-add-journey/SKILL.md +105 -0
  177. package/plugins/lisa-agy/skills/linear-build-intake/SKILL.md +283 -0
  178. package/plugins/lisa-agy/skills/linear-create/SKILL.md +146 -0
  179. package/plugins/lisa-agy/skills/linear-evidence/SKILL.md +103 -0
  180. package/plugins/lisa-agy/skills/linear-journey/SKILL.md +134 -0
  181. package/plugins/lisa-agy/skills/linear-prd-intake/SKILL.md +383 -0
  182. package/plugins/lisa-agy/skills/linear-read-issue/SKILL.md +200 -0
  183. package/plugins/lisa-agy/skills/linear-sync/SKILL.md +114 -0
  184. package/plugins/lisa-agy/skills/linear-to-tracker/SKILL.md +342 -0
  185. package/plugins/lisa-agy/skills/linear-validate-issue/SKILL.md +313 -0
  186. package/plugins/lisa-agy/skills/linear-verify/SKILL.md +51 -0
  187. package/plugins/lisa-agy/skills/linear-write-issue/SKILL.md +292 -0
  188. package/plugins/lisa-agy/skills/linear-write-prd/SKILL.md +96 -0
  189. package/plugins/lisa-agy/skills/lisa-review-implementation/SKILL.md +209 -0
  190. package/plugins/lisa-agy/skills/monitor/SKILL.md +48 -0
  191. package/plugins/lisa-agy/skills/nightly-add-test-coverage/SKILL.md +40 -0
  192. package/plugins/lisa-agy/skills/nightly-improve-tests/SKILL.md +29 -0
  193. package/plugins/lisa-agy/skills/nightly-lower-code-complexity/SKILL.md +28 -0
  194. package/plugins/lisa-agy/skills/notion-access/SKILL.md +226 -0
  195. package/plugins/lisa-agy/skills/notion-prd-intake/SKILL.md +360 -0
  196. package/plugins/lisa-agy/skills/notion-to-tracker/SKILL.md +357 -0
  197. package/plugins/lisa-agy/skills/notion-write-prd/SKILL.md +109 -0
  198. package/plugins/lisa-agy/skills/performance-review/SKILL.md +94 -0
  199. package/plugins/lisa-agy/skills/plan/SKILL.md +60 -0
  200. package/plugins/lisa-agy/skills/plugin-sync-explain/SKILL.md +53 -0
  201. package/plugins/lisa-agy/skills/prd-backlink/SKILL.md +265 -0
  202. package/plugins/lisa-agy/skills/prd-source-write/SKILL.md +101 -0
  203. package/plugins/lisa-agy/skills/prd-ticket-coverage/SKILL.md +170 -0
  204. package/plugins/lisa-agy/skills/product-walkthrough/SKILL.md +129 -0
  205. package/plugins/lisa-agy/skills/project-ideation/SKILL.md +315 -0
  206. package/plugins/lisa-agy/skills/project-ideation/examples/evidence-card-format.md +21 -0
  207. package/plugins/lisa-agy/skills/project-ideation/examples/host-project-only.md +22 -0
  208. package/plugins/lisa-agy/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
  209. package/plugins/lisa-agy/skills/project-ideation/examples/public-external-inspiration.md +22 -0
  210. package/plugins/lisa-agy/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
  211. package/plugins/lisa-agy/skills/pull-request-review/SKILL.md +68 -0
  212. package/plugins/lisa-agy/skills/quality-review/SKILL.md +54 -0
  213. package/plugins/lisa-agy/skills/queue-status/SKILL.md +133 -0
  214. package/plugins/lisa-agy/skills/repair-intake/SKILL.md +584 -0
  215. package/plugins/lisa-agy/skills/reproduce-bug/SKILL.md +96 -0
  216. package/plugins/lisa-agy/skills/research/SKILL.md +68 -0
  217. package/plugins/lisa-agy/skills/review-local/SKILL.md +88 -0
  218. package/plugins/lisa-agy/skills/root-cause-analysis/SKILL.md +155 -0
  219. package/plugins/lisa-agy/skills/security-review/SKILL.md +57 -0
  220. package/plugins/lisa-agy/skills/security-zap-scan/SKILL.md +33 -0
  221. package/plugins/lisa-agy/skills/setup-atlassian/SKILL.md +347 -0
  222. package/plugins/lisa-agy/skills/setup-automations/SKILL.md +99 -0
  223. package/plugins/lisa-agy/skills/setup-confluence/SKILL.md +254 -0
  224. package/plugins/lisa-agy/skills/setup-github/SKILL.md +268 -0
  225. package/plugins/lisa-agy/skills/setup-jira/SKILL.md +198 -0
  226. package/plugins/lisa-agy/skills/setup-linear/SKILL.md +251 -0
  227. package/plugins/lisa-agy/skills/setup-notion/SKILL.md +316 -0
  228. package/plugins/lisa-agy/skills/spec-conformance/SKILL.md +159 -0
  229. package/plugins/lisa-agy/skills/task-decomposition/SKILL.md +127 -0
  230. package/plugins/lisa-agy/skills/task-triage/SKILL.md +23 -0
  231. package/plugins/lisa-agy/skills/tdd-implementation/SKILL.md +83 -0
  232. package/plugins/lisa-agy/skills/tear-down-automations/SKILL.md +34 -0
  233. package/plugins/lisa-agy/skills/test-strategy/SKILL.md +63 -0
  234. package/plugins/lisa-agy/skills/ticket-triage/SKILL.md +182 -0
  235. package/plugins/lisa-agy/skills/tracker-add-journey/SKILL.md +26 -0
  236. package/plugins/lisa-agy/skills/tracker-build-intake/SKILL.md +64 -0
  237. package/plugins/lisa-agy/skills/tracker-create/SKILL.md +26 -0
  238. package/plugins/lisa-agy/skills/tracker-evidence/SKILL.md +52 -0
  239. package/plugins/lisa-agy/skills/tracker-journey/SKILL.md +26 -0
  240. package/plugins/lisa-agy/skills/tracker-read/SKILL.md +27 -0
  241. package/plugins/lisa-agy/skills/tracker-source-artifacts/SKILL.md +107 -0
  242. package/plugins/lisa-agy/skills/tracker-sync/SKILL.md +51 -0
  243. package/plugins/lisa-agy/skills/tracker-validate/SKILL.md +36 -0
  244. package/plugins/lisa-agy/skills/tracker-verify/SKILL.md +27 -0
  245. package/plugins/lisa-agy/skills/tracker-write/SKILL.md +53 -0
  246. package/plugins/lisa-agy/skills/usage-accounting/SKILL.md +170 -0
  247. package/plugins/lisa-agy/skills/verification-lifecycle/SKILL.md +339 -0
  248. package/plugins/lisa-agy/skills/verify/SKILL.md +49 -0
  249. package/plugins/lisa-agy/skills/verify-prd/SKILL.md +392 -0
  250. package/plugins/lisa-agy/skills/wiki-install/SKILL.md +101 -0
  251. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  252. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  253. package/plugins/lisa-copilot/.claude-plugin/plugin.json +72 -0
  254. package/plugins/lisa-copilot/agents/architecture-specialist.agent.md +47 -0
  255. package/plugins/lisa-copilot/agents/bug-fixer.agent.md +39 -0
  256. package/plugins/lisa-copilot/agents/builder.agent.md +40 -0
  257. package/plugins/lisa-copilot/agents/confluence-prd-intake.agent.md +65 -0
  258. package/plugins/lisa-copilot/agents/debug-specialist.agent.md +114 -0
  259. package/plugins/lisa-copilot/agents/git-history-analyzer.agent.md +183 -0
  260. package/plugins/lisa-copilot/agents/github-agent.agent.md +148 -0
  261. package/plugins/lisa-copilot/agents/github-build-intake.agent.md +64 -0
  262. package/plugins/lisa-copilot/agents/github-prd-intake.agent.md +66 -0
  263. package/plugins/lisa-copilot/agents/jira-agent.agent.md +129 -0
  264. package/plugins/lisa-copilot/agents/jira-build-intake.agent.md +64 -0
  265. package/plugins/lisa-copilot/agents/learner.agent.md +43 -0
  266. package/plugins/lisa-copilot/agents/learnings-synthesizer.agent.md +135 -0
  267. package/plugins/lisa-copilot/agents/linear-agent.agent.md +134 -0
  268. package/plugins/lisa-copilot/agents/linear-build-intake.agent.md +64 -0
  269. package/plugins/lisa-copilot/agents/linear-prd-intake.agent.md +66 -0
  270. package/plugins/lisa-copilot/agents/notion-prd-intake.agent.md +63 -0
  271. package/plugins/lisa-copilot/agents/performance-specialist.agent.md +85 -0
  272. package/plugins/lisa-copilot/agents/pr-mining-specialist.agent.md +85 -0
  273. package/plugins/lisa-copilot/agents/product-specialist.agent.md +63 -0
  274. package/plugins/lisa-copilot/agents/quality-specialist.agent.md +56 -0
  275. package/plugins/lisa-copilot/agents/security-specialist.agent.md +51 -0
  276. package/plugins/lisa-copilot/agents/skill-evaluator.agent.md +245 -0
  277. package/plugins/lisa-copilot/agents/spec-conformance-specialist.agent.md +49 -0
  278. package/plugins/lisa-copilot/agents/test-specialist.agent.md +49 -0
  279. package/plugins/lisa-copilot/agents/tracker-mining-specialist.agent.md +85 -0
  280. package/plugins/lisa-copilot/agents/verification-specialist.agent.md +135 -0
  281. package/plugins/lisa-copilot/commands/automation-status.md +12 -0
  282. package/plugins/lisa-copilot/commands/codify-verification.md +6 -0
  283. package/plugins/lisa-copilot/commands/debrief/apply.md +6 -0
  284. package/plugins/lisa-copilot/commands/debrief.md +6 -0
  285. package/plugins/lisa-copilot/commands/doctor.md +6 -0
  286. package/plugins/lisa-copilot/commands/fix/linter-error.md +7 -0
  287. package/plugins/lisa-copilot/commands/git/commit.md +7 -0
  288. package/plugins/lisa-copilot/commands/git/prune.md +6 -0
  289. package/plugins/lisa-copilot/commands/git/submit-pr.md +7 -0
  290. package/plugins/lisa-copilot/commands/implement.md +6 -0
  291. package/plugins/lisa-copilot/commands/improve/code-complexity.md +6 -0
  292. package/plugins/lisa-copilot/commands/improve/max-lines-per-function.md +7 -0
  293. package/plugins/lisa-copilot/commands/improve/max-lines.md +7 -0
  294. package/plugins/lisa-copilot/commands/improve/test-coverage.md +7 -0
  295. package/plugins/lisa-copilot/commands/improve/tests.md +7 -0
  296. package/plugins/lisa-copilot/commands/intake-explain.md +31 -0
  297. package/plugins/lisa-copilot/commands/intake.md +6 -0
  298. package/plugins/lisa-copilot/commands/monitor.md +6 -0
  299. package/plugins/lisa-copilot/commands/plan.md +6 -0
  300. package/plugins/lisa-copilot/commands/plugin-sync-explain.md +8 -0
  301. package/plugins/lisa-copilot/commands/product-walkthrough.md +7 -0
  302. package/plugins/lisa-copilot/commands/project-ideation.md +6 -0
  303. package/plugins/lisa-copilot/commands/pull-request/review.md +7 -0
  304. package/plugins/lisa-copilot/commands/queue-status.md +34 -0
  305. package/plugins/lisa-copilot/commands/repair-intake.md +6 -0
  306. package/plugins/lisa-copilot/commands/research.md +6 -0
  307. package/plugins/lisa-copilot/commands/review/local.md +6 -0
  308. package/plugins/lisa-copilot/commands/security/zap-scan.md +6 -0
  309. package/plugins/lisa-copilot/commands/setup/atlassian.md +7 -0
  310. package/plugins/lisa-copilot/commands/setup/confluence.md +7 -0
  311. package/plugins/lisa-copilot/commands/setup/github.md +7 -0
  312. package/plugins/lisa-copilot/commands/setup/jira.md +7 -0
  313. package/plugins/lisa-copilot/commands/setup/linear.md +7 -0
  314. package/plugins/lisa-copilot/commands/setup/notion.md +7 -0
  315. package/plugins/lisa-copilot/commands/setup-automations.md +6 -0
  316. package/plugins/lisa-copilot/commands/tear-down-automations.md +6 -0
  317. package/plugins/lisa-copilot/commands/verify-prd.md +6 -0
  318. package/plugins/lisa-copilot/commands/verify.md +6 -0
  319. package/plugins/lisa-copilot/commands/wiki/install.md +7 -0
  320. package/plugins/lisa-copilot/hooks/block-no-verify.sh +37 -0
  321. package/plugins/lisa-copilot/hooks/inject-rules.sh +33 -0
  322. package/plugins/lisa-copilot/hooks/install-pkgs.sh +69 -0
  323. package/plugins/lisa-copilot/hooks/notify-ntfy.sh +183 -0
  324. package/plugins/lisa-copilot/hooks/setup-jira-cli.sh +51 -0
  325. package/plugins/lisa-copilot/rules/eager/base-rules.md +70 -0
  326. package/plugins/lisa-copilot/rules/eager/coding-philosophy.md +27 -0
  327. package/plugins/lisa-copilot/rules/eager/config-resolution.md +28 -0
  328. package/plugins/lisa-copilot/rules/eager/documentation-source-paths.md +13 -0
  329. package/plugins/lisa-copilot/rules/eager/empirical-inquiry.md +22 -0
  330. package/plugins/lisa-copilot/rules/eager/intent-routing.md +18 -0
  331. package/plugins/lisa-copilot/rules/eager/leaf-only-lifecycle.md +39 -0
  332. package/plugins/lisa-copilot/rules/eager/prd-lifecycle-rollup.md +31 -0
  333. package/plugins/lisa-copilot/rules/eager/repo-scope-split.md +39 -0
  334. package/plugins/lisa-copilot/rules/eager/security-audit-handling.md +29 -0
  335. package/plugins/lisa-copilot/rules/eager/usage-accounting.md +28 -0
  336. package/plugins/lisa-copilot/rules/eager/verification.md +21 -0
  337. package/plugins/lisa-copilot/rules/eager/wiki-knowledge-source.md +16 -0
  338. package/plugins/lisa-copilot/rules/reference/base-rules.md +133 -0
  339. package/plugins/lisa-copilot/rules/reference/coding-philosophy.md +428 -0
  340. package/plugins/lisa-copilot/rules/reference/config-resolution.md +691 -0
  341. package/plugins/lisa-copilot/rules/reference/documentation-source-paths.md +13 -0
  342. package/plugins/lisa-copilot/rules/reference/empirical-inquiry.md +27 -0
  343. package/plugins/lisa-copilot/rules/reference/intent-routing.md +407 -0
  344. package/plugins/lisa-copilot/rules/reference/leaf-only-lifecycle.md +120 -0
  345. package/plugins/lisa-copilot/rules/reference/prd-lifecycle-rollup.md +156 -0
  346. package/plugins/lisa-copilot/rules/reference/repo-scope-split.md +58 -0
  347. package/plugins/lisa-copilot/rules/reference/security-audit-handling.md +30 -0
  348. package/plugins/lisa-copilot/rules/reference/usage-accounting.md +144 -0
  349. package/plugins/lisa-copilot/rules/reference/verification.md +124 -0
  350. package/plugins/lisa-copilot/rules/reference/wiki-knowledge-source.md +14 -0
  351. package/plugins/lisa-copilot/scripts/automation-status-claude-adapter.mjs +672 -0
  352. package/plugins/lisa-copilot/scripts/automation-status-codex-adapter.mjs +697 -0
  353. package/plugins/lisa-copilot/scripts/automation-status-contract-drift.mjs +392 -0
  354. package/plugins/lisa-copilot/scripts/automation-status-expected-fleet.mjs +319 -0
  355. package/plugins/lisa-copilot/scripts/automation-status-report.mjs +170 -0
  356. package/plugins/lisa-copilot/scripts/doctor-report.mjs +143 -0
  357. package/plugins/lisa-copilot/scripts/plugin-sync-explain.mjs +512 -0
  358. package/plugins/lisa-copilot/scripts/project-ideation-idempotency-harness.mjs +319 -0
  359. package/plugins/lisa-copilot/scripts/queue-contract-resolution.mjs +453 -0
  360. package/plugins/lisa-copilot/scripts/queue-health-classification.mjs +157 -0
  361. package/plugins/lisa-copilot/scripts/queue-status-build-readers.mjs +509 -0
  362. package/plugins/lisa-copilot/scripts/queue-status-prd-readers.mjs +452 -0
  363. package/plugins/lisa-copilot/skills/acceptance-criteria/SKILL.md +71 -0
  364. package/plugins/lisa-copilot/skills/agent-design-best-practices/SKILL.md +219 -0
  365. package/plugins/lisa-copilot/skills/atlassian-access/SKILL.md +293 -0
  366. package/plugins/lisa-copilot/skills/automation-status/SKILL.md +111 -0
  367. package/plugins/lisa-copilot/skills/bug-triage/SKILL.md +23 -0
  368. package/plugins/lisa-copilot/skills/codebase-research/SKILL.md +87 -0
  369. package/plugins/lisa-copilot/skills/codify-verification/SKILL.md +152 -0
  370. package/plugins/lisa-copilot/skills/confluence-prd-intake/SKILL.md +417 -0
  371. package/plugins/lisa-copilot/skills/confluence-to-tracker/SKILL.md +360 -0
  372. package/plugins/lisa-copilot/skills/confluence-write-prd/SKILL.md +109 -0
  373. package/plugins/lisa-copilot/skills/debrief/SKILL.md +94 -0
  374. package/plugins/lisa-copilot/skills/debrief-apply/SKILL.md +63 -0
  375. package/plugins/lisa-copilot/skills/doctor/SKILL.md +317 -0
  376. package/plugins/lisa-copilot/skills/epic-triage/SKILL.md +28 -0
  377. package/plugins/lisa-copilot/skills/fix-linter-error/SKILL.md +45 -0
  378. package/plugins/lisa-copilot/skills/git-commit/SKILL.md +48 -0
  379. package/plugins/lisa-copilot/skills/git-prune/SKILL.md +35 -0
  380. package/plugins/lisa-copilot/skills/git-submit-pr/SKILL.md +105 -0
  381. package/plugins/lisa-copilot/skills/github-add-journey/SKILL.md +115 -0
  382. package/plugins/lisa-copilot/skills/github-build-intake/SKILL.md +377 -0
  383. package/plugins/lisa-copilot/skills/github-create/SKILL.md +101 -0
  384. package/plugins/lisa-copilot/skills/github-evidence/SKILL.md +110 -0
  385. package/plugins/lisa-copilot/skills/github-journey/SKILL.md +121 -0
  386. package/plugins/lisa-copilot/skills/github-prd-intake/SKILL.md +432 -0
  387. package/plugins/lisa-copilot/skills/github-project-v2/SKILL.md +227 -0
  388. package/plugins/lisa-copilot/skills/github-read-issue/SKILL.md +248 -0
  389. package/plugins/lisa-copilot/skills/github-sync/SKILL.md +119 -0
  390. package/plugins/lisa-copilot/skills/github-to-tracker/SKILL.md +345 -0
  391. package/plugins/lisa-copilot/skills/github-validate-issue/SKILL.md +331 -0
  392. package/plugins/lisa-copilot/skills/github-verify/SKILL.md +29 -0
  393. package/plugins/lisa-copilot/skills/github-write-issue/SKILL.md +339 -0
  394. package/plugins/lisa-copilot/skills/github-write-prd/SKILL.md +157 -0
  395. package/plugins/lisa-copilot/skills/implement/SKILL.md +145 -0
  396. package/plugins/lisa-copilot/skills/improve-code-complexity/SKILL.md +44 -0
  397. package/plugins/lisa-copilot/skills/improve-max-lines/SKILL.md +45 -0
  398. package/plugins/lisa-copilot/skills/improve-max-lines-per-function/SKILL.md +46 -0
  399. package/plugins/lisa-copilot/skills/improve-test-coverage/SKILL.md +44 -0
  400. package/plugins/lisa-copilot/skills/improve-tests/SKILL.md +47 -0
  401. package/plugins/lisa-copilot/skills/intake/SKILL.md +132 -0
  402. package/plugins/lisa-copilot/skills/intake-explain/SKILL.md +279 -0
  403. package/plugins/lisa-copilot/skills/jira-add-journey/SKILL.md +121 -0
  404. package/plugins/lisa-copilot/skills/jira-build-intake/SKILL.md +286 -0
  405. package/plugins/lisa-copilot/skills/jira-create/SKILL.md +154 -0
  406. package/plugins/lisa-copilot/skills/jira-evidence/SKILL.md +90 -0
  407. package/plugins/lisa-copilot/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  408. package/plugins/lisa-copilot/skills/jira-journey/SKILL.md +127 -0
  409. package/plugins/lisa-copilot/skills/jira-journey/scripts/generate-templates.py +233 -0
  410. package/plugins/lisa-copilot/skills/jira-journey/scripts/parse-plan.py +368 -0
  411. package/plugins/lisa-copilot/skills/jira-read-ticket/SKILL.md +198 -0
  412. package/plugins/lisa-copilot/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
  413. package/plugins/lisa-copilot/skills/jira-sync/SKILL.md +95 -0
  414. package/plugins/lisa-copilot/skills/jira-validate-ticket/SKILL.md +318 -0
  415. package/plugins/lisa-copilot/skills/jira-verify/SKILL.md +30 -0
  416. package/plugins/lisa-copilot/skills/jira-write-ticket/SKILL.md +265 -0
  417. package/plugins/lisa-copilot/skills/jsdoc-best-practices/SKILL.md +432 -0
  418. package/plugins/lisa-copilot/skills/linear-add-journey/SKILL.md +105 -0
  419. package/plugins/lisa-copilot/skills/linear-build-intake/SKILL.md +283 -0
  420. package/plugins/lisa-copilot/skills/linear-create/SKILL.md +146 -0
  421. package/plugins/lisa-copilot/skills/linear-evidence/SKILL.md +103 -0
  422. package/plugins/lisa-copilot/skills/linear-journey/SKILL.md +134 -0
  423. package/plugins/lisa-copilot/skills/linear-prd-intake/SKILL.md +383 -0
  424. package/plugins/lisa-copilot/skills/linear-read-issue/SKILL.md +200 -0
  425. package/plugins/lisa-copilot/skills/linear-sync/SKILL.md +114 -0
  426. package/plugins/lisa-copilot/skills/linear-to-tracker/SKILL.md +342 -0
  427. package/plugins/lisa-copilot/skills/linear-validate-issue/SKILL.md +313 -0
  428. package/plugins/lisa-copilot/skills/linear-verify/SKILL.md +51 -0
  429. package/plugins/lisa-copilot/skills/linear-write-issue/SKILL.md +292 -0
  430. package/plugins/lisa-copilot/skills/linear-write-prd/SKILL.md +96 -0
  431. package/plugins/lisa-copilot/skills/lisa-review-implementation/SKILL.md +209 -0
  432. package/plugins/lisa-copilot/skills/monitor/SKILL.md +48 -0
  433. package/plugins/lisa-copilot/skills/nightly-add-test-coverage/SKILL.md +40 -0
  434. package/plugins/lisa-copilot/skills/nightly-improve-tests/SKILL.md +29 -0
  435. package/plugins/lisa-copilot/skills/nightly-lower-code-complexity/SKILL.md +28 -0
  436. package/plugins/lisa-copilot/skills/notion-access/SKILL.md +226 -0
  437. package/plugins/lisa-copilot/skills/notion-prd-intake/SKILL.md +360 -0
  438. package/plugins/lisa-copilot/skills/notion-to-tracker/SKILL.md +357 -0
  439. package/plugins/lisa-copilot/skills/notion-write-prd/SKILL.md +109 -0
  440. package/plugins/lisa-copilot/skills/performance-review/SKILL.md +94 -0
  441. package/plugins/lisa-copilot/skills/plan/SKILL.md +60 -0
  442. package/plugins/lisa-copilot/skills/plugin-sync-explain/SKILL.md +53 -0
  443. package/plugins/lisa-copilot/skills/prd-backlink/SKILL.md +265 -0
  444. package/plugins/lisa-copilot/skills/prd-source-write/SKILL.md +101 -0
  445. package/plugins/lisa-copilot/skills/prd-ticket-coverage/SKILL.md +170 -0
  446. package/plugins/lisa-copilot/skills/product-walkthrough/SKILL.md +129 -0
  447. package/plugins/lisa-copilot/skills/project-ideation/SKILL.md +315 -0
  448. package/plugins/lisa-copilot/skills/project-ideation/examples/evidence-card-format.md +21 -0
  449. package/plugins/lisa-copilot/skills/project-ideation/examples/host-project-only.md +22 -0
  450. package/plugins/lisa-copilot/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
  451. package/plugins/lisa-copilot/skills/project-ideation/examples/public-external-inspiration.md +22 -0
  452. package/plugins/lisa-copilot/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
  453. package/plugins/lisa-copilot/skills/pull-request-review/SKILL.md +68 -0
  454. package/plugins/lisa-copilot/skills/quality-review/SKILL.md +54 -0
  455. package/plugins/lisa-copilot/skills/queue-status/SKILL.md +133 -0
  456. package/plugins/lisa-copilot/skills/repair-intake/SKILL.md +584 -0
  457. package/plugins/lisa-copilot/skills/reproduce-bug/SKILL.md +96 -0
  458. package/plugins/lisa-copilot/skills/research/SKILL.md +68 -0
  459. package/plugins/lisa-copilot/skills/review-local/SKILL.md +88 -0
  460. package/plugins/lisa-copilot/skills/root-cause-analysis/SKILL.md +155 -0
  461. package/plugins/lisa-copilot/skills/security-review/SKILL.md +57 -0
  462. package/plugins/lisa-copilot/skills/security-zap-scan/SKILL.md +33 -0
  463. package/plugins/lisa-copilot/skills/setup-atlassian/SKILL.md +347 -0
  464. package/plugins/lisa-copilot/skills/setup-automations/SKILL.md +99 -0
  465. package/plugins/lisa-copilot/skills/setup-confluence/SKILL.md +254 -0
  466. package/plugins/lisa-copilot/skills/setup-github/SKILL.md +268 -0
  467. package/plugins/lisa-copilot/skills/setup-jira/SKILL.md +198 -0
  468. package/plugins/lisa-copilot/skills/setup-linear/SKILL.md +251 -0
  469. package/plugins/lisa-copilot/skills/setup-notion/SKILL.md +316 -0
  470. package/plugins/lisa-copilot/skills/spec-conformance/SKILL.md +159 -0
  471. package/plugins/lisa-copilot/skills/task-decomposition/SKILL.md +127 -0
  472. package/plugins/lisa-copilot/skills/task-triage/SKILL.md +23 -0
  473. package/plugins/lisa-copilot/skills/tdd-implementation/SKILL.md +83 -0
  474. package/plugins/lisa-copilot/skills/tear-down-automations/SKILL.md +34 -0
  475. package/plugins/lisa-copilot/skills/test-strategy/SKILL.md +63 -0
  476. package/plugins/lisa-copilot/skills/ticket-triage/SKILL.md +182 -0
  477. package/plugins/lisa-copilot/skills/tracker-add-journey/SKILL.md +26 -0
  478. package/plugins/lisa-copilot/skills/tracker-build-intake/SKILL.md +64 -0
  479. package/plugins/lisa-copilot/skills/tracker-create/SKILL.md +26 -0
  480. package/plugins/lisa-copilot/skills/tracker-evidence/SKILL.md +52 -0
  481. package/plugins/lisa-copilot/skills/tracker-journey/SKILL.md +26 -0
  482. package/plugins/lisa-copilot/skills/tracker-read/SKILL.md +27 -0
  483. package/plugins/lisa-copilot/skills/tracker-source-artifacts/SKILL.md +107 -0
  484. package/plugins/lisa-copilot/skills/tracker-sync/SKILL.md +51 -0
  485. package/plugins/lisa-copilot/skills/tracker-validate/SKILL.md +36 -0
  486. package/plugins/lisa-copilot/skills/tracker-verify/SKILL.md +27 -0
  487. package/plugins/lisa-copilot/skills/tracker-write/SKILL.md +53 -0
  488. package/plugins/lisa-copilot/skills/usage-accounting/SKILL.md +170 -0
  489. package/plugins/lisa-copilot/skills/verification-lifecycle/SKILL.md +339 -0
  490. package/plugins/lisa-copilot/skills/verify/SKILL.md +49 -0
  491. package/plugins/lisa-copilot/skills/verify-prd/SKILL.md +392 -0
  492. package/plugins/lisa-copilot/skills/wiki-install/SKILL.md +101 -0
  493. package/plugins/lisa-cursor/.claude-plugin/plugin.json +52 -0
  494. package/plugins/lisa-cursor/agents/architecture-specialist.md +47 -0
  495. package/plugins/lisa-cursor/agents/bug-fixer.md +39 -0
  496. package/plugins/lisa-cursor/agents/builder.md +40 -0
  497. package/plugins/lisa-cursor/agents/confluence-prd-intake.md +65 -0
  498. package/plugins/lisa-cursor/agents/debug-specialist.md +114 -0
  499. package/plugins/lisa-cursor/agents/git-history-analyzer.md +183 -0
  500. package/plugins/lisa-cursor/agents/github-agent.md +148 -0
  501. package/plugins/lisa-cursor/agents/github-build-intake.md +64 -0
  502. package/plugins/lisa-cursor/agents/github-prd-intake.md +66 -0
  503. package/plugins/lisa-cursor/agents/jira-agent.md +129 -0
  504. package/plugins/lisa-cursor/agents/jira-build-intake.md +64 -0
  505. package/plugins/lisa-cursor/agents/learner.md +43 -0
  506. package/plugins/lisa-cursor/agents/learnings-synthesizer.md +135 -0
  507. package/plugins/lisa-cursor/agents/linear-agent.md +134 -0
  508. package/plugins/lisa-cursor/agents/linear-build-intake.md +64 -0
  509. package/plugins/lisa-cursor/agents/linear-prd-intake.md +66 -0
  510. package/plugins/lisa-cursor/agents/notion-prd-intake.md +63 -0
  511. package/plugins/lisa-cursor/agents/performance-specialist.md +85 -0
  512. package/plugins/lisa-cursor/agents/pr-mining-specialist.md +85 -0
  513. package/plugins/lisa-cursor/agents/product-specialist.md +63 -0
  514. package/plugins/lisa-cursor/agents/quality-specialist.md +56 -0
  515. package/plugins/lisa-cursor/agents/security-specialist.md +51 -0
  516. package/plugins/lisa-cursor/agents/skill-evaluator.md +245 -0
  517. package/plugins/lisa-cursor/agents/spec-conformance-specialist.md +49 -0
  518. package/plugins/lisa-cursor/agents/test-specialist.md +49 -0
  519. package/plugins/lisa-cursor/agents/tracker-mining-specialist.md +85 -0
  520. package/plugins/lisa-cursor/agents/verification-specialist.md +135 -0
  521. package/plugins/lisa-cursor/commands/automation-status.md +12 -0
  522. package/plugins/lisa-cursor/commands/codify-verification.md +6 -0
  523. package/plugins/lisa-cursor/commands/debrief/apply.md +6 -0
  524. package/plugins/lisa-cursor/commands/debrief.md +6 -0
  525. package/plugins/lisa-cursor/commands/doctor.md +6 -0
  526. package/plugins/lisa-cursor/commands/fix/linter-error.md +7 -0
  527. package/plugins/lisa-cursor/commands/git/commit.md +7 -0
  528. package/plugins/lisa-cursor/commands/git/prune.md +6 -0
  529. package/plugins/lisa-cursor/commands/git/submit-pr.md +7 -0
  530. package/plugins/lisa-cursor/commands/implement.md +6 -0
  531. package/plugins/lisa-cursor/commands/improve/code-complexity.md +6 -0
  532. package/plugins/lisa-cursor/commands/improve/max-lines-per-function.md +7 -0
  533. package/plugins/lisa-cursor/commands/improve/max-lines.md +7 -0
  534. package/plugins/lisa-cursor/commands/improve/test-coverage.md +7 -0
  535. package/plugins/lisa-cursor/commands/improve/tests.md +7 -0
  536. package/plugins/lisa-cursor/commands/intake-explain.md +31 -0
  537. package/plugins/lisa-cursor/commands/intake.md +6 -0
  538. package/plugins/lisa-cursor/commands/monitor.md +6 -0
  539. package/plugins/lisa-cursor/commands/plan.md +6 -0
  540. package/plugins/lisa-cursor/commands/plugin-sync-explain.md +8 -0
  541. package/plugins/lisa-cursor/commands/product-walkthrough.md +7 -0
  542. package/plugins/lisa-cursor/commands/project-ideation.md +6 -0
  543. package/plugins/lisa-cursor/commands/pull-request/review.md +7 -0
  544. package/plugins/lisa-cursor/commands/queue-status.md +34 -0
  545. package/plugins/lisa-cursor/commands/repair-intake.md +6 -0
  546. package/plugins/lisa-cursor/commands/research.md +6 -0
  547. package/plugins/lisa-cursor/commands/review/local.md +6 -0
  548. package/plugins/lisa-cursor/commands/security/zap-scan.md +6 -0
  549. package/plugins/lisa-cursor/commands/setup/atlassian.md +7 -0
  550. package/plugins/lisa-cursor/commands/setup/confluence.md +7 -0
  551. package/plugins/lisa-cursor/commands/setup/github.md +7 -0
  552. package/plugins/lisa-cursor/commands/setup/jira.md +7 -0
  553. package/plugins/lisa-cursor/commands/setup/linear.md +7 -0
  554. package/plugins/lisa-cursor/commands/setup/notion.md +7 -0
  555. package/plugins/lisa-cursor/commands/setup-automations.md +6 -0
  556. package/plugins/lisa-cursor/commands/tear-down-automations.md +6 -0
  557. package/plugins/lisa-cursor/commands/verify-prd.md +6 -0
  558. package/plugins/lisa-cursor/commands/verify.md +6 -0
  559. package/plugins/lisa-cursor/commands/wiki/install.md +7 -0
  560. package/plugins/lisa-cursor/hooks/block-no-verify.sh +37 -0
  561. package/plugins/lisa-cursor/hooks/install-pkgs.sh +69 -0
  562. package/plugins/lisa-cursor/hooks/notify-ntfy.sh +183 -0
  563. package/plugins/lisa-cursor/hooks/setup-jira-cli.sh +51 -0
  564. package/plugins/lisa-cursor/rules/eager/base-rules.md +70 -0
  565. package/plugins/lisa-cursor/rules/eager/coding-philosophy.md +27 -0
  566. package/plugins/lisa-cursor/rules/eager/config-resolution.md +28 -0
  567. package/plugins/lisa-cursor/rules/eager/documentation-source-paths.md +13 -0
  568. package/plugins/lisa-cursor/rules/eager/empirical-inquiry.md +22 -0
  569. package/plugins/lisa-cursor/rules/eager/intent-routing.md +18 -0
  570. package/plugins/lisa-cursor/rules/eager/leaf-only-lifecycle.md +39 -0
  571. package/plugins/lisa-cursor/rules/eager/prd-lifecycle-rollup.md +31 -0
  572. package/plugins/lisa-cursor/rules/eager/repo-scope-split.md +39 -0
  573. package/plugins/lisa-cursor/rules/eager/security-audit-handling.md +29 -0
  574. package/plugins/lisa-cursor/rules/eager/usage-accounting.md +28 -0
  575. package/plugins/lisa-cursor/rules/eager/verification.md +21 -0
  576. package/plugins/lisa-cursor/rules/eager/wiki-knowledge-source.md +16 -0
  577. package/plugins/lisa-cursor/rules/reference/base-rules.md +133 -0
  578. package/plugins/lisa-cursor/rules/reference/coding-philosophy.md +428 -0
  579. package/plugins/lisa-cursor/rules/reference/config-resolution.md +691 -0
  580. package/plugins/lisa-cursor/rules/reference/documentation-source-paths.md +13 -0
  581. package/plugins/lisa-cursor/rules/reference/empirical-inquiry.md +27 -0
  582. package/plugins/lisa-cursor/rules/reference/intent-routing.md +407 -0
  583. package/plugins/lisa-cursor/rules/reference/leaf-only-lifecycle.md +120 -0
  584. package/plugins/lisa-cursor/rules/reference/prd-lifecycle-rollup.md +156 -0
  585. package/plugins/lisa-cursor/rules/reference/repo-scope-split.md +58 -0
  586. package/plugins/lisa-cursor/rules/reference/security-audit-handling.md +30 -0
  587. package/plugins/lisa-cursor/rules/reference/usage-accounting.md +144 -0
  588. package/plugins/lisa-cursor/rules/reference/verification.md +124 -0
  589. package/plugins/lisa-cursor/rules/reference/wiki-knowledge-source.md +14 -0
  590. package/plugins/lisa-cursor/scripts/automation-status-claude-adapter.mjs +672 -0
  591. package/plugins/lisa-cursor/scripts/automation-status-codex-adapter.mjs +697 -0
  592. package/plugins/lisa-cursor/scripts/automation-status-contract-drift.mjs +392 -0
  593. package/plugins/lisa-cursor/scripts/automation-status-expected-fleet.mjs +319 -0
  594. package/plugins/lisa-cursor/scripts/automation-status-report.mjs +170 -0
  595. package/plugins/lisa-cursor/scripts/doctor-report.mjs +143 -0
  596. package/plugins/lisa-cursor/scripts/plugin-sync-explain.mjs +512 -0
  597. package/plugins/lisa-cursor/scripts/project-ideation-idempotency-harness.mjs +319 -0
  598. package/plugins/lisa-cursor/scripts/queue-contract-resolution.mjs +453 -0
  599. package/plugins/lisa-cursor/scripts/queue-health-classification.mjs +157 -0
  600. package/plugins/lisa-cursor/scripts/queue-status-build-readers.mjs +509 -0
  601. package/plugins/lisa-cursor/scripts/queue-status-prd-readers.mjs +452 -0
  602. package/plugins/lisa-cursor/skills/acceptance-criteria/SKILL.md +71 -0
  603. package/plugins/lisa-cursor/skills/agent-design-best-practices/SKILL.md +219 -0
  604. package/plugins/lisa-cursor/skills/atlassian-access/SKILL.md +293 -0
  605. package/plugins/lisa-cursor/skills/automation-status/SKILL.md +111 -0
  606. package/plugins/lisa-cursor/skills/bug-triage/SKILL.md +23 -0
  607. package/plugins/lisa-cursor/skills/codebase-research/SKILL.md +87 -0
  608. package/plugins/lisa-cursor/skills/codify-verification/SKILL.md +152 -0
  609. package/plugins/lisa-cursor/skills/confluence-prd-intake/SKILL.md +417 -0
  610. package/plugins/lisa-cursor/skills/confluence-to-tracker/SKILL.md +360 -0
  611. package/plugins/lisa-cursor/skills/confluence-write-prd/SKILL.md +109 -0
  612. package/plugins/lisa-cursor/skills/debrief/SKILL.md +94 -0
  613. package/plugins/lisa-cursor/skills/debrief-apply/SKILL.md +63 -0
  614. package/plugins/lisa-cursor/skills/doctor/SKILL.md +317 -0
  615. package/plugins/lisa-cursor/skills/epic-triage/SKILL.md +28 -0
  616. package/plugins/lisa-cursor/skills/fix-linter-error/SKILL.md +45 -0
  617. package/plugins/lisa-cursor/skills/git-commit/SKILL.md +48 -0
  618. package/plugins/lisa-cursor/skills/git-prune/SKILL.md +35 -0
  619. package/plugins/lisa-cursor/skills/git-submit-pr/SKILL.md +105 -0
  620. package/plugins/lisa-cursor/skills/github-add-journey/SKILL.md +115 -0
  621. package/plugins/lisa-cursor/skills/github-build-intake/SKILL.md +377 -0
  622. package/plugins/lisa-cursor/skills/github-create/SKILL.md +101 -0
  623. package/plugins/lisa-cursor/skills/github-evidence/SKILL.md +110 -0
  624. package/plugins/lisa-cursor/skills/github-journey/SKILL.md +121 -0
  625. package/plugins/lisa-cursor/skills/github-prd-intake/SKILL.md +432 -0
  626. package/plugins/lisa-cursor/skills/github-project-v2/SKILL.md +227 -0
  627. package/plugins/lisa-cursor/skills/github-read-issue/SKILL.md +248 -0
  628. package/plugins/lisa-cursor/skills/github-sync/SKILL.md +119 -0
  629. package/plugins/lisa-cursor/skills/github-to-tracker/SKILL.md +345 -0
  630. package/plugins/lisa-cursor/skills/github-validate-issue/SKILL.md +331 -0
  631. package/plugins/lisa-cursor/skills/github-verify/SKILL.md +29 -0
  632. package/plugins/lisa-cursor/skills/github-write-issue/SKILL.md +339 -0
  633. package/plugins/lisa-cursor/skills/github-write-prd/SKILL.md +157 -0
  634. package/plugins/lisa-cursor/skills/implement/SKILL.md +145 -0
  635. package/plugins/lisa-cursor/skills/improve-code-complexity/SKILL.md +44 -0
  636. package/plugins/lisa-cursor/skills/improve-max-lines/SKILL.md +45 -0
  637. package/plugins/lisa-cursor/skills/improve-max-lines-per-function/SKILL.md +46 -0
  638. package/plugins/lisa-cursor/skills/improve-test-coverage/SKILL.md +44 -0
  639. package/plugins/lisa-cursor/skills/improve-tests/SKILL.md +47 -0
  640. package/plugins/lisa-cursor/skills/intake/SKILL.md +132 -0
  641. package/plugins/lisa-cursor/skills/intake-explain/SKILL.md +279 -0
  642. package/plugins/lisa-cursor/skills/jira-add-journey/SKILL.md +121 -0
  643. package/plugins/lisa-cursor/skills/jira-build-intake/SKILL.md +286 -0
  644. package/plugins/lisa-cursor/skills/jira-create/SKILL.md +154 -0
  645. package/plugins/lisa-cursor/skills/jira-evidence/SKILL.md +90 -0
  646. package/plugins/lisa-cursor/skills/jira-evidence/scripts/post-evidence.sh +163 -0
  647. package/plugins/lisa-cursor/skills/jira-journey/SKILL.md +127 -0
  648. package/plugins/lisa-cursor/skills/jira-journey/scripts/generate-templates.py +233 -0
  649. package/plugins/lisa-cursor/skills/jira-journey/scripts/parse-plan.py +368 -0
  650. package/plugins/lisa-cursor/skills/jira-read-ticket/SKILL.md +198 -0
  651. package/plugins/lisa-cursor/skills/jira-read-ticket/scripts/download-attachment.sh +110 -0
  652. package/plugins/lisa-cursor/skills/jira-sync/SKILL.md +95 -0
  653. package/plugins/lisa-cursor/skills/jira-validate-ticket/SKILL.md +318 -0
  654. package/plugins/lisa-cursor/skills/jira-verify/SKILL.md +30 -0
  655. package/plugins/lisa-cursor/skills/jira-write-ticket/SKILL.md +265 -0
  656. package/plugins/lisa-cursor/skills/jsdoc-best-practices/SKILL.md +432 -0
  657. package/plugins/lisa-cursor/skills/linear-add-journey/SKILL.md +105 -0
  658. package/plugins/lisa-cursor/skills/linear-build-intake/SKILL.md +283 -0
  659. package/plugins/lisa-cursor/skills/linear-create/SKILL.md +146 -0
  660. package/plugins/lisa-cursor/skills/linear-evidence/SKILL.md +103 -0
  661. package/plugins/lisa-cursor/skills/linear-journey/SKILL.md +134 -0
  662. package/plugins/lisa-cursor/skills/linear-prd-intake/SKILL.md +383 -0
  663. package/plugins/lisa-cursor/skills/linear-read-issue/SKILL.md +200 -0
  664. package/plugins/lisa-cursor/skills/linear-sync/SKILL.md +114 -0
  665. package/plugins/lisa-cursor/skills/linear-to-tracker/SKILL.md +342 -0
  666. package/plugins/lisa-cursor/skills/linear-validate-issue/SKILL.md +313 -0
  667. package/plugins/lisa-cursor/skills/linear-verify/SKILL.md +51 -0
  668. package/plugins/lisa-cursor/skills/linear-write-issue/SKILL.md +292 -0
  669. package/plugins/lisa-cursor/skills/linear-write-prd/SKILL.md +96 -0
  670. package/plugins/lisa-cursor/skills/lisa-review-implementation/SKILL.md +209 -0
  671. package/plugins/lisa-cursor/skills/monitor/SKILL.md +48 -0
  672. package/plugins/lisa-cursor/skills/nightly-add-test-coverage/SKILL.md +40 -0
  673. package/plugins/lisa-cursor/skills/nightly-improve-tests/SKILL.md +29 -0
  674. package/plugins/lisa-cursor/skills/nightly-lower-code-complexity/SKILL.md +28 -0
  675. package/plugins/lisa-cursor/skills/notion-access/SKILL.md +226 -0
  676. package/plugins/lisa-cursor/skills/notion-prd-intake/SKILL.md +360 -0
  677. package/plugins/lisa-cursor/skills/notion-to-tracker/SKILL.md +357 -0
  678. package/plugins/lisa-cursor/skills/notion-write-prd/SKILL.md +109 -0
  679. package/plugins/lisa-cursor/skills/performance-review/SKILL.md +94 -0
  680. package/plugins/lisa-cursor/skills/plan/SKILL.md +60 -0
  681. package/plugins/lisa-cursor/skills/plugin-sync-explain/SKILL.md +53 -0
  682. package/plugins/lisa-cursor/skills/prd-backlink/SKILL.md +265 -0
  683. package/plugins/lisa-cursor/skills/prd-source-write/SKILL.md +101 -0
  684. package/plugins/lisa-cursor/skills/prd-ticket-coverage/SKILL.md +170 -0
  685. package/plugins/lisa-cursor/skills/product-walkthrough/SKILL.md +129 -0
  686. package/plugins/lisa-cursor/skills/project-ideation/SKILL.md +315 -0
  687. package/plugins/lisa-cursor/skills/project-ideation/examples/evidence-card-format.md +21 -0
  688. package/plugins/lisa-cursor/skills/project-ideation/examples/host-project-only.md +22 -0
  689. package/plugins/lisa-cursor/skills/project-ideation/examples/idempotency-verification-harness.md +57 -0
  690. package/plugins/lisa-cursor/skills/project-ideation/examples/public-external-inspiration.md +22 -0
  691. package/plugins/lisa-cursor/skills/project-ideation/examples/unavailable-data-rejection.md +22 -0
  692. package/plugins/lisa-cursor/skills/pull-request-review/SKILL.md +68 -0
  693. package/plugins/lisa-cursor/skills/quality-review/SKILL.md +54 -0
  694. package/plugins/lisa-cursor/skills/queue-status/SKILL.md +133 -0
  695. package/plugins/lisa-cursor/skills/repair-intake/SKILL.md +584 -0
  696. package/plugins/lisa-cursor/skills/reproduce-bug/SKILL.md +96 -0
  697. package/plugins/lisa-cursor/skills/research/SKILL.md +68 -0
  698. package/plugins/lisa-cursor/skills/review-local/SKILL.md +88 -0
  699. package/plugins/lisa-cursor/skills/root-cause-analysis/SKILL.md +155 -0
  700. package/plugins/lisa-cursor/skills/security-review/SKILL.md +57 -0
  701. package/plugins/lisa-cursor/skills/security-zap-scan/SKILL.md +33 -0
  702. package/plugins/lisa-cursor/skills/setup-atlassian/SKILL.md +347 -0
  703. package/plugins/lisa-cursor/skills/setup-automations/SKILL.md +99 -0
  704. package/plugins/lisa-cursor/skills/setup-confluence/SKILL.md +254 -0
  705. package/plugins/lisa-cursor/skills/setup-github/SKILL.md +268 -0
  706. package/plugins/lisa-cursor/skills/setup-jira/SKILL.md +198 -0
  707. package/plugins/lisa-cursor/skills/setup-linear/SKILL.md +251 -0
  708. package/plugins/lisa-cursor/skills/setup-notion/SKILL.md +316 -0
  709. package/plugins/lisa-cursor/skills/spec-conformance/SKILL.md +159 -0
  710. package/plugins/lisa-cursor/skills/task-decomposition/SKILL.md +127 -0
  711. package/plugins/lisa-cursor/skills/task-triage/SKILL.md +23 -0
  712. package/plugins/lisa-cursor/skills/tdd-implementation/SKILL.md +83 -0
  713. package/plugins/lisa-cursor/skills/tear-down-automations/SKILL.md +34 -0
  714. package/plugins/lisa-cursor/skills/test-strategy/SKILL.md +63 -0
  715. package/plugins/lisa-cursor/skills/ticket-triage/SKILL.md +182 -0
  716. package/plugins/lisa-cursor/skills/tracker-add-journey/SKILL.md +26 -0
  717. package/plugins/lisa-cursor/skills/tracker-build-intake/SKILL.md +64 -0
  718. package/plugins/lisa-cursor/skills/tracker-create/SKILL.md +26 -0
  719. package/plugins/lisa-cursor/skills/tracker-evidence/SKILL.md +52 -0
  720. package/plugins/lisa-cursor/skills/tracker-journey/SKILL.md +26 -0
  721. package/plugins/lisa-cursor/skills/tracker-read/SKILL.md +27 -0
  722. package/plugins/lisa-cursor/skills/tracker-source-artifacts/SKILL.md +107 -0
  723. package/plugins/lisa-cursor/skills/tracker-sync/SKILL.md +51 -0
  724. package/plugins/lisa-cursor/skills/tracker-validate/SKILL.md +36 -0
  725. package/plugins/lisa-cursor/skills/tracker-verify/SKILL.md +27 -0
  726. package/plugins/lisa-cursor/skills/tracker-write/SKILL.md +53 -0
  727. package/plugins/lisa-cursor/skills/usage-accounting/SKILL.md +170 -0
  728. package/plugins/lisa-cursor/skills/verification-lifecycle/SKILL.md +339 -0
  729. package/plugins/lisa-cursor/skills/verify/SKILL.md +49 -0
  730. package/plugins/lisa-cursor/skills/verify-prd/SKILL.md +392 -0
  731. package/plugins/lisa-cursor/skills/wiki-install/SKILL.md +101 -0
  732. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  733. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  734. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  735. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +2 -1
  736. package/plugins/lisa-harper-fabric/hooks/hooks.json +26 -0
  737. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  738. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +2 -1
  739. package/plugins/lisa-nestjs/hooks/hooks.json +15 -0
  740. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  741. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  742. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  743. package/plugins/lisa-rails/.codex-plugin/plugin.json +2 -1
  744. package/plugins/lisa-rails/hooks/hooks.json +41 -0
  745. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  746. package/plugins/lisa-typescript/.codex-plugin/plugin.json +2 -1
  747. package/plugins/lisa-typescript/hooks/format-on-edit.sh +5 -3
  748. package/plugins/lisa-typescript/hooks/hooks.json +34 -0
  749. package/plugins/lisa-typescript/hooks/lint-on-edit.sh +5 -2
  750. package/plugins/lisa-typescript/hooks/sg-scan-on-edit.sh +5 -2
  751. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  752. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  753. package/plugins/src/typescript/hooks/format-on-edit.sh +5 -3
  754. package/plugins/src/typescript/hooks/lint-on-edit.sh +5 -2
  755. package/plugins/src/typescript/hooks/sg-scan-on-edit.sh +5 -2
  756. package/scripts/build-plugins.sh +24 -0
  757. package/scripts/generate-agy-plugin-artifacts.mjs +168 -0
  758. package/scripts/generate-codex-plugin-artifacts.mjs +150 -12
  759. package/scripts/generate-copilot-plugin-artifacts.mjs +235 -0
  760. package/scripts/generate-cursor-plugin-artifacts.mjs +177 -0
  761. package/scripts/internal-agy-skill-policy.json +3 -0
  762. package/scripts/internal-copilot-runtime-probe.json +13 -0
  763. package/scripts/internal-copilot-skill-policy.json +3 -0
  764. package/scripts/internal-cursor-skill-policy.json +3 -0
  765. package/scripts/lib/per-agent-hook-filter.mjs +249 -0
  766. package/scripts/probes/wave3-verification.sh +106 -0
@@ -0,0 +1,279 @@
1
+ ---
2
+ name: intake-explain
3
+ description: "Read-only operator surface for diagnosing one repo-scoped PRD or build item against Lisa's current intake and repair contracts. Resolves the item's queue family, lifecycle role, ownership boundary, and gate outcomes using the same source/tracker detection, lifecycle naming, leaf-only, dependency, staleness, and backoff semantics the write-side intake and repair flows already enforce."
4
+ allowed-tools: ["Skill", "Bash", "Read"]
5
+ ---
6
+
7
+ # Intake Explain: $ARGUMENTS
8
+
9
+ `/lisa:intake-explain` is the operator-facing explanation surface for one specific item in the **current repo or project**. It answers the per-item diagnosis question Lisa's batch flows intentionally do not answer directly: what lifecycle lane the item belongs to, which Lisa rule or gate applies right now, whether the item is eligible for intake or repair, and what the next relevant action should be.
10
+
11
+ This command is **read-only** in v1. It does not claim, relabel, repair, transition, comment on, decompose, or otherwise mutate the item. It complements `/lisa:intake`, `/lisa:repair-intake`, `/lisa:queue-status`, `/lisa:automation-status`, and tracker-native inspection; it does not replace them.
12
+
13
+ ## Confirmation policy
14
+
15
+ Do **not** ask for confirmation once invoked. This skill inspects one item and reports what the current Lisa contract says about it. There are no write-side effects in the v1 surface.
16
+
17
+ ## Scope
18
+
19
+ Inspect exactly one repo-scoped item reference:
20
+
21
+ - a GitHub issue URL or `owner/repo#123` ref
22
+ - a Linear issue or project URL
23
+ - a JIRA issue key
24
+ - a Notion PRD/item URL
25
+ - a Confluence PRD page URL
26
+
27
+ The skill must determine whether the item belongs to the PRD lifecycle or the build lifecycle, then explain the item's status using the **same contract** Lisa already uses for `/lisa:intake` and `/lisa:repair-intake`. Do **not** invent a second source of truth for queue detection, lifecycle role naming, repo scoping, or repair eligibility.
28
+
29
+ ## Operator usage
30
+
31
+ Typical entrypoints:
32
+
33
+ ```text
34
+ /lisa:intake-explain https://github.com/acme/repo/issues/123
35
+ /lisa:intake-explain owner/repo#123
36
+ /lisa:intake-explain ENG-123
37
+ /lisa:intake-explain https://linear.app/acme/issue/ENG-123/example
38
+ ```
39
+
40
+ Use this command when an operator needs one deterministic answer to questions like:
41
+
42
+ - "Would Lisa intake this item right now, or skip it?"
43
+ - "Is this state still product-owned, or has it crossed into a Lisa-owned lane?"
44
+ - "Is repair eligible yet, or am I still waiting on staleness or backoff?"
45
+ - "Is the real next step `/lisa:intake`, `/lisa:repair-intake`, blocker cleanup, decomposition, or manual product clarification?"
46
+
47
+ Keep the diagnosis terminal-first and human-readable: observable item facts first, then the smallest useful next command or manual action.
48
+
49
+ ## Contract reuse
50
+
51
+ Resolve item family, queue source/tracker, and lifecycle role names from `.lisa.config.json` plus the same defaults the active intake and repair flows already consume.
52
+
53
+ Route one-item diagnosis through the same contract surfaces the write-side flows already trust:
54
+
55
+ - determine whether the item belongs to the configured PRD **source** lane or build **tracker** lane using the same `source` / `tracker` settings that `/lisa:intake` and `/lisa:repair-intake` already resolve
56
+ - read vendor lifecycle role names from the same config keys and fallback defaults documented in the `config-resolution` rule rather than inventing hardcoded status names
57
+ - keep repo/project scoping aligned with the same current-repo detection and queue-target rules the active intake scanners use
58
+
59
+ When the runtime can identify the item but cannot confidently resolve its source lane, tracker lane, lifecycle namespace, or current repo/project scope from that contract, report `MISCONFIGURED` instead of guessing.
60
+
61
+ Reuse the existing execution-side semantics instead of recreating them by hand:
62
+
63
+ - queue/source detection and lifecycle naming from intake + repair-intake
64
+ - one-item routing helpers for resolving the item's queue family against the correct source/tracker contract
65
+ - product-owned versus Lisa-owned lifecycle roles
66
+ - leaf-only and repo-scope build eligibility
67
+ - active dependency holds
68
+ - repair staleness thresholds and activity signals
69
+ - repair backoff / loop-prevention suppression
70
+
71
+ Work from the same vendor families Lisa already supports for intake and repair: GitHub, Linear, JIRA, Notion, and Confluence.
72
+
73
+ ## What to report
74
+
75
+ Render a stable terminal-first diagnosis for one item:
76
+
77
+ 1. Item identity and resolved lifecycle family (`PRD` or `BUILD`).
78
+ 2. The current lifecycle role and whether that role is product-owned or Lisa-owned.
79
+ 3. The exact rule, gate, or ownership boundary currently driving behavior.
80
+ 4. A verdict such as `ELIGIBLE_FOR_INTAKE`, `ELIGIBLE_FOR_REPAIR`, `WAITING_ON_STALENESS`, `HELD_BY_BLOCKERS`, `NON_LEAF_CONTAINER`, `PRODUCT_OWNED_STATE`, or `MISCONFIGURED`.
81
+ 5. The smallest useful next action, such as `/lisa:intake`, `/lisa:repair-intake`, decomposition, blocker resolution, or manual product clarification.
82
+
83
+ Keep observable item facts separate from the recommended next step so operators can tell what Lisa knows versus what Lisa suggests.
84
+
85
+ ## Verdicts and next actions
86
+
87
+ Use verdicts as stable operator language, not as an excuse to dump raw tracker state:
88
+
89
+ - `ELIGIBLE_FOR_INTAKE`: the item is in the correct actionable lane and Lisa could pick it up with `/lisa:intake`.
90
+ - `ELIGIBLE_FOR_REPAIR`: the item is Lisa-owned, stale or stuck enough to qualify for `/lisa:repair-intake`, and repair suppression rules are not currently preventing action.
91
+ - `WAITING_ON_STALENESS`: the item is Lisa-owned but too fresh to repair yet; explain which activity signal or freshness window is still protecting it from a repair loop.
92
+ - `HELD_BY_BLOCKERS`: the item is otherwise actionable, but explicit blockers or dependency holds mean Lisa would wait rather than claim it.
93
+ - `NON_LEAF_CONTAINER`: the item is structurally a container, childless Epic/Story/Spike, or otherwise not directly buildable; explain that direct build pickup is disallowed until decomposition or reclassification happens.
94
+ - `PRODUCT_OWNED_STATE`: the item is currently in a product-owned role or pre-intake lane, so Lisa should not mutate it yet.
95
+ - `MISCONFIGURED`: Lisa could not resolve the item's queue, lifecycle namespace, repo scope, or another required contract signal confidently enough to explain actionability.
96
+
97
+ Each verdict must carry a concrete next action:
98
+
99
+ - Prefer `/lisa:intake` for `ELIGIBLE_FOR_INTAKE`.
100
+ - Prefer `/lisa:repair-intake` for `ELIGIBLE_FOR_REPAIR`.
101
+ - Prefer "wait and re-check later" for `WAITING_ON_STALENESS`.
102
+ - Prefer blocker resolution for `HELD_BY_BLOCKERS`.
103
+ - Prefer decomposition or type correction for `NON_LEAF_CONTAINER`.
104
+ - Prefer manual product clarification or the upstream product workflow for `PRODUCT_OWNED_STATE`.
105
+ - Prefer fixing config, lifecycle adoption, or repo scoping for `MISCONFIGURED`.
106
+
107
+ ## Ownership and repair readiness
108
+
109
+ Classify ownership before recommending any command. Intake-explain should make clear whether the item is waiting for a human/product promotion, already belongs to Lisa automation, or is terminal enough that normal intake should leave it alone.
110
+
111
+ Product-owned roles are roles that Lisa must not mutate from this read-only diagnosis and that normal intake/repair should not "fix" just because the item exists:
112
+
113
+ - PRD `draft`: still being authored; next action is manual product clarification or promotion to `ready`.
114
+ - PRD `shipped`: generated work is complete and the next automated owner is `/lisa:verify-prd`, not PRD intake or repair.
115
+ - PRD `verified`: empirically checked terminal state; no intake or repair action is required unless a human reopens scope.
116
+ - Build items with no build lifecycle role or without the configured current-repo scope: outside the build pickup lane until a human adopts the lifecycle label or fixes repo scoping.
117
+
118
+ Lisa-owned roles are roles where the framework has accepted responsibility for moving the item forward or surfacing a precise blocker:
119
+
120
+ - PRD `ready`: actionable for `/lisa:intake`.
121
+ - PRD `in_review`: already claimed by PRD intake; repairable only when the item is stale beyond `stale_after` and not suppressed by repair backoff.
122
+ - PRD `blocked`: Lisa asked for clarification or failed validation; repairable only when new answers, dependency changes, or other current signals make another validate-to-route pass materially different.
123
+ - PRD `ticketed`: generated work exists; normal PRD intake owns rollup toward `shipped`, while repair-intake may reconcile rollup drift when all generated top-level work is terminal.
124
+ - Build `ready`: actionable for `/lisa:intake` if repo-scope, leaf-only, and dependency gates pass.
125
+ - Build `claimed`: already claimed by build intake; repairable only when stale beyond `stale_after` and not protected by recent PR/check/comment activity.
126
+ - Build `blocked`: Lisa surfaced an implementation blocker; repairable only when every parsed blocker is cleared or the blocker fingerprint changed enough to justify a new attempt.
127
+ - Build `done`: terminal build role; repair-intake may only reconcile provider-native close-out drift, not re-run implementation.
128
+
129
+ Report repair readiness in this order:
130
+
131
+ 1. If the role is product-owned, return `PRODUCT_OWNED_STATE` and name the product or verification workflow that owns the next move.
132
+ 2. If the item is Lisa-owned but in an in-progress role, compare the newest activity signal with the configured staleness threshold. Fresh activity returns `WAITING_ON_STALENESS`; stale activity can return `ELIGIBLE_FOR_REPAIR`.
133
+ 3. If the item is Lisa-owned but blocked, evaluate current blockers, clarifying answers, and the `[lisa-repair-intake]` fingerprint/backoff window. Active blockers or unchanged fingerprints stay held; cleared blockers or new answers can return `ELIGIBLE_FOR_REPAIR`.
134
+ 4. If the item is ready for first pickup, run the same repo-scope, leaf-only, and dependency checks used by intake before returning `ELIGIBLE_FOR_INTAKE`.
135
+
136
+ ## Gate and ownership expectations
137
+
138
+ The explanation must stay aligned with existing Lisa rules:
139
+
140
+ - If a build item is a parent/container or a childless Epic/Story/Spike, explain the leaf-only gate and say direct build pickup is not allowed.
141
+ - If a build item has active blockers, list the blocker refs and explain that intake would hold or skip it until they clear.
142
+ - If a PRD is in a product-owned role such as `draft`, `shipped`, or `verified`, explain why intake or repair will not mutate it.
143
+ - If a claimed, in-review, or blocked item is not yet repairable, explain the relevant staleness or backoff condition at a human-readable level.
144
+ - If the source lane, tracker lane, repo/project scope, or lifecycle namespace is unresolved, report `MISCONFIGURED` instead of pretending the item is idle or actionable.
145
+
146
+ ## PRD item role and repair diagnosis
147
+
148
+ For PRD lifecycle items, run the same read-side checks that PRD intake and repair-intake use before they would claim, validate, roll up, or retry a PRD. This is still a read-only explanation: if execution intake would transition `ready -> in_review`, route a `ticketed` PRD through rollup, move a `blocked` PRD after new answers, or suppress repair because a `[lisa-repair-intake]` marker is still inside its backoff window, intake-explain reports that decision and does not mutate the PRD, comments, labels, parent page, project labels, or generated work.
149
+
150
+ Resolve the source lane from `.lisa.config.json` `source` and the PRD lifecycle roles from the same vendor-specific config keys PRD intake and repair-intake use (`github.labels.prd.*`, `linear.labels.prd.*`, `notion.values.*`, or `confluence.parents.*`) with the usual defaults (`draft`, `ready`, `in_review`, `blocked`, `ticketed`, `shipped`, and `verified` equivalents). If the current item carries conflicting PRD lifecycle roles, lacks an adopted PRD namespace, or cannot be tied to the configured source lane, return `MISCONFIGURED` rather than guessing.
151
+
152
+ For GitHub-backed PRDs, collect these reader signals before choosing a verdict:
153
+
154
+ - current PRD lifecycle role label and any conflicting `prd-*` labels
155
+ - source-lane role ownership: `draft`, `shipped`, and `verified` are product-owned or verification-owned; `ready`, `in_review`, `blocked`, and `ticketed` are Lisa-owned for intake, repair, or rollup purposes
156
+ - provider-native timestamps (`updatedAt`) plus latest PRD comments, with special attention to comments after the most recent blocked or in-review marker
157
+ - `[lisa-repair-intake]` marker comments, including state fingerprint, repair verdict, retry count, and backoff window when present
158
+ - generated top-level work from native sub-issues first, then the `## Tickets` / `## Generated Work` section used by `prd-lifecycle-rollup`
159
+ - generated child terminal status so `ticketed` PRDs can explain whether rollup is waiting on downstream work or ready for `/lisa:repair-intake`
160
+ - clarifying-answer signals on `blocked` PRDs: new product comments, changed body text, changed blocker refs, or cleared dependencies compared with the last blocked/repair fingerprint
161
+
162
+ Apply PRD verdicts in the same order as PRD intake and repair-intake:
163
+
164
+ 1. **Product-owned or verification-owned roles.** A PRD in `draft` returns `PRODUCT_OWNED_STATE`; the next action is manual product clarification or promotion to the configured `ready` role. A PRD in `shipped` returns `PRODUCT_OWNED_STATE` with `/lisa:verify-prd <item-ref>` as the next Lisa workflow because shipped-to-verified acceptance is outside PRD intake. A PRD in `verified` returns `PRODUCT_OWNED_STATE` or a terminal no-op explanation; normal intake and repair must not mutate it.
165
+ 2. **Ready PRD.** A PRD in the configured `ready` role returns `ELIGIBLE_FOR_INTAKE` when the source lane and lifecycle namespace resolve cleanly. The `Why:` line should say PRD intake would claim it into the configured `in_review` role and run the source-to-tracker dry-run validate-to-route pipeline.
166
+ 3. **In-review PRD.** A PRD in `in_review` is already Lisa-owned. Compare the newest activity signal against the resolved repair `stale_after` threshold (`$ARGUMENTS` override if present, `.lisa.config.json` `intake.repair.staleAfterHours`, then the 24h default). If provider activity, a progress comment, or a source edit is newer than `now - stale_after`, return `WAITING_ON_STALENESS` and name the activity timestamp. If no reliable timestamp exists, return `WAITING_ON_STALENESS` unless the caller explicitly uses the repair flow with `stale_after=0`; intake-explain should not imply automatic recovery from unknown freshness. If the item is stale and no repair-backoff marker suppresses retry, return `ELIGIBLE_FOR_REPAIR`.
167
+ 4. **Blocked PRD.** A PRD in `blocked` is Lisa-owned but repairable only when the next validate-to-route pass can materially differ. Treat new human answers after the blocking comment, body edits after the blocking marker, cleared blockers, changed blocker refs, or changed validator fingerprint as repair-enabling signals. If none are present, return `HELD_BY_BLOCKERS` or `WAITING_ON_STALENESS` depending on whether the decisive fact is an active blocker/unchanged clarification need or a still-fresh blocked marker. If the blocker/answer state changed and repair backoff is clear, return `ELIGIBLE_FOR_REPAIR`.
168
+ 5. **Ticketed PRD.** A PRD in `ticketed` is not ready for first intake. Read generated top-level work using the same `prd-lifecycle-rollup` boundary as PRD intake: top-level Epics and top-level Stories count; nested Stories and Sub-tasks do not. If any generated top-level child is non-terminal, return `PRODUCT_OWNED_STATE` or a waiting explanation that downstream build work is still in progress. If all generated top-level work is terminal but the PRD has not rolled up to `shipped`, return `ELIGIBLE_FOR_REPAIR` and recommend `/lisa:repair-intake <queue>` to reconcile rollup drift.
169
+ 6. **Repair backoff suppression.** Before returning `ELIGIBLE_FOR_REPAIR` for `in_review`, `blocked`, or `ticketed` PRDs, inspect `[lisa-repair-intake]` markers. If the latest marker's state fingerprint matches the current reader signals and its backoff window has not expired, return `WAITING_ON_STALENESS` with a `Why:` line that says repair-intake would suppress an unchanged retry to avoid a loop. If the fingerprint changed, the backoff expired, or a human uses repair-intake `force=true`, the item may be repair-eligible.
170
+
171
+ Relevant `Signals:` should include the decisive context, not every field: for example `prd-blocked; new product comment after blocker`, `prd-in-review; last activity 2h ago; stale_after=24h`, `prd-ticketed; generated top-level work #12/#13 terminal`, or `[lisa-repair-intake] fingerprint unchanged; backoff until 2026-05-27T12:00:00Z`.
172
+
173
+ ## Build item gate diagnosis
174
+
175
+ For build lifecycle items, run the same read-side checks that build intake runs before it would claim an issue. This is still a read-only explanation: if execution intake would stamp repo labels, split a cross-repo leaf, move a stale container from `ready` to `claimed`, or post a dependency-hold comment, intake-explain reports what intake would do but does not stamp, does not split, does not move labels, and does not comment.
176
+
177
+ Resolve the current repo using the same repo-scope contract as build intake: local config `repo`, then `.lisa.config.json` `github.repo`, then the git remote basename. Resolve the build lifecycle roles from `.lisa.config.json` `github.labels.build.*` with the usual defaults (`status:ready`, `status:in-progress`, `status:blocked`, `status:done`, plus any configured env-specific done labels). If those signals cannot be resolved, return `MISCONFIGURED`.
178
+
179
+ For GitHub build items, collect these reader signals before choosing a verdict:
180
+
181
+ - current build lifecycle role label and any conflicting `status:*` labels
182
+ - `repo:<current>` / `repo:<other>` labels, including whether the item is unlabeled for repo scope
183
+ - type labels such as `type:Epic`, `type:Story`, `type:Spike`, `type:Bug`, `type:Task`, `type:Sub-task`, and `type:Improvement`
184
+ - native GitHub sub-issues and their open/closed state
185
+ - body parentage used by `github-read-issue`, including task-list child references and `Parent: #123` style references
186
+ - explicit dependency holds from `Blocked by: #123`, comma-separated refs, `owner/repo#123`, and GitHub issue URLs
187
+ - blocker issue state and blocker status labels
188
+
189
+ Apply gate verdicts in the same order as build intake:
190
+
191
+ 1. **Repo-scope gate.** A build item carrying `repo:<other>` and not `repo:<current>` is outside this repo's pickup lane. Return `MISCONFIGURED` when repo scope is absent or contradictory enough that the current repo cannot be determined confidently; otherwise explain the repo-scope mismatch and recommend running intake in the target repo or fixing the `repo:<name>` label. For an unlabeled item whose target repo is obvious from the item body, report the inferred repo signal but stay read-only: execution intake would stamp `repo:<name>`, while intake-explain only says it would do so. A multi-repo leaf is not directly buildable; explain that execution intake would split it per `repo-scope-split`, but this read-only diagnosis does not split.
192
+ 2. **Leaf-only gate.** If the item has open child work from native GitHub sub-issues or body parentage, return `NON_LEAF_CONTAINER` and explain that direct build pickup is leaf-only per `leaf-only-lifecycle`. If it has no open children but carries a container type (`type:Epic`, `type:Story`, or `type:Spike`), also return `NON_LEAF_CONTAINER` because a childless container type still needs decomposition or reclassification. The next action is decomposition, moving `status:ready` to leaf children, or correcting the issue type. Execution build intake would move such a stale ready container out of the pickup queue; this read-only diagnosis must not perform that repair.
193
+ 3. **Dependency hold gate.** If a single-repo leaf for the current repo has explicit blockers, read each blocker. Closed blockers are clear. Open blockers are clear only when they carry a cleared build status such as `status:code-review`, `status:on-dev`, `status:on-stg`, `status:done`, or the configured done-equivalent labels. Open blockers with `status:ready`, `status:in-progress`, no cleared status label, or inaccessible state are active. Return `HELD_BY_BLOCKERS`, list the active blocker refs, and make the next action blocker resolution rather than `/lisa:intake`.
194
+ 4. **Ready leaf.** A build item in the configured ready role, scoped to the current repo, with no open child work and no active blockers returns `ELIGIBLE_FOR_INTAKE`. The `Why:` line should say it is a single-repo leaf for the current repo and that leaf-only, repo-scope, and dependency gates all pass.
195
+
196
+ Relevant `Signals:` should include the decisive context, not every field: for example `repo:lisa; type:Sub-task; no open children`, `open children #12/#13`, `repo:api but current repo is web`, or `active blockers CodySwannGT/lisa#123`.
197
+
198
+ ## Rule explanation expectations
199
+
200
+ The `Why:` line should name the decisive Lisa contract in plain English rather than only echoing a raw status label. Good explanations usually mention one of:
201
+
202
+ - the lifecycle role boundary (`product-owned` versus `Lisa-owned`)
203
+ - the leaf-only gate
204
+ - the repo-scope gate
205
+ - an active blocker or dependency hold
206
+ - staleness or repair-backoff suppression
207
+ - an unresolved config or lifecycle-adoption contract
208
+
209
+ The `Next action:` line should stay small and specific. Prefer one actionable follow-up over a menu:
210
+
211
+ - `/lisa:intake <queue>` when the item is ready for normal pickup
212
+ - `/lisa:repair-intake <queue>` when Lisa-owned stuck work is now repairable
213
+ - "resolve blocker `#123`" when a dependency hold is decisive
214
+ - "decompose into leaf tickets" when the issue is a non-leaf container
215
+ - "manual product clarification" when Lisa is not the current owner
216
+ - "fix `.lisa.config.json` or lifecycle labels" when the problem is misconfiguration
217
+
218
+ ## Smoke fixtures and read-only assertions
219
+
220
+ Intake-explain must keep representative smoke fixtures for both PRD and build lifecycles. These fixtures are contract examples for implementers and tests: they prove that lifecycle classification, dependency holds, staleness windows, and repair backoff map to the same verdict language operators see in real diagnosis output.
221
+
222
+ Minimum PRD smoke fixtures:
223
+
224
+ | Fixture | Decisive signals | Expected verdict |
225
+ |---|---|---|
226
+ | `prd-draft-product-owned` | PRD role `draft`; source lane resolved; no Lisa claim marker | `PRODUCT_OWNED_STATE` |
227
+ | `prd-ready-actionable` | PRD role `ready`; source lane resolved; validation-ready content present | `ELIGIBLE_FOR_INTAKE` |
228
+ | `prd-in-review-fresh` | PRD role `in_review`; newest Lisa or tracker activity is inside `stale_after` | `WAITING_ON_STALENESS` |
229
+ | `prd-blocked-backoff` | PRD role `blocked`; latest `[lisa-repair-intake]` fingerprint is unchanged and inside the backoff window | `WAITING_ON_STALENESS` |
230
+ | `prd-blocked-new-signal` | PRD role `blocked`; clarifying answer or blocker fingerprint changed after the last repair marker | `ELIGIBLE_FOR_REPAIR` |
231
+
232
+ Minimum build smoke fixtures:
233
+
234
+ | Fixture | Decisive signals | Expected verdict |
235
+ |---|---|---|
236
+ | `build-ready-leaf` | `status:ready`; `repo:<current>`; leaf type; no open children; no active blockers | `ELIGIBLE_FOR_INTAKE` |
237
+ | `build-active-dependency` | otherwise actionable ready leaf; `Blocked by:` points at an open blocker without a cleared status | `HELD_BY_BLOCKERS` |
238
+ | `build-cleared-dependency` | otherwise actionable ready leaf; blockers are closed or carry cleared build status | `ELIGIBLE_FOR_INTAKE` |
239
+ | `build-open-children` | build lifecycle role present; native sub-issues or body parentage include open child work | `NON_LEAF_CONTAINER` |
240
+ | `build-claimed-fresh` | `status:in-progress`; newest claim, PR, check, or issue activity is inside `stale_after` | `WAITING_ON_STALENESS` |
241
+ | `build-blocked-backoff` | `status:blocked`; blocker fingerprint unchanged and repair-backoff marker still suppresses retries | `WAITING_ON_STALENESS` |
242
+ | `build-blocked-cleared` | `status:blocked`; parsed blockers are now cleared or the blocker fingerprint changed | `ELIGIBLE_FOR_REPAIR` |
243
+
244
+ Every smoke fixture must assert read-only behavior. A diagnosis may call vendor read APIs, inspect config, and render a verdict, but it must not call write APIs such as `gh issue edit`, `gh issue comment`, label creation, issue creation, transition endpoints, PR mutation, or tracker comment/update calls. If execution intake would stamp repo labels, split a multi-repo leaf, repair a stale container label, add a dependency-hold comment, or retry stuck work, the smoke fixture should assert that intake-explain only reports that action as the next step.
245
+
246
+ ## Output shape
247
+
248
+ Use a stable grouped shape so one diagnosis is easy to scan:
249
+
250
+ ```text
251
+ Item: <identity>
252
+ Lifecycle: <PRD|BUILD>
253
+ Role: <current role> (<product-owned|Lisa-owned>)
254
+ Verdict: <VERDICT>
255
+ Why: <rule or gate explanation>
256
+ Next action: <smallest useful follow-up>
257
+ ```
258
+
259
+ When helpful, include one short `Signals:` or `Relevant refs:` line for the exact blockers, staleness timestamps, parent/child classification, or repair markers that justify the verdict.
260
+
261
+ One acceptable rendering pattern is:
262
+
263
+ ```text
264
+ Item: CodySwannGT/lisa#123
265
+ Lifecycle: BUILD
266
+ Role: status:blocked (Lisa-owned)
267
+ Verdict: ELIGIBLE_FOR_REPAIR
268
+ Why: The issue is already in a Lisa-owned blocked lane, its last meaningful activity is stale, and no repair-backoff marker is suppressing a new repair pass.
269
+ Next action: /lisa:repair-intake github
270
+ Signals: blocker cleared; last activity 6d ago; repo:lisa
271
+ ```
272
+
273
+ ## Rules
274
+
275
+ - Stay **read-only**. Never claim, relabel, transition, comment on, create, decompose, or repair work from this skill.
276
+ - Keep the explanation repo-scoped to the current project rather than aggregating unrelated repos or trackers.
277
+ - Reuse intake and repair-intake contract semantics so diagnosis and execution do not drift.
278
+ - Prefer existing vendor read surfaces and validators over creating a second lifecycle engine.
279
+ - If the current runtime or vendor surface cannot expose a needed signal, say that explicitly instead of guessing.
@@ -0,0 +1,121 @@
1
+ ---
2
+ name: jira-add-journey
3
+ description: "Add a Validation Journey section to an existing JIRA ticket by analyzing the change type and generating appropriate verification steps with evidence markers."
4
+ ---
5
+
6
+ # Add Validation Journey to Existing JIRA Ticket
7
+
8
+ Read an existing JIRA ticket, analyze the change type, and generate a Validation Journey section with appropriate verification steps based on the project's verification patterns.
9
+
10
+ ## Arguments
11
+
12
+ `$ARGUMENTS`: `<TICKET_ID>`
13
+
14
+ - `TICKET_ID` (required): JIRA ticket key (e.g., `PROJ-123`)
15
+
16
+ ## Prerequisites
17
+
18
+ - `JIRA_API_TOKEN` environment variable set
19
+ - `jira-cli` configured (`~/.config/.jira/.config.yml`)
20
+
21
+ ## Workflow
22
+
23
+ ### Step 1: Read the Ticket
24
+
25
+ Use the Atlassian MCP or jira-cli to read the full ticket details:
26
+
27
+ ```bash
28
+ jira issue view <TICKET_ID>
29
+ ```
30
+
31
+ Extract: title, description, acceptance criteria, components, labels, linked tickets.
32
+
33
+ ### Step 2: Check for Existing Journey
34
+
35
+ Run the parser to see if a Validation Journey already exists:
36
+
37
+ ```bash
38
+ python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID> 2>&1
39
+ ```
40
+
41
+ If the parser succeeds and returns steps, the ticket already has a journey. Report this to the user and stop.
42
+
43
+ ### Step 3: Analyze the Change Type
44
+
45
+ Examine the ticket description, acceptance criteria, and codebase to determine the change type:
46
+
47
+ 1. **API/GraphQL changes** — New or modified endpoints, request/response schemas
48
+ 2. **Database migration** — Schema changes, new tables/columns, indexes
49
+ 3. **Background job/queue** — New job processors, queue consumers, event handlers
50
+ 4. **Library/utility** — Exported functions, shared modules, npm package changes
51
+ 5. **Security fix** — Auth, authorization, input validation, OWASP vulnerabilities
52
+ 6. **Authentication/authorization** — Role-based access, session management, tokens
53
+
54
+ Use the Explore agent or read the codebase directly to understand which files are affected and what verification approach is appropriate.
55
+
56
+ ### Step 4: Map Change Type to Verification Pattern
57
+
58
+ Based on the change type, generate verification steps using patterns from `verfication.md`:
59
+
60
+ | Change Type | Verification Approach |
61
+ |---|---|
62
+ | API/GraphQL | curl commands verifying endpoints, status codes, response schemas |
63
+ | Database migration | Migration execution + schema verification + rollback check |
64
+ | Background job/queue | Enqueue + process + state change verification |
65
+ | Library/utility | Test execution + build verification + export check |
66
+ | Security fix | Exploit reproduction pre-fix + exploit failure post-fix |
67
+ | Auth/authz | Multi-role verification with explicit status codes |
68
+
69
+ ### Step 5: Draft the Validation Journey
70
+
71
+ Compose the journey with `[EVIDENCE: name]` markers at key verification points:
72
+
73
+ ```text
74
+ h2. Validation Journey
75
+
76
+ h3. Prerequisites
77
+ - List required services, database, env vars
78
+
79
+ h3. Steps
80
+ 1. Verify current state before changes
81
+ 2. Apply the change
82
+ 3. Verify expected new state [EVIDENCE: state-name]
83
+ 4. Test error/edge cases [EVIDENCE: error-case]
84
+ 5. Verify rollback if applicable [EVIDENCE: rollback]
85
+
86
+ h3. Assertions
87
+ - Describe what must be true after verification
88
+ ```
89
+
90
+ ### Guidelines for Drafting
91
+
92
+ 1. **2-5 evidence markers** — Focus on proving the change works and handles errors
93
+ 2. **Concrete, runnable steps** — "Run `curl -s localhost:3000/health | jq .status`" not "Check the endpoint"
94
+ 3. **Include environment setup** — Database connection, running services, env vars
95
+ 4. **Evidence names in kebab-case** — `api-response`, `schema-check`, `rate-limit-hit`
96
+ 5. **Assertions are measurable** — "Returns 200 with `{status: ok}`" not "API works correctly"
97
+ 6. **Cover happy path and error path** — At minimum, one success and one failure evidence marker
98
+ 7. **On a leaf work unit, the markers are binding** — For a Bug / Task / Sub-task / Improvement, every `[EVIDENCE: name]` here is the ticket's evidence manifest: validation gate S14 requires at least one, and the ticket cannot be closed until each named artifact is captured and attached (see the "Per-Work-Unit Evidence Contract" in the `verification` rule). Name only evidence you intend to capture — and name all of it.
99
+
100
+ ### Step 6: Present to User for Approval
101
+
102
+ Display the drafted Validation Journey to the user and ask for confirmation before appending it to the ticket.
103
+
104
+ ### Step 7: Append to Ticket Description
105
+
106
+ After user approval, use the JIRA REST API to append the Validation Journey to the existing ticket description.
107
+
108
+ ### Step 8: Verify
109
+
110
+ Run the parser again to confirm the journey was added correctly:
111
+
112
+ ```bash
113
+ python3 .claude/skills/jira-journey/scripts/parse-plan.py <TICKET_ID>
114
+ ```
115
+
116
+ ## When to Use This Skill
117
+
118
+ - Ticket was created before the Validation Journey convention was established
119
+ - Ticket was created manually without following `lisa:jira-create` guidelines
120
+ - Ticket needs a journey added or updated based on implementation progress
121
+ - Before starting work on a ticket, to ensure verification steps are documented