Commit Graph

536 Commits

Author SHA1 Message Date
1e1d0315b3 phase29ao(p1): composer domainplan bridge scaffold 2025-12-30 04:12:15 +09:00
0e78122129 docs(phase29ao): add p1 composer api bridge roadmap 2025-12-30 04:05:49 +09:00
8920b312fb docs(phase29an): closeout p0-p14; handoff to phase29ao 2025-12-30 03:52:38 +09:00
c9b382e3ff docs(phase29an): add p15 closeout; start phase29ao 2025-12-30 03:49:54 +09:00
2980cb0c29 docs(phase29an): add p14 valuejoin facts scaffold 2025-12-30 03:40:33 +09:00
5746477f40 docs(phase29an): add p13 cleanup facts scaffold 2025-12-30 03:33:15 +09:00
8518f1acc5 docs(phase29an): add p12 canonical exitmap projections 2025-12-30 03:24:49 +09:00
0d18427543 docs(phase29an): add p11 exitmap presence 2025-12-30 03:18:42 +09:00
0428e5942f docs(phase29an): add p10 exitmap facts scaffold 2025-12-30 03:10:16 +09:00
3b1cce5715 docs(phase29an): add p9 skeleton unification instructions 2025-12-30 03:03:30 +09:00
2f63e20fd8 docs(phase29an): add p8 exit usage invariants 2025-12-29 19:20:41 +09:00
d94db2cfc3 docs(phase29an): add p7 canonical projections 2025-12-29 18:55:29 +09:00
02368edd14 docs(phase29an): add p6 planner skeleton gate 2025-12-29 18:43:29 +09:00
d35343087a docs(phase29an): add p5 skeleton if-without-else 2025-12-29 18:34:16 +09:00
d114117a36 docs(phase29an): add p4 loop facts ssot tightening 2025-12-29 18:18:27 +09:00
19d54f1dd9 docs(phase29an): add p3 freeze unstructured instructions 2025-12-29 18:12:00 +09:00
8144836995 docs(phase29an): add p2 planner staging instructions 2025-12-29 17:45:47 +09:00
134a0d2f7d docs(phase29an): add p1 feature facts instructions 2025-12-29 17:35:25 +09:00
fceae90f63 docs(phase29an): start skeleton/feature facts phase 2025-12-29 17:20:41 +09:00
244471ac94 docs(phase29am): mark p2 done; add p3 exitmap alignment 2025-12-29 17:05:50 +09:00
e9f3196668 docs(phase29am): mark p1 done; add p2 verifier instructions 2025-12-29 16:56:26 +09:00
3c76d8eabf docs(phase29am): mark p0 done; add p1 seq flatten instructions 2025-12-29 16:49:05 +09:00
fd7e3fee35 docs(phase29am): coreplan step-a if/exit implementation instructions 2025-12-29 16:31:29 +09:00
9b8673207e docs(phase29al): coreplan migration roadmap ssot 2025-12-29 16:25:34 +09:00
c53f1edf31 docs(phase29al): exitkind cleanup effect contract ssot 2025-12-29 16:21:13 +09:00
786d2f5720 docs(phase29al): effect classification ssot 2025-12-29 16:16:53 +09:00
e598712298 docs(phase29al): post-phi final form ssot 2025-12-29 16:06:14 +09:00
bf9a63c53f docs(phase29al): ssot skeleton/feature model; planfrag freeze tag 2025-12-29 16:01:26 +09:00
14013cbe1f phase29ak(p5): ctx-aware planner candidates; fix phase1883 routing 2025-12-29 15:50:57 +09:00
afe12ffa35 phase29ak(p4): remove pattern1 guard from single_planner 2025-12-29 15:10:08 +09:00
655b968fb4 phase29ak(p3): remove pattern8 static box filter from single_planner 2025-12-29 15:00:51 +09:00
9a686cd510 phase29ak(p2): gate pattern8 facts by static box ctx 2025-12-29 14:49:48 +09:00
fc90c74bd3 phase29ak(p1): guard pattern1 facts via planner context 2025-12-29 14:41:56 +09:00
2626deeb72 phase29ak(p0): ssot rule order + planner context plumbing 2025-12-29 14:34:34 +09:00
a91e457302 phase29aj(p10): unify single_planner planner-first shape 2025-12-29 14:26:25 +09:00
d673bd4fbd docs(phase29aj): isolate phase286 pattern9 legacy smoke 2025-12-29 14:18:31 +09:00
57e0fdb0a0 phase29aj(p8): planner-first pattern9 accum const loop subset 2025-12-29 14:08:53 +09:00
5ba77cb62a phase29aj(p7): planner-first pattern8 bool predicate scan subset 2025-12-29 13:57:26 +09:00
d819fe0dae docs(phase29aj): define joinir regression gate; isolate phase143 legacy 2025-12-29 13:44:53 +09:00
d4a9969fa3 phase29aj(p5): planner-first pattern5 infinite early-exit subset 2025-12-29 13:39:30 +09:00
3a7378a747 phase29aj(p4): planner-first pattern4 continue subset 2025-12-29 13:22:55 +09:00
31e4ac8c99 phase29aj(p3): planner-first pattern3 if-phi facts subset 2025-12-29 13:06:17 +09:00
97d5d3ef77 phase29aj(p2): planner-first pattern1 simplewhile subset 2025-12-29 12:54:32 +09:00
ff3af90b4c phase29aj(p1): remove legacy_rules via plan extractors 2025-12-29 12:39:15 +09:00
5988374ecf phase29aj(p0): expose planner outcome facts for strict observability 2025-12-29 12:17:57 +09:00
2e1bb938b4 phase29ai(p15): observe pattern2 promotion hint under strict 2025-12-29 11:37:31 +09:00
19f2c6b7f6 phase29af(p0): pattern2 boundary hygiene ssot 2025-12-29 05:12:15 +09:00
a04b48416e fix(joinir): Phase 287 P2 - Pattern6 nested loop latch overwrite fix
Fix infinite loop in Pattern6 (nested loop minimal) caused by main→loop_step
overwriting k_inner_exit→loop_step latch values.

