requirementslisted
Install: claude install-skill iroha924/gleanery
# requirements — 要求を、検証できる要件へ変える
対象: **$ARGUMENTS**(空なら Step 0 で聞く)
## このスキルが防ぐ失敗
| 失敗 | 起きること |
|---|---|
| 生の要求をそのまま仕様にする | 受け入れ条件が無く、完了を誰も判定できない |
| 質問票をまとめて出す | 回答どうしの依存が消え、利用者はコードから分かることまで説明させられる |
| 過去に棄却した案を再提案する | 同じ理由で捨て直す |
| 承認を会話の雰囲気から推測する | 未承認の AI 生成物が approved として検索とダッシュボードに出る |
| approved の本文をそのまま直す | 直している途中の本文が承認済みとして同期される |
## 使わない場面
| やりたいこと | 使うもの |
|---|---|
| 承認済みの要件から設計書を作る | `/gleanery:design`(Codex は `$gleanery:design`) |
| 置き場所を作る | `/gleanery:init`(Codex は `$gleanery:init`) |
| このセッションを記録する | `/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 だけが持つ
`.gleanery/changes/<slug>/change.json` の `requirements.status` が `draft` か `approved` かで、
検索とダッシュボードへ出すかが決まる。本文の書きぶりから承認を推測しない。
| 操作 | 書く順序 |
|---|---|
| change を新しく作る | `change.json` を `{"schema": "gleanery/change/1", "title": "<題>", "requirements": {"status": "draft"}}` で書く → Step 2 で全部に答えが出てから `requirements.md` を作る |
| approved の要件を直す | 本文を触る**前に** `requirements` を `draft` へ。`design` があれば同時に `draft` へ |
| 承認する | 本文の更新、独立 review、利用者の明示承認を終えてから、**最後の書き込みとして** `approved` にする |
*