@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,292 @@
1
+ ---
2
+ name: linear-write-issue
3
+ description: "Creates or updates a Linear work item — Project (Epic), Issue (Story), or sub-Issue (Sub-task) — following organizational best practices. Polymorphic: dispatches internally on issue_type to save_project (Epic) or save_issue (Story / Sub-task). Enforces description quality (three audiences), Gherkin acceptance criteria, project-as-parent for Stories, parentId for Sub-tasks, explicit relationship discovery (blocks / is blocked by / relates to / duplicates), labels, components-as-labels, project milestones for fix versions, native priority and estimate fields, and Validation Journey. Rejects thin items — use this skill any time a Linear work item is created or significantly edited."
4
+ allowed-tools: ["Bash", "Skill", "mcp__linear-server__list_teams", "mcp__linear-server__get_team", "mcp__linear-server__list_projects", "mcp__linear-server__get_project", "mcp__linear-server__save_project", "mcp__linear-server__list_issues", "mcp__linear-server__get_issue", "mcp__linear-server__save_issue", "mcp__linear-server__list_issue_labels", "mcp__linear-server__create_issue_label", "mcp__linear-server__list_project_labels", "mcp__linear-server__list_comments", "mcp__linear-server__save_comment"]
5
+ ---
6
+
7
+ # Write Linear Work Item: $ARGUMENTS
8
+
9
+ Create or update a Linear work item — Project (for Epics), Issue (for Stories), or sub-Issue (for Sub-tasks) — with all required relationships, metadata, and quality gates. Every section below is mandatory. Thin items are rejected.
10
+
11
+ Repository name for scoped comments: `basename $(git rev-parse --show-toplevel)`.
12
+
13
+ ## Configuration
14
+
15
+ This skill reads configuration from `.lisa.config.json` (with `.lisa.config.local.json` overriding per key). Required keys:
16
+
17
+ - `linear.workspace` — Linear workspace slug
18
+ - `linear.teamKey` — Linear team key (e.g. `ENG`); the team owns the destination items
19
+
20
+ If either is missing, stop and report — never invent values.
21
+
22
+ ## Polymorphic dispatch
23
+
24
+ Linear's data model maps Epic / Story / Sub-task to **different entity types**. This skill dispatches on `issue_type`:
25
+
26
+ | `issue_type` | Linear entity | MCP write tool | Parent field |
27
+ |--------------|---------------|----------------|--------------|
28
+ | `Epic` | **Project** | `mcp__linear-server__save_project` | (none — Projects are top-level within a team) |
29
+ | `Story` / `Task` / `Improvement` | **Issue** | `mcp__linear-server__save_issue` | `projectId` (the Epic Project) |
30
+ | `Sub-task` | **sub-Issue** | `mcp__linear-server__save_issue` | `parentId` (the Story Issue) |
31
+ | `Bug` | **Issue** | `mcp__linear-server__save_issue` | `projectId` if part of an Epic; else top-level |
32
+ | `Spike` | **Issue** | `mcp__linear-server__save_issue` | `projectId` if part of an Epic; else top-level |
33
+
34
+ Status workflow uses **labels** (`status:ready`, `status:in-progress`, `status:on-dev`, `status:done`) for portability across teams — Linear's per-team workflow state names vary, but labels are workspace-scoped and stable. Native Linear `state` is set to the team's default `Todo` state on create.
35
+
36
+ ## Phase 1 — Resolve Intent
37
+
38
+ Determine from `$ARGUMENTS` and context whether this is a CREATE or UPDATE:
39
+
40
+ - **CREATE**: no existing identifier provided.
41
+ - **UPDATE**: identifier provided (`<TEAM>-<n>` for Issue, project slug + short-id for Project) — call `/linear-read-issue <ref>` first to load the full current state. Never overwrite without reading.
42
+
43
+ Resolve the team ID for `linear.teamKey` via `mcp__linear-server__list_teams({query: <teamKey>})`. Cache it.
44
+
45
+ ## Phase 2 — Gather Required Inputs
46
+
47
+ Required fields (stop and ask if missing — never invent values):
48
+
49
+ | Field | Required For | Notes |
50
+ |-------|--------------|-------|
51
+ | `team_key` | CREATE | From `linear.teamKey` config; required for both Project and Issue creation |
52
+ | `issue_type` | CREATE | One of: Epic, Story, Task, Bug, Spike, Sub-task, Improvement |
53
+ | Summary | CREATE, UPDATE | One line, imperative voice, under 100 chars |
54
+ | Description | CREATE, UPDATE | Multi-section markdown — see Phase 3 |
55
+ | Project parent (for Story / Task / Bug / Spike / Improvement when part of an Epic) | non-Epic, non-Sub-task in Epic context | Linear Project ID — the Epic |
56
+ | Sub-task parent | Sub-task | Linear Issue ID — the Story |
57
+ | Priority | CREATE | Native Linear priority: 0=No priority, 1=Urgent, 2=High, 3=Medium, 4=Low |
58
+ | Acceptance criteria | Story, Task, Bug, Sub-task, Improvement | Gherkin — see Phase 3 |
59
+ | Validation Journey | Runtime-behavior changes | Delegate to `/linear-add-journey` |
60
+ | Target backend environment | Runtime-behavior changes | `dev` / `staging` / `prod`; recorded in description (Phase 3). Skip only for doc/config/type-only items. |
61
+ | Sign-in account / credentials | Items that touch authenticated surfaces | Name the account (or source — 1Password item, env var, seeded fixture) and role; recorded in description. Omit when sign-in is not required. |
62
+ | Single-repo scope | Bug, Task, Sub-task | These types MUST cover one repo only. If the work crosses repos, split it before creating. Epic / Spike / Story may span repos. |
63
+
64
+ Optional but recommended: assignee, estimate (story points), labels, project milestone (fix-version equivalent), cycle.
65
+
66
+ ## Phase 3 — Description Quality
67
+
68
+ Linear descriptions are markdown (NOT Jira wiki markup — no `h2.` headings, use `##` instead). The description MUST address three audiences. Reject and rewrite if any are missing.
69
+
70
+ ```markdown
71
+ ## Context / Business Value
72
+ [Why this matters. Stakeholder-facing. Concrete user impact or business outcome.
73
+ Link to the originating Slack thread, Notion doc, incident, or customer report.]
74
+
75
+ ## Technical Approach
76
+ [Developer-facing. Integration points, impacted modules, data model implications,
77
+ relevant tradeoffs. Not a full design doc — a pointer for someone picking it up.]
78
+
79
+ ## Acceptance Criteria
80
+ 1. Given <precondition>
81
+ When <action>
82
+ Then <observable outcome>
83
+ 2. Given <precondition>
84
+ When <action>
85
+ Then <observable outcome>
86
+
87
+ ## Out of Scope
88
+ [Explicit list of what this item does NOT cover. Forces scope discipline.]
89
+
90
+ ## Target Backend Environment
91
+ [Required when the item changes runtime behavior. One of: dev / staging / prod.
92
+ Skip section entirely for doc-only, config-only, or type-only items.]
93
+
94
+ ## Sign-in Required
95
+ [Include this section ONLY if the work touches authenticated surfaces.
96
+ Specify: the account/role to sign in as, where to get the credentials
97
+ (1Password item name, env var, seeded fixture), and any MFA/SSO notes.
98
+ Omit the section entirely when sign-in is not required.]
99
+
100
+ ## Repository
101
+ [Required for Bug / Task / Sub-task. Name the single repo this item covers.
102
+ If the work spans repos, this issue type is wrong — split into per-repo
103
+ Tasks/Sub-tasks under a parent Story or Epic.]
104
+
105
+ ## Validation Journey
106
+ [Delegate to /linear-add-journey if the item changes runtime behavior.
107
+ Skip only for doc-only, config-only, or type-only items.]
108
+ ```
109
+
110
+ Rules:
111
+ - Every acceptance criterion uses Given/When/Then. No vague "should work" language.
112
+ - Every criterion is independently verifiable (UI, API, data, or performance check).
113
+ - If the item is a Bug, include reproduction steps, expected vs. actual behavior, and environment.
114
+ - If the item is a Spike, include the question being answered and the definition of done (decision doc, prototype, or findings).
115
+ - If sign-in is required, the implementer must be able to sign in from the description alone — never assume they will guess the account or hunt for credentials.
116
+
117
+ ## Phase 4 — Relationship Discovery (Mandatory)
118
+
119
+ Before creating or updating, find candidate relationships. Do NOT skip — this is the step agents most often omit.
120
+
121
+ ### 4a. Project Parent (Epic-equivalent)
122
+
123
+ If the item is **not an Epic** and **not a top-level Bug/Spike**, it MUST have a parent context:
124
+
125
+ - **Story / Task / Improvement** → must have a `projectId` (the Epic Project) set.
126
+ - **Sub-task** → must have a `parentId` (the Story Issue) set.
127
+
128
+ If the parent is explicitly provided, use it. Otherwise:
129
+
130
+ 1. Search active Projects in the team:
131
+ ```text
132
+ mcp__linear-server__list_projects({team: <teamKey>, state: ["backlog", "planned", "started"]})
133
+ ```
134
+ Match on keywords from the summary and description.
135
+ 2. If no matching Project exists, stop and ask the human to create or pick one. Do NOT orphan the item.
136
+
137
+ ### 4b. Related Items
138
+
139
+ Relationship discovery is **mandatory** on every create and every update — never declare "no related work" without doing both searches below and recording their outcomes on the item.
140
+
141
+ **Search 1: local git history** (catches PRs / commits that touched the same area but were never linked):
142
+
143
+ ```bash
144
+ git log --all --oneline --grep="<keyword>"
145
+ git log --all --oneline -- <path-or-glob>
146
+ git log --since=90.days --oneline -- <path-or-glob>
147
+ ```
148
+
149
+ If the git search surfaces a PR or commit that relates to this work, capture the PR URL — it becomes a remote link (Phase 4c) and may also point to a sibling item worth linking.
150
+
151
+ **Search 2: Linear MCP** (catches open and recently-closed items):
152
+
153
+ ```text
154
+ # Open items in the same Project
155
+ mcp__linear-server__list_issues({project: <projectId>, state_type: ["unstarted", "started"]})
156
+
157
+ # Open items with overlapping keywords (workspace-wide)
158
+ mcp__linear-server__list_issues({query: "<keyword>", state_type: ["unstarted", "started"]})
159
+
160
+ # Items with shared labels
161
+ mcp__linear-server__list_issues({label: "<label>", updatedAt: ">-30d"})
162
+
163
+ # Recently closed items in the same Project
164
+ mcp__linear-server__list_issues({project: <projectId>, state_type: ["completed", "canceled"], updatedAt: ">-30d"})
165
+ ```
166
+
167
+ **Record the outcome.** Add a `## Relationship Search` subsection (or a comment if updating) listing the queries you ran and what they returned. If the searches yielded nothing, write that explicitly — "Searched git history for `<keywords>` and Linear for project=`X`, label=`Y`; no related work found." An item with zero relations and no documented search is rejected.
168
+
169
+ For each candidate, classify the relationship:
170
+
171
+ | Relation Type | When to Use |
172
+ |---------------|-------------|
173
+ | `blocks` | This item must ship before the linked item can proceed |
174
+ | `blocked_by` | The linked item must ship before this one can proceed |
175
+ | `relates_to` | Shared context, no ordering constraint |
176
+ | `duplicates` | This item already exists — close one as duplicate |
177
+
178
+ Linear native relations are set on the Issue via `save_issue`'s `relations` field (or via a paired `save_issue_relation` call if available in the MCP). For Project-level (Epic) relationships, capture them in the description under `## Related Projects` since Linear doesn't model relations between Projects natively.
179
+
180
+ ### 4c. Remote Links
181
+
182
+ Identify and attach (Linear stores attachments / links on the Issue or in description body):
183
+
184
+ - GitHub PRs, branches, or commits related to this work
185
+ - Confluence pages (design docs, RFCs, runbooks)
186
+ - Dashboards (Grafana, Datadog, Sentry issue)
187
+ - Incident items (PagerDuty, Statuspage)
188
+ - **Source artifacts from the originating PRD / parent Project**: classify and inherit per the rules in `lisa:tracker-source-artifacts` (invoke that skill if you haven't loaded the rules in this session). Enumerate the parent Project's links and inherit the ones whose domain matches this item's scope (UI → `ui-design` + `ux-flow`; backend → `data`; infra → `ops`; always inherit `reference`). Never assume a developer will walk up to the Project to find design context — attach it here.
189
+
190
+ If the item was generated from a PRD (by `lisa:notion-to-tracker` or similar) and the parent Project has no source artifacts, surface that as a smell and ask whether artifacts were missed during extraction before proceeding.
191
+
192
+ ### 4d. Source Precedence (must appear on the item)
193
+
194
+ Source precedence rules and cross-axis conflict handling are defined in `lisa:tracker-source-artifacts` §3 and §4. When an item carries both design artifacts and a description, record the precedence explicitly in the description (under Technical Approach or a dedicated `## Source Precedence` subsection) so the implementer doesn't silently reconcile conflicts. Cross-axis conflicts go under `## Open Questions` as BLOCKER items.
195
+
196
+ For UI-touching items, include the existing-component reuse expectation per `lisa:tracker-source-artifacts` §7.
197
+
198
+ ### 4e. Live Product Walkthrough Findings (UI-touching items)
199
+
200
+ If the item modifies an existing user-facing surface, a `lisa:product-walkthrough` should already have been run upstream. Inherit its findings under a `## Current Product` subsection in the description so the implementer sees what's shipped today before changing it. If the upstream skill skipped the walkthrough but this item clearly modifies an existing surface, invoke `lisa:product-walkthrough` here before proceeding.
201
+
202
+ ## Phase 5 — Set Metadata
203
+
204
+ Before create/update, verify each field is populated where applicable:
205
+
206
+ - **Labels**: include `status:ready` for a new **leaf** work unit (Bug / Task / Sub-task / Improvement with no child work) per `leaf-only-lifecycle`, **unless `build_ready: false`** (see the Build-ready control input below); component labels (`component:<name>`); status / priority labels are NOT redundant with native fields — labels exist for portability and downstream queries. A container (Epic Project / Story with sub-issues / Spike) never receives `status:ready`.
207
+ - **Native priority field**: 0–4 per Linear's scale; explicit, not "unset".
208
+ - **Native estimate**: per Linear's team-configured estimate scale (often 0–8 Fibonacci); skip for Epic / Spike.
209
+ - **ProjectMilestone**: when the team uses dated milestones, set the milestone on the Project (Epic) or on the Issue (when an Issue belongs to a milestone).
210
+ - **Cycle**: only if actively in a cycle.
211
+ - **Assignee**: leave unset if unknown rather than auto-assigning.
212
+
213
+ For Bug / Task / Sub-task, ensure the summary is prefixed with `[<repo-name>]`.
214
+
215
+ ### Build-ready control input (`build_ready`)
216
+
217
+ `build_ready` is an optional write-control input (default: **omitted**). It governs whether a **leaf** work unit's `status:ready` label is applied on create. It never overrides `leaf-only-lifecycle` — a container is never stamped build-ready regardless of `build_ready`. "Not build-ready" is not a special state: the Issue is still created with Linear's default native `Todo` state; it just lacks the `status:ready` **label** the build lifecycle keys off, so a human can promote it later.
218
+
219
+ - **Omitted** → current behavior: a leaf work unit receives `status:ready`. Preserves what every existing caller (`lisa:plan`, the `*-to-tracker` skills) relies on.
220
+ - **`build_ready: false`** → create the leaf **without** the `status:ready` label, so it sits in the backlog for a human to review and promote into the queue.
221
+ - **`build_ready: true`** → ensure the leaf carries `status:ready` so `lisa:intake` / `lisa:linear-build-intake` auto-picks it up.
222
+
223
+ ## Phase 5.5 — Validate (Pre-write Gate)
224
+
225
+ Before any write, invoke `lisa:linear-validate-issue` with the full proposed spec assembled from Phases 2 / 3 / 4 / 5. Pass it as a YAML block per the `lisa:linear-validate-issue` schema, including `runtime_behavior_change`, `authenticated_surface`, and `artifacts_attached` flags so the right gates run.
226
+
227
+ The validator is the **single source of truth** for what makes a valid Linear work item. The same gates are used by `lisa:linear-to-tracker` dry-run, by `lisa:linear-verify` post-write, and here. Do not re-implement gate logic in this skill.
228
+
229
+ If the validator reports `FAIL`:
230
+ - Surface the failure list and the per-gate remediation to the user.
231
+ - Do NOT proceed to Phase 6. Fix the spec (or stop and ask the human) and re-run validation.
232
+ - Never call `mcp__linear-server__save_project` or `mcp__linear-server__save_issue` while the validator's verdict is FAIL.
233
+
234
+ If the validator reports `PASS`, continue to Phase 6.
235
+
236
+ ## Phase 6 — Create or Update
237
+
238
+ ### CREATE — Epic (Project)
239
+
240
+ 1. Resolve any required Project labels (`prd-ticketed`, etc.) via `mcp__linear-server__list_project_labels` (create via `create_project_label` if missing).
241
+ 2. Call `mcp__linear-server__save_project` with: `name` (summary), `description` (markdown), `teamIds: [<teamId>]`, `labelIds`, `priority` (Linear Project priority is also 0–4), `state` (default `backlog`), milestones if dated.
242
+ 3. Capture the returned Project ID and slug — Phase 4 children need these.
243
+ 4. If the Project is the parent for downstream Stories, record the ID for `lisa:linear-to-tracker` Phase 4 to use.
244
+
245
+ ### CREATE — Story / Task / Bug / Spike / Improvement (Issue with projectId)
246
+
247
+ 1. Resolve any required Issue labels (`component:<name>`, `prd-intake-feedback` only if this is a sentinel issue, etc.) via `mcp__linear-server__list_issue_labels` (create via `create_issue_label` if missing). Include `status:ready` in `labelIds` only for a **leaf** work unit and only when `build_ready` is not `false` (per the Build-ready control input) — omit it for a container, and for a `build_ready: false` leaf which then waits in the backlog for a human to promote it.
248
+ 2. Call `mcp__linear-server__save_issue` with: `team` (teamId), `title` (summary), `description` (markdown), `projectId` (the Epic Project), `priority` (0–4), `estimate`, `labelIds`, `assignee` if known.
249
+ 3. Capture the returned identifier (e.g. `ENG-123`) — Phase 4 sub-tasks need it as `parentId`.
250
+ 4. Add relationships from Phase 4b via `save_issue` (relations field) or paired relation calls.
251
+ 5. If the item changes runtime behavior, invoke `lisa:linear-add-journey` to append the Validation Journey section.
252
+
253
+ ### CREATE — Sub-task (Issue with parentId)
254
+
255
+ 1. Resolve labels as above.
256
+ 2. Call `mcp__linear-server__save_issue` with: `team` (teamId), `title` (`[<repo>] <summary>` prefix is mandatory), `description` (markdown), `parentId` (the Story Issue ID), `projectId` (inherit from parent), `priority`, `estimate`, `labelIds`.
257
+ 3. Capture identifier.
258
+ 4. Add relationships via Phase 4b.
259
+
260
+ ### UPDATE
261
+
262
+ 1. Call `mcp__linear-server__save_project` or `mcp__linear-server__save_issue` with **only the fields being changed**. Do NOT resend fields that weren't in the change set — Linear treats the call as a full overwrite of the listed fields.
263
+ 2. Preserve description sections you are not editing — re-read via `/linear-read-issue` first, including any existing canonical managed `## Lisa Usage` section unless the caller intentionally supplied an updated canonical section. Use the shared `usage-accounting` serializer/merge path rather than freehand edits to ledger rows.
264
+
265
+ ## Phase 7 — Verify
266
+
267
+ Call the `lisa:linear-verify` skill on the resulting item. `lisa:linear-verify` fetches the live item and runs `lisa:linear-validate-issue` against it — same gates as Phase 5.5, but applied to what Linear actually stored. If it reports failures, fix them before returning. Do not report success on an item that fails verify.
268
+
269
+ ## Phase 8 — Announce
270
+
271
+ Post a creation comment via `mcp__linear-server__save_comment` (on the Issue, or on a sentinel issue under the Project for Epic-level announcements) with:
272
+
273
+ - `[<repo>]` prefix if the item is repo-scoped
274
+ - Who the item is assigned to (if known)
275
+ - The relationships that were set (`blocks`, `blocked_by`, `relates_to`) with Linear identifiers
276
+ - Any remote PRs attached
277
+
278
+ Skip this step only on UPDATE when no material change was made.
279
+
280
+ ## Rules
281
+
282
+ - Never create a non-Epic, non-top-level item without a parent context (Project for Stories, parentId for Sub-tasks).
283
+ - Never skip relationship discovery — both the git history search AND the Linear MCP search must run, and their outcomes must be recorded on the item. "None found" is acceptable only when it's documented.
284
+ - Never create a Bug, Task, or Sub-task that spans multiple repos. Split it before creating.
285
+ - Never include a runtime-behavior item without a target backend environment, and never include an authenticated-surface item without sign-in credentials in the description.
286
+ - Never invent custom field values. If the team requires a field you don't have, stop and ask.
287
+ - Never overwrite a description without reading the current version first.
288
+ - Preserve an existing canonical `## Lisa Usage` section on update; never append a second usage
289
+ section or silently drop ledger rows.
290
+ - All Linear writes go through this skill so best practices are enforced uniformly. Downstream skills (e.g. `lisa:linear-create`) should delegate here rather than calling the MCP write tools directly.
291
+ - The gate logic (what makes a valid item) lives in `lisa:linear-validate-issue`, NOT in this skill. This skill calls the validator at Phase 5.5 (pre-write) and Phase 7 (via `lisa:linear-verify` post-write). When a gate needs to change, change it in `lisa:linear-validate-issue` — every caller picks it up automatically.
292
+ - This skill is the destination of the `lisa:tracker-write` shim when `tracker = "linear"`. Vendor-neutral callers (`notion-to-tracker`, `confluence-to-tracker`, `linear-to-tracker`, `github-to-tracker`) MUST go through `lisa:tracker-write`, not call this skill directly.
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: linear-write-prd
3
+ description: "Creates or idempotently updates a PRD as a Linear Project carrying exactly one PRD lifecycle project-label (`prd-draft` by default, or `prd-ready` when initial_role is ready so lisa:linear-prd-intake auto-claims it). The Linear PRD-source writer behind lisa:prd-source-write. Dedupes by a stable marker embedded in the Project description (matched by marker, never by name). Uses the Linear MCP."
4
+ allowed-tools: ["Skill", "Bash", "mcp__linear-server__list_teams", "mcp__linear-server__list_projects", "mcp__linear-server__get_project", "mcp__linear-server__save_project", "mcp__linear-server__list_project_labels", "mcp__linear-server__create_project_label"]
5
+ ---
6
+
7
+ # Write Linear PRD: $ARGUMENTS
8
+
9
+ Create (or update) a PRD as a Linear **Project** in the configured workspace/team. Invoked by
10
+ `lisa:prd-source-write` when `source = linear`; do not call directly from a vendor-neutral caller.
11
+
12
+ Linear's PRD lifecycle uses **project-level labels** (`prd-*`), per `config-resolution`. (The Linear
13
+ PRD source models a PRD as a Project — the same shape `lisa:linear-prd-intake` scans.)
14
+
15
+ `$ARGUMENTS` carries the `lisa:prd-source-write` spec: `title`, `body` (full PRD markdown),
16
+ `initial_role` (`draft` | `ready`, default `draft`), `dedupe_key`, `marker`, optional `source_ref`.
17
+
18
+ ## Phase 1 — Resolve workspace/team + PRD lifecycle labels
19
+
20
+ ```bash
21
+ read_g() { local lv gv; lv=$(jq -r "$1 // empty" .lisa.config.local.json 2>/dev/null); gv=$(jq -r "$1 // empty" .lisa.config.json 2>/dev/null); echo "${lv:-${gv:-$2}}"; }
22
+ WORKSPACE=$(read_g '.linear.workspace' '')
23
+ TEAM=$(read_g '.linear.teamKey' '')
24
+ # Resolve the FULL PRD lifecycle vocabulary from config (never hard-code names) so the one-of
25
+ # reconcile and the past-ready check are correct even when a project renamed any label.
26
+ PRD_DRAFT=$(read_g '.linear.labels.prd.draft' 'prd-draft')
27
+ PRD_READY=$(read_g '.linear.labels.prd.ready' 'prd-ready')
28
+ PRD_IN_REVIEW=$(read_g '.linear.labels.prd.in_review' 'prd-in-review')
29
+ PRD_BLOCKED=$(read_g '.linear.labels.prd.blocked' 'prd-blocked')
30
+ PRD_TICKETED=$(read_g '.linear.labels.prd.ticketed' 'prd-ticketed')
31
+ PRD_SHIPPED=$(read_g '.linear.labels.prd.shipped' 'prd-shipped')
32
+ PRD_VERIFIED=$(read_g '.linear.labels.prd.verified' 'prd-verified')
33
+ ALL_PRD_LABELS=("$PRD_DRAFT" "$PRD_READY" "$PRD_IN_REVIEW" "$PRD_BLOCKED" "$PRD_TICKETED" "$PRD_SHIPPED" "$PRD_VERIFIED")
34
+ PROGRESSED=("$PRD_IN_REVIEW" "$PRD_BLOCKED" "$PRD_TICKETED" "$PRD_SHIPPED" "$PRD_VERIFIED")
35
+ [ -z "$WORKSPACE" ] && { echo "Error: linear.workspace not set in .lisa.config.json."; exit 1; }
36
+ [ -z "$TEAM" ] && { echo "Error: linear.teamKey not set in .lisa.config.json. A team key is required to create or scope a Linear Project."; exit 1; }
37
+ ```
38
+
39
+ Resolve the target project-label from `initial_role`: `ready` → `$PRD_READY`, else `$PRD_DRAFT`.
40
+ Resolve its label id via `mcp__linear-server__list_project_labels` (create via
41
+ `mcp__linear-server__create_project_label` if missing).
42
+
43
+ ## Phase 2 — Dedupe by marker (search before create)
44
+
45
+ The `marker` is embedded in the Project description. Find an existing Project carrying it — match the
46
+ marker, **never** the project name:
47
+
48
+ 1. `mcp__linear-server__list_projects` scoped to the team/workspace (filtered by the `prd-*` label
49
+ set when supported), then inspect each candidate's description via
50
+ `mcp__linear-server__get_project` for the marker. If `source_ref` was passed, target it directly.
51
+ 2. If a Project with the marker exists → **update**; else → **create**.
52
+
53
+ ## Phase 3 — Create or update
54
+
55
+ **Marker + usage-ledger preservation (both paths).** Before writing the `description`, ensure it
56
+ contains **exactly one** marker line — inject the marker if the synthesized description lacks it.
57
+ **Never write a markerless description** (including UPDATE / `source_ref`): that breaks future
58
+ dedupe. If the live Project description already contains the canonical managed `## Lisa Usage`
59
+ section, preserve it verbatim unless the caller intentionally supplied an updated canonical section;
60
+ use the shared `usage-accounting` serializer/merge path rather than hand-editing ledger rows.
61
+
62
+ **CREATE:** `mcp__linear-server__save_project` with:
63
+ - `name`: `$TITLE`
64
+ - `description`: the marker-normalized full PRD markdown
65
+ - `teamIds`: `[<resolved team id>]`
66
+ - `labelIds`: `[<role label id>]` (exactly one PRD lifecycle label)
67
+ - `state`: Linear Project default (e.g. `backlog`)
68
+
69
+ **UPDATE** (existing project or `source_ref`): `save_project` with the project id and **only** the
70
+ changed fields — regenerate the marker-normalized `description` without dropping the managed
71
+ `## Lisa Usage` section, and reconcile labels to **exactly one** PRD lifecycle label: add the role
72
+ label, remove every other label in the resolved
73
+ `${ALL_PRD_LABELS[@]}` set (config-resolved names, not a hard-coded list). Do **not** down-rank a
74
+ Project whose current label is in the resolved `${PROGRESSED[@]}` set (already past `ready`) — leave
75
+ it and report `reused (already past ready)`.
76
+
77
+ ## Phase 4 — Return
78
+
79
+ ```yaml
80
+ ref: "<linear-project-id-or-slug>"
81
+ url: "<project url>"
82
+ role: draft | ready # (or the Project's current role when reused past ready)
83
+ marker: "<MARKER>"
84
+ outcome: created | reused
85
+ ```
86
+
87
+ ## Rules
88
+
89
+ - Exactly one PRD lifecycle project-label at all times.
90
+ - Match dedupe by marker, never by project name.
91
+ - Preserve an existing canonical `## Lisa Usage` section on update; never append a second usage
92
+ section or silently drop ledger rows.
93
+ - Never down-rank a Project already past `ready`.
94
+ - Source-side writer (`prd-*` project labels) — never touches issue-level build labels (`status:*`),
95
+ which are `lisa:linear-write-issue`'s lane (see `config-resolution` self-host separation).
96
+ - Resolve label names from config (`linear.labels.prd.*`) — never hardcode.
@@ -0,0 +1,209 @@
1
+ ---
2
+ name: lisa-review-implementation
3
+ description: This skill should be used when comparing a project's Lisa-managed files against Lisa's source templates to identify drift. It reads the project manifest, locates source templates, generates diffs for drifted files, and offers to upstream improvements back to Lisa.
4
+ ---
5
+
6
+ # Lisa Implementation Review
7
+
8
+ This skill compares the current project's Lisa-managed files against Lisa's source templates to identify drift and offer to upstream improvements back to Lisa.
9
+
10
+ ## Prerequisites
11
+
12
+ This skill requires access to the Lisa installation directory. Either:
13
+ 1. Start Claude Code with `--add-dir ~/lisa` (or your Lisa path)
14
+ 2. Pass the Lisa directory as an argument: `/lisa-review-implementation ~/lisa`
15
+
16
+ ## Instructions
17
+
18
+ ### Step 1: Locate Lisa Directory
19
+
20
+ First, determine the Lisa installation directory:
21
+
22
+ 1. If an argument was provided, use that path
23
+ 2. Otherwise, check if any `--add-dir` paths contain a `src/core/lisa.ts` file (Lisa's signature file)
24
+ 3. Common locations to check: `~/lisa`, `~/workspace/lisa`, `../lisa`
25
+
26
+ If Lisa directory cannot be found, inform the user:
27
+ ```
28
+ Unable to locate Lisa installation directory.
29
+
30
+ Please either:
31
+ 1. Start Claude Code with: claude --add-dir /path/to/lisa
32
+ 2. Run this command with the path: /lisa-review-implementation /path/to/lisa
33
+ ```
34
+
35
+ ### Step 2: Read the Manifest
36
+
37
+ Read the project's `.lisa-manifest` file to get the list of managed files.
38
+
39
+ Parse each line to extract:
40
+ - `strategy`: The copy strategy used (copy-overwrite, copy-contents, merge, create-only)
41
+ - `relativePath`: The file path relative to project root
42
+
43
+ Skip:
44
+ - Lines starting with `#` (comments)
45
+ - Empty lines
46
+ - Files with `create-only` strategy (these are meant to be customized)
47
+ - Files with `merge` strategy (these are intentionally combined)
48
+
49
+ ### Step 3: Find Source Templates
50
+
51
+ For each managed file, locate its source in Lisa by checking these directories in order:
52
+ 1. `npm-package/copy-overwrite/` and `npm-package/copy-contents/`
53
+ 2. `cdk/copy-overwrite/` and `cdk/copy-contents/`
54
+ 3. `nestjs/copy-overwrite/` and `nestjs/copy-contents/`
55
+ 4. `expo/copy-overwrite/` and `expo/copy-contents/`
56
+ 5. `typescript/copy-overwrite/` and `typescript/copy-contents/`
57
+ 6. `all/copy-overwrite/` and `all/copy-contents/`
58
+
59
+ The FIRST match wins (most specific type takes precedence).
60
+
61
+ Detect which project types apply by checking the project for:
62
+ - `npm-package`: package.json without `"private": true` AND has `main`, `bin`, `exports`, or `files`
63
+ - `cdk`: presence of `cdk.json` or `aws-cdk` in dependencies
64
+ - `nestjs`: presence of `nest-cli.json` or `@nestjs` in dependencies
65
+ - `expo`: presence of `app.json`, `eas.json`, or `expo` in dependencies
66
+ - `typescript`: presence of `tsconfig.json` or `typescript` in dependencies
67
+
68
+ Only check type directories that match the project.
69
+
70
+ ### Step 4: Compare Files
71
+
72
+ For each file, compare the project version against the Lisa source:
73
+
74
+ 1. Read both files
75
+ 2. If identical, mark as "in sync"
76
+ 3. If different, generate a diff summary
77
+
78
+ Use the Bash tool with `diff` to generate readable diffs:
79
+ ```bash
80
+ diff -u "/path/to/lisa/source" "/path/to/project/file" || true
81
+ ```
82
+
83
+ ### Step 5: Generate Report
84
+
85
+ Create a markdown report with these sections:
86
+
87
+ ```markdown
88
+ # Lisa Implementation Review
89
+
90
+ **Project:** [project name from package.json]
91
+ **Lisa Source:** [lisa directory path]
92
+ **Generated:** [current date/time]
93
+
94
+ ## Summary
95
+
96
+ - **Total managed files:** X
97
+ - **In sync:** X
98
+ - **Drifted:** X
99
+ - **Source not found:** X
100
+
101
+ ## Drifted Files
102
+
103
+ ### [relative/path/to/file]
104
+
105
+ **Source:** [lisa-type]/copy-overwrite/[path]
106
+ **Strategy:** copy-overwrite
107
+
108
+ <details>
109
+ <summary>View diff</summary>
110
+
111
+ ```diff
112
+ [diff output]
113
+ ```
114
+
115
+ </details>
116
+
117
+ **Recommendation:** [Brief analysis of whether this change should be upstreamed]
118
+
119
+ ---
120
+
121
+ [Repeat for each drifted file]
122
+
123
+ ## Files Not Found in Lisa
124
+
125
+ These files are in the manifest but their source templates couldn't be located:
126
+
127
+ - [list of files]
128
+
129
+ ## In Sync Files
130
+
131
+ <details>
132
+ <summary>X files are in sync with Lisa</summary>
133
+
134
+ - [list of files]
135
+
136
+ </details>
137
+ ```
138
+
139
+ ### Step 6: Offer to Upstream Changes
140
+
141
+ After presenting the report, ask the user which drifted files they want to copy back to Lisa.
142
+
143
+ For each file the user wants to upstream:
144
+
145
+ 1. Confirm the target path in Lisa (e.g., `typescript/copy-overwrite/.github/workflows/ci.yml`)
146
+ 2. Use the Write tool to copy the project's version to Lisa
147
+ 3. Report success
148
+
149
+ Example prompt:
150
+ ```
151
+ I found X files that have drifted from Lisa's templates.
152
+
153
+ Which files would you like to copy back to Lisa?
154
+ 1. .github/workflows/ci.yml - [brief description of changes]
155
+ 2. .claude/settings.json - [brief description of changes]
156
+ 3. All of the above
157
+ 4. None - just show me the report
158
+
159
+ Select an option (or list specific numbers):
160
+ ```
161
+
162
+ ### Important Notes
163
+
164
+ - **Never auto-upstream without confirmation** - always ask the user first
165
+ - **Preserve the most specific type directory** - if a file exists in both `typescript/` and `all/`, upstream to where it currently exists
166
+ - **Handle binary files gracefully** - skip comparison for non-text files
167
+ - **Respect .gitignore patterns** - some generated files shouldn't be compared
168
+ - For `copy-contents` files like `.gitignore`, the comparison is trickier since the project may have additional lines - highlight only if Lisa's required lines are missing
169
+
170
+ ## Example Usage
171
+
172
+ ```
173
+ User: /lisa-review-implementation
174
+
175
+ Claude: I'll review your project's Lisa-managed files against the Lisa source templates.
176
+
177
+ [Locates Lisa directory]
178
+ [Reads manifest]
179
+ [Compares files]
180
+ [Generates report]
181
+
182
+ # Lisa Implementation Review
183
+
184
+ **Project:** my-awesome-app
185
+ **Lisa Source:** /Users/dev/lisa
186
+ **Generated:** 2026-01-18 10:30:00
187
+
188
+ ## Summary
189
+
190
+ - **Total managed files:** 45
191
+ - **In sync:** 42
192
+ - **Drifted:** 3
193
+ - **Source not found:** 0
194
+
195
+ ## Drifted Files
196
+
197
+ ### .github/workflows/ci.yml
198
+
199
+ **Source:** typescript/copy-overwrite/.github/workflows/ci.yml
200
+ **Strategy:** copy-overwrite
201
+
202
+ [diff details]
203
+
204
+ **Recommendation:** This adds a new caching step that improves CI performance. Good candidate for upstreaming.
205
+
206
+ ---
207
+
208
+ I found 3 files that have drifted. Would you like to upstream any of these changes back to Lisa?
209
+ ```
@@ -0,0 +1,48 @@
1
+ ---
2
+ name: monitor
3
+ description: "Monitor application health across environments. Checks health endpoints, recent logs (CloudWatch / Sentry / browser console), error-rate spikes, performance hotspots, pending migrations, and runs Playwright smoke flows when relevant. Routes to the stack-specific ops-specialist agent (Expo, Rails, etc.). Also invoked as the post-deploy step of the lisa:verify skill."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Grep"]
5
+ ---
6
+
7
+ # Monitor: $ARGUMENTS
8
+
9
+ Spot-check application health in the named environment (`dev` / `staging` / `prod`). Useful both reactively (after a deploy, after a Sentry alert, before pushing a hot change) and as the post-deploy verification step inside `lisa:verify`.
10
+
11
+ ## Orchestration: agent team
12
+
13
+ If you are NOT already operating inside an agent team (no prior successful team-creation or subagent-delegation tool call in this session, not spawned into a team context), the very first thing you do is establish team orchestration.
14
+
15
+ Use the team tool for the current runtime:
16
+
17
+ - Claude: use `TeamCreate`. If `TeamCreate` has not been loaded yet, first use `ToolSearch` with `query: "select:TeamCreate"` to load its schema.
18
+ - Codex: do not call `TeamCreate`; Codex does not expose that Claude tool. Use `tool_search` with a query like `multi-agent tools` to load `multi_agent_v1`, then use `multi_agent_v1.spawn_agent` for teammate delegation. Treat the first successful `spawn_agent` call as establishing team orchestration.
19
+ - Other runtimes: use the current runtime's tool-discovery mechanism to discover and call the appropriate multi-agent/team tool.
20
+
21
+ If no team creation or subagent delegation tool is available, explicitly state that team orchestration is unavailable in this runtime, continue as the lead agent, and preserve the workflow's review, verification, and task-tracking obligations locally.
22
+
23
+ Until the team is established, the first Codex teammate has been spawned, or the no-team fallback has been declared, do NOT call any of: `Agent`, `TaskCreate`, `Skill`, MCP tools (Atlassian / Linear / GitHub / Notion / Sentry), `Read`, `Write`, `Edit`, `Bash`, `Grep`, `Glob`. Hitting health endpoints, pulling logs, querying Sentry — all of those are tasks for the team you are about to create, not for the lead session before orchestration exists.
24
+
25
+ If you ARE already inside an agent team (e.g., a teammate invoked this skill via the Skill tool), do NOT create a second team — many harnesses reject double-creates — and do NOT collapse the nested flow into a single inline worker. A nested team-first flow must still bring in the specialists it requires by adding them to the existing team, not by doing the work itself:
26
+
27
+ - **Claude:** teams are flat and only the lead can add named teammates, so do NOT call `Agent` with a `name` from a teammate (the harness rejects it: *"Teammates cannot spawn other teammates — the team roster is flat"*). Send the team lead a message naming the specialist teammate(s) this flow needs, their task assignments, and completion criteria, then coordinate through the shared task list until they finish. An anonymous subagent (`Agent` with `name` omitted) is permitted only for bounded one-shot work whose result returns directly to you — it is not a substitute for the required lifecycle specialists.
28
+ - **Codex:** do NOT call `TeamCreate`. If the lead/root agent is addressable (you were given its id/handle), send it a request to `multi_agent_v1.spawn_agent` the specialist agent(s), including each agent's prompt, ownership, and expected result. If no lead handle exists but `spawn_agent` is available to you, spawn only the bounded specialist agent(s) this flow needs, `wait_agent` for their results, and relay those results upward to the parent/lead.
29
+
30
+ Treat the first successful lead-spawn request (or, on the Codex fallback, the first specialist spawn) as preserving team orchestration. Never satisfy a team-first lifecycle flow by doing all the work inline.
31
+
32
+ ## Flow
33
+
34
+ Execute the **Monitor** sub-flow as defined in the `intent-routing` rule (loaded via the lisa plugin). The Monitor sub-flow delegates to a stack-specific `ops-specialist` agent (Expo, Rails, etc.), which composes the underlying ops skills:
35
+
36
+ - `ops-verify-health` — health endpoints
37
+ - `ops-check-logs` — CloudWatch / browser console / device / Serverless logs
38
+ - `ops-monitor-errors` — Sentry issues, error-rate spikes, regressions
39
+ - `ops-performance` — slow queries, p99 latency, hotspots
40
+ - `ops-browser-uat` — Playwright smoke flows against the deployed env
41
+ - `ops-db-ops` — pending migrations, replication lag
42
+ - `ops-deploy` — deploy status / rollback readiness
43
+
44
+ The agent decides which subset to run based on the env, the situation, and any extra context provided. The rule contains the canonical decision logic.
45
+
46
+ ## Output
47
+
48
+ A health summary with the relevant findings (failures, warnings, no-issue confirmations). For post-deploy verification (when called from `lisa:verify`), the summary becomes evidence on the originating work item.