@codyswann/lisa 2.247.3 → 2.250.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 (300) hide show
  1. package/README.md +5 -0
  2. package/all/copy-overwrite/scripts/lisa-work-item.mjs +1102 -0
  3. package/dist/cli/doctor-kane.d.ts +15 -0
  4. package/dist/cli/doctor-kane.d.ts.map +1 -0
  5. package/dist/cli/doctor-kane.js +28 -0
  6. package/dist/cli/doctor-kane.js.map +1 -0
  7. package/dist/cli/doctor.d.ts +3 -1
  8. package/dist/cli/doctor.d.ts.map +1 -1
  9. package/dist/cli/doctor.js +4 -0
  10. package/dist/cli/doctor.js.map +1 -1
  11. package/dist/cli/index.d.ts +7 -0
  12. package/dist/cli/index.d.ts.map +1 -1
  13. package/dist/cli/index.js +56 -8
  14. package/dist/cli/index.js.map +1 -1
  15. package/dist/cli/kane-cmd.d.ts +45 -0
  16. package/dist/cli/kane-cmd.d.ts.map +1 -0
  17. package/dist/cli/kane-cmd.js +91 -0
  18. package/dist/cli/kane-cmd.js.map +1 -0
  19. package/dist/cli/ui-lisa-version.d.ts.map +1 -1
  20. package/dist/cli/ui-lisa-version.js +1 -5
  21. package/dist/cli/ui-lisa-version.js.map +1 -1
  22. package/dist/core/kane-cli-parser.d.ts +9 -0
  23. package/dist/core/kane-cli-parser.d.ts.map +1 -0
  24. package/dist/core/kane-cli-parser.js +145 -0
  25. package/dist/core/kane-cli-parser.js.map +1 -0
  26. package/dist/core/kane-cli-process.d.ts +15 -0
  27. package/dist/core/kane-cli-process.d.ts.map +1 -0
  28. package/dist/core/kane-cli-process.js +77 -0
  29. package/dist/core/kane-cli-process.js.map +1 -0
  30. package/dist/core/kane-cli-types.d.ts +61 -0
  31. package/dist/core/kane-cli-types.d.ts.map +1 -0
  32. package/dist/core/kane-cli-types.js +3 -0
  33. package/dist/core/kane-cli-types.js.map +1 -0
  34. package/dist/core/kane-cli.d.ts +42 -0
  35. package/dist/core/kane-cli.d.ts.map +1 -0
  36. package/dist/core/kane-cli.js +253 -0
  37. package/dist/core/kane-cli.js.map +1 -0
  38. package/dist/core/kane-pilot-report.d.ts +21 -0
  39. package/dist/core/kane-pilot-report.d.ts.map +1 -0
  40. package/dist/core/kane-pilot-report.js +169 -0
  41. package/dist/core/kane-pilot-report.js.map +1 -0
  42. package/dist/core/kane-pilot-types.d.ts +60 -0
  43. package/dist/core/kane-pilot-types.d.ts.map +1 -0
  44. package/dist/core/kane-pilot-types.js +2 -0
  45. package/dist/core/kane-pilot-types.js.map +1 -0
  46. package/dist/core/kane-pilot.d.ts +25 -0
  47. package/dist/core/kane-pilot.d.ts.map +1 -0
  48. package/dist/core/kane-pilot.js +255 -0
  49. package/dist/core/kane-pilot.js.map +1 -0
  50. package/dist/core/project-config-kane.d.ts +27 -0
  51. package/dist/core/project-config-kane.d.ts.map +1 -0
  52. package/dist/core/project-config-kane.js +152 -0
  53. package/dist/core/project-config-kane.js.map +1 -0
  54. package/dist/core/project-config.d.ts +11 -0
  55. package/dist/core/project-config.d.ts.map +1 -1
  56. package/dist/core/project-config.js +7 -5
  57. package/dist/core/project-config.js.map +1 -1
  58. package/package.json +1 -1
  59. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  60. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  61. package/plugins/lisa/.codex-plugin/skills/lisa-codify-verification/SKILL.md +2 -0
  62. package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +7 -0
  63. package/plugins/lisa/.codex-plugin/skills/lisa-exploratory-qa/SKILL.md +3 -0
  64. package/plugins/lisa/.codex-plugin/skills/lisa-github-claim/SKILL.md +27 -0
  65. package/plugins/lisa/.codex-plugin/skills/lisa-github-claim/agents/openai.yaml +4 -0
  66. package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +50 -14
  67. package/plugins/lisa/.codex-plugin/skills/lisa-improve-harness/SKILL.md +487 -0
  68. package/plugins/lisa/.codex-plugin/skills/lisa-improve-harness/agents/openai.yaml +4 -0
  69. package/plugins/lisa/.codex-plugin/skills/lisa-jira-claim/SKILL.md +27 -0
  70. package/plugins/lisa/.codex-plugin/skills/lisa-jira-claim/agents/openai.yaml +4 -0
  71. package/plugins/lisa/.codex-plugin/skills/lisa-kane-browser/SKILL.md +80 -0
  72. package/plugins/lisa/.codex-plugin/skills/lisa-kane-browser/agents/openai.yaml +4 -0
  73. package/plugins/lisa/.codex-plugin/skills/lisa-linear-claim/SKILL.md +27 -0
  74. package/plugins/lisa/.codex-plugin/skills/lisa-linear-claim/agents/openai.yaml +4 -0
  75. package/plugins/lisa/.codex-plugin/skills/lisa-monitor/SKILL.md +2 -0
  76. package/plugins/lisa/.codex-plugin/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  77. package/plugins/lisa/.codex-plugin/skills/lisa-product-walkthrough/SKILL.md +2 -0
  78. package/plugins/lisa/.codex-plugin/skills/lisa-review-local/SKILL.md +11 -0
  79. package/plugins/lisa/.codex-plugin/skills/lisa-setup-kane/SKILL.md +96 -0
  80. package/plugins/lisa/.codex-plugin/skills/lisa-setup-kane/agents/openai.yaml +4 -0
  81. package/plugins/lisa/.codex-plugin/skills/lisa-track/SKILL.md +71 -0
  82. package/plugins/lisa/.codex-plugin/skills/lisa-track/agents/openai.yaml +4 -0
  83. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-claim/SKILL.md +35 -0
  84. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-claim/agents/openai.yaml +4 -0
  85. package/plugins/lisa/.codex-plugin/skills/lisa-use-the-product/SKILL.md +1 -1
  86. package/plugins/lisa/.codex-plugin/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  87. package/plugins/lisa/.codex-plugin/skills/lisa-verify/SKILL.md +1 -0
  88. package/plugins/lisa/agents/product-specialist.md +2 -0
  89. package/plugins/lisa/agents/quality-specialist.md +4 -1
  90. package/plugins/lisa/agents/verification-specialist.md +2 -2
  91. package/plugins/lisa/commands/improve-harness.md +6 -0
  92. package/plugins/lisa/commands/track.md +6 -0
  93. package/plugins/lisa/rules/eager/config-resolution.md +9 -0
  94. package/plugins/lisa/rules/eager/convergent-review.md +19 -0
  95. package/plugins/lisa/rules/eager/tracked-work.md +7 -0
  96. package/plugins/lisa/rules/eager/verification.md +1 -1
  97. package/plugins/lisa/rules/reference/config-resolution.md +26 -1
  98. package/plugins/lisa/rules/reference/convergent-review.md +69 -0
  99. package/plugins/lisa/rules/reference/tracked-work.md +26 -0
  100. package/plugins/lisa/rules/reference/verification.md +4 -2
  101. package/plugins/lisa/skills/lisa-codify-verification/SKILL.md +2 -0
  102. package/plugins/lisa/skills/lisa-doctor/SKILL.md +7 -0
  103. package/plugins/lisa/skills/lisa-exploratory-qa/SKILL.md +3 -0
  104. package/plugins/lisa/skills/lisa-github-claim/SKILL.md +27 -0
  105. package/plugins/lisa/skills/lisa-github-claim/agents/openai.yaml +4 -0
  106. package/plugins/lisa/skills/lisa-implement/SKILL.md +50 -14
  107. package/plugins/lisa/skills/lisa-improve-harness/SKILL.md +487 -0
  108. package/plugins/lisa/skills/lisa-improve-harness/agents/openai.yaml +4 -0
  109. package/plugins/lisa/skills/lisa-jira-claim/SKILL.md +27 -0
  110. package/plugins/lisa/skills/lisa-jira-claim/agents/openai.yaml +4 -0
  111. package/plugins/lisa/skills/lisa-kane-browser/SKILL.md +80 -0
  112. package/plugins/lisa/skills/lisa-kane-browser/agents/openai.yaml +4 -0
  113. package/plugins/lisa/skills/lisa-linear-claim/SKILL.md +27 -0
  114. package/plugins/lisa/skills/lisa-linear-claim/agents/openai.yaml +4 -0
  115. package/plugins/lisa/skills/lisa-monitor/SKILL.md +2 -0
  116. package/plugins/lisa/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  117. package/plugins/lisa/skills/lisa-product-walkthrough/SKILL.md +2 -0
  118. package/plugins/lisa/skills/lisa-review-local/SKILL.md +11 -0
  119. package/plugins/lisa/skills/lisa-setup-kane/SKILL.md +96 -0
  120. package/plugins/lisa/skills/lisa-setup-kane/agents/openai.yaml +4 -0
  121. package/plugins/lisa/skills/lisa-track/SKILL.md +71 -0
  122. package/plugins/lisa/skills/lisa-track/agents/openai.yaml +4 -0
  123. package/plugins/lisa/skills/lisa-tracker-claim/SKILL.md +35 -0
  124. package/plugins/lisa/skills/lisa-tracker-claim/agents/openai.yaml +4 -0
  125. package/plugins/lisa/skills/lisa-use-the-product/SKILL.md +1 -1
  126. package/plugins/lisa/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  127. package/plugins/lisa/skills/lisa-verify/SKILL.md +1 -0
  128. package/plugins/lisa-agy/agents/product-specialist.md +2 -0
  129. package/plugins/lisa-agy/agents/quality-specialist.md +4 -1
  130. package/plugins/lisa-agy/agents/verification-specialist.md +2 -2
  131. package/plugins/lisa-agy/commands/lisa/improve-harness.md +6 -0
  132. package/plugins/lisa-agy/commands/lisa/track.md +6 -0
  133. package/plugins/lisa-agy/plugin.json +1 -1
  134. package/plugins/lisa-agy/skills/lisa-codify-verification/SKILL.md +2 -0
  135. package/plugins/lisa-agy/skills/lisa-doctor/SKILL.md +7 -0
  136. package/plugins/lisa-agy/skills/lisa-exploratory-qa/SKILL.md +3 -0
  137. package/plugins/lisa-agy/skills/lisa-github-claim/SKILL.md +27 -0
  138. package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +50 -14
  139. package/plugins/lisa-agy/skills/lisa-improve-harness/SKILL.md +487 -0
  140. package/plugins/lisa-agy/skills/lisa-jira-claim/SKILL.md +27 -0
  141. package/plugins/lisa-agy/skills/lisa-kane-browser/SKILL.md +80 -0
  142. package/plugins/lisa-agy/skills/lisa-linear-claim/SKILL.md +27 -0
  143. package/plugins/lisa-agy/skills/lisa-monitor/SKILL.md +2 -0
  144. package/plugins/lisa-agy/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  145. package/plugins/lisa-agy/skills/lisa-product-walkthrough/SKILL.md +2 -0
  146. package/plugins/lisa-agy/skills/lisa-review-local/SKILL.md +11 -0
  147. package/plugins/lisa-agy/skills/lisa-setup-kane/SKILL.md +96 -0
  148. package/plugins/lisa-agy/skills/lisa-track/SKILL.md +71 -0
  149. package/plugins/lisa-agy/skills/lisa-tracker-claim/SKILL.md +35 -0
  150. package/plugins/lisa-agy/skills/lisa-use-the-product/SKILL.md +1 -1
  151. package/plugins/lisa-agy/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  152. package/plugins/lisa-agy/skills/lisa-verify/SKILL.md +1 -0
  153. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  154. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  155. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  156. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  157. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  158. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  159. package/plugins/lisa-copilot/agents/product-specialist.agent.md +2 -0
  160. package/plugins/lisa-copilot/agents/quality-specialist.agent.md +4 -1
  161. package/plugins/lisa-copilot/agents/verification-specialist.agent.md +2 -2
  162. package/plugins/lisa-copilot/commands/lisa/improve-harness.md +6 -0
  163. package/plugins/lisa-copilot/commands/lisa/track.md +6 -0
  164. package/plugins/lisa-copilot/rules/eager/config-resolution.md +9 -0
  165. package/plugins/lisa-copilot/rules/eager/convergent-review.md +19 -0
  166. package/plugins/lisa-copilot/rules/eager/tracked-work.md +7 -0
  167. package/plugins/lisa-copilot/rules/eager/verification.md +1 -1
  168. package/plugins/lisa-copilot/rules/reference/config-resolution.md +26 -1
  169. package/plugins/lisa-copilot/rules/reference/convergent-review.md +69 -0
  170. package/plugins/lisa-copilot/rules/reference/tracked-work.md +26 -0
  171. package/plugins/lisa-copilot/rules/reference/verification.md +4 -2
  172. package/plugins/lisa-copilot/skills/lisa-codify-verification/SKILL.md +2 -0
  173. package/plugins/lisa-copilot/skills/lisa-doctor/SKILL.md +7 -0
  174. package/plugins/lisa-copilot/skills/lisa-exploratory-qa/SKILL.md +3 -0
  175. package/plugins/lisa-copilot/skills/lisa-github-claim/SKILL.md +27 -0
  176. package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +50 -14
  177. package/plugins/lisa-copilot/skills/lisa-improve-harness/SKILL.md +487 -0
  178. package/plugins/lisa-copilot/skills/lisa-jira-claim/SKILL.md +27 -0
  179. package/plugins/lisa-copilot/skills/lisa-kane-browser/SKILL.md +80 -0
  180. package/plugins/lisa-copilot/skills/lisa-linear-claim/SKILL.md +27 -0
  181. package/plugins/lisa-copilot/skills/lisa-monitor/SKILL.md +2 -0
  182. package/plugins/lisa-copilot/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  183. package/plugins/lisa-copilot/skills/lisa-product-walkthrough/SKILL.md +2 -0
  184. package/plugins/lisa-copilot/skills/lisa-review-local/SKILL.md +11 -0
  185. package/plugins/lisa-copilot/skills/lisa-setup-kane/SKILL.md +96 -0
  186. package/plugins/lisa-copilot/skills/lisa-track/SKILL.md +71 -0
  187. package/plugins/lisa-copilot/skills/lisa-tracker-claim/SKILL.md +35 -0
  188. package/plugins/lisa-copilot/skills/lisa-use-the-product/SKILL.md +1 -1
  189. package/plugins/lisa-copilot/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  190. package/plugins/lisa-copilot/skills/lisa-verify/SKILL.md +1 -0
  191. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  192. package/plugins/lisa-cursor/agents/product-specialist.md +2 -0
  193. package/plugins/lisa-cursor/agents/quality-specialist.md +4 -1
  194. package/plugins/lisa-cursor/agents/verification-specialist.md +2 -2
  195. package/plugins/lisa-cursor/commands/lisa/improve-harness.md +6 -0
  196. package/plugins/lisa-cursor/commands/lisa/track.md +6 -0
  197. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +26 -1
  198. package/plugins/lisa-cursor/rules/config-resolution.mdc +9 -0
  199. package/plugins/lisa-cursor/rules/convergent-review-reference.mdc +74 -0
  200. package/plugins/lisa-cursor/rules/convergent-review.mdc +24 -0
  201. package/plugins/lisa-cursor/rules/tracked-work-reference.mdc +31 -0
  202. package/plugins/lisa-cursor/rules/tracked-work.mdc +12 -0
  203. package/plugins/lisa-cursor/rules/verification-reference.mdc +4 -2
  204. package/plugins/lisa-cursor/rules/verification.mdc +1 -1
  205. package/plugins/lisa-cursor/skills/lisa-codify-verification/SKILL.md +2 -0
  206. package/plugins/lisa-cursor/skills/lisa-doctor/SKILL.md +7 -0
  207. package/plugins/lisa-cursor/skills/lisa-exploratory-qa/SKILL.md +3 -0
  208. package/plugins/lisa-cursor/skills/lisa-github-claim/SKILL.md +27 -0
  209. package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +50 -14
  210. package/plugins/lisa-cursor/skills/lisa-improve-harness/SKILL.md +487 -0
  211. package/plugins/lisa-cursor/skills/lisa-jira-claim/SKILL.md +27 -0
  212. package/plugins/lisa-cursor/skills/lisa-kane-browser/SKILL.md +80 -0
  213. package/plugins/lisa-cursor/skills/lisa-linear-claim/SKILL.md +27 -0
  214. package/plugins/lisa-cursor/skills/lisa-monitor/SKILL.md +2 -0
  215. package/plugins/lisa-cursor/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  216. package/plugins/lisa-cursor/skills/lisa-product-walkthrough/SKILL.md +2 -0
  217. package/plugins/lisa-cursor/skills/lisa-review-local/SKILL.md +11 -0
  218. package/plugins/lisa-cursor/skills/lisa-setup-kane/SKILL.md +96 -0
  219. package/plugins/lisa-cursor/skills/lisa-track/SKILL.md +71 -0
  220. package/plugins/lisa-cursor/skills/lisa-tracker-claim/SKILL.md +35 -0
  221. package/plugins/lisa-cursor/skills/lisa-use-the-product/SKILL.md +1 -1
  222. package/plugins/lisa-cursor/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  223. package/plugins/lisa-cursor/skills/lisa-verify/SKILL.md +1 -0
  224. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  225. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  226. package/plugins/lisa-expo-agy/plugin.json +1 -1
  227. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  228. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  229. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  230. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  231. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  232. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  233. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  234. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  235. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  236. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  237. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  238. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  239. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  240. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  241. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  242. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  243. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  244. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  245. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  246. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  247. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  248. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  249. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  250. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  251. package/plugins/lisa-rails-agy/plugin.json +1 -1
  252. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  253. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  254. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  255. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  256. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  257. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  258. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  259. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  260. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  261. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  262. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  263. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  264. package/plugins/src/base/agents/product-specialist.md +2 -0
  265. package/plugins/src/base/agents/quality-specialist.md +4 -1
  266. package/plugins/src/base/agents/verification-specialist.md +2 -2
  267. package/plugins/src/base/commands/improve-harness.md +6 -0
  268. package/plugins/src/base/commands/track.md +6 -0
  269. package/plugins/src/base/rules/eager/config-resolution.md +9 -0
  270. package/plugins/src/base/rules/eager/convergent-review.md +19 -0
  271. package/plugins/src/base/rules/eager/tracked-work.md +7 -0
  272. package/plugins/src/base/rules/eager/verification.md +1 -1
  273. package/plugins/src/base/rules/reference/config-resolution.md +26 -1
  274. package/plugins/src/base/rules/reference/convergent-review.md +69 -0
  275. package/plugins/src/base/rules/reference/tracked-work.md +26 -0
  276. package/plugins/src/base/rules/reference/verification.md +4 -2
  277. package/plugins/src/base/skills/lisa-codify-verification/SKILL.md +2 -0
  278. package/plugins/src/base/skills/lisa-doctor/SKILL.md +7 -0
  279. package/plugins/src/base/skills/lisa-exploratory-qa/SKILL.md +3 -0
  280. package/plugins/src/base/skills/lisa-github-claim/SKILL.md +27 -0
  281. package/plugins/src/base/skills/lisa-implement/SKILL.md +50 -14
  282. package/plugins/src/base/skills/lisa-improve-harness/SKILL.md +487 -0
  283. package/plugins/src/base/skills/lisa-jira-claim/SKILL.md +27 -0
  284. package/plugins/src/base/skills/lisa-kane-browser/SKILL.md +80 -0
  285. package/plugins/src/base/skills/lisa-linear-claim/SKILL.md +27 -0
  286. package/plugins/src/base/skills/lisa-monitor/SKILL.md +2 -0
  287. package/plugins/src/base/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  288. package/plugins/src/base/skills/lisa-product-walkthrough/SKILL.md +2 -0
  289. package/plugins/src/base/skills/lisa-review-local/SKILL.md +11 -0
  290. package/plugins/src/base/skills/lisa-setup-kane/SKILL.md +96 -0
  291. package/plugins/src/base/skills/lisa-track/SKILL.md +71 -0
  292. package/plugins/src/base/skills/lisa-tracker-claim/SKILL.md +35 -0
  293. package/plugins/src/base/skills/lisa-use-the-product/SKILL.md +1 -1
  294. package/plugins/src/base/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  295. package/plugins/src/base/skills/lisa-verify/SKILL.md +1 -0
  296. package/rails/copy-overwrite/lefthook.yml +10 -0
  297. package/scripts/lisa-work-item.mjs +5 -0
  298. package/typescript/copy-contents/.husky/commit-msg +9 -23
  299. package/typescript/copy-contents/.husky/pre-push +10 -0
  300. package/typescript/copy-contents/.husky/prepare-commit-msg +15 -0
