@codyswann/lisa 2.247.3 → 2.250.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
@@ -10,7 +10,7 @@
10
10
 
11
11
  - **Never claim success without runtime evidence.** "The code looks correct" is not evidence.
12
12
  - **If all you did was run tests, typecheck, and lint — you have NOT verified.**
13
- - **Browser-controller neutrality.** For UI work, control a live browser and perform the Validation Journey as a human would. An in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or ad hoc script), CDP, computer use, or an equivalent controller is acceptable. Do not block merely because one preferred backend is unavailable when another interactive controller can drive the browser. Running an automated Playwright or Maestro test alone is still a quality gate, not the initial empirical evidence; after the live journey passes, codify it in the applicable runner(s).
13
+ - **Browser-controller neutrality.** For UI work, control a live browser and perform the Validation Journey as a human would. 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 controller is acceptable. Kane requires explicit upload approval, a passing `lisa kane probe`, an allow-listed non-production environment, and mutation policy `full`; its provider failure is not a product failure. Do not block merely because one preferred backend is unavailable when another interactive controller can drive the browser. Running an automated Playwright or Maestro test alone is still a quality gate, not the initial empirical evidence; after the live journey passes, codify it in the applicable native runner(s). Kane never replaces those regression gates.
14
14
  - **Before starting implementation, state your verification plan** — how you will USE the resulting software to prove it works. A plan that only lists `test`/`typecheck`/`lint` commands is not a plan. Do not begin until confirmed.
15
15
  - **After verifying empirically, codify it as a regression test** via the `codify-verification` skill — Playwright for UI, integration test for API/DB/auth, benchmark for performance. Codification is mandatory for every verification type except PR/Documentation/Deploy and Investigate-Only spikes. For **frontend work**, codification is dual-runner: a Playwright spec in the project's Playwright test runner AND a Maestro flow in the Maestro test runner whenever the project supports Maestro (`.maestro/` directory, `maestro:test` script, or Maestro CI workflow) — both encoding the same verified journey, neither a substitute for the other.
16
16
  - **The codified proof re-runs in CI.** Codified runtime verification lives where the project's e2e/Playwright tests live (`tests/e2e/**`) and runs as a required CI check for types with verification enforced — so the proof re-runs on every PR, not once by hand.
@@ -320,6 +320,30 @@ When `github.projects.v2` is present, later setup/doctor and writer preflight va
320
320
  | `linear.workspace` | `tracker = "linear"`, `source = "linear"`, or any `linear-*` skill is invoked | Linear workspace slug (e.g. `acme`). |
321
321
  | `linear.teamKey` | `tracker = "linear"` | Linear team key (e.g. `ENG`). The team owns the destination Issues. For source mode, projects are workspace-scoped or team-scoped per the URL passed. |
322
322
 
323
+ #### `verification.browser.kane`
324
+
325
+ Kane CLI is an optional empirical-browser provider. It is never enabled by executable discovery
326
+ alone and never replaces native regression runners.
327
+
328
+ | Field | Required when | Where it lives | Notes |
329
+ |-------|---------------|----------------|-------|
330
+ | `verification.browser.kane.enabled` | using Kane | **committed** | Must be literal `true`; absent/false means Lisa does not probe or select Kane. |
331
+ | `verification.browser.kane.version` | enabled | **committed** | Exact contract-tested version, currently `0.6.3`. Version ranges and implicit latest are rejected. |
332
+ | `verification.browser.kane.cloudUploadApproved` | enabled | **committed** | Exterior human approval that TestMu may receive objectives, screenshots, action logs, variables in scope, metadata, and packaged run artifacts from disposable test environments. |
333
+ | `verification.browser.kane.allowedEnvironments` | enabled | **committed** | Non-empty environment allow-list. `prod` and `production` are invalid regardless of other config. Each environment must also resolve to `exploration.environments.<name>.mutation = full` at run time. |
334
+ | `verification.browser.kane.projectId` | enabled | **committed** | Expected Test Manager project identifier. `lisa kane probe` verifies the active CLI config matches it. |
335
+ | `verification.browser.kane.folderId` | no | **committed** | Optional expected Test Manager folder identifier, also verified by the probe. |
336
+ | `verification.browser.kane.timeoutSeconds` | no | **committed** | Integer 1–600; defaults to 120. Lisa adds a small outer process-kill grace period. |
337
+
338
+ Credentials never live in Lisa config. Developer OAuth state remains in Kane's protected local
339
+ profile; CI uses its secret store and a dedicated service identity. Local config may override a
340
+ Kane key per the normal per-key precedence, but shared upload policy, allow-list, and Test Manager
341
+ target should be committed so teammates and automations see the same gate.
342
+
343
+ Use `/lisa:setup-kane` only at the exterior setup gate. Factory workflows invoke
344
+ `lisa-kane-browser`, which calls the Lisa adapter (`lisa kane probe/run`) rather than consuming the
345
+ vendor's global skill or `agents.md`.
346
+
323
347
  #### `usage`
