@codyswann/lisa 2.247.2 → 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 (304) 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-worker-epoch.d.ts +11 -0
  8. package/dist/cli/doctor-worker-epoch.d.ts.map +1 -0
  9. package/dist/cli/doctor-worker-epoch.js +234 -0
  10. package/dist/cli/doctor-worker-epoch.js.map +1 -0
  11. package/dist/cli/doctor.d.ts +3 -1
  12. package/dist/cli/doctor.d.ts.map +1 -1
  13. package/dist/cli/doctor.js +6 -0
  14. package/dist/cli/doctor.js.map +1 -1
  15. package/dist/cli/index.d.ts +7 -0
  16. package/dist/cli/index.d.ts.map +1 -1
  17. package/dist/cli/index.js +56 -8
  18. package/dist/cli/index.js.map +1 -1
  19. package/dist/cli/kane-cmd.d.ts +45 -0
  20. package/dist/cli/kane-cmd.d.ts.map +1 -0
  21. package/dist/cli/kane-cmd.js +91 -0
  22. package/dist/cli/kane-cmd.js.map +1 -0
  23. package/dist/cli/ui-lisa-version.d.ts.map +1 -1
  24. package/dist/cli/ui-lisa-version.js +1 -5
  25. package/dist/cli/ui-lisa-version.js.map +1 -1
  26. package/dist/core/kane-cli-parser.d.ts +9 -0
  27. package/dist/core/kane-cli-parser.d.ts.map +1 -0
  28. package/dist/core/kane-cli-parser.js +145 -0
  29. package/dist/core/kane-cli-parser.js.map +1 -0
  30. package/dist/core/kane-cli-process.d.ts +15 -0
  31. package/dist/core/kane-cli-process.d.ts.map +1 -0
  32. package/dist/core/kane-cli-process.js +77 -0
  33. package/dist/core/kane-cli-process.js.map +1 -0
  34. package/dist/core/kane-cli-types.d.ts +61 -0
  35. package/dist/core/kane-cli-types.d.ts.map +1 -0
  36. package/dist/core/kane-cli-types.js +3 -0
  37. package/dist/core/kane-cli-types.js.map +1 -0
  38. package/dist/core/kane-cli.d.ts +42 -0
  39. package/dist/core/kane-cli.d.ts.map +1 -0
  40. package/dist/core/kane-cli.js +253 -0
  41. package/dist/core/kane-cli.js.map +1 -0
  42. package/dist/core/kane-pilot-report.d.ts +21 -0
  43. package/dist/core/kane-pilot-report.d.ts.map +1 -0
  44. package/dist/core/kane-pilot-report.js +169 -0
  45. package/dist/core/kane-pilot-report.js.map +1 -0
  46. package/dist/core/kane-pilot-types.d.ts +60 -0
  47. package/dist/core/kane-pilot-types.d.ts.map +1 -0
  48. package/dist/core/kane-pilot-types.js +2 -0
  49. package/dist/core/kane-pilot-types.js.map +1 -0
  50. package/dist/core/kane-pilot.d.ts +25 -0
  51. package/dist/core/kane-pilot.d.ts.map +1 -0
  52. package/dist/core/kane-pilot.js +255 -0
  53. package/dist/core/kane-pilot.js.map +1 -0
  54. package/dist/core/project-config-kane.d.ts +27 -0
  55. package/dist/core/project-config-kane.d.ts.map +1 -0
  56. package/dist/core/project-config-kane.js +152 -0
  57. package/dist/core/project-config-kane.js.map +1 -0
  58. package/dist/core/project-config.d.ts +11 -0
  59. package/dist/core/project-config.d.ts.map +1 -1
  60. package/dist/core/project-config.js +7 -5
  61. package/dist/core/project-config.js.map +1 -1
  62. package/package.json +1 -1
  63. package/plugins/lisa/.claude-plugin/plugin.json +1 -1
  64. package/plugins/lisa/.codex-plugin/plugin.json +1 -1
  65. package/plugins/lisa/.codex-plugin/skills/lisa-codify-verification/SKILL.md +2 -0
  66. package/plugins/lisa/.codex-plugin/skills/lisa-doctor/SKILL.md +7 -0
  67. package/plugins/lisa/.codex-plugin/skills/lisa-exploratory-qa/SKILL.md +3 -0
  68. package/plugins/lisa/.codex-plugin/skills/lisa-github-claim/SKILL.md +27 -0
  69. package/plugins/lisa/.codex-plugin/skills/lisa-github-claim/agents/openai.yaml +4 -0
  70. package/plugins/lisa/.codex-plugin/skills/lisa-implement/SKILL.md +50 -14
  71. package/plugins/lisa/.codex-plugin/skills/lisa-improve-harness/SKILL.md +487 -0
  72. package/plugins/lisa/.codex-plugin/skills/lisa-improve-harness/agents/openai.yaml +4 -0
  73. package/plugins/lisa/.codex-plugin/skills/lisa-jira-claim/SKILL.md +27 -0
  74. package/plugins/lisa/.codex-plugin/skills/lisa-jira-claim/agents/openai.yaml +4 -0
  75. package/plugins/lisa/.codex-plugin/skills/lisa-kane-browser/SKILL.md +80 -0
  76. package/plugins/lisa/.codex-plugin/skills/lisa-kane-browser/agents/openai.yaml +4 -0
  77. package/plugins/lisa/.codex-plugin/skills/lisa-linear-claim/SKILL.md +27 -0
  78. package/plugins/lisa/.codex-plugin/skills/lisa-linear-claim/agents/openai.yaml +4 -0
  79. package/plugins/lisa/.codex-plugin/skills/lisa-monitor/SKILL.md +2 -0
  80. package/plugins/lisa/.codex-plugin/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  81. package/plugins/lisa/.codex-plugin/skills/lisa-product-walkthrough/SKILL.md +2 -0
  82. package/plugins/lisa/.codex-plugin/skills/lisa-review-local/SKILL.md +11 -0
  83. package/plugins/lisa/.codex-plugin/skills/lisa-setup-kane/SKILL.md +96 -0
  84. package/plugins/lisa/.codex-plugin/skills/lisa-setup-kane/agents/openai.yaml +4 -0
  85. package/plugins/lisa/.codex-plugin/skills/lisa-track/SKILL.md +71 -0
  86. package/plugins/lisa/.codex-plugin/skills/lisa-track/agents/openai.yaml +4 -0
  87. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-claim/SKILL.md +35 -0
  88. package/plugins/lisa/.codex-plugin/skills/lisa-tracker-claim/agents/openai.yaml +4 -0
  89. package/plugins/lisa/.codex-plugin/skills/lisa-use-the-product/SKILL.md +1 -1
  90. package/plugins/lisa/.codex-plugin/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  91. package/plugins/lisa/.codex-plugin/skills/lisa-verify/SKILL.md +1 -0
  92. package/plugins/lisa/agents/product-specialist.md +2 -0
  93. package/plugins/lisa/agents/quality-specialist.md +4 -1
  94. package/plugins/lisa/agents/verification-specialist.md +2 -2
  95. package/plugins/lisa/commands/improve-harness.md +6 -0
  96. package/plugins/lisa/commands/track.md +6 -0
  97. package/plugins/lisa/rules/eager/config-resolution.md +9 -0
  98. package/plugins/lisa/rules/eager/convergent-review.md +19 -0
  99. package/plugins/lisa/rules/eager/tracked-work.md +7 -0
  100. package/plugins/lisa/rules/eager/verification.md +1 -1
  101. package/plugins/lisa/rules/reference/config-resolution.md +26 -1
  102. package/plugins/lisa/rules/reference/convergent-review.md +69 -0
  103. package/plugins/lisa/rules/reference/tracked-work.md +26 -0
  104. package/plugins/lisa/rules/reference/verification.md +4 -2
  105. package/plugins/lisa/skills/lisa-codify-verification/SKILL.md +2 -0
  106. package/plugins/lisa/skills/lisa-doctor/SKILL.md +7 -0
  107. package/plugins/lisa/skills/lisa-exploratory-qa/SKILL.md +3 -0
  108. package/plugins/lisa/skills/lisa-github-claim/SKILL.md +27 -0
  109. package/plugins/lisa/skills/lisa-github-claim/agents/openai.yaml +4 -0
  110. package/plugins/lisa/skills/lisa-implement/SKILL.md +50 -14
  111. package/plugins/lisa/skills/lisa-improve-harness/SKILL.md +487 -0
  112. package/plugins/lisa/skills/lisa-improve-harness/agents/openai.yaml +4 -0
  113. package/plugins/lisa/skills/lisa-jira-claim/SKILL.md +27 -0
  114. package/plugins/lisa/skills/lisa-jira-claim/agents/openai.yaml +4 -0
  115. package/plugins/lisa/skills/lisa-kane-browser/SKILL.md +80 -0
  116. package/plugins/lisa/skills/lisa-kane-browser/agents/openai.yaml +4 -0
  117. package/plugins/lisa/skills/lisa-linear-claim/SKILL.md +27 -0
  118. package/plugins/lisa/skills/lisa-linear-claim/agents/openai.yaml +4 -0
  119. package/plugins/lisa/skills/lisa-monitor/SKILL.md +2 -0
  120. package/plugins/lisa/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  121. package/plugins/lisa/skills/lisa-product-walkthrough/SKILL.md +2 -0
  122. package/plugins/lisa/skills/lisa-review-local/SKILL.md +11 -0
  123. package/plugins/lisa/skills/lisa-setup-kane/SKILL.md +96 -0
  124. package/plugins/lisa/skills/lisa-setup-kane/agents/openai.yaml +4 -0
  125. package/plugins/lisa/skills/lisa-track/SKILL.md +71 -0
  126. package/plugins/lisa/skills/lisa-track/agents/openai.yaml +4 -0
  127. package/plugins/lisa/skills/lisa-tracker-claim/SKILL.md +35 -0
  128. package/plugins/lisa/skills/lisa-tracker-claim/agents/openai.yaml +4 -0
  129. package/plugins/lisa/skills/lisa-use-the-product/SKILL.md +1 -1
  130. package/plugins/lisa/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  131. package/plugins/lisa/skills/lisa-verify/SKILL.md +1 -0
  132. package/plugins/lisa-agy/agents/product-specialist.md +2 -0
  133. package/plugins/lisa-agy/agents/quality-specialist.md +4 -1
  134. package/plugins/lisa-agy/agents/verification-specialist.md +2 -2
  135. package/plugins/lisa-agy/commands/lisa/improve-harness.md +6 -0
  136. package/plugins/lisa-agy/commands/lisa/track.md +6 -0
  137. package/plugins/lisa-agy/plugin.json +1 -1
  138. package/plugins/lisa-agy/skills/lisa-codify-verification/SKILL.md +2 -0
  139. package/plugins/lisa-agy/skills/lisa-doctor/SKILL.md +7 -0
  140. package/plugins/lisa-agy/skills/lisa-exploratory-qa/SKILL.md +3 -0
  141. package/plugins/lisa-agy/skills/lisa-github-claim/SKILL.md +27 -0
  142. package/plugins/lisa-agy/skills/lisa-implement/SKILL.md +50 -14
  143. package/plugins/lisa-agy/skills/lisa-improve-harness/SKILL.md +487 -0
  144. package/plugins/lisa-agy/skills/lisa-jira-claim/SKILL.md +27 -0
  145. package/plugins/lisa-agy/skills/lisa-kane-browser/SKILL.md +80 -0
  146. package/plugins/lisa-agy/skills/lisa-linear-claim/SKILL.md +27 -0
  147. package/plugins/lisa-agy/skills/lisa-monitor/SKILL.md +2 -0
  148. package/plugins/lisa-agy/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  149. package/plugins/lisa-agy/skills/lisa-product-walkthrough/SKILL.md +2 -0
  150. package/plugins/lisa-agy/skills/lisa-review-local/SKILL.md +11 -0
  151. package/plugins/lisa-agy/skills/lisa-setup-kane/SKILL.md +96 -0
  152. package/plugins/lisa-agy/skills/lisa-track/SKILL.md +71 -0
  153. package/plugins/lisa-agy/skills/lisa-tracker-claim/SKILL.md +35 -0
  154. package/plugins/lisa-agy/skills/lisa-use-the-product/SKILL.md +1 -1
  155. package/plugins/lisa-agy/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  156. package/plugins/lisa-agy/skills/lisa-verify/SKILL.md +1 -0
  157. package/plugins/lisa-cdk/.claude-plugin/plugin.json +1 -1
  158. package/plugins/lisa-cdk/.codex-plugin/plugin.json +1 -1
  159. package/plugins/lisa-cdk-agy/plugin.json +1 -1
  160. package/plugins/lisa-cdk-copilot/.claude-plugin/plugin.json +1 -1
  161. package/plugins/lisa-cdk-cursor/.claude-plugin/plugin.json +1 -1
  162. package/plugins/lisa-copilot/.claude-plugin/plugin.json +1 -1
  163. package/plugins/lisa-copilot/agents/product-specialist.agent.md +2 -0
  164. package/plugins/lisa-copilot/agents/quality-specialist.agent.md +4 -1
  165. package/plugins/lisa-copilot/agents/verification-specialist.agent.md +2 -2
  166. package/plugins/lisa-copilot/commands/lisa/improve-harness.md +6 -0
  167. package/plugins/lisa-copilot/commands/lisa/track.md +6 -0
  168. package/plugins/lisa-copilot/rules/eager/config-resolution.md +9 -0
  169. package/plugins/lisa-copilot/rules/eager/convergent-review.md +19 -0
  170. package/plugins/lisa-copilot/rules/eager/tracked-work.md +7 -0
  171. package/plugins/lisa-copilot/rules/eager/verification.md +1 -1
  172. package/plugins/lisa-copilot/rules/reference/config-resolution.md +26 -1
  173. package/plugins/lisa-copilot/rules/reference/convergent-review.md +69 -0
  174. package/plugins/lisa-copilot/rules/reference/tracked-work.md +26 -0
  175. package/plugins/lisa-copilot/rules/reference/verification.md +4 -2
  176. package/plugins/lisa-copilot/skills/lisa-codify-verification/SKILL.md +2 -0
  177. package/plugins/lisa-copilot/skills/lisa-doctor/SKILL.md +7 -0
  178. package/plugins/lisa-copilot/skills/lisa-exploratory-qa/SKILL.md +3 -0
  179. package/plugins/lisa-copilot/skills/lisa-github-claim/SKILL.md +27 -0
  180. package/plugins/lisa-copilot/skills/lisa-implement/SKILL.md +50 -14
  181. package/plugins/lisa-copilot/skills/lisa-improve-harness/SKILL.md +487 -0
  182. package/plugins/lisa-copilot/skills/lisa-jira-claim/SKILL.md +27 -0
  183. package/plugins/lisa-copilot/skills/lisa-kane-browser/SKILL.md +80 -0
  184. package/plugins/lisa-copilot/skills/lisa-linear-claim/SKILL.md +27 -0
  185. package/plugins/lisa-copilot/skills/lisa-monitor/SKILL.md +2 -0
  186. package/plugins/lisa-copilot/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  187. package/plugins/lisa-copilot/skills/lisa-product-walkthrough/SKILL.md +2 -0
  188. package/plugins/lisa-copilot/skills/lisa-review-local/SKILL.md +11 -0
  189. package/plugins/lisa-copilot/skills/lisa-setup-kane/SKILL.md +96 -0
  190. package/plugins/lisa-copilot/skills/lisa-track/SKILL.md +71 -0
  191. package/plugins/lisa-copilot/skills/lisa-tracker-claim/SKILL.md +35 -0
  192. package/plugins/lisa-copilot/skills/lisa-use-the-product/SKILL.md +1 -1
  193. package/plugins/lisa-copilot/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  194. package/plugins/lisa-copilot/skills/lisa-verify/SKILL.md +1 -0
  195. package/plugins/lisa-cursor/.claude-plugin/plugin.json +1 -1
  196. package/plugins/lisa-cursor/agents/product-specialist.md +2 -0
  197. package/plugins/lisa-cursor/agents/quality-specialist.md +4 -1
  198. package/plugins/lisa-cursor/agents/verification-specialist.md +2 -2
  199. package/plugins/lisa-cursor/commands/lisa/improve-harness.md +6 -0
  200. package/plugins/lisa-cursor/commands/lisa/track.md +6 -0
  201. package/plugins/lisa-cursor/rules/config-resolution-reference.mdc +26 -1
  202. package/plugins/lisa-cursor/rules/config-resolution.mdc +9 -0
  203. package/plugins/lisa-cursor/rules/convergent-review-reference.mdc +74 -0
  204. package/plugins/lisa-cursor/rules/convergent-review.mdc +24 -0
  205. package/plugins/lisa-cursor/rules/tracked-work-reference.mdc +31 -0
  206. package/plugins/lisa-cursor/rules/tracked-work.mdc +12 -0
  207. package/plugins/lisa-cursor/rules/verification-reference.mdc +4 -2
  208. package/plugins/lisa-cursor/rules/verification.mdc +1 -1
  209. package/plugins/lisa-cursor/skills/lisa-codify-verification/SKILL.md +2 -0
  210. package/plugins/lisa-cursor/skills/lisa-doctor/SKILL.md +7 -0
  211. package/plugins/lisa-cursor/skills/lisa-exploratory-qa/SKILL.md +3 -0
  212. package/plugins/lisa-cursor/skills/lisa-github-claim/SKILL.md +27 -0
  213. package/plugins/lisa-cursor/skills/lisa-implement/SKILL.md +50 -14
  214. package/plugins/lisa-cursor/skills/lisa-improve-harness/SKILL.md +487 -0
  215. package/plugins/lisa-cursor/skills/lisa-jira-claim/SKILL.md +27 -0
  216. package/plugins/lisa-cursor/skills/lisa-kane-browser/SKILL.md +80 -0
  217. package/plugins/lisa-cursor/skills/lisa-linear-claim/SKILL.md +27 -0
  218. package/plugins/lisa-cursor/skills/lisa-monitor/SKILL.md +2 -0
  219. package/plugins/lisa-cursor/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  220. package/plugins/lisa-cursor/skills/lisa-product-walkthrough/SKILL.md +2 -0
  221. package/plugins/lisa-cursor/skills/lisa-review-local/SKILL.md +11 -0
  222. package/plugins/lisa-cursor/skills/lisa-setup-kane/SKILL.md +96 -0
  223. package/plugins/lisa-cursor/skills/lisa-track/SKILL.md +71 -0
  224. package/plugins/lisa-cursor/skills/lisa-tracker-claim/SKILL.md +35 -0
  225. package/plugins/lisa-cursor/skills/lisa-use-the-product/SKILL.md +1 -1
  226. package/plugins/lisa-cursor/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  227. package/plugins/lisa-cursor/skills/lisa-verify/SKILL.md +1 -0
  228. package/plugins/lisa-expo/.claude-plugin/plugin.json +1 -1
  229. package/plugins/lisa-expo/.codex-plugin/plugin.json +1 -1
  230. package/plugins/lisa-expo-agy/plugin.json +1 -1
  231. package/plugins/lisa-expo-copilot/.claude-plugin/plugin.json +1 -1
  232. package/plugins/lisa-expo-cursor/.claude-plugin/plugin.json +1 -1
  233. package/plugins/lisa-harper-fabric/.claude-plugin/plugin.json +1 -1
  234. package/plugins/lisa-harper-fabric/.codex-plugin/plugin.json +1 -1
  235. package/plugins/lisa-harper-fabric-agy/plugin.json +1 -1
  236. package/plugins/lisa-harper-fabric-copilot/.claude-plugin/plugin.json +1 -1
  237. package/plugins/lisa-harper-fabric-cursor/.claude-plugin/plugin.json +1 -1
  238. package/plugins/lisa-nestjs/.claude-plugin/plugin.json +1 -1
  239. package/plugins/lisa-nestjs/.codex-plugin/plugin.json +1 -1
  240. package/plugins/lisa-nestjs-agy/plugin.json +1 -1
  241. package/plugins/lisa-nestjs-copilot/.claude-plugin/plugin.json +1 -1
  242. package/plugins/lisa-nestjs-cursor/.claude-plugin/plugin.json +1 -1
  243. package/plugins/lisa-openclaw/.claude-plugin/plugin.json +1 -1
  244. package/plugins/lisa-openclaw/.codex-plugin/plugin.json +1 -1
  245. package/plugins/lisa-openclaw-agy/plugin.json +1 -1
  246. package/plugins/lisa-openclaw-copilot/.claude-plugin/plugin.json +1 -1
  247. package/plugins/lisa-openclaw-cursor/.claude-plugin/plugin.json +1 -1
  248. package/plugins/lisa-phaser/.claude-plugin/plugin.json +1 -1
  249. package/plugins/lisa-phaser/.codex-plugin/plugin.json +1 -1
  250. package/plugins/lisa-phaser-agy/plugin.json +1 -1
  251. package/plugins/lisa-phaser-copilot/.claude-plugin/plugin.json +1 -1
  252. package/plugins/lisa-phaser-cursor/.claude-plugin/plugin.json +1 -1
  253. package/plugins/lisa-rails/.claude-plugin/plugin.json +1 -1
  254. package/plugins/lisa-rails/.codex-plugin/plugin.json +1 -1
  255. package/plugins/lisa-rails-agy/plugin.json +1 -1
  256. package/plugins/lisa-rails-copilot/.claude-plugin/plugin.json +1 -1
  257. package/plugins/lisa-rails-cursor/.claude-plugin/plugin.json +1 -1
  258. package/plugins/lisa-typescript/.claude-plugin/plugin.json +1 -1
  259. package/plugins/lisa-typescript/.codex-plugin/plugin.json +1 -1
  260. package/plugins/lisa-typescript-agy/plugin.json +1 -1
  261. package/plugins/lisa-typescript-copilot/.claude-plugin/plugin.json +1 -1
  262. package/plugins/lisa-typescript-cursor/.claude-plugin/plugin.json +1 -1
  263. package/plugins/lisa-wiki/.claude-plugin/plugin.json +1 -1
  264. package/plugins/lisa-wiki/.codex-plugin/plugin.json +1 -1
  265. package/plugins/lisa-wiki-agy/plugin.json +1 -1
  266. package/plugins/lisa-wiki-copilot/.claude-plugin/plugin.json +1 -1
  267. package/plugins/lisa-wiki-cursor/.claude-plugin/plugin.json +1 -1
  268. package/plugins/src/base/agents/product-specialist.md +2 -0
  269. package/plugins/src/base/agents/quality-specialist.md +4 -1
  270. package/plugins/src/base/agents/verification-specialist.md +2 -2
  271. package/plugins/src/base/commands/improve-harness.md +6 -0
  272. package/plugins/src/base/commands/track.md +6 -0
  273. package/plugins/src/base/rules/eager/config-resolution.md +9 -0
  274. package/plugins/src/base/rules/eager/convergent-review.md +19 -0
  275. package/plugins/src/base/rules/eager/tracked-work.md +7 -0
  276. package/plugins/src/base/rules/eager/verification.md +1 -1
  277. package/plugins/src/base/rules/reference/config-resolution.md +26 -1
  278. package/plugins/src/base/rules/reference/convergent-review.md +69 -0
  279. package/plugins/src/base/rules/reference/tracked-work.md +26 -0
  280. package/plugins/src/base/rules/reference/verification.md +4 -2
  281. package/plugins/src/base/skills/lisa-codify-verification/SKILL.md +2 -0
  282. package/plugins/src/base/skills/lisa-doctor/SKILL.md +7 -0
  283. package/plugins/src/base/skills/lisa-exploratory-qa/SKILL.md +3 -0
  284. package/plugins/src/base/skills/lisa-github-claim/SKILL.md +27 -0
  285. package/plugins/src/base/skills/lisa-implement/SKILL.md +50 -14
  286. package/plugins/src/base/skills/lisa-improve-harness/SKILL.md +487 -0
  287. package/plugins/src/base/skills/lisa-jira-claim/SKILL.md +27 -0
  288. package/plugins/src/base/skills/lisa-kane-browser/SKILL.md +80 -0
  289. package/plugins/src/base/skills/lisa-linear-claim/SKILL.md +27 -0
  290. package/plugins/src/base/skills/lisa-monitor/SKILL.md +2 -0
  291. package/plugins/src/base/skills/lisa-parity-coderabbit/SKILL.md +10 -0
  292. package/plugins/src/base/skills/lisa-product-walkthrough/SKILL.md +2 -0
  293. package/plugins/src/base/skills/lisa-review-local/SKILL.md +11 -0
  294. package/plugins/src/base/skills/lisa-setup-kane/SKILL.md +96 -0
  295. package/plugins/src/base/skills/lisa-track/SKILL.md +71 -0
  296. package/plugins/src/base/skills/lisa-tracker-claim/SKILL.md +35 -0
  297. package/plugins/src/base/skills/lisa-use-the-product/SKILL.md +1 -1
  298. package/plugins/src/base/skills/lisa-verification-lifecycle/SKILL.md +3 -1
  299. package/plugins/src/base/skills/lisa-verify/SKILL.md +1 -0
  300. package/rails/copy-overwrite/lefthook.yml +10 -0
  301. package/scripts/lisa-work-item.mjs +5 -0
  302. package/typescript/copy-contents/.husky/commit-msg +9 -23
  303. package/typescript/copy-contents/.husky/pre-push +10 -0
  304. package/typescript/copy-contents/.husky/prepare-commit-msg +15 -0