@@ -0,0 +1,152 @@
1
+ /** Validation contract for the optional Kane browser provider config. */
2
+ const PRODUCTION_ENVIRONMENTS = new Set(["prod", "production"]);
3
+ /**
4
+ * Detect ASCII control characters without a control-character regex.
5
+ * @param value - Candidate string
6
+ * @returns True when a control character is present
7
+ */
8
+ function containsControlCharacter(value) {
9
+ return Array.from(value).some(character => {
10
+ const codePoint = character.codePointAt(0) ?? 0;
11
+ return codePoint < 32 || codePoint === 127;
12
+ });
13
+ }
14
+ /**
15
+ * Validate an optional non-empty string.
16
+ * @param value - Untrusted field value
17
+ * @param source - Config source shown in errors
18
+ * @param field - Dotted field name
19
+ * @returns Valid string or undefined
20
+ */
21
+ function optionalString(value, source, field) {
22
+ if (value === undefined)
23
+ return undefined;
24
+ if (typeof value !== "string" ||
25
+ value.trim() !== value ||
26
+ value.length === 0 ||
27
+ containsControlCharacter(value)) {
28
+ throw new Error(`Invalid ${field} in ${source}: expected a non-empty string`);
29
+ }
30
+ return value;
31
+ }
32
+ /**
33
+ * Validate an optional boolean.
34
+ * @param value - Untrusted field value
35
+ * @param source - Config source shown in errors
36
+ * @param field - Dotted field name
37
+ * @returns Valid boolean or undefined
38
+ */
39
+ function optionalBoolean(value, source, field) {
40
+ if (value === undefined)
41
+ return undefined;
42
+ if (typeof value !== "boolean") {
43
+ throw new Error(`Invalid ${field} in ${source}: expected a boolean`);
44
+ }
45
+ return value;
46
+ }
47
+ /**
48
+ * Validate the non-production allow-list.
49
+ * @param value - Untrusted allow-list
50
+ * @param source - Config source shown in errors
51
+ * @returns Valid environment names or undefined
52
+ */
53
+ function allowedEnvironments(value, source) {
54
+ if (value === undefined)
55
+ return undefined;
56
+ if (!Array.isArray(value) || value.length === 0) {
57
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: expected a non-empty string array`);
58
+ }
59
+ const environments = value.map((entry, index) => optionalString(entry, source, `verification.browser.kane.allowedEnvironments[${String(index)}]`));
60
+ if (environments.some(environment => environment === undefined)) {
61
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: expected strings`);
62
+ }
63
+ const normalized = environments;
64
+ if (normalized.some(environment => PRODUCTION_ENVIRONMENTS.has(environment.toLowerCase()))) {
65
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: production is never permitted`);
66
+ }
67
+ if (new Set(normalized).size !== normalized.length) {
68
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: duplicate values are not allowed`);
69
+ }
70
+ return normalized;
71
+ }
72
+ /**
73
+ * Validate the bounded provider timeout.
74
+ * @param value - Untrusted timeout value
75
+ * @param source - Config source shown in errors
76
+ * @returns Valid seconds or undefined
77
+ */
78
+ function optionalTimeout(value, source) {
79
+ if (value === undefined)
80
+ return undefined;
81
+ if (!Number.isInteger(value) || Number(value) < 1 || Number(value) > 600) {
82
+ throw new Error(`Invalid verification.browser.kane.timeoutSeconds in ${source}: expected an integer from 1 to 600`);
83
+ }
84
+ return Number(value);
85
+ }
86
+ /**
87
+ * Require an exact semantic version when a version is present.
88
+ * @param version - Optional provider version
89
+ * @param source - Config source shown in errors
90
+ */
91
+ function assertExactVersion(version, source) {
92
+ if (version !== undefined && !/^\d+\.\d+\.\d+$/u.test(version)) {
93
+ throw new Error(`Invalid verification.browser.kane.version in ${source}: expected an exact semantic version`);
94
+ }
95
+ }
96
+ /**
97
+ * Validate the optional Kane provider block.
98
+ * @param value - Untrusted provider value
99
+ * @param source - Config source shown in errors
100
+ * @returns Valid provider config or undefined
101
+ */
102
+ function validateKaneConfig(value, source) {
103
+ if (value === undefined)
104
+ return undefined;
105
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
106
+ throw new Error(`Invalid verification.browser.kane in ${source}: expected an object`);
107
+ }
108
+ const input = value;
109
+ const enabled = optionalBoolean(input.enabled, source, "verification.browser.kane.enabled");
110
+ const cloudUploadApproved = optionalBoolean(input.cloudUploadApproved, source, "verification.browser.kane.cloudUploadApproved");
111
+ const version = optionalString(input.version, source, "verification.browser.kane.version");
112
+ const environments = allowedEnvironments(input.allowedEnvironments, source);
113
+ const projectId = optionalString(input.projectId, source, "verification.browser.kane.projectId");
114
+ const folderId = optionalString(input.folderId, source, "verification.browser.kane.folderId");
115
+ const timeoutSeconds = optionalTimeout(input.timeoutSeconds, source);
116
+ assertExactVersion(version, source);
117
+ return {
118
+ ...(enabled === undefined ? {} : { enabled }),
119
+ ...(version === undefined ? {} : { version }),
120
+ ...(cloudUploadApproved === undefined ? {} : { cloudUploadApproved }),
121
+ ...(environments === undefined
122
+ ? {}
123
+ : { allowedEnvironments: environments }),
124
+ ...(projectId === undefined ? {} : { projectId }),
125
+ ...(folderId === undefined ? {} : { folderId }),
126
+ ...(timeoutSeconds === undefined ? {} : { timeoutSeconds }),
127
+ };
128
+ }
129
+ /**
130
+ * Validate the optional verification tree.
131
+ * @param value - Untrusted verification value
132
+ * @param source - Config source shown in errors
133
+ * @returns Valid verification config or undefined
134
+ */
135
+ export function validateVerificationConfig(value, source) {
136
+ if (value === undefined)
137
+ return undefined;
138
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
139
+ throw new Error(`Invalid verification in ${source}: expected an object`);
140
+ }
141
+ const browser = value.browser;
142
+ if (browser === undefined)
143
+ return {};
144
+ if (browser === null ||
145
+ typeof browser !== "object" ||
146
+ Array.isArray(browser)) {
147
+ throw new Error(`Invalid verification.browser in ${source}: expected an object`);
148
+ }
149
+ const kane = validateKaneConfig(browser.kane, source);
150
+ return { browser: kane === undefined ? {} : { kane } };
151
+ }
152
+ //# sourceMappingURL=project-config-kane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config-kane.js","sourceRoot":"","sources":["../../src/core/project-config-kane.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { type Harness } from "./config.js";
2
+ import { type VerificationConfig } from "./project-config-kane.js";
3
+ export type { BrowserVerificationConfig, KaneBrowserConfig, VerificationConfig, } from "./project-config-kane.js";
2
4
  /** Filename of the per-project config, relative to the destination root */