Root cause: JoinIR main entry block was incorrectly treated as BackEdge,
causing it to overwrite the correct latch incoming values set by the true
back edge (k_inner_exit → loop_step).

Solution:
- Restrict latch recording to TailCallKind::BackEdge only
- Treat only MAIN's entry block as entry-like (not loop_step's entry block)
- Add debug_assert! to detect double latch set in future

Refactoring:
- Extract latch recording to latch_incoming_recorder module (SSOT)
- Add boundary.loop_header_func_name for explicit header identification
- Strengthen tail_call_classifier with is_source_entry_like parameter

Tests: apps/tests/phase1883_nested_minimal.hako → RC:9 (was infinite loop)
Smoke: 154/154 PASS, no regressions

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2025-12-27 09:39:29 +09:00
1d24e9a106 feat(joinir): Phase 286 P2.3 + Phase 287 - Pattern9 Plan化 + Router table-driven
## Phase 286 P2.3: Pattern9 AccumConstLoop Plan化 PoC

- DomainPlan::Pattern9AccumConstLoop 追加
- PlanNormalizer::normalize_pattern9_accum_const_loop() 実装
  - PHI 2本(loop_var, acc_var)
  - const/var 両方 OK(sum = sum + 1 または sum = sum + i)
- Pattern9 は Pattern1 より優先(より具体的なパターン)
- Integration test: phase286_pattern9_frag_poc PASS (return: 3)
- Regression: quick 154 PASS

## Phase 287: Router table-driven Plan extraction

- PLAN_EXTRACTORS static table で Pattern6/7/4/9/1 を統一管理
- PlanExtractorEntry/PlanExtractorVariant 構造体追加
- try_plan_extractors() で ~100行 → 3行に集約
- メンテナンス性向上(新 Pattern 追加はテーブル1行追加のみ)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 02:38:09 +09:00
6656098c95 docs(phase-286): P2.2 完了 + P2.3 準備中の進捗記載
更新内容:
- Phase 286 README に P2.2  COMPLETE セクション追加
  - extractor helper化(extract_loop_increment_plan 統一)の内容
  - router helper化(lower_via_plan() 追加)の内容
  - 削減行数(~65行)と検証結果(quick 154 PASS, PoC 両方 PASS)

- 10-Now.md の Current Focus を Phase 286 P2.3 に更新
  - P2/P2.1/P2.2 の完了を時系列記載
  - Pattern9 (AccumConstLoop) を次の PoC 対象に決定

- CURRENT_TASK.md の Handoff(現状)を更新
  - P2.2 COMPLETE の記載(hygiene 内容 + 成果)
  - P2.3 準備中(Pattern9 PoC 準備)の1段落を追加

- pattern2-deferred.md 新規作成
  - Pattern2 の複雑性(break値再接続)を説明
  - 再開条件(after_bb PHI + compose::loop_ + Break wiring)を明文化
  - Phase 286 P2.2 として後続タスク化

関連 issues: Phase 286 JoinIR Line Absorption

🤖 Generated with Claude Code

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2025-12-26 02:03:34 +09:00