upfront
Force thinking before code. Structured feature definition, planning, and auditable AI-assisted development.
Plugin upfront from marketplace thinkupfront in ThinkUpfront/Upfront. Commands read from the repo's manifest — 1 month ago.
This plugin runs code on your machine — its hooks fire automatically on events like tool use. The exact commands are listed below; read them before installing.
What it installs
Skills (24)
architectUse when the user says "the code is a mess", "needs restructuring", "technical debt", "architecture review", or asks about module structure. Architecture review that produces an evolution plan.
assessUse when the user raises a specific concern, question, or tradeoff — "X seems risky", "how should we handle Y", "what are the options for Z", "is this a problem?". Interactive problem-solving that teaches, explores tradeoffs, and lands on next actions.
debugUse when the user reports a bug, error, or unexpected behavior — "it's broken", "not working", "failing", "crash". Systematic debugging using the scientific method with persistent state.
enlightenUse when the user wants to improve their CLAUDE.md or AGENTS.md — "my agent instructions suck", "set up CLAUDE.md", "improve my agents file", "how do I make AI work better in this repo". Audits instruction files and generates stack-specific examples.
exploreUse when the user says "document this codebase", "what does this project do", "set up for AI", or needs to understand an unfamiliar codebase. Documents the codebase and its operational context.
featureSolidify a validated idea into a production-ready spec. Use after a spike works, or when the direction is already clear. Not for exploring — for building right.
ideateUse when the user is unsure what to build — "I'm not sure what to do", "brainstorm", "explore ideas", "what should I work on", "I have a vague idea". Divergent brainstorming to find a problem worth solving.
incrementUse when the user has shipped an increment or completed a spike — "what's next", "increment done", "spike worked", "what did we learn", "retro". The learn step in the hypothesize-test-learn loop.
noteUse when the user says "remember this", "note this", "todo", "jot this down", or wants to capture an idea. Zero-friction idea/todo capture.
patchFix a bug or implement a small feature from a GitHub issue or clear problem statement — more structure than /upfront:quick, less ceremony than /upfront:feature
pauseUse when the user says "save progress", "gotta go", "stopping for today", "need to stop", or is ending a session. Structured handoff for the next session.
planBreak a feature spec into ~400 LOC implementation phases by researching the codebase
quickExecute a small, well-understood change without the full /upfront:feature + /upfront:plan + /upfront:build ceremony
re-architectExecute an architecture evolution plan phase by phase — restructuring only, tests verified at phase boundaries
refineIterate on a spec with inline corrections and conversational challenge
resumeUse when the user says "where was I", "continue", "pick up where I left off", or is starting a session with existing HANDOFF.md. Full context restoration from a previous pause.
retroClose the loop on a shipped feature — check spec predictions against production reality
shipCreate a PR with spec-derived context so reviewers understand intent without reading the full spec
spikeUse when the user needs to test an idea fast — "just build it", "let me see it", "spike this", "prototype", "I need to try something", "quick and dirty", "throwaway". The primary path for unvalidated ideas — hypothesize, build, learn.
startThe entry point. Use when starting a session — "what should I work on", "let's go", "start", or when describing a new idea. Checks project state and routes to the right skill.
teachWalk through the codebase to rebuild understanding, with optional quizzes to verify comprehension
upUse when the user's intent is ambiguous, they ask 'what should I do', or need help choosing a skill. Smart router — figures out what you need and sends you there.
upgradeUse when the user says "check for updates", "is everything up to date", "upgrade", or at the start of a project to verify tooling is current. Checks plugin version, project guardrails, and instruction file health.
visionUse when the user describes something big — "build me an app", "I want to create a platform", "big project", multi-feature ambitions. Captures the hypothesis, identifies the riskiest assumption, and gets to the first experiment fast.
Subagents (1)
reviewability-scorerScore a proposed change across 5 reviewability dimensions. Used by /upfront:feature before ideation begins.
Hooks (5)
- SessionStart
if [ "${DO_NOT_TRACK:-}" != "1" ]; then marker="$HOME/.upfront/.installed"; project_id=$(git remote get-url origin 2>/dev/null | shasum -a 256 | cut -c1-16 || echo 'unknown'); if [ ! -f "$marker" ]; t
- PreToolUse
- PreToolUse
- PostToolUse
upfront hook
- PostToolUse
if [ "${DO_NOT_TRACK:-}" != "1" ]; then skill_name=$(cat /dev/stdin | grep -o '"skill_name":"[^"]*"' | cut -d'"' -f4 2>/dev/null || echo 'unknown'); project_id=$(git remote get-url origin 2>/dev/null
Maintain upfront?
This page updates itself from your repo. Add the badge to your README, or get it Featured to pin it above the organic results with a followed link to your site.