@@ -122,6 +122,8 @@ Execute the **Monitor** sub-flow as defined in the `intent-routing` rule (loaded
122
122
 
123
123
  The **Rails** ops-specialist composes a different subset (`ops-run-local`, `ops-deploy`, `ops-check-logs`, `ops-verify-jobs`, `ops-verify-telemetry` — X-Ray/CloudWatch traces and metrics via `ops-verify-telemetry`). When no `ops-specialist` overlay is present (e.g. NestJS, CDK, or a generic TypeScript repo), fall back to **stack-agnostic base probing** — read manifests/config to discover what's wired, then probe live sources directly (Sentry CLI/REST, `aws logs` / `aws cloudwatch` / `aws xray`, the Playwright MCP for client-side console/network), exactly as the `observability-audit` "read-then-probe" detection prescribes. The agent decides which subset to run based on the env, the repo profile, and any extra context.
124
124
 
125
+ For a configured non-production DOM environment with mutation policy `full`, `ops-browser-uat` or the stack-agnostic fallback may invoke `lisa-kane-browser` after `lisa kane probe` succeeds. Use the normalized outcome and local evidence pack; a Kane tool/auth/upload/schema failure is `PRESENT (unverified)` or a tooling warning, never an application anomaly. Under `--report-only`, Kane remains report-only too and cannot file tickets directly.
126
+
125
127
  ## Ticket filing (standalone only)
126
128
 
127
129
  After report, file what was found — **only when run standalone**, never under `--report-only`/`--dry-run` and never when nested inside `lisa-verify` (which passes `--report-only`):
@@ -34,6 +34,12 @@ For each changed file, `Read` the surrounding code and use `Grep`/`Glob` to foll
34
34
 
35
35
  ## Step 3: Review across all dimensions
36
36
 
37
+ Apply the `convergent-review` rule before deciding severity or whether a finding
38
+ blocks merge. Bias toward merge: block only concrete correctness, security,
39
+ data-loss, or contract-violation failures with evidence. Lint-owned style,
40
+ formatting, taste, and speculative maintainability improvements are non-blocking
41
+ unless the work item or repository rules explicitly make them release criteria.
42
+
37
43
  Walk every meaningful hunk and evaluate each dimension. A finding in any dimension is fair game.
38
44
 
39
45
  1. **Correctness / bugs** — Logic errors, off-by-one, inverted conditions, missing `await`, null/undefined handling, type coercion, broken control flow, incorrect defaults, mutation of shared state, race conditions, broken or missing tests for new behavior.
@@ -59,6 +65,9 @@ Group as **Critical → Major → Minor → Nit**. Every finding includes:
59
65
  - **What** — the issue, and which dimension it falls under (bug / security / perf / maintainability / tests).
60
66
  - **Where** — `path/to/file.ts:line`.
61
67
  - **Why** — the concrete consequence, with a triggering example where relevant.
68
+ - **Blocking** — `yes` only for concrete correctness/security/data-loss/contract failures; otherwise `no`.
69
+ - **Failure scenario** — the concrete user, operator, security, or factory outcome if the change ships as-is.
70
+ - **Evidence** — the cited file, observed behavior, command output, or contract that proves the scenario is reachable.
62
71
  - **Fix** — a concrete suggestion or code snippet.
63
72
 
64
73
  ### Walkthrough (optional but encouraged)
@@ -71,6 +80,7 @@ Call out what's done well. A credible review is balanced, not only critical.
71
80
 
72
81
  - **Cover the whole diff.** If you deprioritize anything for size, say which files and why — never imply full coverage you didn't give.
73
82
  - **Ground every finding in the code.** No generic checklists detached from the actual change; no speculative findings you can't point to.
83
+ - **Malformed blockers do not block.** If you cannot name a concrete failure scenario and evidence, report it as non-blocking context or omit it.
74
84
  - **Concrete fixes only.** "Consider improving error handling" is not a finding; "wrap the `fetch` in try/catch and return a 502 on network error at `api/proxy.ts:31`" is.
75
85
  - **No external review service.** Use only local git/tooling and the model — this is an independent review, not a CodeRabbit proxy.
76
86
  - **Review-only.** Report findings; do not edit files. Route fixes through the implementation flow, `parity-code-simplifier` (quality), or a follow-up.
@@ -36,6 +36,8 @@ Write this list down. If you can't, the PRD is too vague — note it as a covera
36
36
 
37
37
  **Invoke `use-the-product`** to detect the type, resolve the environment + mutation policy, and discover personas — then drive the surfaces from step 1 through its per-type playbook (browser for DOM, `curl` for an API, canvas+input for a game, `cdk synth`/`diff` for IaC). Capture evidence as you go: for a DOM app, a `browser_snapshot` (accessibility tree — best for reasoning) and a `browser_take_screenshot` (visual) per surface and per state, plus `browser_console_messages` / `browser_network_requests` after interactions; for an API, representative request/response pairs; for a game, screenshots of each state. If the project defines personas, walk the surfaces as the relevant archetype(s).
38
38
 
39
+ When the resolved DOM environment is non-production with mutation policy `full` and the configured Kane provider passes `lisa kane probe`, `use-the-product` may delegate the bounded journey to `lisa-kane-browser`. Extract its screenshot, HAR/network, console, and result artifacts into the normal Current Product evidence. Never use the expiring Test Manager link as the only evidence. A walkthrough that resolves `read-only` stays on a directly controlled browser backend during the initial Kane rollout.
40
+
39
41
  Honor the mutation gate: on a `read-only` env, observe without submitting; never walk a `forbidden` env (production defaults to forbidden). Treat console errors, 4xx/5xx, and unexpected calls as findings.
40
42
 
41
43
  ## 3. Record findings
@@ -6,6 +6,14 @@ disable-model-invocation: false
6
6
 
7
7
  Provide a code review for the local changes on the current branch compared to the main branch.
8
8
 
9
+ Apply the `convergent-review` rule throughout this skill: reviewers bias toward
10
+ merge, block only concrete correctness/security/data-loss/contract failures, and
11
+ must label every finding with severity, blocking status, failure scenario,
12
+ evidence, and fix. Lint-owned style, formatting, taste, and speculative
13
+ maintainability feedback are non-blocking unless a repository rule or work item
14
+ explicitly makes them release criteria. A blocking finding without a concrete
15
+ failure scenario is malformed and must be filtered out.
16
+
9
17
  To do this, follow these steps precisely:
10
18
 
11
19
  1. Use a Haiku agent to check the current git state:
@@ -24,6 +32,7 @@ To do this, follow these steps precisely:
24
32
  c. Agent #3: Read the git blame and history of the code modified, to identify any bugs in light of that historical context
25
33
  d. Agent #4: Read previous pull requests that touched these files, and check for any comments on those pull requests that may also apply to the current changes.
26
34
  e. Agent #5: Read code comments in the modified files, and make sure the changes comply with any guidance in the comments.
35
+ Each agent must apply the severity bar from `convergent-review` and return only findings that include a concrete failure scenario and evidence. Non-blocking observations may be summarized separately, but must not be presented as required changes.
27
36
  5. For each issue found in #4, launch a parallel Haiku agent that takes the diff, issue description, and list of CLAUDE.md files (from step 2), and returns a score to indicate the agent's level of confidence for whether the issue is real or false positive. To do that, the agent should score each issue on a scale from 0-100, indicating its level of confidence. For issues that were flagged due to CLAUDE.md instructions, the agent should double check that the CLAUDE.md actually calls out that issue specifically. The scale is (give this rubric to the agent verbatim):
28
37
  a. 0: Not confident at all. This is a false positive that doesn't stand up to light scrutiny, or is a pre-existing issue.
29
38
  b. 25: Somewhat confident. This might be a real issue, but may also be a false positive. The agent wasn't able to verify that it's a real issue. If the issue is stylistic, it is one that was not explicitly called out in the relevant CLAUDE.md.
@@ -31,6 +40,7 @@ To do this, follow these steps precisely:
31
40
  d. 75: Highly confident. The agent double checked the issue, and verified that it is very likely it is a real issue that will be hit in practice. The existing approach is insufficient. The issue is very important and will directly impact the code's functionality, or it is an issue that is directly mentioned in the relevant CLAUDE.md.
32
41
  e. 100: Absolutely certain. The agent double checked the issue, and confirmed that it is definitely a real issue, that will happen frequently in practice. The evidence directly confirms this.
33
42
  6. Filter out any issues with a score less than 80.
43
+ 6a. Filter out any blocking issue that does not name a concrete failure scenario in one of the `convergent-review` blocker classes. Keep it only as non-blocking context if it is useful.
34
44
  7. Write the review to claude-review.md. When writing your review, keep in mind to:
35
45
  a. Keep your output brief
36
46
  b. Avoid emojis
@@ -44,6 +54,7 @@ Examples of false positives, for steps 4 and 5:
44
54
  - Pedantic nitpicks that a senior engineer wouldn't call out
45
55
  - Issues that a linter, typechecker, or compiler would catch (eg. missing or incorrect imports, type errors, broken tests, formatting issues, pedantic style issues like newlines). No need to run these build steps yourself -- it is safe to assume that they will be run separately as part of CI.
46
56
  - General code quality issues (eg. lack of test coverage, general security issues, poor documentation), unless explicitly required in CLAUDE.md
57
+ - Findings that restate lint-owned style, formatting, taste, or speculative cleanup as blockers without a concrete failure scenario
47
58
  - Issues that are called out in CLAUDE.md, but explicitly silenced in the code (eg. due to a lint ignore comment)
48
59
  - Changes in functionality that are likely intentional or are directly related to the broader change
49
60
  - Real issues, but on lines that were not modified in the current branch
@@ -0,0 +1,96 @@
1
+ ---
2
+ name: lisa-setup-kane
3
+ description: "Configure TestMu Kane CLI as an optional Lisa empirical-browser provider. Performs the exterior human approval gate for mandatory cloud uploads, verifies the pinned CLI version, provisions local/CI authentication, selects a Test Manager project/folder, runs a disposable synthetic check, and writes only non-secret policy identifiers to Lisa config."
4
+ allowed-tools: ["Bash", "Read", "Write", "Edit", "AskUserQuestion"]
5
+ ---
6
+
7
+ # Setup Kane CLI
8
+
9
+ This is an explicit exterior setup gate. It may involve a human because authentication and cloud
10
+ data approval must be complete before unattended factories run. Never invoke setup from inside an
11
+ active Build, QA, Monitor, or Verify factory.
12
+
13
+ ## 1. Explain the data boundary and obtain approval
14
+
15
+ Explain that every authored Kane session uploads screenshots, the objective, action logs, variables
16
+ in scope, metadata, and packaged run artifacts to TestMu Test Manager. Explain that share links are
17
+ secondary evidence and can be accessible outside project membership for their validity window.
18
+ Clarify that this is privacy and data-egress approval, not purchase authorization: Lisa's adapter
19
+ uses local Chrome rather than TestMu's paid remote grid, while Test Manager upload remains the
20
+ default for local runs and Kane's AI features still require available account credits.
21
+
22
+ Ask exactly one approval question: approve TestMu cloud upload for disposable dev/staging test data,
23
+ or decline. On decline, leave configuration unchanged and report that Lisa's native controllers
24
+ remain available.
25
+
26
+ ## 2. Install and pin
27
+
28
+ Require Kane CLI `0.6.3`, the version covered by Lisa's adapter contract:
29
+
30
+ ```bash
31
+ kane-cli --version
32
+ npm install -g @testmuai/kane-cli@0.6.3 # only after setup approval if missing/wrong
33
+ ```
34
+
35
+ Do not use `npx @testmuai/kane-cli-skill` and do not append vendor content to `AGENTS.md`.
36
+
37
+ ## 3. Authenticate outside the factory
38
+
39
+ - Developer machine: run `kane-cli login --oauth` and let the operator complete browser consent.
40
+ - CI/headless: provision a dedicated TestMu service identity using the platform's secret store. Do
41
+ not put username/access key in `.lisa.config.json`, command history, a ticket, or chat.
42
+
43
+ Verify with `kane-cli whoami`. Record the identity label, never token material.
44
+
45
+ ## 4. Select the Test Manager target
46
+
47
+ Use `kane-cli config project` and optional `kane-cli config folder`, then `kane-cli config show`.
48
+ Capture the non-secret project/folder identifiers. Use a dedicated Lisa pilot project with access
49
+ restricted to the engineering/QA operators who may view uploaded artifacts.
50
+
51
+ ## 5. Write policy configuration
52
+
53
+ Merge this shape into committed `.lisa.config.json`, preserving every unrelated key:
54
+
55
+ ```json
56
+ {
57
+ "verification": {
58
+ "browser": {
59
+ "kane": {
60
+ "enabled": true,
61
+ "version": "0.6.3",
62
+ "cloudUploadApproved": true,
63
+ "allowedEnvironments": ["dev", "staging"],
64
+ "projectId": "<project-id>",
65
+ "folderId": "<optional-folder-id>",
66
+ "timeoutSeconds": 120
67
+ }
68
+ }
69
+ }
70
+ }
71
+ ```
72
+
73
+ Production environments are invalid. Developer-specific overrides may live in
74
+ `.lisa.config.local.json`, but shared provider policy and Test Manager identifiers belong in the
75
+ committed config. Never write credentials to either file.
76
+
77
+ ## 6. Prove readiness
78
+
79
+ Run `lisa kane probe . --json`, then run a harmless synthetic journey against a disposable local or
80
+ dev fixture with mutation policy `full`. Confirm the normalized result, evidence pack, Test Manager
81
+ link, screenshot, HAR, and console record. If any is missing, setup is incomplete.
82
+
83
+ ## 7. Prepare the controlled pilot
84
+
85
+ Create a pilot manifest from `docs/kane-cli-pilot.example.json`, point it at at least two disposable
86
+ downstream web applications, set the start timestamp and credit budget, then run:
87
+
88
+ ```bash
89
+ lisa kane pilot <manifest>
90
+ lisa kane pilot <manifest> --report-only
91
+ ```
92
+
93
+ The pilot remains `collecting` until at least 30 days, 50 runs, and two observations per case exist.
94
+ After the full window, an exterior security/privacy reviewer adds
95
+ `policyReview: { "reviewedAt": "<ISO timestamp>", "incidents": <count> }` to the manifest. Never
96
+ pre-attest zero incidents at pilot start. Only an `adopt` verdict permits wider enablement.
@@ -0,0 +1,4 @@
1
+ display_name: "Setup Kane"
2
+ short_description: "Configure TestMu Kane CLI as an optional Lisa empirical-browser provider"
3
+ default_prompt:
4
+ - "Use $lisa-setup-kane: Configure TestMu Kane CLI as an optional Lisa empirical-browser provider."
@@ -0,0 +1,71 @@
1
+ ---
2
+ name: lisa-track
3
+ description: "Resolves exactly one live configured-tracker leaf for durable project work, claims it idempotently, and persists its canonical reference in worktree-local state. Accepts an existing Jira/GitHub/Linear ref, a spec file, or plain text. Use directly to mention/create the related ticket, and as lisa-implement's mandatory input gate."
4
+ allowed-tools: ["Skill", "Bash", "Read"]
5
+ ---
6
+
7
+ # Track Work: $ARGUMENTS
8
+
9
+ Establish the tracked-work invariant before any durable project mutation. Discussion and read-only orientation may proceed without this skill; code, configuration, documentation, research artifacts, plans, investigation findings, tests, commits, and pull requests may not.
10
+
11
+ This flow must return exactly one canonical `(tracker_provider, work_item_ref)` pair or fail closed. It never returns an unvalidated textual guess.
12
+
13
+ ## Phase 1 — Resolve tracker and classify input
14
+
15
+ 1. Resolve merged `.lisa.config.local.json` over `.lisa.config.json` exactly as `lisa-tracker-read` / `lisa-tracker-write` do. Missing, unknown, or incomplete tracker configuration is a blocking error.
16
+ 2. Classify `$ARGUMENTS` as exactly one of:
17
+ - an explicit reference matching the configured tracker (`KEY-123`, `org/repo#123` or issue URL, Linear team identifier);
18
+ - an existing file path containing a specification (read the entire file, without offset/limit);
19
+ - plain-text work description.
20
+ 3. Preserve the full resolved specification for the caller. Do not treat a ticket-like token for a different provider/project as plain text; report the mismatch.
21
+
22
+ ## Phase 2 — Resolve one live work item
23
+
24
+ ### Explicit reference
25
+
26
+ Invoke `lisa-tracker-read <ref>` and require a live result from the configured project. Reject nonexistent, inaccessible, closed/resolved/terminal, wrong-project, wrong-repository, or container items. This live read is mandatory even if caller context already includes ticket text.
27
+
28
+ ### File or plain text
29
+
30
+ Search conservatively before creating:
31
+
32
+ 1. Normalize the requested outcome and derive a short keyword set; never search with the whole prompt or secrets.
33
+ 2. Search only open/non-terminal items in the configured project and current repository through the configured provider's documented read surface:
34
+ - GitHub: `gh issue list --repo <org>/<repo> --state open --search "<keywords> in:title,body"`.
35
+ - Jira: `lisa-atlassian-access operation: search-issues` with project-scoped JQL.
36
+ - Linear: `lisa-linear-access operation: list-issues` scoped to the configured team/workspace.
37
+ 3. Treat search results as candidates, never proof. Live-read each plausible candidate through `lisa-tracker-read`, and discard terminal, container, blocked, cross-repo, and materially different outcomes.
38
+ 4. Reuse only when **exactly one** live leaf is a high-confidence semantic match for the same requested outcome and repository. A shared keyword or similar title is not enough. Record the search queries, candidates, and rejection reasons in the returned resolution evidence.
39
+ 5. If there is no unique high-confidence match (zero or ambiguous candidates), create **exactly one** item by invoking `lisa-tracker-write` once. Synthesize one complete single-repository leaf (`Bug`, `Task`, `Sub-task`, or `Improvement`, never Epic/container) with the writer's required three-audience body, Gherkin acceptance criteria, repository, target environment, relationship search, and executable Validation Journey. Pass `build_ready: true`. Do not create placeholder/thin tickets, do not create a hierarchy, and do not retry creation by making another item if validation fails; repair the proposed spec and retry the same writer operation only if the vendor contract supports idempotent reuse.
40
+ 6. Live-read the writer's canonical returned reference with `lisa-tracker-read`. A create response without a verified live leaf is failure.
41
+
42
+ This is intentionally conservative: ambiguity creates one explicit work item instead of silently attaching work to the wrong existing item. Across the entire invocation, at most one new work item may be created.
43
+
44
+ ## Phase 3 — Claim and bind
45
+
46
+ 1. Invoke `lisa-tracker-claim <canonical-ref>`. Require its post-read verified `claim_outcome: claimed|reused`; no binding may be written after a failed/unverified claim.
47
+ 2. Persist only the canonical reference in worktree-local machine state:
48
+
49
+ ```bash
50
+ node scripts/lisa-work-item.mjs bind <canonical-ref>
51
+ ```
52
+
53
+ 3. Read the binding back through `node scripts/lisa-work-item.mjs current` and require it to equal the canonical reference. If binding fails, stop before durable project work.
54
+ - A detached-HEAD worktree is valid at this stage: the binding records `branch: null` as a pending state. Create the feature branch only after the gate succeeds, then run `node scripts/lisa-work-item.mjs attach-branch`. Commit preparation and validation fail closed until that attachment succeeds.
55
+ 4. Return this structured result plus the full resolved work-item context:
56
+
57
+ ```text
58
+ tracker_provider: jira|github|linear
59
+ work_item_ref: <canonical-ref>
60
+ resolution_outcome: explicit|reused|created
61
+ claim_outcome: claimed|reused
62
+ binding_outcome: verified
63
+ ```
64
+
65
+ ## Lifecycle
66
+
67
+ - The binding is worktree-local, uncommitted machine state. Never write it into tracked source files.
68
+ - Branch setup may call `node scripts/lisa-work-item.mjs attach-branch` after the feature branch exists.
69
+ - Keep the binding across ordinary interruptions and blocked outcomes so resumed work remains attributable.
70
+ - Clear it only after true terminal completion — merged, deployed/verified where required, tracker evidence/backlink complete, and the work item terminal — by running `node scripts/lisa-work-item.mjs clear` and verifying no current binding remains.
71
+ - A tracker outage, invalid item, failed claim, or failed binding blocks durable work. Never continue untracked and never ask a Git hook to create the item.
@@ -0,0 +1,4 @@
1
+ display_name: "Track"
2
+ short_description: "Resolves exactly one live configured-tracker leaf for durable project work, claims it idempotently, and persists its canonical reference in…"
3
+ default_prompt:
4
+ - "Use $lisa-track: Resolves exactly one live configured-tracker leaf for durable project work, claims it idempotently, and persists its canonical reference in…."
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: lisa-tracker-claim
3
+ description: "Vendor-neutral dispatcher for idempotently claiming one already live-validated leaf work item. Reads the required tracker from .lisa.config.json and delegates to lisa-jira-claim, lisa-github-claim, or lisa-linear-claim. The vendor skill owns the post-read leaf/open guard, ready-to-claimed mutation, attributable assignment, and post-write verification."
4
+ allowed-tools: ["Skill", "Bash", "Read"]
5
+ ---
6
+
7
+ # Tracker Claim: $ARGUMENTS
8
+
9
+ Thin dispatcher. `$ARGUMENTS` must contain exactly one canonical work-item reference. The caller must have already fetched it with `lisa-tracker-read`; each vendor claim skill independently repeats the live read before mutation and verifies the claim afterward so stale caller context cannot authorize a write.
10
+
11
+ ## Workflow
12
+
13
+ 1. Resolve merged tracker config exactly as `lisa-tracker-write` does:
14
+
15
+ ```bash
16
+ local_tracker=$(jq -r '.tracker // empty' .lisa.config.local.json 2>/dev/null)
17
+ global_tracker=$(jq -r '.tracker // empty' .lisa.config.json 2>/dev/null)
18
+ tracker="${local_tracker:-$global_tracker}"
19
+ ```
20
+
21
+ 2. Dispatch without changing `$ARGUMENTS`:
22
+ - Missing / empty -> stop and report `"No tracker configured in .lisa.config.json. Run /lisa:setup:jira, /lisa:setup:github, or /lisa:setup:linear first."`
23
+ - `jira` -> invoke `lisa-jira-claim`.
24
+ - `github` -> invoke `lisa-github-claim`.
25
+ - `linear` -> invoke `lisa-linear-claim`.
26
+ - Anything else -> stop and report `"Unknown tracker '<value>' in .lisa.config.json. Expected 'jira', 'github', or 'linear'."`
27
+ 3. Return the vendor result unchanged. Success must include `tracker_provider`, canonical `work_item_ref`, `claim_outcome: claimed|reused`, and the post-write live-read evidence.
28
+
29
+ ## Contract
30
+
31
+ - Claim only an open/unresolved, current-repository leaf per `leaf-only-lifecycle` and `repo-scope-split`. Never claim a container, terminal item, inaccessible item, or item from a different configured project.
32
+ - Preserve later active lifecycle states. If the item is already in the configured claimed role or a later non-terminal role, return `reused`; never move it backward.
33
+ - A fresh claim uses the same idempotency lock as the three build-intake Phase 3b flows: move configured ready to configured claimed, or place an unlaned backlog leaf directly in claimed; assign to the authenticated user only when unassigned; never replace an existing owner.
34
+ - Fail closed if the mutation or post-write read cannot prove the claimed-or-later state. A tracker outage is a blocker, not permission to work untracked.
35
+ - This skill claims existing work only. It never creates a ticket and never writes the worktree binding.
@@ -0,0 +1,4 @@
1
+ display_name: "Tracker Claim"
2
+ short_description: "Vendor-neutral dispatcher for idempotently claiming one already live-validated leaf work item"
3
+ default_prompt:
4
+ - "Use $lisa-tracker-claim: Vendor-neutral dispatcher for idempotently claiming one already live-validated leaf work item."
@@ -66,7 +66,7 @@ Look for the project's personas: `wiki/personas/**` (target-player archetypes, s
66
66
 
67
67
  Apply the interface's *read-only* actions always; the *mutate* actions only when the policy is `full`.
68
68
 
69
- - **DOM web app** — a real browser controlled interactively through any capable backend (in-app Browser/Chrome, Playwright MCP/API/ad hoc script, CDP, computer use, or equivalent). Land cold on the entry page, then click / type / select / submit visible controls and attempt real tasks; sweep viewport widths. The controller is an implementation detail; a missing preferred backend is not a blocker when another can drive the same live journey. A Playwright test run alone is not this evidence. *(The caller's lens supplies the specific things to look for.)*
69
+ - **DOM web app** — a real browser controlled interactively through any capable backend (in-app Browser/Chrome, Playwright MCP/API/ad hoc script, CDP, computer use, the opt-in Lisa-owned Kane adapter, or equivalent). Land cold on the entry page, then click / type / select / submit visible controls and attempt real tasks; sweep viewport widths. The controller is an implementation detail; a missing preferred backend is not a blocker when another can drive the same live journey. A Playwright test run alone is not this evidence. Kane is selected only via `lisa-kane-browser`, only after `lisa kane probe` succeeds, and only for an allowed non-production env whose mutation policy is `full`; use a more directly controlled backend for `read-only` journeys. *(The caller's lens supplies the specific things to look for.)*
70
70
  - **HTTP / API backend** — the consumer is a client, not a browser. Read-only: read the OpenAPI/routes and call safe `GET`s (`curl`/`httpie`). Mutate: exercise representative `POST`/`PUT`/`DELETE` flows with test data as the `identity`; check status codes, payload shapes, and error responses.
71
71
  - **Canvas game** — a real browser, but the UI is **drawn to a canvas, not the DOM**. Boot it (e.g. `bun run dev` + Playwright), drive via **keyboard/pointer into the canvas**, and read state **visually via screenshots** (not the accessibility tree). Mutation is usually local save state. Judge readability, game-feel, and input responsiveness — not DOM breakpoints.
72
72
  - **CLI / library** — the interface is the command / public API. Read-only: `--help`, read-only commands, dry-runs. Mutate: run state-changing commands with disposable inputs.
@@ -35,7 +35,9 @@ For each required verification type, discover what tools are available in the pr
35
35
 
36
36
  Report what is available for each required type. If a required type has no available tool, proceed to step 4.
37
37
 
38
- For UI verification, treat the browser controller as implementation-neutral. Check for an in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or ad hoc script), CDP, computer use, or an equivalent controller that can drive a real browser session. Do not require one named backend, and do not declare a tooling block while any capable interactive controller is available. Running an automated Playwright or Maestro test is not a substitute for this live interaction; it becomes the regression gate only after the empirical journey passes.
38
+ For UI verification, treat the browser controller as implementation-neutral. Check for an in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or ad hoc script), CDP, computer use, the optional Lisa-owned Kane CLI adapter, or an equivalent controller that can drive a real browser session. Do not require one named backend, and do not declare a tooling block while any capable interactive controller is available. Running an automated Playwright or Maestro test is not a substitute for this live interaction; it becomes the regression gate only after the empirical journey passes.
39
+
40
+ Kane is eligible only when `verification.browser.kane.enabled` and `cloudUploadApproved` are true, `lisa kane probe` passes, the target is an explicitly allowed non-production environment, and `use-the-product` resolves mutation policy `full`. Invoke `lisa-kane-browser`; never install or follow the vendor's broad `agents.md` instructions. A Kane tool/auth/upload/schema failure is a tooling blocker, not a product failure. Kane evidence may prove the empirical journey, but project-native Playwright/Cypress/Maestro remains the codified regression authority.
39
41
 
40
42
  If a required verification type needs sign-in or other credentials, exhaust credential sources before declaring the verification blocked. Check credential sources in this order:
41
43
 
@@ -41,6 +41,7 @@ Execute the **Verify** flow as defined in the `intent-routing` rule (loaded via
41
41
  4. **Review loop** — handle CodeRabbit / human review comments via `lisa-pull-request-review`
42
42
  5. **Merge** when CI is green
43
43
  6. **Remote verification** — invoke the `lisa-monitor` skill against the target environment **in report-only mode** (`lisa-monitor <env> --report-only`) to confirm the deploy actually works (health endpoints, recent logs/errors, Validation Journey replay if defined). `--report-only` is required here: it keeps the post-deploy check a pure health/audit report and prevents monitor's standalone ticket-filing from creating issues during a verify run. If remote verification surfaces a behavioral gap that the existing codified tests do not guard, invoke `codify-verification` to add coverage and open a follow-up PR.
44
+ - When the Validation Journey is DOM-web, the target is an allowed non-production environment with mutation policy `full`, and `lisa kane probe` succeeds, verification may invoke `lisa-kane-browser`. Import the local evidence pack into Lisa's evidence flow; the Test Manager URL is secondary. Kane does not replace the pre-flight Playwright/Maestro codification gate.
44
45
  - When remote verification needs credentials, follow the shared `verification-lifecycle` credential lookup order before declaring them missing: project e2e / Playwright config and fixtures first, then `.lisa.config.local.json` / environment variables, then documented ticket credentials such as a `Sign-in Required` section.
45
46
  - Should credentials remain genuinely unavailable after those sources are exhausted, do not complete the item on artifact-only evidence. Post a tracker comment stating what could not be verified and why, transition the work item to the configured blocked state, and apply the configured `needs-human` / `human-review` label, creating it if the tracker supports label creation and it is missing.
46
47
  - Evidence must explicitly distinguish `verified empirically` from `artifact-only / verification deferred`.
@@ -61,3 +61,5 @@ For each acceptance criterion:
61
61
  - If the changes are purely internal (refactoring, config, tooling), report "No user-facing impact" and explain why
62
62
  - Do not propose UX changes beyond what was described -- flag scope concerns instead
63
63
  - Assume the reviewer has no technical background
64
+ - Apply the `convergent-review` rule: bias toward merge, block only concrete correctness/security/data-loss/contract failures, and mark lint-owned style or taste feedback as non-blocking.
65
+ - For every finding, state severity, whether it blocks, the concrete user/operator failure scenario, evidence, and the smallest fix. A blocker without a failure scenario is malformed.
@@ -24,7 +24,8 @@ For each changed file, evaluate:
24
24
  Rank findings by severity:
25
25
 
26
26
  ### Critical (must fix before merge)
27
- Broken logic or violates hard project rules.
27
+ Broken logic, security exposure, data loss, or a hard contract violation with a
28
+ concrete failure scenario.
28
29
 
29
30
  ### Warning (should fix)
30
31
  Could cause problems later or reduce maintainability.
@@ -54,3 +55,5 @@ For each finding:
54
55
  - Run the task's proof command to confirm the implementation works
55
56
  - Never approve code with failing tests
56
57
  - If no issues found, say so clearly -- do not invent problems
58
+ - Apply the `convergent-review` rule: bias toward merge, block only concrete correctness/security/data-loss/contract failures, and do not block on lint-owned style, formatting, taste, or speculative maintainability improvements.
59
+ - For every finding, state severity, whether it blocks, the concrete failure scenario, evidence, and the smallest fix. A blocker without a failure scenario is malformed.
@@ -18,7 +18,7 @@ Read `.claude/rules/verification.md` at the start of every investigation for the
18
18
 
19
19
  **"If you didn't run it, you didn't verify it."** Code review is not verification. Reading a test file is not verification. **Running tests, typecheck, and lint is not verification either — those are quality gates (prerequisites).** Only executing the actual system and observing output counts as proof. Verification means making HTTP requests, clicking through the UI, running CLI commands, querying the database, or otherwise interacting with the running software as an end user would.
20
20
 
21
- For UI verification, control a live browser and perform the journey as a human would. The controller is implementation-neutral: an in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or ad hoc script), CDP, computer use, or an equivalent browser controller all qualify. Do not block merely because a preferred backend is absent when another interactive controller is available. Running an automated Playwright or Maestro test alone does not qualify as the initial evidence; codify the journey in those runners only after the live interaction has passed.
21
+ For UI verification, control a live browser and perform the journey as a human would. The controller is implementation-neutral: an in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or ad hoc script), CDP, computer use, the optional Lisa-owned Kane adapter, or an equivalent browser controller all qualify. Kane is eligible only after `lisa kane probe` passes and the configured upload, environment, identity, and full-mutation gates are satisfied; invoke `lisa-kane-browser` and classify provider failures separately from product failures. Do not block merely because a preferred backend is absent when another interactive controller is available. Running an automated Playwright or Maestro test alone does not qualify as the initial evidence; codify the journey in those native runners only after the live interaction has passed, even when Kane supplied the empirical evidence.
22
22
 
