lazycodex-ai 5.1.61 → 5.1.63

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/dist/cli/index.js +1722 -281
  2. package/dist/cli/service-auth/closed-device-login.fixture.d.ts +1 -0
  3. package/dist/cli/service-auth/credential-lock.d.ts +8 -2
  4. package/dist/cli/service-auth/index.d.ts +2 -1
  5. package/dist/cli/service-auth/keychain-helper/access.d.ts +27 -0
  6. package/dist/cli/service-auth/keychain-helper/approval-cache.d.ts +51 -0
  7. package/dist/cli/service-auth/keychain-helper/client.d.ts +68 -0
  8. package/dist/cli/service-auth/keychain-helper/creator-handoff.d.ts +31 -0
  9. package/dist/cli/service-auth/keychain-helper/darwin-backend.d.ts +75 -0
  10. package/dist/cli/service-auth/keychain-helper/darwin-read.d.ts +46 -0
  11. package/dist/cli/service-auth/keychain-helper/darwin-store.d.ts +28 -0
  12. package/dist/cli/service-auth/keychain-helper/fake-keychain.test-support.d.ts +85 -0
  13. package/dist/cli/service-auth/keychain-helper/location.d.ts +28 -0
  14. package/dist/cli/service-auth/keychain-helper/migration.d.ts +20 -0
  15. package/dist/cli/service-auth/keychain-helper/owner-marker.d.ts +7 -0
  16. package/dist/cli/service-auth/keychain-helper/pin.d.ts +20 -0
  17. package/dist/cli/service-auth/keychain-helper/process-copy.test-support.d.ts +3 -0
  18. package/dist/cli/service-auth/keychain-helper/process-state.d.ts +19 -0
  19. package/dist/cli/service-auth/keychain-helper/prompt-lock.d.ts +14 -0
  20. package/dist/cli/service-auth/keychain-helper/recovery.d.ts +34 -0
  21. package/dist/cli/service-auth/keychain-helper/runtime-capabilities.d.ts +13 -0
  22. package/dist/cli/service-auth/keychain-helper/secrets-gate.d.ts +4 -0
  23. package/dist/cli/service-auth/keychain-helper/signature.d.ts +17 -0
  24. package/dist/cli/service-auth/keychain-helper/store-binding.d.ts +46 -0
  25. package/dist/cli/service-auth/keystore.d.ts +18 -3
  26. package/dist/cli/service-auth/session.d.ts +29 -2
  27. package/dist/cli/service-auth/sync-pin-retire.d.ts +7 -0
  28. package/dist/cli-node/index.js +1722 -281
  29. package/package.json +1 -1
  30. package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
  31. package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
  32. package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
  33. package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
  34. package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
  35. package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
  36. package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
  37. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
  38. package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
  39. package/packages/omo-codex/plugin/components/lcx/skills/lcx-doctor/SKILL.md +1 -1
  40. package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
  41. package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
  42. package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
  43. package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
  44. package/packages/omo-codex/plugin/components/rules/package.json +1 -1
  45. package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
  46. package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
  47. package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
  48. package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
  49. package/packages/omo-codex/plugin/components/ultrawork/dist/cli.js +2 -0
  50. package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
  51. package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
  52. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +1 -1
  53. package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/intent-unclear.md +2 -2
  54. package/packages/omo-codex/plugin/components/ultrawork/src/directive-content.ts +1 -1
  55. package/packages/omo-codex/plugin/components/ulw-execute-continuation/directive.md +1 -1
  56. package/packages/omo-codex/plugin/components/ulw-execute-continuation/hooks/hooks.json +1 -1
  57. package/packages/omo-codex/plugin/components/ulw-execute-continuation/package.json +1 -1
  58. package/packages/omo-codex/plugin/components/ulw-loop/directive.md +2 -0
  59. package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +5 -5
  60. package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
  61. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/SKILL.md +1 -1
  62. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/define-goal.md +1 -1
  63. package/packages/omo-codex/plugin/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +10 -10
  64. package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
  65. package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
  66. package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
  67. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
  68. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
  69. package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
  70. package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
  71. package/packages/omo-codex/plugin/hooks/post-tool-use-recording-spawn-admission.json +1 -1
  72. package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
  73. package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
  74. package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
  75. package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
  76. package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
  77. package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
  78. package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
  79. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-execute-continuation.json +1 -1
  80. package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
  81. package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
  82. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
  83. package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
  84. package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
  85. package/packages/omo-codex/plugin/package-lock.json +12 -12
  86. package/packages/omo-codex/plugin/package.json +1 -1
  87. package/packages/omo-codex/plugin/scripts/sync-skills.mjs +6 -3
  88. package/packages/omo-codex/plugin/skills/ast-grep/AGENTS.md +2 -2
  89. package/packages/omo-codex/plugin/skills/ast-grep/README.md +4 -4
  90. package/packages/omo-codex/plugin/skills/ast-grep/SKILL.md +10 -8
  91. package/packages/omo-codex/plugin/skills/ast-grep/references/cli.md +4 -3
  92. package/packages/omo-codex/plugin/skills/ast-grep/references/patterns.md +5 -5
  93. package/packages/omo-codex/plugin/skills/ast-grep/references/pitfalls.md +3 -3
  94. package/packages/omo-codex/plugin/skills/ast-grep/references/recipes.md +6 -4
  95. package/packages/omo-codex/plugin/skills/ast-grep/references/yaml-rules.md +3 -3
  96. package/packages/omo-codex/plugin/skills/ast-grep/scripts/ast_grep_helper.py +3 -3
  97. package/packages/omo-codex/plugin/skills/browser/SKILL.md +2 -3
  98. package/packages/omo-codex/plugin/skills/browser/references/owned-engine/README.md +1 -1
  99. package/packages/omo-codex/plugin/skills/browser/runtime/omowright/manifest.json +1 -1
  100. package/packages/omo-codex/plugin/skills/coding-agent-sessions/AGENTS.md +1 -1
  101. package/packages/omo-codex/plugin/skills/coding-agent-sessions/SKILL.md +2 -1
  102. package/packages/omo-codex/plugin/skills/data-scientist/SKILL.md +8 -6
  103. package/packages/omo-codex/plugin/skills/data-scientist/references/placement.md +9 -5
  104. package/packages/omo-codex/plugin/skills/data-scientist/references/uv-setup.md +3 -3
  105. package/packages/omo-codex/plugin/skills/data-scientist/references/visualization.md +19 -4
  106. package/packages/omo-codex/plugin/skills/debugging/SKILL.md +5 -5
  107. package/packages/omo-codex/plugin/skills/debugging/references/methodology/02-investigate.md +2 -2
  108. package/packages/omo-codex/plugin/skills/debugging/references/methodology/06-fix.md +2 -0
  109. package/packages/omo-codex/plugin/skills/debugging/references/methodology/09-cleanup.md +2 -2
  110. package/packages/omo-codex/plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +1 -1
  111. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/bundled-js-binary.md +1 -1
  112. package/packages/omo-codex/plugin/skills/debugging/references/runtimes/native-binary.md +1 -1
  113. package/packages/omo-codex/plugin/skills/debugging/references/tools/browser-qa.md +1 -2
  114. package/packages/omo-codex/plugin/skills/frontend/SKILL.md +4 -4
  115. package/packages/omo-codex/plugin/skills/frontend/references/design/README.md +2 -2
  116. package/packages/omo-codex/plugin/skills/frontend/references/design/component-catalogs.md +1 -1
  117. package/packages/omo-codex/plugin/skills/frontend/references/design/design-system-architecture.md +2 -2
  118. package/packages/omo-codex/plugin/skills/frontend/references/design/print-paged-media.md +1 -1
  119. package/packages/omo-codex/plugin/skills/frontend/references/design/react-dev-tooling-skill.md +1 -1
  120. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/lane-a-direction.md +5 -5
  121. package/packages/omo-codex/plugin/skills/frontend/references/designpowers/routing.md +2 -2
  122. package/packages/omo-codex/plugin/skills/frontend/references/perfection/README.md +1 -2
  123. package/packages/omo-codex/plugin/skills/frontend/references/perfection/react-perf-tooling.md +27 -8
  124. package/packages/omo-codex/plugin/skills/frontend/scripts/perfection/lighthouse-audit.py +0 -1
  125. package/packages/omo-codex/plugin/skills/git-master/SKILL.md +12 -2
  126. package/packages/omo-codex/plugin/skills/init-deep/SKILL.md +1 -1
  127. package/packages/omo-codex/plugin/skills/lcx-doctor/SKILL.md +1 -1
  128. package/packages/omo-codex/plugin/skills/lsp-setup/SKILL.md +24 -15
  129. package/packages/omo-codex/plugin/skills/lsp-setup/references/bash/README.md +3 -3
  130. package/packages/omo-codex/plugin/skills/lsp-setup/references/c-cpp/README.md +2 -2
  131. package/packages/omo-codex/plugin/skills/lsp-setup/references/csharp/README.md +2 -2
  132. package/packages/omo-codex/plugin/skills/lsp-setup/references/dart/README.md +2 -2
  133. package/packages/omo-codex/plugin/skills/lsp-setup/references/elixir/README.md +2 -2
  134. package/packages/omo-codex/plugin/skills/lsp-setup/references/go/README.md +2 -2
  135. package/packages/omo-codex/plugin/skills/lsp-setup/references/haskell/README.md +2 -2
  136. package/packages/omo-codex/plugin/skills/lsp-setup/references/java/README.md +3 -3
  137. package/packages/omo-codex/plugin/skills/lsp-setup/references/julia/README.md +3 -3
  138. package/packages/omo-codex/plugin/skills/lsp-setup/references/kotlin/README.md +4 -4
  139. package/packages/omo-codex/plugin/skills/lsp-setup/references/lua/README.md +2 -2
  140. package/packages/omo-codex/plugin/skills/lsp-setup/references/php/README.md +3 -3
  141. package/packages/omo-codex/plugin/skills/lsp-setup/references/python/README.md +13 -12
  142. package/packages/omo-codex/plugin/skills/lsp-setup/references/ruby/README.md +2 -2
  143. package/packages/omo-codex/plugin/skills/lsp-setup/references/rust/README.md +2 -2
  144. package/packages/omo-codex/plugin/skills/lsp-setup/references/swift/README.md +4 -4
  145. package/packages/omo-codex/plugin/skills/lsp-setup/references/terraform/README.md +2 -2
  146. package/packages/omo-codex/plugin/skills/lsp-setup/references/typescript/README.md +3 -3
  147. package/packages/omo-codex/plugin/skills/lsp-setup/references/yaml/README.md +2 -2
  148. package/packages/omo-codex/plugin/skills/lsp-setup/references/zig/README.md +2 -2
  149. package/packages/omo-codex/plugin/skills/lsp-setup/scripts/detect-lsp.ts +1 -1
  150. package/packages/omo-codex/plugin/skills/lsp-setup/scripts/lsp-server-table.ts +3 -2
  151. package/packages/omo-codex/plugin/skills/programming/SKILL.md +5 -5
  152. package/packages/omo-codex/plugin/skills/programming/references/code-smells.md +2 -2
  153. package/packages/omo-codex/plugin/skills/programming/references/go/README.md +3 -3
  154. package/packages/omo-codex/plugin/skills/programming/references/python/README.md +8 -8
  155. package/packages/omo-codex/plugin/skills/programming/references/python/data-processing.md +9 -9
  156. package/packages/omo-codex/plugin/skills/programming/references/python/libraries.md +3 -3
  157. package/packages/omo-codex/plugin/skills/programming/references/python/one-liners.md +1 -1
  158. package/packages/omo-codex/plugin/skills/programming/references/python/pyproject-strict.md +1 -1
  159. package/packages/omo-codex/plugin/skills/programming/references/rust/libraries.md +2 -2
  160. package/packages/omo-codex/plugin/skills/programming/references/rust-ub/README.md +3 -3
  161. package/packages/omo-codex/plugin/skills/programming/references/typescript/README.md +5 -5
  162. package/packages/omo-codex/plugin/skills/programming/scripts/typescript/new-project.ts +1 -1
  163. package/packages/omo-codex/plugin/skills/refactor/SKILL.md +36 -36
  164. package/packages/omo-codex/plugin/skills/remove-ai-slops/SKILL.md +6 -6
  165. package/packages/omo-codex/plugin/skills/review-work/SKILL.md +2 -2
  166. package/packages/omo-codex/plugin/skills/ultimate-browsing/SKILL.md +11 -8
  167. package/packages/omo-codex/plugin/skills/ultimate-browsing/engine/AGENTS.md +4 -4
  168. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/README.md +2 -2
  169. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/career.md +1 -1
  170. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  171. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/agent-reach/web.md +4 -4
  172. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/chrome-stealth.md +2 -1
  173. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/README.md +17 -18
  174. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/fallback.md +10 -6
  175. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/jina.md +12 -12
  176. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/naver.md +3 -3
  177. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/playwright.md +1 -1
  178. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/rss.md +1 -1
  179. package/packages/omo-codex/plugin/skills/ultimate-browsing/references/insane-search/tls-impersonate.md +12 -7
  180. package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +2 -0
  181. package/packages/omo-codex/plugin/skills/ulw-execute/SKILL.md +9 -6
  182. package/packages/omo-codex/plugin/skills/ulw-loop/SKILL.md +1 -1
  183. package/packages/omo-codex/plugin/skills/ulw-loop/references/define-goal.md +1 -1
  184. package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +10 -10
  185. package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +1 -1
  186. package/packages/omo-codex/plugin/skills/ulw-plan/references/intent-unclear.md +2 -2
  187. package/packages/omo-codex/plugin/skills/ulw-research/SKILL.md +4 -4
  188. package/packages/omo-codex/plugin/skills/ulw-research/references/deliverable-phase.md +5 -5
  189. package/packages/omo-codex/plugin/skills/ulw-research/references/report-visualization.md +2 -2
  190. package/packages/omo-codex/plugin/skills/ulw-research/references/research-collection.md +2 -2
  191. package/packages/omo-codex/plugin/skills/ulw-research/references/unit-rules.md +2 -2
  192. package/packages/omo-codex/plugin/skills/visual-qa/AGENTS.md +1 -1
  193. package/packages/omo-codex/plugin/skills/visual-qa/SKILL.md +5 -5
  194. package/packages/omo-codex/plugin/skills/visual-qa/references/browser-setup.md +4 -2
  195. package/packages/omo-codex/plugin/test/sync-skills-codex-compatibility.test.mjs +2 -0
  196. package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +7 -3
  197. package/packages/omo-codex/scripts/install-dist/install-local.mjs +2 -2
  198. package/packages/prompts-core/prompts/ultrawork/codex.md +2 -0
  199. package/packages/shared-skills/skills/ast-grep/AGENTS.md +2 -2
  200. package/packages/shared-skills/skills/ast-grep/README.md +4 -4
  201. package/packages/shared-skills/skills/ast-grep/SKILL.md +10 -8
  202. package/packages/shared-skills/skills/ast-grep/references/cli.md +4 -3
  203. package/packages/shared-skills/skills/ast-grep/references/patterns.md +5 -5
  204. package/packages/shared-skills/skills/ast-grep/references/pitfalls.md +3 -3
  205. package/packages/shared-skills/skills/ast-grep/references/recipes.md +6 -4
  206. package/packages/shared-skills/skills/ast-grep/references/yaml-rules.md +3 -3
  207. package/packages/shared-skills/skills/ast-grep/scripts/ast_grep_helper.py +3 -3
  208. package/packages/shared-skills/skills/browser/SKILL.md +2 -3
  209. package/packages/shared-skills/skills/browser/references/owned-engine/README.md +1 -1
  210. package/packages/shared-skills/skills/browser/runtime/omowright/manifest.json +1 -1
  211. package/packages/shared-skills/skills/coding-agent-sessions/AGENTS.md +1 -1
  212. package/packages/shared-skills/skills/coding-agent-sessions/SKILL.md +2 -1
  213. package/packages/shared-skills/skills/data-scientist/SKILL.md +8 -6
  214. package/packages/shared-skills/skills/data-scientist/references/placement.md +9 -5
  215. package/packages/shared-skills/skills/data-scientist/references/uv-setup.md +3 -3
  216. package/packages/shared-skills/skills/data-scientist/references/visualization.md +19 -4
  217. package/packages/shared-skills/skills/debugging/SKILL.md +5 -5
  218. package/packages/shared-skills/skills/debugging/references/methodology/02-investigate.md +2 -2
  219. package/packages/shared-skills/skills/debugging/references/methodology/06-fix.md +2 -0
  220. package/packages/shared-skills/skills/debugging/references/methodology/09-cleanup.md +2 -2
  221. package/packages/shared-skills/skills/debugging/references/methodology/partial-runtime-evidence.md +1 -1
  222. package/packages/shared-skills/skills/debugging/references/runtimes/bundled-js-binary.md +1 -1
  223. package/packages/shared-skills/skills/debugging/references/runtimes/native-binary.md +1 -1
  224. package/packages/shared-skills/skills/debugging/references/tools/browser-qa.md +1 -2
  225. package/packages/shared-skills/skills/frontend/SKILL.md +4 -4
  226. package/packages/shared-skills/skills/frontend/references/design/README.md +2 -2
  227. package/packages/shared-skills/skills/frontend/references/design/component-catalogs.md +1 -1
  228. package/packages/shared-skills/skills/frontend/references/design/design-system-architecture.md +2 -2
  229. package/packages/shared-skills/skills/frontend/references/design/print-paged-media.md +1 -1
  230. package/packages/shared-skills/skills/frontend/references/design/react-dev-tooling-skill.md +1 -1
  231. package/packages/shared-skills/skills/frontend/references/designpowers/lane-a-direction.md +5 -5
  232. package/packages/shared-skills/skills/frontend/references/designpowers/routing.md +2 -2
  233. package/packages/shared-skills/skills/frontend/references/perfection/README.md +1 -2
  234. package/packages/shared-skills/skills/frontend/references/perfection/react-perf-tooling.md +27 -8
  235. package/packages/shared-skills/skills/frontend/scripts/perfection/lighthouse-audit.py +0 -1
  236. package/packages/shared-skills/skills/git-master/SKILL.md +12 -2
  237. package/packages/shared-skills/skills/init-deep/SKILL.md +1 -1
  238. package/packages/shared-skills/skills/lsp-setup/SKILL.md +24 -15
  239. package/packages/shared-skills/skills/lsp-setup/references/bash/README.md +3 -3
  240. package/packages/shared-skills/skills/lsp-setup/references/c-cpp/README.md +2 -2
  241. package/packages/shared-skills/skills/lsp-setup/references/csharp/README.md +2 -2
  242. package/packages/shared-skills/skills/lsp-setup/references/dart/README.md +2 -2
  243. package/packages/shared-skills/skills/lsp-setup/references/elixir/README.md +2 -2
  244. package/packages/shared-skills/skills/lsp-setup/references/go/README.md +2 -2
  245. package/packages/shared-skills/skills/lsp-setup/references/haskell/README.md +2 -2
  246. package/packages/shared-skills/skills/lsp-setup/references/java/README.md +3 -3
  247. package/packages/shared-skills/skills/lsp-setup/references/julia/README.md +3 -3
  248. package/packages/shared-skills/skills/lsp-setup/references/kotlin/README.md +4 -4
  249. package/packages/shared-skills/skills/lsp-setup/references/lua/README.md +2 -2
  250. package/packages/shared-skills/skills/lsp-setup/references/php/README.md +3 -3
  251. package/packages/shared-skills/skills/lsp-setup/references/python/README.md +13 -12
  252. package/packages/shared-skills/skills/lsp-setup/references/ruby/README.md +2 -2
  253. package/packages/shared-skills/skills/lsp-setup/references/rust/README.md +2 -2
  254. package/packages/shared-skills/skills/lsp-setup/references/swift/README.md +4 -4
  255. package/packages/shared-skills/skills/lsp-setup/references/terraform/README.md +2 -2
  256. package/packages/shared-skills/skills/lsp-setup/references/typescript/README.md +3 -3
  257. package/packages/shared-skills/skills/lsp-setup/references/yaml/README.md +2 -2
  258. package/packages/shared-skills/skills/lsp-setup/references/zig/README.md +2 -2
  259. package/packages/shared-skills/skills/lsp-setup/scripts/detect-lsp.ts +1 -1
  260. package/packages/shared-skills/skills/lsp-setup/scripts/lsp-server-table.ts +3 -2
  261. package/packages/shared-skills/skills/programming/SKILL.md +5 -5
  262. package/packages/shared-skills/skills/programming/references/code-smells.md +2 -2
  263. package/packages/shared-skills/skills/programming/references/go/README.md +3 -3
  264. package/packages/shared-skills/skills/programming/references/python/README.md +8 -8
  265. package/packages/shared-skills/skills/programming/references/python/data-processing.md +9 -9
  266. package/packages/shared-skills/skills/programming/references/python/libraries.md +3 -3
  267. package/packages/shared-skills/skills/programming/references/python/one-liners.md +1 -1
  268. package/packages/shared-skills/skills/programming/references/python/pyproject-strict.md +1 -1
  269. package/packages/shared-skills/skills/programming/references/rust/libraries.md +2 -2
  270. package/packages/shared-skills/skills/programming/references/rust-ub/README.md +3 -3
  271. package/packages/shared-skills/skills/programming/references/typescript/README.md +5 -5
  272. package/packages/shared-skills/skills/programming/scripts/typescript/new-project.ts +1 -1
  273. package/packages/shared-skills/skills/refactor/SKILL.md +36 -36
  274. package/packages/shared-skills/skills/remove-ai-slops/SKILL.md +6 -6
  275. package/packages/shared-skills/skills/review-work/SKILL.md +2 -2
  276. package/packages/shared-skills/skills/ultimate-browsing/SKILL.md +11 -8
  277. package/packages/shared-skills/skills/ultimate-browsing/engine/AGENTS.md +4 -4
  278. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/README.md +2 -2
  279. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/career.md +1 -1
  280. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/social.md +1 -1
  281. package/packages/shared-skills/skills/ultimate-browsing/references/agent-reach/web.md +4 -4
  282. package/packages/shared-skills/skills/ultimate-browsing/references/chrome-stealth.md +2 -1
  283. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/README.md +17 -18
  284. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/fallback.md +10 -6
  285. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/jina.md +12 -12
  286. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/naver.md +3 -3
  287. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/playwright.md +1 -1
  288. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/rss.md +1 -1
  289. package/packages/shared-skills/skills/ultimate-browsing/references/insane-search/tls-impersonate.md +12 -7
  290. package/packages/shared-skills/skills/ulw-execute/SKILL.md +9 -6
  291. package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +1 -1
  292. package/packages/shared-skills/skills/ulw-plan/references/intent-unclear.md +2 -2
  293. package/packages/shared-skills/skills/ulw-research/SKILL.md +5 -5
  294. package/packages/shared-skills/skills/ulw-research/references/deliverable-phase.md +5 -5
  295. package/packages/shared-skills/skills/ulw-research/references/report-visualization.md +2 -2
  296. package/packages/shared-skills/skills/ulw-research/references/research-collection.md +2 -2
  297. package/packages/shared-skills/skills/ulw-research/references/unit-rules.md +2 -2
  298. package/packages/shared-skills/skills/visual-qa/AGENTS.md +1 -1
  299. package/packages/shared-skills/skills/visual-qa/SKILL.md +5 -5
  300. package/packages/shared-skills/skills/visual-qa/references/browser-setup.md +4 -2
