
# Persona Harness
**Java/Spring バックエンドを作る AI コーディングエージェントのための完了ゲート。**
[](https://www.npmjs.com/package/persona-harness)
[](https://www.npmjs.com/package/persona-harness)
[](https://nodejs.org)
[](./LICENSE)
[English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md) | [简体中文](README.zh-cn.md)
**[Start Here](docs/START-HERE.md) · [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md)**
> AI エージェントは「完了しました!」と言いたがります — Persona Harness はそれを証明させます。必要な report、PH が生成した evidence、実際のテスト結果がディスク上に存在するまで完了主張をブロックするローカル CLI 完了ゲートです。
> [!IMPORTANT]
> **Alpha, gate-first, 測定ベース。** Stable: `persona-harness@latest=0.6.0`(`next=0.6.0-rc.4`)。runtime injection は accepted 10-pair fixture で **negative** と測定されたため、runtime guidance は **default-off / opt-in** であり、プロダクトの中心ではありません。[`injection-value-status.json`](docs/current/injection-value-status.json) を参照。PH の主張は狭い範囲です: **明示的に定義された evidence gate と決定論的違反に対して、未検証の完了をブロックする。**
## 測定された動作 (Measured Behavior)
多くのエージェントハーネスプロジェクトと異なり、PH は実際に測定したものを — ネガティブな結果も含めて — 公開します。
- **偽造された TDD evidence** を `workflow finish` の前に仕込む → `finish` が **exit 1**、偽造ファイルは無視。
- **Green-only 完了**(TDD rail on)→ ブロック **5/5**(off では許可 5/5)。
- **runtime injection**、10 ペアの OpenCode run → 成功率は同じ(両方 10/10)だが PH ON は全 10 ペアでコスト増 → **default-off** を維持。
限定されたローカル fixture での completion-integrity 測定です — トークン節約・アプリ品質・プロダクト効能の主張では*ありません*。完全な境界と根拠: **[docs/MEASURED-CLAIMS.md](docs/MEASURED-CLAIMS.md)**。
## これは何か
AI エージェントが行う Java/Spring バックエンド作業のための workflow + evidence CLI(`ph`)と、任意の OpenCode プラグインです。行うこと:
- プロジェクトのアイデアや README を実装 ticket に分割
- エージェントを反復可能なバックエンド workflow に乗せ続ける
- 制限されたコマンド実行で検証
- 何を読み、実行し、完了したかをローカル evidence として記録
- **必要な report/evidence がなければ完了をブロック**
コード品質保証、トークン節約プロダクト、broad linter、生成アプリが production-ready である証明では**ありません**。完了ゲートより広いすべての主張は、先に測定によって獲得しなければなりません — [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md) を参照。
## インストール
Node.js 20+、Java 21+ / Gradle、そしてプロバイダーが設定済みの OpenCode CLI が必要です。
```bash
# OpenCode
curl -fsSL https://opencode.ai/install | bash # または: npm install -g opencode-ai
opencode auth login
# Persona Harness
npm install -D persona-harness
npx ph --help && npx ph doctor
```
## クイックスタート
クリーンなプロジェクトディレクトリでは、次の経路を使ってください(Persona Harness repo 自体は不可)。
```bash
mkdir -p /tmp/ph-demo && cd /tmp/ph-demo && npm init -y
npm install -D persona-harness
npx ph init # 最小限の統合ファイルのみ
npx ph bootstrap backend # AGENTS.md, profile, plan, report テンプレート
npx ph workflow check
```
既存の Java/Spring/Gradle プロジェクトでは、まず推論された draft を確認してから
明示的に受け入れます。
```bash
npx ph attach
npx ph attach --yes
# 認識済みの弱い Persona Harness インストールにのみ使用し、ready なものには使用しない:
npx ph attach --repair --yes
```
`attach` は、認識できない、または壊れた既存 Persona Harness ファイルを上書きせず
拒否し、すでに ready なインストールに対する repair も拒否します。attach が成功すると
PH-run verification を有効にしますが、`runtimeInjection`、`systemConstitution`、
`idleContinuation`、Ralph loop は off のままです。
その後、OpenCode でエージェントにあなたの `README.md` を実装するよう依頼します。エージェントは自分で rail を回し、`npx ph workflow finish implement` で終えるはずです。
> [!NOTE]
> `workflow finish` が失敗した場合、エージェントは完了を主張する前に報告された blocker を修正しなければなりません。**その失敗はバグではなく、プロダクトが機能している証拠です。**
サンプル Todo API とアイデア優先フローを含む完全なガイド: **[Quick Demo](docs/QUICK-DEMO.md)**。
## TDD Rail (opt-in)
`.persona/harness.jsonc` で両方の設定を有効にします:
```json
{ "enforce": { "executeVerification": true, "tdd": true } }
```
すると `ph workflow test` は **PH が直接実行した Gradle/JUnit の失敗からのみ** red evidence を記録します — エージェントが報告した evidence は決して受け付けません。その後 `workflow check` / `archive` / `finish` が同じ ticket/test id の green evidence を記録します。red-first 完了ゲートであり、テスト scaffolding・十分性の証明・coverage/mutation・アプリ品質の認証は行いません。
## コマンド
```bash
npx ph attach [--yes] # 既存 Java/Spring/Gradle プロジェクト
npx ph workflow check | implement | finish implement | archive