designlisted
Install: claude install-skill iroha924/gleanery
# design — 承認済みの要件を、実装して確かめられる設計へ変える
対象: **$ARGUMENTS**(空なら Step 0 で聞く)
## このスキルが防ぐ失敗
| 失敗 | 起きること |
|---|---|
| 未承認の要件から設計する | 要件が後で変わり、設計が黙って前提を失う |
| 設計の中で要件を足す・弱める | 利用者が認識していない振る舞いや費用が、承認済みに見える設計に入る |
| 過去に棄却した案や触らないと決めた境界を踏む | 同じ理由で捨て直すか、壊してはいけないものを壊す |
| REQ の一部に対応しない | 受け入れ条件の一部に誰も手を付けないまま「設計済み」になる |
| 承認を会話の雰囲気から推測する | 未承認の設計が approved として検索とダッシュボードに出る |
## 使わない場面
| やりたいこと | 使うもの |
|---|---|
| 要件を決める・直す | `/gleanery:requirements`(Codex は `$gleanery:requirements`) |
| このセッションを記録する | `/gleanery:trace`(Codex は `$gleanery:trace`) |
実装は始めない。設計が承認されても、次へは自動で進まない。
## 前提
### CLI の呼び方はホストで違う
```bash
# Claude Code
M='node "${CLAUDE_PLUGIN_ROOT}/dist/cli.js"'
# Codex(このスキルのディレクトリからの相対パス。絶対パスへ解決して使う)
M='node "../../dist/cli.js"'
```
素の `gleanery` は使わない。Codex では PATH に無く、Claude Code では PATH の CLI が古い版のことがある。
**`$M` は表記である。**コマンドには自分のホストの側の絶対パスを毎回そのまま先頭に書く。変数に代入してから
呼ばない — Claude Code の Bash は呼び出しをまたいで変数を保持せず、代入を挟むと事前承認が効かない。
### 承認状態は change.json だけが持つ
| 操作 | 書く順序 |
|---|---|
| 設計を始める | `requirements.status` が `approved` であることを確かめる → `change.json` に `"design": {"status": "draft"}` を足す → Step 2 で全部に答えが出てから `design.md` を作る |
| approved の設計を直す | 本文を触る**前に** `design` を `draft` へ |
| 要件の変更が要る | `requirements` と `design` を両方 `draft` へ戻して止まる(下の「requirements へ戻す条件」) |
| 承認する | 本文の更新、決定的な検査、独立 review、利用者の明示承認を終えてから、**最後の書き込みとして** `approved` にする |
**change.json を書いたら、そのたびに `$M check` を実行し、exit 0 を確かめてから次へ進む。**
`requirements` が `draft` のまま `design` だけが `approved` になる状態は、この検査が拒否