324
348
 
325
349
  `usage` is optional. It carries non-secret pricing metadata Lisa may use when runtime token counts are trustworthy but runtime monetary cost is absent.
@@ -677,6 +701,7 @@ The shim → vendor mapping is fixed:
677
701
  | `lisa-tracker-validate` | `lisa-jira-validate-ticket` | `lisa-github-validate-issue` | `lisa-linear-validate-issue` |
678
702
  | `lisa-tracker-verify` | `lisa-jira-verify` | `lisa-github-verify` | `lisa-linear-verify` |
679
703
  | `lisa-tracker-read` | `lisa-jira-read-ticket` | `lisa-github-read-issue` | `lisa-linear-read-issue` |
704
+ | `lisa-tracker-claim` | `lisa-jira-claim` | `lisa-github-claim` | `lisa-linear-claim` |
680
705
  | `lisa-tracker-evidence` | `lisa-jira-evidence` | `lisa-github-evidence` | `lisa-linear-evidence` |
681
706
  | `lisa-tracker-sync` | `lisa-jira-sync` | `lisa-github-sync` | `lisa-linear-sync` |
682
707
  | `lisa-tracker-add-journey` | `lisa-jira-add-journey` | `lisa-github-add-journey` | `lisa-linear-add-journey` |
@@ -689,7 +714,7 @@ The `tracker-source-artifacts` skill (formerly `tracker-source-artifacts`) is re
689
714
  ## Caller responsibilities
690
715
 
691
716
  - **PRD-source skills** (`notion-to-tracker`, `confluence-to-tracker`, `linear-to-tracker`, `github-to-tracker`) MUST invoke `tracker-write` and `tracker-validate` — never `jira-write-ticket` / `github-write-issue` / `linear-write-issue` directly. This is what makes a project's destination switchable via config.
692
- - **Lifecycle skills** (`implement`, `verify`, `monitor`) MUST invoke `tracker-read`, `tracker-evidence`, `tracker-sync` for ticket interaction — never the vendor-specific equivalents.
717
+ - **Lifecycle skills** (`implement`, `verify`, `monitor`) MUST invoke `tracker-read`, `tracker-claim`, `tracker-evidence`, `tracker-sync` for ticket interaction — never the vendor-specific equivalents.
693
718
  - **Per-vendor PRD intake skills** (`notion-prd-intake`, `confluence-prd-intake`, `linear-prd-intake`, `github-prd-intake`) compose the PRD-source skills (which in turn invoke the shims) — they do not need to read `tracker` themselves.
694
719
  - **Vendor-specific destination skills** (`jira-*`, `github-*`, `linear-*`) read their own vendor config section directly. They do NOT consult `tracker` — they are the targets of dispatch, not the dispatchers.
695
720
 
