HAR: Research-backed, team-validated task planning, Plans.md management, progress sync. Trigger: create a plan, add tasks, update Plans.md, mark complete, check progress. Do NOT load for: implementation, review, release.
Harness の統合プランニングスキル。 以下の3つの旧スキルを統合:
planning (plan-with-agent) — アイデア → Plans.md への落とし込みplans-management — タスク状態管理・マーカー更新sync-status — Plans.md と実装の同期確認| ユーザー入力 | サブコマンド | 動作 |
|---|---|---|
"計画を作って" / /harness-plan create | create | Spec delta / skip reason → Plans.md task 生成 |
"タスクを追加して" / /harness-plan add | add | Plans.md に新タスク追加 |
"完了にして" / /harness-plan update | update | タスクマーカーを cc:完了 に変更 |
"今どこ?" / /harness-plan sync | sync | 実装とPlans.mdを照合・同期 |
/harness-sync | sync | 進捗確認(独立 sync surface と同等) |
/harness-plan create | create | spec.md / Plans.md 二正本の計画作成 |
/harness-plan list | list | plans/manifest.json の named Plans を一覧 |
/harness-plan switch <name> | switch | active plan を .claude/state/active-plan.json に保存 |
計画依頼(create / 引数なし起動 / 「計画して」)の既定解釈は 「現時点で着手可能なすべての作業」。
/recap: 久しぶりに戻った時に要約を取り直してから sync へ入る/undo: /rewind の別名。直前の plan 更新を即座に戻したい時にそのまま使うSee references/planning-quality.md
harness-plan は、spec.md product contract and Plans.md task contract の co-required planning output を作る planning surface である。
precedence は spec.md > sub-spec > Plans.md のまま維持する。
Plans.md は task ledger、root spec.md は product contract であり、上下関係は崩さない。
渡された情報をそのまま Plans.md に落とさない。
計画作成や大きな task 追加では、最新情報・既存仕様・記憶・TeamAgent / サブエージェントによる複数視点の議論を確認し、
このプロダクトに取り入れるべき要素だけを task contract に変換する。
/harness-plan create は Spec delta または Spec skip reason と Plans.md task 生成をセットで返す。
出力には必ず Spec delta または Spec skip reason を含める。
Spec delta / Spec skip reason は Harness が生成し、consumer は承認・修正だけ行う。
Non-trivial planning gate:
単発・軽微タスクでない planning は、TeamAgent またはサブエージェント前提で扱う。
ここでの non-trivial は、複数 task / 複数 file / 複数 session / product behavior / API / data model / 権限 / 課金 / 外部連携 / 配布面 / セキュリティに影響する依頼を指す。
Task tool が使える場合は Product / Architecture / Security / QA / Skeptic の独立視点を走らせる。
使えない場合は サブエージェント未使用 と明示し、同じ観点を単独で分けて評価する。
non-trivial planning の出力には、次の検証を必ず含める。
team_validation_mode: not_required_lightweight / native / subagent / manual-pass / unavailablespec.md / sub-spec / Plans.md の整合性軽量 task は team_validation_mode: not_required_lightweight でよい。
non-trivial planning は native / subagent / manual-pass のいずれかを使う。
unavailable のまま Required にしてはいけない。
Product / Architecture / Security / QA / Skeptic は検証 perspective であり、agent_type 名ではない。
利用可能な TeamAgent / Task サブエージェントに perspective として依頼し、任意 agent spawn を要求しない。
Security gate は秘密情報の実読取を要求しない。
.env や secret の read が必要になる場合は Risk Gate として止め、許可された既存 guard / evidence で確認する。
適用する場面:
create で新しい計画を作るadd で product behavior / API / 権限 / 課金 / 外部連携 / 配布面に影響する task を足す軽く扱ってよい場面:
updatesync品質フロー:
spec.md・Plans.md・README・docs・CLAUDE.md・関連 skill を確認する.claude/agent-memory/ / .claude/state/ など、利用可能な記憶面を project-scoped で確認する$easy 形式で、提案内容・理由・どうなるのかを報告するspec.md / Plans.md / test task へ落とし込むFast / Gate / Release は 新 skill ではなく Plans metadata として扱う。Plans.md の 5 column テンプレート(Task / 内容 / DoD / Depends / Status)は変更せず、
lane([lane:fast] / [lane:gate] / [lane:release])・stage(検証→計画→TDD実装→レビュー→PR closeout の 5 段階)・unknown data contract(not_observed != absent、確認できない事実は unknown と明示)を
内容(Content)または DoD の先頭に埋め込む。タグ一覧・worked example・stage 別 DoD 例は
references/create.md を参照。
アイデア・要件をヒアリングし、実行可能な Plans.md を生成する。
フロー:
cc:TODO マーカー付き)create で計画を確定する時は、Plans.md task を出したあと、承認前に 事前確認セクションを必ず生成する。
目的は、常設 allowlist で何でも許可するのではなく、作業スコープごとに「発生しそうな stop / ask」を plan 承認時に 1 回だけ前倒しで確認すること。
抽出対象:
secret-read path(.env*, secrets/**, *.pem, *.key, .ssh/**, .aws/**, credentials など)git push, gh pr create, gh api, curl / API call, release / publish / deploy)rm -rf, migration destructive step, force push, production apply)固定 format:
## 事前確認
- 事項: <secret-read / external-send / destructive の具体操作>
理由: <DoD または task 実行上必要な理由を 1 行>
scope: Phase <phase> / Task <task>出力ルール:
理由 は secret 値を含めない。path / コマンド名 / 対象サービスまでに留める。.claude/state/plan-preapprovals.json に plan-preapproval.v2 として記録する。schema は templates/schemas/plan-preapproval.v2.json。v1 は既存記録の読み取り互換に限る。事項 + 理由 1 行 + scope (phase/task) を維持する。operations には secret-read / external-send / destructive を列挙する。paths / commands / targets には対象を列挙する。decision、approved_at、RFC3339 の expires_at を入れる。max_uses は必要な再試行回数を含む上限を設定する。省略時は 10 回。uses は新規承認時に 0 とする。harness-work / breezing 実行中、宣言済み事項だけを理由に AskUserQuestion を出してはいけない。runtimefloor.secretAllow へ per-run 反映するための入力として扱う。Plans.md は「やるべきこと」の task contract、root spec.md は「何が正しいか」の product contract として扱う。
co-required planning output は両方の出力を必須にするという意味であり、precedence は spec.md > sub-spec > Plans.md のまま維持する。
実装がぶれる可能性がある時は、Plans.md 生成前に root spec.md を更新する。
create と product-impacting add は毎回 root spec.md を読む。
優先する保存先:
spec.mdspec.md がない時だけ、既存の project spec / architecture / product compassspec.md がない時だけ、docs/spec/00-project-spec.md作成/更新が必要な条件:
不要な条件:
出力契約:
Spec delta: product contract を更新する時に、対象 spec path と変更点を書くSpec skip reason: product contract を更新しない時に、理由を書くSpec delta / Spec skip reason は Harness が生成し、consumer は承認・修正だけ行うSpec skip reason を task context / sprint contract に残すnot_observed != absent参照:
docs/plans/spec-ssot.mdcreate が終わったら、説明だけで終わらせず、新しいセッションの起動コマンド と
起動後にそのまま入れる最初の指示プロンプト をセットで案内する。
優先順位は次の通り:
claude/harness-work <task番号>claude/breezing all/harness-work allENABLE_PROMPT_CACHING_1H=1 claude/harness-loop all/breezing all最低でも次の 3 行を含める:
新しいセッションの起動コマンド:起動後の最初の入力:向いている場面:例:
新しいセッションの起動コマンド: claude
起動後の最初の入力: /breezing all
向いている場面: Phase 1 の task が複数あり、まとめて進めるほうが自然なため長時間系を勧める場合は、Claude Code セッション起動コマンドも併記する:
新しいセッションの起動コマンド: ENABLE_PROMPT_CACHING_1H=1 claude
起動後の最初の入力: /harness-loop all
向いている場面: 5 分を超える待機や resume をまたぐ長時間タスクのため補足:
scripts/claude-longrun.sh はこのリポジトリの開発補助スクリプトで、plugin install 後の consumer 環境には配布されないENABLE_PROMPT_CACHING_1H=1 claude の 1 行コマンドを優先するbash scripts/claude-longrun.sh はローカル checkout 上では利用してよいCI モード (--ci):
ヒアリングなし。既存の Plans.md をそのまま利用してタスク分解のみ行う。
Plans.md に新しいタスクを追加する。
product-impacting な追加では、上の「spec.md / Plans.md 二正本チェック」に従い Spec delta または Spec skip reason も出力する。
/harness-plan add タスク名: 詳細説明 [--phase フェーズ番号]タスクは cc:TODO マーカーで追加される。
タスクのステータスマーカーを変更する。
/harness-plan update [タスク名|タスク番号] [WIP|完了|blocked]マーカー対応表:
| コマンド | マーカー |
|---|---|
WIP | cc:WIP |
完了 / done | cc:完了 |
blocked | blocked |
TODO | cc:TODO |
実装状況と Plans.md を照合し、差分を検出・更新する(Plans.md 現状取得 → フォーマット検出 → git 状況取得 → agent trace 分析 → 差分検出 → マーカー修正提案 → 次アクション提示)。
cc:完了 タスクが 1 件以上あれば、見積もり精度・ブロック原因・スコープ変動を分析するレトロスペクティブをデフォルト ON で実行する(sync --no-retro でスキップ)。
Step 0-6 の完全版・harness-mem への記録手順は references/sync.md を参照。
Plans.md は正本のまま維持し、GitHub Issue 連携は opt-in の team mode だけで使う。
scripts/plans-issue-bridge.sh は実際に GitHub を更新せず、常に dry-run の payload を返す参照:
docs/plans/team-mode.md複数の Plans.md を使う場合は plans/manifest.json を正本にして、名前で選択する(1 run では 1 つの named plan だけを使う。long-running / CI / issue bridge では active pointer に頼らず --plan <name> を渡す。manifest path は project root 相対のみ)。
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参照: docs/plans/named-plans.md
5 カラム(Task / 内容 / DoD / Depends / Status)の Markdown table。DoD は Yes/No 判定できる検証可能な 1 行(「いい感じ」「ちゃんと動く」は禁止)。
Depends は -(依存なし)/ タスク番号 / カンマ区切り複数 / フェーズ依存のいずれか。生成テンプレート全文(Purpose 行含む)は
references/create.md を参照。
Plans.md の task には、TDD 判定を明示するタグを内容または DoD に書ける。
| タグ | 意味 | tdd_required 推論 |
|---|---|---|
[tdd:required] | この task は先に失敗テストを書く必要がある | true |
[tdd:skip:<reason>] | この task は理由つきで TDD を省略する | false, skip_tdd_reason=<reason> |
<reason> は空にしない。
例: [tdd:skip:docs-only]、[tdd:skip:no-test-framework-detected]。
タグがない場合の tdd_required は次の順で推論する。
[tdd:required] / [tdd:skip:<reason>]src/, app/, cmd/, lib/, pkg/, internal/, go/ など source 実装を含むなら requiredharness-plan create は、必要なときだけ brief を付ける。
design briefcontract briefscripts/generate-skill-manifest.sh で machine-readable JSON にできる参照:
docs/plans/briefs-manifest.mddocs/plans/spec-ssot.md| マーカー | 意味 |
|---|---|
pm:依頼中 | PM から依頼済み |
cc:TODO | 未着手 |
cc:WIP | 作業中 |
cc:完了 | Worker 作業完了 |
pm:確認済 | PM レビュー完了 |
blocked | ブロック中(理由を必ず記載) |
Plans.md への task append が完了したら、非エンジニアの発注者が計画を判断できるよう
harness-plan-brief を提案する。これは理解・選択肢・リスク・合格条件を 1 枚の HTML に
まとめた「計画概要」画面で、専門知識なしで読める。実装に入る前の合意形成に使う。
harness-sync — 実装と Plans.md を同期するharness-work — 計画したタスクを実装するharness-plan-brief — 計画概要 HTML(非エンジニア向け、計画確定時に提案)harness-review — 実装のレビューharness-setup — プロジェクト初期化7a4e845
Also appears in
since Jul 27, 2026
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.