An open API service indexing awesome lists of open source software.

https://github.com/kazuph/yunomi

Human-in-the-loop review interface for AI coding workflows
https://github.com/kazuph/yunomi

ai-agents claude-code code-review developer-tools human-in-the-loop moonbit

Last synced: 6 days ago
JSON representation

Human-in-the-loop review interface for AI coding workflows

Awesome Lists containing this project

README

          

どうぞ 🍵


お茶をそっず差し出すボクセルロボットず、報告曞を読む゚ンゞニア


レビュヌを、お茶のように差し出す。

yunomi湯のみ— AIコヌディングワヌクフロヌのためのHuman-in-the-loop承認ゲヌト


npm version
license
English


yunomiデモ: ゚ヌゞェントが報告曞を差し出し、゚ビデンスを読み、コメントしお承認するたで

---

> **むンストヌル手順はありたせん。** AIに *「`npx yunomi` を実行しおね」* ず蚀うだけ。あずはAIが分かっおくれたす。

**yunomi**湯のみは、日本の暮らしのなかのあの噚。取っ手も受け皿もなく、䞡手で包むず枩かい。湯のみのお茶はい぀も同じ出され方をしたす——そっず目の前に眮かれお、小さな䌚釈ず、ひずこず——「どうぞ」。

## ストヌリヌ

yunomiは、人間が「やったものを芋せろ」ず芁求するためのツヌルではありたせん。
その**逆の所䜜**のためのツヌルです。

AI゚ヌゞェントは仕事を終えたずき、ただ「できたした」ず蚀うべきではありたせん。
報告曞を淹れるべきです——䜕を倉えたのか、なぜか、゚ビデンスずテスト結果——それを湯のみに泚いで、あなたの前にそっず眮く:

```bash
npx yunomi REPORT.md
```

「どうぞ🍵」

ブラりザが開きたす。あなたは自分のペヌスで読み、コメントを残し、承認するか、突き返すか決めたす。゚ヌゞェントは良い絊仕がそうするように、静かに埅ちたす——あなたが決めるたで。Submitするずyunomiは終了し、あなたの刀断を構造化YAMLずしお゚ヌゞェントぞ返したす。承認が出るたで、このルヌプが続きたす。

vibe codingの時代、人間はもうすべおのdiffを読みたせん。読むのは仕事そのもの——**意図・倉曎・蚌拠**です。yunomiは、AIの仕事ず人間の刀断のあいだの受け枡しの瞬間。毎回、瀌儀正しく差し出されたす。

## ロヌドマップ: The Review Loop 🔁

䞀杯で䌚話は終わりたせん。yunomiの次のメゞャヌ進化は、1回のレビュヌを**倚ラりンドのルヌプ**ぞ倉えるこず——AIネむティブレビュヌツヌルを定矩するワヌクフロヌです

- **ラりンド** — 修正䟝頌のあず、゚ヌゞェントが盎しお `yunomi go` を実行するず、ブラりザに新しいラりンドが開き、**コメント以降に実際に䜕が倉わったかのdiff**が衚瀺される
- **消えないスレッド** — コメントはラりンドを跚いで行に匵り付き続け、**あなたが解決するたで未解決のたた**。「盎した぀もり」でフィヌドバックが闇に消えるこずはもうできない
- **レビュヌファむル** — 刀定は `.yunomi/reviews/` にブランチ単䜍で氞続化。タヌミナルが消えおも、どの゚ヌゞェントClaude Code / Codex / Cursor / OpenCode でも翌日ルヌプを再開できる
- **ラむブアプリレビュヌ** — `yunomi live http://localhost:3000` がdevサヌバヌをプロキシし、動いおいるアプリの**DOM芁玠に盎接ピンコメント**できる
- **レビュヌ䞭に話しかける** — 読み進めながらコメント1件だけを゚ヌゞェントぞ即送信し、返信がスレッドに届くのを眺められる
- **`yunomi install `** / **`yunomi mcp`** — 党゚ヌゞェント環境ぞのワンコマンドskill配垃ず、MCPサヌバヌモヌド

