musubix2 0.2.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,155 @@
1
+ # MUSUBIX2 — Specification Driven Development System
2
+
3
+ ## プロジェクト概要
4
+
5
+ MUSUBIX2 はニューロシンボリック AI コーディングシステムの SDD(Specification Driven Development)基盤である。
6
+ TypeScript / Node.js 20+ / ESM のモノレポ構成で、25 パッケージを npm workspaces で管理する。
7
+
8
+ ## アーキテクチャ原則
9
+
10
+ | 原則 | 説明 |
11
+ |------|------|
12
+ | **ライブラリファースト** | 各機能を独立パッケージとして設計。アプリ依存を排除 |
13
+ | **CLIファースト** | 全機能に Commander.js ベースの CLI インターフェースを提供 |
14
+ | **テストファースト** | Red→Green→Blue サイクル。Vitest カバレッジ 80% 以上 |
15
+ | **関心の分離** | 4層: Domain / Application / Infrastructure / Interface |
16
+ | **依存性逆転** | インターフェースによる抽象化。具象への直接依存を禁止 |
17
+ | **Git Native** | 全永続化データを JSON / YAML / Markdown 形式で保存 |
18
+
19
+ ## 9条憲法(不可侵)
20
+
21
+ | 条項 | 原則 | 検証手段 |
22
+ |------|------|----------|
23
+ | Article I | ライブラリファースト | constitution-enforcer |
24
+ | Article II | CLI インターフェース | constitution-enforcer |
25
+ | Article III | テストファースト | test-engineer |
26
+ | Article IV | EARS 形式 | requirements-analyst |
27
+ | Article V | トレーサビリティ | traceability-auditor |
28
+ | Article VI | プロジェクトメモリ | steering/ 参照 |
29
+ | Article VII | デザインパターン文書化 | design-generator |
30
+ | Article VIII | ADR 記録 | design-generator |
31
+ | Article IX | 品質ゲート | test-engineer |
32
+
33
+ ## SDD ワークフロー(5フェーズ)
34
+
35
+ ```
36
+ Phase 1: Requirements → Phase 2: Design → Phase 3: Tasks → Phase 4: Implementation → Phase 5: Complete
37
+ ```
38
+
39
+ - **Phase 遷移には前フェーズの承認が必須**(REQ-SDD-002a/b/c)
40
+ - 各 Phase で品質ゲートを通過すること(REQ-SDD-003)
41
+
42
+ ## ディレクトリ構成
43
+
44
+ ```
45
+ src/
46
+ ├── packages/
47
+ │ ├── core/ # @nahisaho/musubix-core
48
+ │ ├── knowledge/ # @musubix/knowledge
49
+ │ ├── decisions/ # @musubix/decisions
50
+ │ ├── policy/ # @musubix/policy
51
+ │ ├── codegraph/ # @nahisaho/musubix-codegraph
52
+ │ ├── dfg/ # @nahisaho/musubix-dfg
53
+ │ ├── formal-verify/ # @nahisaho/musubix-formal-verify
54
+ │ ├── lean/ # @nahisaho/musubix-lean
55
+ │ ├── security/ # @nahisaho/musubix-security
56
+ │ ├── workflow-engine/ # @nahisaho/musubix-workflow-engine
57
+ │ ├── skill-manager/ # @nahisaho/musubix-skill-manager
58
+ │ ├── agent-orchestrator/ # @nahisaho/musubix-agent-orchestrator
59
+ │ ├── expert-delegation/ # @nahisaho/musubix-expert-delegation
60
+ │ ├── assistant-axis/ # @nahisaho/musubix-assistant-axis
61
+ │ ├── mcp-server/ # @nahisaho/musubix-mcp-server
62
+ │ ├── sdd-ontology/ # @nahisaho/musubix-sdd-ontology
63
+ │ ├── ontology-mcp/ # @nahisaho/musubix-ontology-mcp
64
+ │ ├── neural-search/ # @nahisaho/musubix-neural-search
65
+ │ ├── wake-sleep/ # @nahisaho/musubix-wake-sleep
66
+ │ ├── library-learner/ # @nahisaho/musubix-library-learner
67
+ │ ├── synthesis/ # @nahisaho/musubix-synthesis
68
+ │ ├── pattern-mcp/ # @nahisaho/musubix-pattern-mcp
69
+ │ ├── deep-research/ # @nahisaho/musubix-deep-research
70
+ │ ├── musubi/ # @nahisaho/musubi
71
+ │ └── musubix/ # musubix (umbrella)
72
+ ├── steering/
73
+ │ ├── product.ja.md
74
+ │ ├── structure.ja.md
75
+ │ ├── tech.ja.md
76
+ │ ├── rules/constitution.md
77
+ │ └── project.yml
78
+ ├── .github/
79
+ │ ├── copilot-instructions.md
80
+ │ └── skills/
81
+ ├── docker/
82
+ ├── virtual-projects/
83
+ └── testing/
84
+ ```
85
+
86
+ ## パッケージ内部構成(4層)
87
+
88
+ ```
89
+ packages/<name>/
90
+ ├── src/
91
+ │ ├── domain/ # ドメインモデル、インターフェース
92
+ │ ├── application/ # ユースケース、サービス
93
+ │ ├── infrastructure/ # 外部アダプター、ファイルI/O
94
+ │ └── interface/
95
+ │ └── cli/ # Commander.js コマンド
96
+ ├── tests/
97
+ ├── package.json
98
+ └── tsconfig.json
99
+ ```
100
+
101
+ ## コーディング規約
102
+
103
+ - **言語**: TypeScript 5.3+ / ESM (`type: "module"`)
104
+ - **ビルド**: `tsc -b` インクリメンタルビルド
105
+ - **テスト**: Vitest
106
+ - **リンター**: ESLint
107
+ - **CLI**: Commander.js, `registerXCommand(program)` パターン
108
+ - **エラー**: `ActionableError` + `GracefulDegradation`(CircuitBreaker, retryWithBackoff)
109
+ - **リポジトリ**: `IRepository` / `ISearchableRepository` / `IPaginatedRepository`
110
+ - **ファクトリ**: `createInMemoryRepository` 等
111
+
112
+ ## EARS 要件構文
113
+
114
+ 全要件は EARS(Easy Approach to Requirements Syntax)形式で記述する:
115
+
116
+ | パターン | 構文 |
117
+ |----------|------|
118
+ | UBIQUITOUS | THE システム SHALL... |
119
+ | EVENT-DRIVEN | WHEN \<event\>, THE システム SHALL... |
120
+ | STATE-DRIVEN | WHILE \<state\>, THE システム SHALL... |
121
+ | UNWANTED | THE システム SHALL NOT... |
122
+ | OPTIONAL | WHERE \<feature\>, THE システム SHALL... |
123
+ | COMPLEX | IF \<condition\>, THEN THE システム SHALL... |
124
+
125
+ ## 仕様文書
126
+
127
+ - **要件定義書**: `references/musubix2/REQ-MUSUBIX2-001.md` (v1.5, 69 要件)
128
+ - **設計書**: `references/musubix2/DES-MUSUBIX2-001.md` (v1.5, 69 DES 仕様)
129
+ - **実装計画**: `references/musubix2/PLAN-MUSUBIX2-001.md` (77 タスク, 8 フェーズ)
130
+
131
+ ## オーケストレーション
132
+
133
+ SDD ワークフローのルーティングとフェーズ管理は `skills/orchestrator/SKILL.md` を参照。
134
+ 全スキル一覧と起動条件はそこに定義されている。
135
+
136
+ ## Review Orchestration (Cross-Model Review)
137
+
138
+ SDD アーティファクトの品質保証には `review-orchestrator` スキルを使用する。
139
+ 詳細は `skills/review-orchestrator/SKILL.md` を参照。
140
+
141
+ 1. **交互レビュー**: opus-4.6 → gpt-5.4 → opus-4.6 → ... (エラー0まで)
142
+ 2. **最終合意**: 両モデルが同時にPASSすること
143
+ 3. **実装許可**: requirements, design, plan 全てが承認済みであること
144
+
145
+ `ReviewOrchestrator` クラス(`@musubix2/agent-orchestrator` パッケージ)が
146
+ レビュープロセスのオーケストレーションを担当する。
147
+
148
+ ## Steering 参照ルール
149
+
150
+ 全スキル実行前に `steering/` を参照すること:
151
+ - `product.ja.md` — プロダクトコンテキスト
152
+ - `structure.ja.md` — アーキテクチャパターン
153
+ - `tech.ja.md` — 技術スタック
154
+ - `rules/constitution.md` — 9条憲法
155
+ - `project.yml` — プロジェクト設定
@@ -0,0 +1,136 @@
1
+ ---
2
+ name: code-generator
3
+ description: >
4
+ 設計仕様からテンプレートベースのコード生成、ドメインスキャフォールド、
5
+ 静的解析、ステータス遷移分析を実行する。4層アーキテクチャ準拠。
6
+ Use when generating code from design specs, scaffolding domain packages,
7
+ running static analysis, or starting SDD Phase 4 implementation.
8
+ license: MIT
9
+ version: "1.0.0"
10
+ triggers:
11
+ - コード生成
12
+ - スキャフォールド
13
+ - 静的解析
14
+ - Phase 4 開始
15
+ - codegen
16
+ ---
17
+
18
+ # Code Generator
19
+
20
+ 設計仕様から 4層アーキテクチャ準拠のコードを生成するスキル。
21
+ SDD ワークフロー Phase 4(Implementation)の中核。
22
+
23
+ ## 前提条件
24
+
25
+ - Phase 3(Tasks)が承認済みであること
26
+ - `steering/` を参照済みであること
27
+ - 設計文書(`storage/specs/DES-*.md`)が存在すること
28
+
29
+ ## ワークフロー
30
+
31
+ ### 1. コード生成
32
+
33
+ ```
34
+ WHEN ユーザーがコード生成を要求する:
35
+ 1. DES 仕様から TypeScript インターフェースを抽出
36
+ 2. CodeGenerator.generate() でテンプレートベース生成
37
+ 3. 4層構成で出力:
38
+ - domain/ → インターフェース、エンティティ、値オブジェクト
39
+ - application/ → ユースケース、サービス
40
+ - infrastructure/ → アダプター、ファイル I/O
41
+ - interface/cli/ → Commander.js コマンド
42
+ 4. EARS 要件 ID をコメントとしてリンク
43
+ ```
44
+
45
+ **CLI**: `npx musubix codegen generate <design-file>`
46
+
47
+ ### 2. ドメインスキャフォールド
48
+
49
+ ```
50
+ WHEN ユーザーが新規パッケージのスキャフォールドを要求する:
51
+ 1. ScaffoldGenerator で3モードから選択:
52
+ - minimal: domain/ + tests/ のみ
53
+ - standard: 4層 + package.json + tsconfig.json
54
+ - full: standard + CLI + README + CHANGELOG
55
+ 2. ディレクトリ構造を生成
56
+ 3. package.json に workspace 参照を追加
57
+ ```
58
+
59
+ **CLI**: `npx musubix codegen scaffold <package-name> [--mode minimal|standard|full]`
60
+
61
+ ### 3. 静的解析
62
+
63
+ ```
64
+ WHEN ユーザーが静的解析を要求する:
65
+ 1. StaticAnalyzer で複雑度・結合度を計測
66
+ 2. QualityMetricsCalculator でメトリクスを算出
67
+ 3. codegraph の ASTParser と連携
68
+ ```
69
+
70
+ **CLI**: `npx musubix codegen analyze <path>`
71
+
72
+ ### 4. ステータス遷移分析
73
+
74
+ ```
75
+ WHEN ユーザーがステータス遷移の分析を要求する:
76
+ 1. StatusTransitionGenerator でドメインモデルの状態遷移を抽出
77
+ 2. 状態遷移図(Mermaid stateDiagram)を生成
78
+ 3. 不正遷移の検出
79
+ ```
80
+
81
+ **CLI**: `npx musubix codegen status <entity>`
82
+
83
+ ## パッケージ構成テンプレート
84
+
85
+ ```
86
+ packages/<name>/
87
+ ├── src/
88
+ │ ├── domain/
89
+ │ │ ├── entities/
90
+ │ │ ├── value-objects/
91
+ │ │ └── interfaces/
92
+ │ ├── application/
93
+ │ │ └── services/
94
+ │ ├── infrastructure/
95
+ │ │ └── adapters/
96
+ │ └── interface/
97
+ │ └── cli/
98
+ │ └── commands.ts # registerXCommand(program)
99
+ ├── tests/
100
+ │ ├── domain/
101
+ │ ├── application/
102
+ │ └── integration/
103
+ ├── package.json
104
+ ├── tsconfig.json
105
+ └── README.md
106
+ ```
107
+
108
+ ## CLI コマンド登録パターン
109
+
110
+ ```typescript
111
+ import { Command } from 'commander';
112
+
113
+ export function registerXCommand(program: Command): void {
114
+ const cmd = program.command('x');
115
+ cmd.command('subcommand')
116
+ .description('...')
117
+ .option('--flag <value>', '...')
118
+ .action(async (options) => {
119
+ // implementation
120
+ });
121
+ }
122
+ ```
123
+
124
+ ## 品質ゲート
125
+
126
+ - [ ] 生成コードが `tsc --noEmit` でエラーなし
127
+ - [ ] 4層アーキテクチャに準拠(domain が infrastructure に依存しない)
128
+ - [ ] CLI コマンドが `registerXCommand` パターンに従う
129
+ - [ ] EARS 要件 ID がコード内コメントにリンク
130
+ - [ ] package.json の依存が workspace プロトコルを使用
131
+
132
+ ## Gotchas
133
+
134
+ 1. **ESM 必須**: `type: "module"` を package.json に設定。`import` 文に `.js` 拡張子を付けること(TypeScript でもビルド後のパスを指定)。
135
+ 2. **依存性逆転の徹底**: `domain/` 内で `infrastructure/` の具象クラスを import してはならない。必ずインターフェースを経由。
136
+ 3. **ActionableError の使用**: 標準 Error ではなく `ActionableError` を使用し、ユーザーへの修正提案を含める。
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: constitution-enforcer
3
+ description: >
4
+ MUSUBIX2 の9条憲法(CONST-001〜009)への準拠を検証する。
5
+ PolicyEngine による自動チェック、NonNegotiablesEngine による違反ブロック、
6
+ BalanceRuleEngine による 90/10 ルール適用を提供。
7
+ Use when validating constitution compliance, checking policy violations,
8
+ running governance audits, or blocking non-compliant changes.
9
+ license: MIT
10
+ version: "1.0.0"
11
+ triggers:
12
+ - 憲法チェック
13
+ - ポリシー検証
14
+ - constitution
15
+ - ガバナンス
16
+ - 品質ゲート
17
+ - policy
18
+ ---
19
+
20
+ # Constitution Enforcer
21
+
22
+ MUSUBIX2 の9条憲法(CONST-001〜009)への準拠を検証するスキル。
23
+ 全 Article の不可侵性を保証し、違反を即時ブロックする。
24
+
25
+ ## 前提条件
26
+
27
+ - `steering/rules/constitution.md` が存在すること
28
+ - `steering/project.yml` が存在すること
29
+
30
+ ## 9条憲法
31
+
32
+ | 条項 | ポリシーID | 原則 | 検証内容 |
33
+ |------|-----------|------|----------|
34
+ | Article I | CONST-001 | ライブラリファースト | パッケージが独立して利用可能か |
35
+ | Article II | CONST-002 | CLI インターフェース | 全機能に CLI が提供されているか |
36
+ | Article III | CONST-003 | テストファースト | テストが先に書かれているか |
37
+ | Article IV | CONST-004 | EARS 形式 | 全要件が EARS 構文に準拠しているか |
38
+ | Article V | CONST-005 | トレーサビリティ | REQ↔DES↔Code↔Test の 100% 追跡 |
39
+ | Article VI | CONST-006 | プロジェクトメモリ | steering/ が参照されているか |
40
+ | Article VII | CONST-007 | デザインパターン文書化 | パターン使用時に文書化されているか |
41
+ | Article VIII | CONST-008 | ADR 記録 | 重要な設計決定に ADR があるか |
42
+ | Article IX | CONST-009 | 品質ゲート | Phase 遷移時にゲートを通過しているか |
43
+
44
+ ## ワークフロー
45
+
46
+ ### 1. 全条項チェック
47
+
48
+ ```
49
+ WHEN ユーザーがポリシー検証を要求する:
50
+ 1. PolicyEngine で全9条を順次検証
51
+ 2. NonNegotiablesEngine で違反をブロック
52
+ 3. 各条項の PASS/FAIL と詳細理由を出力
53
+ 4. 違反がある場合、修正提案を生成
54
+ ```
55
+
56
+ **CLI**: `npx musubix policy validate`
57
+
58
+ ### 2. 個別条項チェック
59
+
60
+ ```
61
+ WHEN ユーザーが特定条項の検証を要求する:
62
+ 1. PolicyEngine で指定条項のみ検証
63
+ 2. 詳細レポートを出力
64
+ ```
65
+
66
+ **CLI**: `npx musubix policy check <article-number>`
67
+
68
+ ### 3. ポリシー一覧・詳細
69
+
70
+ ```
71
+ WHEN ユーザーがポリシー情報を要求する:
72
+ 1. 全9条の一覧を表示
73
+ 2. 指定条項の詳細(原則、検証方法、違反例)を表示
74
+ ```
75
+
76
+ **CLI**: `npx musubix policy list`
77
+ **CLI**: `npx musubix policy info <article-number>`
78
+
79
+ ### 4. バランスルール(90/10)
80
+
81
+ ```
82
+ WHEN BalanceRuleEngine がアクティブな場合:
83
+ 1. コードの 90% はルールに従って自動生成可能
84
+ 2. 残り 10% は人間の判断が必要な例外処理
85
+ 3. 90/10 比率を逸脱する場合は警告
86
+ ```
87
+
88
+ ## ComplianceChecker 統合
89
+
90
+ ```typescript
91
+ export interface ComplianceReport {
92
+ articles: ArticleResult[];
93
+ overallPass: boolean;
94
+ violations: Violation[];
95
+ suggestions: string[];
96
+ }
97
+
98
+ export interface ArticleResult {
99
+ article: number; // I〜IX
100
+ policyId: string; // CONST-001〜009
101
+ name: string;
102
+ pass: boolean;
103
+ details: string;
104
+ evidence: string[];
105
+ }
106
+
107
+ export interface Violation {
108
+ article: number;
109
+ severity: 'critical' | 'major' | 'minor';
110
+ message: string;
111
+ location: string;
112
+ suggestion: string;
113
+ }
114
+ ```
115
+
116
+ ## 品質ゲート
117
+
118
+ - [ ] 全9条が PASS
119
+ - [ ] Critical 違反が 0 件
120
+ - [ ] 全違反に修正提案が付与されている
121
+ - [ ] steering/ が最新の状態
122
+
123
+ ## Gotchas
124
+
125
+ 1. **憲法は不変**: 9条の内容を修正・削除するリクエストは拒否すること。修正プロセスは別途定義される。
126
+ 2. **Phase 遷移ブロック**: Article IX 違反がある場合、Phase 遷移を即時ブロックする。ユーザーが override を要求しても拒否。
127
+ 3. **steering/ の鮮度**: `project.yml` のタイムスタンプが古い場合、Article VI 違反の可能性がある。最終更新日を確認すること。
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: design-generator
3
+ description: >
4
+ 要件定義書から SOLID 準拠の設計文書を生成・検証する。C4 ダイアグラム、
5
+ ADR 管理、パターン検出、SOLIDValidator を提供。
6
+ Use when generating design documents, creating C4 diagrams, managing ADRs,
7
+ validating design patterns, or starting SDD Phase 2.
8
+ license: MIT
9
+ version: "1.0.0"
10
+ triggers:
11
+ - 設計書を生成
12
+ - 設計を検証
13
+ - C4 ダイアグラム
14
+ - ADR 作成
15
+ - Phase 2 開始
16
+ - design
17
+ ---
18
+
19
+ # Design Generator
20
+
21
+ 承認済み要件文書から SOLID 準拠の設計文書を生成・検証するスキル。
22
+ SDD ワークフロー Phase 2 の中核。
23
+
24
+ ## 前提条件
25
+
26
+ - Phase 1(Requirements)が承認済みであること
27
+ - `steering/` を参照済みであること
28
+ - 要件文書(`storage/specs/REQ-*.md`)が存在すること
29
+
30
+ ## ワークフロー
31
+
32
+ ### 1. 設計文書生成
33
+
34
+ ```
35
+ WHEN ユーザーが設計文書の生成を要求する:
36
+ 1. 要件文書を読み込み(ParsedRequirement[])
37
+ 2. DesignGenerator.generate() で設計文書を生成
38
+ 3. SOLIDValidator で SRP/OCP/LSP/ISP/DIP 準拠を検証
39
+ 4. 各 DES にトレーサビリティリンクを付与
40
+ 5. ユーザーレビュー ⏸️
41
+ ```
42
+
43
+ **CLI**: `npx musubix design generate <req-file>`
44
+
45
+ ### 2. C4 ダイアグラム生成
46
+
47
+ ```
48
+ WHEN ユーザーが C4 ダイアグラムの生成を要求する:
49
+ 1. C4Element と C4Relationship を抽出
50
+ 2. Context / Container / Component レベルの Mermaid 図を生成
51
+ 3. 設計文書に埋め込み
52
+ ```
53
+
54
+ **CLI**: `npx musubix design c4 <design-file>`
55
+
56
+ ### 3. ADR 管理
57
+
58
+ ```
59
+ WHEN ユーザーが ADR の作成・管理を要求する:
60
+ 1. ADRManager.create() で新規 ADR 作成
61
+ 2. ステータスライフサイクル: proposed → accepted → deprecated → superseded
62
+ 3. ADRManager.search() で全文検索
63
+ 4. ADRManager.index() でインデクシング
64
+ ```
65
+
66
+ **CLI**: `npx musubix decisions create|list|get|accept|deprecate|search|index`
67
+
68
+ ### 4. 設計検証
69
+
70
+ ```
71
+ WHEN ユーザーが設計文書の検証を要求する:
72
+ 1. PatternDetector でデザインパターンを検出
73
+ 2. SOLID 原則への準拠を検証
74
+ 3. 要件との対応漏れを検出
75
+ ```
76
+
77
+ **CLI**: `npx musubix design validate <design-file>`
78
+
79
+ ## 設計文書フォーマット
80
+
81
+ 各 DES 仕様は以下の構成:
82
+
83
+ ```markdown
84
+ ### DES-XXX-NNN: タイトル
85
+
86
+ **トレーサビリティ**: REQ-XXX-NNN
87
+ **パッケージ**: `package-name`
88
+
89
+ **設計概要**:
90
+ (自然言語の説明)
91
+
92
+ (TypeScript インターフェース / Mermaid 図)
93
+
94
+ **CLI契約**: `npx musubix ...`
95
+ ```
96
+
97
+ ## ADR フォーマット
98
+
99
+ ```markdown
100
+ # ADR-NNN: タイトル
101
+
102
+ **ステータス**: proposed | accepted | deprecated | superseded
103
+ **日付**: YYYY-MM-DD
104
+
105
+ ## Context
106
+ (決定の背景)
107
+
108
+ ## Decision
109
+ (決定内容)
110
+
111
+ ## Consequences
112
+ (影響と結果)
113
+ ```
114
+
115
+ ## 品質ゲート
116
+
117
+ - [ ] 全 DES が少なくとも1つの REQ にトレース可能
118
+ - [ ] TypeScript インターフェースが定義されている
119
+ - [ ] CLI 契約が明記されている
120
+ - [ ] SOLID 原則への違反がない
121
+ - [ ] 重要な設計決定に ADR が作成されている
122
+
123
+ ## Gotchas
124
+
125
+ 1. **DES と REQ の N:M 関係**: 1つの DES が複数の REQ を参照する場合がある。逆も同様。全方向のリンクを維持すること。
126
+ 2. **Mermaid 記法の制限**: classDiagram で `?` nullable 表記を使う場合、TypeScript 側の `| undefined` と一致させること。
127
+ 3. **ADR のステータス管理**: `accept` と `deprecate` は状態遷移。直接 `superseded` にはできない(必ず `deprecated` を経由)。