Help us improve
Share bugs, ideas, or general feedback.
From odd-pipeline
Merged Stage 1+2 — define success criteria, explore against real fixtures, validate, implement, and produce a forensic record. One continuous session with a checkpoint in the middle. Use when the user says "/drive-outcomes <plan-path>", "drive the outcomes for this phase", after /define-outcomes completes, or when a phase plan is already ready for ODD-driven implementation.
npx claudepluginhub tonywu20/my-claude-marketplace --plugin odd-pipelineHow this skill is triggered — by the user, by Claude, or both
Slash command
/odd-pipeline:drive-outcomesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Merges outcome-definition (Stage 1) and implementation (Stage 2) into one
Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Provides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Share bugs, ideas, or general feedback.
Merges outcome-definition (Stage 1) and implementation (Stage 2) into one continuous session with a checkpoint. This eliminates cold-start information loss between planning and implementation — the agent that validates criteria against real data is the same agent that implements production code.
Session A (define + explore) produces a forensic TASKS.md. The user reviews and
may /clear or continue. Session B (implement on branch) reads that artifact,
refactors exploratory snippets into production code, and commits.
/drive-outcomes <plan-path>
Where <plan-path> is the path to PHASE_PLAN.md (the output of /init-project
or /define-outcomes).
The target project MUST have a CONTEXT.md (produced by /init-project). If none
exists, prompt the user to run /init-project first and stop.
Read the Tooling section from CONTEXT.md and extract:
{build_command} — the build/compile/check command{test_command} — the full test command{lint_command} — the linter commandThese will be referenced throughout Session B below.
The pipeline uses pluggable agents. Determine which agent to use for the executor role:
--agent-executor=<agent-name>, use that agent. CLI args override everything.AGENT_CONFIG.md from the project root. If it exists, parse **executor:** <agent-name>. Apply if not already set by CLI args.executor defaults to odd-pipeline:implementation-executor.executor.Throughout this skill, whenever a subagent is launched for the executor role, use the resolved agent name.
notes/plans/<phase-slug>/DECISIONS.md — design decisions from the grillnotes/plans/<phase-slug>/TASKS.md — forensic task breakdown with success criteria# Determine phase slug from plan path
PHASE_SLUG=$(basename $(dirname <plan-path>))
mkdir -p notes/plans/$PHASE_SLUG
Read the constitution, plan, deferred items, failure patterns, and tooling config:
# Read the constitution
cat CONTEXT.md
# Read the plan
cat <plan-path>
# Read deferred improvements from prior phases
fd deferred.md notes/pr-reviews/ | while read f; do echo "=== $f ==="; cat "$f"; done
# Read failure patterns
cat notes/failure-patterns.md 2>/dev/null || echo "No failure patterns catalog yet"
# Read the ODD pattern reference
cat "${CLAUDE_PLUGIN_ROOT}/skills/drive-outcomes/references/odd-pattern.md"
Launch a grill-me subagent that interviews the user about:
The agent references odd-pattern.md for placebo test detection and fixture
anchoring protocol. It does NOT discuss implementation details (those are discovered
in Steps 5-6).
Output: notes/plans/<slug>/DECISIONS.md with:
For each set of criteria declared in the grill:
This step is interactive — findings are reported to the user as they happen.
Write notes/plans/<slug>/TASKS.md following the forensic-tasks-spec.md format.
This is the checkpoint artifact. It includes:
Present the forensic TASKS.md to the user for review:
"Forensic TASKS.md written at
notes/plans/{slug}/TASKS.md. {N} tasks in {M} groups.Success criteria are anchored to:
- {N} fixture files declared
- {N} criteria with concrete expected values
- {N} criteria adjusted during exploration
Review the TASKS.md. When you're satisfied, reply 'continue' to proceed to implementation. You may also
/clearand re-invoke with/drive-outcomes --resume.
Commit the checkpoint:
git add notes/plans/$PHASE_SLUG/
git commit -m "docs: add forensic TASKS.md for $(basename $PHASE_SLUG)"
If continuing in the same session, proceed to Step 6. If resumed after /clear:
# Restore state
PHASE_SLUG=$(basename $(dirname <tasks-path>))
# Read checkpoint
cat notes/plans/$PHASE_SLUG/TASKS.md
cat notes/plans/$PHASE_SLUG/DECISIONS.md
For each task group in TASKS.md (starting from the first incomplete group):
git checkout -b impl/<phase-slug>/<group-id>
Check for existing implementation branches first (resume support):
git branch --list "impl/<phase-slug>/*"
Implement each task sequentially, dispatching on kind:
kind: lib-tdd: Launch the {executor} agent with workflow: 'odd':
feat(<slug>): <task-id> (ODD): <desc>kind: direct: Apply changes with edit→check→fix loop (up to 5 iterations):
{build_command}, fix, repeatAuto-review before commit (both kinds):
if/when/case/early-return in the
reference function must have a corresponding condition in our implementation
or an explicit justification why it's not needed. Source both the reference
line and the justification.Update resume note after each task:
# Resume: <slug>/<group-id>
**Tasks done**: TASK-1, TASK-2
**Next task**: TASK-3
**Status**: in-progress
After all tasks in a group complete:
cd <PROJECT_ROOT> && {build_command} 2>&1
cd <PROJECT_ROOT> && {lint_command} 2>&1
cd <PROJECT_ROOT> && {test_command} 2>&1
FEATURE_BRANCH=$(git rev-parse --abbrev-ref HEAD | sed 's|impl/.*||')
# FEATURE_BRANCH will be empty if we're on an impl branch; use "main" in that case
BASE_BRANCH="${FEATURE_BRANCH:-main}"
git checkout "$BASE_BRANCH"
git merge --ff-only impl/<phase-slug>/<group-id>
git branch -d impl/<phase-slug>/<group-id>
Workspace validation again on the base branch:
cd <PROJECT_ROOT> && {build_command} 2>&1
cd <PROJECT_ROOT> && {lint_command} 2>&1
cd <PROJECT_ROOT> && {test_command} 2>&1
"Outcomes driven for phase "{Phase Name}".
{N} tasks implemented, criteria anchored to {M} fixture files. Exploration adjusted {K} criteria during validation.
Next step:
/make-judgement notes/plans/{slug}/TASKS.mdfor cross-group review."
Will:
Will not: