@codyswann/lisa 4.74.9 → 4.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (799) hide show
  1. package/.claude-plugin/marketplace.json +60 -0
  2. package/dist/core/lisa-skill-sources.d.ts +3 -3
  3. package/dist/core/lisa-skill-sources.d.ts.map +1 -1
  4. package/dist/core/lisa-skill-sources.js +3 -2
  5. package/dist/core/lisa-skill-sources.js.map +1 -1
  6. package/dist/core/nightly-e2e-guard-behavior-certificate.js +2 -2
  7. package/dist/core/upstream-evidence-manifest.d.ts.map +1 -1
  8. package/dist/core/upstream-evidence-manifest.js +730 -5
  9. package/dist/core/upstream-evidence-manifest.js.map +1 -1
  10. package/package.json +4 -4
  11. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  12. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  13. package/plugins/lisa-agy/plugin.json +1 -1
  14. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  15. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  16. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  17. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  18. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  19. package/plugins/lisa-cdk-devin/.claude-plugin/plugin.json +11 -0
  20. package/plugins/lisa-cdk-devin/.devin-plugin/plugin.json +8 -0
  21. package/plugins/lisa-cdk-devin/skills/setup-aws-accounts/SKILL.md +292 -0
  22. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  23. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  24. package/plugins/lisa-devin/.claude-plugin/plugin.json +8 -0
  25. package/plugins/lisa-devin/.devin-plugin/plugin.json +8 -0
  26. package/plugins/lisa-devin/.mcp.json +8 -0
  27. package/plugins/lisa-devin/agents/architecture-specialist.md +32 -0
  28. package/plugins/lisa-devin/agents/bug-fixer.md +43 -0
  29. package/plugins/lisa-devin/agents/builder.md +44 -0
  30. package/plugins/lisa-devin/agents/confluence-prd-intake.md +65 -0
  31. package/plugins/lisa-devin/agents/debug-specialist.md +34 -0
  32. package/plugins/lisa-devin/agents/eval-specialist.md +33 -0
  33. package/plugins/lisa-devin/agents/git-history-analyzer.md +183 -0
  34. package/plugins/lisa-devin/agents/github-agent.md +155 -0
  35. package/plugins/lisa-devin/agents/github-build-intake.md +64 -0
  36. package/plugins/lisa-devin/agents/github-prd-intake.md +66 -0
  37. package/plugins/lisa-devin/agents/jira-agent.md +135 -0
  38. package/plugins/lisa-devin/agents/jira-build-intake.md +64 -0
  39. package/plugins/lisa-devin/agents/learner.md +85 -0
  40. package/plugins/lisa-devin/agents/learning-judge.md +119 -0
  41. package/plugins/lisa-devin/agents/learnings-synthesizer.md +155 -0
  42. package/plugins/lisa-devin/agents/linear-agent.md +138 -0
  43. package/plugins/lisa-devin/agents/linear-build-intake.md +64 -0
  44. package/plugins/lisa-devin/agents/linear-prd-intake.md +66 -0
  45. package/plugins/lisa-devin/agents/notion-prd-intake.md +63 -0
  46. package/plugins/lisa-devin/agents/performance-specialist.md +26 -0
  47. package/plugins/lisa-devin/agents/pr-mining-specialist.md +85 -0
  48. package/plugins/lisa-devin/agents/product-specialist.md +30 -0
  49. package/plugins/lisa-devin/agents/quality-specialist.md +30 -0
  50. package/plugins/lisa-devin/agents/security-specialist.md +43 -0
  51. package/plugins/lisa-devin/agents/skill-evaluator.md +205 -0
  52. package/plugins/lisa-devin/agents/spec-conformance-specialist.md +56 -0
  53. package/plugins/lisa-devin/agents/test-specialist.md +32 -0
  54. package/plugins/lisa-devin/agents/tracker-mining-specialist.md +85 -0
  55. package/plugins/lisa-devin/agents/verification-specialist.md +145 -0
  56. package/plugins/lisa-devin/hooks/auto-update.mjs +824 -0
  57. package/plugins/lisa-devin/hooks/auto-update.sh +31 -0
  58. package/plugins/lisa-devin/hooks/block-blind-automerge.sh +1242 -0
  59. package/plugins/lisa-devin/hooks/block-direct-issue-create.sh +2603 -0
  60. package/plugins/lisa-devin/hooks/block-host-name-leak.mjs +412 -0
  61. package/plugins/lisa-devin/hooks/block-host-name-leak.sh +61 -0
  62. package/plugins/lisa-devin/hooks/block-instruction-file-edits.sh +207 -0
  63. package/plugins/lisa-devin/hooks/block-managed-file-edits.sh +1175 -0
  64. package/plugins/lisa-devin/hooks/block-no-verify.sh +2288 -0
  65. package/plugins/lisa-devin/hooks/block-shell-json-parsing.sh +263 -0
  66. package/plugins/lisa-devin/hooks/cleanup-stale-worktrees.sh +122 -0
  67. package/plugins/lisa-devin/hooks/devin-tool-name-shim.sh +30 -0
  68. package/plugins/lisa-devin/hooks/discharge-work-item-gates.sh +90 -0
  69. package/plugins/lisa-devin/hooks/enforce-verification-gate.sh +506 -0
  70. package/plugins/lisa-devin/hooks/enforcement-vintage-npm.mjs +320 -0
  71. package/plugins/lisa-devin/hooks/enforcement-vintage.mjs +472 -0
  72. package/plugins/lisa-devin/hooks/enforcement-vintage.sh +48 -0
  73. package/plugins/lisa-devin/hooks/failure-signature-index.mjs +717 -0
  74. package/plugins/lisa-devin/hooks/failure-signature-index.sh +26 -0
  75. package/plugins/lisa-devin/hooks/guard-dedupe.bash +374 -0
  76. package/plugins/lisa-devin/hooks/inject-resolved-config.mjs +903 -0
  77. package/plugins/lisa-devin/hooks/inject-resolved-config.sh +107 -0
  78. package/plugins/lisa-devin/hooks/inject-rules.sh +49 -0
  79. package/plugins/lisa-devin/hooks/install-pkgs.sh +84 -0
  80. package/plugins/lisa-devin/hooks/operational-hazards.mjs +736 -0
  81. package/plugins/lisa-devin/hooks/operational-hazards.sh +28 -0
  82. package/plugins/lisa-devin/hooks/parity-safety-net-heredoc.py +1004 -0
  83. package/plugins/lisa-devin/hooks/parity-safety-net.sh +3275 -0
  84. package/plugins/lisa-devin/hooks/secrets-preflight.sh +72 -0
  85. package/plugins/lisa-devin/hooks/setup-jira-cli.sh +205 -0
  86. package/plugins/lisa-devin/hooks/shell-write-nudge.sh +86 -0
  87. package/plugins/lisa-devin/hooks/sonar-secrets.sh +205 -0
  88. package/plugins/lisa-devin/hooks/threshold-ratchet-compare.mjs +518 -0
  89. package/plugins/lisa-devin/hooks/threshold-ratchet-families.mjs +543 -0
  90. package/plugins/lisa-devin/hooks/threshold-ratchet.mjs +568 -0
  91. package/plugins/lisa-devin/hooks/threshold-ratchet.sh +22 -0
  92. package/plugins/lisa-devin/hooks/withdrawn-rulings.mjs +600 -0
  93. package/plugins/lisa-devin/hooks/withdrawn-rulings.sh +24 -0
  94. package/plugins/lisa-devin/hooks/worktree-binding-guard.mjs +1383 -0
  95. package/plugins/lisa-devin/hooks/worktree-binding-guard.sh +79 -0
  96. package/plugins/lisa-devin/hooks.json +247 -0
  97. package/plugins/lisa-devin/rules/eager/00-rule-index.md +82 -0
  98. package/plugins/lisa-devin/rules/eager/base-rules.md +85 -0
  99. package/plugins/lisa-devin/rules/eager/coding-philosophy.md +27 -0
  100. package/plugins/lisa-devin/rules/eager/config-resolution.md +37 -0
  101. package/plugins/lisa-devin/rules/eager/do-it-now.md +11 -0
  102. package/plugins/lisa-devin/rules/eager/empirical-inquiry.md +24 -0
  103. package/plugins/lisa-devin/rules/eager/falsifiable-checks.md +48 -0
  104. package/plugins/lisa-devin/rules/eager/history-audit.md +27 -0
  105. package/plugins/lisa-devin/rules/eager/integration-access-layer.md +19 -0
  106. package/plugins/lisa-devin/rules/eager/intent-routing.md +18 -0
  107. package/plugins/lisa-devin/rules/eager/learnings-ladder.md +18 -0
  108. package/plugins/lisa-devin/rules/eager/local-ci-first.md +15 -0
  109. package/plugins/lisa-devin/rules/eager/measurement-integrity.md +18 -0
  110. package/plugins/lisa-devin/rules/eager/never-name-a-downstream-project.md +9 -0
  111. package/plugins/lisa-devin/rules/eager/not-blocked-just-waiting.md +13 -0
  112. package/plugins/lisa-devin/rules/eager/operational-hazards.md +50 -0
  113. package/plugins/lisa-devin/rules/eager/report-actionability.md +26 -0
  114. package/plugins/lisa-devin/rules/eager/security-audit-handling.md +40 -0
  115. package/plugins/lisa-devin/rules/eager/session-status-updates.md +20 -0
  116. package/plugins/lisa-devin/rules/eager/settled-decisions.md +75 -0
  117. package/plugins/lisa-devin/rules/eager/stale-state-claims.md +26 -0
  118. package/plugins/lisa-devin/rules/eager/tool-access-gate.md +23 -0
  119. package/plugins/lisa-devin/rules/eager/tracked-work.md +9 -0
  120. package/plugins/lisa-devin/rules/eager/upstream-to-lisa.md +14 -0
  121. package/plugins/lisa-devin/rules/eager/verification.md +33 -0
  122. package/plugins/lisa-devin/rules/eager/wiki-knowledge-source.md +13 -0
  123. package/plugins/lisa-devin/rules/eager/withdrawn-rulings.md +102 -0
  124. package/plugins/lisa-devin/rules/reference/automation-runbook-contract.md +355 -0
  125. package/plugins/lisa-devin/rules/reference/base-rules.md +136 -0
  126. package/plugins/lisa-devin/rules/reference/bdd-e2e-coverage.md +301 -0
  127. package/plugins/lisa-devin/rules/reference/blocker-containment.md +165 -0
  128. package/plugins/lisa-devin/rules/reference/claim-archaeology.md +184 -0
  129. package/plugins/lisa-devin/rules/reference/claim-evidence-mapping.md +362 -0
  130. package/plugins/lisa-devin/rules/reference/claim-time-guards.md +135 -0
  131. package/plugins/lisa-devin/rules/reference/coding-philosophy.md +428 -0
  132. package/plugins/lisa-devin/rules/reference/config-resolution.md +1225 -0
  133. package/plugins/lisa-devin/rules/reference/control-reachability.md +166 -0
  134. package/plugins/lisa-devin/rules/reference/convergent-review.md +145 -0
  135. package/plugins/lisa-devin/rules/reference/credential-substrate-precedence.md +249 -0
  136. package/plugins/lisa-devin/rules/reference/dependency-decision-records.md +177 -0
  137. package/plugins/lisa-devin/rules/reference/dependency-internalization-kit.md +244 -0
  138. package/plugins/lisa-devin/rules/reference/dependency-trust-classes.md +291 -0
  139. package/plugins/lisa-devin/rules/reference/deployed-state-readback.md +142 -0
  140. package/plugins/lisa-devin/rules/reference/derived-branch-plan.md +214 -0
  141. package/plugins/lisa-devin/rules/reference/design-source-of-truth.md +260 -0
  142. package/plugins/lisa-devin/rules/reference/design-value-binding.md +311 -0
  143. package/plugins/lisa-devin/rules/reference/do-it-now.md +19 -0
  144. package/plugins/lisa-devin/rules/reference/documentation-source-paths.md +31 -0
  145. package/plugins/lisa-devin/rules/reference/empirical-inquiry.md +28 -0
  146. package/plugins/lisa-devin/rules/reference/factory-model.md +111 -0
  147. package/plugins/lisa-devin/rules/reference/falsifiable-checks.md +275 -0
  148. package/plugins/lisa-devin/rules/reference/history-audit.md +42 -0
  149. package/plugins/lisa-devin/rules/reference/integration-access-layer.md +89 -0
  150. package/plugins/lisa-devin/rules/reference/intent-routing.md +428 -0
  151. package/plugins/lisa-devin/rules/reference/leaf-only-lifecycle.md +227 -0
  152. package/plugins/lisa-devin/rules/reference/learnings-ladder.md +41 -0
  153. package/plugins/lisa-devin/rules/reference/local-ci-first.md +34 -0
  154. package/plugins/lisa-devin/rules/reference/measurement-integrity.md +119 -0
  155. package/plugins/lisa-devin/rules/reference/never-name-a-downstream-project.md +37 -0
  156. package/plugins/lisa-devin/rules/reference/not-blocked-just-waiting.md +41 -0
  157. package/plugins/lisa-devin/rules/reference/observability-audit.md +146 -0
  158. package/plugins/lisa-devin/rules/reference/operational-hazards.md +115 -0
  159. package/plugins/lisa-devin/rules/reference/prd-definition-of-ready.md +118 -0
  160. package/plugins/lisa-devin/rules/reference/prd-lifecycle-rollup.md +192 -0
  161. package/plugins/lisa-devin/rules/reference/pre-flight-autofill.md +250 -0
  162. package/plugins/lisa-devin/rules/reference/project-learnings.md +159 -0
  163. package/plugins/lisa-devin/rules/reference/promotion-contract.md +148 -0
  164. package/plugins/lisa-devin/rules/reference/readiness-rubric.md +242 -0
  165. package/plugins/lisa-devin/rules/reference/ready-role-filing.md +212 -0
  166. package/plugins/lisa-devin/rules/reference/rejection-detection.md +308 -0
  167. package/plugins/lisa-devin/rules/reference/repo-scope-split.md +119 -0
  168. package/plugins/lisa-devin/rules/reference/report-actionability.md +61 -0
  169. package/plugins/lisa-devin/rules/reference/reset-seed-coverage.md +286 -0
  170. package/plugins/lisa-devin/rules/reference/security-audit-handling.md +55 -0
  171. package/plugins/lisa-devin/rules/reference/session-status-updates.md +111 -0
  172. package/plugins/lisa-devin/rules/reference/settled-decisions.md +39 -0
  173. package/plugins/lisa-devin/rules/reference/stale-state-claims.md +88 -0
  174. package/plugins/lisa-devin/rules/reference/tool-access-gate.md +114 -0
  175. package/plugins/lisa-devin/rules/reference/tracked-work.md +49 -0
  176. package/plugins/lisa-devin/rules/reference/upstream-to-lisa.md +26 -0
  177. package/plugins/lisa-devin/rules/reference/usage-accounting.md +261 -0
  178. package/plugins/lisa-devin/rules/reference/verification.md +278 -0
  179. package/plugins/lisa-devin/rules/reference/wiki-knowledge-source.md +37 -0
  180. package/plugins/lisa-devin/rules/reference/withdrawn-rulings.md +148 -0
  181. package/plugins/lisa-devin/rules/reference/work-item-definition-of-ready.md +177 -0
  182. package/plugins/lisa-devin/rules/reference/work-item-trailer-definition.md +129 -0
  183. package/plugins/lisa-devin/scripts/automation-run-record.mjs +678 -0
  184. package/plugins/lisa-devin/scripts/automation-status-claude-adapter.mjs +804 -0
  185. package/plugins/lisa-devin/scripts/automation-status-codex-adapter.mjs +1081 -0
  186. package/plugins/lisa-devin/scripts/automation-status-contract-drift.mjs +392 -0
  187. package/plugins/lisa-devin/scripts/automation-status-expected-fleet.mjs +508 -0
  188. package/plugins/lisa-devin/scripts/automation-status-report.mjs +200 -0
  189. package/plugins/lisa-devin/scripts/automation-status-run-history.mjs +216 -0
  190. package/plugins/lisa-devin/scripts/automation-status-unrecorded-runs.mjs +127 -0
  191. package/plugins/lisa-devin/scripts/blocker-edge-resolution.mjs +150 -0
  192. package/plugins/lisa-devin/scripts/cross-pollinate.mjs +763 -0
  193. package/plugins/lisa-devin/scripts/design-bindings-probe.mjs +713 -0
  194. package/plugins/lisa-devin/scripts/design-intake-gate.mjs +470 -0
  195. package/plugins/lisa-devin/scripts/design-source-gate.mjs +610 -0
  196. package/plugins/lisa-devin/scripts/design-variable-ids.mjs +567 -0
  197. package/plugins/lisa-devin/scripts/doctor-report.mjs +635 -0
  198. package/plugins/lisa-devin/scripts/install-remote-agent-aws.mjs +443 -0
  199. package/plugins/lisa-devin/scripts/intake-blocker-reprobe.mjs +1065 -0
  200. package/plugins/lisa-devin/scripts/intake-prework-denominator.mjs +249 -0
  201. package/plugins/lisa-devin/scripts/lifecycle-label-trust.mjs +593 -0
  202. package/plugins/lisa-devin/scripts/linear-state-write-target.mjs +362 -0
  203. package/plugins/lisa-devin/scripts/plugin-sync-explain.mjs +654 -0
  204. package/plugins/lisa-devin/scripts/pr-arming-sweep.mjs +561 -0
  205. package/plugins/lisa-devin/scripts/project-ideation-idempotency-harness.mjs +338 -0
  206. package/plugins/lisa-devin/scripts/qa-signal-lifecycle.mjs +523 -0
  207. package/plugins/lisa-devin/scripts/queue-contract-resolution.mjs +583 -0
  208. package/plugins/lisa-devin/scripts/queue-health-classification.mjs +157 -0
  209. package/plugins/lisa-devin/scripts/queue-status-build-readers.mjs +561 -0
  210. package/plugins/lisa-devin/scripts/queue-status-prd-readers.mjs +452 -0
  211. package/plugins/lisa-devin/scripts/remote-agent-aws-setup.sh +677 -0
  212. package/plugins/lisa-devin/scripts/repo-scope-vocabulary-audit.mjs +458 -0
  213. package/plugins/lisa-devin/scripts/resolve-lifecycle-role.mjs +347 -0
  214. package/plugins/lisa-devin/scripts/rollup-blocker-classification.mjs +616 -0
  215. package/plugins/lisa-devin/scripts/scoping-label-audit.mjs +474 -0
  216. package/plugins/lisa-devin/skills/lisa-acceptance-criteria/SKILL.md +73 -0
  217. package/plugins/lisa-devin/skills/lisa-agent-design-best-practices/SKILL.md +242 -0
  218. package/plugins/lisa-devin/skills/lisa-agent-ready/SKILL.md +271 -0
  219. package/plugins/lisa-devin/skills/lisa-analyze-claude-remote/SKILL.md +434 -0
  220. package/plugins/lisa-devin/skills/lisa-atlassian-access/SKILL.md +469 -0
  221. package/plugins/lisa-devin/skills/lisa-atlassian-access/scripts/markdown-to-adf.mjs +236 -0
  222. package/plugins/lisa-devin/skills/lisa-attribute-failure/SKILL.md +142 -0
  223. package/plugins/lisa-devin/skills/lisa-automation-status/SKILL.md +149 -0
  224. package/plugins/lisa-devin/skills/lisa-bug-triage/SKILL.md +23 -0
  225. package/plugins/lisa-devin/skills/lisa-capability-drift/SKILL.md +71 -0
  226. package/plugins/lisa-devin/skills/lisa-codebase-research/SKILL.md +87 -0
  227. package/plugins/lisa-devin/skills/lisa-codify-verification/SKILL.md +213 -0
  228. package/plugins/lisa-devin/skills/lisa-confluence-prd-intake/SKILL.md +417 -0
  229. package/plugins/lisa-devin/skills/lisa-confluence-to-tracker/SKILL.md +469 -0
  230. package/plugins/lisa-devin/skills/lisa-confluence-write-prd/SKILL.md +111 -0
  231. package/plugins/lisa-devin/skills/lisa-cross-pollinate/SKILL.md +175 -0
  232. package/plugins/lisa-devin/skills/lisa-debrief/SKILL.md +96 -0
  233. package/plugins/lisa-devin/skills/lisa-debrief-apply/SKILL.md +106 -0
  234. package/plugins/lisa-devin/skills/lisa-delivery-effectiveness/SKILL.md +62 -0
  235. package/plugins/lisa-devin/skills/lisa-design-intake/SKILL.md +198 -0
  236. package/plugins/lisa-devin/skills/lisa-detect-tooling/SKILL.md +110 -0
  237. package/plugins/lisa-devin/skills/lisa-detect-tooling/scripts/commands.mjs +479 -0
  238. package/plugins/lisa-devin/skills/lisa-detect-tooling/scripts/detect-tooling.mjs +658 -0
  239. package/plugins/lisa-devin/skills/lisa-doctor/SKILL.md +743 -0
  240. package/plugins/lisa-devin/skills/lisa-drive-pr-to-merge/SKILL.md +1587 -0
  241. package/plugins/lisa-devin/skills/lisa-epic-triage/SKILL.md +28 -0
  242. package/plugins/lisa-devin/skills/lisa-evaluation-suite/SKILL.md +63 -0
  243. package/plugins/lisa-devin/skills/lisa-exploratory-qa/SKILL.md +185 -0
  244. package/plugins/lisa-devin/skills/lisa-fix-linter-error/SKILL.md +45 -0
  245. package/plugins/lisa-devin/skills/lisa-generate-claude-remote-build-script/SKILL.md +235 -0
  246. package/plugins/lisa-devin/skills/lisa-git-commit/SKILL.md +53 -0
  247. package/plugins/lisa-devin/skills/lisa-git-prune/SKILL.md +35 -0
  248. package/plugins/lisa-devin/skills/lisa-git-submit-pr/SKILL.md +170 -0
  249. package/plugins/lisa-devin/skills/lisa-github-add-journey/SKILL.md +118 -0
  250. package/plugins/lisa-devin/skills/lisa-github-build-intake/SKILL.md +745 -0
  251. package/plugins/lisa-devin/skills/lisa-github-claim/SKILL.md +27 -0
  252. package/plugins/lisa-devin/skills/lisa-github-create/SKILL.md +105 -0
  253. package/plugins/lisa-devin/skills/lisa-github-evidence/SKILL.md +120 -0
  254. package/plugins/lisa-devin/skills/lisa-github-journey/SKILL.md +134 -0
  255. package/plugins/lisa-devin/skills/lisa-github-prd-intake/SKILL.md +424 -0
  256. package/plugins/lisa-devin/skills/lisa-github-project-v2/SKILL.md +227 -0
  257. package/plugins/lisa-devin/skills/lisa-github-read-issue/SKILL.md +305 -0
  258. package/plugins/lisa-devin/skills/lisa-github-sync/SKILL.md +201 -0
  259. package/plugins/lisa-devin/skills/lisa-github-to-tracker/SKILL.md +456 -0
  260. package/plugins/lisa-devin/skills/lisa-github-validate-issue/SKILL.md +598 -0
  261. package/plugins/lisa-devin/skills/lisa-github-verify/SKILL.md +60 -0
  262. package/plugins/lisa-devin/skills/lisa-github-write-issue/SKILL.md +531 -0
  263. package/plugins/lisa-devin/skills/lisa-github-write-prd/SKILL.md +156 -0
  264. package/plugins/lisa-devin/skills/lisa-health/SKILL.md +142 -0
  265. package/plugins/lisa-devin/skills/lisa-health-drift-cron/SKILL.md +80 -0
  266. package/plugins/lisa-devin/skills/lisa-implement/SKILL.md +372 -0
  267. package/plugins/lisa-devin/skills/lisa-improve-code-complexity/SKILL.md +44 -0
  268. package/plugins/lisa-devin/skills/lisa-improve-harness/SKILL.md +487 -0
  269. package/plugins/lisa-devin/skills/lisa-improve-max-lines/SKILL.md +45 -0
  270. package/plugins/lisa-devin/skills/lisa-improve-max-lines-per-function/SKILL.md +46 -0
  271. package/plugins/lisa-devin/skills/lisa-improve-test-coverage/SKILL.md +47 -0
  272. package/plugins/lisa-devin/skills/lisa-improve-tests/SKILL.md +50 -0
  273. package/plugins/lisa-devin/skills/lisa-intake/SKILL.md +208 -0
  274. package/plugins/lisa-devin/skills/lisa-intake-explain/SKILL.md +279 -0
  275. package/plugins/lisa-devin/skills/lisa-jam-access/SKILL.md +128 -0
  276. package/plugins/lisa-devin/skills/lisa-jira-add-journey/SKILL.md +139 -0
  277. package/plugins/lisa-devin/skills/lisa-jira-build-intake/SKILL.md +556 -0
  278. package/plugins/lisa-devin/skills/lisa-jira-claim/SKILL.md +27 -0
  279. package/plugins/lisa-devin/skills/lisa-jira-create/SKILL.md +157 -0
  280. package/plugins/lisa-devin/skills/lisa-jira-evidence/SKILL.md +106 -0
  281. package/plugins/lisa-devin/skills/lisa-jira-evidence/scripts/post-evidence.sh +262 -0
  282. package/plugins/lisa-devin/skills/lisa-jira-journey/SKILL.md +168 -0
  283. package/plugins/lisa-devin/skills/lisa-jira-journey/scripts/generate-templates.py +239 -0
  284. package/plugins/lisa-devin/skills/lisa-jira-journey/scripts/parse-plan.py +570 -0
  285. package/plugins/lisa-devin/skills/lisa-jira-read-ticket/SKILL.md +199 -0
  286. package/plugins/lisa-devin/skills/lisa-jira-read-ticket/scripts/download-attachment.sh +211 -0
  287. package/plugins/lisa-devin/skills/lisa-jira-sync/SKILL.md +117 -0
  288. package/plugins/lisa-devin/skills/lisa-jira-validate-ticket/SKILL.md +525 -0
  289. package/plugins/lisa-devin/skills/lisa-jira-verify/SKILL.md +61 -0
  290. package/plugins/lisa-devin/skills/lisa-jira-write-ticket/SKILL.md +440 -0
  291. package/plugins/lisa-devin/skills/lisa-jsdoc-best-practices/SKILL.md +491 -0
  292. package/plugins/lisa-devin/skills/lisa-kane-browser/SKILL.md +80 -0
  293. package/plugins/lisa-devin/skills/lisa-learnings-audit/SKILL.md +490 -0
  294. package/plugins/lisa-devin/skills/lisa-linear-access/SKILL.md +483 -0
  295. package/plugins/lisa-devin/skills/lisa-linear-add-journey/SKILL.md +109 -0
  296. package/plugins/lisa-devin/skills/lisa-linear-build-intake/SKILL.md +548 -0
  297. package/plugins/lisa-devin/skills/lisa-linear-claim/SKILL.md +28 -0
  298. package/plugins/lisa-devin/skills/lisa-linear-create/SKILL.md +150 -0
  299. package/plugins/lisa-devin/skills/lisa-linear-evidence/SKILL.md +124 -0
  300. package/plugins/lisa-devin/skills/lisa-linear-journey/SKILL.md +147 -0
  301. package/plugins/lisa-devin/skills/lisa-linear-prd-intake/SKILL.md +411 -0
  302. package/plugins/lisa-devin/skills/lisa-linear-read-issue/SKILL.md +201 -0
  303. package/plugins/lisa-devin/skills/lisa-linear-sync/SKILL.md +164 -0
  304. package/plugins/lisa-devin/skills/lisa-linear-to-tracker/SKILL.md +454 -0
  305. package/plugins/lisa-devin/skills/lisa-linear-validate-issue/SKILL.md +504 -0
  306. package/plugins/lisa-devin/skills/lisa-linear-verify/SKILL.md +65 -0
  307. package/plugins/lisa-devin/skills/lisa-linear-write-issue/SKILL.md +448 -0
  308. package/plugins/lisa-devin/skills/lisa-linear-write-prd/SKILL.md +98 -0
  309. package/plugins/lisa-devin/skills/lisa-monitor/SKILL.md +224 -0
  310. package/plugins/lisa-devin/skills/lisa-nightly-add-test-coverage/SKILL.md +40 -0
  311. package/plugins/lisa-devin/skills/lisa-nightly-improve-tests/SKILL.md +29 -0
  312. package/plugins/lisa-devin/skills/lisa-nightly-lower-code-complexity/SKILL.md +42 -0
  313. package/plugins/lisa-devin/skills/lisa-notion-access/SKILL.md +301 -0
  314. package/plugins/lisa-devin/skills/lisa-notion-prd-intake/SKILL.md +360 -0
  315. package/plugins/lisa-devin/skills/lisa-notion-to-tracker/SKILL.md +467 -0
  316. package/plugins/lisa-devin/skills/lisa-notion-write-prd/SKILL.md +111 -0
  317. package/plugins/lisa-devin/skills/lisa-parity-code-review/SKILL.md +83 -0
  318. package/plugins/lisa-devin/skills/lisa-parity-code-simplifier/SKILL.md +76 -0
  319. package/plugins/lisa-devin/skills/lisa-parity-coderabbit/SKILL.md +87 -0
  320. package/plugins/lisa-devin/skills/lisa-parity-sentry-sdk-setup/SKILL.md +375 -0
  321. package/plugins/lisa-devin/skills/lisa-parity-sentry-seer/SKILL.md +168 -0
  322. package/plugins/lisa-devin/skills/lisa-parity-skill-creator/SKILL.md +155 -0
  323. package/plugins/lisa-devin/skills/lisa-performance-review/SKILL.md +94 -0
  324. package/plugins/lisa-devin/skills/lisa-persist-learning/SKILL.md +247 -0
  325. package/plugins/lisa-devin/skills/lisa-plan/SKILL.md +64 -0
  326. package/plugins/lisa-devin/skills/lisa-plugin-sync-explain/SKILL.md +53 -0
  327. package/plugins/lisa-devin/skills/lisa-posthog-access/SKILL.md +140 -0
  328. package/plugins/lisa-devin/skills/lisa-prd-backlink/SKILL.md +274 -0
  329. package/plugins/lisa-devin/skills/lisa-prd-source-write/SKILL.md +104 -0
  330. package/plugins/lisa-devin/skills/lisa-prd-ticket-coverage/SKILL.md +187 -0
  331. package/plugins/lisa-devin/skills/lisa-product-walkthrough/SKILL.md +106 -0
  332. package/plugins/lisa-devin/skills/lisa-project-ideation/SKILL.md +417 -0
  333. package/plugins/lisa-devin/skills/lisa-project-ideation/examples/evidence-card-format.md +21 -0
  334. package/plugins/lisa-devin/skills/lisa-project-ideation/examples/host-project-only.md +22 -0
  335. package/plugins/lisa-devin/skills/lisa-project-ideation/examples/idempotency-verification-harness.md +57 -0
  336. package/plugins/lisa-devin/skills/lisa-project-ideation/examples/public-external-inspiration.md +22 -0
  337. package/plugins/lisa-devin/skills/lisa-project-ideation/examples/unavailable-data-rejection.md +22 -0
  338. package/plugins/lisa-devin/skills/lisa-pull-request-review/SKILL.md +132 -0
  339. package/plugins/lisa-devin/skills/lisa-quality-review/SKILL.md +63 -0
  340. package/plugins/lisa-devin/skills/lisa-queue-status/SKILL.md +215 -0
  341. package/plugins/lisa-devin/skills/lisa-remote-dispatch/SKILL.md +109 -0
  342. package/plugins/lisa-devin/skills/lisa-remote-dispatch/scripts/dispatch.mjs +535 -0
  343. package/plugins/lisa-devin/skills/lisa-repair-intake/SKILL.md +1621 -0
  344. package/plugins/lisa-devin/skills/lisa-reproduce-bug/SKILL.md +75 -0
  345. package/plugins/lisa-devin/skills/lisa-research/SKILL.md +92 -0
  346. package/plugins/lisa-devin/skills/lisa-review-implementation/SKILL.md +209 -0
  347. package/plugins/lisa-devin/skills/lisa-review-local/SKILL.md +141 -0
  348. package/plugins/lisa-devin/skills/lisa-rework-triage/SKILL.md +206 -0
  349. package/plugins/lisa-devin/skills/lisa-root-cause-analysis/SKILL.md +135 -0
  350. package/plugins/lisa-devin/skills/lisa-secrets-access/SKILL.md +430 -0
  351. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/aws-bootstrap.mjs +433 -0
  352. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/bootstrap-store.mjs +288 -0
  353. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/doctor-secrets.mjs +273 -0
  354. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/envfile.mjs +80 -0
  355. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/inspect-vault.mjs +142 -0
  356. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/materialize-secrets.mjs +1085 -0
  357. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/note-format.mjs +179 -0
  358. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/owner.mjs +96 -0
  359. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/preflight-secrets.mjs +342 -0
  360. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/prompt-secret.mjs +79 -0
  361. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/providers.mjs +805 -0
  362. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/publish-aws-bootstrap.mjs +680 -0
  363. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/read-secret-note.mjs +105 -0
  364. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/resolve-expo-token.mjs +90 -0
  365. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/resolve-secret.mjs +285 -0
  366. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/rotate-secret.mjs +297 -0
  367. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/routing-floor.mjs +153 -0
  368. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/surfaces.mjs +480 -0
  369. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/sync-secret-to-ci.mjs +510 -0
  370. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/tools-from-notes.mjs +63 -0
  371. package/plugins/lisa-devin/skills/lisa-secrets-access/scripts/validate-config.mjs +550 -0
  372. package/plugins/lisa-devin/skills/lisa-security-review/SKILL.md +124 -0
  373. package/plugins/lisa-devin/skills/lisa-security-zap-scan/SKILL.md +53 -0
  374. package/plugins/lisa-devin/skills/lisa-sentry-access/SKILL.md +140 -0
  375. package/plugins/lisa-devin/skills/lisa-setup-atlassian/SKILL.md +407 -0
  376. package/plugins/lisa-devin/skills/lisa-setup-automations/SKILL.md +430 -0
  377. package/plugins/lisa-devin/skills/lisa-setup-automations/scripts/generate-workflow.mjs +288 -0
  378. package/plugins/lisa-devin/skills/lisa-setup-confluence/SKILL.md +254 -0
  379. package/plugins/lisa-devin/skills/lisa-setup-github/SKILL.md +319 -0
  380. package/plugins/lisa-devin/skills/lisa-setup-github-repo/SKILL.md +128 -0
  381. package/plugins/lisa-devin/skills/lisa-setup-jira/SKILL.md +198 -0
  382. package/plugins/lisa-devin/skills/lisa-setup-kane/SKILL.md +96 -0
  383. package/plugins/lisa-devin/skills/lisa-setup-linear/SKILL.md +375 -0
  384. package/plugins/lisa-devin/skills/lisa-setup-local-env/SKILL.md +95 -0
  385. package/plugins/lisa-devin/skills/lisa-setup-local-env/scripts/local-env.mjs +196 -0
  386. package/plugins/lisa-devin/skills/lisa-setup-notion/SKILL.md +376 -0
  387. package/plugins/lisa-devin/skills/lisa-setup-remote-aws/SKILL.md +149 -0
  388. package/plugins/lisa-devin/skills/lisa-setup-remote-env/SKILL.md +382 -0
  389. package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/materialized-env-authority.mjs +262 -0
  390. package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/session-start.sh +87 -0
  391. package/plugins/lisa-devin/skills/lisa-setup-remote-env/assets/setup.sh +216 -0
  392. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/environment.mjs +227 -0
  393. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/preflight-tools.mjs +378 -0
  394. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/setup-remote-env.mjs +1632 -0
  395. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/tool-floor.mjs +94 -0
  396. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/toolchain.mjs +448 -0
  397. package/plugins/lisa-devin/skills/lisa-setup-remote-env/scripts/verify-remote-env.mjs +250 -0
  398. package/plugins/lisa-devin/skills/lisa-setup-sonar/SKILL.md +153 -0
  399. package/plugins/lisa-devin/skills/lisa-setup-workstation/SKILL.md +143 -0
  400. package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/bounded-child.mjs +168 -0
  401. package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/catalogue.mjs +293 -0
  402. package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/cli.mjs +333 -0
  403. package/plugins/lisa-devin/skills/lisa-setup-workstation/scripts/workstation.mjs +511 -0
  404. package/plugins/lisa-devin/skills/lisa-sonarcloud-access/SKILL.md +202 -0
  405. package/plugins/lisa-devin/skills/lisa-spec-conformance/SKILL.md +205 -0
  406. package/plugins/lisa-devin/skills/lisa-starter-sync/SKILL.md +35 -0
  407. package/plugins/lisa-devin/skills/lisa-sync-down/SKILL.md +209 -0
  408. package/plugins/lisa-devin/skills/lisa-task-decomposition/SKILL.md +195 -0
  409. package/plugins/lisa-devin/skills/lisa-task-triage/SKILL.md +23 -0
  410. package/plugins/lisa-devin/skills/lisa-tdd-implementation/SKILL.md +91 -0
  411. package/plugins/lisa-devin/skills/lisa-tear-down-automations/SKILL.md +85 -0
  412. package/plugins/lisa-devin/skills/lisa-test-strategy/SKILL.md +66 -0
  413. package/plugins/lisa-devin/skills/lisa-ticket-triage/SKILL.md +214 -0
  414. package/plugins/lisa-devin/skills/lisa-track/SKILL.md +129 -0
  415. package/plugins/lisa-devin/skills/lisa-tracker-add-journey/SKILL.md +28 -0
  416. package/plugins/lisa-devin/skills/lisa-tracker-build-intake/SKILL.md +134 -0
  417. package/plugins/lisa-devin/skills/lisa-tracker-claim/SKILL.md +35 -0
  418. package/plugins/lisa-devin/skills/lisa-tracker-create/SKILL.md +28 -0
  419. package/plugins/lisa-devin/skills/lisa-tracker-evidence/SKILL.md +63 -0
  420. package/plugins/lisa-devin/skills/lisa-tracker-journey/SKILL.md +27 -0
  421. package/plugins/lisa-devin/skills/lisa-tracker-read/SKILL.md +28 -0
  422. package/plugins/lisa-devin/skills/lisa-tracker-source-artifacts/SKILL.md +111 -0
  423. package/plugins/lisa-devin/skills/lisa-tracker-sync/SKILL.md +150 -0
  424. package/plugins/lisa-devin/skills/lisa-tracker-validate/SKILL.md +37 -0
  425. package/plugins/lisa-devin/skills/lisa-tracker-verify/SKILL.md +29 -0
  426. package/plugins/lisa-devin/skills/lisa-tracker-write/SKILL.md +55 -0
  427. package/plugins/lisa-devin/skills/lisa-usage-accounting/SKILL.md +205 -0
  428. package/plugins/lisa-devin/skills/lisa-usage-accounting/references/effectiveness.md +63 -0
  429. package/plugins/lisa-devin/skills/lisa-use-the-product/SKILL.md +86 -0
  430. package/plugins/lisa-devin/skills/lisa-validate-tracker-mapping/SKILL.md +467 -0
  431. package/plugins/lisa-devin/skills/lisa-verification-lifecycle/SKILL.md +384 -0
  432. package/plugins/lisa-devin/skills/lisa-verify/SKILL.md +55 -0
  433. package/plugins/lisa-devin/skills/lisa-verify-prd/SKILL.md +394 -0
  434. package/plugins/lisa-devin/skills/lisa-verify-workflow-change/SKILL.md +154 -0
  435. package/plugins/lisa-devin/skills/lisa-wiki-install/SKILL.md +101 -0
  436. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  437. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  438. package/plugins/lisa-expo-agy/plugin.json +1 -1
  439. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  440. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  441. package/plugins/lisa-expo-devin/.claude-plugin/plugin.json +11 -0
  442. package/plugins/lisa-expo-devin/.devin-plugin/plugin.json +8 -0
  443. package/plugins/lisa-expo-devin/.mcp.json +8 -0
  444. package/plugins/lisa-expo-devin/THIRD-PARTY-NOTICES.md +84 -0
  445. package/plugins/lisa-expo-devin/agents/ops-specialist.md +124 -0
  446. package/plugins/lisa-expo-devin/hooks/devin-tool-name-shim.sh +30 -0
  447. package/plugins/lisa-expo-devin/hooks/register-maestro-mcp.sh +84 -0
  448. package/plugins/lisa-expo-devin/hooks.json +14 -0
  449. package/plugins/lisa-expo-devin/skills/add-app-clip/SKILL.md +280 -0
  450. package/plugins/lisa-expo-devin/skills/add-app-clip/references/native-module.md +96 -0
  451. package/plugins/lisa-expo-devin/skills/apollo-client/SKILL.md +238 -0
  452. package/plugins/lisa-expo-devin/skills/apollo-client/references/mutation-patterns.md +360 -0
  453. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/SKILL.md +369 -0
  454. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/atomic-levels.md +417 -0
  455. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/folder-structure.md +257 -0
  456. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/references/gluestack-mapping.md +233 -0
  457. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/scripts/test_validate_atomic_structure.py +240 -0
  458. package/plugins/lisa-expo-devin/skills/atomic-design-gluestack/scripts/validate_atomic_structure.py +438 -0
  459. package/plugins/lisa-expo-devin/skills/building-native-ui/SKILL.md +321 -0
  460. package/plugins/lisa-expo-devin/skills/building-native-ui/references/animations.md +220 -0
  461. package/plugins/lisa-expo-devin/skills/building-native-ui/references/controls.md +272 -0
  462. package/plugins/lisa-expo-devin/skills/building-native-ui/references/form-sheet.md +253 -0
  463. package/plugins/lisa-expo-devin/skills/building-native-ui/references/gradients.md +106 -0
  464. package/plugins/lisa-expo-devin/skills/building-native-ui/references/icons.md +213 -0
  465. package/plugins/lisa-expo-devin/skills/building-native-ui/references/media.md +198 -0
  466. package/plugins/lisa-expo-devin/skills/building-native-ui/references/route-structure.md +229 -0
  467. package/plugins/lisa-expo-devin/skills/building-native-ui/references/search.md +248 -0
  468. package/plugins/lisa-expo-devin/skills/building-native-ui/references/storage.md +121 -0
  469. package/plugins/lisa-expo-devin/skills/building-native-ui/references/tabs.md +433 -0
  470. package/plugins/lisa-expo-devin/skills/building-native-ui/references/toolbar-and-headers.md +284 -0
  471. package/plugins/lisa-expo-devin/skills/building-native-ui/references/visual-effects.md +197 -0
  472. package/plugins/lisa-expo-devin/skills/building-native-ui/references/webgpu-three.md +605 -0
  473. package/plugins/lisa-expo-devin/skills/building-native-ui/references/zoom-transitions.md +158 -0
  474. package/plugins/lisa-expo-devin/skills/container-view-pattern/SKILL.md +355 -0
  475. package/plugins/lisa-expo-devin/skills/container-view-pattern/references/examples.md +749 -0
  476. package/plugins/lisa-expo-devin/skills/container-view-pattern/references/patterns.md +318 -0
  477. package/plugins/lisa-expo-devin/skills/container-view-pattern/scripts/create_component.py +200 -0
  478. package/plugins/lisa-expo-devin/skills/container-view-pattern/scripts/validate_component.py +332 -0
  479. package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/SKILL.md +268 -0
  480. package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/common-issues.md +619 -0
  481. package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/file-extensions.md +340 -0
  482. package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/references/platform-api.md +276 -0
  483. package/plugins/lisa-expo-devin/skills/cross-platform-compatibility/scripts/validate_cross_platform.py +416 -0
  484. package/plugins/lisa-expo-devin/skills/directory-structure/SKILL.md +214 -0
  485. package/plugins/lisa-expo-devin/skills/directory-structure/scripts/validate_structure.py +454 -0
  486. package/plugins/lisa-expo-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
  487. package/plugins/lisa-expo-devin/skills/eas-update-insights/SKILL.md +228 -0
  488. package/plugins/lisa-expo-devin/skills/eas-update-insights/references/channel-insights-schema.md +47 -0
  489. package/plugins/lisa-expo-devin/skills/eas-update-insights/references/update-insights-schema.md +69 -0
  490. package/plugins/lisa-expo-devin/skills/expo-api-routes/SKILL.md +369 -0
  491. package/plugins/lisa-expo-devin/skills/expo-brownfield/SKILL.md +54 -0
  492. package/plugins/lisa-expo-devin/skills/expo-brownfield/references/brownfield-integrated.md +526 -0
  493. package/plugins/lisa-expo-devin/skills/expo-brownfield/references/brownfield-isolated.md +402 -0
  494. package/plugins/lisa-expo-devin/skills/expo-brownfield/references/comparison.md +63 -0
  495. package/plugins/lisa-expo-devin/skills/expo-brownfield/references/troubleshooting.md +88 -0
  496. package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/SKILL.md +92 -0
  497. package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/fetch.js +113 -0
  498. package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/package.json +11 -0
  499. package/plugins/lisa-expo-devin/skills/expo-cicd-workflows/scripts/validate.js +85 -0
  500. package/plugins/lisa-expo-devin/skills/expo-deployment/SKILL.md +193 -0
  501. package/plugins/lisa-expo-devin/skills/expo-deployment/references/app-store-metadata.md +479 -0
  502. package/plugins/lisa-expo-devin/skills/expo-deployment/references/ios-app-store.md +355 -0
  503. package/plugins/lisa-expo-devin/skills/expo-deployment/references/play-store.md +264 -0
  504. package/plugins/lisa-expo-devin/skills/expo-deployment/references/testflight.md +58 -0
  505. package/plugins/lisa-expo-devin/skills/expo-deployment/references/workflows.md +200 -0
  506. package/plugins/lisa-expo-devin/skills/expo-dev-client/SKILL.md +164 -0
  507. package/plugins/lisa-expo-devin/skills/expo-env-config/SKILL.md +309 -0
  508. package/plugins/lisa-expo-devin/skills/expo-env-config/references/validation-patterns.md +417 -0
  509. package/plugins/lisa-expo-devin/skills/expo-module/SKILL.md +141 -0
  510. package/plugins/lisa-expo-devin/skills/expo-module/references/config-plugin.md +90 -0
  511. package/plugins/lisa-expo-devin/skills/expo-module/references/create-expo-module.md +206 -0
  512. package/plugins/lisa-expo-devin/skills/expo-module/references/lifecycle.md +127 -0
  513. package/plugins/lisa-expo-devin/skills/expo-module/references/module-config.md +48 -0
  514. package/plugins/lisa-expo-devin/skills/expo-module/references/native-module.md +286 -0
  515. package/plugins/lisa-expo-devin/skills/expo-module/references/native-view.md +171 -0
  516. package/plugins/lisa-expo-devin/skills/expo-router-best-practices/SKILL.md +432 -0
  517. package/plugins/lisa-expo-devin/skills/expo-router-best-practices/references/official-docs.md +290 -0
  518. package/plugins/lisa-expo-devin/skills/expo-router-best-practices/references/static-export-verification.md +54 -0
  519. package/plugins/lisa-expo-devin/skills/expo-router-best-practices/scripts/generate-route.py +171 -0
  520. package/plugins/lisa-expo-devin/skills/expo-tailwind-setup/SKILL.md +487 -0
  521. package/plugins/lisa-expo-devin/skills/expo-ui-jetpack-compose/SKILL.md +40 -0
  522. package/plugins/lisa-expo-devin/skills/expo-ui-swift-ui/SKILL.md +39 -0
  523. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/SKILL.md +419 -0
  524. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/color-tokens.md +343 -0
  525. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/component-mapping.md +307 -0
  526. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/references/spacing-scale.md +300 -0
  527. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/scripts/test_validate_styling.py +240 -0
  528. package/plugins/lisa-expo-devin/skills/gluestack-nativewind/scripts/validate_styling.py +424 -0
  529. package/plugins/lisa-expo-devin/skills/jira-add-journey/SKILL.md +140 -0
  530. package/plugins/lisa-expo-devin/skills/jira-create/SKILL.md +161 -0
  531. package/plugins/lisa-expo-devin/skills/jira-evidence/SKILL.md +84 -0
  532. package/plugins/lisa-expo-devin/skills/jira-evidence/scripts/post-evidence.sh +262 -0
  533. package/plugins/lisa-expo-devin/skills/jira-journey/SKILL.md +196 -0
  534. package/plugins/lisa-expo-devin/skills/jira-journey/scripts/generate-templates.py +281 -0
  535. package/plugins/lisa-expo-devin/skills/jira-journey/scripts/parse-plan.py +400 -0
  536. package/plugins/lisa-expo-devin/skills/jira-verify/SKILL.md +27 -0
  537. package/plugins/lisa-expo-devin/skills/local-state/SKILL.md +362 -0
  538. package/plugins/lisa-expo-devin/skills/local-state/references/async-storage.md +505 -0
  539. package/plugins/lisa-expo-devin/skills/local-state/references/persistence-patterns.md +711 -0
  540. package/plugins/lisa-expo-devin/skills/local-state/references/reactive-variables.md +446 -0
  541. package/plugins/lisa-expo-devin/skills/maestro-mcp-setup/SKILL.md +144 -0
  542. package/plugins/lisa-expo-devin/skills/native-data-fetching/SKILL.md +507 -0
  543. package/plugins/lisa-expo-devin/skills/native-data-fetching/references/expo-router-loaders.md +344 -0
  544. package/plugins/lisa-expo-devin/skills/ops-browser-uat/SKILL.md +124 -0
  545. package/plugins/lisa-expo-devin/skills/ops-check-logs/SKILL.md +217 -0
  546. package/plugins/lisa-expo-devin/skills/ops-db-ops/SKILL.md +214 -0
  547. package/plugins/lisa-expo-devin/skills/ops-deploy/SKILL.md +123 -0
  548. package/plugins/lisa-expo-devin/skills/ops-monitor-errors/SKILL.md +99 -0
  549. package/plugins/lisa-expo-devin/skills/ops-performance/SKILL.md +165 -0
  550. package/plugins/lisa-expo-devin/skills/ops-run-local/SKILL.md +169 -0
  551. package/plugins/lisa-expo-devin/skills/ops-verify-health/SKILL.md +101 -0
  552. package/plugins/lisa-expo-devin/skills/owasp-zap/SKILL.md +61 -0
  553. package/plugins/lisa-expo-devin/skills/play-store-access/SKILL.md +226 -0
  554. package/plugins/lisa-expo-devin/skills/playwright-ci-debugging/SKILL.md +140 -0
  555. package/plugins/lisa-expo-devin/skills/playwright-selectors/SKILL.md +496 -0
  556. package/plugins/lisa-expo-devin/skills/reduce-complexity/SKILL.md +251 -0
  557. package/plugins/lisa-expo-devin/skills/reduce-complexity/references/extraction-strategies.md +456 -0
  558. package/plugins/lisa-expo-devin/skills/reduce-complexity/references/refactoring-patterns.md +557 -0
  559. package/plugins/lisa-expo-devin/skills/testing-library/SKILL.md +314 -0
  560. package/plugins/lisa-expo-devin/skills/testing-library/references/async-patterns.md +420 -0
  561. package/plugins/lisa-expo-devin/skills/testing-library/references/expo-router-testing.md +556 -0
  562. package/plugins/lisa-expo-devin/skills/testing-library/references/mocking-patterns.md +612 -0
  563. package/plugins/lisa-expo-devin/skills/testing-library/references/query-priority.md +291 -0
  564. package/plugins/lisa-expo-devin/skills/upgrading-expo/SKILL.md +134 -0
  565. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/expo-av-to-audio.md +132 -0
  566. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/expo-av-to-video.md +160 -0
  567. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/native-tabs.md +124 -0
  568. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/new-architecture.md +79 -0
  569. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-19.md +79 -0
  570. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-compiler.md +59 -0
  571. package/plugins/lisa-expo-devin/skills/upgrading-expo/references/react-navigation-to-expo-router.md +61 -0
  572. package/plugins/lisa-expo-devin/skills/use-dom/SKILL.md +417 -0
  573. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  574. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  575. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  576. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  577. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  578. package/plugins/lisa-harper-fabric-devin/.claude-plugin/plugin.json +11 -0
  579. package/plugins/lisa-harper-fabric-devin/.devin-plugin/plugin.json +8 -0
  580. package/plugins/lisa-harper-fabric-devin/generated-artifact-globs.txt +5 -0
  581. package/plugins/lisa-harper-fabric-devin/hooks/block-generated-artifact-edits.sh +141 -0
  582. package/plugins/lisa-harper-fabric-devin/hooks/devin-tool-name-shim.sh +30 -0
  583. package/plugins/lisa-harper-fabric-devin/hooks/enforce-config-extensions.mjs +196 -0
  584. package/plugins/lisa-harper-fabric-devin/hooks/enforce-config-extensions.sh +46 -0
  585. package/plugins/lisa-harper-fabric-devin/hooks/inject-rules.sh +27 -0
  586. package/plugins/lisa-harper-fabric-devin/hooks.json +36 -0
  587. package/plugins/lisa-harper-fabric-devin/rules/eager/harper-fabric.md +31 -0
  588. package/plugins/lisa-harper-fabric-devin/rules/reference/harper-fabric.md +52 -0
  589. package/plugins/lisa-harper-fabric-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
  590. package/plugins/lisa-harper-fabric-devin/skills/harper-auth/SKILL.md +368 -0
  591. package/plugins/lisa-harper-fabric-devin/skills/harper-build-and-deploy/SKILL.md +198 -0
  592. package/plugins/lisa-harper-fabric-devin/skills/harper-caching/SKILL.md +265 -0
  593. package/plugins/lisa-harper-fabric-devin/skills/harper-component-model/SKILL.md +87 -0
  594. package/plugins/lisa-harper-fabric-devin/skills/harper-config-yaml/SKILL.md +283 -0
  595. package/plugins/lisa-harper-fabric-devin/skills/harper-operations/SKILL.md +239 -0
  596. package/plugins/lisa-harper-fabric-devin/skills/harper-realtime/SKILL.md +187 -0
  597. package/plugins/lisa-harper-fabric-devin/skills/harper-resources/SKILL.md +142 -0
  598. package/plugins/lisa-harper-fabric-devin/skills/harper-rest-queries/SKILL.md +403 -0
  599. package/plugins/lisa-harper-fabric-devin/skills/harper-schema-graphql/SKILL.md +123 -0
  600. package/plugins/lisa-harper-fabric-devin/skills/harper-testing/SKILL.md +254 -0
  601. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  602. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  603. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  604. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  605. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  606. package/plugins/lisa-nestjs-devin/.claude-plugin/plugin.json +11 -0
  607. package/plugins/lisa-nestjs-devin/.devin-plugin/plugin.json +8 -0
  608. package/plugins/lisa-nestjs-devin/hooks/block-migration-edits.sh +125 -0
  609. package/plugins/lisa-nestjs-devin/hooks/devin-tool-name-shim.sh +30 -0
  610. package/plugins/lisa-nestjs-devin/hooks/lisa-edit-gate.sh +152 -0
  611. package/plugins/lisa-nestjs-devin/hooks.json +15 -0
  612. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/SKILL.md +176 -0
  613. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/advanced-features.md +527 -0
  614. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/project-patterns.md +531 -0
  615. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/quick-start.md +257 -0
  616. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/resolvers-mutations.md +413 -0
  617. package/plugins/lisa-nestjs-devin/skills/nestjs-graphql/references/types-scalars.md +513 -0
  618. package/plugins/lisa-nestjs-devin/skills/nestjs-rules/SKILL.md +560 -0
  619. package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/SKILL.md +275 -0
  620. package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/configuration-patterns.md +487 -0
  621. package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/entity-patterns.md +450 -0
  622. package/plugins/lisa-nestjs-devin/skills/typeorm-patterns/references/observability-patterns.md +536 -0
  623. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  624. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  625. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  626. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  627. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  628. package/plugins/lisa-openclaw-devin/.claude-plugin/plugin.json +8 -0
  629. package/plugins/lisa-openclaw-devin/.devin-plugin/plugin.json +8 -0
  630. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-repo-topic/SKILL.md +163 -0
  631. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-repo-topic/references/repo-topic-config.md +185 -0
  632. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/SKILL.md +175 -0
  633. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/references/platform-routing.md +123 -0
  634. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-connect-staff/references/prompts.md +78 -0
  635. package/plugins/lisa-openclaw-devin/skills/lisa-openclaw-setup/SKILL.md +141 -0
  636. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  637. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  638. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  639. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  640. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  641. package/plugins/lisa-phaser-devin/.claude-plugin/plugin.json +11 -0
  642. package/plugins/lisa-phaser-devin/.devin-plugin/plugin.json +8 -0
  643. package/plugins/lisa-phaser-devin/agents/accessibility-advocate.md +55 -0
  644. package/plugins/lisa-phaser-devin/agents/art-director.md +90 -0
  645. package/plugins/lisa-phaser-devin/agents/audio-director.md +65 -0
  646. package/plugins/lisa-phaser-devin/agents/combat-designer.md +61 -0
  647. package/plugins/lisa-phaser-devin/agents/economy-designer.md +59 -0
  648. package/plugins/lisa-phaser-devin/agents/game-designer.md +62 -0
  649. package/plugins/lisa-phaser-devin/agents/game-feel-specialist.md +56 -0
  650. package/plugins/lisa-phaser-devin/agents/level-designer.md +59 -0
  651. package/plugins/lisa-phaser-devin/agents/localization-manager.md +61 -0
  652. package/plugins/lisa-phaser-devin/agents/marketing-strategist.md +59 -0
  653. package/plugins/lisa-phaser-devin/agents/monetization-designer.md +59 -0
  654. package/plugins/lisa-phaser-devin/agents/narrative-designer.md +56 -0
  655. package/plugins/lisa-phaser-devin/agents/onboarding-advocate.md +59 -0
  656. package/plugins/lisa-phaser-devin/agents/player-advocate.md +57 -0
  657. package/plugins/lisa-phaser-devin/agents/producer.md +61 -0
  658. package/plugins/lisa-phaser-devin/agents/product-analyst.md +62 -0
  659. package/plugins/lisa-phaser-devin/agents/publisher.md +59 -0
  660. package/plugins/lisa-phaser-devin/agents/qa-playtester.md +57 -0
  661. package/plugins/lisa-phaser-devin/agents/target-player.md +52 -0
  662. package/plugins/lisa-phaser-devin/agents/ux-ui-designer.md +60 -0
  663. package/plugins/lisa-phaser-devin/hooks/devin-tool-name-shim.sh +30 -0
  664. package/plugins/lisa-phaser-devin/hooks/inject-rules.sh +27 -0
  665. package/plugins/lisa-phaser-devin/hooks.json +14 -0
  666. package/plugins/lisa-phaser-devin/rules/eager/phaser.md +44 -0
  667. package/plugins/lisa-phaser-devin/rules/reference/phaser.md +184 -0
  668. package/plugins/lisa-phaser-devin/skills/phaser-accessibility/SKILL.md +135 -0
  669. package/plugins/lisa-phaser-devin/skills/phaser-asset-pipeline/SKILL.md +222 -0
  670. package/plugins/lisa-phaser-devin/skills/phaser-asset-sourcing/SKILL.md +151 -0
  671. package/plugins/lisa-phaser-devin/skills/phaser-build-deploy/SKILL.md +153 -0
  672. package/plugins/lisa-phaser-devin/skills/phaser-i18n/SKILL.md +122 -0
  673. package/plugins/lisa-phaser-devin/skills/phaser-project-structure/SKILL.md +89 -0
  674. package/plugins/lisa-phaser-devin/skills/phaser-services/SKILL.md +208 -0
  675. package/plugins/lisa-phaser-devin/skills/phaser-testing/SKILL.md +192 -0
  676. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  677. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  678. package/plugins/lisa-rails-agy/plugin.json +1 -1
  679. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  680. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  681. package/plugins/lisa-rails-devin/.claude-plugin/plugin.json +11 -0
  682. package/plugins/lisa-rails-devin/.devin-plugin/plugin.json +8 -0
  683. package/plugins/lisa-rails-devin/agents/ops-specialist.md +226 -0
  684. package/plugins/lisa-rails-devin/hooks/devin-tool-name-shim.sh +30 -0
  685. package/plugins/lisa-rails-devin/hooks/inject-rules.sh +40 -0
  686. package/plugins/lisa-rails-devin/hooks/lisa-edit-gate.sh +152 -0
  687. package/plugins/lisa-rails-devin/hooks/rubocop-on-edit.sh +101 -0
  688. package/plugins/lisa-rails-devin/hooks/sg-scan-on-edit.sh +97 -0
  689. package/plugins/lisa-rails-devin/hooks.json +29 -0
  690. package/plugins/lisa-rails-devin/rules/eager/rails-conventions.md +23 -0
  691. package/plugins/lisa-rails-devin/rules/reference/rails-conventions.md +176 -0
  692. package/plugins/lisa-rails-devin/skills/action-controller-best-practices/SKILL.md +374 -0
  693. package/plugins/lisa-rails-devin/skills/action-view-best-practices/SKILL.md +335 -0
  694. package/plugins/lisa-rails-devin/skills/active-record-model-best-practices/SKILL.md +166 -0
  695. package/plugins/lisa-rails-devin/skills/e2e-coverage-gaps/SKILL.md +117 -0
  696. package/plugins/lisa-rails-devin/skills/fix-linter-error/SKILL.md +45 -0
  697. package/plugins/lisa-rails-devin/skills/improve-code-complexity/SKILL.md +51 -0
  698. package/plugins/lisa-rails-devin/skills/improve-max-lines/SKILL.md +46 -0
  699. package/plugins/lisa-rails-devin/skills/improve-max-lines-per-function/SKILL.md +46 -0
  700. package/plugins/lisa-rails-devin/skills/improve-test-coverage/SKILL.md +48 -0
  701. package/plugins/lisa-rails-devin/skills/jira-add-journey/SKILL.md +79 -0
  702. package/plugins/lisa-rails-devin/skills/jira-create/SKILL.md +100 -0
  703. package/plugins/lisa-rails-devin/skills/jira-evidence/SKILL.md +76 -0
  704. package/plugins/lisa-rails-devin/skills/jira-evidence/scripts/post-evidence.sh +262 -0
  705. package/plugins/lisa-rails-devin/skills/jira-journey/SKILL.md +65 -0
  706. package/plugins/lisa-rails-devin/skills/jira-verify/SKILL.md +26 -0
  707. package/plugins/lisa-rails-devin/skills/ops-check-logs/SKILL.md +191 -0
  708. package/plugins/lisa-rails-devin/skills/ops-deploy/SKILL.md +153 -0
  709. package/plugins/lisa-rails-devin/skills/ops-run-local/SKILL.md +169 -0
  710. package/plugins/lisa-rails-devin/skills/ops-verify-jobs/SKILL.md +157 -0
  711. package/plugins/lisa-rails-devin/skills/ops-verify-telemetry/SKILL.md +226 -0
  712. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  713. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  714. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  715. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  716. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  717. package/plugins/lisa-typescript-devin/.claude-plugin/plugin.json +11 -0
  718. package/plugins/lisa-typescript-devin/.devin-plugin/plugin.json +8 -0
  719. package/plugins/lisa-typescript-devin/hooks/block-suppress-directives.sh +141 -0
  720. package/plugins/lisa-typescript-devin/hooks/devin-tool-name-shim.sh +30 -0
  721. package/plugins/lisa-typescript-devin/hooks/format-on-edit.sh +102 -0
  722. package/plugins/lisa-typescript-devin/hooks/lint-on-edit.sh +117 -0
  723. package/plugins/lisa-typescript-devin/hooks/lisa-edit-gate.sh +152 -0
  724. package/plugins/lisa-typescript-devin/hooks/sg-scan-on-edit.sh +94 -0
  725. package/plugins/lisa-typescript-devin/hooks.json +34 -0
  726. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  727. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  728. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  729. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  730. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  731. package/plugins/lisa-wiki-devin/.claude-plugin/plugin.json +8 -0
  732. package/plugins/lisa-wiki-devin/.devin-plugin/plugin.json +8 -0
  733. package/plugins/lisa-wiki-devin/ci/lisa-wiki-validate.yml +33 -0
  734. package/plugins/lisa-wiki-devin/schema/lisa-wiki-config.schema.json +162 -0
  735. package/plugins/lisa-wiki-devin/schema/wiki-structure.schema.json +51 -0
  736. package/plugins/lisa-wiki-devin/scripts/_wiki-lib.mjs +204 -0
  737. package/plugins/lisa-wiki-devin/scripts/diff-guard.mjs +117 -0
  738. package/plugins/lisa-wiki-devin/scripts/ensure-gitignore.mjs +131 -0
  739. package/plugins/lisa-wiki-devin/scripts/ensure-wiki.mjs +268 -0
  740. package/plugins/lisa-wiki-devin/scripts/ingest-git.mjs +198 -0
  741. package/plugins/lisa-wiki-devin/scripts/ingest-memory.mjs +135 -0
  742. package/plugins/lisa-wiki-devin/scripts/ingest-roles.mjs +95 -0
  743. package/plugins/lisa-wiki-devin/scripts/ingest_slack_channel.py +361 -0
  744. package/plugins/lisa-wiki-devin/scripts/lib/bounded-child.mjs +159 -0
  745. package/plugins/lisa-wiki-devin/scripts/lint-wiki.mjs +513 -0
  746. package/plugins/lisa-wiki-devin/scripts/mcp-doctor.mjs +72 -0
  747. package/plugins/lisa-wiki-devin/scripts/render-contract.mjs +107 -0
  748. package/plugins/lisa-wiki-devin/scripts/rewrite-refs.mjs +144 -0
  749. package/plugins/lisa-wiki-devin/scripts/slack_oauth_user.py +179 -0
  750. package/plugins/lisa-wiki-devin/scripts/validate-config.mjs +321 -0
  751. package/plugins/lisa-wiki-devin/scripts/verify-migration.mjs +203 -0
  752. package/plugins/lisa-wiki-devin/scripts/verify-wiki-safety.mjs +126 -0
  753. package/plugins/lisa-wiki-devin/scripts/wiki-safety.mjs +378 -0
  754. package/plugins/lisa-wiki-devin/scripts/wiki-status.mjs +345 -0
  755. package/plugins/lisa-wiki-devin/skills/lisa-wiki-add-ingest/SKILL.md +34 -0
  756. package/plugins/lisa-wiki-devin/skills/lisa-wiki-add-role/SKILL.md +35 -0
  757. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-confluence/SKILL.md +25 -0
  758. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-docs/SKILL.md +30 -0
  759. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-git/SKILL.md +25 -0
  760. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-jira/SKILL.md +28 -0
  761. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-memory/SKILL.md +28 -0
  762. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-notion/SKILL.md +25 -0
  763. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-roles/SKILL.md +22 -0
  764. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-slack/SKILL.md +30 -0
  765. package/plugins/lisa-wiki-devin/skills/lisa-wiki-connector-web/SKILL.md +23 -0
  766. package/plugins/lisa-wiki-devin/skills/lisa-wiki-doctor/SKILL.md +47 -0
  767. package/plugins/lisa-wiki-devin/skills/lisa-wiki-ingest/SKILL.md +106 -0
  768. package/plugins/lisa-wiki-devin/skills/lisa-wiki-lint/SKILL.md +32 -0
  769. package/plugins/lisa-wiki-devin/skills/lisa-wiki-migrate/SKILL.md +43 -0
  770. package/plugins/lisa-wiki-devin/skills/lisa-wiki-onboard-me/SKILL.md +33 -0
  771. package/plugins/lisa-wiki-devin/skills/lisa-wiki-query/SKILL.md +40 -0
  772. package/plugins/lisa-wiki-devin/skills/lisa-wiki-setup/SKILL.md +75 -0
  773. package/plugins/lisa-wiki-devin/skills/lisa-wiki-setup-automations/SKILL.md +83 -0
  774. package/plugins/lisa-wiki-devin/skills/lisa-wiki-status/SKILL.md +47 -0
  775. package/plugins/lisa-wiki-devin/skills/lisa-wiki-tear-down-automations/SKILL.md +34 -0
  776. package/plugins/lisa-wiki-devin/skills/lisa-wiki-usage/SKILL.md +50 -0
  777. package/plugins/lisa-wiki-devin/templates/agents/role-agent.claude.md +16 -0
  778. package/plugins/lisa-wiki-devin/templates/agents/role-agent.codex.toml +15 -0
  779. package/plugins/lisa-wiki-devin/templates/index.md +17 -0
  780. package/plugins/lisa-wiki-devin/templates/llm-wiki-contract.md +72 -0
  781. package/plugins/lisa-wiki-devin/templates/log.md +8 -0
  782. package/plugins/lisa-wiki-devin/templates/page-types/architecture.md +18 -0
  783. package/plugins/lisa-wiki-devin/templates/page-types/concept.md +18 -0
  784. package/plugins/lisa-wiki-devin/templates/page-types/decision.md +18 -0
  785. package/plugins/lisa-wiki-devin/templates/page-types/entity.md +19 -0
  786. package/plugins/lisa-wiki-devin/templates/page-types/open-question.md +18 -0
  787. package/plugins/lisa-wiki-devin/templates/page-types/playbook.md +18 -0
  788. package/plugins/lisa-wiki-devin/templates/page-types/project.md +19 -0
  789. package/plugins/lisa-wiki-devin/templates/page-types/requirement.md +19 -0
  790. package/plugins/lisa-wiki-devin/templates/page-types/staff.md +26 -0
  791. package/plugins/lisa-wiki-devin/templates/start-here.md +24 -0
  792. package/plugins/lisa-wiki-devin/templates/state-readme.md +20 -0
  793. package/plugins/lisa-wiki-devin/templates/wrapper-gitignore.txt +19 -0
  794. package/scripts/build-plugins.sh +2 -2
  795. package/scripts/deployed-guard-advice.mjs +1 -0
  796. package/scripts/generate-devin-plugin-artifacts.mjs +263 -0
  797. package/scripts/lib/hook-registration-audit.mjs +3 -1
  798. package/scripts/lib/per-agent-hook-filter.mjs +174 -5
  799. package/scripts/lib/plugin-rule-citations.mjs +2 -2
