By macollins27
Pin a goal. Lint prompts. Block premature completion. Make Claude operate against the goal you actually set, not the one it drifted toward.
Mark the active goalpost goal complete. Requires an evidence statement explaining why the operator believes the goal is done. Releases the completion gate so completion vocabulary is allowed in subsequent responses.
Show all goalpost slash commands and a short summary of what each does. Use when the operator asks for help with goalpost or seems unsure which command to run.
Scaffold a new custom prompt lint at .goalpost-lints/lint-<name>.sh. The lint follows goalpost's lint contract (read stdin, exit 0, emit warning on fire). Use when the operator wants project-specific lints layered on top of goalpost's five default lints.
Single-turn bypass of the completion gate. Use when the gate fires on a legitimate narrow-scope completion ("completed reading the file") and you need to let the response through without marking the whole goal complete. Override is consumed on the next Stop event, or auto-swept after 60 seconds.
Goal-grounded code review primitive. Verifies the active goal end-to-end FIRST, grades against an engineering rubric SECOND. Eliminates "is this code good?" sycophancy framing by replacing it with falsifiable "does this code complete the goal?" framing. Requires .goalpost-goal to exist and a target argument (file path, directory, PR number, or commit range).
Executes bash commands
Hook triggers when Bash tool is used
Modifies files
Hook triggers on file write and edit operations
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
v0.1 — pre-production draft. The plugin is built and covered by a committed test suite (
tests/, 129 assertions; runbash tests/run.sh) but has not yet been validated against a real Claude Code install. Schemas for hook event JSON, skill argument handling, and marketplace install behavior were assumed from existing plugins; real install may surface drift. Use at your own risk and please file issues at https://github.com/macollins27/goalpost/issues.Not affiliated with or endorsed by Anthropic. Anthropic shipped a different
/goalcommand on May 11, 2026 — that one runs autonomous loops via a Haiku-class evaluator.goalpostis the complementary discipline layer for interactive sessions: drift prevention, input-quality lints, and operator-gated completion verification. See README section "Anthropic's/goalvsgoalpost" below.
Pin a goal. Lint prompts. Block premature completion. Make Claude operate against the goal you actually set, not the one it drifted toward.
A Claude Code plugin that fixes the empirical failure modes responsible for nearly half of session friction in real operator transcripts: operator-side input quality (under-specified prompts, paraphrased errors, missing state) and agent-side goal drift (silently revising the user's stated goal as context accumulates).
Open-source under MIT. Designed with portable script bodies so others can fork it to other harnesses.
Two failure modes drive measurable session friction:
Operator-side input failures. Prompts that paraphrase errors instead of pasting raw output, prompts that omit project state, prompts that hedge a hard requirement, prompts that ask the agent to run tests without confirming the dev server is up. These are recoverable but expensive — they burn agent context on wrong-approach restarts and exploratory reads.
Agent-side goal drift. You state your goal at turn 1. The agent reads documents. Over the next twenty turns, it silently merges document implications into your goal until it's solving a problem you didn't ask for. By the time you notice, you have to argue the agent back to your original ask. This is exhausting and recurring.
goalpost addresses both at the prompt boundary — the only place where the failures are mechanically detectable before they propagate.
Run /goalpost:set "your goal here" once at the start of a session, and goalpost will:
/goalpost:complete "<evidence>" first. If the agent claims completion, it must show evidence and ask you to verify..goalpost-goal directly.Plus a separate CLI (cct) that rewrites your raw prompts to strip sycophancy-activating language and resolve operator-grounded references (file paths, project state) before you send them. Stripped sycophancy → less yes-leaning agent output → better answers.
# Add the marketplace and install
claude plugin marketplace add https://github.com/macollins27/goalpost
claude plugin install goalpost
# Or test locally
git clone https://github.com/macollins27/goalpost.git
claude --plugin-dir ./goalpost
Then in any project:
/goalpost:set "ship the auth refactor without breaking the existing session flow"
That's it. From this point on, every prompt the agent sees includes your goal block, every "I'm done" claim is gated, and lints fire as warnings if your prompts hit known anti-patterns.
When the work is actually done, you mark it complete:
/goalpost:complete "auth refactor merged in #1234, sessions verified working in staging"
The agent can resume normal completion vocabulary after that. Or you set a new goal for the next task.
cct translator CLIcct is a separate command-line tool that ships with goalpost. It rewrites your raw prompts via Claude Sonnet 4.6 with a strict translation system prompt: it strips sycophancy-activating language (emotional weight, urgency markers, gratitude, self-flagellation) while preserving the literal request and resolving operator-grounded references (the active goal, file paths derivable from cwd).
Install: after claude plugin install goalpost, run the installer to symlink cct into your PATH:
bash ~/Developer/goalpost/scripts/install-cct.sh
npx claudepluginhub macollins27/goalpost --plugin goalpostMemory compression system for Claude Code - persist context across sessions
Ultra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Editorial "Web Designer" bundle for Claude Code from Antigravity Awesome Skills.