@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
@@ -0,0 +1,255 @@
1
+ /** Manifest validation and execution for the Kane longitudinal pilot. */
2
+ import { appendFile, readFile } from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import { runKane } from "./kane-cli.js";
5
+ import { buildKanePilotReport, DEFAULT_KANE_PILOT_THRESHOLDS, } from "./kane-pilot-report.js";
6
+ export { buildKanePilotReport, DEFAULT_KANE_PILOT_THRESHOLDS };
7
+ /**
8
+ * Validate an optional exterior policy review.
9
+ * @param value - Untrusted policy-review value
10
+ * @returns Valid review or undefined
11
+ */
12
+ function parsePolicyReview(value) {
13
+ if (value === undefined)
14
+ return undefined;
15
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
16
+ throw new Error("Kane pilot policyReview must be an object");
17
+ }
18
+ const review = value;
19
+ if (typeof review.reviewedAt !== "string" ||
20
+ Number.isNaN(Date.parse(review.reviewedAt))) {
21
+ throw new Error("Kane pilot policyReview.reviewedAt must be an ISO timestamp");
22
+ }
23
+ if (!Number.isInteger(review.incidents) || Number(review.incidents) < 0) {
24
+ throw new Error("Kane pilot policyReview.incidents must be a non-negative integer");
25
+ }
26
+ return {
27
+ reviewedAt: review.reviewedAt,
28
+ incidents: Number(review.incidents),
29
+ };
30
+ }
31
+ /**
32
+ * Validate one pilot case.
33
+ * @param value - Untrusted case value
34
+ * @returns Valid pilot case
35
+ */
36
+ function parsePilotCase(value) {
37
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
38
+ throw new Error("Kane pilot case must be an object");
39
+ }
40
+ const record = value;
41
+ for (const field of ["id", "objective", "url"]) {
42
+ if (typeof record[field] !== "string" || record[field].length === 0) {
43
+ throw new Error(`Kane pilot case ${field} must be a string`);
44
+ }
45
+ }
46
+ if (record.baselineSeconds !== undefined &&
47
+ (typeof record.baselineSeconds !== "number" || record.baselineSeconds <= 0)) {
48
+ throw new Error("Kane pilot baselineSeconds must be positive");
49
+ }
50
+ return {
51
+ id: record.id,
52
+ objective: record.objective,
53
+ url: record.url,
54
+ ...(record.baselineSeconds === undefined
55
+ ? {}
56
+ : { baselineSeconds: record.baselineSeconds }),
57
+ };
58
+ }
59
+ /**
60
+ * Validate one pilot application.
61
+ * @param value - Untrusted application value
62
+ * @returns Valid pilot application
63
+ */
64
+ function parsePilotApplication(value) {
65
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
66
+ throw new Error("Kane pilot application must be an object");
67
+ }
68
+ const record = value;
69
+ for (const field of ["name", "projectRoot", "environment"]) {
70
+ if (typeof record[field] !== "string" || record[field].length === 0) {
71
+ throw new Error(`Kane pilot application ${field} must be a string`);
72
+ }
73
+ }
74
+ if (!Array.isArray(record.cases) || record.cases.length === 0) {
75
+ throw new Error("Kane pilot application must define cases");
76
+ }
77
+ return {
78
+ name: record.name,
79
+ projectRoot: record.projectRoot,
80
+ environment: record.environment,
81
+ cases: record.cases.map(parsePilotCase),
82
+ };
83
+ }
84
+ /**
85
+ * Validate an untrusted pilot manifest.
86
+ * @param value - Parsed manifest value
87
+ * @returns Valid pilot manifest
88
+ */
89
+ export function parseKanePilotManifest(value) {
90
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
91
+ throw new Error("Kane pilot manifest must be an object");
92
+ }
93
+ const record = value;
94
+ const policyReview = parsePolicyReview(record.policyReview);
95
+ if (record.version !== 1)
96
+ throw new Error("Kane pilot version must be 1");
97
+ if (typeof record.startedAt !== "string" ||
98
+ Number.isNaN(Date.parse(record.startedAt))) {
99
+ throw new Error("Kane pilot startedAt must be an ISO timestamp");
100
+ }
101
+ if (typeof record.resultsFile !== "string" ||
102
+ record.resultsFile.length === 0 ||
103
+ path.isAbsolute(record.resultsFile) ||
104
+ record.resultsFile.split(/[\\/]/u).includes("..")) {
105
+ throw new Error("Kane pilot resultsFile must be a safe relative path");
106
+ }
107
+ if (!Array.isArray(record.applications) || record.applications.length < 2) {
108
+ throw new Error("Kane pilot requires at least two applications");
109
+ }
110
+ if (record.maximumCreditsPerRun !== undefined &&
111
+ (typeof record.maximumCreditsPerRun !== "number" ||
112
+ record.maximumCreditsPerRun <= 0)) {
113
+ throw new Error("maximumCreditsPerRun must be a positive number");
114
+ }
115
+ return {
116
+ version: 1,
117
+ startedAt: record.startedAt,
118
+ resultsFile: record.resultsFile,
119
+ applications: record.applications.map(parsePilotApplication),
120
+ ...(policyReview === undefined ? {} : { policyReview }),
121
+ ...(record.maximumCreditsPerRun === undefined
122
+ ? {}
123
+ : { maximumCreditsPerRun: record.maximumCreditsPerRun }),
124
+ };
125
+ }
126
+ /**
127
+ * Convert one adapter result into a longitudinal record.
128
+ * @param application - Pilot application
129
+ * @param testCase - Pilot journey
130
+ * @param result - Normalized adapter result
131
+ * @returns Durable pilot record
132
+ */
133
+ function toPilotRecord(application, testCase, result) {
134
+ return {
135
+ timestamp: new Date().toISOString(),
136
+ application: application.name,
137
+ caseId: testCase.id,
138
+ outcome: result.outcome,
139
+ ...(result.terminal?.duration === undefined
140
+ ? {}
141
+ : { durationSeconds: result.terminal.duration }),
142
+ ...(testCase.baselineSeconds === undefined
143
+ ? {}
144
+ : { baselineSeconds: testCase.baselineSeconds }),
145
+ ...(result.terminal?.credits === undefined
146
+ ? {}
147
+ : { credits: result.terminal.credits }),
148
+ evidenceCaptured: result.evidencePack !== undefined,
149
+ evidenceComplete: result.evidencePack !== undefined &&
150
+ result.terminal?.test_url !== undefined,
151
+ policyIncident: false,
152
+ };
153
+ }
154
+ /**
155
+ * Parse one stored record fail-closed.
156
+ * @param value - Parsed JSONL value
157
+ * @returns Valid pilot record
158
+ */
159
+ function parseStoredRecord(value) {
160
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
161
+ throw new Error("Kane pilot record must be an object");
162
+ }
163
+ const record = value;
164
+ const outcomes = [
165
+ "passed",
166
+ "product_failed",
167
+ "tool_failed",
168
+ "timed_out",
169
+ ];
170
+ if (typeof record.timestamp !== "string" ||
171
+ Number.isNaN(Date.parse(record.timestamp)) ||
172
+ typeof record.application !== "string" ||
173
+ typeof record.caseId !== "string" ||
174
+ !outcomes.includes(record.outcome) ||
175
+ typeof record.evidenceComplete !== "boolean" ||
176
+ typeof record.policyIncident !== "boolean") {
177
+ throw new Error("Kane pilot record has an invalid required field");
178
+ }
179
+ for (const field of [
180
+ "durationSeconds",
181
+ "baselineSeconds",
182
+ "credits",
183
+ ]) {
184
+ if (record[field] !== undefined && typeof record[field] !== "number") {
185
+ throw new Error(`Kane pilot record ${field} must be numeric`);
186
+ }
187
+ }
188
+ if (record.evidenceCaptured !== undefined &&
189
+ typeof record.evidenceCaptured !== "boolean") {
190
+ throw new Error("Kane pilot record evidenceCaptured must be boolean");
191
+ }
192
+ return value;
193
+ }
194
+ /**
195
+ * Read validated JSONL records, treating an absent file as empty.
196
+ * @param resultsPath - Absolute results path
197
+ * @returns Validated records
198
+ */
199
+ async function readRecords(resultsPath) {
200
+ try {
201
+ return (await readFile(resultsPath, "utf8"))
202
+ .split(/\r?\n/u)
203
+ .filter(line => line.trim().length > 0)
204
+ .map(line => parseStoredRecord(JSON.parse(line)));
205
+ }
206
+ catch (error) {
207
+ if (error.code === "ENOENT")
208
+ return [];
209
+ throw error;
210
+ }
211
+ }
212
+ /**
213
+ * Execute each configured case once and append immutable records.
214
+ * @param manifestPath - Pilot manifest path
215
+ * @param runner - Injectable adapter runner
216
+ * @returns Current pilot report
217
+ */
218
+ export async function executeKanePilot(manifestPath, runner = runKane) {
219
+ const absoluteManifest = path.resolve(manifestPath);
220
+ const manifest = parseKanePilotManifest(JSON.parse(await readFile(absoluteManifest, "utf8")));
221
+ const manifestDirectory = path.dirname(absoluteManifest);
222
+ const resultsPath = path.resolve(manifestDirectory, manifest.resultsFile);
223
+ if (!resultsPath.startsWith(`${manifestDirectory}${path.sep}`)) {
224
+ throw new Error("Kane pilot resultsFile escapes the manifest directory");
225
+ }
226
+ const cases = manifest.applications.flatMap(application => application.cases.map(testCase => ({ application, testCase })));
227
+ const records = await cases.reduce(async (previous, entry) => {
228
+ const existing = await previous;
229
+ const result = await runner({
230
+ projectRoot: path.resolve(manifestDirectory, entry.application.projectRoot),
231
+ environment: entry.application.environment,
232
+ mutation: "full",
233
+ objective: entry.testCase.objective,
234
+ url: entry.testCase.url,
235
+ });
236
+ return [
237
+ ...existing,
238
+ toPilotRecord(entry.application, entry.testCase, result),
239
+ ];
240
+ }, Promise.resolve([]));
241
+ await appendFile(resultsPath, `${records.map(record => JSON.stringify(record)).join("\n")}\n`, "utf8");
242
+ return await readKanePilotReport(absoluteManifest);
243
+ }
244
+ /**
245
+ * Read accumulated JSONL records and evaluate the adoption gates.
246
+ * @param manifestPath - Pilot manifest path
247
+ * @returns Current pilot report
248
+ */
249
+ export async function readKanePilotReport(manifestPath) {
250
+ const absoluteManifest = path.resolve(manifestPath);
251
+ const manifest = parseKanePilotManifest(JSON.parse(await readFile(absoluteManifest, "utf8")));
252
+ const resultsPath = path.resolve(path.dirname(absoluteManifest), manifest.resultsFile);
253
+ return buildKanePilotReport(manifest, await readRecords(resultsPath), new Date());
254
+ }
255
+ //# sourceMappingURL=kane-pilot.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kane-pilot.js","sourceRoot":"","sources":["../../src/core/kane-pilot.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ /** Validation contract for the optional Kane browser provider config. */
2
+ /** Kane CLI empirical-browser provider configuration. */
3
+ export interface KaneBrowserConfig {
4
+ readonly enabled?: boolean;
5
+ readonly version?: string;
6
+ readonly cloudUploadApproved?: boolean;
7
+ readonly allowedEnvironments?: readonly string[];
8
+ readonly projectId?: string;
9
+ readonly folderId?: string;
10
+ readonly timeoutSeconds?: number;
11
+ }
12
+ /** Browser-provider configuration nested under `verification`. */
13
+ export interface BrowserVerificationConfig {
14
+ readonly kane?: KaneBrowserConfig;
15
+ }
16
+ /** Empirical verification provider configuration. */
17
+ export interface VerificationConfig {
18
+ readonly browser?: BrowserVerificationConfig;
19
+ }
20
+ /**
21
+ * Validate the optional verification tree.
22
+ * @param value - Untrusted verification value
23
+ * @param source - Config source shown in errors
24
+ * @returns Valid verification config or undefined
25
+ */
26
+ export declare function validateVerificationConfig(value: unknown, source: string): VerificationConfig | undefined;
27
+ //# sourceMappingURL=project-config-kane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config-kane.d.ts","sourceRoot":"","sources":["../../src/core/project-config-kane.ts"],"names":[],"mappings":"AAAA,yEAAyE;AAEzE,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC;IACvC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IACjD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,kEAAkE;AAClE,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,IAAI,CAAC,EAAE,iBAAiB,CAAC;CACnC;AAED,qDAAqD;AACrD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,OAAO,CAAC,EAAE,yBAAyB,CAAC;CAC9C;AAkMD;;;;;GAKG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,OAAO,EACd,MAAM,EAAE,MAAM,GACb,kBAAkB,GAAG,SAAS,CAqBhC"}
@@ -0,0 +1,152 @@
1
+ /** Validation contract for the optional Kane browser provider config. */
2
+ const PRODUCTION_ENVIRONMENTS = new Set(["prod", "production"]);
3
+ /**
4
+ * Detect ASCII control characters without a control-character regex.
5
+ * @param value - Candidate string
6
+ * @returns True when a control character is present
7
+ */
8
+ function containsControlCharacter(value) {
9
+ return Array.from(value).some(character => {
10
+ const codePoint = character.codePointAt(0) ?? 0;
11
+ return codePoint < 32 || codePoint === 127;
12
+ });
13
+ }
14
+ /**
15
+ * Validate an optional non-empty string.
16
+ * @param value - Untrusted field value
17
+ * @param source - Config source shown in errors
18
+ * @param field - Dotted field name
19
+ * @returns Valid string or undefined
20
+ */
21
+ function optionalString(value, source, field) {
22
+ if (value === undefined)
23
+ return undefined;
24
+ if (typeof value !== "string" ||
25
+ value.trim() !== value ||
26
+ value.length === 0 ||
27
+ containsControlCharacter(value)) {
28
+ throw new Error(`Invalid ${field} in ${source}: expected a non-empty string`);
29
+ }
30
+ return value;
31
+ }
32
+ /**
33
+ * Validate an optional boolean.
34
+ * @param value - Untrusted field value
35
+ * @param source - Config source shown in errors
36
+ * @param field - Dotted field name
37
+ * @returns Valid boolean or undefined
38
+ */
39
+ function optionalBoolean(value, source, field) {
40
+ if (value === undefined)
41
+ return undefined;
42
+ if (typeof value !== "boolean") {
43
+ throw new Error(`Invalid ${field} in ${source}: expected a boolean`);
44
+ }
45
+ return value;
46
+ }
47
+ /**
48
+ * Validate the non-production allow-list.
49
+ * @param value - Untrusted allow-list
50
+ * @param source - Config source shown in errors
51
+ * @returns Valid environment names or undefined
52
+ */
53
+ function allowedEnvironments(value, source) {
54
+ if (value === undefined)
55
+ return undefined;
56
+ if (!Array.isArray(value) || value.length === 0) {
57
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: expected a non-empty string array`);
58
+ }
59
+ const environments = value.map((entry, index) => optionalString(entry, source, `verification.browser.kane.allowedEnvironments[${String(index)}]`));
60
+ if (environments.some(environment => environment === undefined)) {
61
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: expected strings`);
62
+ }
63
+ const normalized = environments;
64
+ if (normalized.some(environment => PRODUCTION_ENVIRONMENTS.has(environment.toLowerCase()))) {
65
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: production is never permitted`);
66
+ }
67
+ if (new Set(normalized).size !== normalized.length) {
68
+ throw new Error(`Invalid verification.browser.kane.allowedEnvironments in ${source}: duplicate values are not allowed`);
69
+ }
70
+ return normalized;
71
+ }
72
+ /**
73
+ * Validate the bounded provider timeout.
74
+ * @param value - Untrusted timeout value
75
+ * @param source - Config source shown in errors
76
+ * @returns Valid seconds or undefined
77
+ */
78
+ function optionalTimeout(value, source) {
79
+ if (value === undefined)
80
+ return undefined;
81
+ if (!Number.isInteger(value) || Number(value) < 1 || Number(value) > 600) {
82
+ throw new Error(`Invalid verification.browser.kane.timeoutSeconds in ${source}: expected an integer from 1 to 600`);
83
+ }
84
+ return Number(value);
85
+ }
86
+ /**
87
+ * Require an exact semantic version when a version is present.
88
+ * @param version - Optional provider version
89
+ * @param source - Config source shown in errors
90
+ */
91
+ function assertExactVersion(version, source) {
92
+ if (version !== undefined && !/^\d+\.\d+\.\d+$/u.test(version)) {
93
+ throw new Error(`Invalid verification.browser.kane.version in ${source}: expected an exact semantic version`);
94
+ }
95
+ }
96
+ /**
97
+ * Validate the optional Kane provider block.
98
+ * @param value - Untrusted provider value
99
+ * @param source - Config source shown in errors
100
+ * @returns Valid provider config or undefined
101
+ */
102
+ function validateKaneConfig(value, source) {
103
+ if (value === undefined)
104
+ return undefined;
105
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
106
+ throw new Error(`Invalid verification.browser.kane in ${source}: expected an object`);
107
+ }
108
+ const input = value;
109
+ const enabled = optionalBoolean(input.enabled, source, "verification.browser.kane.enabled");
110
+ const cloudUploadApproved = optionalBoolean(input.cloudUploadApproved, source, "verification.browser.kane.cloudUploadApproved");
111
+ const version = optionalString(input.version, source, "verification.browser.kane.version");
112
+ const environments = allowedEnvironments(input.allowedEnvironments, source);
113
+ const projectId = optionalString(input.projectId, source, "verification.browser.kane.projectId");
114
+ const folderId = optionalString(input.folderId, source, "verification.browser.kane.folderId");
115
+ const timeoutSeconds = optionalTimeout(input.timeoutSeconds, source);
116
+ assertExactVersion(version, source);
117
+ return {
118
+ ...(enabled === undefined ? {} : { enabled }),
119
+ ...(version === undefined ? {} : { version }),
120
+ ...(cloudUploadApproved === undefined ? {} : { cloudUploadApproved }),
121
+ ...(environments === undefined
122
+ ? {}
123
+ : { allowedEnvironments: environments }),
124
+ ...(projectId === undefined ? {} : { projectId }),
125
+ ...(folderId === undefined ? {} : { folderId }),
126
+ ...(timeoutSeconds === undefined ? {} : { timeoutSeconds }),
127
+ };
128
+ }
129
+ /**
130
+ * Validate the optional verification tree.
131
+ * @param value - Untrusted verification value
132
+ * @param source - Config source shown in errors
133
+ * @returns Valid verification config or undefined
134
+ */
135
+ export function validateVerificationConfig(value, source) {
136
+ if (value === undefined)
137
+ return undefined;
138
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
139
+ throw new Error(`Invalid verification in ${source}: expected an object`);
140
+ }
141
+ const browser = value.browser;
142
+ if (browser === undefined)
143
+ return {};
144
+ if (browser === null ||
145
+ typeof browser !== "object" ||
146
+ Array.isArray(browser)) {
147
+ throw new Error(`Invalid verification.browser in ${source}: expected an object`);
148
+ }
149
+ const kane = validateKaneConfig(browser.kane, source);
150
+ return { browser: kane === undefined ? {} : { kane } };
151
+ }
152
+ //# sourceMappingURL=project-config-kane.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-config-kane.js","sourceRoot":"","sources":["../../src/core/project-config-kane.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  import { type Harness } from "./config.js";
2
+ import { type VerificationConfig } from "./project-config-kane.js";
3
+ export type { BrowserVerificationConfig, KaneBrowserConfig, VerificationConfig, } from "./project-config-kane.js";
2
4
  /** Filename of the per-project config, relative to the destination root */
3
5
  export declare const PROJECT_CONFIG_FILENAME = ".lisa.config.json";
4
6
  /** Default durable project-rules destination used by governance skills. */
@@ -36,6 +38,8 @@ export interface ProjectConfig {
36
38
  readonly projectRulesFile?: string;
37
39
  /** Optional overrides for the machine-managed learnings ledger. */
38
40
  readonly learnings?: LearningsConfig;
41
+ /** Optional empirical verification provider configuration. */
42
+ readonly verification?: VerificationConfig;
39
43
  }
40
44
  /**
41
45
  * Resolve the validated project-rules path from config or its default.
@@ -124,6 +128,13 @@ export declare function shouldPersistProjectConfig(params: {
124
128
  * @returns The effective harness to use for this run
125
129
  */
126
130
  export declare function resolveHarness(flagValue: Harness | undefined, projectConfig: ProjectConfig): Harness;
131
+ /**
132
+ * Type-guard validator for raw parsed config. Throws on invalid harness value.
133
+ * @param parsed - Raw value parsed from JSON (untrusted shape)
134
+ * @param configPath - Absolute path to the source file (used in error messages)
135
+ * @returns A typed ProjectConfig with only the keys we recognize
136
+ */
137
+ export declare function validateProjectConfig(parsed: unknown, configPath: string): ProjectConfig;
127
138
  /**
128
139
  * Narrow an unknown value to the Harness type
129
140
  * @param value - Untrusted value to test
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAgCF,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;CACtC;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,GACpB,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAQV;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAQT;AA4MD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAK1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAYtE"}
1
+ {"version":3,"file":"project-config.d.ts","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAYA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,aAAa,CAAC;AACrB,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAC;AAElC,YAAY,EACV,yBAAyB,EACzB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,0BAA0B,CAAC;AAElC,2EAA2E;AAC3E,eAAO,MAAM,uBAAuB,sBAAsB,CAAC;AAE3D,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,mCAAmC,CAAC;AAE3E,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,yBAAyB,CAAC;AAEjE;;;;;;;;;GASG;AACH,eAAO,MAAM,8BAA8B,QAG1C,CAAC;AAgCF,uEAAuE;AACvE,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,+CAA+C;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IACnC,mEAAmE;IACnE,QAAQ,CAAC,SAAS,CAAC,EAAE,eAAe,CAAC;IACrC,8DAA8D;IAC9D,QAAQ,CAAC,YAAY,CAAC,EAAE,kBAAkB,CAAC;CAC5C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAKrE;AAED;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,CAQzE;AAED;;;;;;;GAOG;AACH,wBAAgB,iCAAiC,CAC/C,MAAM,EAAE,aAAa,GACpB,MAAM,CAKR;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,aAAa,CAAC,CAQxB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,IAAI,CAAC,CAKf;AAED;;;;;;;;;GASG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAE3E;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,WAAW,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9C,QAAQ,CAAC,eAAe,EAAE,OAAO,CAAC;CACnC,GAAG,OAAO,CAQV;AA6BD;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,SAAS,EAAE,OAAO,GAAG,SAAS,EAC9B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAQT;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,EACf,UAAU,EAAE,MAAM,GACjB,aAAa,CAoBf;AA+KD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,OAAO,CAK1D;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS,CAGnE;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,4BAA4B,CAChD,OAAO,EAAE,MAAM,GACd,OAAO,CAAC;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,CAAC,CAWtE"}
@@ -11,6 +11,7 @@ import * as fse from "fs-extra";
11
11
  import { readFile, writeFile } from "node:fs/promises";
12
12
  import * as path from "node:path";
13
13
  import { ACCEPTED_HARNESS_INPUTS, DEFAULT_HARNESS, HARNESS_ALIASES, HARNESS_VALUES, LEGACY_HARNESS_ALIASES, } from "./config.js";
14
+ import { validateVerificationConfig, } from "./project-config-kane.js";
14
15
  /** Filename of the per-project config, relative to the destination root */
15
16
  export const PROJECT_CONFIG_FILENAME = ".lisa.config.json";
16
17
  /** Default durable project-rules destination used by governance skills. */
@@ -203,7 +204,7 @@ export function resolveHarness(flagValue, projectConfig) {
203
204
  * @param configPath - Absolute path to the source file (used in error messages)
204
205
  * @returns A typed ProjectConfig with only the keys we recognize
205
206
  */
206
- function validateProjectConfig(parsed, configPath) {
207
+ export function validateProjectConfig(parsed, configPath) {
207
208
  if (parsed === null || typeof parsed !== "object" || Array.isArray(parsed)) {
208
209
  throw new Error(`Invalid ${PROJECT_CONFIG_FILENAME} at ${configPath}: expected JSON object`);
209
210
  }
@@ -213,10 +214,12 @@ function validateProjectConfig(parsed, configPath) {
213
214
  ? undefined
214
215
  : validateProjectRulesFile(obj.projectRulesFile, configPath);
215
216
  const learnings = validateLearningsConfig(obj.learnings, configPath);
217
+ const verification = validateVerificationConfig(obj.verification, configPath);
216
218
  return {
217
219
  ...(harness === undefined ? {} : { harness }),
218
220
  ...(projectRulesFile === undefined ? {} : { projectRulesFile }),
219
221
  ...(learnings === undefined ? {} : { learnings }),
222
+ ...(verification === undefined ? {} : { verification }),
220
223
  };
221
224
  }
222
225
  /**
@@ -388,11 +391,10 @@ export async function detectLegacyHarnessMigration(destDir) {
388
391
  return undefined;
389
392
  }
390
393
  const raw = await readRawObject(configPath);
391
- const value = raw.harness;
392
- if (typeof value !== "string") {
394
+ if (typeof raw.harness !== "string") {
393
395
  return undefined;
394
396
  }
395
- const to = LEGACY_HARNESS_ALIASES[value];
396
- return to === undefined ? undefined : { from: value, to };
397
+ const to = LEGACY_HARNESS_ALIASES[raw.harness];
398
+ return to === undefined ? undefined : { from: raw.harness, to };
397
399
  }
398
400
  //# sourceMappingURL=project-config.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,GAAG,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,eAAe,EACf,cAAc,EACd,sBAAsB,GAEvB,MAAM,aAAa,CAAC;AAErB,2EAA2E;AAC3E,MAAM,CAAC,MAAM,uBAAuB,GAAG,mBAAmB,CAAC;AAE3D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAG,gCAAgC,CAAC;AAE3E,uEAAuE;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAAG,sBAAsB,CAAC;AAEjE;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAC3D,OAAO,EACP,0BAA0B,CAC3B,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,8BAA8B,GAAG;IACrC,eAAe;IACf,eAAe;IACf,sBAAsB;IACtB,eAAe;CACP,CAAC;AAEX;;;;;GAKG;AACH,MAAM,4BAA4B,GAAG,CAAC,WAAW,EAAE,WAAW,CAAU,CAAC;AAEzE;;;GAGG;AACH,MAAM,4BAA4B,GAAG;IACnC,iCAAiC;CACzB,CAAC;AAyBX;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,MAAqB;IAC3D,OAAO,wBAAwB,CAC7B,MAAM,CAAC,gBAAgB,IAAI,0BAA0B,EACrD,uBAAuB,CACxB,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAqB;IAC/D,IAAI,MAAM,CAAC,SAAS,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QACzC,OAAO,qBAAqB,CAC1B,MAAM,CAAC,SAAS,CAAC,IAAI,EACrB,uBAAuB,CACxB,CAAC;IACJ,CAAC;IACD,OAAO,8BAA8B,CAAC;AACxC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,MAAqB;IAErB,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CACpB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,EACnD,0BAA0B,CAC3B,CAAC;AACJ,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACxC,OAAO,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAe,EACf,OAAsB;IAEtB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC;IAC3C,MAAM,SAAS,CAAC,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAC9E,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAAe;IACvD,OAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;AACrE,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,0BAA0B,CAAC,MAK1C;IACC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CACL,MAAM,CAAC,WAAW,KAAK,SAAS;QAChC,MAAM,CAAC,eAAe,KAAK,MAAM,CAAC,eAAe,CAClD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;GAWG;AACH,KAAK,UAAU,aAAa,CAC1B,UAAkB;IAElB,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAAY,CAAC;IACzE,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,WAAW,uBAAuB,OAAO,UAAU,wBAAwB,CAC5E,CAAC;IACJ,CAAC;IACD,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAC5B,SAA8B,EAC9B,aAA4B;IAE5B,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,aAAa,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;QACxC,OAAO,aAAa,CAAC,OAAO,CAAC;IAC/B,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;GAKG;AACH,SAAS,qBAAqB,CAC5B,MAAe,EACf,UAAkB;IAElB,IAAI,MAAM,KAAK,IAAI,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC3E,MAAM,IAAI,KAAK,CACb,WAAW,uBAAuB,OAAO,UAAU,wBAAwB,CAC5E,CAAC;IACJ,CAAC;IACD,MAAM,GAAG,GAAG,MAAiC,CAAC;IAC9C,MAAM,OAAO,GAAG,uBAAuB,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,gBAAgB,GACpB,GAAG,CAAC,gBAAgB,KAAK,SAAS;QAChC,CAAC,CAAC,SAAS;QACX,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;IACjE,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IACrE,OAAO;QACL,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;QAC7C,GAAG,CAAC,gBAAgB,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,CAAC;QAC/D,GAAG,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,CAAC;KAClD,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,KAAc,EACd,UAAkB;IAElB,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,qEAAqE;IACrE,qEAAqE;IACrE,wEAAwE;IACxE,4EAA4E;IAC5E,MAAM,MAAM,GACV,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACxE,MAAM,UAAU,GACd,MAAM,IAAI,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;IAC9E,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,MAAM,OAAO,GAAG,uBAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,MAAM,IAAI,KAAK,CACb,sBAAsB,UAAU,cAAc,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CACtF,CAAC;AACJ,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,gCAAgC,CACvC,KAAc,EACd,MAAc,EACd,KAAa;IAEb,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,CAAC,MAAM,KAAK,CAAC;QAClB,KAAK,CAAC,IAAI,EAAE,KAAK,KAAK;QACtB,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;QACpB,wBAAwB,CAAC,KAAK,CAAC;QAC/B,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;QACvB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAC5B,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,OAAO,MAAM,uCAAuC,CACrE,CAAC;IACJ,CAAC;IACD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAClC,IACE,QAAQ,CAAC,IAAI,CACX,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,EAAE,IAAI,OAAO,KAAK,GAAG,IAAI,OAAO,KAAK,IAAI,CACjE,EACD,CAAC;QACD,MAAM,IAAI,KAAK,CACb,WAAW,KAAK,OAAO,MAAM,iCAAiC,CAC/D,CAAC;IACJ,CAAC;IACD,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,EAAE,CAAC;QACtD,MAAM,IAAI,KAAK,CAAC,WAAW,KAAK,OAAO,MAAM,4BAA4B,CAAC,CAAC;IAC7E,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,wBAAwB,CAAC,KAAc,EAAE,MAAc;IAC9D,MAAM,IAAI,GAAG,gCAAgC,CAC3C,KAAK,EACL,MAAM,EACN,kBAAkB,CACnB,CAAC;IACF,IACE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE;QACvC,0BAA0B,CAAC,WAAW,EAAE,EACxC,CAAC;QACD,MAAM,IAAI,KAAK,CACb,+BAA+B,MAAM,KAAK,0BAA0B,4CAA4C,CACjH,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,qBAAqB,CAAC,KAAc,EAAE,MAAc;IAC3D,MAAM,IAAI,GAAG,gCAAgC,CAC3C,KAAK,EACL,MAAM,EACN,gBAAgB,CACjB,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC9C,MAAM,OAAO,GAAG,UAAU,CAAC,WAAW,EAAE,CAAC;IACzC,MAAM,eAAe,GAAG,8BAA8B,CAAC,IAAI,CACzD,MAAM,CAAC,EAAE,CAAC,UAAU,KAAK,MAAM,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CACvE,CAAC;IACF,MAAM,eAAe,GACnB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,GAAG;QACtC,4BAA4B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,4BAA4B,CAAC,IAAI,CACxD,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAC/C,CAAC;IACF,IAAI,eAAe,IAAI,eAAe,IAAI,gBAAgB,EAAE,CAAC;QAC3D,MAAM,QAAQ,GAAG;YACf,GAAG,8BAA8B;YACjC,GAAG,4BAA4B;YAC/B,GAAG,4BAA4B;SAChC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACb,MAAM,IAAI,KAAK,CACb,6BAA6B,MAAM,gFAAgF,QAAQ,kBAAkB,8BAA8B,8BAA8B,CAC1M,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,SAAS,uBAAuB,CAC9B,KAAc,EACd,MAAc;IAEd,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,IAAI,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACxE,MAAM,IAAI,KAAK,CAAC,wBAAwB,MAAM,sBAAsB,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,GAAI,KAAiC,CAAC,IAAI,CAAC;IACrD,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;QACvB,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;AACvD,CAAC;AAED;;;;GAIG;AACH,SAAS,wBAAwB,CAAC,KAAa;IAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;QACxC,MAAM,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,GAAG,CAAC;IACpC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,SAAS,CAAC,KAAc;IACtC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACxB,cAAoC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACtD,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,SAAS,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC;IAClD,OAAO,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;AACtD,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,OAAe;IAEf,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IAC/D,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC;QACxC,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;IAC1B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,EAAE,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACzC,OAAO,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;AAC5D,CAAC"}
1
+ {"version":3,"file":"project-config.js","sourceRoot":"","sources":["../../src/core/project-config.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -102,7 +102,7 @@
102
102
  "form-data": ">=4.0.6"
103
103
  },
104
104
  "name": "@codyswann/lisa",
105
- "version": "2.247.2",
105
+ "version": "2.250.0",
106
106
  "description": "Claude Code governance framework that applies guardrails, guidance, and automated enforcement to projects",
107
107
  "main": "dist/index.js",
108
108
  "exports": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "lisa",
3
- "version": "2.247.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"
@@ -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