install: three delivery channels for the same seven hooks - is the binary channel worth its surface, or is this the plugin's job? #172
Labels
No labels
breaking
bug
documentation
enhancement
epic
good first issue
help wanted
refactoring
resolution/duplicate
resolution/invalid
resolution/wontfix
security
severity/critical
severity/high
severity/low
severity/medium
status/abandoned
status/blocked
status/needs-decision
status/needs-info
status/needs-verification
testing
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sixfold-space/madtea#172
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
The seven Claude Code guardrail hooks reach users through three channels today:
sixfold_space/claude-pluginsmarketplace:/plugin marketplace add ...then/plugin install madtea@sixfold-plugins.madtea install- interactively offers them;--hooksis the non-interactive opt-in,--remove-hooksreverses.madtea mcp-config --installwhen the target client is Claude Code - the same offer again.Channels 2 and 3 exist for binary-only users (brew/scoop/tarball) who never add the plugin (binary-channel install): byte-identical scripts, materialized files plus a merge into
~/.claude/settings.json. That is real machinery - install code, removal code, merge logic, drift risk against the plugin copy - duplicated so a user can avoid a plugin whose main job is shipping exactly this payload. Since the marketplace flow landed, the plugin is two slash commands, which weakens the original case for the binary channel.Decide:
mcp-config --installoffer is the natural survivor (it is already the wiring step); retiremadtea install --hooks.Related: the docs already drifted between channels - clients.md said "six" hooks in four places and still taught the pre-marketplace clone-and-point plugin install; both fixed in the readme-edits batch. Note the plugin does not register the MCP server or ship the binary, so it can never fully replace the wiring step - this issue is only about who delivers the hooks.
Need to consolidate any install commands to under
madtea installand then flags if users want specific features reinstalled. Bash completion, mcp connection, binary. Right now sprawl is the enemy.Hooks are the plugin's job, not the binary.
Design pinned for implementation (decision above: hooks are the plugin's job; consolidate setup under install):
madtea install --hooks/--remove-hooksremoved, the interactive hook offer removed from install AND frommcp-config --install, and the hook materialization + settings-merge/removal machinery deleted. Where the offer used to fire, one line recommends the plugin (marketplace add + install) as the way to get the guardrail hooks.madtea installbecomes the one setup command, with feature flags for re-running specific pieces: full run stays the default (binary + completions + MCP registration when the Claude Code CLI is on PATH); granular flags let a user redo one feature (e.g. completions only, MCP registration only) without the full reinstall. Exact flag names follow the existing flag vocabulary; consent flags (--yes-sudo, --yes-delete-stale) unchanged.mcp-confignarrows to the multi-client config surface (print, and install for the other clients whose config files it writes); its Claude Code duties fold into install's MCP step so there is exactly one wiring path for that client.