caveman-hooks-opencode · lens architecture · 3 open findings at severity must or above · generated 2026-10-29T19:15:20.677Z
Work top to bottom. Ponder does not edit source - this plan is the handoff.
hooks.install_shsrc/hooks/install.sh
src/hooks/install.sh:54-75, src/hooks/install.sh:93-114, src/hooks/install.sh:173-181
Do: Pass CAVEMAN_SETTINGS_HELPER to the ALREADY_INSTALLED node probe in src/hooks/install.sh:95-106 and parse via helper.parseSettingsText(raw).data before falling back to JSON.parse, and add a JSONC idempotency regression test in tests/hooks/standalone-install-safety.test.mjs.hooks.install_ps1src/hooks/install.ps1
src/hooks/install.ps1:36-59, src/hooks/install.ps1:80-112, src/hooks/install.ps1:150-166
Do: Replace the ConvertFrom-Json ALREADY_INSTALLED check in src/hooks/install.ps1:80-112 with a node probe that uses CAVEMAN_SETTINGS_HELPER.opencode.pluginsrc/plugins/opencode/plugin.js
src/plugins/opencode/plugin.js:280-355, src/hooks/caveman-activate.js:305, src/hooks/caveman-mode-tracker.js:372
Do: Extract projectDir from ctx in src/plugins/opencode/plugin.js:280, pass projectDir to getDefaultMode(projectDir), and in experimental.chat.system.transform strip any existing staleBlock and return early without injecting buildActivationPrompt(mode) when getDefaultMode(projectDir) === ‘off’.3 modules · 3 findings · effort 2×xs, 1×s
Generated by Ponder - AI that knows when to speak, and when to shut up.