Files
hakorune/docs/development/roadmap/phases/phase-12.7/ai-feedback/actionable-insights.md

178 lines
4.4 KiB
Markdown
Raw Normal View History

# ANCP実装に向けた実用的洞察まとめ
Date: 2025-09-03
## 🎯 すぐに実装すべき優先事項
### 1. 正規化ルールの明文化Codex提案
```rust
// P* (正規形) の定義が最重要
pub struct Canonicalizer {
// コメント処理: 保持 or 削除?
// 空白処理: 正規化ルール
// エイリアス解決: import as の扱い
}
```
**理由**: 可逆性の数学的保証に必須
### 2. トークン最適化戦略Codex提案
```
// GPTトークナイザーに合わせた記号選択
F層記号候補:
- 高頻度: $ @ # ^ ~
- 避ける: 長いUnicode、稀な記号
```
**理由**: 圧縮率はバイト数でなくトークン数で測定すべき
### 3. IDE統合の最小実装Gemini提案
```typescript
// VS Code拡張: F層ホバーでP層表示
onHover(position) {
const fToken = getFusionToken(position)
const pCode = sourceMap.lookup(fToken)
return new Hover(pCode)
}
```
**理由**: デバッグ体験が開発普及の鍵
## 📊 実装順序の推奨
### Phase 1: ミニマルPoC1週間
1. **AST正規化器**
- Canonicalizer実装
- P→P*変換の決定的動作
2. **基本変換器**
- Box定義の圧縮
- 関数定義の圧縮
- MIRハッシュ検証
3. **双方向マップ**
- 最小限のソースマップ
- ラウンドトリップテスト
### Phase 2: 実用化2週間目
1. **CLI実装**Codex提案
```bash
ancp encode --layer F input.nyash -o output.f
ancp decode output.f --map output.map
ancp verify input.nyash output.f # MIR等価性チェック
```
2. **プロジェクト辞書**Gemini提案
```yaml
# .ancprc
symbols:
WebServer: WS
HttpRequest: HR
handleRequest: hR
```
3. **エラー位置変換**
- F層エラー→P層位置
- スタックトレース変換
### Phase 3: 高度な最適化3週間目
1. **文法圧縮**Codex提案
- Re-Pair/Sequiturアルゴリズム
- 頻出パターン辞書化
2. **混合モード**Gemini提案
```nyash
// 通常のP層コード
box NormalClass { ... }
fusion {
// F層圧縮コード
$FC@B{...}
}
```
3. **意味論的圧縮**Gemini提案
- パターン認識
- 高レベル抽象化
## 🔍 検証計画(両者統合)
### 自動テストスイート
```rust
#[test]
fn roundtrip_property_test() {
// Codex提案: Property-based testing
proptest!(|(ast: RandomAST)| {
let encoded = ancp.encode(ast, Level::F);
let decoded = ancp.decode(encoded);
assert_eq!(normalize(ast), decoded);
assert_eq!(mir_hash(ast), mir_hash(decoded));
});
}
```
### ベンチマーク項目
| 指標 | 測定内容 | 目標値 |
|------|----------|--------|
| 圧縮率 | トークン削減率 | 90% |
| 変換速度 | ms/1000行 | <100ms |
| マップサイズ | % of P | <5% |
| MIR一致率 | Pass/Fail | 100% |
## 💡 回避すべき落とし穴
### 1. 文字列リテラルの罠Codex警告
```nyash
// 問題: 文字列内のF層記号
local msg = "User sent $100" // $ が誤解釈される
```
**対策**: エスケープメカニズム必須
### 2. デバッグ地獄Codex警告
```
Error at $WS@H{p;r=@M|b(p){$.p=p}:12:5
```
**対策**: デコーダー常駐でP層位置を即座に表示
### 3. プラグイン非互換Codex警告
```nyash
// プラグインが新構文追加
plugin syntax { ... } // F層エンコーダーが対応できない
```
**対策**: プラグイン登録API必須
## 🚀 即座に始められること
1. **仕様書ドラフト作成**
- P*正規化ルール
- C/F層文法定義
- ソースマップフォーマット
2. **最小実装**
```bash
# まずBoxだけで動作確認
echo "box Test { }" | ancp encode -l F
# => $T{}
```
3. **コーパス収集**
- 既存Nyashコード収集
- 頻度解析でF層記号決定
## 📈 成功指標
### 短期1ヶ月
- [ ] 10個のサンプルで90%圧縮達成
- [ ] MIR等価性100%保証
- [ ] 基本的なCLI動作
### 中期3ヶ月
- [ ] Nyashコンパイラ自身を圧縮
- [ ] VS Code拡張リリース
- [ ] 論文ドラフト完成
### 長期6ヶ月
- [ ] 他言語への応用
- [ ] 標準規格提案
- [ ] AI開発ツール統合
---
**次の一歩**: AST正規化ルールP*の仕様を1ページで書く