# IMP-04b Inventory (u1 artifact, issue #42) **Scope-lock totals** (per Stage 1 exit report): - V4 evidence template_ids: **32** (`tests/matching/v4_full32_result.yaml`) - Active catalog entries: **11** (`templates/phase_z2/catalog/frame_contracts.yaml` top-level keys) - Remaining: **21** = 2 WIP absorbs + 7 Track A VP + 12 Track B VP - Block dirs with `index.html`: 20 (10 active + 2 WIP + 7 TrackA + 1 non-target `1171281171`) - Block dirs without `index.html`: 12 (all Track B VP, all in V4 set) ## Active (11) — already in `frame_contracts.yaml` | template_id | frame_id | |---|---| | three_parallel_requirements | 1171281190 | | process_product_two_way | 1171281210 | | bim_issues_quadrant_four | 1171281193 | | three_persona_benefits | 1171281191 | | construction_goals_three_circle_intersection | 1171281189 | | construction_bim_three_usage | 1171281182 | | bim_dx_comparison_table | 1171281195 | | dx_sw_necessity_three_perspectives | 1171281198 | | info_management_what_how_when | 1171281179 | | sw_reality_three_emphasis | 1171281209 | | bim_current_problems_paired | 1171281194 | ## WIP absorbs (2) — `_WIP_FILES.md` + catalog add, atomic CAT+WIP pair | unit | template_id | frame_id | family partial present | |---|---|---|---| | u3 | app_sw_package_vs_solution | 1171281203 | yes (WIP) | | u4 | pre_construction_model_info_stacked | 1171281180 | yes (WIP) | ## Track A VP (7) — index.html present, catalog-add (CAT only) u5 = deep-review representative (per Stage 2). u6~u11 = checklist-shortened. | unit | template_id | frame_id | |---|---|---| | u5 | engn_sw_three_types | 1171281204 | | u6 | bim_adoption_central_split | 1171281208 | | u7 | bigroom_system_components | 1171281178 | | u8 | model_specialized_engn_sw | 1171281202 | | u9 | solution_engn_split_diagram | 1171281201 | | u10 | sw_development_cycle_six_nodes | 1171281172 | | u11 | overseas_bim_numbered_list | 1171281174 | ## Track B VP (12) — no index.html, contract-first CAT-only | unit | template_id | frame_id | |---|---|---| | u12 | design_method_distortion_three_col | 1171281197 | | u13 | compensation_complaint_map | 1171281177 | | u14 | compensation_complaint_side_card | 1171281176 | | u15 | commercial_sw_four_categories | 1171281205 | | u16 | sw_dependency_four_problems | 1171281206 | | u17 | field_effectiveness_five_elements | 1171281181 | | u18 | domestic_bim_actor_relations | 1171281175 | | u19 | engn_sw_development_domain_knowledge | 1171281173 | | u20 | policy_goals_plus_execution_requirements | 1171281192 | | u21 | policy_achievement_five_goals | 1171281213 | | u22 | industry_characteristics_three_col | 1171281212 | | u23 | industry_current_status_three_col | 1171281211 | ## Out-of-scope dir - `figma_to_html_agent/blocks/1171281171/` — texts.md only, not in V4 32 set (Stage 1). ## Gate (u24) - `frame_contracts.yaml` top-level keys == 32 (set-equal to V4 template_ids). - `_WIP_FILES.md` WIP allowlist count == 0. - `tests/test_family_contract_baseline.py` PASS. ## Pre-flight axes (file:line surface, per Stage 1) - `src/phase_z2_mapper.py:97-104` — `split_source` allow-list (`top_bullets` / `h3_subsections`) - `figma_to_html_agent/blocks/{frame_id}/{analysis.md, texts.md, index.html, assets/}` - `src/phase_z2_mapper.py:262-265` — `ITEM_PARSERS` (`pillar_item` / `quadrant_item` / `compare_row_2col_item`) - `scripts/smoke_frame_render.py:499-543` — argparse (template_id + `--render-to`) ## Evidence commands - `grep -E '^[a-z][a-z_]*:' templates/phase_z2/catalog/frame_contracts.yaml | sort -u` → 11 - `grep -E 'template_id:' tests/matching/v4_full32_result.yaml | awk '{print $2}' | sort -u | wc -l` → 32 - Block dirs with `index.html`: 20 (verified via `for d in figma_to_html_agent/blocks/1171281*; do test -f $d/index.html; done`)