Skip to main content

ix-architecture

Analyze system design — structure, coupling, code smells, and high-risk hotspots. Purely graph-based, no code reads.

インストールへ移動

ソース情報

リポジトリ
ix-infrastructure/ix-cursor-plugin
ソースの最終更新活動
2026年4月24日 21:13
検出された SKILL.md の言語
英語
スター
1
フォーク
0

インストール方法

デフォルトでは、最初にソースを確認する Prompt が選択されています。直接コマンドに切り替えるか、ローカルコピーをダウンロードすることもできます。

ソースファイルを確認

インストールを決める前に、SKILL.md と SkillsMP に表示されている付属ファイルをお読みください。

SKILL.md を表示中

SKILL.md
ソースの指示 · 読み取り専用プレビュー
name
ix-architecture
description
Analyze system design — structure, coupling, code smells, and high-risk hotspots. Purely graph-based, no code reads.
## Argument parsing Strip `--save` and any following path token from `$ARGUMENTS` before processing the scope. - If `--save <path>` is present, set `SAVE_PATH` to that path. - If `--save` is present without a path, auto-generate `ix-architecture-<scope-slug>.md` in cwd (scope slug = `$ARGUMENTS` with spaces and slashes replaced by `-`, or `repo` if arguments are empty). - If `--save` is absent, `SAVE_PATH` is empty — do not write a file. ## Health gate Call `ix_health` with `{}`. If `ok` is `false`, stop: *"ix graph unavailable — ensure the ix server is running."* Then call `ix_subsystems` with `{}`. If the result contains no subsystems, stop: *"No graph data yet — call `ix_map` to build the graph first."* ## Pro check Call `ix_briefing` with `{}`. If `ok` is `true`, Pro is available. Extract `data.decisions` for use below. Skip all **[Pro]** steps if it returns `ok: false`. --- ## Phase 1 — Subsystem structure Call `ix_subsystems` with `{}`. Filter results to `$ARGUMENTS` scope if provided (match on subsystem name or path prefix). Store the full result as `SUBSYSTEMS`. **Early-stop gate:** Examine each region's metrics. If ALL of the following are true across every region: - `cohesion > 0.7` - `coupling < 0.4` - `confidence >= 0.6` → Report *"System appears structurally healthy — no significant coupling, cohesion, or boundary issues detected."* List subsystems with their metrics and stop. Do not proceed to Phase 2. --- ## Phase 2 — Smell analysis Call `ix_smells` with `{}` (filter to scope path if `$ARGUMENTS` was provided). Store as `SMELLS`. **Health gate — choose one path:** **Inline path** (all must be true): - Smell count < 3 - No `god-module` smell present → Synthesize the report inline using `SUBSYSTEMS` + `SMELLS`. Proceed to Phase 3 only if needed. Skip delegation. **Delegate path** (any is true): - Smell count ≥ 3 - A `god-module` smell is present → Spawn the **ix-architecture-auditor** agent. Pass `SUBSYSTEMS` and `SMELLS` directly in the agent prompt so it can skip its own Steps 1–4. Include the scope from `$ARGUMENTS`. Relay the agent's complete output to the user, then skip to the **[Pro] Cross-reference decisions** step. --- ## Phase 3 — Hotspot ranking (inline path only) Run only if at least one of the following is true: - A `god-module` smell exists in `SMELLS` - Any region in `SUBSYSTEMS` shows high coupling Call `ix_rank` with `{ "by": "dependents", "kind": "class", "top": 10 }`. Identify top-ranked components that overlap with smell findings or high-coupling regions. Include these as hotspots in the inline report. If neither condition is met, skip `ix_rank` entirely. --- ## Inline report format When taking the inline path, produce: **Summary** — one sentence verdict on overall health. **Subsystem overview** — table of regions with cohesion, coupling, and confidence scores. **Smells** — list each smell with affected symbol and severity. **Hotspots** — (if Phase 3 ran) top-ranked components that coincide with smells or high-coupling regions. **Recommended action** — one concrete next step. --- ## [Pro] Cross-reference decisions If Pro is available, after the report (inline or delegated) is complete, check `data.decisions` from the briefing. Append a **Recorded Decisions** section cross-referencing relevant design decisions against the findings — especially decisions that affect god-modules, high-coupling regions, or identified hotspots. ## Save step **Only if `SAVE_PATH` is non-empty:** - Write the full output to `SAVE_PATH`. - Confirm to the user: `Saved to <SAVE_PATH>`. - Do not write the file if `--save` was not passed.
GitHubで見る