23
23
  ## Verification Process
24
24
 
@@ -52,7 +52,7 @@ Before creating anything new, find what the project already has.
52
52
 
53
53
  **MCP tools:**
54
54
  - Check available MCP server tools for browser automation, observability, issue tracking, and other capabilities
55
- - For UI work, search for every capable interactive browser controller rather than requiring one named backend; interactive Playwright control is valid even though a Playwright test run alone is not verification
55
+ - For UI work, search for every capable interactive browser controller rather than requiring one named backend; interactive Playwright control and policy-approved Kane are valid even though a prewritten test run alone is not verification
56
56
 
57
57
  ### 4. Plan the Verification
58
58
 
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Use after ONE run went wrong, to find the real cause and prove the fix worked. Investigates a single failed or expensive factory trajectory end to end: records the job contract, observes the baseline, locates the earliest failed handoff, classifies the gap (context | capability | domain-ownership | authority | proof | feedback-delivery | worker-limitation), makes the smallest owning intervention at the authoritative owner, verifies at both layers, and reruns in a fresh isolated session behind a relevance gate before deciding retain, revise, remove, or test-without. Files a proposed-intervention ticket and stops when the fix exceeds the smallest owning change. Unlike /lisa:debrief (mines a whole shipped initiative for learnings) and /lisa:rework-triage (fires only on QA/staging bounces), this runs on one trajectory, bounce or not."
3
+ argument-hint: "<ticket URL | PR URL | session or run ref | described failure>"
4
+ ---
5
+
6
+ Use the /lisa-improve-harness skill to run one bounded baseline → intervention → fresh-rerun loop on the given trajectory and post the result record to the originating work item. $ARGUMENTS
@@ -0,0 +1,6 @@
1
+ ---
2
+ description: "Bind this worktree to one live work item in the configured tracker. Accepts an existing Jira, GitHub, or Linear reference, a specification file, or a plain-text description; validates or creates and claims exactly one leaf before persisting the local binding."
3
+ argument-hint: "<work-item-url | key | spec-file | description>"
4
+ ---
5
+
6
+ Use the /lisa-track skill to resolve, live-validate or create, claim, and bind exactly one configured-tracker leaf for this worktree. $ARGUMENTS
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.247.2",
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 GitHub leaf issue for direct Lisa work. Reuses github-build-intake Phase 3b semantics: configured ready-to-claimed relabel, assign-only-if-unassigned, stable managed comment, and post-write verification."
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.