@@ -0,0 +1,69 @@
1
+ # Convergent Review
2
+
3
+ Review exists to get correct work merged, not to keep a PR in review orbit.
4
+ Apply this contract to every product, quality, local, bot-parity, and suggestion
5
+ implementation pass.
6
+
7
+ ## Severity Bar
8
+
9
+ Findings block only when they name a concrete failure scenario in one of these
10
+ classes:
11
+
12
+ - Correctness: shipped behavior violates the work item, breaks an existing
13
+ contract, or loses required data.
14
+ - Security: the change creates or preserves an exploitable auth, input,
15
+ secret-handling, permission, or data-exposure flaw.
16
+ - Data loss: a realistic path can delete, corrupt, overwrite, or strand user or
17
+ operational state.
18
+ - Contract violation: the change breaks a public API, workflow, generated
19
+ artifact contract, tracker lifecycle, or documented factory invariant.
20
+
21
+ Lint-owned style, formatting, taste, general maintainability preferences, and
22
+ speculative improvements are non-blocking unless the repository rule or work
23
+ item explicitly makes them release criteria.
24
+
25
+ ## Required Finding Shape
26
+
27
+ Every finding must state:
28
+
29
+ - Severity: `critical`, `major`, `minor`, or `nit`.
30
+ - Blocking: `yes` or `no`.
31
+ - Failure scenario: the concrete user, operator, security, or factory outcome
32
+ that occurs if the change ships as-is.
33
+ - Evidence: the file, command output, observed behavior, ticket text, or
34
+ external constraint proving the scenario is reachable.
35
+ - Fix: the smallest actionable correction, or the reason no code change is
36
+ needed.
37
+
38
+ A finding marked blocking without a concrete failure scenario is malformed by
39
+ contract. Downgrade it to non-blocking and ask for evidence instead of treating
40
+ it as a merge blocker.
41
+
42
+ ## Dispositions
43
+
44
+ The implementer resolves each finding with exactly one disposition:
45
+
46
+ - `fixed`: code, tests, docs, or generated artifacts changed to remove the
47
+ failure scenario.
48
+ - `deferred`: the issue is real but non-blocking; record the rationale and, when
49
+ useful, the follow-up work item.
50
+ - `pushed-back`: the finding is not valid for this work because evidence,
51
+ scope, or existing project rules refute it; reply with that rationale.
52
+
53
+ If a reviewer cannot refute a `pushed-back` disposition with fresh evidence, the
54
+ author's disposition stands.
55
+
56
+ ## Stopping Rule
57
+
58
+ After suggestion implementation completes and the required quality and
59
+ verification gates pass, review does not reopen unless new evidence appears:
60
+
61
+ - a new commit changes the reviewed behavior,
62
+ - a gate fails,
63
+ - a reviewer supplies a previously uncited failure scenario, or
64
+ - the work item scope changes.
65
+
66
+ Irreconcilable blocking disagreement is not an endless review loop. Move the
67
+ work item to the configured blocked state, add the human-needed marker when the
68
+ decision is human-only, and summarize both positions in operator-readable
69
+ language.
@@ -0,0 +1,26 @@
1
+ # Tracked Work
2
+
3
+ The project tracker is the durable operator-facing record for project work. Every session that will produce a durable project outcome must establish exactly one live configured-tracker leaf before the first durable mutation. Durable outcomes include code, tests, configuration, documentation, committed research or plans, investigation findings, commits, and pull requests. Read-only questions, discussion, and repository orientation are exempt until they turn into durable work.
4
+
5
+ ## Resolve, claim, bind
6
+
7
+ Use `lisa-track` as the single entry point:
8
+
9
+ 1. An explicit ticket is live-read through `lisa-tracker-read` and rejected if it is missing, inaccessible, terminal, a container, outside the configured project, or outside the current repository.
10
+ 2. A plain-text request or specification file is searched conservatively within the configured project. Reuse only one uniquely high-confidence matching live leaf. If no unique match exists, create exactly one complete single-repository leaf through `lisa-tracker-write`; never create a thin placeholder or a container.
11
+ 3. Idempotently claim the resolved leaf through `lisa-tracker-claim`, which reuses the vendor build-intake claim semantics and post-read verifies the claimed-or-later state.
12
+ 4. Before any durable repository work, persist the canonical reference with `node scripts/lisa-work-item.mjs bind <ref>` and verify the worktree-local binding.
13
+
14
+ The sequence is strict: **live validate/create -> claim -> bind -> durable work**. A failed tracker read/write, claim, or binding blocks the work. Tracker availability must be proven; tool presence or stale session text is not access.
15
+
16
+ ## One canonical identity
17
+
18
+ The binding is authoritative for the worktree. Branches, commits, pull requests, usage accounting, evidence, and tracker-sync operations all carry the same canonical ref. Branch names are helpful discovery metadata but are not authoritative. After branch creation, `node scripts/lisa-work-item.mjs attach-branch` may attach the local branch to the binding.
19
+
20
+ Linkage is unconditional for an Implement flow because its input gate always establishes a work item. PR creation must pass the ref to `lisa-git-submit-pr`; `lisa-tracker-sync` must prove the reverse native link or its managed fallback.
21
+
22
+ ## Binding lifetime
23
+
24
+ Binding state is local machine state and must remain untracked. Keep it through interruptions and blocked outcomes. Run `node scripts/lisa-work-item.mjs clear` only after true terminal completion: required merge/deploy/verification is complete, evidence and two-way PR linkage are recorded, and the tracker item is in its terminal state. Verify that no current binding remains before ending the completed flow.
25
+
26
+ Git hooks and CI enforce this contract but never create work items. Their recovery message directs the operator to mention the related ticket or run `/lisa:track <description>` to create and bind one.
@@ -22,9 +22,11 @@ Never assume something works because the code "looks correct." Run a command, ob
22
22
 
