Help us improve
Share bugs, ideas, or general feedback.
From claudecode-research-harness-workflow
Manages task planning and Plans.md tracking with create, add, update, sync subcommands. Useful for structured plan creation and progress sync.
npx claudepluginhub maxwell2732/claudecode-research-harness-workflow --plugin claudecode-research-harness-workflowHow this skill is triggered — by the user, by Claude, or both
Slash command
/claudecode-research-harness-workflow:harness-plan [create|add|update|sync|sync --no-retro|--ci][create|add|update|sync|sync --no-retro|--ci]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
The integrated planning skill of Harness.
Manages task planning and Plans.md with research-backed validation. Creates plans, adds tasks, updates status, syncs progress. Invoked via /harness-plan or when planning actions are needed.
Creates detailed implementation plans through interactive, iterative collaboration. Useful for planning features, refactoring, or tasks.
Creates structured plans for multi-step tasks including software features, implementations, research, or projects. Deepens plans via interactive sub-agent reviews.
Share bugs, ideas, or general feedback.
The integrated planning skill of Harness. Consolidates the following 3 legacy skills:
planning (plan-with-agent) — converting ideas → Plans.mdplans-management — task state management and marker updatessync-status — Plans.md and implementation sync verification| User input | Subcommand | Action |
|---|---|---|
"Create a plan" / /harness-plan create | create | Spec delta / skip reason → generate Plans.md tasks |
"Add a task" / /harness-plan add | add | Add new task to Plans.md |
"Mark as complete" / /harness-plan update | update | Change task marker to cc:done |
"Where are we?" / /harness-plan sync | sync | Cross-reference and sync implementation with Plans.md |
/harness-sync | sync | Progress check (equivalent to independent sync surface) |
/harness-plan create | create | Create plans with spec.md / Plans.md dual-source |
/harness-plan list | list | List named Plans from plans/manifest.json |
/harness-plan switch <name> | switch | Save active plan to .claude/state/active-plan.json |
/recap: Run sync after getting a fresh summary when you return after a break/undo: Alias for /rewind. Use when you want to immediately revert the last plan updateSee references/planning-quality.md
harness-plan is a planning surface that produces co-required planning output of spec.md product contract and Plans.md task contract.
Precedence remains spec.md > sub-spec > Plans.md.
Plans.md is a task ledger; root spec.md is a product contract; the hierarchy must not be broken.
Do not convert provided information directly into Plans.md.
For plan creation and significant task additions, verify the latest information, existing specifications, memory, and TeamAgent / sub-agent multi-perspective discussions,
and only convert elements worth incorporating into this product into task contracts.
/harness-plan create returns Spec delta or Spec skip reason paired with Plans.md task generation.
Output must always include Spec delta or Spec skip reason.
Harness generates Spec delta / Spec skip reason; the consumer only approves or revises.
Non-trivial planning gate:
Planning that is not single-instance or lightweight is treated as requiring TeamAgent or sub-agents. Non-trivial here refers to requests affecting multiple tasks / multiple files / multiple sessions / product behavior / API / data model / permissions / billing / external integrations / distribution surfaces / security. If the Task tool is available, run independent perspectives for Product / Architecture / Security / QA / Skeptic. If unavailable, explicitly state "sub-agent not used" and evaluate the same perspectives separately.
Non-trivial planning output must always include the following verifications.
team_validation_mode: not_required_lightweight / native / subagent / manual-pass / unavailablespec.md / sub-spec / Plans.mdUse team_validation_mode: not_required_lightweight for lightweight tasks.
For non-trivial planning, use one of native / subagent / manual-pass.
Must not leave it as unavailable and make it Required.
Product / Architecture / Security / QA / Skeptic are verification perspectives, not agent_type names.
Request them as perspectives from available TeamAgent / Task sub-agents; do not require arbitrary agent spawning.
The Security gate does not require actual reading of secrets.
If reading .env or secrets becomes necessary, stop at a Risk Gate and verify using allowed existing guards / evidence.
When to apply:
createadd that affect product behavior / API / permissions / billing / external integrations / distribution surfacesWhen to treat lightly:
update with only marker updatessync with only status reconciliationQuality flow:
spec.md, Plans.md, README, docs, CLAUDE.md, related skills.claude/agent-memory/ / .claude/state/, etc.$easy formatspec.md / Plans.md / test tasksInterview for ideas and requirements, then generate an actionable Plans.md.
Flow:
cc:TODO markers)Plans.md is treated as the task contract for "what needs to be done"; root spec.md is treated as the product contract for "what is correct."
Co-required planning output means making both outputs required; precedence remains spec.md > sub-spec > Plans.md.
When implementation is likely to drift, update root spec.md before generating Plans.md.
create and product-impacting add always read root spec.md.
Priority for storage location:
spec.mdspec.md: existing project spec / architecture / product compassspec.md: docs/spec/00-project-spec.mdConditions requiring creation/update:
Conditions not requiring it:
Output contract:
Spec delta: When updating the product contract, write the target spec path and what changesSpec skip reason: When not updating the product contract, write the reasonSpec delta / Spec skip reason; the consumer only approves or revisesSpec skip reason in task context / sprint contract even for docs-only / mechanical tasksnot_observed != absentReference:
docs/plans/spec-ssot.mdAfter create completes, do not end with just an explanation; always provide the new session launch command and
the first instruction prompt to enter right after launch as a set.
Priority order:
claude/harness-work <task number>claude/breezing all/harness-work allENABLE_PROMPT_CACHING_1H=1 claude/harness-loop all/breezing allInclude at least these 3 lines:
New session launch command:First input after launch:Suited for:Example:
New session launch command: claude
First input after launch: /breezing all
Suited for: Phase 1 has multiple tasks and advancing them together is most natural
When recommending long-running mode, also include the Claude Code session launch command:
New session launch command: ENABLE_PROMPT_CACHING_1H=1 claude
First input after launch: /harness-loop all
Suited for: Long-running tasks where waits exceeding 5 minutes or resumptions across sessions are likely
Note:
scripts/claude-longrun.sh is a development helper script for this repository and is not distributed to consumer environments after plugin installENABLE_PROMPT_CACHING_1H=1 claudebash scripts/claude-longrun.sh may be usedCI mode (--ci):
No interview. Use existing Plans.md as-is and only perform task decomposition.
Add a new task to Plans.md.
For product-impacting additions, output Spec delta or Spec skip reason following the "spec.md / Plans.md dual-source check" above.
/harness-plan add task name: detailed description [--phase phase number]
Tasks are added with the cc:TODO marker.
Change task status markers.
/harness-plan update [task name|task number] [WIP|done|blocked]
Marker mapping:
| Command | Marker |
|---|---|
WIP | cc:WIP |
done / complete | cc:done |
blocked | blocked |
TODO | cc:TODO |
Cross-reference implementation status with Plans.md, detect differences, and update.
Flow:
.claude/state/agent-trace.jsonl)Retrospective (default ON):
Automatically run a retrospective if there is at least 1 cc:done task.
Analyze estimate accuracy, block cause patterns, and scope fluctuation; record learnings.
Can be explicitly skipped with sync --no-retro.
Keep Plans.md as the source of truth; use GitHub Issue integration only in opt-in team mode.
scripts/plans-issue-bridge.sh never actually updates GitHub; always returns dry-run payloadsReference:
docs/plans/team-mode.mdWhen using multiple Plans.md, use plans/manifest.json as the source of truth and select by name.
scripts/plan-registry.sh list
scripts/plan-registry.sh switch roadmap
scripts/plans-issue-bridge.sh --plan roadmap --format markdown
node scripts/generate-sprint-contract.js --plan roadmap 9.1.1
Operating rules:
--plan <name> explicitly for long-running / CI / issue bridge rather than relying on the active pointer.., and out-of-repo symlinks are rejectedReference:
docs/plans/named-plans.md# [Project name] Plans.md
Created: YYYY-MM-DD
---
## Phase N: Phase name
| Task | Content | DoD | Depends | Status |
|------|------|-----|---------|--------|
| N.1 | Description | Tests pass | - | cc:TODO |
| N.2 | Description | lint errors 0 | N.1 | cc:WIP |
| N.3 | Description | Migration executable | N.1, N.2 | cc:done |
DoD (Definition of Done): Write the verifiable completion condition in one line. "Looks good" or "works properly" are prohibited. Must be determinable Yes/No.
Depends: Task dependencies. - (no dependency), task number (N.1), comma-separated (N.1, N.2), phase dependency (Phase N).
Tasks in Plans.md can have TDD judgment tags in their content or DoD.
| Tag | Meaning | tdd_required inference |
|---|---|---|
[tdd:required] | This task must write failing tests first | true |
[tdd:skip:<reason>] | This task skips TDD with a reason | false, skip_tdd_reason=<reason> |
Do not leave <reason> empty.
Examples: [tdd:skip:docs-only], [tdd:skip:no-test-framework-detected].
When no tag is present, infer tdd_required in this order:
[tdd:required] / [tdd:skip:<reason>]src/, app/, cmd/, lib/, pkg/, internal/, go/, etc.harness-plan create only attaches a brief when needed.
design brief for tasks with UIcontract brief for tasks with APIscripts/generate-skill-manifest.shReferences:
docs/plans/briefs-manifest.mddocs/plans/spec-ssot.md| Marker | Meaning |
|---|---|
pm:requested | Requested by PM |
cc:TODO | Not started |
cc:WIP | In progress |
cc:done | Worker work complete |
pm:confirmed | PM review complete |
blocked | Blocked (always include reason) |
harness-sync — Sync implementation with Plans.mdharness-work — Implement planned tasksharness-review — Review implementationsharness-setup — Project initialization