Install
$ agentstack add skill-yasunori0418-skills-basic-design ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README — it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming — see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps — measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
basic-design: 基本設計書の作成・改訂
feature-spec と対をなす 基本設計書 1 本 を作る単機能スキル。成果物は docs/dev//basic-design.md。仕様が「何を満たすか(REQ-#)」を定義するのに対し、 基本設計は 「どう実現するか」 を定義し、各機能を REQ-# へ紐づけて 要求に紐づかない機能 = スコープ外混入 を機械検出可能にする。
このスキルがやらないこと
- 実装しない。コードの作成・修正は範囲外。
- 仕様を書かない・改訂しない。要求の追加・変更が必要になったら
/feature-spec
の改訂モードへ回す(設計側で要求を勝手に足さない。それがスコープドリフトの発生源)。
- 詳細設計に踏み込みすぎない。クラス単位の内部実装・アルゴリズムの逐次手順は実装工程の
領分。基本設計は 境界(モジュール・インターフェース・データの流れ) までを確定させる。
- テスト成果物を作らない・直さない。
docs/test//は testing スキル群の担当。
このスキルが従う原則
1. 単体動作(graceful degradation)
- 成果物の既定パスは
docs/dev//basic-design.md。 - プロジェクト側(
CLAUDE.md/AGENTS.md等)に成果物の配置規約があればそちらを優先する。 - 主入力:
docs/dev//spec.md(REQ-#を参照して機能一覧を導出する)。 - 任意入力(あれば整合を取るが、無くても成立する):
docs/test//test-analysis.md(テスト条件TC-#。観測点・境界の洗い出しに使う)docs/test//test-case.md(テストケースCASE-#。設計が想定する入出力と突合する)docs/dev/definition-of-done.md(完成の定義)- 任意のレビュードキュメント・ユーザーの直接指示
spec.mdが無くても作れる。ユーザーの直接指示・任意のレビュードキュメントを入力に
設計書を書いてよい。ただしその場合、機能一覧の「対応要求」列が - になり、 セルフ機械検査が「要求に紐づかない機能」として検出する。 先に /feature-spec を実行して仕様を確定させることを推奨する 旨を利用者へ伝え、 それでも進めるなら検査 NG が出ることを了解のうえで進める。
2. 調査優先 + 決定のみ質問
- 事実はリポジトリ調査で埋める。既存のモジュール構成・レイヤ分け・命名規約・
依存の向き・公開契約は、利用者に訊く前に自分で調べる。既存構成に馴染む設計を出す。
- 利用者にしか決められない判断だけ を
AskUserQuestion(推奨案を先頭)で確認する。
本スキルでは 設計方式の選択・既存構成を変えるか否か・分割の粒度・改訂提案の採否 が これに当たる。トレードオフのある選択は選択肢と代償を添えて訊く。
- 流れは 調査 → ドラフト提示 → 承認 → 規約パスへ書き込み。承認前に確定ファイルを書かない。
3. 記述品質
- 曖昧語(「適宜」「など」「柔軟に」「必要に応じて」)を設計文から排する。
- 略号・コードネームを定義なしで使わない。初出で正式名称・意味を併記する。
- インターフェースは 呼び出し側が実装なしで使える粒度 で書く(名前・入力・出力・
エラー時の振る舞い)。「よしなに返す」で終わらせない。
4. Progressive disclosure
- 本文は簡潔に保ち、雛形は
references/に置く。 - テンプレ: [
references/template.md](references/template.md)(basic-design.mdの雛形)。
機能一覧の REQ-# 契約(下流が依存する形式)
- 機能一覧は
| 機能 | 対応要求 | 概要 |のテーブル で書く。 - 対応要求列に
REQ-#を必ず書く。1 機能が複数要求にまたがるならREQ-01/03と併記する。 - 実在しない
REQ-#を書かない(spec.mdに無い ID は機械検査で検出される)。 - 要求に紐づかない機能を足さない。設計中に「これも要るのでは」と気づいたら、
勝手に足さず /feature-spec の改訂モードで要求として立てる ことを提案する。
test-case.mdがあるときはCASE-#との対応が取れるかを確認する(機械検査も突合する)。
手順
引数は `。省略されたら docs/dev/` 配下の既存ディレクトリを一覧して選択を求める。
docs/dev//basic-design.md の存在で 作成モード(無い)と 改訂モード(ある)に 分岐する。
作成モード
手順 1: 入力の確認
docs/dev//spec.mdを読む。無ければ原則 1 に従い、/feature-specの先行実行を
推奨したうえで、進めるかを利用者に確認する。
- 任意入力(
test-analysis.md/test-case.md/definition-of-done.md)の有無を確認し、
あるものだけを読む。何を読んで何が無かったかを利用者へ 1 行で報告する。
手順 2: 既存構成の調査
リポジトリを調査して、設計の前提になる事実を集める:
- 既存のモジュール構成・レイヤ分け・ディレクトリ規約
- 依存の向き(どの層がどの層を呼んでよいか)と、既存の公開契約
- 新機能が差し込まれる接続点(拡張ポイント・既存のインターフェース)
- 既存の設定・データ書式(新しい書式を足すべきか、既存に乗るべきか)
手順 3: 機能一覧の導出
spec.md の REQ-# を 1 件ずつ辿り、実現に必要な機能へ分解してテーブルにする。
- 1 要求が複数機能に割れることも、複数要求が 1 機能に集約されることもある。
どちらでもよいが、対応要求列が空の行を作らない。
- 全
REQ-#が少なくとも 1 つの機能から参照されているかを確認する(要求の取りこぼし検出)。
手順 4: 設計の作成
[references/template.md](references/template.md) の構成でドラフトを作り、承認後に docs/dev//basic-design.md へ書き込む。必須セクションは 機能一覧 / モジュール構成 / インターフェース / データフロー の 4 つ。
- モジュール構成: 新設・変更するモジュールと責務、依存の向き。既存構成との関係を明示する。
- インターフェース: 公開する関数・API・CLI 引数・ファイル書式・イベントの契約
(名前 / 入力 / 出力 / エラー時の振る舞い)。
- データフロー: 入力がどこから来てどう変換され、どこへ出るか。状態を持つなら
どこが持つか。異常系の流れも書く。
手順 5: セルフ機械検査
後述の「セルフ機械検査」を実行し、NG があればその場で直してから完了宣言する。
改訂モード
既存の docs/dev//basic-design.md を検出したら改訂モードに入る。
手順 1: 未反映の改善提案を収集
以下の入力源を横断して、まだ設計へ反映されていない 指摘・提案を集める。 入力源は疎結合で、どれか 1 つでもあれば成立する:
docs/test//配下のテスト成果物の「改善提案」セクション
(test-design.md / test-analysis.md 等。設計の観測可能性・テスト容易性の指摘が集まる)
docs/test//test-review-*.mdの「未解消の指摘」spec.mdの改訂で増えたREQ-#(機能一覧に未反映のものが無いか突合する)- ユーザーの直接指示・任意のレビュードキュメント
手順 2: 取捨選択
収集した提案を一覧で提示し、AskUserQuestion(推奨案を先頭)で採否を確認する。 各提案には「反映すると設計のどこが変わるか」(機能追加 / インターフェース変更 / モジュール移動)を添える。インターフェースの破壊的変更 はその旨を明示する。
手順 3: 反映
採用された提案だけを basic-design.md へ反映する。
- 機能を足すときは 必ず対応する
REQ-#を確認する。対応要求が無い機能は反映せず、
/feature-spec の改訂モードで要求を立てることを提案する。
spec.mdから要求が消えている場合、それを参照する機能行は孤児になる。
機能ごと落とすか、要求を復活させるかを利用者に確認する。
- テスト成果物側の改善提案の 削除はしない(testing スキルの責務)。
手順 4: セルフ機械検査
作成モードと同じ(下記)。
セルフ機械検査
終了前に、test-review の決定論スクリプトを design-doc モードで自分に対して実行する。
design-doc docs/dev/ [docs/test/]
- 第 2 引数は開発ドキュメントのディレクトリ(
docs/dev/)。 - 第 3 引数のテストドキュメントディレクトリは省略可(省略時は
docs/dev/から
docs/test/ を自動導出する)。
- 検査内容: 必須セクションの存在 / 機能一覧の各項の
REQ-#参照必須と実在 /
test-case.md があれば CASE-# との対応突合。
スクリプトの探索
次の順で探し、最初に見つかったものを使う:
- 作業リポジトリ内の
skills/testing/test-review/scripts/review-check.sh - install 済み testing-skills プラグインの同一パス
(~/.claude/plugins/ 配下等。プラグインの配置は環境で変わるため実在確認をしてから使う)
どちらにも無ければ検査をスキップし、その旨を利用者へ明示する(例: 「review-check.sh が見つからないためセルフ機械検査をスキップした。testing-skills を install するか、/test-review design-doc で別途ゲートを通してほしい」)。 スクリプトの不在を理由に設計作成を失敗させない(原則 1: graceful degradation)。
NG が出たとき
NG は形式契約の違反であり事実なので、利用者判定を待たずにその場で直す。 ただし「対応要求が - の機能がある」NG は、要求側を足さないと直せない。この場合は 自分で要求を捏造せず、/feature-spec の実行を提案 して NG が残る旨を明示する。 SKIP(test-case.md が無い等)は問題ではない。
終了条件
以下を全て満たしたら 「 の基本設計は完了」と明言 して閉じる。満たしていない項目が あれば、何が残っているかを列挙して先へ進めない。
- 入力の有無を確認・報告済み(
spec.mdの有無、任意入力で読んだもの)。 docs/dev//basic-design.mdが規約パスへ書き込み済みで、必須 4 セクションを持つ。- 機能一覧の全行に対応要求(
REQ-#)が入っている、または-が残る理由を利用者へ明示済み。 - セルフ機械検査が NG ゼロ、または残る NG の理由・スクリプト不在によるスキップを
利用者へ明示済み。
完了後の次の一手として、以下を 提案するに留める(本スキルは実行しない):
- 正式ゲート:
/test-review design-doc - テスト設計:
/test-design - 実装フェーズ: 基本設計と
test-case.mdから実装計画を組み立てる
用語
- 基本設計(basic design): 要求を実現する構造(モジュール・インターフェース・データの流れ)を
確定させる工程。内部実装の詳細には踏み込まない。
- インターフェース(interface): モジュール間の公開契約。名前・入力・出力・エラー時の振る舞い。
- スコープ外混入: 要求に紐づかない機能が設計に紛れ込む状態。機能一覧の
REQ-#参照必須で
機械検出する。
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: yasunori0418
- Source: yasunori0418/skills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.