---
name: project-analog-forge-v01-complete-2026-08-10
description: Analog Forge v0.1.0 dataset generation MVP 完了 state (2026-08-10)。 local-agent output → C:\Users\user\analog-forge\ に 49 file copy (19 real source + 30 demo output) + Python 3.10.6 venv + pyyaml 6.0.3 + 23/23 test PASS in 0.037s + initial commit 2e6402d。 SKY130 open-PDK analog circuit dataset generator + journal.py 中核 (仮説→変更→観測→判定→代償→代案 append-only)。 Docker + ngspice 検証 + 種点仕上げ + 200 設計 sweep + 第 2 トポロジ 追加 は 別 session (藤本さん 環境依存)。
metadata: 
  node_type: memory
  type: project
  originSessionId: d587cda3-a593-44cd-88f2-24d640e43782
  modified: 2026-08-10T02:59:59.117Z
---

# Analog Forge v0.1.0 完了 state (2026-08-10)

## Project overview

**Analog Forge** = SKY130 open-PDK analog circuit dataset generator + journal-based decision tracking。

**中核 concept**: 三つ組 (回路 × 条件 × 応答) の 外側にある **「設計意図・判断の軌跡・制約・トレードオフ構造」** を 同時に記録。 chat-Claude 主張:「シミュレーションは何度でも再実行できる、 判断は二度と復元できない」 = 失敗の記録が本体。

**License**: dataset_license = CC-BY-4.0 (design.yaml 内)、 tool 本体 license 未定 (藤本さん judgment 領域)
**Design**: local-agent 2026-08-10 output (chat-Claude MCP / VS Code extension direction とは別 track の 収益化 candidate = analog EDA dataset 分野)

## Location + commit