@@ -16,7 +16,7 @@ The correct path:
16
16
  3. Run Lighthouse against the Playwright-controlled page via `playwright-lighthouse` OR via `chrome-launcher` + the `lighthouse` Node API, attaching to the Playwright CDP endpoint so cookies, auth state, and warmed caches mirror what a real returning user sees.
17
17
  4. Use the **mobile** preset (4x CPU throttle, Fast 3G) for the primary number, AND the **desktop** preset for the secondary number. Report both.
18
18
 
19
- If the `playwright` skill is not loaded in this session, load it now via the `skill` tool.
19
+ If no browser-automation skill is loaded in this session, load the `browser` skill now (read its `SKILL.md`).
20
20
 
21
21
  ### 2. 100 IN EVERY CATEGORY IS THE FLOOR.
22
22
 
@@ -90,7 +90,6 @@ Quick audit via the cross-platform Python CLI (macOS, Linux, Windows):
90
90
 
91
91
  ```bash
92
92
  uv run $SKILL_DIR/scripts/perfection/lighthouse-audit.py https://localhost:3000
93
- uv run $SKILL_DIR/scripts/perfection/lighthouse-audit.py https://localhost:3000 --threshold 95
94
93
  uv run $SKILL_DIR/scripts/perfection/lighthouse-audit.py https://localhost:3000 --desktop-only
95
94
  bun $SKILL_DIR/scripts/perfection/check-draft-guard.ts src/ # exit 1 = accent stripe or outline, promo copy, emoji icon, hype badge, or vanity stat
96
95
  ```
