Context
After the manifest refactor (v3.0.0–3.1.0) vd no longer embeds hooks — vd install hooks reads <repo>/hooks/hooks.toml. The repo's top-level hooks/ folder now only holds:
- the reference Node
.cjs hooks (session-init.cjs, subagent-init.cjs, scout-block.cjs, dev-rules-reminder.cjs, team-context-inject.cjs, statusline.cjs, task-completed-handler.cjs, teammate-idle-handler.cjs, lib/*),
- a sample
hooks.toml,
- the golden/parity Node tests that read those
.cjs — internal/hooks/parity.mjs (:37 → ../../hooks), hook-tests.mjs, dev_rules_reminder_test.mjs, internal/hooks/testdata/golden/.
The actual hooks live in the user's own repo (~/skills/hooks/). Once #39 (unify all hooks to Python, run via uv) lands — the .cjs ported to Python in the skills repo — vd-cli no longer needs to carry the Node reference set or its Node parity tests.
Proposal — blocked by #39
When the hooks are all-Python in the skills repo:
- Remove
hooks/*.cjs + hooks/lib/ (and the sample hooks.toml, or replace with a tiny Python starter).
- Remove the Node parity/golden tests (
parity.mjs, hook-tests.mjs, dev_rules_reminder_test.mjs, testdata/golden/) and any paths_worktree_test.go dependency on hooks/.
- Keep the manifest-driven install/register logic + its Go tests — they use temp fixtures, not the repo
hooks/, so they survive untouched.
Considerations
- Go tests (
install_test.go, manifest_test.go, codex_test.go, settings tests) build temp fixtures → unaffected.
- After removal vd-cli ships no bundled hooks; docs must state users maintain hooks in their own repo, with an inline example manifest (the
vd hooks doc section already leans this way).
- Decide: drop
hooks/ entirely, or keep one minimal Python example hook as a starter.
Acceptance
Depends on #39.
Context
After the manifest refactor (v3.0.0–3.1.0) vd no longer embeds hooks —
vd install hooksreads<repo>/hooks/hooks.toml. The repo's top-levelhooks/folder now only holds:.cjshooks (session-init.cjs,subagent-init.cjs,scout-block.cjs,dev-rules-reminder.cjs,team-context-inject.cjs,statusline.cjs,task-completed-handler.cjs,teammate-idle-handler.cjs,lib/*),hooks.toml,.cjs—internal/hooks/parity.mjs(:37→../../hooks),hook-tests.mjs,dev_rules_reminder_test.mjs,internal/hooks/testdata/golden/.The actual hooks live in the user's own repo (
~/skills/hooks/). Once #39 (unify all hooks to Python, run via uv) lands — the.cjsported to Python in the skills repo — vd-cli no longer needs to carry the Node reference set or its Node parity tests.Proposal — blocked by #39
When the hooks are all-Python in the skills repo:
hooks/*.cjs+hooks/lib/(and the samplehooks.toml, or replace with a tiny Python starter).parity.mjs,hook-tests.mjs,dev_rules_reminder_test.mjs,testdata/golden/) and anypaths_worktree_test.godependency onhooks/.hooks/, so they survive untouched.Considerations
install_test.go,manifest_test.go,codex_test.go, settings tests) build temp fixtures → unaffected.vd hooksdoc section already leans this way).hooks/entirely, or keep one minimal Python example hook as a starter.Acceptance
~/skills).hooks/*.cjs+ Node parity tests removed.go test ./...green (temp-fixture tests survive).Depends on #39.