writing-spec — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited writing-spec (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Brainstorming ノートを入力として、軽量 Markdown 形式の Spec ファイルを生成する skill です。本プロジェクトのワークフロー (docs/workflow.md) における Spec ステージを担います。
用語: 「Project Phase」「Workflow Stage (ステージ)」「Release Phase」「Spec」の定義は docs/glossary.md を参照してください。
ワークフロー上の位置:
Brainstorming → [DAG 構築 (複数 Spec 時)] → [writing-spec (本 skill)] → Spec Review → [DAG 構築 (確定)] → Isolate → ...Brainstorming ノートで解像度の上がった要件を、後続の Plan / Implement ステージが参照可能な構造化された Spec ファイルに落とし込むことが役割です。単なる転記ではなく、実装可能な粒度への具体化 を目指します。
以下のフレーズで自動的に起動してください。
また、以下の状況で 自動起動を提案 してください。
specs/<spec-name>.brainstorm.md に status: brainstorming-complete が付与され、対応する specs/<spec-name>.md が未作成skill 起動直後、以下を必ず確認してください。
specs/<spec-name>.brainstorm.md)status が brainstorming-complete であることspecs/<spec-name>.md がまだ存在しないこと (上書き防止)specs/dag.md の存在確認 (単一 / 複数にかかわらず必須、2026-04-22 改修)前提条件を満たさない場合、以下のエラー対応を行ってください。
生成する specs/<spec-name>.md の章構成 (7 章):
---
name: <spec-name>
status: spec-complete
created: YYYY-MM-DD
brainstorming_archive: specs/archive/<spec-name>.brainstorm.md
depends_on: [...] # Brainstorming ノートから引き継ぎ (ない場合は省略)
parallel_group: N # Brainstorming ノートから引き継ぎ (ない場合は省略)
---
# Spec: <spec-name>
## 1. 目的
<なぜこの機能 / 変更が必要なのか。ビジネス価値や解決する課題を簡潔に記述>
## 2. スコープ
### 2.1 含むもの
- <今回の Spec で実装・変更する対象 1>
- <対象 2>
### 2.2 含まないもの
- <明示的に除外する項目 1>
- <項目 2>
## 3. 機能要件
### 3.1 <機能名 1>
<機能の詳細な挙動>
**入力**:
- <入力項目と型 / 制約>
**出力**:
- <出力項目と型 / 制約>
**エラーハンドリング**:
- <エラーケースと挙動>
### 3.2 <機能名 2>
<同上>
### 3.X 技術表現の検証ルール (2026-04-24 Phase 6 バッチ 2 (c) learn Try 6.2 改修)
Spec 本文に以下を記載する際は、**必ず 1 例以上を実機で動作検証してから書く** こと。机上設計の regex / shell コマンドは spec-review や Plan 段階で「自分の正規例を受け付けない」等の致命的欠陥として指摘されやすい (Phase 6 バッチ 2 (c) で実際に発生した事例あり)。
- **正規表現**: `bash` の `[[ =~ ]]` / `grep -E` / `awk` 等で 1 正例 + 1 負例を実行して期待動作を確認
- **shell コマンド / パイプライン**: echo / ダミーファイル等で実機実行
- **bash 組み込み機能** (`printf -v` / `BASH_REMATCH` / `declare -A` 等): 最低 1 例の動作確認
- **ANSI エスケープ / 特殊文字**: `cat -v` や `printf %q` で表示確認
検証方法を Spec 本文に含める必要はないが、**検証済み** と暗黙に保証する責任を writing-spec 側が負います。検証未実施のまま Spec に書くと、spec-review の feasibility / consistency 観点で Critical 指摘される可能性が高いです。
## 4. 非機能要件
| 項目 | 要件 |
|---|---|
| パフォーマンス | <応答時間・スループット等> |
| セキュリティ | <認証・認可・データ保護等> |
| 可用性 | <稼働率・障害時の挙動等> |
| 拡張性 | <将来の拡張余地> |
| 保守性 | <ログ / モニタリング / ドキュメント要件> |
## 5. 受け入れ基準 (Acceptance Criteria)
- [ ] <具体的で検証可能な基準 1>
- [ ] <基準 2>
- [ ] <基準 3>
## 6. 非対象 (スコープ外)
- <明示的に含めないもの 1 (理由付き)>
- <2>
## 7. リスクと緩和策
### 7.1 <リスク 1>
- **内容**: <リスクの具体的内容>
- **緩和策**: <対応方針>
### 7.2 <リスク 2>
<同上>Brainstorming ノートの各セクションを Spec ファイルの対応セクションに統合します。単なる転記ではなく、実装判断に必要な粒度まで具体化 してください。
| Brainstorming ノート | Spec ファイル | 統合時の対応 |
|---|---|---|
| 目的 | 1. 目的 | そのまま、または整理 |
| 利用者 | 1. 目的 | 目的セクションに含めるか、3. 機能要件の文脈で記述 |
| 成功条件 (受け入れ基準) | 5. 受け入れ基準 | そのまま、より検証可能な粒度に具体化 |
| 制約 | 4. 非機能要件 / 3. 機能要件 | 技術制約は非機能、仕様制約は機能要件へ |
| スコープ (含むもの / 含まないもの) | 2. スコープ / 6. 非対象 | そのまま |
| 代替案の検討 | (統合時は省略、必要なら 7. リスクで触れる) | Spec では採用案のみ記述 |
| リスク | 7. リスクと緩和策 | 緩和策を追加して具体化 |
| 未解決事項 | 3. 機能要件 / 4. 非機能要件 | Spec 段階で解決 (未解決なら Spec Review で相談) |
| Spec 間で共有する資産 | 3. 機能要件 / 4. 非機能要件 | 共有資産の参照箇所を明記 |
| 切り出した理由 (分割時) | (統合時は省略) | depends_on の frontmatter で依存関係を表現 |
Brainstorming ノートは要件レベル、Spec ファイルは実装判断可能レベルで記述します。具体化の例:
< 10) になった瞬間 (在庫更新イベント直後、100ms 以内) に通知をトリガーする。既に 10 未満状態が継続している場合は重複通知しない (last_notified_at フィールドで制御、冷却期間 1 時間)。」未解決事項はこの段階で 具体化してください。具体化できない場合は Spec Review で相談する前提で「TBD (要議論)」とマークし、status: spec-writing のまま残します。
Brainstorming ノートの frontmatter から以下を引き継ぎます。
name: そのままdepends_on: そのまま引き継ぎ (未設定なら省略)parallel_group: そのまま引き継ぎ (未設定なら省略)新規に設定する項目:
status: spec-complete (Spec 書き終わり、Spec Review 待ち)created: 当日の日付 (YYYY-MM-DD 形式)brainstorming_archive: specs/archive/<spec-name>.brainstorm.md (移動後のパス)Spec ファイル生成と承認完了後、以下の手順で Brainstorming ノートを archive に移動します。
specs/archive/ ディレクトリが存在しなければ作成specs/<spec-name>.brainstorm.md の frontmatter status を archived に更新specs/<spec-name>.brainstorm.md を specs/archive/<spec-name>.brainstorm.md に移動 (git mv 相当)以下の場合は archive 移動を 行わない でください。
status: spec-writing)spec-dag-builder skill が再実行された際、specs/archive/ 配下は対象外として扱える (重複解析防止)specs/ 配下の見通しを維持 (進行中の Spec のみ表示)specs/dag.md は単一 / 複数 Spec にかかわらず常に存在する前提 (spec-dag-builder が 1 ノード DAG も生成、2026-04-22 改修)。本 skill は DAG 順に処理 します。
specs/dag.md を読み込み、parallel_group の小さい順にソートparallel_group 内は、ユーザーと相談して処理順を決定 (通常は名前順または重要度順)status: brainstorming-complete の Brainstorming ノートのみを対象とする (archived / spec-complete 以上はスキップ)本 skill は対話型のため、並列起動はせず 順次処理 します。1 つの Spec を書き終えてユーザー承認を得てから次の Spec に進みます。並列化は Phase 5 の orchestrator skill が担当する責務です。
複数 Spec 処理の途中で中断した場合、それまでに書き出した Spec は status: spec-complete で保存済み、未処理の Brainstorming ノートは brainstorming-complete のまま残ります。再開時は未処理分のみを対象に本 skill を再起動してください。
Spec ファイル生成は対話的に進めます。
specs/<spec-name>.md に保存 + Brainstorming ノートを archive に移動承認なしに spec.md を保存してはいけません。Brainstorming ノートの archive 移動も同様です。
以下の状況では、無理に Spec を完成させずユーザーに相談してください。
Spec ファイル生成 + archive 移動 + ユーザー承認がすべて完了したら、`spec-review` skill を自動起動 してください。手動提案ではなく、本 skill の責務の一部として自動呼び出しを行います。
specs/<spec-name>.md のパスをユーザーに提示specs/<spec-name>.review.md を生成し、verdict (pass / needs-fix / reject) を返す1 Spec ごとに以下を実行します (バッチ化しない)。
pass → 次 Spec の writing-spec へ進むneeds-fix / reject → 当該 Spec のレビュー指摘対応モード (§13) に入り、他 Spec の生成は一時停止以下を行ってはいけません。
spec-complete にする (必ず具体化するか TBD マークで Spec Review に持ち込む)specs/dag.md を書き換える (本 skill は読み取り専用、更新は spec-dag-builder の責務)spec-review skill が verdict needs-fix または reject を出した場合、同 skill は本 skill をレビュー指摘対応モードで自動再起動 します。このモードは通常の新規 Spec 生成とは異なり、既存 Spec ファイルへの修正適用が責務です。
以下を引き渡されて起動した場合、本モードとして処理してください。
specs/<spec-name>.md、既に status: spec-complete で存在)specs/<spec-name>.review.md)specs/<spec-name>.md の frontmatter status を spec-complete から spec-writing に変更 (レビュー中/対応中の状態であることを明示)status を spec-complete に戻す同一 Spec で 3 回連続して pass にならない場合、本 skill ではなく spec-review 側が自動再起動を停止してユーザーに相談します (spec-review §8.3)。本 skill はレビュー指摘対応モードで呼ばれるたびに、直前の review.md 内容を参照して対応すれば十分です。
レビュー指摘対応モードでは brainstorm.md の archive 移動は再実行しません (既に §7 で archive 移動済)。本モードは spec.md のみを対象とします。
status: spec-writing に戻さずに修正を開始する (状態管理の一貫性が崩れる)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.