kmlee1
bac13c09c4
feat(step2): chained adapter for Stage 0 normalize (IMP-02 #2)
- Add _stage0_chained_adapter() helper near parse_mdx() chaining
mdx_normalizer.normalize_mdx_content + section_parser.extract_major_sections
+ section_parser.extract_conclusion_text → reconstructed MdxSection list
- PHASE_Z_STAGE0_ADAPTER_ENABLED env flag, default OFF (canary, matches
PHASE_Z_B4_SOURCE_SHAPE_ENABLED / PHASE_Z_B4_GATEKEEPER pattern)
- Section ID reconstruction priority: raw_heading (pre-scan raw MDX
`## N. Title` heading → title→num map lookup) → raw_heading_inline
→ order_fallback. All paths logged in id_reconstruction_log
- 5 hard fallback enums: ADAPTER_EXCEPTION / NO_USABLE_SECTIONS /
MISSING_INVALID_IDS / DUPLICATE_IDS / NON_POSITIVE_SECTION_NUM
- Additive step02_normalized.json field stage0_adapter_diagnostics
(enabled / used / fallback_reason / id_reconstruction_log /
adapter_counts / diff_vs_legacy / legacy_counts)
- Preserve Step 2 existing 7 fields (slide_title / slide_footer /
sections_count / sections / orphans / details) — additive only
- Defer mdx_normalizer / section_parser imports so legacy default-OFF
path does not depend on those modules
- V4 / align_sections_to_v4_granularity / composition / AI/Kei /
frame selection / status semantics unchanged
env OFF: legacy path PASS on MDX 03, no regression
env=1 : adapter path activates, IDs 03-1/03-2, raw_heading reuse
triggered, downstream composition_planner abort surfaces
as canary finding (out of scope for IMP-02)
Refs Gitea #2 (IMP-02 A-1 Stage 0 normalize chained adapter)
2026-05-13 00:22:57 +09:00
..
2026-03-24 17:25:47 +09:00
2026-04-15 16:39:50 +09:00
2026-04-17 13:56:03 +09:00
2026-05-08 09:47:58 +09:00
2026-04-15 16:39:50 +09:00
2026-03-31 08:38:06 +09:00
2026-03-31 08:37:05 +09:00
2026-05-08 09:47:58 +09:00
2026-03-24 17:25:47 +09:00
2026-04-06 05:00:52 +09:00
2026-04-06 05:00:52 +09:00
2026-04-06 05:00:52 +09:00
2026-03-31 08:37:05 +09:00
2026-04-07 04:39:02 +09:00
2026-05-08 09:47:58 +09:00
2026-04-06 05:00:52 +09:00
2026-03-31 08:37:05 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-03-25 19:15:28 +09:00
2026-04-07 06:00:18 +09:00
2026-05-04 17:40:21 +09:00
2026-05-08 09:47:11 +09:00
2026-05-07 05:26:57 +09:00
2026-05-04 08:21:28 +09:00
2026-05-07 05:26:57 +09:00
2026-05-04 08:21:28 +09:00
2026-05-13 00:22:57 +09:00
2026-05-07 05:26:57 +09:00
2026-05-04 08:21:28 +09:00
2026-05-04 08:21:28 +09:00
2026-04-15 16:39:50 +09:00
2026-05-08 09:47:58 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-04-15 16:39:50 +09:00
2026-03-26 13:06:21 +09:00
2026-04-15 16:39:50 +09:00
2026-03-25 18:40:20 +09:00
2026-04-15 16:39:50 +09:00