feat(web): add IwoooS executive snapshot
All checks were successful
CD Pipeline / tests (push) Successful in 1m21s
Code Review / ai-code-review (push) Successful in 13s
CD Pipeline / build-and-deploy (push) Successful in 4m51s
CD Pipeline / post-deploy-checks (push) Successful in 1m56s

This commit is contained in:
Your Name
2026-06-01 14:38:41 +08:00
parent 2faa167ed2
commit afd279b89d
7 changed files with 660 additions and 0 deletions

View File

@@ -617,6 +617,7 @@ def validate(root: Path) -> None:
"s2_150_iwooos_topology_path_explorer",
"s2_151_iwooos_topology_intelligence_deck",
"s2_152_iwooos_decision_runway",
"s2_153_iwooos_executive_snapshot",
]
assert_equal(
"progress_delta_ledger.delta_ids",
@@ -1434,6 +1435,43 @@ def validate(root: Path) -> None:
len(expected_iwooos_source_control_primary_readiness_item_ids),
)
assert_false("iwooos_projection.summary.action_buttons_allowed", iwooos_projection["summary"]["action_buttons_allowed"])
assert_true(
"iwooos_projection.summary.executive_snapshot_first_layer",
iwooos_projection["summary"]["executive_snapshot_first_layer"],
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_card_count",
iwooos_projection["summary"]["executive_snapshot_card_count"],
4,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_axis_count",
iwooos_projection["summary"]["executive_snapshot_axis_count"],
3,
)
assert_true(
"iwooos_projection.summary.executive_snapshot_above_focus_deck",
iwooos_projection["summary"]["executive_snapshot_above_focus_deck"],
)
assert_true(
"iwooos_projection.summary.executive_snapshot_explains_done_next_blocked",
iwooos_projection["summary"]["executive_snapshot_explains_done_next_blocked"],
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_runtime_gate_count",
iwooos_projection["summary"]["executive_snapshot_runtime_gate_count"],
0,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_owner_response_received_count",
iwooos_projection["summary"]["executive_snapshot_owner_response_received_count"],
0,
)
assert_equal(
"iwooos_projection.summary.executive_snapshot_owner_response_accepted_count",
iwooos_projection["summary"]["executive_snapshot_owner_response_accepted_count"],
0,
)
assert_equal(
"iwooos_projection.summary.all_product_coverage_snapshot_scope_count",
iwooos_projection["summary"]["all_product_coverage_snapshot_scope_count"],
@@ -12011,6 +12049,154 @@ def validate(root: Path) -> None:
f"iwooos_projection.first_progress_unlock_path_steps.{item['step_id']}.not_authorization",
item["not_authorization"],
)
expected_executive_snapshot_card_ids = [
"visibleWork",
"assetMesh",
"nextBlocker",
"runtimeLock",
]
executive_snapshot_cards = iwooos_projection["executive_snapshot_cards"]
assert_equal(
"iwooos_projection.executive_snapshot_cards.ids",
[item["card_id"] for item in executive_snapshot_cards],
expected_executive_snapshot_card_ids,
)
assert_equal(
"iwooos_projection.executive_snapshot_cards.display_order",
[item["display_order"] for item in executive_snapshot_cards],
list(range(1, len(expected_executive_snapshot_card_ids) + 1)),
)
for item in executive_snapshot_cards:
card_id = item["card_id"]
assert_equal(
f"iwooos_projection.executive_snapshot_cards.{card_id}.display_mode",
item["display_mode"],
"first_screen_executive_snapshot",
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.execution_action_button_allowed",
item["execution_action_button_allowed"],
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.runtime_gate_opened",
item["runtime_gate_opened"],
)
assert_false(
f"iwooos_projection.executive_snapshot_cards.{card_id}.runtime_execution_authorized",
item["runtime_execution_authorized"],
)
assert_true(
f"iwooos_projection.executive_snapshot_cards.{card_id}.not_authorization",
item["not_authorization"],
)
runtime_lock_card = next(item for item in executive_snapshot_cards if item["card_id"] == "runtimeLock")
for flag in ["scan_authorized", "host_change_authorized", "source_control_mutation_authorized"]:
assert_false(
f"iwooos_projection.executive_snapshot_cards.runtimeLock.{flag}",
runtime_lock_card[flag],
)
next_blocker_card = next(item for item in executive_snapshot_cards if item["card_id"] == "nextBlocker")
for count_key in ["owner_response_received_count", "owner_response_accepted_count"]:
assert_equal(
f"iwooos_projection.executive_snapshot_cards.nextBlocker.{count_key}",
next_blocker_card[count_key],
0,
)
expected_executive_snapshot_axis_ids = [
"framework",
"evidence",
"runtime",
]
executive_snapshot_axes = iwooos_projection["executive_snapshot_axes"]
assert_equal(
"iwooos_projection.executive_snapshot_axes.ids",
[item["axis_id"] for item in executive_snapshot_axes],
expected_executive_snapshot_axis_ids,
)
assert_equal(
"iwooos_projection.executive_snapshot_axes.display_order",
[item["display_order"] for item in executive_snapshot_axes],
list(range(1, len(expected_executive_snapshot_axis_ids) + 1)),
)
assert_equal(
"iwooos_projection.executive_snapshot_axes.percents",
[item["percent"] for item in executive_snapshot_axes],
[88, 0, 0],
)
for item in executive_snapshot_axes:
axis_id = item["axis_id"]
assert_equal(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.display_mode",
item["display_mode"],
"first_screen_executive_snapshot_axis",
)
assert_false(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.runtime_delta",
item["runtime_delta"],
)
assert_true(
f"iwooos_projection.executive_snapshot_axes.{axis_id}.not_authorization",
item["not_authorization"],
)
for text in [
'data-testid="iwooos-executive-snapshot-board"',
'data-testid="iwooos-executive-snapshot-overview"',
'data-testid="iwooos-executive-snapshot-axes-grid"',
'data-testid="iwooos-executive-snapshot-cards-grid"',
'data-testid="iwooos-executive-snapshot-boundaries"',
"IwoooSExecutiveSnapshotBoard",
"IwoooSExecutiveSnapshotCard",
"IwoooSExecutiveSnapshotAxis",
"iwooosExecutiveSnapshotCards",
"iwooosExecutiveSnapshotAxes",
"iwooosExecutiveSnapshotBoundaries",
]:
assert_text_contains(
"iwooos_page.executive_snapshot",
iwooos_projection_page,
text,
)
for card_id in expected_executive_snapshot_card_ids:
assert_text_contains(
f"iwooos_page.executive_snapshot_card_{card_id}",
iwooos_projection_page,
f"data-testid={{`iwooos-executive-snapshot-card-${{item.key}}`}}",
)
for axis_id in expected_executive_snapshot_axis_ids:
assert_text_contains(
f"iwooos_page.executive_snapshot_axis_{axis_id}",
iwooos_projection_page,
f"data-testid={{`iwooos-executive-snapshot-axis-${{item.key}}`}}",
)
assert_text_before(
"iwooos_page.executive_snapshot_before_focus_deck",
iwooos_projection_page,
"<IwoooSExecutiveSnapshotBoard />",
"<IwoooSFocusDeckBoard />",
)
for text in [
"iwooos_executive_snapshot_first_layer=true",
"iwooos_executive_snapshot_card_count=4",
"iwooos_executive_snapshot_axis_count=3",
"iwooos_executive_snapshot_above_focus_deck=true",
"iwooos_executive_snapshot_explains_done_next_blocked=true",
"iwooos_executive_snapshot_execution_action_buttons_allowed=false",
"iwooos_executive_snapshot_runtime_gate_count=0",
"iwooos_executive_snapshot_owner_response_received_count=0",
"iwooos_executive_snapshot_owner_response_accepted_count=0",
"iwooos_executive_snapshot_scan_authorized=false",
"iwooos_executive_snapshot_host_change_authorized=false",
"iwooos_executive_snapshot_source_control_mutation_authorized=false",
"runtime_execution_authorized=false",
"active_runtime_gate_count=0",
"action_buttons_allowed=false",
"not_authorization=true",
]:
assert_text_contains(
"iwooos_page.executive_snapshot_boundary",
iwooos_projection_page,
text,
)
assert_text_contains(
"iwooos_page.focus_deck_testid",
iwooos_projection_page,
@@ -13201,6 +13387,70 @@ def validate(root: Path) -> None:
list(web_messages_en["iwooos"]["commandMap"]["items"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot",
list(web_messages_zh["iwooos"].keys()),
"executiveSnapshot",
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot",
list(web_messages_en["iwooos"].keys()),
"executiveSnapshot",
)
for key in ["eyebrow", "title", "subtitle", "axes", "cards", "boundaryTitle", "boundaryIntro"]:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.keys",
list(web_messages_zh["iwooos"]["executiveSnapshot"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.keys",
list(web_messages_en["iwooos"]["executiveSnapshot"].keys()),
key,
)
for key in expected_executive_snapshot_axis_ids:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.axes",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["axes"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.axes",
list(web_messages_en["iwooos"]["executiveSnapshot"]["axes"].keys()),
key,
)
assert_contains(
f"web_messages.zh-TW.iwooos.executiveSnapshot.axes.{key}",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["axes"][key].keys()),
"label",
)
assert_contains(
f"web_messages.en.iwooos.executiveSnapshot.axes.{key}",
list(web_messages_en["iwooos"]["executiveSnapshot"]["axes"][key].keys()),
"label",
)
for key in expected_executive_snapshot_card_ids:
assert_contains(
"web_messages.zh-TW.iwooos.executiveSnapshot.cards",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["cards"].keys()),
key,
)
assert_contains(
"web_messages.en.iwooos.executiveSnapshot.cards",
list(web_messages_en["iwooos"]["executiveSnapshot"]["cards"].keys()),
key,
)
for field in ["title", "body"]:
assert_contains(
f"web_messages.zh-TW.iwooos.executiveSnapshot.cards.{key}",
list(web_messages_zh["iwooos"]["executiveSnapshot"]["cards"][key].keys()),
field,
)
assert_contains(
f"web_messages.en.iwooos.executiveSnapshot.cards.{key}",
list(web_messages_en["iwooos"]["executiveSnapshot"]["cards"][key].keys()),
field,
)
assert_contains(
"web_messages.zh-TW.iwooos.focusDeck",
list(web_messages_zh["iwooos"].keys()),