23
23
  ### Browser-controller neutrality
24
24
 
25
- For UI work, the agent must control a live browser and use the product the way a human would: navigate, click, type, submit, and observe the rendered result. **The browser controller is an implementation detail.** An in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or an ad hoc script), CDP, computer use, or an equivalent controller is valid when it drives a real browser session and captures the declared runtime artifacts. Do not block solely because a preferred browser backend is unavailable while another capable interactive controller is available.
25
+ For UI work, the agent must control a live browser and use the product the way a human would: navigate, click, type, submit, and observe the rendered result. **The browser controller is an implementation detail.** An in-app Browser/Chrome tool, interactive Playwright control (MCP, API, or an ad hoc script), CDP, computer use, the optional Lisa-owned Kane CLI adapter, or an equivalent controller is valid when it drives a real browser session and captures the declared runtime artifacts. Do not block solely because a preferred browser backend is unavailable while another capable interactive controller is available.
26
26
 
27
- Running an automated Playwright or Maestro test is still a quality gate, **not the initial empirical verification evidence**. The distinction is how the browser is used, not the library name: interactive Playwright control that performs and observes the Validation Journey is valid empirical verification; invoking a prewritten Playwright spec and reporting its green result alone is not. After the live journey passes, codify that observed behavior in the project's Playwright and/or Maestro runner as required below so CI can prevent regressions.
27
+ Kane is a guarded provider, not a global browser override. It is eligible only when the project explicitly enables it, acknowledges TestMu cloud upload, pins Lisa's contract-tested version, selects an allow-listed non-production environment, and resolves mutation policy `full`; `lisa kane probe` must prove installation, authentication, Test Manager targeting, and usable credits before a factory starts. Invoke it only through `lisa-kane-browser`. Treat auth, Chrome, upload, schema, and control-plane failures as tooling failures. Persist the local evidence pack through Lisa's evidence pipeline because a Test Manager share link is secondary and expiring.
28
+
29
+ Running an automated Playwright or Maestro test is still a quality gate, **not the initial empirical verification evidence**. The distinction is how the browser is used, not the library name: interactive Playwright control or a guarded Kane objective that performs and observes the Validation Journey is valid empirical verification; invoking a prewritten test and reporting its green result alone is not. After the live journey passes, codify that observed behavior in the project's Playwright and/or Maestro runner as required below so CI can prevent regressions. Kane `_test.md`, code export, and auto-healed recordings are not authoritative substitutes during the initial rollout.
28
30
 
29
31
  Verification is mandatory. Never skip it, defer it, or claim it was unnecessary. Every task must be verified before claiming completion.
30
32
 
@@ -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.
@@ -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.