3
5
  export declare const PROJECT_CONFIG_FILENAME = ".lisa.config.json";
4
6
  /** Default durable project-rules destination used by governance skills. */
@@ -36,6 +38,8 @@ export interface ProjectConfig {
36
38
  readonly projectRulesFile?: string;
37
39
  /** Optional overrides for the machine-managed learnings ledger. */
38
40
  readonly learnings?: LearningsConfig;
41
+ /** Optional empirical verification provider configuration. */
42
+ readonly verification?: VerificationConfig;
39
43
  }
40
44
  /**
41
45
  * Resolve the validated project-rules path from config or its default.
@@ -124,6 +128,13 @@ export declare function shouldPersistProjectConfig(params: {
124
128
  * @returns The effective harness to use for this run
125
129
  */
126
130
  export declare function resolveHarness(flagValue: Harness | undefined, projectConfig: ProjectConfig): Harness;
131
+ /**
132
+ * Type-guard validator for raw parsed config. Throws on invalid harness value.
133
+ * @param parsed - Raw value parsed from JSON (untrusted shape)
134
+ * @param configPath - Absolute path to the source file (used in error messages)
135
+ * @returns A typed ProjectConfig with only the keys we recognize
136
+ */
137
+ export declare function validateProjectConfig(parsed: unknown, configPath: string): ProjectConfig;
127
138
  /**
128
139
  * Narrow an unknown value to the Harness type
129
140
  * @param value - Untrusted value to test
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAgCF,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,GACpB,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAQV;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAQT;AA4MD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAK1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAYtE"}
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAgCF,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,GACpB,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAQV;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,GACjB,aAAa,CAoBf;AA+KD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAK1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAWtE"}
@@ -11,6 +11,7 @@ import * as fse from "fs-extra";
11
11
  import { readFile, writeFile } from "node:fs/promises";
12
12
  import * as path from "node:path";
13
13
  import { ACCEPTED_HARNESS_INPUTS, DEFAULT_HARNESS, HARNESS_ALIASES, HARNESS_VALUES, LEGACY_HARNESS_ALIASES, } from "./config.js";
14
+ import { validateVerificationConfig, } from "./project-config-kane.js";
14
15
  /** Filename of the per-project config, relative to the destination root */