@@ -0,0 +1,28 @@
1
+ ---
2
+ name: lisa-epic-triage
3
+ description: "9-step epic triage and 5-step implementation workflow. Ensures epics are fully scoped, broken down, and ordered before execution begins."
4
+ ---
5
+
6
+ # Epic Triage
7
+
8
+ Follow this 9-step triage process before implementing any epic. Do not skip triage.
9
+
10
+ ## Triage Steps
11
+
12
+ 1. Verify you have all information needed to understand the full scope of this epic (goals, acceptance criteria, impacted systems, design specs, dependencies, etc.). Do not make assumptions. If anything is missing, stop and ask before proceeding.
13
+ 2. Verify the epic is broken down into concrete, well-scoped bugs, tasks, and/or stories that are each fully triaged. If ambiguities exist, stop and resolve them before breaking it down.
14
+ 3. Identify all cross-cutting concerns (auth, performance, security, data migrations, third-party integrations) that need to be addressed across the epic.
15
+ 4. Identify all dependencies between tasks within the epic, or on external epics, teams, or services. Determine the correct order of execution.
16
+ 5. Verify you have access to the tools, environments, and permissions needed to deploy and verify all tasks within this epic (e.g. CI/CD pipelines, deployment targets, logging/monitoring systems, API access, database access). If any are missing or inaccessible, stop and raise them before proceeding.
17
+ 6. Define the overall test strategy for the epic (unit, integration, end-to-end, load testing).
18
+ 7. Define the documentation that will need to be created or updated to cover the full scope of the epic so another developer understands the architecture, design decisions, and implementation.
19
+ 8. Define measurable acceptance criteria that confirm the epic is fully complete.
20
+ 9. Define how you will verify the epic is fully delivered beyond a shadow of a doubt (e.g. deploy to the target environment, walk through all acceptance criteria end-to-end, confirm all child tasks/stories are closed, confirm no regressions).
21
+
22
+ ## Implementation
23
+
24
+ 1. Use the output of the triage steps above as your guide. Do not skip triage.
25
+ 2. Work through each task and/or story in the order defined during triage, respecting dependencies.
26
+ 3. Apply the Bug Implementation and Task Implementation processes to each child bug or task, respectively, as you work through them.
27
+ 4. Continuously update the epic and its child issues in JIRA as progress is made.
28
+ 5. Do not consider the epic complete until all acceptance criteria are verified in the target environment and all child issues are resolved.
@@ -0,0 +1,63 @@
1
+ ---
2
+ name: lisa-evaluation-suite
3
+ description: "Build and maintain the entity's own task suite for qualifying agent, model, prompt and effort-level changes — drawn from real work, kept representative, protected from contamination, and checked for the discriminating power that makes a result mean something."
4
+ allowed-tools: ["Read", "Grep", "Glob", "Bash"]
5
+ ---
6
+
7
+ # Evaluation Suite
8
+
9
+ Public leaderboards measure somebody else's work mix. The suite that decides what runs in your factory is assembled from your own.
10
+
11
+ ## Draw the tasks from real work
12
+
13
+ A task earns a place by having happened. Pull candidates from closed work items, past incidents, escaped defects, and the reviews that caught something — anywhere the outcome is already known and was consequential.
14
+
15
+ Include, deliberately, the work your current setup handles **badly**. A suite made only of tasks that already pass measures nothing: every candidate scores full marks and the result cannot separate them. Difficulty is what carries information, so keep the tasks that embarrass the fleet and record what "good" would have looked like.
16
+
17
+ Each task records: what is asked, what counts as success and how that is judged, where the task came from, and the outcome class it exercises. Without the judging rule written down, two runs of the same task are not comparable.
18
+
19
+ ## Keep it resembling the work
20
+
21
+ Representativeness expires. Review it on a declared cadence and re-establish it whenever the work mix moves — a new stack, a new surface, a shift from features to migrations. A suite that has drifted from the work stops being evidence about the work while continuing to produce confident numbers, which is the worst failure mode available to an instrument.
22
+
23
+ State the review date alongside every result. A reader has to be able to see how old the instrument is.
24
+
25
+ ## Contamination is the failure that hides
26
+
27
+ The tasks and their expected outcomes MUST be unreachable by the agents under evaluation. That means not in instruction files, not in skills, not in retrievable context, not in a wiki the agents read, and not in feedback or transcripts submitted to a model vendor.
28
+
29
+ An agent optimising against a suite it can see produces a score rather than a measurement, and nothing in the number reveals which one you have. Treat any suspected exposure as fatal to the affected tasks: retire them, record why, and replace them from real work. Where exposure cannot be ruled out for the whole suite, say so — a compromised instrument reported honestly still tells you something; one reported as clean does not.
30
+
31
+ ## Check that it discriminates
32
+
33
+ Before trusting a comparison, look at the spread of results across candidates:
34
+
35
+ | What you see | What it means |
36
+ | --- | --- |
37
+ | Nearly every task passes for every candidate | Saturated. It cannot rank anything; add harder tasks |
38
+ | Nearly every task fails for every candidate | Out of range. The suite is measuring something other than the difference you care about |
39
+ | A handful of tasks decide the whole ordering | Fragile. Swapping any one of them would flip the result — say so with the result |
40
+ | Spreads overlap between candidates | Not distinguished, whatever the means say |
41
+
42
+ ## Qualify a change against it
43
+
44
+ A qualification states, before the runs: how many runs per condition, the statistic expressing spread, and the threshold that constitutes a pass. Report the distribution rather than a mean, and treat the pinned operating configuration — model, reasoning or effort level, tools, context — as part of the condition, since results are not monotonic in effort and a change to any of them is a different candidate.
45
+
46
+ Third-party benchmark rankings and vendor claims are not admissible here. They measure a different task mix at a precision their own run-to-run variance does not support.
47
+
48
+ ## Output
49
+
50
+ ```text
51
+ ## Evaluation Suite
52
+
53
+ **Tasks:** n | **Representativeness reviewed:** date | **Contamination:** controlled / suspected / unknown
54
+ **Discrimination:** healthy | saturated | out-of-range | fragile (deciding tasks: …)
55
+
56
+ ### Result — per condition
57
+ | Condition (model · effort · tools) | Runs | Outcome distribution | Spread |
58
+ |---|---|---|---|
59
+
60
+ **Protocol declared in advance:** runs per condition, spread statistic, pass threshold
61
+ **Verdict:** qualified / not qualified / instrument unfit — with the reason
62
+ **Uncollected:** any metric that could not be gathered, and why
63
+ ```
@@ -0,0 +1,185 @@
1
+ ---
2
+ name: lisa-exploratory-qa
3
+ description: First-time-user exploratory QA pass for ANY product type (DOM web app, HTTP/API backend, canvas game, CLI/library, IaC/CDK) that FEEDS THE LIFECYCLE. Use when asked to experience a product the way a brand-new end user would — driving its real consumer-facing interface via the `use-the-product` core (which detects the product type, resolves the per-environment mutation policy from .lisa.config.json so production data is never mutated by accident, and explores through the project's personas when it defines them) to find anything confusing, broken, or hard to use. Static route scans, HTTP fetches, screenshots alone, or console/network checks alone are not sufficient evidence. Instead of writing a report file, it files worthwhile findings as tracked work items via lisa-tracker-write. A `ready` parameter controls whether those tickets are created build-ready (auto-picked-up by lisa-intake) or left in the backlog for human triage (default). For gaps in the automated test suite, use e2e-coverage-gaps instead.
4
+ ---
5
+
6
+ # Exploratory QA
7
+
8
+ On runtimes without the rule tree (Antigravity), read **Worth doing** in `lisa-track` for the same value and decline policy.
9
+
10
+ ## Overview
11
+
12
+ Experience the product the way a **brand-new end user** would: drive its real consumer-facing interface and actually try to use it, then surface anything **confusing, broken, or hard to understand**. This is a usability/experience pass, **not** a test-coverage audit (for that, use `e2e-coverage-gaps`). Accepted worthwhile findings enter the Lisa lifecycle as bounded tracked work — no static report file.
13
+
14
+ **How you drive the product is owned by the `use-the-product` core skill.** Invoke it first: it detects the product type (web / API / game / CLI / IaC), resolves the target environment and its **mutation policy** (so you never mutate production without an explicit, justified opt-in), and discovers the project's **personas** so you can explore as each one. This skill supplies the **QA lens** — what to look for and how to file it.
15
+
16
+ ## Parameters
17
+
18
+ - **`target-url | env`** (first positional) — what to explore (passed through to `use-the-product`).
19
+ - **`ready=true|false`** — the build-ready state for the tickets this pass creates.
20
+ - `ready=true` → created build-ready, so `lisa-intake` / the build-intake scanner auto-picks them up.
21
+ - `ready=false` (**default**) → created in the backlog for a human to review and promote.
22
+
23
+ ## 1. Set up
24
+
25
+ - **Invoke `use-the-product`** to detect the product type, resolve the environment + mutation policy, and discover personas/subagents. Everything about *how* to drive the product, *where*, and *how much you may mutate* comes from there — do not re-derive it.
26
+ - For a DOM web app whose resolved non-production environment has mutation policy `full`, check the optional Kane provider with `lisa kane probe`. If ready, invoke `lisa-kane-browser` for self-contained journeys and use its screenshots, HAR/network, console, and normalized verdict as evidence. Keep the run on a directly controlled browser for `read-only`/`forbidden` environments. Treat `tool_failed`/`timed_out` as provider findings, never as product bugs.
27
+ - **Confirm the tracker is configured.** Findings are filed as tickets, so read `tracker` from `.lisa.config.json` (local overrides global). If unset, stop and report that the tracker must be configured (`/lisa:setup:jira` / `:github` / `:linear`) before exploratory QA can file findings — do not silently fall back to a report file.
28
+ - Read the `ready` flag (default `false`).
29
+
30
+ ## 2. Arrive cold and use it like a human
31
+
32
+ - Start with **no prior knowledge** — do not pre-read the codebase to learn the intended flows; discover them the way a user would. Form a first impression: is it obvious what this product is, what to do first, and where to go next?
33
+ - Then actually attempt real tasks through the interface (per `use-the-product`'s per-type playbook), exercising representative controls/endpoints/commands — a first-time user explores, makes mistakes, and tries the obvious thing.
34
+
35
+ ## 3. The QA lens — what to look for
36
+
37
+ Cover at least these dimensions unless the user narrows scope. Most are universal; the web-specific ones are marked and have per-type equivalents in §4.
38
+
39
+ - **Comprehension & labeling:** user-facing copy must read like something a normal first-time user understands. Flag machine-style/developer labels (raw IDs, enum keys, `snake_case`, `null`/`undefined`, untranslated i18n keys), admin/database terms ("metadata", "rows", "record", "entity"), unexplained jargon, unclear button/menu names, and meaningless icons. If a label would make a non-technical user ask "what does that mean?", file a clarity ticket.
40
+ - **Data usefulness & context:** facts, metrics, and tables must help a person understand the surface, not just prove extraction happened. If a user can't tell what a number or field refers to without rereading the raw source, file a ticket to add context (excerpts, labels, grouping, provenance) or hide it.
41
+ - **Data volume & trust:** compare visible data to what the surface promises. A rich view with only a few items can read as broken/filtered/still-loading. File a finding when sparse data isn't explained (result counts, active filters, reset affordances, coverage status, sample labeling).
42
+ - **Controls & mental model:** controls must match what they do (sort ≠ filter; search ≠ facet; finite domains want selects/typeaheads, not blank text inputs). Flag controls that make users guess spelling/casing, hide the option universe, or use the wrong component.
43
+ - **Flow completeness & expected counterparts:** a screen that gates access or shows one side of a standard paired flow must offer the other side, or a clear path to it. A new user must never hit a dead end with no next step. Flag: **sign-in with no sign-up** (or vice-versa), **no account recovery** ("Forgot password?", resend verification), **no exit from a state** (no sign-out; a modal/wizard with no back/close/cancel), **one-way actions** (create with no edit/delete where both are expected), **unreachable entry points** (a feature only reachable by guessing a URL; an empty state with no primary action). When the missing counterpart makes a core task impossible for a class of users, file a `Bug`; otherwise a usability `Improvement`.
44
+ - **Action preconditions & incomplete end-states:** an action that needs multiple inputs or a prerequisite (compare, merge, bulk-edit) should guide the user to satisfy it — disable/explain until met, collect inputs first, or give the destination an in-place control. Actually trigger these and watch where they land; flag when a primary action fires under-satisfied and strands the user, lands on an empty/partial end-state with no next step, or is offered where it cannot succeed. Left unable to finish → `Bug`; works but confusing → `Improvement`.
45
+ - **Navigation clarity:** is it obvious how to get somewhere and back? Flag dead ends, hidden entry points, surprising redirects, broken links, no clear "home", and duplicated nav that competes for space without page-specific value.
46
+ - **Behavior correctness:** does the obvious action do what a user expects? Confusing errors, silent failures, disabled controls with no explanation, state that doesn't persist.
47
+ - **Affordance clarity:** can the user tell what is clickable, required, in-progress, or complete?
48
+ - **Load & responsiveness:** long/unclear loads, blank or skeleton-only shells, spinners with no progress. Flag surfaces that report "loaded" but where meaningful content arrives much later. Capture user-perceived timings (shell visible, first meaningful content, stable content); if the delay is noticeable, file it even when the eventual content is correct.
49
+ - **Visual/layout quality (DOM web):** cut-off/truncated text, overlap, cramped density, offscreen controls, accidental horizontal scroll. **Do not judge by eyeballing a screenshot alone** — confirm with the layout-integrity sweep in §4.
50
+ - **Consistency / standard UX:** components, spacing, terminology, and interaction patterns should be consistent and follow common conventions. Flag anything non-standard or screen-to-screen drift.
51
+
52
+ ## 4. Type-specific depth
53
+
54
+ - **DOM web app — breakpoints & layout integrity.** Sweep a range of widths, including the *in-between* ones where clipping appears (e.g. 360, 390, 414, 600, 768, 834, 1024, 1280, 1440 plus ~900–1180 steps), and re-walk key paths at each. At every width, in addition to looking, take DOM measurements and treat as findings: **container overflow** (`documentElement.scrollWidth > clientWidth`); **clipped/offscreen controls** (a control's `getBoundingClientRect()` falling outside the viewport or an `overflow:hidden|clip|auto|scroll` ancestor — e.g. a submit button cut off by its filter card); **truncated meaningful text** (`scrollWidth > clientWidth` / ellipsis on text that carries meaning); **colliding controls** (label overlapping an adjacent control with no gap). A primary/interactive control that is clipped, offscreen, or unreachable is a **`Bug`**, not an Improvement.
55
+ - **HTTP / API backend.** Judge the *contract as a consumer experiences it*: unclear/inconsistent status codes, error responses with no actionable message, payloads exposing internal shapes (raw enums, DB column names), missing pagination/among-counts, endpoints that 500 on obvious edge inputs. A broken/incorrect response is a `Bug`; a confusing-but-working contract is an `Improvement`.
56
+ - **Canvas game.** Judge readability at gameplay scale, input responsiveness/latency, game-feel, unclear objectives, and silent state changes — not DOM breakpoints. A soft-lock or lost progress is a `Bug`; unclear-but-playable friction is an `Improvement`.
57
+ - **CLI / library.** Judge help/output clarity, error messages, discoverability of commands, and surprising side effects. A wrong result / crash is a `Bug`; confusing UX is an `Improvement`.
58
+ - **IaC / CDK (read-only).** From `cdk synth`/`diff`: over-broad IAM, missing/opaque stack outputs, resources that don't serve their stated purpose, drift. A security-relevant misconfiguration is a `Bug`; unclear-but-correct infra is an `Improvement`.
59
+
60
+ ## 5. Mutation
61
+
62
+ Whether you may create/edit/delete — and as which account — is set by the `use-the-product` mutation policy (`read-only` vs `full`, `identity`, production rules). Follow its **Mutation Discipline** when the policy is `full` (prefixed test data, identify + verify cleanup, record residue). Never mutate an env the policy marks `read-only` or `forbidden`; if a finding can only be confirmed by a forbidden mutation, file it as observed-and-blocked rather than escalating.
63
+
64
+ ## 6. File findings as tracked work
65
+
66
+ Apply `do-it-now`'s **Worth doing** guidance first. Decline low-value observations in the run summary without a ticket or human gate; bundle related worthwhile minor findings when appropriate. No report file. Every accepted finding becomes a **leaf work item** via `lisa-tracker-write` (the vendor-neutral writer — it dispatches to the configured tracker and runs the validation gate; never call a vendor `*-write-*` skill directly):
67
+
68
+ Kane never files the work item itself. Even when it marks a failure as a confirmed product bug, run Lisa's marker-based duplicate search, apply the QA lens, and route the finding through `lisa-tracker-write` exactly as for every other controller.
69
+
70
+ | Finding | `issue_type` | `build_ready` |
71
+ |---|---|---|
72
+ | User-visible **bug** (broken behavior) | `Bug` | the `ready` flag (default `false`) |
73
+ | **Usability / UX / clarity issue** | `Improvement` | the `ready` flag (default `false`) |
74
+
75
+ Each finding is a flat leaf, so `build_ready` applies directly — pass it explicitly on every create.
76
+
77
+ **This skill is the named human-gate exception under `ready-role-filing`.** For accepted worthwhile work elsewhere in Lisa, a complete defect found during other work is filed with explicit `build_ready: true` so build-intake claims it next cycle. Exploratory QA is deliberately different, and that difference is ratified rather than drift: its findings are *candidate* defects and usability observations whose **product significance is a human call**, so auto-readying them would push judgment work into the build queue — precisely the failure the gate model exists to prevent. Its default `ready=false` is therefore an **explicit human-gate marker, never a bare omission**: every not-ready create passes `human_gate: "exploratory finding — product significance is a human product call"` alongside `build_ready: false`, and the writer stamps the auditable `[lisa-human-gate]` marker. An operator who wants a pass to feed the queue directly opts in with `ready=true`.
78
+
79
+ (The sibling `e2e-coverage-gaps` skills are the contrast: a missing automated test is not a product question, so they file `build_ready: true` by default.)
80
+
81
+ Each ticket MUST be a complete spec (the validator rejects thin tickets): a **three-audience description**; for a **bug**, exact reproduction steps, observed-vs-expected, the env / account / interface it occurred at, and evidence; for a **usability issue**, the observed friction, who it affects, **where**, and the proposed improvement; and **Gherkin acceptance criteria** for the fixed behavior.
82
+
83
+ ### Idempotency — don't spam duplicates
84
+
85
+ Re-running a pass must not refile the same finding. Before creating a ticket, search the tracker for a ticket carrying a stable marker `[lisa-exploratory-qa] <finding-key>` in its body (the `<finding-key>` is a stable slug of surface + symptom, e.g. `settings-modal/horizontal-overflow@tablet`). Per the `rejection-detection` rule's **Proposal rejection memory** section, that marker search MUST cover **open AND closed** tickets (with a body-enumeration fallback on search-index lag), and **match by the marker, never by title alone; for legacy unmarked issues, read the body and closing discussion to establish the semantic match.** Then split on how any prior ticket closed:
86
+
87
+ - **Open** ticket carrying the marker → reference/update it instead; do not create a second.
88
+ - **Closed as _completed_** → does **not** suppress. A recurrence after a fix is a genuine **regression**, so file the finding.
89
+ - **Closed as _not planned_** (GitHub `stateReason == "not_planned"`; the config-resolved won't-do/canceled equivalent on JIRA/Linear — never infer decline from a hardcoded state name) → a human **declined** this finding, so **suppress it**. Re-file only with evidence that **postdates the decline** and establishes a materially changed consequence, requirement, or risk addressing the recorded reason, carrying BOTH the machine token (`declined <date>; recurred <date> in <ref>`) and a human acknowledgment sentence (`You declined this on <date>. New evidence (<date>, <ref>) changes the consequence, requirement, or risk: <what changed and why the decline no longer applies>.`).
90
+
91
+ Every filed finding ticket MUST end with the `rejection-detection` **operator footer** as a visible prose line so the operator knows which close-reason silences it:
92
+
93
+ > To stop this from being raised again, close it as **Not planned**. Close it as **Completed** if it was fixed — a later recurrence may be re-filed as a regression.
94
+
95
+ ## Output
96
+
97
+ No report file. Emit a concise in-session summary:
98
+
99
+ - **Scope:** product type, target env + mutation level, persona(s) explored as, tool, build/version if visible, date.
100
+ - **First impression:** could a new user tell what the product is and what to do first?
101
+ - **Findings filed**, bucketed by type — each with its **created or referenced ticket ref** and **build-ready state**.
102
+ - **Observed but not filed:** anything noticed but intentionally not ticketed (including forbidden-mutation blocks), with why.
103
+
104
+ ## Run outcome
105
+
106
+ As the registered `exploratory-bugs` automation loop, this pass conforms to the
107
+ `automation-runbook-contract` rule: every invocation ends in **exactly one** of the six run outcomes
108
+ and records it, so a quiet run and a broken run are never mistaken for each other.
109
+
110
+ | This cycle's exit path | Run outcome |
111
+ |---|---|
112
+ | Findings filed — one or more `Bug` / `Improvement` tickets created or referenced (§6) | `candidate-proposed` |
113
+ | Clean pass — explored the personas and surfaces, nothing worth filing — **or** every candidate was suppressed by a prior decline (`rejection-detection` **Proposal rejection memory**): the summary MUST name the suppression count | `nothing-needed` |
114
+ | Tracker unconfigured — the §1 stop path; findings cannot be filed — **or** the open-and-closed rejection-memory marker search could not run (tracker unreachable / credentials revoked): a memory check that could not run is a broken loop, never a silent `nothing-needed` | `recovery-required` |
115
+ | The runbook's **Retirement condition** tripped — the trailing quiet window is empty AND this pass found nothing to file AND the project no longer ships an exploratory-qa surface — this row supersedes the `nothing-needed` row when it applies | `policy-obsolete` |
116
+ | A degradation that still let the pass explore (e.g. Kane unavailable, one persona unreachable) | the outcome it actually reached above, with the summary **leading with the degradation** — degradation never mints a seventh token |
117
+
118
+ Before invoking the run-record CLI, evaluate the **Retirement condition** first. If it applies,
119
+ select `policy-obsolete` as the sole outcome and do not record a prior `nothing-needed` result;
120
+ otherwise select the ordinary outcome from the table.
121
+
122
+ Record **exactly one** outcome per invocation through the run-record CLI, naming this loop's runbook
123
+ (the `--summary` is the operator-readable one-liner in the contract's exemplar voice — plain,
124
+ specific, actionable, e.g. `Explored 4 personas; nothing confusing to file.` — or, when a decline suppressed the only candidates, `Explored 4 personas; 2 candidates suppressed by a prior decline — nothing new to propose.` — for `nothing-needed`; and for a `recovery-required` from an unreadable decline check, `Tracker unreachable during the decline check — restore credentials; nothing was filed this run.`):
125
+
126
+ ```bash
127
+ node "${CLAUDE_PLUGIN_ROOT:-node_modules/@codyswann/lisa/plugins/lisa}/scripts/automation-run-record.mjs" \
128
+ --loop-id exploratory-bugs --outcome candidate-proposed \
129
+ --summary "Explored 4 personas; filed 3 findings from the checkout flow — awaiting your flip to ready." \
130
+ --runbook .lisa/automations/exploratory-bugs.runbook.md [--ref <ticket-url>]...
131
+ ```
132
+
133
+ The `:-` default in that command is load-bearing, not decoration. `CLAUDE_PLUGIN_ROOT` is **not
134
+ exported into an agent's Bash tool environment**, so the bare `"${CLAUDE_PLUGIN_ROOT}/scripts/…"`
135
+ form expands to an absolute `/scripts/…` and exits 1. The default names the installed package copy,
136
+ which resolves from the **consumer repository root** — which is where the recorder is actually
137
+ invoked. Never substitute a bare `plugins/lisa/scripts/…` or `plugins/src/base/scripts/…` path:
138
+ those are relative to the **Lisa package root**, not the repository you are standing in, and exit 1
139
+ from there. If recording still fails, **degrade, never abort** (per `automation-runbook-contract`):
140
+ note the recording failure in the run output and finish the cycle — a recording failure is a
141
+ degradation to report, never a reason to block the loop.
142
+
143
+ **Retirement evaluation (every run).** Evaluate this loop's runbook **Retirement condition** on
144
+ every run, exactly as the `automation-runbook-contract` rule's Retirement section defines it — this
145
+ skill conforms to that text and never restates or diverges from it. On top of the contract's two
146
+ conditions the runbook seeds a third **domain conjunct** — the project no longer ships an
147
+ exploratory-qa command surface to explore — which only tightens the test and never replaces it: a
148
+ quiet month on a product nobody broke is quality holding, not a reason to stop looking. Evaluate all
149
+ three. When all three hold, record `policy-obsolete` and file **exactly ONE** marker-deduped
150
+ teardown proposal through `lisa-tracker-write` (per `tracked-work` + `integration-access-layer`):
151
+
152
+ - **Marker** `<!-- [lisa-automation-retire] key=exploratory-bugs -->` plus a visible prose line;
153
+ matched on the marker, never the title; searched **open AND closed** per `rejection-detection`'s
154
+ **Proposal rejection memory**. Treat matches by close state: **open** suppresses another proposal;
155
+ **Not planned** suppresses another proposal unless new evidence postdates the rejection and materially changes the consequence, requirement, or risk that justified the decline;
156
+ **Completed** means the prior approved action happened, so a later recurrence may be re-filed.
157
+ When an existing proposal suppresses filing, **the run still records `policy-obsolete` and files
158
+ nothing** — the outcome describes this run, while the ticket is filed exactly once.
159
+ - **Labels** `status:blocked` + `human-needed`, carrying the contract's decision-ready packet. The
160
+ `human-needed` label marks the proposal human-owned: `lisa-repair-intake` recognizes it and never
161
+ re-dispatches it as stalled work.
162
+ - **Evidence** the date-filtered search result, this run's summary, **the loop's current cadence**
163
+ (the baseline an operator needs to choose a longer one), and a one-line summary of recent runs
164
+ read from `.lisa/automations/runs/exploratory-bugs.jsonl`. Fill the rest of the packet the same
165
+ way every time: *Work already attempted* is the searches this run ran, and *Risk of inaction* is
166
+ that the loop keeps consuming schedule slots and tokens for nothing.
167
+ - **How to answer** names the three operator responses: **approve** — run
168
+ `/lisa:tear-down-automations exploratory-bugs` and only that loop registration goes away;
169
+ **decline** — close the proposal as
170
+ **Not planned** (closing it as **Completed** leaves a later re-file open) and the loop simply
171
+ continues; **re-cadence** — pick a longer cadence off that evidence and re-register with
172
+ `/lisa:setup-automations` instead of tearing down.
173
+ - **Operator footer**, verbatim, as on every loop-filed proposal (`rejection-detection`):
174
+ > To stop this from being raised again, close it as **Not planned**. Close it as **Completed** if it was fixed — a later recurrence may be re-filed as a regression.
175
+
176
+ The loop **keeps running at its normal cadence** until a human acts, and never deletes its own
177
+ registration.
178
+
179
+ ## Quality bar
180
+
181
+ - Explore as a true first-time user — judge clarity, not whether you (who can read the code) can figure it out.
182
+ - Every ticket must stand alone for an implementer who was not in the session.
183
+ - Do not claim cleanup succeeded unless verified.
184
+ - File per the `ready` flag (default: backlog for human triage).
185
+ - Route automated-coverage gaps to `e2e-coverage-gaps`; preserve unrelated repo changes.
@@ -0,0 +1,45 @@
1
+ ---
2
+ name: lisa-fix-linter-error
3
+ description: This skill should be used when fixing all violations of one or more ESLint rules across the codebase. It runs the linter, groups violations by rule and file, generates a brief with fix strategies, and creates a plan with tasks to implement the fixes.
4
+ allowed-tools: ["Read", "Bash", "Glob", "Grep"]
5
+
6
+ ---
7
+
8
+ # Fix Linter Errors
9
+
10
+ Target rules: $ARGUMENTS
11
+
12
+ If no arguments provided, prompt the user for at least one lint rule name.
13
+
14
+ ## Step 1: Gather Requirements
15
+
16
+ 1. **Parse rules** from $ARGUMENTS (space-separated)
17
+ 2. **Run linter** to collect all violations:
18
+ ```bash
19
+ bun run lint 2>&1
20
+ ```
21
+ 3. **Group violations** by rule, then by file, noting:
22
+ - File path and line numbers
23
+ - Violation count per file
24
+ - Sample error messages
25
+
26
+ ## Step 2: Compile Brief and Delegate
27
+
28
+ Compile the gathered information into a structured brief:
29
+
30
+ ```
31
+ Fix ESLint violations for rules: $ARGUMENTS
32
+
33
+ Violations by rule:
34
+ - [rule-name-1]: X total violations across Y files
35
+ - [file]: N violations (lines: ...)
36
+ - ...
37
+ - [rule-name-2]: X total violations across Y files
38
+ - ...
39
+
40
+ Fix strategies: extract functions, early returns, apply formatting, add types
41
+
42
+ Verification: `bun run lint 2>&1 | grep -E "($ARGUMENTS)" | wc -l` → Expected: 0
43
+ ```
44
+
45
+ Invoke `/lisa:implement` with this brief to create the implementation plan.
@@ -0,0 +1,235 @@
1
+ ---
2
+ name: lisa-generate-claude-remote-build-script
3
+ description: "Generate the setup/build script (and env-var template) to paste into a Claude Code remote routine environment so this repo runs in the cloud. Runs /lisa:analyze-claude-remote to inventory needs, then writes an idempotent, detect-before-install bash script that installs the required CLIs/binaries and package manager for both Lisa and the host project, plus a commented environment-variable template (names only, never real secrets) and a list of custom domains to allowlist. The script is fast (fits the ~5-minute environment-cache budget), re-runnable, and cloud-proxy aware."
4
+ allowed-tools: ["Skill", "Bash", "Read", "Write", "Glob", "Grep"]
5
+ ---
6
+
7
+ # Generate Claude Remote Build Script: $ARGUMENTS
8
+
9
+ Produce the artifacts a user pastes into a **Claude Code remote routine environment** so this repo
10
+ runs in the cloud: a setup/build script that installs everything the environment needs, an
11
+ environment-variable template, a network-allowlist list, and the names-only
12
+ `.lisa/remote-environment.json` contract consumed by `lisa ui`.
13
+
14
+ ## Purpose
15
+
16
+ A routine's cloud environment lets you configure a **setup script** (runs once, cached) and
17
+ **environment variables**. This skill turns the read-only inventory from
18
+ `/lisa:analyze-claude-remote` into those concrete artifacts so the user doesn't hand-assemble them.
19
+
20
+ This skill ships in the base Lisa plugin and is distributed to every host project, so the generated
21
+ script must reflect **what this repo actually needs** — Lisa's startup hooks and configured
22
+ tracker/source, plus the host project's own package manager and tooling — not a hardcoded list.
23
+
24
+ ## Inputs
25
+
26
+ - Optional flags in `$ARGUMENTS`:
27
+ - `--out=<path>` — where to write the script. Default `scripts/claude-remote-setup.sh`.
28
+ - `--include-optional` — also install `OPTIONAL` (dormant-stack) tools. Default: required only.
29
+ - `--print` — print the script to stdout instead of writing a file.
30
+
31
+ ## Procedure
32
+
33
+ 1. **Inventory.** Invoke `/lisa:analyze-claude-remote --json` and parse its machine-readable
34
+ inventory block (`packageManager`, `tools`, `env`, `mcp`, `gaps`, `platform`,
35
+ `networkAccess`, `allowlistDomains`, `awsProfiles`). If the analysis cannot run, stop and report why — never
36
+ emit a script from guesses.
37
+
38
+ 2. **Compose the setup script** from the inventory. The script must be:
39
+ - **Idempotent & detect-before-install** — every install guarded by a `command -v <tool>` check
40
+ so re-runs are no-ops and already-present tools are skipped.
41
+ - **Fast** — fits the ~5-minute environment-cache budget; avoid heavyweight installs unless
42
+ `REQUIRED`. Long/optional installs (docker images, chromium, ruby) go in a clearly-marked
43
+ optional section gated by `--include-optional`.
44
+ - **PATH-correct** — export the package manager's bin dir (e.g. `$HOME/.bun/bin`) after install
45
+ so subsequent steps and the cached environment resolve it.
46
+ - **Cloud-proxy aware** — when the package manager is flagged `RISK` (bun), add a comment
47
+ documenting the known proxy package-fetch issue and, where safe, run the install with retries
48
+ so a transient proxy failure doesn't poison the cache. Do not silently swap package managers if
49
+ `engines` forbids it; surface the risk as a comment instead.
50
+ - **Non-fatal on optional tools** — `REQUIRED` tool failures should exit non-zero (so the env
51
+ build fails loudly); `OPTIONAL` tool failures should warn and continue.
52
+
53
+ 3. **Emit the environment-variable template.** Write a commented block listing every `env` entry
54
+ from the inventory grouped by integration, marked `REQUIRED`/`OPTIONAL` and `secret`/`plain`,
55
+ with the reason. **Never write real secret values** — only names and placeholders, because the
56
+ environment config is visible to anyone who can edit it. Entries flagged `providedBy: settings.json`
57
+ (the committed `.claude/settings.json` `env` flags, e.g. `CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS`) are
58
+ **already applied from the committed file** — list them under an `# Already provided by committed
59
+ .claude/settings.json — no UI entry needed` heading, not as values to set. The "set in the
60
+ environment UI" template is for **secrets only**. For every secret entry that carries
61
+ `acquireUrl`/`accessScope`/`headlessSubstrate` (the
62
+ active tracker/source credentials from the analysis's group 4a), render those as comment lines
63
+ directly above the name — `# Acquire: <url>` and `# Access: <scope>` — so the user knows exactly
64
+ where to get the token and what permissions it needs. Emit only the **env-var form** of the name
65
+ that the analysis reported (including any per-account suffixed form like `LINEAR_API_KEY_<slug>`);
66
+ never emit a keychain instruction — keychain does not exist in a cloud routine.
67
+ When the entry is `GH_TOKEN`, add a comment from `platform.githubProxy` clarifying that the token
68
+ is for `gh` CLI commands against the project/Lisa repos, not for raw git clone/fetch/push or
69
+ sibling repos reachable through the routine's GitHub proxy.
70
+ For OPTIONAL non-tracker MCP recovery entries discovered by
71
+ `/lisa:analyze-claude-remote`, preserve the same names-only behavior:
72
+ include `JAM_PAT`, `SONARQUBE_CLI_TOKEN` (+ `SONARQUBE_CLI_ORG`/`SONARQUBE_CLI_SERVER`), or
73
+ similar documented substrate env vars only as optional secrets, with their
74
+ acquire/scope comments when the analysis supplied them. Never invent values or promote dormant substrates to required.
75
+ When AWS entries are present, list only `LISA_AWS_BOOTSTRAP_JSON` as the
76
+ required secret and `LISA_REMOTE_AGENT=claude` as plain configuration. Never
77
+ emit standard `AWS_ACCESS_KEY_ID` variables and never recommend `aws sso login`.
78
+
79
+ 3a. **Emit substrate setup snippets.** When the inventory marks an MCP
80
+ `headlessUsable: true` through a documented substrate, render the matching
81
+ wiring guidance as commented, opt-in setup:
82
+ - CLI substrates: emit the detected install/login commands gated on the
83
+ optional env var. For Jam, this means `curl -fsSL https://native.jam.dev/install | bash`,
84
+ `export PATH="$HOME/.local/bin:$PATH"`, `printf '%s' "$JAM_PAT" | jam auth login --token`,
85
+ and `jam skills install`, all inside `[ -n "${JAM_PAT:-}" ] && ...` guards so missing
86
+ optional secrets do not fail the environment build.
87
+ - Container-backed MCP substrates (e.g. the official SonarQube MCP): the MCP
88
+ runs headless as-is in a cloud routine — Docker is preinstalled — so wire the
89
+ real MCP rather than substituting REST. Emit, guarded on the optional env
90
+ token, the vendor CLI install (`curl -o- https://raw.githubusercontent.com/SonarSource/sonarqube-cli/refs/heads/master/user-scripts/install.sh | bash`),
91
+ `sonar integrate <agent>`, and a `sonar run mcp`-image pre-pull so the first
92
+ run fits the ~5-min cache budget. Provide `SONARQUBE_CLI_TOKEN`
93
+ (+ `SONARQUBE_CLI_ORG`/`SONARQUBE_CLI_SERVER`); never emit `sonar auth login` (keychain
94
+ does not exist headless).
95
+ - REST-only substitute substrates: for a vendor whose MCP genuinely cannot run
96
+ headless, do not install an MCP — emit comments naming the REST host and env
97
+ var, and rely on the access skill or generated consumer to call the API.
98
+ - PAT-bearer MCP substrates: print a commented `.mcp.json` `headers` snippet from the
99
+ inventory's `mcpHeaders`. Use this only when the analysis explicitly says the same MCP
100
+ transport supports static-token auth. Do not print a Jam `.mcp.json` header snippet because
101
+ Jam's preferred headless substrate is its PAT-authenticated CLI.
102
+
103
+ 3b. **Install the shared AWS bootstrap.** When AWS is present, invoke
104
+ `/lisa:setup-remote-aws --platform=claude`. Reuse the resulting
105
+ `scripts/remote-agent-aws-setup.sh`; do not generate a second credential or
106
+ profile implementation. Add `bash scripts/remote-agent-aws-setup.sh` to the
107
+ generated cloud setup after required package installation.
108
+
109
+ 3c. **Write the project-aware console contract.** Write
110
+ `.lisa/remote-environment.json` from the same fresh inventory. Its `variables`
111
+ array must contain only entries that are `required: true` for this project and
112
+ its active integrations; omit optional, conditional, and dormant integrations.
113
+ Each entry contains `name`, `reason`, `source`, `secret`, and `required`, but
114
+ never a value. Set `startupScripts.claude` to the generated `--out` path. Do
115
+ not add AWS merely because Lisa ships AWS support: add
116
+ `LISA_AWS_BOOTSTRAP_JSON` only when the inventory reports active AWS usage.
117
+ Preserve any valid startup-script entries for other agents that already exist
118
+ in the manifest.
119
+
120
+ 4. **Emit the allowlist + gaps notice.** List any custom domains the setup or runtime reaches
121
+ (from `networkAccess.allowlistDomains`, falling back to legacy `allowlistDomains`) that the user
122
+ must add when the environment needs Custom network access. Do not include default Trusted domains
123
+ such as GitHub, npm/PyPI registries, or Docker Hub. Echo the `gaps` from the analysis
124
+ (auto-memory not synced, interactive-auth/stdio-MCP unavailable, etc.) and the
125
+ `platform.secretsVisibility` warning as a header comment so the user knows what the script
126
+ **cannot** fix.
127
+
128
+ 5. **Write and report.** Write the script to `--out` (default `scripts/claude-remote-setup.sh`),
129
+ `chmod +x` it, and write `.lisa/remote-environment.json`. Print both paths, a
130
+ one-line summary of what the script installs and which env vars to set, and
131
+ the exact next step (paste its contents — or a
132
+ `bash scripts/claude-remote-setup.sh` invocation — into the routine
133
+ environment's setup script, and add the env vars in the environment config).
134
+ When `--print` is passed, print the script to stdout and do not write either
135
+ file.
136
+
137
+ ## Generated script shape
138
+
139
+ The emitted script should follow this skeleton (populated from the live inventory — this is the
140
+ shape, not a fixed payload):
141
+
142
+ ```bash
143
+ #!/usr/bin/env bash
144
+ # Claude Code remote-routine setup for <repo>. Generated by /lisa:generate-claude-remote-build-script.
145
+ # Paste into your routine environment's setup script. Re-runnable and idempotent.
146
+ #
147
+ # GAPS this script cannot fix (configure separately):
148
+ # - <gaps from analysis, e.g. auto-memory is machine-local and not synced to cloud routines>
149
+ # Already provided by committed .claude/settings.json (applied automatically — no UI entry needed):
150
+ # - CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS, ENABLE_LSP_TOOL, BASH_DEFAULT_TIMEOUT_MS, BASH_MAX_TIMEOUT_MS
151
+ # SECRETS to set in the environment config (names only — set real values there, not here):
152
+ # # --- credentials for the active tracker/source (set in the environment UI) ---
153
+ # # Acquire: https://github.com/settings/personal-access-tokens
154
+ # # Access: fine-grained PAT on target repo: Contents R/W, Issues R/W, Pull requests R/W, Metadata R
155
+ # # Note: GH_TOKEN is for gh CLI only. Raw git uses Claude's connected-GitHub proxy/identity;
156
+ # # sibling repos reached only by raw git do not need to be in this token scope.
157
+ # - GH_TOKEN=<token> # REQUIRED, github is the active tracker+source
158
+ # - LISA_AWS_BOOTSTRAP_JSON=<complete SecretString> # REQUIRED for AWS
159
+ # PLAIN:
160
+ # - LISA_REMOTE_AGENT=claude
161
+ # NETWORK: set the environment to Custom and allowlist these non-default domains if not on Full:
162
+ # - <networkAccess.allowlistDomains, if any>
163
+ set -uo pipefail
164
+
165
+ need() { command -v "$1" >/dev/null 2>&1; }
166
+ require() { need "$1" || { echo "FATAL: required tool '$1' missing and install failed" >&2; exit 1; }; }
167
+
168
+ # --- package manager (REQUIRED) ---
169
+ # Resolve the PM from packageManager/engines/lockfiles — emit the manager the
170
+ # `packageManager` inventory field reported, NEVER a hardcoded bun. An npm-only
171
+ # project (engines.bun = "please-use-npm") must install with npm; emitting
172
+ # `bun install` would create a stray bun.lock and break it (the package-manager selection
173
+ # regression). Only install/PATH-export the manager actually selected below.
174
+ detect_package_manager() {
175
+ _field="" _forced="" _forbidden=""
176
+ if [ -f package.json ] && command -v jq >/dev/null 2>&1; then
177
+ _field=$(jq -r '(.packageManager // "") | sub("@.*$";"")' package.json 2>/dev/null)
178
+ _forced=$(jq -r 'first((.engines // {})[] | strings | capture("please-use-(?<pm>bun|npm|yarn|pnpm)")?.pm) // ""' package.json 2>/dev/null)
179
+ _forbidden=$(jq -r '[(.engines // {}) | to_entries[] | select(((.value|strings) // "") | test("please-use|do-not-use";"i")) | .key] | join(" ")' package.json 2>/dev/null)
180
+ fi
181
+ case "$_field" in bun | npm | yarn | pnpm) printf '%s\n' "$_field"; return 0 ;; esac
182
+ case "$_forced" in bun | npm | yarn | pnpm) printf '%s\n' "$_forced"; return 0 ;; esac
183
+ _pm_allowed() { case " $_forbidden " in *" $1 "*) return 1 ;; *) return 0 ;; esac; }
184
+ { [ -f bun.lockb ] || [ -f bun.lock ]; } && _pm_allowed bun && { printf 'bun\n'; return 0; }
185
+ [ -f pnpm-lock.yaml ] && _pm_allowed pnpm && { printf 'pnpm\n'; return 0; }
186
+ [ -f yarn.lock ] && _pm_allowed yarn && { printf 'yarn\n'; return 0; }
187
+ [ -f package-lock.json ] && _pm_allowed npm && { printf 'npm\n'; return 0; }
188
+ printf 'npm\n'
189
+ }
190
+ PM="$(detect_package_manager)"
191
+ if [ "$PM" = "bun" ] && ! need bun; then
192
+ curl -fsSL https://bun.sh/install | bash
193
+ export PATH="$HOME/.bun/bin:$PATH"
194
+ fi
195
+ # NOTE: bun has known proxy package-fetch issues in cloud sessions; retry to survive transient proxy errors.
196
+ for i in 1 2 3; do "$PM" install && break || sleep 5; done
197
+
198
+ # --- required CLIs ---
199
+ need gh || (sudo apt-get update -y && sudo apt-get install -y gh)
200
+ need jq || sudo apt-get install -y jq
201
+ require gh; require jq
202
+
203
+ # --- AWS assume-role profiles, when AWS inventory is active ---
204
+ bash scripts/remote-agent-aws-setup.sh
205
+
206
+ # --- optional, only with --include-optional ---
207
+ # (docker / ruby / chromium / etc., guarded)
208
+ ```
209
+
210
+ ## Confirmation policy
211
+
212
+ Writing the script file is the deliverable — do not ask whether to proceed. Default to writing
213
+ `scripts/claude-remote-setup.sh`, then report the path and next steps. The only legitimate reasons
214
+ to stop are: the analysis could not run, or the `--out` path is not writable.
215
+
216
+ ## Rules
217
+
218
+ - Always derive the script and `.lisa/remote-environment.json` from a fresh
219
+ `/lisa:analyze-claude-remote` run — never from a stale or assumed inventory.
220
+ - Never write real secret values into the script or template — names and placeholders only.
221
+ - For active tracker/source credentials, carry the analysis's `Acquire:` URL and `Access:` scope into
222
+ the template as comments, and emit only the env-var form of the name — never a keychain command.
223
+ - For `GH_TOKEN`, preserve the analysis's GitHub proxy split: it is for `gh` CLI commands only, and
224
+ raw git/cross-repo clone guidance must not expand the token scope to sibling repositories.
225
+ - Never emit an install for a tool the analysis did not surface, and never install `OPTIONAL` tools
226
+ unless `--include-optional` is set.
227
+ - When AWS is in the inventory, reuse `/lisa:setup-remote-aws` and its shared
228
+ setup script; never emit a second profile implementation or `aws sso login`.
229
+ - Prefer `networkAccess.allowlistDomains` over legacy top-level `allowlistDomains`; never emit
230
+ domains already covered by the routine environment's default Trusted list.
231
+ - Keep the script idempotent and detect-before-install so it is safe to re-run and cache.
232
+ - Preserve the inventory's `REQUIRED` vs `OPTIONAL` distinction in both fail-behavior (fatal vs
233
+ warn) and section placement.
234
+ - Surface, never hide, the `gaps` — a generated script must not imply it makes a repo fully
235
+ cloud-ready when known constraints remain.
@@ -0,0 +1,53 @@
1
+ ---
2
+ name: lisa-git-commit
3
+ description: This skill should be used when creating conventional commits for current changes. It groups related changes into logical commits, ensures all files are committed, and verifies the working directory is clean afterward.
4
+ allowed-tools: ["Bash"]
5
+ ---
6
+
7
+ # Git Commit Workflow
8
+
9
+ Create conventional commits for current changes. Optional hint: $ARGUMENTS
10
+
11
+ ## Workflow
12
+
13
+ ### See what has changed
14
+
15
+ !git status
16
+ !git diff --stat
17
+
18
+ ### Apply these requirements
19
+
20
+ 1. **Branch Check**: If on `dev`, `staging`, or `main`, create a feature branch named after the changes
21
+ 2. **Commit Strategy**: Group related changes into logical conventional commits (feat, fix, chore, docs, etc.). Every rule below that says "all" or "everything" excludes the local-only `.lisa/work-item-context.md` described in rule 3.
22
+ 3. **Commit ALL Files**: Every file must be assigned to a commit group - no file gets left out or unstaged. **Local-only exception:** never stage `.lisa/work-item-context.md`, or any other file the work-item context contract marks local-only, even when it is untracked and not ignored — it can quote credentials from tracker comments. Leave it untracked, and say in your report that it was left out and why.
23
+ 4. **Commit Creation**: Stage and commit each group with clear messages
24
+ 5. **Verification**: Run `git status` to confirm working directory is clean - must show "nothing to commit" (apart from a local-only file left untracked under rule 3)
25
+
26
+ ### Use conventional commit format
27
+
28
+ - `feat:` for new features
29
+ - `fix:` for bug fixes
30
+ - `docs:` for documentation
31
+ - `chore:` for maintenance
32
+ - `style:` for formatting
33
+ - `refactor:` for code restructuring
34
+ - `test:` for test additions
35
+
36
+ For hand-written messages, put prose and attribution text before one final,
37
+ unbroken block of `Key: value` trailers, including `Work-Item:` and
38
+ `Co-authored-by:`. Commit preparation repairs a misplaced work-item reference;
39
+ the original authored line may remain in the message.
40
+
41
+ ### Never
42
+
43
+ - use `--no-verify` flag
44
+ - attempt to bypass tests or quality checks
45
+ - skip tests or quality checks
46
+ - stash changes - ALL changes must be committed, except the local-only `.lisa/work-item-context.md`
47
+ - skip or exclude any files from the commit - even if they're unrelated (the local-only `.lisa/work-item-context.md` is the one exclusion, and it is mandatory)
48
+ - leave uncommitted changes in the working directory, other than the local-only `.lisa/work-item-context.md`
49
+ - ask the user which files to commit - commit everything except the local-only `.lisa/work-item-context.md`
50
+
51
+ ## Execute
52
+
53
+ Execute the workflow now.