本文へ移動
cccskills
無料GitHub で公開日本語紹介

importing-a-codebase

仕様書のない既存コードベースを調べ、コードや資料から目的・構成・依存関係を読み解いて、初期仕様グラフを草案として組み立てます。

原文原文の説明を見る

Use when asked to create the initial spec graph for an existing codebase that has source code but no specs. Normally reached via setting-up-a-project.

実行スコア 未検証

インストール方法を見る

こんなときに便利

  • 仕様のない既存コードを文書化したいとき
  • モジュール構成と依存関係を整理したいとき
  • 既存の設計資料を仕様グラフに取り込みたいとき

日本語での紹介

できること

仕様書がなくソースコードだけがあるプロジェクトを調べ、あるべき仕様グラフを草案として作ります。まず AGENTS.md などのエージェント向け指示、READMEや設計資料、依存関係の定義、主要なコードを確認し、プロジェクトの目的、技術構成、モジュール境界、依存関係、既存の制約を整理します。既存の設計資料や決定記録があれば、内容を見極めて仕様グラフのノードとして取り込み、重複した文書を作らないようにします。ファイルから分からず仕様に影響する点だけをユーザーに確認し、目的・アーキテクチャ・モジュールの順に草案を作成して、リンクや親子関係を検証します。

こんなときに便利

初めて仕様を整備する既存プロジェクトや、コードの構成を把握して設計資料にまとめたい場合に向いています。コードから推測した内容とユーザーが確認した内容を区別して残し、レビューできる状態にする用途にも使えます。すでに仕様グラフがある場合は対象外です。

使い方の例

  • 「このコードベースの目的と構成を調べ、仕様の草案を作ってください」
  • 「既存の設計資料を活かして仕様グラフを整えてください」
  • 「コードから分からない設計上の前提だけ確認してください」

注意点

仕様グラフが存在しないことを spec_grep / spec_graph で確認します。作成後は spec_validate で検証します。草案はユーザーのレビュー対象で、承認前にマージしません。

この紹介文は、公開されている SKILL.md をもとに AI(OpenAI Codex)が作成しました。正確な仕様は下の原文を確認してください。

含まれるファイル(1)

  • SKILL.md6.9 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Importing a codebase

The workspace holds real code but no specs. Reverse-engineer the spec graph the project should have had. When the repo already carries real spec-like documents, build the graph around them, not parallel to them. Do as much as possible yourself, from the files; ask the user only where the code genuinely can't tell you and the answer changes a spec.

Hold the writing-specs bar. Read that concept skill before drafting — everything in this flow is inferred rather than confirmed, so its honesty rules (draft until the user reviews, unconfirmed marked inline) bind hardest here.

1. Read first, ask last