@@ -20,17 +20,38 @@ If the project does not yet have react-scan and react-doctor wired into its dev
20
20
  import { chromium } from "playwright";
21
21
  import { playAudit } from "playwright-lighthouse";
22
22
 
23
+ declare global {
24
+ interface Window {
25
+ __renderEvents: unknown[];
26
+ }
27
+ }
28
+
29
+ // Narrow only the fields this gate reads from a react-scan commit event.
30
+ function hasUnnecessaryRender(event: unknown): boolean {
31
+ if (typeof event !== "object" || event === null || !("tree" in event) || !Array.isArray(event.tree)) return false;
32
+ return event.tree.some(
33
+ (node: unknown) =>
34
+ typeof node === "object" &&
35
+ node !== null &&
36
+ "changeDescription" in node &&
37
+ typeof node.changeDescription === "object" &&
38
+ node.changeDescription !== null &&
39
+ "kind" in node.changeDescription &&
40
+ node.changeDescription.kind === "unnecessary",
41
+ );
42
+ }
43
+
23
44
  const browser = await chromium.launch({ channel: "chrome" });
24
45
  const context = await browser.newContext();
25
46
 
26
47
  // Inject react-scan/lite BEFORE the app boots
27
48
  await context.addInitScript(() => {
28
- // @ts-ignore — pulled from the project's node_modules or a self-hosted bundle
49
+ // react-scan is a dev dependency of the project (see ../design/react-dev-tooling-skill.md), so its types resolve
29
50
  import("react-scan/lite").then(({ instrument }) => {
30
- (window as any).__renderEvents = [];
51
+ window.__renderEvents = [];
31
52
  instrument({
32
- onEvent: (event: any) => {
33
- if (event.kind === "commit") (window as any).__renderEvents.push(event);
53
+ onEvent: (event) => {
54
+ if (event.kind === "commit") window.__renderEvents.push(event);
34
55
  },
35
56
  recordChangeDescriptions: true,
36
57
  includeFiberSource: true,
@@ -51,10 +72,8 @@ await playAudit({
51
72
  });
52
73
 
53
74
  // Pull render events and assert on render quality
54
- const events = await page.evaluate(() => (window as any).__renderEvents);
55
- const unnecessary = events.filter((e: any) =>
56
- e.tree?.some((node: any) => node.changeDescription?.kind === "unnecessary"),
57
- );
75
+ const events = await page.evaluate(() => window.__renderEvents);
76
+ const unnecessary = events.filter(hasUnnecessaryRender);
58
77
 
59
78
  if (unnecessary.length > 0) {
60
79
  console.error(`FAIL: ${unnecessary.length} unnecessary renders detected during audit`);
@@ -16,7 +16,6 @@
16
16
  # 3. Run:
17
17
  # uv run lighthouse-audit.py https://example.com
18
18
  # uv run lighthouse-audit.py https://example.com --desktop-only
19
- # uv run lighthouse-audit.py https://example.com --threshold 95
20
19
  # ──────────────────
21
20
 
22
21
  """Lighthouse audit via real Playwright Chrome.
@@ -16,7 +16,7 @@ Classify the request first:
16
16
  - `HISTORY`: answer when, where, who, why, or which commit changed something.
17
17
  - `STATUS`: inspect branch, diff, or working-tree state without changing it.
18
18
 
19
- Do not commit, rebase, push, force-push, reset, stash-pop, or delete anything unless the user explicitly asked for that operation. If the request is only investigative, report findings and stop.
19
+ Do not commit, rebase, push, force-push, reset, stash-pop, or delete anything unless the user explicitly asked for that operation. When a workflow the user started mandates one of them (ulw-loop commits each verified unit, ulw-execute lands its branches), that workflow's instruction is the ask. If the request is only investigative, report findings and stop.
20
20
 
21
21
  ## Ground Truth
22
22
 
@@ -38,7 +38,17 @@ Missing upstream or missing `main`/`master` is normal. Fall back to the best ava
38
38
 
39
39
  ## PR Body Evidence Attachments
40
40
 
41
- When a PR body needs screenshots or terminal PNGs, use the repo reference at `docs/reference/github-attachment-upload.md`. The allowed hosting path is GitHub user attachments from the authenticated web attachment flow; never commit temporary images, never use GitHub Releases for PR evidence, and never use external image hosts. Do not log browser cookies, CSRF tokens, S3 form fields, or upload headers.
41
+ When a PR body needs screenshots or terminal PNGs, the allowed hosting path is GitHub user attachments from the authenticated web attachment flow; never commit temporary images, never use GitHub Releases for PR evidence, and never use external image hosts. Do not log browser cookies, CSRF tokens, S3 form fields, or upload headers.
42
+
43
+ The flow needs an authenticated GitHub web session (a `gh` API token alone is not enough):
44
+
45
+ 1. Open the target PR or issue page in that session and read its file-attachment CSRF token and repository id.
46
+ 2. `POST https://github.com/upload/policies/assets` with `repository_id`, `name`, `size`, `content_type`, and that token as `authenticity_token`.
47
+ 3. Upload the bytes to the returned S3 URL with the returned form fields exactly as given.
48
+ 4. `PUT https://github.com/upload/assets/:id` with the returned `asset_upload_authenticity_token`.
49
+ 5. Put only the final `https://github.com/user-attachments/assets/<uuid>` URL in the PR body (write the body to a temp file and pass it with `gh pr edit --body-file`).
50
+
51
+ If no authenticated browser session is available, leave the local evidence paths in the PR body and state the blocker.
42
52
 
43
53
  ## Commit Mode
44
54
 
@@ -195,7 +195,7 @@ for each background task ID (`bg_...`): background_output(task_id="bg_...")
195
195
  ```
196
196
  AGENTS_LOCATIONS = [
197
197
  { path: ".", type: "root" },
198
- { path: "src/hooks", score: 18, reason: "high complexity" },
198
+ { path: "src/hooks", score: 16, reason: "high complexity" },
199
199
  { path: "src/api", score: 12, reason: "distinct domain" }
200
200
  ]
201
201
  ```
@@ -67,7 +67,7 @@ sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/chatgpt-subscription-sou
67
67
  - Latest LazyCodex version from `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` (release tags or the version stamped in the repo) and latest Codex release (`gh release view --repo openai/codex`).
68
68
  - OS, install method, and `lazycodex` / `lazycodex-ai` bin links resolving (`command -v`).
69
69
  - Astra readiness. The LazyCodex catalog default is `gpt-6-astra`, which Codex only knows from codex-cli 0.153.1 onward. First release tag containing the `models.json` change: `rust-v0.153.1` (backport commit `5cc1c94b8e`). Reproduce on a full clone with tags: `git -C <codex-clone> log --format='%h %d' -S gpt-6-astra -- codex-rs/models-manager/models.json`, then `git -C <codex-clone> tag --contains 5cc1c94b8e | sort -V | head -1`; a shallow clone or one without tags returns nothing. Record the installed version from `codex --version`, the root `model` in `$CODEX_HOME/config.toml` (informational only, it doesn't change the verdict), and, when `$CODEX_HOME/models_cache.json` exists, whether it contains `gpt-6-astra` (`grep -c gpt-6-astra "${CODEX_HOME:-$HOME/.codex}/models_cache.json"`). Verdict: PASS when `codex --version` is 0.153.1 or newer and `models_cache.json` is either absent or lists `gpt-6-astra`. WARN when the version is older than 0.153.1, or the cache exists but lacks `gpt-6-astra`; remediation is upgrading Codex (`npm install -g @openai/codex@latest`, or the package manager that installed `codex`), then starting Codex once so `models_cache.json` refreshes.
70
- 3. Check config and wiring against the latest installer, not against assumptions. Read what the current installer under `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` writes (installer sources live in the omo-codex package, e.g. `scripts/install/`), then verify the local equivalents:
70
+ 3. Check config and wiring against the latest installer, not against assumptions. Read what the current installer under `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` writes (in that checkout, `plugins/omo/scripts/migrate-codex-config.mjs` and its `migrate-codex-config/` helpers produce the LazyCodex-managed `config.toml` entries, and `plugins/omo/.codex-plugin/plugin.json` declares the payload), then verify the local equivalents:
71
71
  - `$CODEX_HOME/config.toml` exists and parses; LazyCodex-managed entries match what the latest installer would write.
72
72
  - Plugin payload present and non-empty: read `.codex-plugin/plugin.json`; when that manifest declares a `hooks` array, validate every direct hook path declared by the manifest; require `hooks/hooks.json` only when the manifest declares it; do not require retired paths such as `components/workflow-selector` or `hooks/user-prompt-submit-selecting-lazycodex-workflow.json` unless the current manifest declares them.
73
73
  - Verify the manifest-declared runtime payload, not a remembered source tree. Current payload includes `skills/`, `.mcp.json`, root CLI runtimes such as `dist/cli/index.js` and `dist/cli-node/index.js`, and every hook/MCP `components/*/dist/*.js` target referenced by installed manifests.
@@ -27,11 +27,11 @@ reference before installing or configuring anything**.
27
27
  | `.py .pyi` | `references/python/README.md` |
28
28
  | `.go` | `references/go/README.md` |
29
29
  | `.rs` | `references/rust/README.md` |
30
- | `.c .cpp .cc .cxx .h .hpp .hh .hxx` | `references/c-cpp/README.md` |
30
+ | `.c .cpp .cc .cxx .c++ .h .hpp .hh .hxx .h++` | `references/c-cpp/README.md` |
31
31
  | `.java` | `references/java/README.md` |
32
32
  | `.kt .kts` | `references/kotlin/README.md` |
33
33
  | `.cs .razor .cshtml` | `references/csharp/README.md` |
34
- | `.swift` | `references/swift/README.md` |
34
+ | `.swift .m .mm` | `references/swift/README.md` |
35
35
  | `.rb .rake .gemspec .ru` | `references/ruby/README.md` |
36
36
  | `.php` | `references/php/README.md` |
37
37
  | `.dart` | `references/dart/README.md` |
@@ -75,13 +75,20 @@ command -v <server-executable> # e.g. typescript-language-server, gopls, rust-
75
75
 
76
76
  Most builtin servers need **no config** — they are resolved automatically by
77
77
  file extension. Write config only to: pick between competing servers, set a
78
- `priority`, pass `initialization` options, override `extensions`, set `env`, or
79
- `disable` a server.
78
+ `priority`, pass `initialization` options, override `extensions`, set `env`
79
+ (user config only), or `disable` a server.
80
80
 
81
- Two project-scoped config files, **identical JSON shape**:
81
+ Config files per harness, **identical JSON shape**. Each harness reads the
82
+ first project file that exists, plus one user file:
82
83
 
83
- - Codex harness → `.codex/lsp-client.json` (user: `~/.codex/lsp-client.json`)
84
- - OpenCode/omo harness → `.opencode/lsp.json` (also `.omo/lsp.json`)
84
+ | Harness | Project config | User config |
85
+ |---|---|---|
86
+ | Codex | `.codex/lsp-client.json` | `$CODEX_HOME/lsp-client.json` (default `~/.codex/lsp-client.json`) |
87
+ | OpenCode | `.opencode/lsp.json`, then `.omo/lsp.json`, then `.omo/lsp-client.json` | `lsp.json` in the OpenCode config dir (default `~/.config/opencode/lsp.json`) |
88
+ | OmO native | `.omo/lsp-client.json`, then `.pi/lsp-client.json` | `~/.omo/lsp-client.json` (`~/.pi/lsp-client.json` when only that one exists) |
89
+
90
+ A standalone `lsp-tools-mcp` launch reads the paths in
91
+ `LSP_TOOLS_MCP_PROJECT_CONFIG` / `LSP_TOOLS_MCP_USER_CONFIG` instead.
85
92
 
86
93
  ```jsonc
87
94
  {
@@ -100,14 +107,16 @@ Two project-scoped config files, **identical JSON shape**:
100
107
 
101
108
  Rules enforced by `config-loader.ts`:
102
109
 
103
- - In a **project** config (`.codex/lsp-client.json`, `.opencode/lsp.json`) an
104
- entry whose id is a **builtin** server inherits `command` automatically — you
105
- only override `extensions` / `priority` / `initialization`. A non-builtin id
106
- in a project config is **ignored**.
107
- - To define a **fully custom** (non-builtin) server with its own `command`, put
108
- it in the **user** config (`~/.codex/lsp-client.json`, or the path set by
109
- `LSP_TOOLS_MCP_USER_CONFIG`), where `command` + `extensions` are honored.
110
- - Project entries win over user entries; both win over builtin defaults.
110
+ - In a **project** config an entry whose id is a **builtin** server inherits
111
+ `command` automatically — you only override `extensions` / `priority` /
112
+ `initialization` / `disabled`. Its `env` is dropped, and a non-builtin id in
113
+ a project config is **ignored**.
114
+ - To set `env`, or to define a **fully custom** (non-builtin) server with its
115
+ own `command`, put it in the **user** config from the table above, where
116
+ `command` + `extensions` + `env` are honored.
117
+ - Project entries win over user entries; both win over builtin defaults. A user
118
+ entry is skipped when an enabled project entry has the same id, so keep an id
119
+ that needs `env` out of the project config.
111
120
 
112
121
  Each language reference gives a ready-to-paste snippet.
113
122
 
@@ -27,17 +27,17 @@ command -v shellcheck
27
27
 
28
28
  ## Configure
29
29
 
30
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
30
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
31
31
 
32
32
  ```json
33
33
  { "lsp": { "bash": { "priority": 100 } } }
34
34
  ```
35
35
 
36
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
36
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
37
37
 
38
38
  ### Initialization options (only if commonly needed)
39
39
 
40
- None commonly required. `bash-language-server` discovers `shellcheck` on PATH automatically. To point at a non-PATH binary, export `SHELLCHECK_PATH` via `env`:
40
+ None commonly required. `bash-language-server` discovers `shellcheck` on PATH automatically. To point at a non-PATH binary, export `SHELLCHECK_PATH` via `env` (USER config only; a project entry drops `env`):
41
41
 
42
42
  ```json
43
43
  { "lsp": { "bash": { "env": { "SHELLCHECK_PATH": "/opt/bin/shellcheck" } } } }
@@ -20,13 +20,13 @@ command -v clangd
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "clangd": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
@@ -22,13 +22,13 @@ command -v csharp-ls
22
22
 
23
23
  ## Configure
24
24
 
25
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
25
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
26
26
 
27
27
  ```json
28
28
  { "lsp": { "csharp": { "priority": 100 } } }
29
29
  ```
30
30
 
31
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
31
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
32
32
 
33
33
  ### Initialization options (only if commonly needed)
34
34
 
@@ -20,13 +20,13 @@ command -v dart
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "dart": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
@@ -21,13 +21,13 @@ command -v elixir-ls
21
21
 
22
22
  ## Configure
23
23
 
24
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
24
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
25
25
 
26
26
  ```json
27
27
  { "lsp": { "elixir-ls": { "priority": 100 } } }
28
28
  ```
29
29
 
30
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
30
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
31
31
 
32
32
  ### Initialization options (only if commonly needed)
33
33
 
@@ -25,13 +25,13 @@ command -v gopls
25
25
 
26
26
  ## Configure
27
27
 
28
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
28
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
29
29
 
30
30
  ```json
31
31
  { "lsp": { "gopls": { "priority": 100 } } }
32
32
  ```
33
33
 
34
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
34
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
35
35
 
36
36
  ### Initialization options (only if commonly needed)
37
37
 
@@ -27,13 +27,13 @@ command -v haskell-language-server-wrapper
27
27
 
28
28
  ## Configure
29
29
 
30
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
30
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
31
31
 
32
32
  ```json
33
33
  { "lsp": { "haskell-language-server": { "priority": 100 } } }
34
34
  ```
35
35
 
36
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
36
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
37
37
 
38
38
  ### Initialization options (only if commonly needed)
39
39
 
@@ -20,17 +20,17 @@ command -v jdtls
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "jdtls": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
33
- jdtls maintains a per-project **workspace data directory** and the **first index is slow** (it resolves the full classpath and builds). Point `JAVA_HOME` at a JDK 17+ if `jdtls` cannot find one:
33
+ jdtls maintains a per-project **workspace data directory** and the **first index is slow** (it resolves the full classpath and builds). Point `JAVA_HOME` at a JDK 17+ if `jdtls` cannot find one (USER config only; a project entry drops `env`):
34
34
 
35
35
  ```json
36
36
  { "lsp": { "jdtls": { "env": { "JAVA_HOME": "/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home" } } } }
@@ -28,17 +28,17 @@ command -v julia
28
28
 
29
29
  ## Configure
30
30
 
31
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
31
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
32
32
 
33
33
  ```json
34
34
  { "lsp": { "julials": { "priority": 100 } } }
35
35
  ```
36
36
 
37
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
37
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
38
38
 
39
39
  ### Initialization options (only if commonly needed)
40
40
 
41
- None commonly required. To pin which environment hosts LanguageServer.jl, set `JULIA_PROJECT` (or `JULIA_DEPOT_PATH`) via `env`:
41
+ None commonly required. To pin which environment hosts LanguageServer.jl, set `JULIA_PROJECT` (or `JULIA_DEPOT_PATH`) via `env` (USER config only; a project entry drops `env`):
42
42
 
43
43
  ```json
44
44
  { "lsp": { "julials": { "env": { "JULIA_PROJECT": "@lsp" } } } }
@@ -1,6 +1,6 @@
1
1
  # Kotlin — LSP setup
2
2
 
3
- - **Builtin server:** `kotlin-ls` — `kotlin-lsp`
3
+ - **Builtin server:** `kotlin-ls` — `kotlin-lsp --stdio`
4
4
  - **Extensions:** `.kt .kts`
5
5
  - **Install hint:** `https://github.com/Kotlin/kotlin-lsp`
6
6
 
@@ -22,17 +22,17 @@ command -v kotlin-lsp
22
22
 
23
23
  ## Configure
24
24
 
25
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
25
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
26
26
 
27
27
  ```json
28
28
  { "lsp": { "kotlin-ls": { "priority": 100 } } }
29
29
  ```
30
30
 
31
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
31
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
32
32
 
33
33
  ### Initialization options (only if commonly needed)
34
34
 
35
- None commonly required. If `kotlin-lsp` cannot find a Java runtime, set `JAVA_HOME`:
35
+ None commonly required. If `kotlin-lsp` cannot find a Java runtime, set `JAVA_HOME` (USER config only; a project entry drops `env`):
36
36
 
37
37
  ```json
38
38
  { "lsp": { "kotlin-ls": { "env": { "JAVA_HOME": "/Library/Java/JavaVirtualMachines/temurin-17.jdk/Contents/Home" } } } }
@@ -20,13 +20,13 @@ command -v lua-language-server
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "lua-ls": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
@@ -20,13 +20,13 @@ command -v intelephense
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "php": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
@@ -51,7 +51,7 @@ Without a key the server runs fine in free mode.
51
51
  - **phpactor** (not builtin): `phpactor language-server`. Pure-PHP, no Node dependency.
52
52
 
53
53
  ## Troubleshooting
54
- - **PATH:** `intelephense` must be on PATH; reopen the shell after a global npm install. If missing, check `npm bin -g` is on PATH.
54
+ - **PATH:** `intelephense` must be on PATH; reopen the shell after a global npm install. If missing, check that `$(npm prefix -g)/bin` (Windows: `npm prefix -g`) is on PATH.
55
55
  - **No Node:** Intelephense fails to start without Node.js. Install Node, then reinstall.
56
56
  - **Wrong PHP version inference:** set `intelephense.environment.phpVersion` via `initialization` to match your project.
57
57
 
@@ -21,13 +21,13 @@ command -v basedpyright-langserver
21
21
 
22
22
  ## Configure
23
23
 
24
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
24
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
25
25
 
26
26
  ```json
27
27
  { "lsp": { "basedpyright": { "priority": 100 } } }
28
28
  ```
29
29
 
30
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
30
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
31
31
 
32
32
  ### Initialization options (only if commonly needed)
33
33
 
@@ -36,27 +36,28 @@ or `[tool.basedpyright]` in `pyproject.toml`, not the LSP config.
36
36
 
37
37
  ## Choosing a server
38
38
 
39
- All four are builtin. Type checkers and the linter serve different roles — run a
40
- type server, and optionally `ruff` ALONGSIDE it (not instead).
39
+ All four are builtin. The engine starts ONE server per extension: the first
40
+ installed candidate after ordering by config source (project > user > builtin)
41
+ and then `priority`. So `ruff` cannot run alongside a type server for `.py` —
42
+ choosing it replaces type checking with lint/format diagnostics.
41
43
 
42
44
  | id | command | install | role |
43
45
  | ------------- | ----------------------------- | ---------------------- | --------------------------------------- |
44
46
  | `basedpyright`| `basedpyright-langserver --stdio` | `pip install basedpyright` | strictest types, **default** |
45
47
  | `pyright` | `pyright-langserver --stdio` | `pip install pyright` | upstream Microsoft type checker |
46
48
  | `ty` | `ty server` | `pip install ty` | Astral, very fast, pre-1.0/experimental |
47
- | `ruff` | `ruff server` | `pip install ruff` | lint + format only, complements a type server |
49
+ | `ruff` | `ruff server` | `pip install ruff` | lint + format only, no type checking |
48
50
 
49
- Recommended priority: **basedpyright** (default) > pyright > ty (experimental).
50
- `ruff` complements via priority — it does not type-check, so keep a type server
51
- enabled.
51
+ Recommended: **basedpyright** (default) > pyright > ty (experimental). Keep a
52
+ type server as the `.py` server; run `ruff` from the shell or a pre-commit hook
53
+ for lint/format.
52
54
 
53
- Enable ruff alongside basedpyright, disabling pyright:
55
+ Switch this project to pyright:
54
56
 
55
57
  ```json
56
58
  { "lsp": {
57
- "basedpyright": { "priority": 100 },
58
- "ruff": { "priority": 90 },
59
- "pyright": { "disabled": true }
59
+ "pyright": { "priority": 100 },
60
+ "basedpyright": { "disabled": true }
60
61
  } }
61
62
  ```
62
63
 
@@ -22,13 +22,13 @@ command -v rubocop
22
22
 
23
23
  ## Configure
24
24
 
25
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
25
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
26
26
 
27
27
  ```json
28
28
  { "lsp": { "ruby-lsp": { "priority": 100 } } }
29
29
  ```
30
30
 
31
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
31
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
32
32
 
33
33
  ### Initialization options (only if commonly needed)
34
34
 
@@ -22,13 +22,13 @@ command -v rust-analyzer
22
22
 
23
23
  ## Configure
24
24
 
25
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
25
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
26
26
 
27
27
  ```json
28
28
  { "lsp": { "rust": { "priority": 100 } } }
29
29
  ```
30
30
 
31
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
31
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
32
32
 
33
33
  ### Initialization options (only if commonly needed)
34
34
 
@@ -1,7 +1,7 @@
1
1
  # Swift — LSP setup
2
2
 
3
3
  - **Builtin server:** `sourcekit-lsp` — `sourcekit-lsp`
4
- - **Extensions:** `.swift .objc .objcpp`
4
+ - **Extensions:** `.swift .m .mm`
5
5
  - **Install hint:** `Included with Xcode or the Swift toolchain`
6
6
 
7
7
  ## Install
@@ -20,13 +20,13 @@ command -v sourcekit-lsp
20
20
 
21
21
  ## Configure
22
22
 
23
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
23
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
24
24
 
25
25
  ```json
26
26
  { "lsp": { "sourcekit-lsp": { "priority": 100 } } }
27
27
  ```
28
28
 
29
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
29
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
30
30
 
31
31
  ### Initialization options (only if commonly needed)
32
32
 
@@ -41,7 +41,7 @@ None commonly required. For best results the project needs a **SwiftPM `Package.
41
41
  - **PATH:** `sourcekit-lsp` on PATH; reopen shell after install (or after `xcode-select -s`).
42
42
  - **Wrong toolchain (macOS):** point `xcode-select` at the right Xcode/toolchain; mismatches cause stale or missing results.
43
43
  - **No `Package.swift` / compile db:** add a SwiftPM manifest or generate `compile_commands.json` for accurate indexing.
44
- - **Objective-C (`.objc`/`.objcpp`):** needs a compilation database to resolve headers and frameworks.
44
+ - **Objective-C (`.m`/`.mm`):** needs a compilation database to resolve headers and frameworks.
45
45
  - **First build slow:** the server builds the module graph on first open; wait for it.
46
46
 
47
47
  ## Verify
@@ -23,13 +23,13 @@ command -v terraform
23
23
 
24
24
  ## Configure
25
25
 
26
- Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in `.codex/lsp-client.json` (Codex) AND `.opencode/lsp.json` (OpenCode/omo):
26
+ Builtin — usually NO config needed (auto-resolved by extension). Configure only to set priority, init options, override extensions, or disable. Same JSON shape in every harness's project config (per-harness paths: the Configure step in `SKILL.md`):
27
27
 
28
28
  ```json
29
29
  { "lsp": { "terraform": { "priority": 100 } } }
30
30
  ```
31
31
 
32
- For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled`/`env`. A fully custom (non-builtin) server with its own `command` must go in the USER config (`~/.codex/lsp-client.json`).
32
+ For builtin ids in a PROJECT config, `command` is supplied automatically — only set `priority`/`initialization`/`extensions`/`disabled` (a project entry drops `env`). `env`, and a fully custom (non-builtin) server with its own `command`, must go in your harness's USER config (see the Configure step in `SKILL.md`).
33
33
 
34
34
  ### Initialization options (only if commonly needed)
35
35