15
16
  export const PROJECT_CONFIG_FILENAME = ".lisa.config.json";
16
17
  /** Default durable project-rules destination used by governance skills. */
@@ -203,7 +204,7 @@ export function resolveHarness(flagValue, projectConfig) {
203
204
  * @param configPath - Absolute path to the source file (used in error messages)
204
205
  * @returns A typed ProjectConfig with only the keys we recognize
205
206
  */
206
- function validateProjectConfig(parsed, configPath) {
207
+ export function validateProjectConfig(parsed, configPath) {
207
208
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
208
209
  throw new Error(`Invalid ${PROJECT_CONFIG_FILENAME} at ${configPath}: expected JSON object`);
209
210
  }
@@ -213,10 +214,12 @@ function validateProjectConfig(parsed, configPath) {
213
214
  ? undefined
214
215
  : validateProjectRulesFile(obj.projectRulesFile, configPath);
215
216
  const learnings = validateLearningsConfig(obj.learnings, configPath);
217
+ const verification = validateVerificationConfig(obj.verification, configPath);
216
218
  return {
217
219
  ...(harness === undefined ? {} : { harness }),
218
220
  ...(projectRulesFile === undefined ? {} : { projectRulesFile }),
219
221
  ...(learnings === undefined ? {} : { learnings }),
222
+ ...(verification === undefined ? {} : { verification }),
220
223
  };
221
224
  }
222
225
  /**
@@ -388,11 +391,10 @@ export async function detectLegacyHarnessMigration(destDir) {
388
391
  return undefined;
389
392
  }
390
393
  const raw = await readRawObject(configPath);
391
- const value = raw.harness;
392
- if (typeof value !== "string") {
394
+ if (typeof raw.harness !== "string") {
393
395
  return undefined;
394
396
  }
395
- const to = LEGACY_HARNESS_ALIASES[value];
396
- return to === undefined ? undefined : { from: value, to };
397
+ const to = LEGACY_HARNESS_ALIASES[raw.harness];
398
+ return to === undefined ? undefined : { from: raw.harness, to };
397
399
  }
398
400
  //# sourceMappingURL=project-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -102,7 +102,7 @@
102
102
  "form-data": ">=4.0.6"
103
103
  },
104
104
  "name": "@codyswann/lisa",
105
- "version": "2.247.3",
105
+ "version": "2.250.0",
106
106
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
107
107
  "main": "dist/index.js",
108
108
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.247.3",
3
+ "version": "2.250.0",
4
4
  "description": "Universal governance — agents, skills, commands, hooks, and rules for all projects",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.247.3",
3
+ "version": "2.250.0",
4
4
  "description": "Universal governance: agents, skills, commands, hooks, and rules for all projects.",
5
5
  "author": {
6
6
  "name": "Cody Swann"
@@ -51,6 +51,8 @@ Before creating anything new, find what the project already has. Use the Tool Di
51
51
 
52
52
  Do NOT install a new framework if one already exists for the verification type. Use what's there.
53
53
 
54
+ If the empirical proof came from Kane, consume its exact objective, observable assertions, URL, and local evidence pack as inputs. Do not commit Kane `_test.md` recordings, generated code, or auto-healed selectors as the authoritative regression. Encode the same behavior in the project's existing native runner under the deterministic rules below.
55
+
54
56
  ### 2. Map verification type → framework
55
57
 
56
58
  | Verification type | Preferred framework (use whichever the project already has) |
@@ -66,6 +66,13 @@ as applicable to the current repo:
66
66
  7. **Optional wiki delegation** — when a repo-local `wiki/` exists, either summarize the
67
67
  specialized `lisa-wiki-doctor` verdict or explicitly report that deeper wiki checks are
68
68
  available there. The base doctor stays narrower than full wiki migration enforcement.
69
+ 8. **Optional Kane browser provider** — when `verification.browser.kane.enabled` is true, run the
70
+ Lisa-owned readiness probe. Require explicit cloud-upload approval, the contract-tested exact
71
+ version, a non-production environment allow-list, local Chrome/Chromium, Test Manager
72
+ project/folder targeting, `whoami` authentication, and nonzero/observable credit readiness.
73
+ Report missing executable/browser, auth failure, wrong target, zero credits, and control-plane
74
+ failure separately. If Kane is not enabled, report an informational `OK`/not enabled rather than
75
+ probing or installing it.
69
76
 
70
77
  If a check family is not applicable to the current repo, report `SKIP` with the reason.
71
78
 
@@ -21,6 +21,7 @@ Experience the product the way a **brand-new end user** would: drive its real co
21
21
  ## 1. Set up
22
22
 
23
23
  - **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.
24
+ - 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.
24
25
  - **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.
25
26
  - Read the `ready` flag (default `false`).
26
27
 
@@ -62,6 +63,8 @@ Whether you may create/edit/delete — and as which account — is set by the `u
62
63
 
63
64
  No report file. Every 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):
64
65
 
66
+ 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.
67
+
65
68
  | Finding | `issue_type` | `build_ready` |
66
69
  |---|---|---|
67
70
  | User-visible **bug** (broken behavior) | `Bug` | the `ready` flag (default `false`) |
@@ -0,0 +1,27 @@
1
+ ---
2
+ name: lisa-github-claim
3
+ description: "Idempotently claims one live…"
4
+ allowed-tools: ["Bash", "Skill", "Read"]
5
+ ---
6
+
7
+ # Claim GitHub Issue: $ARGUMENTS
8
+
9
+ Claim exactly one canonical `org/repo#<number>` reference. This is the reusable direct-session counterpart of `lisa-github-build-intake` Phase 3b.
10
+
11
+ 1. Resolve merged `.github.org`, `.github.repo`, optional `.github.queueRepo`, and `github.labels.build` values from local-over-global config. Resolve current-repository identity independently using `repo-scope-split` / `config-resolution` (`.repo` -> `.github.repo` -> `git remote get-url origin` basename). The queue repository defaults to `<github.org>/<github.repo>`; it is only the tracker storage/scan target and never replaces current-repository identity. Resolve the ready and claimed roles from config (defaults `status:ready` and `status:in-progress`); do not hardcode lifecycle decisions.
12
+ 2. Require the ref's `org/repo` to equal the resolved queue repository. Invoke `lisa-github-read-issue <ref>` immediately before mutation. When the queue repository differs from the current repository, require exactly the current-repository scope (`repo:<current>`); reject an unlabeled issue, `repo:<other>`, or an ambiguous multi-repo leaf. Also reject a closed issue, an active blocker, any issue with open child work, or a childless Epic per `repo-scope-split` and `leaf-only-lifecycle`.
13
+ 3. Inspect the live build lifecycle labels:
14
+ - Already claimed, review, environment-done, or another configured later non-terminal role -> preserve it and set `claim_outcome: reused`.
15
+ - Ready or no build lifecycle label -> run `gh issue edit <number> --repo <org>/<repo>`, remove ready when present, and add claimed. This is the idempotency lock.
16
+ - Terminal label/state -> reject; completed work cannot be rebound as new work.
17
+ 4. If and only if the issue is unassigned, add `@me`; leave every existing assignee untouched.
18
+ 5. Post the stable marker comment once, deduped against all existing comments:
19
+
20
+ ```text
21
+ [lisa-tracker-claim] Claimed by Lisa. Starting implementation.
22
+ ```
23
+
24
+ 6. Invoke `lisa-github-read-issue <ref>` again. Success requires the issue to remain open, leaf/current-repo (including the explicit `repo:<current>` proof for an umbrella queue), and in claimed or a later non-terminal role. If the relabel or verification fails, return failure and do not authorize a binding.
25
+ 7. Return `tracker_provider: github`, canonical `work_item_ref: <org>/<repo>#<number>`, `claim_outcome: claimed|reused`, assignee outcome, and the post-write status evidence.
26
+
27
+ Never create an issue here. Never call GitHub for a configured Jira or Linear project.
@@ -0,0 +1,4 @@
1
+ display_name: "Github Claim"
2
+ short_description: "Idempotently claims one live…"
3
+ default_prompt:
4
+ - "Use $lisa-github-claim: Idempotently claims one live…."
@@ -34,18 +34,26 @@ Treat the first successful lead-spawn request (or, on the Codex fallback, the fi
34
34
 
35
35
  ## Resolve the input (first task assigned to the team)
36
36
 
37
- $ARGUMENTS is either a url to a ticket containing the request, a pointer to a file containing the request, or the request in text format.
37
+ $ARGUMENTS is either a URL/key for an existing work item, a pointer to a file containing the request, or the request in text format. Every form must resolve to exactly one live, claimed tracker leaf and a verified worktree binding before the lead may begin durable work.
38
38
 
39
39
  The team lead does NOT read the input directly. The first task on the team's plan is "resolve the input" — assigned to a bounded input-resolver teammate, which then:
40
40
 
41
- - If it's a ticket, calls `lisa-tracker-read` (preferred — vendor-agnostic; dispatches per `.lisa.config.json` `tracker`). **Mismatch guard**: if the ticket format doesn't match the configured tracker (e.g., a GitHub URL when `tracker` is `jira`), `tracker-read` stops and reports the error — never auto-translates vendors:
42
- - JIRA ticket → `lisa-tracker-read` → `lisa-jira-read-ticket`
43
- - GitHub Issue `lisa-tracker-read` `lisa-github-read-issue`
44
- - Linear identifier or project URL `lisa-tracker-read` `lisa-linear-read-issue`
45
- - Captures comments and metadata, not just the description.
46
- - If it's a file, reads the entire file without offset or limit.
47
- - If it's a plain-text request, uses the provided text verbatim as the resolved input.
48
- - Returns the resolved input to the team lead, who then proceeds to roster selection.
41
+ The input-resolver invokes `lisa-track $ARGUMENTS` and owns its complete resolve -> claim -> bind transaction:
42
+
43
+ - **Explicit ticket:** call `lisa-tracker-read` against the configured tracker and require a live open/unresolved current-project leaf. **Mismatch guard:** if the ticket format/project does not match the configured tracker (for example, a GitHub URL when `tracker` is `jira`), stop — never auto-translate vendors or trust pasted/stale ticket text. The read captures comments, graph, and metadata, not just the description.
44
+ - **Specification file:** read the entire file without offset or limit, preserve it as the resolved input, and follow the plain-text resolution path below.
45
+ - **Plain text or file contents:** search the configured project conservatively for open leaves describing the same outcome. Live-validate every candidate through `lisa-tracker-read`; reuse only exactly one high-confidence match. When there is no unique match (zero or ambiguous candidates), synthesize one complete single-repository leaf and invoke `lisa-tracker-write` exactly once with `build_ready: true`, then live-read its canonical returned ref. Never create a thin placeholder, hierarchy, or container.
46
+ - **Claim:** invoke `lisa-tracker-claim <canonical-ref>` and require the provider skill's post-read verified `claimed|reused` result. A failed or inaccessible claim blocks the flow.
47
+ - **Bind before durable work:** only after the verified claim, run:
48
+
49
+ ```bash
50
+ node scripts/lisa-work-item.mjs bind <canonical-ref>
51
+ ```
52
+
53
+ Require a successful readback of that worktree-local binding. On detached HEAD, `branch: null` is the expected pending binding; after branch creation the mandatory `attach-branch` step below must replace it before any commit. Tracker or binding failure stops the flow; never continue untracked.
54
+ - Return the full resolved work-item context plus `tracker_provider`, canonical `work_item_ref`, resolution outcome, claim outcome, and verified binding to the team lead, who then proceeds to roster selection.
55
+
56
+ The input resolver may perform these tracker and local-binding operations before the Roster Decision because they are the mandatory gate that establishes what work the team is allowed to do. No project source, documentation, plan artifact, branch, or task may be created or changed before this transaction succeeds. Read-only discussion/orientation outside an Implement flow remains exempt per the `tracked-work` rule.
49
57
 
50
58
  The input resolver is the only teammate that may be spawned before the Roster Decision exists. After it returns the resolved input, do not spawn any lifecycle, research, implementation, review, verification, or learning teammate until the Roster Decision has been recorded.
51
59
 
@@ -86,13 +94,14 @@ Using the general-purpose agent in Team Lead session, **determine the base branc
86
94
  - **Rebase the feature branch onto `origin/<base>` and resolve any merge conflicts BEFORE starting work.** If the conflicts cannot be resolved cleanly and safely, create a fix task for the agent team (with the conflicting file list and current merge state) and resolve it before implementation begins — never start work on stale or conflicted code.
87
95
  4. **The PR targets the resolved base branch** — carry it as `target_branch=<base>` into `lisa-git-submit-pr` (Verify flow). `git-submit-pr` already chooses a closing keyword when the base is the production/default branch and a non-closing reference for a non-terminal environment branch. For a bug fixed on a non-integration environment branch, the current flow is not done until the fix is merged and verified there, then forward cherry-picked down to the integration branch via a linked follow-up.
88
96
 
89
- When the request came from a tracker work item, preserve its native identifier for development linkage:
97
+ Every Implement run now has a tracker work item. Preserve its canonical identifier for development linkage unconditionally:
90
98
 
91
- - Capture `tracker_provider` and `work_item_ref` from the resolved input before creating or reusing a branch. Examples: `github` + `CodySwannGT/lisa#614`, `linear` + `ENG-123`, `jira` + `ENG-123`.
99
+ - Capture `tracker_provider` and `work_item_ref` from the tracked input before creating or reusing a branch. Examples: `github` + `CodySwannGT/lisa#614`, `linear` + `ENG-123`, `jira` + `ENG-123`. Missing linkage is a workflow failure, never an optional/no-ticket mode.
92
100
  - If a new branch is needed and the provider can link branches by identifier, include the identifier in the branch name before the human-readable slug. Linear and JIRA integrations commonly link from branch names; GitHub issue linkage is PR-body driven, but including the issue number in the branch name is still useful. Keep branch names URL-safe, for example `codex/ENG-123-add-checkout-copy` or `codex/614-add-checkout-copy`.
101
+ - After the feature branch exists, run `node scripts/lisa-work-item.mjs attach-branch` so the worktree-local binding records the actual branch without treating the branch name as authority.
93
102
  - Pass the work-item ref and target branch to `lisa-git-submit-pr` when opening or updating the PR, for example `work_item_ref=CodySwannGT/lisa#614 target_branch=<base resolved from the ticket's environment above>` (not hardcoded `main`). The PR workflow owns provider-specific body text and must decide whether to use a closing keyword or a non-closing reference.
94
103
  - After `lisa-git-submit-pr` returns a PR URL, ensure the reverse backlink is present on the source work item by running `lisa-tracker-sync <work_item_ref> pr-ready pr_url=<url> tracker_provider=<provider>`. The sync path must prefer native provider linkage and fall back to one managed `[lisa-pr-link]` comment when native linkage is unavailable or cannot be verified.
95
- - If the provider has no native branch or PR development-linkage surface, continue without linkage and mention that the provider was skipped.
104
+ - If the provider has no native branch or PR development-linkage surface, the managed `[lisa-pr-link]` fallback is required; never continue without proven ticket-side linkage.
96
105
 
97
106
  Using the general-purpose agent in Team Lead session, Determine which flow applies:
98
107
  1. Research -- needs a PRD (no specification exists)
@@ -185,6 +194,32 @@ Before marking a task complete, the implementing agent records concise MLD into
185
194
 
186
195
  Each task must have their learnings captured to the ledger by the learner subagent.
187
196
 
197
+ ## Implement valid suggestions
198
+
199
+ When review, CodeRabbit, local-review, product, quality, security, or specialist
200
+ feedback arrives, apply the `convergent-review` rule before changing code:
201
+
202
+ 1. Normalize each finding into severity, blocking yes/no, concrete failure
203
+ scenario, evidence, and proposed smallest fix.
204
+ 2. Treat a blocker with no concrete correctness, security, data-loss, or
205
+ contract-violation scenario as malformed. Reply with the missing-evidence
206
+ reason and handle it as non-blocking.
207
+ 3. Resolve each finding with one disposition:
208
+ - `fixed`: make the smallest code, test, docs, or generated-artifact change
209
+ that removes the failure scenario.
210
+ - `deferred`: record why the issue is real but non-blocking, and file or link
211
+ follow-up work when useful.
212
+ - `pushed-back`: cite the evidence, scope boundary, or repository rule that
213
+ refutes the finding.
214
+ 4. If a reviewer cannot refute a pushback with fresh evidence, the author's
215
+ disposition stands.
216
+ 5. After the suggestion-implementation task completes and required gates pass,
217
+ do not reopen review unless new evidence appears: a relevant new commit, a
218
+ failed gate, a newly cited failure scenario, or a scope change.
219
+ 6. If a blocking disagreement remains irreconcilable, stop the review loop:
220
+ move the work item to the configured blocked state, add `human-needed` when
221
+ the decision is human-only, and summarize both positions in plain language.
222
+
188
223
  Before shutting down the team, execute the Verify flow:
189
224
 
190
225
  1. Run quality gates: lint, typecheck, tests — all must pass. These are prerequisites, NOT verification.
@@ -214,12 +249,13 @@ Before shutting down the team, execute the Verify flow:
214
249
  4. Record Implement usage on the originating work artifact via `lisa-usage-accounting` so the work item (or other implementation-owned artifact) gains a direct `lisa-implement` usage entry in the canonical `## Lisa Usage` section. If the parent / child graph is already known, prefer `record_and_rollup` so ancestor totals refresh in the same write; otherwise still write the direct entry, and if runtime usage is unavailable, use `source: unavailable` with nullable token/cost fields instead of skipping the row.
215
250
  5. Commit ALL outstanding changes in logical batches on the branch (minus sensitive data/information) — not just changes made by the agent team. This includes pre-existing uncommitted changes that were on the branch before the plan started. Do NOT filter commits to only "task-related" files. If it shows up in git status, it gets committed (unless it contains secrets).
216
251
  6. Push the changes - if any pre-push hook blocks you, create a task for the agent team to fix the error/problem whether it was pre-existing or not
217
- 7. Open a pull request with auto-merge on via `lisa-git-submit-pr`, targeting the **base branch resolved from the ticket's environment** (`target_branch=<base>`, per the branch step above), and including the work-item ref when one exists so the PR can be linked natively to the source issue.
252
+ 7. Open a pull request with auto-merge on via `lisa-git-submit-pr`, targeting the **base branch resolved from the ticket's environment** (`target_branch=<base>`, per the branch step above), and including the mandatory work-item ref so the PR can be linked natively to the source issue.
218
253
  7a. Confirm two-way linkage before treating PR submission as complete: the PR body/title/branch must reference the work item, and the work item must have either a verified native PR link or a single managed `[lisa-pr-link]` fallback comment from `lisa-tracker-sync`.
219
254
  8. PR Watch Loop: Drive the PR to merge via the `drive-pr-to-merge` skill — the single source of truth for clearing every blocker (auto-merge with direct-merge fallback, `BEHIND` re-sync, conflict resolution, failing-check fixes, human + bot review-comment handling with thread resolution, stale `CHANGES_REQUESTED` dismissal, and post-merge ancestry verification). `git-submit-pr` already invokes it; if you reach this step with a PR already open, invoke `drive-pr-to-merge` directly with the PR number. For a large review backlog you may fan the code-fix work out to the agent team, but `drive-pr-to-merge` owns the loop and the terminal conditions — do not re-implement them.
220
- 9. Merge the PR, then refresh the ticket-side backlink with `lisa-tracker-sync <work_item_ref> pr-merged pr_url=<url> merge_sha=<sha> tracker_provider=<provider>` when a work item exists.
255
+ 9. Merge the PR, then refresh the ticket-side backlink with `lisa-tracker-sync <work_item_ref> pr-merged pr_url=<url> merge_sha=<sha> tracker_provider=<provider>`.
221
256
  10. Monitor the deploy action that triggers automatically from the successful merge
222
257
  11. If deploy fails, create a task for the agent team to fix the failure, open a new PR and then go back to step 7
223
258
  12. Remote verification: `verification-specialist` verifies in target environment (same checks as local verification, but on remote), and refreshes the verdict (step 2a) to reflect the remote result.
224
259
  13. `ops-specialist`: post-deploy health check, monitor for errors in first minutes
225
260
  14. If remote verification fails, create a task for the agent team to find out why it failed, fix it and return to step 5. **Bound this loop**: after a small number of full fix→deploy→reverify cycles without reaching a passing remote verdict (treat ~3 as the ceiling unless the work item states otherwise), stop retrying — file a build-ready fix ticket, write the verdict with `status: "blocked"` and the diagnosis, and move the work item to blocked rather than looping indefinitely. The completion gate releases on a `blocked` verdict, so the flow ends with a recorded outcome instead of a silent spin or a self-declared success.
261
+ 15. After true terminal completion — required merge/deploy/verification passed, usage/evidence and two-way PR linkage are recorded, and the work item is terminal — run `node scripts/lisa-work-item.mjs clear` and verify the worktree has no current binding. Do not clear on an interruption or blocked outcome; preserving the binding is what keeps resumed work attributable.