Skip to content
Agent Orchestration
Skill

/harness-accept

Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then renders a single-file HTML showing each

BOOST
From plugin
claude-code-harness
3.2k23 skills5 agents5 commands
Install
$ npx -y skills add Chachamaru127/claude-code-harness --skill harness-accept --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/harness-accept

Context preview

The summary Claude sees to decide when to auto-load this skill.

Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then renders a single-file HTML showing each

SKILL.md

harness-accept.SKILL.md
name: harness-accept
description: "Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then renders a single-file HTML showing each criterion as verified or unverified along with a ship/wait/reject recommendation. Use when the user asks for an acceptance review, wants to decide whether to ship a delivered task, or says: acceptance demo, accept demo, 受け入れ判断, 受入レビュー, ship/wait/reject 判定, 検収レビュー. Do NOT load for: implementation, code review, release work."
description-en: "Generate an Acceptance Demo HTML for non-engineer vibecoders right before ship/wait/reject decision. Reads back the acceptance_criteria that were stored as personal-preference.v1 by harness-plan-brief (joined by user_request_hash), then renders a single-file HTML showing each criterion as verified or unverified along with a ship/wait/reject recommendation. Use when the user asks for an acceptance review, wants to decide whether to ship a delivered task, or says: acceptance demo, accept demo, 受け入れ判断, 受入レビュー, ship/wait/reject 判定, 検収レビュー. Do NOT load for: implementation, code review, release work."
description-ja: "実装完了直後の受け入れ判断 (ship / wait / reject) 前に Acceptance Demo HTML を生成する。harness-plan-brief が `personal-preference.v1` で書き込んだ acceptance_criteria を `user_request_hash` 経由で取得し、各基準ごとに verified / unverified を表示。`recommendation` を ship / wait / reject の 3 値で算出し、根拠を HTML 上で可視化する。Use when: 受け入れ判断, 受入レビュー, ship/wait/reject 判定, 検収レビュー。Do NOT load for: 実装作業, code review, release。"
allowed-tools: ["Read", "Write", "Edit", "Bash"]
argument-hint: "[task-description]"
user-invocable: true

harness-accept

非エンジニアの発注者・プロデューサー職向けに、実装完了タスクの受け入れ判断 (ship / wait / reject) を **HTML 1 枚** で提示するスキル。 発注者の認知負荷ピーク (3) 受け入れ判断の段階で使う。

Phase 65.1.x (`harness-plan-brief`) の対構造として動作し、Plan Brief で承認した `acceptance_criteria` を read 側で取り戻して評価する。

Quick Reference

  • 「**Acceptance Demo を作って**」 → このスキル
  • 「**受け入れ判断したい**」 → このスキル
  • 「**ship/wait/reject 判定**」 → このスキル

責任境界

| 範囲 | このスキルの責務 | |------|-----------------| | 検索 | **現プロジェクトのみ** (`project: <current>`, `strict_project: true` を必ず指定) | | クロスプロジェクト | **やらない** (Phase 65.3 以降で `--cross-project-group <name>` flag で opt-in 解放) | | Plan Brief 連携 | `user_request_hash` を join key として `personal-preference.v1` (Phase 65.1.4) を read | | 書き込み | やらない (Acceptance 承認後の memory write は `accept-record-decision.sh` の責務) | | recommendation 算出 | verified / 全 criteria の比率で 0.8 / 0.5 閾値判定。ロジックは `scripts/render-html.sh` 直前で計算 |

入力

引数 `[task-description]` にユーザーの request を渡す (Plan Brief 時と同じ文を使う)。 引数なしの場合は会話と Plan Brief の原依頼を読み取りで回収する。hash の照合に使うため原文を言い換えない。対象が確定しない時だけ確認する。

出力

| 出力 | パス | 形式 | |------|------|------| | Acceptance Demo HTML | `.claude/state/views/accept-<timestamp>.html` | 単独で開ける HTML (no server, no JS framework) | | Acceptance context JSON | `.claude/state/views/accept-<timestamp>.context.json` | `acceptance-context.v1` schema |