Survey before you ask a single question. Read, in roughly this order:

  • Agent files (mine these first — they state intent + conventions directly): AGENTS.md, CLAUDE.md, .cursor/rules/*, .cursorrules, .github/copilot-instructions.md, GEMINI.md, .windsurfrules.
  • Docs: README, docs/, CONTRIBUTING, ADRs.
  • Manifests & layout: package.json / pyproject.toml / go.mod / Cargo.toml, workspace globs, tree-style structure, entry points, build/test scripts.
  • Code: entry points and the top of each candidate module — enough to see responsibilities and the dependency edges between them.

While you read, collect adoption candidates: durable, declarative documents that state the world as it is — architecture/design docs, ADRs / decision records, domain glossaries, protocol/contract docs. Never candidates (input only): READMEs, CONTRIBUTING, changelogs, roadmaps, TODOs, implementation plans (finished or planned), generated API docs.

Confirm with the spec tools (spec_grep / spec_graph) that there's no graph yet. If specs already exist, stop and hand back to the setting-up-a-project dispatcher — this flow is for un-specced repos.

2. Build a working model

From what you read, form a working model of what the project is and how it's shaped — held in the conversation, not written to a file (this flow declares no working files):

what:       one-sentence purpose (the job the codebase does)
domain:     the space it's in
stack:      languages / frameworks / runtime
modules:    the real boundaries + the dependency edges between them (who imports whom)
invariants: rules the code already enforces (layering, "X never imports Y", public surfaces)
decisions:  non-obvious choices visible in the code (and where the "why" is missing)

Agent files and READMEs usually hand you what, invariants, and decisions for free — prefer them over re-deriving from code.

3. Interview only the gaps

Ask only what the files can't answer and that would change a spec — typically: the primary job / who it's for, explicit non-goals, and the why behind a non-obvious decision. Interview them in rounds per the asking-user-questions concept skill; infer a concrete answer and let the user correct it rather than asking open-ended.

Two kinds of question belong in the round whenever the files leave them open — the code shows what, rarely why:

  • The why behind each non-obvious decision in your working model that the files don't explain — "I see X is done this way — why?" — with your inferred reasons as options. The answer goes into the spec that owns the decision.
  • Known limitations — one multiSelect of the gaps you saw (unhandled cases, TODOs, missing tests, slow paths) for the user to confirm; confirmed ones are recorded in the owning spec.

If adoption candidates exist, add one question to the same round: a multiSelect listing them (grouped when many — an adr/ set is one option) — which should become spec-graph nodes? A contradiction between a candidate and the code found by now goes into the round too (confirm the correction). Skipped or declined → adopt none; candidates stay input, noted at hand-off.

If the files answered everything material — the whys and limitations included — skip the interview and say so; don't manufacture questions (adoption candidates alone still make a round — the offer is never dropped as "no gaps"). A skipped/declined question is not a blocker: record the assumption inline in the spec, marked unconfirmed.

4. Draft the graph, top-down

Save with the spec tools as you go (spec_create per node, edit for prose). Order:

  1. goal-and-requirements.md (type: goal-and-requirements) — what the product is and why, in the goal-doc shape writing-specs sets; capabilities are what the code already does. This is the graph root; the confirmed intent lives here.
  2. architecture.md (type: architecture-design, parent: <goal id>) — topology, the module boundaries, the real dependency edges (a small DAG only if it carries real information), and the invariants the code enforces.
  3. One short SPEC.md per genuine module (type: module-design, or submodule-design for a directory-level module inside a package; parent: its enclosing module or architecture). Each states its responsibility and its boundary (allowed deps / forbidden reaches).

Adopted docs become nodes in place. First, for each accepted candidate: read it carefully, then add spec frontmatter where the file lies (id, type, title, status: draft, parent; depends-on/references only where real) — content untouched. A slot an adopted doc fills is not drafted again: an adopted architecture doc is the architecture-design node, an adopted module design doc is that module's node, an ADR earns a node only while its decision is still in force. Build the rest of the graph around them, linked by id. One exception to "content untouched": where an adopted doc is unclear or has drifted from the code, correct that content as part of adoption and call the correction out (in the interview round when caught in time, at hand-off otherwise).

Wire parent to mirror the code hierarchy and depends-on only on edges the code actually shows. Keep each file you draft to the writing-specs bar — its granularity and say-it-once rules decide what counts as a module and where shared edges live. If a boundary is genuinely unclear, ask, or leave that spec draft with a one-line note — don't guess elaborately.

5. Validate & hand off

  • Run spec_validate; fix dangling links, duplicate ids, parent cycles.
  • Tell the user the specs are drafted on this workspace's branch — review them in Changes; nothing merges until they approve — and summarize what you inferred vs. what they confirmed, which docs were adopted vs. left as input, and any drift corrections made.
  • Later features, behavior changes, and bug fixes go through brainstorming; work that changes no behavior proceeds directly. This workflow ends here.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

コメント

ログインなしで書き込めます。使ってみた感想、質問、動かなかった環境などを気軽にどうぞ。

まだコメントはありません。最初のコメントを書いてみませんか。

送信するとすぐに公開されます。メールアドレスや電話番号などの個人情報は書かないでください。URL は 2 つまでです。

0 / 1000 文字

このフォームは reCAPTCHA で保護されており、Google のプライバシーポリシーと利用規約が適用されます。

同じリポジトリのスキル

asking-user-questions

無料概要あり

質問を段階ごとに整理し、ユーザーが判断すべき点を具体的な選択肢で尋ねるための共通ルールを示します。

  • 機能の範囲や挙動を確認したいとき
  • 回答に応じて質問を段階的に進めたいとき
  • 推測した内容を選択肢付きで確認したいとき
JetBrains/thinkrail1,7652026年10月26日 更新

brainstorming

無料概要あり

機能追加や挙動変更、バグ修正の前に、目的や要件を整理して設計案を合意し、実装後に仕様書へ反映するスキルです。

  • 実装前に要件を整理したいとき
  • 機能の設計を相談したいとき
  • バグの原因と修正方針をまとめたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

choosing-a-workflow

無料概要あり

新規プロジェクトの準備、PRの作成・確認、機能追加や不具合修正など、作業内容に応じて次に従うワークフローを選びます。

  • 新規プロジェクトの進め方を決めたいとき
  • 機能追加や不具合修正の経路を選びたいとき
  • PRの確認やレビュー対応を進めたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

managing-mcp-servers

無料概要あり

ThinkRailのMCPサーバー設定を追加・変更・削除し、ツールの接続不具合やサインイン、利用承認に必要な手順を案内するスキルです。

  • MCPサーバーを追加・削除したいとき
  • MCPの設定や公開方法を変更したいとき
  • MCPツールの接続不具合を調べたいとき
JetBrains/thinkrail1,7652026年10月26日 更新

setting-up-a-project

無料概要あり

仕様グラフがないプロジェクトの状態を確認し、新規企画か既存コードかに応じて、仕様作成の適切な手順へ案内します。

  • 新規プロジェクトの仕様作成を始めたいとき
  • 既存コードを仕様グラフに整理したいとき
  • 既存仕様の不足を確認したいとき
JetBrains/thinkrail1,7652026年10月26日 更新

shipping-a-pr

無料概要あり

完成した変更をプルリクエストとして作成し、同期や説明文の更新、CI確認、レビューコメントへの対応まで進めるスキルです。

  • 完成した変更でPRを作成したいとき
  • PRをベースブランチに同期したいとき
  • PRのタイトルや本文を更新したいとき
JetBrains/thinkrail1,7652026年10月26日 更新

JetBrains のスキルをすべて見る

このスキルの問題を報告する