- **Path**: `C:\Users\user\analog-forge\`
- **Git repo**: initialized (main branch), initial commit **2e6402d**
- **Git status**: working tree clean, 49 files tracked
- **Source origin**: `C:\Users\user\AppData\Local\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Roaming\Claude\local-agent-mode-sessions\d1f42b82-febb-4e4b-ae1d-adb81cea507c\e439c8be-33b7-4b50-9fe9-e3f9e399c601\local_446de258-2dd2-4bb2-bf76-d78ebf63c907\outputs\analog-forge\` (excluding __pycache__ + node_modules不使用)

## 49 file 構成

**19 real source files** (chat-Claude 「19 ファイル」 verify 済):
```
C:\Users\user\analog-forge\
├── .gitignore                          Python style (__pycache__ + .venv + out/run/ + *.raw)
├── ARCHITECTURE.md                     229 行、 完全設計書 (三つ組 + 4 判定基準 + データモデル + アーキテクチャ + パレート + 来歴 + 8 phase)
├── README.md                           177 行、 使い方 + 検証済 + validate 4 point + journal 6 項目 + 権利
├── requirements.txt                    pyyaml>=6.0 のみ (依存ゼロ discipline)
├── circuits/two_stage_ota/
│   ├── design.yaml                     二段ミラー補償OTA 研究定義 (intent + 制約 + specs + base_params + seed_designs hand_v1 + sweep ranges)
│   ├── journal.example.jsonl           4 step 実例 (choose topology / relax UGF 5→2MHz / cc 減らし REJECTED / 出力段 size 逆算)
│   └── template.sp                     SKY130 ネットリスト + テストベンチ
├── docker/run.sh                       IIC-OSIC-TOOLS 起動 script
├── forge/                              9 Python modules
│   ├── __init__.py
│   ├── schema.py                       データクラス定義 (Design/Condition/Response/Trial/Intent/Decision)
│   ├── conditions.py                   PVT × MC × 経年 (PVT 45 + MC 200 = 245 conditions default)
│   ├── netlist.py                      パラメトリック展開 + SHA256 + LHS
│   ├── measure.py                      指標抽出 (A0/UGF/PM/GM/SR/Power) ★ 23 test 対象
│   ├── runner.py                       AnalyticBackend + NgspiceBackend 同 API
│   ├── journal.py                      ★★★ 中核 = 追記専用 DecisionJournal + record() + rejected() + read() + stats() + to_markdown() + 6 項目 PROMPTS
│   ├── pareto.py                       最悪条件集約 + 非劣解抽出
│   └── pipeline.py                     統合オーケストレーション + データセット書き出し
├── scripts/                            3 CLI tools
│   ├── run_sweep.py                    スイープ実行 (--backend analytic/ngspice --designs N --plan full --mc M --out OUT)
│   ├── log_decision.py                 判断対話記録 (--out journal.jsonl --markdown 履歴読み)
│   └── validate_ngspice.py             ★ 本番前 必須 (W/L 単位 + MC 効き + ff/ss 順序 4 point check)
└── tests/test_measure.py               23 test cases (TestACMetrics 5 + TestConditions 3 + TestHelpers 5 + TestJournal 2 + TestNetlist 3 + TestPareto 3 + TestTransient 2)
```

**30 demo output files** (chat-Claude 「62,965 試行 収束率 100%」 evidence preservation):
```
out/{demo, demo2, demo3, demo4, final}/
├── aggregate.json      設計ごとの最悪値・歩留まり・ばらつき
├── manifest.json       来歴 (PDK/license/simulator/generated_at)
├── pareto.json         パレート面 (第1層〜第3層)
├── study.json          意図・制約・仕様
├── summary.csv         表計算 opening
└── trials.jsonl        三つ組の実体 (62,965 行 in demo/)
```

## Verified state (2026-08-10)

- **Python 3.10.6 venv 作成** (`C:\Users\user\analog-forge\.venv\`)
- **pyyaml 6.0.3 install 成功** (UTF-8 encoding forced で 解決 = cp932 issue 回避)
- **23/23 test PASS in 0.037s** (chat-Claude 主張 完全 verify 済):
  - TestACMetrics: 5 (bw3db + dc_gain + phase_margin + ugf + unstable_system_has_low_pm)
  - TestConditions: 3 (default_plan_size + mc_ids_unique + pvt_grid_size)
  - TestHelpers: 5 (crossing linear/log/none + db20 + unwrap)
  - TestJournal: 2 (append_and_read + invalid_verdict)
  - TestNetlist: 3 (lhs_covers_range + quantize + render_and_partial)
  - TestPareto: 3 (dominance + meets_spec + no_dominance_on_tradeoff)
  - TestTransient: 2 (settling + slew_rate_of_ramp)
- **initial commit 2e6402d**: working tree clean

## Demo 実測 evidence (out/demo/ 内、 verify pending 詳細)

Chat-Claude 主張:
- **62,965 試行 / 収束率 100%** (256 designs + 1 hand-seed × 245 conditions)
- **2/257 全 spec 満たし**:
  - ota2s-seed00 (手設計): A0=79.0dB, UGF=2.35MHz, PM=60.2°, P=25.2µW, 歩留=1.000
  - ota2s-d0150 (偶然): A0=81.4dB, UGF=2.36MHz, PM=63.1°, P=33.9µW, 歩留=1.000
- **ランダム探索的中率 = 256 点中 1 点 = 0.4%**、 手計算 seed は 100%

## journal.example.jsonl 4 step 実例 (中核 discipline demo)

- **Step 1** (accepted): choose two-stage Miller topology (単段 telescopic vs folded cascode 2 alternatives reject、 「1.8V 電源で出力振幅 1.4Vpp 要求」 justify)
- **Step 2** (accepted): **relax UGF 5MHz → 2MHz** (LHS 256 点で 4 条件同時満たす 0 件 判明、 gm6 ≥ 544 µS 逆算で 20µA 予算超過、 3 alternatives 全 reject: 40µA 予算増 (上位要件崩壊) / CL 5pF 減 (後段 ADC 制約) / class AB (ばらつき耐性 verify cost 見合わず))
- **Step 3** (★ **REJECTED**): cc 1.5pF → 0.5pF 試み、 UGF 3 倍化 成功だが PM 35.5° 落下 = 閉ループ リンギング 許容不可、 「cc 単独 動かせない」 学習
- **Step 4** (accepted): 出力段 gm 逆算 (PM 先決めて gm6 逆算 + 出力段電流 7.7µA)、 PM+power+A0 同時改善 = 「電流配分 誤 判明」

= **失敗の記録が本体** の 直接実例 (Step 3 rejected + Step 2 3 alternatives 全記録)。

## Rei-side operational alignment (Rei stack との 深い 構造的類似 = 独立到達 evidence 8 系統目 candidate)

journal.py 6 項目 (仮説 + 変更 + 観測 + 判定 + 代償 + 代案) は Rei-side 複数 discipline と **operational aligned** (完全別 domain = SKY130 analog EDA vs 数学 formalization):

| Analog Forge journal | Rei-side aligned discipline |
|---------------------|---------------------------|
| verdict = accepted/rejected/deferred | [[feedback-invention-audit-include-downgrade-approve-option]] audit 4 option (approve/reject/defer/downgrade approve) |
| 「代償」 + 「代案」 明示 | [[feedback-critique-response-pattern]] 100% 認諾 SAC-4 (根拠 + 影響 + 対策 + 予防) |
| ランダム 256 点 0.4% vs 手計算 seed 100% | [[feedback-one-reproduction-over-ten-unverified]] 「十本の未検証より一本の再現」 |
| 「判断は二度と復元できない、 その場で書け」 | [[feedback-no-rush-publication]] 「急がず ゆっくりと」 + STEP(t₀) ← EternalRei(t₊∞) 逆因果 |
| 棄却 0 なら 「記録漏れを疑ってください」 | Findings 3-6 「装置が発見できないかが構造を教える」 (chat-Claude 2026-08-10 turn 8-9) |

= **journal discipline 独立到達 evidence** = 別 domain (analog EDA) の 別 team (local-agent chat-Claude) が Rei-side [[feedback-*]] discipline と **同 shape** に 独立到達 = Rei-side operational discipline の 外部 validation 8 系統目 candidate。

## 「次にやること」 §4 (README, 別 session 実行)

1. **`bash docker/run.sh validate`** = W/L 単位 (SKY130 w=16 vs 16u = 1e-12 倍 事故) + Monte Carlo 効き (「全部同じ値の MC 風データ が数万件」 事故) + ゲイン/UGF/PM 現実性 + ff/ss corner 順序 の 4 point check ← **Docker + IIC-OSIC-TOOLS 環境依存**、 藤本さん 環境で 実行
2. **種点 1 つ ngspice 完全仕上げ** = ota2s-seed00 を ngspice で fully verify + journal.jsonl に全過程 record (chat-Claude 「その過程を全部ジャーナルに書く」 discipline)
3. **設計点 200 点 sweep** = 同 script で 200 designs × 245 conditions = 49,000 試行 (単一 core 約 27 時間、 8 並列で 3.5 時間)
4. **第 2 トポロジ (LDO or bandgap)** 追加 = `circuits/` に 同構造 追加

## 帰宅後 別 Claude Code session 起動手順

**Step 1**: `C:\Users\user\analog-forge\` を Windows Explorer で 開く
**Step 2**: Claude Code (Desktop) を そこで 起動 (「Open Folder」 → analog-forge dir 選択)
**Step 3**: 新 session に 依頼 (chat-Claude 2026-08-10 提示 verbatim):

> **「`README.md` と `ARCHITECTURE.md` を読んで、 「次にやること」 の §4 まで 実行して」**

新 session Claude Code は README + ARCHITECTURE (journal discipline + 4 point validate + 依存ゼロ + 権利) 自動読込、 「次にやること」 4 task を 順次実行 (但し Docker + ngspice は 藤本さん 環境依存)。

## Rei-AIOS project との 関係

- **完全別 project** (別 dir + 別 git repo + 別 license CC-BY-4.0 vs AGPL-3.0)
- Rei stack context に 一切 leak しない
- **journal discipline 独立到達 evidence 8 系統目 candidate** は Rei-side observation、 藤本さん 実 project 意図とは 独立

## 権利上の注意 (README §権利について 継承)

- **オープン PDK (SKY130 / GF180MCU / IHP SG13G2) 以外 使わない** = 商用 PDK NDA 配下 = データ公開・販売 不可
- **`design.yaml` の `pdk_commit`** 実行時に必ず記入 (来歴欠 = 大手購入不可)
- **参照した公開回路** ある場合は `derived_from` に出典明記

## 関連 memory

- [[project-2026-08-10-multi-project-pause-state]] (帰宅前 pause state index、 4 project 並行)
- [[project-strategic-synthesis-chat-claude-2026-08-10]] (chat-Claude 戦略 synthesis)
- [[feedback-invention-audit-include-downgrade-approve-option]] (audit 4 option、 journal verdict と 同 pattern)
- [[feedback-critique-response-pattern]] (100% 認諾 SAC-4、 「代償」 「代案」 明示 と 同 pattern)
- [[feedback-one-reproduction-over-ten-unverified]] (256 ランダム 0.4% vs 手計算 seed 100% と 同 pattern)
- [[feedback-no-rush-publication]] (「判断は二度と復元できない」 と 同 pattern)
- Analog Forge internal: `C:\Users\user\analog-forge\README.md` + `ARCHITECTURE.md` + `circuits/two_stage_ota/{design.yaml, journal.example.jsonl, template.sp}` + `forge/journal.py`