Schema: `acceptance-context.v1`

{
  "schema": "acceptance-context.v1",
  "user_request": "string",
  "user_request_hash": "sha256 hex (Plan Brief 側の personal-preference.v1 と join)",
  "demo_artifacts": [
    { "kind": "video|screenshot|text", "path": "string" }
  ],
  "verified_criteria": [
    { "name": "string", "passed": true, "evidence": "string" }
  ],
  "tdd_verified": "yes|no|not-required|skip:<reason>",
  "unverified_caveats": ["string"],
  "past_issue_patterns": [
    { "pattern_id": "P5", "title": "string", "verified_in_current_task": true }
  ],
  "recommendation": "ship|wait|reject",
  "recommendation_evidence": ["string"],
  "project": "string",
  "generated_at": "ISO8601",
  "blind_evaluation": {
    "applicable": true,
    "eligibility_reason": "persuasive-doc|functional-skip|not_applicable|unavailable",
    "audience_purpose_line": "string",
    "evaluator_believable": "believable|not_believable|uncertain",
    "evaluator_useful": "useful|not_useful|uncertain",
    "evaluator_friction_points": ["string"],
    "internal_recommendation": "ship|wait|reject",
    "divergence": "none|internal_high_evaluator_low|internal_low_evaluator_high",
    "divergence_notes": "string"
  }
}

`blind_evaluation` は Phase 137.2 で追加した optional field (additive、既存 consumer は無視してよい)。 詳細は [`references/blind-evaluator.md`](${CLAUDE_SKILL_DIR}/references/blind-evaluator.md) を参照。

完全 schema は [`schemas/acceptance-context.v1.schema.json`](${CLAUDE_SKILL_DIR}/schemas/acceptance-context.v1.schema.json) を参照。

Recommendation 算出ロジック

verified_count    = count of verified_criteria where passed=true
total_criteria    = count of verified_criteria
pending_count     = count of criteria whose evidence が "pending_validations: " prefix を持つ (Step 4 の記入規約)
ratio             = verified_count / total_criteria  (total=0 のときは 0)

  total = 0    → "reject" (criteria 0 件は判定不能、安全側 reject)
  ratio >= 0.8 → base = "ship"
  ratio >= 0.5 → base = "wait"
  ratio <  0.5 → base = "reject"

  # pending 補正 (Phase 134.4): 検証待ちの criteria が残っている限り ship にしない
  pending_count >= 1 かつ base == "ship" → interim = "wait" (ship から丸める)
  それ以外                                 → interim = base

  # blind_evaluation 補正 (Phase 137.2): fresh fork 評価者が「信じられない/役に立たない」と
  # 判定し、かつ内側の recommendation が依然 ship なら wait に丸める。reject へはさらに丸めない
  blind_evaluation.applicable == true
    かつ blind_evaluation.divergence == "internal_high_evaluator_low"
    かつ interim == "ship"
    → recommendation = "wait"
  それ以外
    → recommendation = interim

評価根拠は `recommendation_evidence` に literal な数値で残す。 例: `"verified 4 件 / 全 5 件 (80%) → ship 閾値以上"` pending 補正が効いた場合は `"pending_validations 該当 criteria N 件が未解消のため ship を wait に丸めた"` のように理由を明記する。 blind_evaluation 補正が効いた場合は `"blind evaluator が believable=not_believable / useful=not_useful と判定したため ship を wait に丸めた"` のように理由を明記する。 アルゴリズムと Eligibility (説得系/文書系のみ適用、機能系は `functional-skip` で skip) の詳細は [`refe

Read more
Ships withclaude-code-harness

Plan. Work. Review. Ship. A disciplined delivery loop for Claude Code, Codex CLI, Cursor, and Grok.

Get the whole plugin

Other skills on claude-code-harness.