Stop injecting Basecamp context into every session
Problem
Installing and trusting the Basecamp plugin registers an unconditional SessionStart hook. Every new Codex or Claude Code session then receives:
Basecamp is active and OAuth is ready. Use the Basecamp skills for project work.
That context is injected even in repositories and conversations unrelated to Basecamp. It can steer the agent toward Basecamp simply because the plugin is installed.
This is separate from normal skill discovery: the Basecamp skill should remain available for natural-language requests and explicit references.
Change
- Remove only the unconditional
SessionStarthook from the shared plugin manifest. - Keep the silent commit-reference hooks (
PreToolUse,PostToolUse, andPostToolUseFailure). - Update the Codex setup docs to describe those remaining hooks accurately.
- Add a regression assertion preventing
SessionStartfrom returning to the plugin hook manifest.
No .basecamp/config.json is required to activate the skill. Codex can continue selecting it when a request is relevant.
Verification
go test ./internal/releasego test ./internal/commands -run TestRunCodexSetupInteractiveExplainsNextSteps -count=1git diff --check- Full
make checkpassed vet, lint, Actionlint, and zizmor, then hit pre-existing terminal-detection failures because the Codex command runner is not recognized as an interactive terminal.
Summary by cubic
Removes the unconditional SessionStart hook so Basecamp no longer injects context into every Codex or Claude Code session. The Basecamp skill stays available for relevant requests and explicit references.
Details
- Keeps the silent commit-reference hooks (
PreToolUse,PostToolUse,PostToolUseFailure). - Updates Codex setup docs to describe the remaining hooks accurately.
- Adds a regression assertion preventing
SessionStartfrom returning to the hook manifest.