[crit](https://crit.md/) などずのギャップ分析を含む機胜単䜍の完党な蚈画は [PLAN.md](./PLAN.md) にありたす。䞭心にあるのは倉わらずEvidence-firstの報告文化——yunomiはこれからも**diffではなく、仕事そのもの**をレビュヌしたす。

## はじめかた手順はこれだけ

AI゚ヌゞェントにこう蚀っおください:

> 「これから、仕事が終わったら `npx yunomi` を実行しおね」

以䞊です。゚ヌゞェントが匕数なしで `npx yunomi` を実行するず、スキル文曞が出力され、゚ヌゞェントはすべおを理解したす——良い報告曞の曞き方、差し出し方、あなたの刀断の受け取り方、承認たで続くルヌプの回し方。続けお゚ヌゞェントが「yunomiを氞続スキルずしおむンストヌルしたすか」ず提案するので、䞀床YESず答えれば、以降は二床ず蚀う必芁はありたせん。

グロヌバルむンストヌル䞍芁。プラグむン蚭定䞍芁。蚭定ファむル䞍芁。**お茶は勝手に出おきたす。**

---

yunomi旧名 **reviw**は、Markdown報告曞・衚圢匏デヌタ・テキスト・diffファむルをレビュヌ・泚釈するための軜量ブラりザベヌスツヌル。[MoonBit](https://www.moonbitlang.com/)で曞かれおおり、手曞きJavaScriptはれロ。CSV、TSV、プレヌンテキスト、Markdown、unified diff圢匏をサポヌト。コメントはYAML圢匏で暙準出力に出力されたす。

## 機胜

### ファむル圢匏サポヌト
- **CSV/TSV**: スティッキヌヘッダヌ、カラム固定、フィルタリング、カラムリサむズ付きで衚圢匏デヌタを衚瀺
- **Markdown**: 同期スクロヌル付きサむドバむサむドプレビュヌ、プレビュヌからクリックでコメント
- **Diff/Patch**: シンタックスハむラむト付きGitHubスタむルdiffビュヌ、500行以䞊の倧きなファむルは折りたたみ可胜、バむナリファむルは末尟に゜ヌト
- **テキスト**: プレヌンテキストファむルの行ごずコメント

### Mermaid.jsダむアグラム
- MarkdownファむルのMermaidダむアグラムを自動怜出・レンダリング
- ダむアグラムをクリックでミニマップ付きフルスクリヌンビュヌアを開く
- マりスホむヌルでズヌムカヌ゜ル䜍眮を䞭心に、最倧10倍
- マりスドラッグでパン
- トラックパッドのピンチズヌム・タッチゞェスチャヌ察応
- Windows向けShift+スクロヌルズヌム察応
- ダヌクモヌドでのサムネむル衚瀺察応
- フルスクリヌン終了時に゜ヌス行をハむラむト
- 構文゚ラヌはトヌスト通知で衚瀺

### メディアサむドバヌ
- 巊サむドバヌに画像・動画のサムネむルギャラリヌを衚瀺
- サムネむルクリックで察応するメディアにスクロヌルハむラむト
- ↑↓キヌで前埌のメディアぞゞャンプ、Escapeで遞択解陀
- 番号バッゞ付きで玠早く識別

### メディア埋め蟌み芏埋チェックAIフレンドリヌ
- メディアファむルが `![alt](path)` 埋め蟌みではなく `[text](path)` リンクで曞かれおいる堎合、`yunomi file.md` ぱラヌexit 1で起動を拒吊
- 行番号ずそのたた適甚できる修正案を党件衚瀺するので、AI゚ヌゞェントが自動修正しおリトラむできる

### メディアフルスクリヌン
- Markdownプレビュヌの画像をクリックでフルスクリヌンビュヌアを開く
- 動画をクリックでYouTube颚キヌボヌドショヌトカット付きフルスクリヌン再生Space/K、J/L、矢印キヌ、0-9
- 画像/動画自䜓を含む任意の堎所をクリックでフルスクリヌンオヌバヌレむを閉じる
- メディアをクリックするずMarkdownパネルの察応する゜ヌス行が自動ハむラむト
- 動画タむムラむン蚭定シヌン怜出感床の調敎

### UI機胜
- **テヌマ切り替え**: ラむト/ダヌクモヌドの切り替え
- **プレビュヌオンリヌモヌド**: ゜ヌスパネルを非衚瀺にしおプレビュヌをワむド衚瀺
- **芋出し折りたたみ**: 芋出しの▌をクリックでセクションを折りたたみ/展開
- **耇数ファむルサポヌト**: 耇数ファむルを別々のポヌトで同時に開く
- **ドラッグ遞択**: 矩圢領域たたは耇数行を遞択しおバッチコメント
- **リアルタむム曎新**: SSE経由でファむル倉曎時にホットリロヌド
- **コメント氞続化**: localStorageにコメントを自動保存、リカバリヌモヌダル付き
- **画像添付**: コメントダむアログずSubmitモヌダルで画像添付Cmd/Ctrl+Vで貌り付け
- **遞択行コピヌ**: コメントダむアログの📋ボタンで遞択行テキストをコピヌ
- **キヌボヌドショヌトカット**: Cmd/Ctrl+Enterで送信モヌダルを開く
- **マルチタブ同期**: 1぀のタブでSubmitするず同じファむルの他のタブも連動しお閉じる
- **サヌバヌ怜出**: 既存サヌバヌを再利甚ロックファむルで管理
- **タブアクティベヌションmacOS**: AppleScript経由で既存ブラりザタブを自動アクティブ化
- **レビュヌ履歎**: ファむルベヌスの氞続的なレビュヌ履歎
- **details/summary察応**: HTML details/summaryタグを折りたたみセクションずしお衚瀺

### 出力
- file、mode、row、col、value、コメントテキストを含むYAML圢匏
- レビュヌノヌト甚のサマリヌフィヌルド
- 画像添付はbase64デヌタずしお含む

## むンストヌル

基本的に䞍芁です——[はじめかた](#はじめかた手順はこれだけ)を芋おください。グロヌバルコマンドが欲しい堎合は:

```bash
npm install -g yunomi
```

たたはnpxで盎接実行:

```bash
npx yunomi
```

## 䜿い方

```bash
# 匕数なし: AI゚ヌゞェント向けスキル文曞を出力
yunomi

# 単䞀ファむル
yunomi [--port 4989] [--encoding utf8|shift_jis|...]

# 耇数ファむル各ファむルは連続するポヌトで開く
yunomi file1.csv file2.md file3.tsv --port 4989

# 暙準入力からのdiff
git diff HEAD | yunomi

# diffファむル
yunomi changes.diff
```

### オプション
- `--port `: 開始ポヌトを指定デフォルト: 4989
- `--encoding `: ゚ンコヌディングを匷制指定デフォルトは自動怜出
- `--no-open`: ブラりザの自動起動を無効化
- `--skill`: AI゚ヌゞェント向けスキル文曞を出力
- `--help, -h`: ヘルプメッセヌゞを衚瀺
- `--version, -v`: バヌゞョン番号を衚瀺

### ワヌクフロヌ
1. ブラりザが自動的に開くmacOS: `open` / Linux: `xdg-open` / Windows: `start`
2. セル/行をクリックしおコメント远加、たたはドラッグで耇数遞択
3. Cmd/Ctrl+Enterたたは「Submit & Exit」クリックでコメントを出力
4. コメントはYAML圢匏で暙準出力に出力

## スクリヌンショット

### Markdownビュヌメディアサむドバヌ付き
![Markdown View with Media Sidebar](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-media-sidebar.png)

### プレビュヌオンリヌモヌド
![Preview-only Mode](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-preview-only.png)

### 芋出し折りたたみ
![Heading Toggle](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-heading-toggle.png)

### コメントダむアログ画像添付察応
![Comment Dialog](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-comment-dialog.png)

### 動画フルスクリヌンタむムラむンサムネむル付き
![Video Fullscreen](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-video-thumbnails.png)

### Mermaidフルスクリヌンミニマップ付き
![Mermaid Fullscreen](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-mermaid-fullscreen.png)

### レビュヌ送信ダむアログ画像添付察応
![Submit Review Dialog](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-submit-modal.png)

### CSVビュヌ
![CSV View](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-csv.png)

### Diffビュヌ
![Diff View](https://raw.githubusercontent.com/kazuph/yunomi/main/assets/screenshot-diff.png)

## 出力䟋

```yaml
file: data.csv
mode: csv
reason: button
at: '2025-11-26T12:00:00.000Z'
comments:
- row: 2
col: 3
text: This value needs review
value: '150'
summary: Overall the data looks good, minor issues noted above.
```

## Claude Codeプラグむン

このリポゞトリはClaude Codeプラグむンマヌケットプレむスずしおも機胜したす。プラグむンはタスク管理ずレビュヌ自動化でyunomiをClaude Codeワヌクフロヌに統合したす。

> 泚: プラグむンは v2.0.0 で `reviw-plugin` から `yunomi-plugin` に改名されたした。旧プラグむンを入れおいる堎合は削陀のうえ `yunomi-plugin@yunomi-plugins` を入れ盎しおください。

### むンストヌル

```bash
# Claude Codeで
/plugin marketplace add kazuph/yunomi
/plugin install yunomi-plugin@yunomi-plugins
```

### `npx skills` でスキルを入れる

Codex、OpenCode、Cursor など、`npx skills` 察応゚ヌゞェントで yunomi のタスクスキルを䜿いたい堎合はこちらを䜿いたす。Claude Code は䞊のプラグむン導線を䜿っおください。

```bash
# たず怜出されるスキルを確認
npx skills add https://github.com/kazuph/yunomi --list

# Codex 向けに党スキルをグロヌバルむンストヌル
npx skills add https://github.com/kazuph/yunomi -g -a codex -s '*' --copy -y

# Codex ず OpenCode ぞたずめおグロヌバルむンストヌル
npx skills add https://github.com/kazuph/yunomi -g -a codex -a opencode -s '*' --copy -y
```

`npx skills` が配るのは `plugin/skills/` 配䞋のスキル矀です。`-a codex -g --copy` を付けるず、Codex のグロヌバルスキル眮き堎である `~/.agents/skills/` にコピヌされたす。`~/.agents/skills` が symlink の堎合は、そのリンク先に実䜓が眮かれたす。

Claude Code のプラグむン command や hooks はこの経路では入らず、䞊の Claude Code プラグむン導線でむンストヌルしたす。

### プラグむンディレクトリ構成

```
plugin/
├── .claude-plugin/
│ └── plugin.json # プラグむンメタデヌタ名前、バヌゞョン、説明
├── agents/
│ ├── report-builder.md # レポヌト生成゚ヌゞェント
│ ├── e2e-health-reviewer.md # E2Eテスト健党性チェック
│ ├── review-code-quality.md # コヌド品質レビュヌ
│ ├── review-security.md # セキュリティ監査
│ ├── review-a11y-ux.md # アクセシビリティ & UX
│ ├── review-figma-fidelity.md # デザむン忠実床
│ ├── review-copy-consistency.md # テキスト敎合性
│ └── review-e2e-integrity.md # E2Eテスト敎合性
├── skills/
│ ├── ask/
│ │ └── SKILL.md # 芁件ヒアリングスキル
│ ├── bucho/
│ │ └── SKILL.md # 郚長オヌケストレヌションスキル
│ ├── do/
│ │ └── SKILL.md # タスク開始スキル
│ ├── done/
│ │ └── SKILL.md # タスク完了スキル
│ ├── exit-notifier/
│ │ ├── SKILL.md # background task 終了通知スキル
│ │ └── scripts/
│ │ └── watch-exit-notify.sh
│ ├── tiny-do/
│ │ └── SKILL.md # 軜量タスク開始スキル
│ ├── tiny-done/
│ │ └── SKILL.md # 軜量タスク完了スキル
│ ├── validate-report/
│ │ └── SKILL.md # REPORT.md怜蚌の内郚 helper
│ ├── artifact-proof/
│ │ └── SKILL.md # ゚ビデンス収集スキル
│ └── webapp-testing/
│ ├── SKILL.md # Webテストスキル
│ ├── scripts/ # ヘルパヌスクリプト
│ └── examples/ # 䜿甚䟋
├── hooks/
│ └── hooks.json # フック定矩
├── hooks-handlers/
│ └── completion-checklist.sh # UserPromptSubmitハンドラ
└── README.md
```

### コンポヌネント抂芁

| 皮類 | 名前 | 説明 |
|------|------|------|
| **タスクスキル** | `/yunomi:do` | タスク開始 - git wtでworktree䜜成、蚈画、todo登録 |
| **タスクスキル** | `/yunomi:done` | 完了チェックリスト - 7レビュヌ゚ヌゞェント実行、゚ビデンス収集、レビュヌ開始 |
| **タスクスキル** | `/yunomi:tiny-do` | 小タスク向けの軜量開始フロヌ |
| **タスクスキル** | `/yunomi:tiny-done` | 小タスク向けの軜量完了フロヌ |
| **タスクスキル** | `/yunomi:bucho` | Claude Code ず Codex を束ねる郚長モヌド |
| **゚ヌゞェント** | `report-builder` | ナヌザヌレビュヌ甚レポヌト準備 |
| **゚ヌゞェント** | `review-code-quality` | コヌド品質: 可読性、DRY、型安党性、゚ラヌハンドリング |
| **゚ヌゞェント** | `review-security` | セキュリティ: XSS、むンゞェクション、OWASP Top 10、秘密情報怜出 |
| **゚ヌゞェント** | `review-a11y-ux` | アクセシビリティ: WCAG 2.2 AA、キヌボヌド操䜜、UXフロヌ |
| **゚ヌゞェント** | `review-figma-fidelity` | デザむン: トヌクン準拠、芖芚的䞀貫性 |
| **゚ヌゞェント** | `review-copy-consistency` | コピヌ: テキスト敎合性、トヌン&マナヌ、i18n |
| **゚ヌゞェント** | `review-e2e-integrity` | E2E: ナヌザヌフロヌ再珟、モック汚染怜出 |
| **゚ヌゞェント** | `e2e-health-reviewer` | E2E: goto制限、レコヌドアサヌション、ハヌドコヌド怜出 |
| **スキル** | `artifact-proof` | ゚ビデンス収集スクリヌンショット、動画、ログ |
| **スキル** | `exit-notifier` | background task の終了ず stdout/stderr を珟圚の tmux / Herdr pane に通知 |
| **スキル** | `webapp-testing` | Playwrightによるブラりザ自動化ず怜蚌 |
| **フック** | PreToolUse | git commit/push前にレビュヌを促すリマむンダヌ |
| **フック** | UserPromptSubmit | AI コンテキストに完了チェックリストを泚入 |

---

### タスクスキル

#### 同梱タスクスキル䞀芧

| スキル | 甹途 |
|------|------|
| `ask` | 実装前に芁求・スコヌプ・制玄・成功条件を明確化する |
| `bucho` | Claude Code ず Codex を tmux 経由で束ねおチヌム開発フロヌを回す |
| `check-yourself` | 掚枬を犁止し、実際の怜蚌を匷制する |
| `commit-and-push` | コミットメッセヌゞ生成、commit、push、最終状態確認たで実行する |
| `do` | worktree 䜜成、蚈画策定、レビュヌ準備を含むフルの開始フロヌを実行する |
| `done` | ゚ビデンス収集ず yunomi レビュヌを含むフルの完了フロヌを実行する |
| `exit-notifier` | background task の終了結果ず stdout/stderr を珟圚の tmux / Herdr pane に返す |
| `open` | ファむル、成果物、URL を macOS の `open` で開く |
| `tiny-do` | 小さなタスク向けの軜量開始フロヌで実装ぞ入る |
| `tiny-done` | 小さなタスク向けの軜量完了フロヌで怜蚌ず確認を行う |
| `validate-report` | `done` から呌ばれる内郚 helper ずしお `REPORT.md` を怜蚌する |

#### `/yunomi:do <タスク説明>`

適切な環境セットアップで新しいタスクを開始したす。

**凊理内容:**
1. git wtを䜿甚しお分離開発甚のgit worktreeを䜜成`feature/`、`fix/`など
2. ゚ビデンス甚の`.artifacts//`ディレクトリをセットアップ
3. 蚈画ずTODOチェックリスト付きの`REPORT.md`を䜜成
4. 進捗远跡甚にTodoWriteにtodoを登録

**䜜成されるディレクトリ構成:**
```
/ # 䟋: .worktree/feature-auth/
└── .artifacts/
└── / # 䟋: authfeature/authから
├── REPORT.md # 蚈画、進捗、゚ビデンスリンク
├── images/ # スクリヌンショット
└── videos/ # 動画録画
```

**タスク再開:** セッション開始時たたはコンテキスト圧瞮埌、スキルは既存のworktreeを確認`git wt`し、`REPORT.md`から再開したす。

#### `/yunomi:done`

タスク完了を蚱可する前に完了基準を怜蚌したす。

**適甚されるチェックリスト:**
- [ ] ビルド成功型/lint゚ラヌなし
- [ ] 開発サヌバヌ起動・動䜜
- [ ] `webapp-testing`スキルで怜蚌
- [ ] `.artifacts//`に゚ビデンス収集
- [ ] `artifact-proof`スキルでレポヌト䜜成
- [ ] yunomiでレビュヌフォアグラりンドモヌド
- [ ] ナヌザヌ承認取埗

**犁止事項:**
- 怜蚌なしに「実装完了」ず蚀う
- yunomiレビュヌ前にコミット/プッシュ
- ゚ビデンスなしのレポヌト

---

### ゚ヌゞェント

#### `report-builder`

レビュヌ資料準備専門゚ヌゞェント。

**圹割:**
- 実装を構造化レポヌトに敎理
- ゚ビデンススクリヌンショット、動画を収集・配眮
- yunomiレビュヌ甚に`REPORT.md`を準備
- yunomiフィヌドバックを解析しおtodoに登録

**呌び出し:**
```
Task tool with subagent_type: "report-builder"
```

**自動読み蟌みスキル:** `artifact-proof`

---

### スキル

#### `artifact-proof`

ビゞュアルリグレッションずPRドキュメント甚の゚ビデンス収集を管理。

**機胜:**
- `.artifacts//`配䞋にスクリヌンショットず動画
- 自動キャプチャ甚Playwright統合
- 動画ファむル甚Git LFSセットアップ
- コミットハッシュ付きPR画像URLブランチ削陀埌も氞続

**yunomi統合:**
```bash
# yunomiでレポヌトを開くフォアグラりンド必須
npx yunomi .artifacts//REPORT.md

# 動画プレビュヌ付き
open .artifacts//videos/demo.webm
npx yunomi .artifacts//REPORT.md
```

#### `webapp-testing`

Playwrightを䜿甚したブラりザ自動化ツヌルキット。

**機胜:**
- TypeScript Playwright Test (`@playwright/test`)
- webServerサポヌト付きPlaywright蚭定
- スクリヌンショットず動画キャプチャ
- コン゜ヌルログずネットワヌクリク゚スト監芖
- 高床なデバッグ甚CDP統合

**クむック怜蚌:**
```bash
node -e "const { chromium } = require('playwright');
(async () => {
const browser = await chromium.launch();
const page = await browser.newPage();
await page.goto('http://localhost:3000', { waitUntil: 'networkidle' });
await page.screenshot({ path: '/tmp/webapp.png', fullPage: true });
await browser.close();
})();"
```

---

### フック

#### PreToolUseBashマッチャヌ

`git commit`たたは`git push`怜出時にトリガヌ。

**メッセヌゞ:** コミット前に`/yunomi:done`を実行しおyunomiでレビュヌするよう促す。

#### UserPromptSubmit

すべおのAI応答コンテキストに完了チェックリストを泚入。

**目的:** 適切な怜蚌なしの「実装完了」䞻匵を防止。チェックリストは垞にAIに芋え、完了基準の䞀貫した適甚を保蚌。

---

### ワヌクフロヌ

```
/yunomi:do <タスク説明>
↓
Worktree䜜成 + 蚈画 + TodoWrite
↓
実装サブ゚ヌゞェント経由
↓
ビルド & 怜蚌webapp-testing
↓
/yunomi:done
↓
゚ビデンス収集artifact-proof
↓
npx yunomiでレポヌトを開くフォアグラりンド
↓
ナヌザヌコメント → Submit & Exit
↓
フィヌドバックをTodoに登録
↓
修正 → 承認たで再レビュヌ
↓
コミット & PR承認埌のみ
```

### 完了基準

| ステヌゞ | 内容 | ステヌタス |
|----------|------|----------|
| 1/3 | 実装完了 | ただ報告しない |
| 2/3 | ビルド、起動、怜蚌完了 | ただ報告しない |
| 3/3 | yunomiでレビュヌ → ナヌザヌ承認 | 完了 |

### 蚭蚈思想

プラグむンは**Human-in-the-loop**開発を匷制したす:

1. **ショヌトカットなし:** モック、バむパス、怜蚌スキップは犁止
2. **゚ビデンス必須:** すべおの完了䞻匵にはスクリヌンショット/動画が必芁
3. **ナヌザヌ承認:** ナヌザヌのみがタスクを完了ずしおマヌクできる
4. **コンテキスト保持:** 重い操䜜はサブ゚ヌゞェントで実行しおコンテキスト枯枇を防止

### `.artifacts`ディレクトリポリシヌ

`.artifacts/`ディレクトリは開発䞭に生成されたスクリヌンショット、動画、レポヌトを保存したす。**デフォルトでは、このディレクトリは`.gitignore`に远加すべきです**。倧きなメディアファむルによるリポゞトリ肥倧化を防ぎたす。

```bash
# .gitignoreに远加掚奚
echo ".artifacts" >> .gitignore
```

**デフォルトで陀倖する理由:**
- スクリヌンショットず動画は倧きくなる可胜性がある特に画面録画
- ゚ビデンスは䞻にレビュヌプロセス甚で、氞続的なドキュメントではない
- リポゞトリサむズを管理可胜に保぀

**特定の゚ビデンスをコミットしたい堎合:**

`git add --force`で明瀺的にファむルを远加:

```bash
# 特定の゚ビデンスファむルを匷制远加
git add --force .artifacts/feature/images/final-screenshot.png
git add --force .artifacts/feature/REPORT.md

# たたは機胜党䜓の゚ビデンスを匷制远加
git add --force .artifacts/feature/
```

**動画ファむル**の堎合、リポゞトリ肥倧化を避けるためGit LFSを䜿甚:

```bash
git lfs track "*.mp4" "*.webm" "*.mov"
git add .gitattributes
git add --force .artifacts/feature/videos/demo.mp4
```

このアプロヌチで完党なコントロヌルが可胜: デフォルトで陀倖、必芁なものだけをコミット。

## 開発

yunomiは[MoonBit](https://www.moonbitlang.com/)で曞かれおおり、JavaScriptにコンパむルされたす。

```bash
# ビルド
cd v2 && moon build --target js --release

# テスト実行
cd v2 && moon test --target js

# npmパッケヌゞングMoonBitビルド + dist/にコピヌ
npm run prepack
```

- ゜ヌス: `v2/src/`MoonBit
- ビルド出力: `dist/server/server.js`、`dist/ui/ui.js`
- プラグむン: `plugin/`ディレクトリ

## ラむセンス

MIT