{"schema":"bpaas.pack.bundle.v1","tab_id":"dashboard","toc":"hub.neit.toc.dashboard.v1.json","cmr":"hub.neit.toc.dashboard.v1.json","built_at":"2026-08-07T00:30:02Z","naming":"HUB_NEXT_BP_FILE_NAMING.standing","files":{"hub.neit.arch.surface.v1.json":{"id":"hub.neit.dashboard.ARCH.surface.v1","schema":"hub.pack.arch.surface.v1","status":"ALIGNED","aligned_at":"2026-08-06T06:45:27Z","tab_id":"dashboard","bp_id":"bp.hub.neit.dashboard.v1","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing","surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"pack_must":["domain contracts and domain personas only","use var(--select-view) / var(--select-execute) and shared classes","fill shell slots only"],"pack_must_not":["ship persona.product.* files","set --workbench-width or .shell-body grid","redefine select-view / select-execute hex or hover chrome","own brand or product color SOT"],"css":"pack-dashboard.css","js":"pack.js (dashboard mount + router)","verify":{"product_files_in_pack":false,"shared_loaded_from":"bpaas/shared/","select_chrome":"bpaas/shared/hub.shared.chrome.select.v1.css"}},"hub.neit.arch.surface.v1.md":"# Pack arch — dashboard\n\n**ALIGNED** · `2026-08-06T06:45:27Z` · lock `HUB_SURFACE_RUNTIME_FOUR_STAGE.standing`\n\n```text\nshell → shared → pack → active\n```\n\n| Stage | This pack |\n|-------|-----------|\n| Shell | Does not own — `shell.css` |\n| Shared | Cites `bpaas/shared/` only |\n| Pack | Domain body: `bp.hub.neit.dashboard.v1/` |\n| Active | Visibility/permissions — not this folder |\n\n**Must not:** product personas, grid width, brand/color SOT, solid-hover redefine.\n\nMachine: `hub.neit.arch.surface.v1.json`\n","hub.neit.blocks.dashboard.v1.json":{"registry_id":"hub.neit.dashboard.blocks.v1","stable_entity_id":"urn:valos:registry:hub.neit.dashboard.blocks.v1","blueprint_id":"hub.neit.dashboard.v1","pack_id":"hub.neit.v1","version":"1.0.0","status":"REGISTERED","gate":"PRE_MOVE — all blocks must remain registered before implementation lane","note":"Block registry only. Intelligence on personas. Populate via command_id → pulse/genie.","shell":{"geometry":"PLATFORM_SHELL_BASE","slots":["tab_rail","workbench","ops_screen","inspector"]},"blocks":[{"block_id":"hot_needs_attention","stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","zone":"workbench","title":"Needs My Attention (HOT)","selection_source":"hot","selection_contract":"data/contracts/hub.neit.opcontext.hot.v1.json","list_command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","drives_inspector":true,"persona_id":null,"status":"placeholder","block_data_contract_id":"hub.neit.opcontext.hot.v1"},{"block_id":"scoreboard","stable_entity_id":"urn:valos:block:msp.scoreboard.v1","zone":"ops_A","title":"Scoreboard Heroes","selection_sources":["hero","support"],"selection_contracts":["data/contracts/hub.neit.opcontext.hero.v1.json","data/contracts/hub.neit.opcontext.support.v1.json"],"persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","heroes":["standing","cases","revenue"],"hero_command_ids":["cmd.msp.hero.standing.v1","cmd.msp.hero.cases.v1","cmd.msp.hero.revenue.v1"],"drives_inspector":true,"status":"placeholder","block_data_contract_id":"selection.hero.v1"},{"block_id":"quick_actions","stable_entity_id":"urn:valos:block:msp.quick_actions.v1","zone":"ops_B","title":"Quick Actions","selection_source":"quick_action","selection_contract":"data/contracts/hub.neit.opcontext.quick_action.v1.json","ops_only":true,"action_command_ids":["cmd.msp.matter.create.v1","cmd.msp.report.aging.v1","cmd.msp.hot.clear_local.v1","cmd.msp.hot.client.focus.v1","cmd.msp.surface.client_cc.v1","cmd.msp.surface.financials.v1","cmd.msp.surface.fleet_health.v1","cmd.msp.report.portfolio.v1"],"select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","drives_inspector":true,"status":"placeholder","block_data_contract_id":"selection.quick_action.v1"},{"block_id":"msp_estate","stable_entity_id":"urn:valos:block:msp.estate.v1","zone":"ops_C","title":"MSP Estate","selection_source":"estate","selection_contract":"data/contracts/hub.neit.opcontext.estate.v1.json","persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","batch_command_id":"cmd.msp.estate.pack.v1","dim_command_ids_sot":"hub.neit.persona.dashboard.estate.v1.rules.json#dims","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","drives_inspector":true,"not":"rmm_asset_inventory_census","status":"placeholder","block_data_contract_id":"selection.estate.v1"},{"block_id":"fact_stream","stable_entity_id":"urn:valos:block:msp.fact_stream.v1","zone":"ops_D","title":"Fact Stream","selection_source":"stream","selection_contract":"data/contracts/hub.neit.opcontext.stream.v1.json","list_command_id":"cmd.msp.facts.stream.tail.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","drives_inspector":true,"limit":10,"status":"placeholder","block_data_contract_id":"hub.neit.opcontext.stream.v1"},{"block_id":"inspector","stable_entity_id":"urn:valos:block:msp.inspector.v1","zone":"inspector","title":"Inspector","driven_by":"dashboard_selection","selection_sources":["hot","hero","support","estate","quick_action","stream"],"selection_envelope":"data/contracts/hub.neit.opcontext.base.v1.json","ui_model":"data_contract_pages","pages":[{"page_id":"overview","contract_id":"inspect.overview.v1","stable_entity_id":"urn:valos:contract:inspect.overview.v1"},{"page_id":"dimensions","contract_id":"inspect.dimensions.v1","stable_entity_id":"urn:valos:contract:inspect.dimensions.v1"},{"page_id":"evidence","contract_id":"inspect.evidence.v1","command_id":"cmd.msp.inspect.evidence.v1","stable_entity_id":"urn:valos:contract:inspect.evidence.v1"},{"page_id":"log","contract_id":"inspect.log.v1","command_id":"cmd.msp.inspect.log.v1","stable_entity_id":"urn:valos:contract:inspect.log.v1"}],"rule":"Always remount to currentSelection from any block","status":"placeholder"}],"selection_rule":{"id":"inspector_follows_dashboard_selection","text":"Inspector always shows the current selection from hero | support | estate | quick_action | stream | hot","command_id":"cmd.msp.inspect.selection.v1"}},"hub.neit.blueprint.dashboard.v1.json":{"blueprint_id":"hub.neit.dashboard.v1","stable_entity_id":"urn:valos:blueprint:hub.neit.dashboard.v1","pack_id":"hub.neit.v1","title":"Master MSP Dashboard","version":"4.0.0","status":"ACTIVE","tab_id":"dashboard","description":"Dashboard tab · BPaaS flat pack · Workbench (HOT) → Ops (A heroes · B actions · C estate · D stream) → Inspector. Same framework as Actor: TOC load, shared product personas, domain personas, dc.* / selection.* contracts.","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","layout":"BPAAS / BPID / files (flat)","toc":"hub.neit.toc.dashboard.v1.json","registries":{"blocks":"hub.neit.blocks.dashboard.v1.json","commands":"hub.neit.commands.dashboard.v1.json"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"guide_personas":{"brand":{"persona_id":"hub.shared.persona.brand.v1","rules_source":"bpaas/shared/hub.shared.persona.brand.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.brand.v1.md","layer":"shared"},"color":{"persona_id":"hub.shared.persona.color.v1","rules_source":"bpaas/shared/hub.shared.persona.color.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.color.v1.md","layer":"shared","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css"},"shell":{"persona_id":"hub.shared.persona.shell.v1","rules_source":"bpaas/shared/hub.shared.persona.shell.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.shell.v1.md","layer":"shared","note":"Geometry tokens live in shell.css; persona owns scroll/pane roles"},"bind":{"persona_id":"hub.shared.persona.bind.v1","rules_source":"bpaas/shared/hub.shared.persona.bind.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.bind.v1.md","layer":"shared"}},"selection_contracts":{"envelope":"hub.neit.opcontext.base.v1.json","hot":"hub.neit.opcontext.hot.v1.json","hero":"hub.neit.opcontext.hero.v1.json","support":"hub.neit.opcontext.support.v1.json","estate":"hub.neit.opcontext.estate.v1.json","quick_action":"hub.neit.opcontext.quick_action.v1.json","stream":"hub.neit.opcontext.stream.v1.json"},"page_contracts":{"overview":"hub.neit.dc.dashboard.overview.v1.json","dimensions":"hub.neit.dc.dashboard.dimensions.v1.json","evidence":"hub.neit.dc.dashboard.evidence.v1.json","fact_log":"hub.neit.dc.dashboard.fact_log.v1.json","metadata":"hub.neit.dc.dashboard.metadata.v1.json"},"personas":{"scoreboard":{"persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","skill_md":"hub.neit.persona.dashboard.scoreboard.v1.md","owns":["hero_order","heroes","supports","hero_and_dim_command_ids"]},"estate":{"persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"hub.neit.persona.dashboard.estate.v1.rules.json","skill_md":"hub.neit.persona.dashboard.estate.v1.md","owns":["estate_dims","estate_command_ids","catalog_order"],"catalog_status":"provisional","not":"rmm_asset_inventory_census"}},"skins":{"default":"baseline","fallback":"baseline","catalog":["baseline","hud_v0"]},"shell_map":{"workbench":"hot_needs_attention","ops_screen":"visual_management_board","inspector":"selection_detail"},"layout_ops":{"A":"scoreboard_heroes_full_width","B":"quick_actions_tall_left","C":"msp_estate_compact_right_top","D":"fact_stream_same_width_as_C_scrolls","scroll":{"ops_pane":false,"fact_stream":true,"workbench":true,"inspector":"tab_pages_only"}},"hierarchy":[{"layer":"workbench","question":"What needs my attention right now?"},{"layer":"scoreboard","question":"What is the overall health of the fleet and the business?"},{"layer":"quick_actions","question":"What can I do immediately?"},{"layer":"msp_estate","question":"What are the current estate facts?"},{"layer":"fact_stream","question":"What are the last 10 things that happened?"},{"layer":"inspector","question":"Tell me everything about this HOT item (by data contract page)"}],"zones":{"workbench":{"id":"hot_needs_attention","title":"Needs My Attention","scope":"HOT only","item_types":["hot_client","hot_matter","critical_rmm_edr","hot_signal"],"select_drives":["inspector"],"command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","status":"placeholder"},"ops":{"id":"visual_management_board","order":["scoreboard","quick_actions","msp_estate","fact_stream"],"A_scoreboard":{"id":"scoreboard","title":"Scoreboard","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","heroes":[{"id":"standing","label":"Good Standing","command_id":"cmd.msp.hero.standing.v1","supports":[{"dim":"clients_good","command_id":"cmd.msp.dim.clients_good.v1"},{"dim":"clients_attention","command_id":"cmd.msp.dim.clients_attention.v1"},{"dim":"clients_critical","command_id":"cmd.msp.dim.clients_critical.v1"},{"dim":"fleet_avg_standing","command_id":"cmd.msp.dim.fleet_avg_standing.v1"}]},{"id":"cases","label":"Cases","command_id":"cmd.msp.hero.cases.v1","supports":[{"dim":"open_matters_critical","command_id":"cmd.msp.dim.open_matters_critical.v1"},{"dim":"open_matters_aging_gt_24h","command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1"},{"dim":"matters_resolved_24h","command_id":"cmd.msp.dim.matters_resolved_24h.v1"},{"dim":"matters_waiting_on_client","command_id":"cmd.msp.dim.matters_waiting_on_client.v1"}]},{"id":"revenue","label":"Revenue","command_id":"cmd.msp.hero.revenue.v1","internal":true,"supports":[{"dim":"mrr_total","command_id":"cmd.msp.dim.mrr_total.v1"},{"dim":"gross_margin_pct","command_id":"cmd.msp.dim.gross_margin_pct.v1"},{"dim":"overdue_invoices_total","command_id":"cmd.msp.dim.overdue_invoices_total.v1"},{"dim":"tech_utilization_pct","command_id":"cmd.msp.dim.tech_utilization_pct.v1"}]}]},"B_quick_actions":{"id":"quick_actions","title":"Quick Actions","ops_only":true,"layout":"tall_left","actions":[{"id":"create_matter","label":"Create Matter","primary":true,"command_id":"cmd.msp.matter.create.v1"},{"id":"aging_report","label":"Aging report","command_id":"cmd.msp.report.aging.v1"},{"id":"clear_filters","label":"Clear filters / Hot","command_id":"cmd.msp.hot.clear_local.v1"},{"id":"hot_client","label":"Hot client","command_id":"cmd.msp.hot.client.focus.v1"},{"id":"client_cc","label":"Client CC board","command_id":"cmd.msp.surface.client_cc.v1"},{"id":"financials","label":"View Financials / NEIT","command_id":"cmd.msp.surface.financials.v1"},{"id":"fleet_health","label":"Fleet Health / RMM","command_id":"cmd.msp.surface.fleet_health.v1"},{"id":"portfolio","label":"Run Portfolio Report","command_id":"cmd.msp.report.portfolio.v1"}]},"C_msp_estate":{"id":"msp_estate","title":"MSP Estate","note":"Portfolio health — SOT hub.neit.persona.dashboard.estate.v1 (not inventory census)","persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","batch_command_id":"cmd.msp.estate.pack.v1","cells_sot":"hub.neit.persona.dashboard.estate.v1.rules.json#dims","cells":[{"key":"managed_clients","command_id":"cmd.msp.estate.managed_clients.v1"},{"key":"endpoints_online","command_id":"cmd.msp.estate.endpoints_online.v1"},{"key":"agreements_active","command_id":"cmd.msp.estate.agreements_active.v1"},{"key":"sla_compliance_pct","command_id":"cmd.msp.estate.sla_compliance.v1"},{"key":"open_tickets","command_id":"cmd.msp.estate.open_tickets.v1"},{"key":"tickets_breaching","command_id":"cmd.msp.estate.tickets_breaching.v1"},{"key":"backup_success_pct","command_id":"cmd.msp.estate.backup_success.v1"},{"key":"edr_coverage_pct","command_id":"cmd.msp.estate.edr_coverage.v1"},{"key":"patch_compliance_pct","command_id":"cmd.msp.estate.patch_compliance.v1"},{"key":"critical_alerts","command_id":"cmd.msp.estate.critical_alerts.v1"},{"key":"renewals_90d","command_id":"cmd.msp.estate.renewals_90d.v1"},{"key":"mrr_at_risk","command_id":"cmd.msp.estate.mrr_at_risk.v1"}]},"D_fact_stream":{"id":"fact_stream","title":"Fact Stream","limit":10,"command_id":"cmd.msp.facts.stream.tail.v1","filter_optional":"SHOW_ONLY_HOT","row_fields":["age","kind","title","summary","work_type","client","status","status_tone","ref","actor","hot","command_id","fact_id"],"note":"Rich fact rows · same width as estate · only ops scroller"}},"inspector":{"id":"selection_detail","title":"Inspector","driven_by":"dashboard_selection","selection_sources":["hot","hero","support","estate","quick_action","stream"],"rule":"Inspector always remounts to current selection from any dashboard block","select_command_id":"cmd.msp.inspect.selection.v1","ui_model":"data_contract_pages","not":"horizontal_wheel","not_hot_only":true,"by_type":{"client":{"command_id":"cmd.msp.inspect.client.v1","fields":["standing","open_matters","rmm","financials","cc","work_type"]},"matter":{"command_id":"cmd.msp.inspect.matter.v1","fields":["title","age","assignee","status","client","history"]},"alert":{"command_id":"cmd.msp.inspect.alert.v1","fields":["signal","source","status","device","detail","work_type"]}},"pages":[{"id":"overview","contract_id":"inspect.overview.v1","command_id":"type_root"},{"id":"dimensions","contract_id":"inspect.dimensions.v1","command_id":"type_root"},{"id":"evidence","contract_id":"inspect.evidence.v1","command_id":"cmd.msp.inspect.evidence.v1"},{"id":"log","contract_id":"inspect.log.v1","command_id":"cmd.msp.inspect.log.v1"}]}},"interactions_later":{"status":"SPEC","checklist":"docs/MASTER_IMPLEMENTATION_CHECKLIST.md#7-ops-interactions-later","drag_drop":{"stream_to_hot":"cmd.msp.hot.promote_from_stream.v1","stream_attach_hot":"cmd.msp.hot.attach_fact.v1"},"create_signal":{"flow":"highlight_source → quick_action_or_arm → popup_create_signal_card → submit","arm":"cmd.msp.ui.signal_arm.v1","source_hero":"cmd.msp.signal.source.hero.v1","source_dim":"cmd.msp.signal.source.dim.v1","source_estate":"cmd.msp.signal.source.estate.v1","compose_open":"cmd.msp.signal.compose.open.v1","create":"cmd.msp.signal.create.v1","disarm":"cmd.msp.ui.signal_disarm.v1","from_stream":"cmd.msp.signal.create_from_stream.v1","promote_to_hot":"cmd.msp.hot.promote_from_signal.v1"},"pointer":{"left_stream_select":"cmd.msp.facts.stream.select.v1","double_open_detail":"cmd.msp.ui.open_detail.v1","context_hero":"cmd.msp.ui.context.hero.v1","context_estate":"cmd.msp.ui.context.estate.v1","context_stream":"cmd.msp.ui.context.stream.v1","context_hot":"cmd.msp.ui.context.hot.v1","hover_preview":"cmd.msp.ui.hover.preview.v1"}},"placeholder_policy":{"bind_later":true,"no_fake_production_truth":true,"show_seed_until_bound":true,"command_id_is_run_stub":true,"stable_entity_id_on_real_items":true,"populate_via":"pulse_or_genie"},"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing","pack_must_not":["ship persona.product.*","set shell grid or --workbench-width","redefine select-view / select-execute chrome"]},"hub.neit.bundle.dashboard.v1.json":{"schema":"bpaas.pack.bundle.v1","tab_id":"dashboard","toc":"hub.neit.toc.dashboard.v1.json","built_at":"2026-08-06T06:45:27Z","shared_source":"bpaas/shared/","surface_runtime":"shell>shared>pack>active","arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing","note":"Product personas not embedded — loader merges L2 shared","files":{"hub.neit.toc.dashboard.v1.json":{"contract_id":"hub.neit.toc.dashboard.v1","stable_entity_id":"urn:valos:pack:hub.neit.toc.dashboard.v1","version":"1.1.1","status":"ACTIVE","name":"TOC","name_long":"Checklist · Manifest · Register (table of contents)","role":"pack_toc","layout":"BPAAS / BPID / files (flat)","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","subject":{"blueprint_id":"hub.neit.dashboard.v1","bp_id":"bp.hub.neit.dashboard.v1","tab_id":"dashboard","pack_id":"hub.neit.v1"},"naming":{"data_contracts":"hub.neit.dc.dashboard.* and selection.* — all blocks/tabs are data contracts","no_inspect_prefix":"inspect.* retired for page ids — use hub.neit.dc.dashboard.*","shared_product":"persona.product.brand|shell|color|bind — same as every Hub tab","projection":"Board values project from persona.projection + hub.neit.dc.dashboard.hot|stream|actions — not pack.js tables"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"files":[{"file":"hub.neit.toc.dashboard.v1.json","role":"toc"},{"file":"hub.neit.dc.dashboard.actions.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.dimensions.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.evidence.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.fact_log.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.hot.queue.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.metadata.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.overview.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.stream.v1.json","role":"data_contract_block"},{"file":"hub.neit.blocks.dashboard.v1.json","role":"blocks_registry"},{"file":"hub.neit.commands.dashboard.v1.json","role":"commands_registry"},{"file":"hub.neit.blueprint.dashboard.v1.json","role":"blueprint"},{"file":"hub.neit.persona.dashboard.estate.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.estate.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.opcontext.base.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.estate.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hero.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hot.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.quick_action.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.stream.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.support.v1.json","role":"data_contract_selection"},{"file":"hub.neit.arch.surface.v1.json","role":"arch_compliance"},{"file":"hub.neit.arch.surface.v1.md","role":"arch_compliance_human"}],"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"hub.neit.dc.dashboard.actions.v1.json":{"contract_id":"hub.neit.dc.dashboard.actions.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.actions.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"quick_actions","title":"Quick Actions","selection_contract":"selection.quick_action.v1","note":"Action catalog for B · Quick Actions. Labels + command_id — not hardcoded in pack.js.","actions":[{"id":"create_matter","label":"Create Matter","command_id":"cmd.msp.matter.create.v1","primary":true,"hero":true},{"id":"aging_report","label":"Aging report","command_id":"cmd.msp.report.aging.v1"},{"id":"clear_hot","label":"Clear filters / Hot","command_id":"cmd.msp.hot.clear_local.v1"},{"id":"hot_client","label":"Hot client","command_id":"cmd.msp.hot.client.focus.v1"},{"id":"client_cc","label":"Client CC board","command_id":"cmd.msp.surface.client_cc.v1"},{"id":"financials","label":"View Financials / NEIT","command_id":"cmd.msp.surface.financials.v1"},{"id":"fleet_health","label":"Fleet Health / RMM","command_id":"cmd.msp.surface.fleet_health.v1"},{"id":"portfolio_report","label":"Run Portfolio Report","command_id":"cmd.msp.report.portfolio.v1"}]},"hub.neit.dc.dashboard.dimensions.v1.json":{"contract_id":"hub.neit.dc.dashboard.dimensions.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.dimensions.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"dimensions","title":"Dashboard tab — Dimensions","command_id":"cmd.msp.inspect.dimensions.v1","note":"Tab page data contract — selection field subset"},"hub.neit.dc.dashboard.evidence.v1.json":{"contract_id":"hub.neit.dc.dashboard.evidence.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.evidence.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"evidence","title":"Dashboard tab — Evidence","command_id":"cmd.msp.inspect.evidence.v1","note":"Tab page data contract — evidence bind later"},"hub.neit.dc.dashboard.fact_log.v1.json":{"contract_id":"hub.neit.dc.dashboard.fact_log.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.fact_log.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"fact_log","title":"Dashboard tab — Fact Log","command_id":"cmd.msp.inspect.fact_log.v1","note":"Tab page data contract — business facts only"},"hub.neit.dc.dashboard.hot.queue.v1.json":{"contract_id":"hub.neit.dc.dashboard.hot.queue.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.hot.queue.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"hot_needs_attention","title":"HOT · Needs My Attention queue","command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","selection_contract":"hub.neit.opcontext.hot.v1","projection_mode":"pack_sample_until_command_binds","note":"Queue items live here (pack SOT) — not hardcoded in pack.js. Live list binds later via command.","items":[{"id":"hot-1","type":"client","work_type":"request","badge":"CLIENT","title":"Acme Manufacturing","sub":"Attention · 3 open matters","tag":"HOT","status":"attention","detail":{"standing":"Attention","open_matters":"3","rmm":"12 / 14 online · 1 alert","financials":"MRR $4,200 · GM 58%","cc":"acme.valtience.com"}},{"id":"hot-2","type":"matter","work_type":"incident","badge":"MATTER","title":"VPN outage — site B","sub":"Critical · aging 31h","tag":"CRITICAL","status":"critical","detail":{"age":"31h","assignee":"J. Rivera","history":"Opened → Escalated → Client pinged","client":"Acme Manufacturing","status":"Critical"}},{"id":"hot-3","type":"alert","work_type":"security","badge":"RMM","title":"EDR threat — WS-0142","sub":"Active · quarantined","tag":"ALERT","status":"critical","detail":{"signal":"EDR · malware.generic","source":"SentinelOne","status":"Quarantined","device":"WS-0142 · Northwind","detail":"User clicked phish · isolate ok"}},{"id":"hot-4","type":"client","work_type":"general","badge":"CLIENT","title":"Northwind Traders","sub":"Critical standing","tag":"CRITICAL","status":"critical","detail":{"standing":"Critical","open_matters":"5","rmm":"88 / 96 online · 4 alerts","financials":"MRR $9,800 · overdue $3,100","cc":"northwind.valtience.com"}},{"id":"hot-5","type":"matter","work_type":"backup","badge":"MATTER","title":"Backup failed — NAS-02","sub":"Gate · waiting client","tag":"GATE","status":"attention","detail":{"age":"14h","assignee":"Unassigned","history":"Fail ×3 · waiting storage auth","client":"Contoso Ltd","status":"Waiting on client"}}]},"hub.neit.dc.dashboard.metadata.v1.json":{"contract_id":"hub.neit.dc.dashboard.metadata.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.metadata.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"metadata","title":"Dashboard tab — Metadata","command_id":"cmd.msp.inspect.metadata.v1","note":"Selection package full dump for dashboard selections"},"hub.neit.dc.dashboard.overview.v1.json":{"contract_id":"hub.neit.dc.dashboard.overview.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.overview.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"overview","title":"Dashboard tab — Overview","command_id":"cmd.msp.inspect.overview.v1","fields_policy":"selection projection — board from selection DC","note":"Tab page data contract — load from BPaaS pack. Not inspect.*"},"hub.neit.dc.dashboard.stream.v1.json":{"contract_id":"hub.neit.dc.dashboard.stream.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.stream.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"fact_stream","title":"Fact Stream","command_id":"cmd.msp.facts.stream.tail.v1","select_command_id":"cmd.msp.facts.stream.select.v1","selection_contract":"hub.neit.opcontext.stream.v1","limit":10,"projection_mode":"pack_sample_until_ledger_binds","note":"Stream rows live on pack — not hardcoded in pack.js.","entries":[{"t":"2m","kind":"matter","work_type":"incident","title":"HOT matter opened — VPN outage site B","summary":"Primary WAN down · site B users offline · RMM confirmed","client":"Acme Manufacturing","status":"Critical","status_tone":"critical","ref":"#8847","actor":"J. Rivera","command_id":"cmd.msp.matter.open.v1","fact_id":"fact.msp.stream.8847","hot":true},{"t":"18m","kind":"client","work_type":"general","title":"Client standing → Critical","summary":"Score drop after 2 open criticals + overdue aging","client":"Northwind Traders","status":"Critical","status_tone":"critical","ref":"standing 41","actor":"system","command_id":"cmd.msp.client.standing.v1","fact_id":"fact.msp.stream.northwind.standing","hot":true},{"t":"41m","kind":"matter","work_type":"request","title":"Matter cleared — email queue backlog","summary":"Queue drained · client confirmed mail flow restored","client":"Contoso Ltd","status":"Cleared","status_tone":"good","ref":"#8820","actor":"S. Chen","command_id":"cmd.msp.matter.clear.v1","fact_id":"fact.msp.stream.8820","hot":false},{"t":"1h","kind":"alert","work_type":"security","title":"Critical EDR alert raised","summary":"malware.generic · quarantined · user phish click","client":"Northwind Traders","status":"Quarantined","status_tone":"critical","ref":"WS-0142","actor":"SentinelOne","command_id":"cmd.msp.alert.raise.v1","fact_id":"fact.msp.stream.edr.ws0142","hot":true},{"t":"2h","kind":"matter","work_type":"incident","title":"Aging threshold crossed","summary":"Open >26h without client update · escalate gate","client":"Acme Manufacturing","status":"Aging","status_tone":"attention","ref":"#8841","actor":"unassigned","command_id":"cmd.msp.matter.aging.v1","fact_id":"fact.msp.stream.8841","hot":true},{"t":"3h","kind":"estate","work_type":"backup","title":"Backup success rate dip","summary":"Last job fail ×3 · waiting storage auth","client":"Contoso Ltd","status":"Failing","status_tone":"attention","ref":"NAS-02","actor":"Veeam","command_id":"cmd.msp.estate.backups.v1","fact_id":"fact.msp.stream.nas02","hot":false},{"t":"4h","kind":"estate","work_type":"patch","title":"Patch compliance updated","summary":"Fleet compliance refresh after Tuesday cycle","client":"Portfolio","status":"94.2%","status_tone":"good","ref":"fleet","actor":"RMM","command_id":"cmd.msp.estate.patch.v1","fact_id":"fact.msp.stream.patch","hot":false},{"t":"5h","kind":"matter","work_type":"request","title":"Matter forming — onboarding pack","summary":"Intake pack started · waiting docs from client","client":"Contoso Ltd","status":"Forming","status_tone":"neutral","ref":"#8835","actor":"A. Okonkwo","command_id":"cmd.msp.matter.form.v1","fact_id":"fact.msp.stream.8835","hot":false},{"t":"6h","kind":"finance","work_type":"general","title":"Financial exception — overdue invoices","summary":"Overdue crossed $3.1k · AR watch list","client":"Northwind Traders","status":"Overdue","status_tone":"attention","ref":"$3,100","actor":"NEIT","command_id":"cmd.msp.finance.exception.v1","fact_id":"fact.msp.stream.northwind.ar","hot":true},{"t":"8h","kind":"estate","work_type":"general","title":"Device came online","summary":"Fleet online count recovered after patch reboot window","client":"Portfolio","status":"Online","status_tone":"good","ref":"1,184/1,240","actor":"RMM","command_id":"cmd.msp.estate.devices.v1","fact_id":"fact.msp.stream.devices","hot":false}]},"hub.neit.blocks.dashboard.v1.json":{"registry_id":"hub.neit.dashboard.blocks.v1","stable_entity_id":"urn:valos:registry:hub.neit.dashboard.blocks.v1","blueprint_id":"hub.neit.dashboard.v1","pack_id":"hub.neit.v1","version":"1.0.0","status":"REGISTERED","gate":"PRE_MOVE — all blocks must remain registered before implementation lane","note":"Block registry only. Intelligence on personas. Populate via command_id → pulse/genie.","shell":{"geometry":"PLATFORM_SHELL_BASE","slots":["tab_rail","workbench","ops_screen","inspector"]},"blocks":[{"block_id":"hot_needs_attention","stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","zone":"workbench","title":"Needs My Attention (HOT)","selection_source":"hot","selection_contract":"data/contracts/hub.neit.opcontext.hot.v1.json","list_command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","drives_inspector":true,"persona_id":null,"status":"placeholder","block_data_contract_id":"hub.neit.opcontext.hot.v1"},{"block_id":"scoreboard","stable_entity_id":"urn:valos:block:msp.scoreboard.v1","zone":"ops_A","title":"Scoreboard Heroes","selection_sources":["hero","support"],"selection_contracts":["data/contracts/hub.neit.opcontext.hero.v1.json","data/contracts/hub.neit.opcontext.support.v1.json"],"persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","heroes":["standing","cases","revenue"],"hero_command_ids":["cmd.msp.hero.standing.v1","cmd.msp.hero.cases.v1","cmd.msp.hero.revenue.v1"],"drives_inspector":true,"status":"placeholder","block_data_contract_id":"selection.hero.v1"},{"block_id":"quick_actions","stable_entity_id":"urn:valos:block:msp.quick_actions.v1","zone":"ops_B","title":"Quick Actions","selection_source":"quick_action","selection_contract":"data/contracts/hub.neit.opcontext.quick_action.v1.json","ops_only":true,"action_command_ids":["cmd.msp.matter.create.v1","cmd.msp.report.aging.v1","cmd.msp.hot.clear_local.v1","cmd.msp.hot.client.focus.v1","cmd.msp.surface.client_cc.v1","cmd.msp.surface.financials.v1","cmd.msp.surface.fleet_health.v1","cmd.msp.report.portfolio.v1"],"select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","drives_inspector":true,"status":"placeholder","block_data_contract_id":"selection.quick_action.v1"},{"block_id":"msp_estate","stable_entity_id":"urn:valos:block:msp.estate.v1","zone":"ops_C","title":"MSP Estate","selection_source":"estate","selection_contract":"data/contracts/hub.neit.opcontext.estate.v1.json","persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","batch_command_id":"cmd.msp.estate.pack.v1","dim_command_ids_sot":"hub.neit.persona.dashboard.estate.v1.rules.json#dims","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","drives_inspector":true,"not":"rmm_asset_inventory_census","status":"placeholder","block_data_contract_id":"selection.estate.v1"},{"block_id":"fact_stream","stable_entity_id":"urn:valos:block:msp.fact_stream.v1","zone":"ops_D","title":"Fact Stream","selection_source":"stream","selection_contract":"data/contracts/hub.neit.opcontext.stream.v1.json","list_command_id":"cmd.msp.facts.stream.tail.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","drives_inspector":true,"limit":10,"status":"placeholder","block_data_contract_id":"hub.neit.opcontext.stream.v1"},{"block_id":"inspector","stable_entity_id":"urn:valos:block:msp.inspector.v1","zone":"inspector","title":"Inspector","driven_by":"dashboard_selection","selection_sources":["hot","hero","support","estate","quick_action","stream"],"selection_envelope":"data/contracts/hub.neit.opcontext.base.v1.json","ui_model":"data_contract_pages","pages":[{"page_id":"overview","contract_id":"inspect.overview.v1","stable_entity_id":"urn:valos:contract:inspect.overview.v1"},{"page_id":"dimensions","contract_id":"inspect.dimensions.v1","stable_entity_id":"urn:valos:contract:inspect.dimensions.v1"},{"page_id":"evidence","contract_id":"inspect.evidence.v1","command_id":"cmd.msp.inspect.evidence.v1","stable_entity_id":"urn:valos:contract:inspect.evidence.v1"},{"page_id":"log","contract_id":"inspect.log.v1","command_id":"cmd.msp.inspect.log.v1","stable_entity_id":"urn:valos:contract:inspect.log.v1"}],"rule":"Always remount to currentSelection from any block","status":"placeholder"}],"selection_rule":{"id":"inspector_follows_dashboard_selection","text":"Inspector always shows the current selection from hero | support | estate | quick_action | stream | hot","command_id":"cmd.msp.inspect.selection.v1"}},"hub.neit.commands.dashboard.v1.json":{"registry_id":"hub.neit.dashboard.commands.v1","stable_entity_id":"urn:valos:registry:hub.neit.dashboard.commands.v1","blueprint_id":"hub.neit.dashboard.v1","pack_id":"hub.neit.v1","version":"1.0.0","status":"PLACEHOLDER","bind_policy":"command_id is run stub until pulse/genie product binds on HQ path","populate_path":"command_id → pulse_or_genie → product","identity":{"command_id":"immutable run id for pulse/genie","stable_entity_id":"forever subject on selection/entity (Option 1)"},"commands":[{"command_id":"cmd.msp.hot.list.v1","block_id":"hot_needs_attention","kind":"list","status":"placeholder"},{"command_id":"cmd.msp.hot.select.v1","block_id":"hot_needs_attention","kind":"select","selection_source":"hot","status":"placeholder"},{"command_id":"cmd.msp.hot.clear_local.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.hot.client.focus.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.hot.promote_from_stream.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hot.attach_fact.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hot.promote_from_signal.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hero.standing.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.hero.cases.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.hero.revenue.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_good.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_attention.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_critical.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.fleet_avg_standing.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.open_matters_critical.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.matters_resolved_24h.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.matters_waiting_on_client.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.mrr_total.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.gross_margin_pct.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.overdue_invoices_total.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.tech_utilization_pct.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.matter.create.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.report.aging.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.report.portfolio.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.client_cc.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.financials.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.fleet_health.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.estate.pack.v1","block_id":"msp_estate","kind":"batch","status":"placeholder"},{"command_id":"cmd.msp.estate.managed_clients.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.endpoints_online.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.agreements_active.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.sla_compliance.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.open_tickets.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.tickets_breaching.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.backup_success.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.edr_coverage.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.patch_compliance.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.critical_alerts.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.renewals_90d.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.mrr_at_risk.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.facts.stream.tail.v1","block_id":"fact_stream","kind":"list","status":"placeholder"},{"command_id":"cmd.msp.facts.stream.select.v1","block_id":"fact_stream","kind":"select","selection_source":"stream","status":"placeholder"},{"command_id":"cmd.msp.inspect.selection.v1","block_id":"inspector","kind":"select_bus","status":"placeholder"},{"command_id":"cmd.msp.inspect.client.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.matter.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.alert.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.hero.v1","block_id":"inspector","kind":"inspect","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.inspect.dim.v1","block_id":"inspector","kind":"inspect","selection_source":"support","status":"placeholder"},{"command_id":"cmd.msp.inspect.estate.v1","block_id":"inspector","kind":"inspect","selection_source":"estate","status":"placeholder"},{"command_id":"cmd.msp.inspect.action.v1","block_id":"inspector","kind":"inspect","selection_source":"quick_action","status":"placeholder"},{"command_id":"cmd.msp.inspect.stream.v1","block_id":"inspector","kind":"inspect","selection_source":"stream","status":"placeholder"},{"command_id":"cmd.msp.inspect.evidence.v1","block_id":"inspector","kind":"page","status":"placeholder"},{"command_id":"cmd.msp.inspect.log.v1","block_id":"inspector","kind":"page","status":"placeholder"},{"command_id":"cmd.msp.signal.create.v1","block_id":"quick_actions","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.compose.open.v1","block_id":"inspector","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.hero.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.dim.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.estate.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.create_from_stream.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.signal_arm.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.signal_disarm.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.hero.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.estate.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.stream.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.hot.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.hover.preview.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.open_detail.v1","kind":"interaction_later","status":"placeholder"}]},"hub.neit.blueprint.dashboard.v1.json":{"blueprint_id":"hub.neit.dashboard.v1","stable_entity_id":"urn:valos:blueprint:hub.neit.dashboard.v1","pack_id":"hub.neit.v1","title":"Master MSP Dashboard","version":"4.0.0","status":"ACTIVE","tab_id":"dashboard","description":"Dashboard tab · BPaaS flat pack · Workbench (HOT) → Ops (A heroes · B actions · C estate · D stream) → Inspector. Same framework as Actor: TOC load, shared product personas, domain personas, dc.* / selection.* contracts.","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","layout":"BPAAS / BPID / files (flat)","toc":"hub.neit.toc.dashboard.v1.json","registries":{"blocks":"hub.neit.blocks.dashboard.v1.json","commands":"hub.neit.commands.dashboard.v1.json"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"guide_personas":{"brand":{"persona_id":"hub.shared.persona.brand.v1","rules_source":"bpaas/shared/hub.shared.persona.brand.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.brand.v1.md","layer":"shared"},"color":{"persona_id":"hub.shared.persona.color.v1","rules_source":"bpaas/shared/hub.shared.persona.color.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.color.v1.md","layer":"shared","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css"},"shell":{"persona_id":"hub.shared.persona.shell.v1","rules_source":"bpaas/shared/hub.shared.persona.shell.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.shell.v1.md","layer":"shared","note":"Geometry tokens live in shell.css; persona owns scroll/pane roles"},"bind":{"persona_id":"hub.shared.persona.bind.v1","rules_source":"bpaas/shared/hub.shared.persona.bind.v1.rules.json","skill_md":"bpaas/shared/hub.shared.persona.bind.v1.md","layer":"shared"}},"selection_contracts":{"envelope":"hub.neit.opcontext.base.v1.json","hot":"hub.neit.opcontext.hot.v1.json","hero":"hub.neit.opcontext.hero.v1.json","support":"hub.neit.opcontext.support.v1.json","estate":"hub.neit.opcontext.estate.v1.json","quick_action":"hub.neit.opcontext.quick_action.v1.json","stream":"hub.neit.opcontext.stream.v1.json"},"page_contracts":{"overview":"hub.neit.dc.dashboard.overview.v1.json","dimensions":"hub.neit.dc.dashboard.dimensions.v1.json","evidence":"hub.neit.dc.dashboard.evidence.v1.json","fact_log":"hub.neit.dc.dashboard.fact_log.v1.json","metadata":"hub.neit.dc.dashboard.metadata.v1.json"},"personas":{"scoreboard":{"persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","skill_md":"hub.neit.persona.dashboard.scoreboard.v1.md","owns":["hero_order","heroes","supports","hero_and_dim_command_ids"]},"estate":{"persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"hub.neit.persona.dashboard.estate.v1.rules.json","skill_md":"hub.neit.persona.dashboard.estate.v1.md","owns":["estate_dims","estate_command_ids","catalog_order"],"catalog_status":"provisional","not":"rmm_asset_inventory_census"}},"skins":{"default":"baseline","fallback":"baseline","catalog":["baseline","hud_v0"]},"shell_map":{"workbench":"hot_needs_attention","ops_screen":"visual_management_board","inspector":"selection_detail"},"layout_ops":{"A":"scoreboard_heroes_full_width","B":"quick_actions_tall_left","C":"msp_estate_compact_right_top","D":"fact_stream_same_width_as_C_scrolls","scroll":{"ops_pane":false,"fact_stream":true,"workbench":true,"inspector":"tab_pages_only"}},"hierarchy":[{"layer":"workbench","question":"What needs my attention right now?"},{"layer":"scoreboard","question":"What is the overall health of the fleet and the business?"},{"layer":"quick_actions","question":"What can I do immediately?"},{"layer":"msp_estate","question":"What are the current estate facts?"},{"layer":"fact_stream","question":"What are the last 10 things that happened?"},{"layer":"inspector","question":"Tell me everything about this HOT item (by data contract page)"}],"zones":{"workbench":{"id":"hot_needs_attention","title":"Needs My Attention","scope":"HOT only","item_types":["hot_client","hot_matter","critical_rmm_edr","hot_signal"],"select_drives":["inspector"],"command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","status":"placeholder"},"ops":{"id":"visual_management_board","order":["scoreboard","quick_actions","msp_estate","fact_stream"],"A_scoreboard":{"id":"scoreboard","title":"Scoreboard","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","heroes":[{"id":"standing","label":"Good Standing","command_id":"cmd.msp.hero.standing.v1","supports":[{"dim":"clients_good","command_id":"cmd.msp.dim.clients_good.v1"},{"dim":"clients_attention","command_id":"cmd.msp.dim.clients_attention.v1"},{"dim":"clients_critical","command_id":"cmd.msp.dim.clients_critical.v1"},{"dim":"fleet_avg_standing","command_id":"cmd.msp.dim.fleet_avg_standing.v1"}]},{"id":"cases","label":"Cases","command_id":"cmd.msp.hero.cases.v1","supports":[{"dim":"open_matters_critical","command_id":"cmd.msp.dim.open_matters_critical.v1"},{"dim":"open_matters_aging_gt_24h","command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1"},{"dim":"matters_resolved_24h","command_id":"cmd.msp.dim.matters_resolved_24h.v1"},{"dim":"matters_waiting_on_client","command_id":"cmd.msp.dim.matters_waiting_on_client.v1"}]},{"id":"revenue","label":"Revenue","command_id":"cmd.msp.hero.revenue.v1","internal":true,"supports":[{"dim":"mrr_total","command_id":"cmd.msp.dim.mrr_total.v1"},{"dim":"gross_margin_pct","command_id":"cmd.msp.dim.gross_margin_pct.v1"},{"dim":"overdue_invoices_total","command_id":"cmd.msp.dim.overdue_invoices_total.v1"},{"dim":"tech_utilization_pct","command_id":"cmd.msp.dim.tech_utilization_pct.v1"}]}]},"B_quick_actions":{"id":"quick_actions","title":"Quick Actions","ops_only":true,"layout":"tall_left","actions":[{"id":"create_matter","label":"Create Matter","primary":true,"command_id":"cmd.msp.matter.create.v1"},{"id":"aging_report","label":"Aging report","command_id":"cmd.msp.report.aging.v1"},{"id":"clear_filters","label":"Clear filters / Hot","command_id":"cmd.msp.hot.clear_local.v1"},{"id":"hot_client","label":"Hot client","command_id":"cmd.msp.hot.client.focus.v1"},{"id":"client_cc","label":"Client CC board","command_id":"cmd.msp.surface.client_cc.v1"},{"id":"financials","label":"View Financials / NEIT","command_id":"cmd.msp.surface.financials.v1"},{"id":"fleet_health","label":"Fleet Health / RMM","command_id":"cmd.msp.surface.fleet_health.v1"},{"id":"portfolio","label":"Run Portfolio Report","command_id":"cmd.msp.report.portfolio.v1"}]},"C_msp_estate":{"id":"msp_estate","title":"MSP Estate","note":"Portfolio health — SOT hub.neit.persona.dashboard.estate.v1 (not inventory census)","persona_id":"hub.neit.persona.dashboard.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","batch_command_id":"cmd.msp.estate.pack.v1","cells_sot":"hub.neit.persona.dashboard.estate.v1.rules.json#dims","cells":[{"key":"managed_clients","command_id":"cmd.msp.estate.managed_clients.v1"},{"key":"endpoints_online","command_id":"cmd.msp.estate.endpoints_online.v1"},{"key":"agreements_active","command_id":"cmd.msp.estate.agreements_active.v1"},{"key":"sla_compliance_pct","command_id":"cmd.msp.estate.sla_compliance.v1"},{"key":"open_tickets","command_id":"cmd.msp.estate.open_tickets.v1"},{"key":"tickets_breaching","command_id":"cmd.msp.estate.tickets_breaching.v1"},{"key":"backup_success_pct","command_id":"cmd.msp.estate.backup_success.v1"},{"key":"edr_coverage_pct","command_id":"cmd.msp.estate.edr_coverage.v1"},{"key":"patch_compliance_pct","command_id":"cmd.msp.estate.patch_compliance.v1"},{"key":"critical_alerts","command_id":"cmd.msp.estate.critical_alerts.v1"},{"key":"renewals_90d","command_id":"cmd.msp.estate.renewals_90d.v1"},{"key":"mrr_at_risk","command_id":"cmd.msp.estate.mrr_at_risk.v1"}]},"D_fact_stream":{"id":"fact_stream","title":"Fact Stream","limit":10,"command_id":"cmd.msp.facts.stream.tail.v1","filter_optional":"SHOW_ONLY_HOT","row_fields":["age","kind","title","summary","work_type","client","status","status_tone","ref","actor","hot","command_id","fact_id"],"note":"Rich fact rows · same width as estate · only ops scroller"}},"inspector":{"id":"selection_detail","title":"Inspector","driven_by":"dashboard_selection","selection_sources":["hot","hero","support","estate","quick_action","stream"],"rule":"Inspector always remounts to current selection from any dashboard block","select_command_id":"cmd.msp.inspect.selection.v1","ui_model":"data_contract_pages","not":"horizontal_wheel","not_hot_only":true,"by_type":{"client":{"command_id":"cmd.msp.inspect.client.v1","fields":["standing","open_matters","rmm","financials","cc","work_type"]},"matter":{"command_id":"cmd.msp.inspect.matter.v1","fields":["title","age","assignee","status","client","history"]},"alert":{"command_id":"cmd.msp.inspect.alert.v1","fields":["signal","source","status","device","detail","work_type"]}},"pages":[{"id":"overview","contract_id":"inspect.overview.v1","command_id":"type_root"},{"id":"dimensions","contract_id":"inspect.dimensions.v1","command_id":"type_root"},{"id":"evidence","contract_id":"inspect.evidence.v1","command_id":"cmd.msp.inspect.evidence.v1"},{"id":"log","contract_id":"inspect.log.v1","command_id":"cmd.msp.inspect.log.v1"}]}},"interactions_later":{"status":"SPEC","checklist":"docs/MASTER_IMPLEMENTATION_CHECKLIST.md#7-ops-interactions-later","drag_drop":{"stream_to_hot":"cmd.msp.hot.promote_from_stream.v1","stream_attach_hot":"cmd.msp.hot.attach_fact.v1"},"create_signal":{"flow":"highlight_source → quick_action_or_arm → popup_create_signal_card → submit","arm":"cmd.msp.ui.signal_arm.v1","source_hero":"cmd.msp.signal.source.hero.v1","source_dim":"cmd.msp.signal.source.dim.v1","source_estate":"cmd.msp.signal.source.estate.v1","compose_open":"cmd.msp.signal.compose.open.v1","create":"cmd.msp.signal.create.v1","disarm":"cmd.msp.ui.signal_disarm.v1","from_stream":"cmd.msp.signal.create_from_stream.v1","promote_to_hot":"cmd.msp.hot.promote_from_signal.v1"},"pointer":{"left_stream_select":"cmd.msp.facts.stream.select.v1","double_open_detail":"cmd.msp.ui.open_detail.v1","context_hero":"cmd.msp.ui.context.hero.v1","context_estate":"cmd.msp.ui.context.estate.v1","context_stream":"cmd.msp.ui.context.stream.v1","context_hot":"cmd.msp.ui.context.hot.v1","hover_preview":"cmd.msp.ui.hover.preview.v1"}},"placeholder_policy":{"bind_later":true,"no_fake_production_truth":true,"show_seed_until_bound":true,"command_id_is_run_stub":true,"stable_entity_id_on_real_items":true,"populate_via":"pulse_or_genie"},"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing","pack_must_not":["ship persona.product.*","set shell grid or --workbench-width","redefine select-view / select-execute chrome"]},"hub.neit.persona.dashboard.estate.v1.md":"---\nstable_entity_id: \"urn:valos:persona:msp.estate.v1\"\nregistry_family: \"personas\"\nentry_id: \"hub.neit.persona.dashboard.estate.v1\"\npersona_id: \"hub.neit.persona.dashboard.estate.v1\"\ndisplay_name: \"MSP Estate Persona\"\npersona_type: \"domain_role\"\npersona_kind: \"block_persona\"\naltitude: \"hub_msp_ops\"\nbrain_for: \"msp_estate_fact_dims\"\nstatus: \"active\"\nversion: \"1\"\nowner_ref: \"operator\"\nposture: \"internal\"\nparent_persona_ref: \"persona.product.pack.v1\"\nchild_persona_refs: []\npurpose: >\n  Owns the Master MSP dashboard C·MSP Estate dimension catalog: which facts appear\n  as estate pills, their labels, command_ids, tones, icons, and batch hydrate rules.\n  NOT an RMM asset census (printers/cameras/APs laundry list). Portfolio + ops health\n  dims only. Pack UI loads+evaluates this persona — never sole-owns the field list.\nallowed_callers:\n  - \"val-genie-runtime\"\n  - \"pulse\"\n  - \"flow\"\n  - \"pa_engine\"\n  - \"codex\"\n  - \"claude\"\n  - \"grok\"\n  - \"human_builder\"\n  - \"builder\"\ndenied_callers:\n  - \"block\"\nauthority:\n  can_advise: true\n  can_request_action: true\n  can_execute_action: false\nrisk_tier: \"medium\"\naudit_required: true\noutput_contract_ref: \"persona.context.v1\"\nrules_location: \"this_md_machine_rules_section\"\nrules_companion: \"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json\"\nneit_registry:\n  family: \"msp.dashboard.personas\"\n  seed: \"data/pa/neit.msp.dashboard.persona.registry.v1.json\"\n  ordinal: 2\n  registry_scope: \"neit_platform\"\ngrounding_refs:\n  - \"hub.neit.dashboard.v1\"\n  - \"hub.neit.persona.dashboard.scoreboard.v1\"\n  - \"persona.signal.color.v1\"\nrelated_personas:\n  - \"hub.neit.persona.dashboard.scoreboard.v1\"\n  - \"persona.signal.color.v1\"\n  - \"persona.product.pack.v1\"\nnote_related: >\n  Lab SEED used device/printer/camera inventory pills — RETIRED as living SOT.\n  This persona owns the real estate catalog. Edit dims here; re-run estate facts.\n---\n\n# MSP Estate Persona\n\n**Block persona** · altitude **hub_msp_ops** · brain for **C · MSP Estate**\n\n## One-liner\n\n> **Estate = portfolio / ops health facts for the MSP board — not a second scoreboard and not an RMM asset inventory dump. Dim list and commands live on this persona.**\n\n## What this is / is not\n\n| Is | Is not |\n|----|--------|\n| Managed portfolio health dims | Scoreboard heroes (those are scoreboard persona) |\n| Facts operators act on at a glance | Full CMDB / every device class |\n| Command-bound pills (`cmd.msp.estate.*`) | Hardcoded 16-cell list only in pack.js |\n| Editable SOT for team | One-off seed inventory (printers, cameras, APs as the product truth) |\n\n### Retired lab seed (do not re-promote as SOT)\n\n`devices, users, licenses, sites, cameras, firewalls, servers, workstations, networks, storage_tb, m365_seats, printers, aps` as the **primary** estate board — useful for RMM deep-dives later under a different surface, **not** the Master MSP estate band.\n\n## Living estate catalog (v1 provisional)\n\n**Status:** `provisional` — operator may reorder / replace dims via persona delta without UI rewrite.  \n**Count:** 12 (dense band; not 16 asset types).  \n**Batch hydrate (optional):** `cmd.msp.estate.pack.v1`\n\n| # | key | label | command_id | tone default | meaning |\n|---|-----|--------|------------|--------------|---------|\n| 1 | `managed_clients` | Managed clients | `cmd.msp.estate.managed_clients.v1` | neutral | Clients under active agreement |\n| 2 | `endpoints_online` | Endpoints online | `cmd.msp.estate.endpoints_online.v1` | good | Online / total managed endpoints |\n| 3 | `agreements_active` | Agreements | `cmd.msp.estate.agreements_active.v1` | neutral | Live managed-service agreements |\n| 4 | `sla_compliance_pct` | SLA met | `cmd.msp.estate.sla_compliance.v1` | good | % tickets/matters in SLA |\n| 5 | `open_tickets` | Open tickets | `cmd.msp.estate.open_tickets.v1` | attention | Open PSA/matter work |\n| 6 | `tickets_breaching` | SLA breach risk | `cmd.msp.estate.tickets_breaching.v1` | critical | At or past SLA |\n| 7 | `backup_success_pct` | Backup success | `cmd.msp.estate.backup_success.v1` | good | Last-cycle backup success |\n| 8 | `edr_coverage_pct` | EDR coverage | `cmd.msp.estate.edr_coverage.v1` | good | Protected / in-scope |\n| 9 | `patch_compliance_pct` | Patch | `cmd.msp.estate.patch_compliance.v1` | good | Fleet patch compliance |\n| 10 | `critical_alerts` | Critical alerts | `cmd.msp.estate.critical_alerts.v1` | critical | Open critical RMM/EDR |\n| 11 | `renewals_90d` | Renewals 90d | `cmd.msp.estate.renewals_90d.v1` | attention | Agreements renewing ≤90d |\n| 12 | `mrr_at_risk` | MRR at risk | `cmd.msp.estate.mrr_at_risk.v1` | attention | Revenue on at-risk accounts |\n\n**Icons:** monoline key → icon map may live in UI; **keys** are owned here.\n\n## Cell product shape (genie → UI)\n\n```json\n{\n  \"key\": \"endpoints_online\",\n  \"label\": \"Endpoints online\",\n  \"value\": \"1184 / 1240\",\n  \"tone\": \"good\",\n  \"command_id\": \"cmd.msp.estate.endpoints_online.v1\",\n  \"stable_entity_id\": null\n}\n```\n\n## Standing split\n\n| Layer | Owns |\n|-------|------|\n| **This persona** | Dim keys, labels, order, command_ids, default tones |\n| **hub.neit.persona.dashboard.scoreboard.v1** | Heroes only (GS / Cases / Revenue) |\n| **hub.neit.dashboard.v1** | Zone C mount; cites `rules_source` |\n| **UI** | Layout density, icons, click → command |\n\n## Machine rules\n\n```json\n{\n  \"rules_owner\": \"persona\",\n  \"persona_id\": \"hub.neit.persona.dashboard.estate.v1\",\n  \"display_name\": \"MSP Estate Persona\",\n  \"kind\": \"block_persona\",\n  \"version\": \"1\",\n  \"status\": \"ACTIVE\",\n  \"catalog_status\": \"provisional\",\n  \"stable_entity_id\": \"urn:valos:persona:msp.estate.v1\",\n  \"rules_source\": \"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json\",\n  \"meta_owner\": \"persona.pa.engine.v1\",\n  \"batch_command_id\": \"cmd.msp.estate.pack.v1\",\n  \"retired_lab_inventory_keys\": [\n    \"cameras\", \"printers\", \"aps\", \"firewalls\", \"networks\",\n    \"storage_tb\", \"m365_seats\", \"workstations\", \"servers\", \"users\", \"licenses\", \"sites\"\n  ],\n  \"note_retired\": \"RMM asset census is not the living Master MSP estate band. Deep asset views bind under Fleet Health surface later.\",\n  \"dims\": [\n    { \"key\": \"managed_clients\", \"label\": \"Managed clients\", \"command_id\": \"cmd.msp.estate.managed_clients.v1\", \"tone\": \"neutral\", \"icon\": \"users\" },\n    { \"key\": \"endpoints_online\", \"label\": \"Endpoints online\", \"command_id\": \"cmd.msp.estate.endpoints_online.v1\", \"tone\": \"good\", \"icon\": \"devices\" },\n    { \"key\": \"agreements_active\", \"label\": \"Agreements\", \"command_id\": \"cmd.msp.estate.agreements_active.v1\", \"tone\": \"neutral\", \"icon\": \"licenses\" },\n    { \"key\": \"sla_compliance_pct\", \"label\": \"SLA met\", \"command_id\": \"cmd.msp.estate.sla_compliance.v1\", \"tone\": \"good\", \"icon\": \"patch\" },\n    { \"key\": \"open_tickets\", \"label\": \"Open tickets\", \"command_id\": \"cmd.msp.estate.open_tickets.v1\", \"tone\": \"attention\", \"icon\": \"servers\" },\n    { \"key\": \"tickets_breaching\", \"label\": \"SLA breach risk\", \"command_id\": \"cmd.msp.estate.tickets_breaching.v1\", \"tone\": \"critical\", \"icon\": \"threats\" },\n    { \"key\": \"backup_success_pct\", \"label\": \"Backup success\", \"command_id\": \"cmd.msp.estate.backup_success.v1\", \"tone\": \"good\", \"icon\": \"backups\" },\n    { \"key\": \"edr_coverage_pct\", \"label\": \"EDR coverage\", \"command_id\": \"cmd.msp.estate.edr_coverage.v1\", \"tone\": \"good\", \"icon\": \"firewalls\" },\n    { \"key\": \"patch_compliance_pct\", \"label\": \"Patch\", \"command_id\": \"cmd.msp.estate.patch_compliance.v1\", \"tone\": \"good\", \"icon\": \"patch\" },\n    { \"key\": \"critical_alerts\", \"label\": \"Critical alerts\", \"command_id\": \"cmd.msp.estate.critical_alerts.v1\", \"tone\": \"critical\", \"icon\": \"threats\" },\n    { \"key\": \"renewals_90d\", \"label\": \"Renewals 90d\", \"command_id\": \"cmd.msp.estate.renewals_90d.v1\", \"tone\": \"attention\", \"icon\": \"sites\" },\n    { \"key\": \"mrr_at_risk\", \"label\": \"MRR at risk\", \"command_id\": \"cmd.msp.estate.mrr_at_risk.v1\", \"tone\": \"attention\", \"icon\": \"storage_tb\" }\n  ],\n  \"evaluate\": [\n    { \"id\": \"not_inventory_dump\", \"check\": \"no retired_lab_inventory_keys as sole living catalog\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"every_dim_has_command\", \"check\": \"each dim.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"not_second_scoreboard\", \"check\": \"no hero_order fields on estate persona\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"rules_source_cited\", \"check\": \"dashboard BP cites this persona\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"dim_change_is_persona_delta\", \"check\": \"field list edits land here first\", \"on_fail\": \"HUMAN\" }\n  ],\n  \"fail_if\": [\n    \"estate dims only hardcoded in pack.js with no persona\",\n    \"re-promote printers/cameras/APs laundry list as Master MSP estate SOT without PLAN DELTA\",\n    \"estate persona owns Good Standing / Cases / Revenue heroes\"\n  ]\n}\n```\n\n## Operator edit path\n\n```text\nWrong estate metrics?\n  → edit hub.neit.persona.dashboard.estate.v1 (MD machine rules + companion rules.json)\n  → re-run estate pack / dims\n  → UI loads catalog — do not invent a parallel table in pack.js\n```\n\n## Fail the change if\n\n- Living estate list only in seed `msp_estate` object in pack.js  \n- Inventory census returns as the product truth without persona delta  \n- Heroes and estate mixed into one persona field table  \n","hub.neit.persona.dashboard.estate.v1.rules.json":{"rules_owner":"persona","persona_id":"hub.neit.persona.dashboard.estate.v1","display_name":"MSP Estate Persona","kind":"block_persona","version":"1.1.0","status":"ACTIVE","catalog_status":"provisional","stable_entity_id":"urn:valos:persona:msp.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","okf_md":"okf/registry/personas/hub.neit.persona.dashboard.estate.v1.md","meta_owner":"persona.pa.engine.v1","batch_command_id":"cmd.msp.estate.pack.v1","note":"Portfolio / ops health — not RMM asset census. Edit dims here; UI loads only.","retired_lab_inventory_keys":["cameras","printers","aps","firewalls","networks","storage_tb","m365_seats","workstations","servers","users","licenses","sites","devices"],"dims":[{"key":"managed_clients","label":"Managed clients","command_id":"cmd.msp.estate.managed_clients.v1","tone":"neutral","icon":"users","seed_value":"41"},{"key":"endpoints_online","label":"Endpoints online","command_id":"cmd.msp.estate.endpoints_online.v1","tone":"good","icon":"devices","seed_value":"1,184 / 1,240"},{"key":"agreements_active","label":"Agreements","command_id":"cmd.msp.estate.agreements_active.v1","tone":"neutral","icon":"licenses","seed_value":"38"},{"key":"sla_compliance_pct","label":"SLA met","command_id":"cmd.msp.estate.sla_compliance.v1","tone":"good","icon":"patch","seed_value":"96.4%"},{"key":"open_tickets","label":"Open tickets","command_id":"cmd.msp.estate.open_tickets.v1","tone":"attention","icon":"servers","seed_value":"42"},{"key":"tickets_breaching","label":"SLA breach risk","command_id":"cmd.msp.estate.tickets_breaching.v1","tone":"critical","icon":"threats","seed_value":"5"},{"key":"backup_success_pct","label":"Backup success","command_id":"cmd.msp.estate.backup_success.v1","tone":"good","icon":"backups","seed_value":"98.1%"},{"key":"edr_coverage_pct","label":"EDR coverage","command_id":"cmd.msp.estate.edr_coverage.v1","tone":"good","icon":"firewalls","seed_value":"97.2%"},{"key":"patch_compliance_pct","label":"Patch","command_id":"cmd.msp.estate.patch_compliance.v1","tone":"good","icon":"patch","seed_value":"94.2%"},{"key":"critical_alerts","label":"Critical alerts","command_id":"cmd.msp.estate.critical_alerts.v1","tone":"critical","icon":"threats","seed_value":"2"},{"key":"renewals_90d","label":"Renewals 90d","command_id":"cmd.msp.estate.renewals_90d.v1","tone":"attention","icon":"sites","seed_value":"4"},{"key":"mrr_at_risk","label":"MRR at risk","command_id":"cmd.msp.estate.mrr_at_risk.v1","tone":"attention","icon":"storage_tb","seed_value":"$18.4k"}],"evaluate":[{"id":"not_inventory_dump","pass":"PASS","fail":"FAIL"},{"id":"every_dim_has_command","pass":"PASS","fail":"FAIL"},{"id":"not_second_scoreboard","pass":"PASS","fail":"FAIL"}],"fail_if":["estate dims only hardcoded in pack.js with no persona","re-promote printers/cameras/APs laundry list as Master MSP estate SOT without PLAN DELTA","estate persona owns Good Standing / Cases / Revenue heroes"],"projection_label":"BPaaS · pack projection"},"hub.neit.persona.dashboard.scoreboard.v1.md":"---\nstable_entity_id: \"urn:valos:persona:msp.scoreboard.v1\"\nregistry_family: \"personas\"\nentry_id: \"hub.neit.persona.dashboard.scoreboard.v1\"\npersona_id: \"hub.neit.persona.dashboard.scoreboard.v1\"\ndisplay_name: \"MSP Scoreboard Heroes Persona\"\npersona_type: \"domain_role\"\npersona_kind: \"block_persona\"\naltitude: \"hub_msp_ops\"\nbrain_for: \"msp_scoreboard_heroes_and_supports\"\nstatus: \"active\"\nversion: \"1\"\nowner_ref: \"operator\"\nposture: \"internal\"\nparent_persona_ref: \"persona.product.pack.v1\"\nchild_persona_refs: []\npurpose: >\n  Owns the Master MSP dashboard A·Scoreboard intelligence: three interchangeable\n  hero cards (Good Standing | Matters/Cases | Revenue) and each hero’s four support\n  dimensions, command_ids, tones, and evaluate rules. Hub pack and genie load+evaluate\n  only — no hero field tables sole-owned in pack.js or serve.py.\nallowed_callers:\n  - \"val-genie-runtime\"\n  - \"pulse\"\n  - \"flow\"\n  - \"pa_engine\"\n  - \"codex\"\n  - \"claude\"\n  - \"grok\"\n  - \"human_builder\"\n  - \"builder\"\ndenied_callers:\n  - \"block\"\nauthority:\n  can_advise: true\n  can_request_action: true\n  can_execute_action: false\nrisk_tier: \"medium\"\naudit_required: true\noutput_contract_ref: \"persona.context.v1\"\nrules_location: \"this_md_machine_rules_section\"\nrules_companion: \"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json\"\nneit_registry:\n  family: \"msp.dashboard.personas\"\n  seed: \"data/pa/neit.msp.dashboard.persona.registry.v1.json\"\n  ordinal: 1\n  registry_scope: \"neit_platform\"\ngrounding_refs:\n  - \"hub.neit.dashboard.v1\"\n  - \"persona.product.pack.v1\"\n  - \"persona.signal.color.v1\"\n  - \"COMMAND_ID_VS_STABLE_ENTITY\"\nrelated_personas:\n  - \"hub.neit.persona.dashboard.estate.v1\"\n  - \"persona.signal.color.v1\"\n  - \"persona.product.pack.v1\"\nnote_related: >\n  Scoreboard owns hero + support catalog. Estate owns C·MSP Estate dims only.\n  Signal color owns tone meaning. Pack owns shell/tabs order — not hero fields.\n---\n\n# MSP Scoreboard Heroes Persona\n\n**Block persona** · altitude **hub_msp_ops** · brain for **A · Scoreboard**\n\n## One-liner\n\n> **Three heroes only: Good Standing | Matters/Cases | Revenue. Each owns four supports. Catalog and commands live here; genie loads this persona; UI evaluates only.**\n\n## Standing split\n\n| Layer | Owns |\n|-------|------|\n| **This persona** | Hero ids, labels, order, support dims, command_ids, status_tone rules |\n| **persona.signal.color.v1** | How tone maps to color (good / attention / critical) |\n| **hub.neit.dashboard.v1** | Mount zone A; cites this persona as `rules_source` |\n| **pack.js / UI** | Render only — no parallel hero tables |\n\n## Hero lock (product)\n\n```text\nhero_order = [ standing, cases, revenue ]\n```\n\n| id | Label | Headline command |\n|----|--------|------------------|\n| `standing` | Good Standing | `cmd.msp.hero.standing.v1` |\n| `cases` | Matters / Cases | `cmd.msp.hero.cases.v1` |\n| `revenue` | Revenue | `cmd.msp.hero.revenue.v1` |\n\nInterchangeable presentation order only — **do not** mint a fourth hero without a persona delta.\n\n## Supports (4 each)\n\n### standing\n\n| dim | label | command_id | tone hint |\n|-----|--------|------------|-----------|\n| `clients_good` | Clients Good | `cmd.msp.dim.clients_good.v1` | good |\n| `clients_attention` | Attention | `cmd.msp.dim.clients_attention.v1` | attention |\n| `clients_critical` | Critical | `cmd.msp.dim.clients_critical.v1` | critical |\n| `fleet_avg_standing` | Avg score | `cmd.msp.dim.fleet_avg_standing.v1` | neutral |\n\n### cases\n\n| dim | label | command_id | tone hint |\n|-----|--------|------------|-----------|\n| `open_matters_critical` | HOT Now | `cmd.msp.dim.open_matters_critical.v1` | critical |\n| `open_matters_aging_gt_24h` | Aging >24h | `cmd.msp.dim.open_matters_aging_gt_24h.v1` | attention |\n| `matters_resolved_24h` | Cleared 24h | `cmd.msp.dim.matters_resolved_24h.v1` | good |\n| `matters_waiting_on_client` | Gates | `cmd.msp.dim.matters_waiting_on_client.v1` | attention |\n\n### revenue\n\n| dim | label | command_id | tone hint | note |\n|-----|--------|------------|-----------|------|\n| `mrr_total` | MRR | `cmd.msp.dim.mrr_total.v1` | accent | internal / role-gate later |\n| `gross_margin_pct` | Gross margin | `cmd.msp.dim.gross_margin_pct.v1` | good | internal |\n| `overdue_invoices_total` | Overdue | `cmd.msp.dim.overdue_invoices_total.v1` | attention | internal |\n| `tech_utilization_pct` | Utilization | `cmd.msp.dim.tech_utilization_pct.v1` | neutral | internal |\n\n## Knows (summary)\n\n- Exactly three heroes; four supports each  \n- Click hero → hero `command_id`; click support → dim `command_id`  \n- Status color from signal persona, not free hex in UI  \n- `command_id` = run; subjects carry `stable_entity_id` when entity-bound  \n\n## Machine rules\n\n```json\n{\n  \"rules_owner\": \"persona\",\n  \"persona_id\": \"hub.neit.persona.dashboard.scoreboard.v1\",\n  \"display_name\": \"MSP Scoreboard Heroes Persona\",\n  \"kind\": \"block_persona\",\n  \"version\": \"1\",\n  \"status\": \"ACTIVE\",\n  \"stable_entity_id\": \"urn:valos:persona:msp.scoreboard.v1\",\n  \"rules_source\": \"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json\",\n  \"meta_owner\": \"persona.pa.engine.v1\",\n  \"hero_order\": [\"standing\", \"cases\", \"revenue\"],\n  \"heroes\": {\n    \"standing\": {\n      \"id\": \"standing\",\n      \"label\": \"Good Standing\",\n      \"command_id\": \"cmd.msp.hero.standing.v1\",\n      \"supports\": [\n        { \"dim\": \"clients_good\", \"label\": \"Clients Good\", \"command_id\": \"cmd.msp.dim.clients_good.v1\", \"tone\": \"good\" },\n        { \"dim\": \"clients_attention\", \"label\": \"Attention\", \"command_id\": \"cmd.msp.dim.clients_attention.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"clients_critical\", \"label\": \"Critical\", \"command_id\": \"cmd.msp.dim.clients_critical.v1\", \"tone\": \"critical\" },\n        { \"dim\": \"fleet_avg_standing\", \"label\": \"Avg score\", \"command_id\": \"cmd.msp.dim.fleet_avg_standing.v1\", \"tone\": \"neutral\" }\n      ]\n    },\n    \"cases\": {\n      \"id\": \"cases\",\n      \"label\": \"Matters / Cases\",\n      \"command_id\": \"cmd.msp.hero.cases.v1\",\n      \"supports\": [\n        { \"dim\": \"open_matters_critical\", \"label\": \"HOT Now\", \"command_id\": \"cmd.msp.dim.open_matters_critical.v1\", \"tone\": \"critical\" },\n        { \"dim\": \"open_matters_aging_gt_24h\", \"label\": \"Aging >24h\", \"command_id\": \"cmd.msp.dim.open_matters_aging_gt_24h.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"matters_resolved_24h\", \"label\": \"Cleared 24h\", \"command_id\": \"cmd.msp.dim.matters_resolved_24h.v1\", \"tone\": \"good\" },\n        { \"dim\": \"matters_waiting_on_client\", \"label\": \"Gates\", \"command_id\": \"cmd.msp.dim.matters_waiting_on_client.v1\", \"tone\": \"attention\" }\n      ]\n    },\n    \"revenue\": {\n      \"id\": \"revenue\",\n      \"label\": \"Revenue\",\n      \"command_id\": \"cmd.msp.hero.revenue.v1\",\n      \"internal\": true,\n      \"supports\": [\n        { \"dim\": \"mrr_total\", \"label\": \"MRR\", \"command_id\": \"cmd.msp.dim.mrr_total.v1\", \"tone\": \"accent\" },\n        { \"dim\": \"gross_margin_pct\", \"label\": \"Gross margin\", \"command_id\": \"cmd.msp.dim.gross_margin_pct.v1\", \"tone\": \"good\" },\n        { \"dim\": \"overdue_invoices_total\", \"label\": \"Overdue\", \"command_id\": \"cmd.msp.dim.overdue_invoices_total.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"tech_utilization_pct\", \"label\": \"Utilization\", \"command_id\": \"cmd.msp.dim.tech_utilization_pct.v1\", \"tone\": \"neutral\" }\n      ]\n    }\n  },\n  \"evaluate\": [\n    { \"id\": \"exactly_three_heroes\", \"check\": \"hero_order.length == 3\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"four_supports_each\", \"check\": \"each hero has supports.length == 4\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"hero_has_command\", \"check\": \"every hero.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"support_has_command\", \"check\": \"every support.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"no_hero_catalog_in_harness_only\", \"check\": \"pack cites this persona as rules_source\", \"on_fail\": \"FAIL\" }\n  ],\n  \"fail_if\": [\n    \"fourth hero without persona delta\",\n    \"hero field list only in pack.js with no persona rules_source\",\n    \"status color hardcodes bypassing persona.signal.color.v1\"\n  ]\n}\n```\n\n## Fail the change if\n\n- Hero dimensions invented only in `pack.js`  \n- Fourth hero added without editing this persona  \n- Revenue treated as public without role-gate decision  \n- Estate inventory mixed into scoreboard heroes  \n","hub.neit.persona.dashboard.scoreboard.v1.rules.json":{"rules_owner":"persona","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","display_name":"MSP Scoreboard Heroes Persona","kind":"block_persona","version":"1.1.0","status":"ACTIVE","stable_entity_id":"urn:valos:persona:msp.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","okf_md":"okf/registry/personas/hub.neit.persona.dashboard.scoreboard.v1.md","meta_owner":"persona.pa.engine.v1","hero_order":["standing","cases","revenue"],"heroes":{"standing":{"id":"standing","label":"Good Standing","command_id":"cmd.msp.hero.standing.v1","supports":[{"dim":"clients_good","label":"Clients Good","command_id":"cmd.msp.dim.clients_good.v1","tone":"good"},{"dim":"clients_attention","label":"Attention","command_id":"cmd.msp.dim.clients_attention.v1","tone":"attention"},{"dim":"clients_critical","label":"Critical","command_id":"cmd.msp.dim.clients_critical.v1","tone":"critical"},{"dim":"fleet_avg_standing","label":"Avg score","command_id":"cmd.msp.dim.fleet_avg_standing.v1","tone":"neutral"}]},"cases":{"id":"cases","label":"Matters / Cases","command_id":"cmd.msp.hero.cases.v1","supports":[{"dim":"open_matters_critical","label":"HOT Now","command_id":"cmd.msp.dim.open_matters_critical.v1","tone":"critical"},{"dim":"open_matters_aging_gt_24h","label":"Aging >24h","command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1","tone":"attention"},{"dim":"matters_resolved_24h","label":"Cleared 24h","command_id":"cmd.msp.dim.matters_resolved_24h.v1","tone":"good"},{"dim":"matters_waiting_on_client","label":"Gates","command_id":"cmd.msp.dim.matters_waiting_on_client.v1","tone":"attention"}]},"revenue":{"id":"revenue","label":"Revenue","command_id":"cmd.msp.hero.revenue.v1","internal":true,"supports":[{"dim":"mrr_total","label":"MRR","command_id":"cmd.msp.dim.mrr_total.v1","tone":"accent"},{"dim":"gross_margin_pct","label":"Gross margin","command_id":"cmd.msp.dim.gross_margin_pct.v1","tone":"good"},{"dim":"overdue_invoices_total","label":"Overdue","command_id":"cmd.msp.dim.overdue_invoices_total.v1","tone":"attention"},{"dim":"tech_utilization_pct","label":"Utilization","command_id":"cmd.msp.dim.tech_utilization_pct.v1","tone":"neutral"}]}},"evaluate":[{"id":"exactly_three_heroes","severity":"PASS","fail":"FAIL"},{"id":"four_supports_each","severity":"PASS","fail":"FAIL"},{"id":"hero_has_command","severity":"PASS","fail":"FAIL"},{"id":"support_has_command","severity":"PASS","fail":"FAIL"}],"fail_if":["fourth hero without persona delta","hero field list only in pack.js with no persona rules_source","status color hardcodes bypassing persona.signal.color.v1","projection values only in pack.js with no persona.projection"],"projection":{"mode":"pack_sample_until_metrics_bind","label":"BPaaS · pack projection","gauges":{"hot_open":5,"gates_wait":6},"heroes":{"standing":{"value":87,"unit":"","status":"Good","status_tone":"good","sub":"2 Attention · 0 Critical","supports":{"clients_good":38,"clients_attention":2,"clients_critical":1,"fleet_avg_standing":"84"}},"cases":{"value":42,"unit":"open","status":"HOT 5","status_tone":"critical","sub":"5 Hot · 8 Aging","supports":{"open_matters_critical":5,"open_matters_aging_gt_24h":8,"matters_resolved_24h":11,"matters_waiting_on_client":6}},"revenue":{"value":"$184k","unit":"MRR","status":"+2.4%","status_tone":"good","sub":"GM 62% · Overdue $12.4k","supports":{"mrr_total":"$184,200","gross_margin_pct":"62%","overdue_invoices_total":"$12,400","tech_utilization_pct":"78%"}}}}},"hub.neit.opcontext.base.v1.json":{"contract_id":"hub.neit.opcontext.base.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.base.v1","version":"1","status":"LOCKED","title":"Dashboard selection envelope (all sources)","description":"Every inspector-driving selection MUST carry this envelope. command_id = run; stable_entity_id = forever subject when known (Option 1).","required":["selection_id","source","block_id","title","command_id","select_command_id","selected_at"],"properties":{"selection_id":{"type":"string","description":"Session selection id (may be composite lab id)"},"stable_entity_id":{"type":["string","null"],"description":"Forever subject when bound — immutable from Signal/entity. Null only in SEED until bind.","pattern_hint":"urn:valos:*"},"source":{"type":"string","enum":["hot","hero","support","estate","quick_action","stream"]},"block_id":{"type":"string","enum":["hot_needs_attention","scoreboard","quick_actions","msp_estate","fact_stream","inspector"]},"block_stable_entity_id":{"type":"string","description":"Registered block urn from hub.neit.dashboard.blocks.v1"},"title":{"type":"string"},"sub":{"type":"string"},"badge":{"type":"string"},"command_id":{"type":"string","description":"Primary command for this selection (drill/run)"},"select_command_id":{"type":"string","description":"Command that established this selection"},"inspect_command_id":{"type":"string","description":"Inspector load/inspect command for this source"},"selected_at":{"type":"string","format":"date-time"},"seed":{"type":"boolean","description":"true while SEED LAB — not production truth"},"payload":{"type":"object","description":"Source-specific fields (see selection.*.v1.json)"}},"rules":["Inspector always remounts from currentSelection matching this envelope","stable_entity_id required on live bind for entity-backed sources (hot client/matter, stream party)","Do not invent parallel selection shapes in pack.js without contract delta"]},"hub.neit.opcontext.estate.v1.json":{"contract_id":"selection.estate.v1","stable_entity_id":"urn:valos:contract:selection.estate.v1","version":"1","status":"LOCKED","source":"estate","block_id":"msp_estate","block_stable_entity_id":"urn:valos:block:msp.estate.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.estate.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","required_payload":["estate_key","label","value","command_id"],"properties":{"estate_key":{"type":"string","description":"Key from hub.neit.persona.dashboard.estate.v1 dims catalog (provisional)"},"label":{"type":"string"},"value":{},"tone":{"type":"string","enum":["good","attention","critical","neutral","accent"]},"icon":{"type":"string"},"command_id":{"type":"string","description":"cmd.msp.estate.*.v1 from estate persona"},"stable_entity_id":{"type":["string","null"],"description":"Null for fleet rollups; set if dim is party-scoped"}},"catalog_sot":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json#dims","example":{"selection_id":"estate:endpoints_online","source":"estate","block_id":"msp_estate","block_stable_entity_id":"urn:valos:block:msp.estate.v1","stable_entity_id":null,"title":"Endpoints online","command_id":"cmd.msp.estate.endpoints_online.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","seed":true,"payload":{"estate_key":"endpoints_online","label":"Endpoints online","value":"1,184 / 1,240","tone":"good","command_id":"cmd.msp.estate.endpoints_online.v1"}}},"hub.neit.opcontext.hero.v1.json":{"contract_id":"selection.hero.v1","stable_entity_id":"urn:valos:contract:selection.hero.v1","version":"1","status":"LOCKED","source":"hero","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.hero.v1","required_payload":["hero_id","label","value","command_id"],"properties":{"hero_id":{"type":"string","enum":["standing","cases","revenue"],"description":"Only three heroes — SOT hub.neit.persona.dashboard.scoreboard.v1"},"label":{"type":"string"},"value":{},"unit":{"type":"string"},"status":{"type":"string"},"status_tone":{"type":"string","enum":["good","attention","critical","neutral","accent"]},"sub":{"type":"string"},"command_id":{"type":"string","enum":["cmd.msp.hero.standing.v1","cmd.msp.hero.cases.v1","cmd.msp.hero.revenue.v1"]},"supports":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","required":["dim","label","command_id"],"properties":{"dim":{"type":"string"},"label":{"type":"string"},"value":{},"tone":{"type":"string"},"command_id":{"type":"string"}}}},"stable_entity_id":{"type":["string","null"],"description":"Usually null for fleet heroes; set if hero is scoped to a party"}},"example":{"selection_id":"hero:standing","source":"hero","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","stable_entity_id":null,"title":"Good Standing","command_id":"cmd.msp.hero.standing.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.hero.v1","seed":true,"payload":{"hero_id":"standing","label":"Good Standing","value":87,"command_id":"cmd.msp.hero.standing.v1"}}},"hub.neit.opcontext.hot.v1.json":{"contract_id":"hub.neit.opcontext.hot.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.hot.v1","version":"1","status":"LOCKED","source":"hot","block_id":"hot_needs_attention","block_stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.hot.select.v1","list_command_id":"cmd.msp.hot.list.v1","required_payload":["hot_id","type","title","immediate","work_type"],"properties":{"hot_id":{"type":"string"},"type":{"type":"string","enum":["client","matter","alert"]},"work_type":{"type":"string","enum":["incident","security","request","backup","general","maintenance","project"]},"badge":{"type":"string"},"title":{"type":"string"},"sub":{"type":"string"},"status":{"type":"string"},"immediate":{"type":"boolean","description":"true → HOT red only"},"stable_entity_id":{"type":["string","null"],"description":"Client/matter/device subject forever id when bound"},"detail":{"type":"object"},"inspect_command_id":{"type":"string","enum":["cmd.msp.inspect.client.v1","cmd.msp.inspect.matter.v1","cmd.msp.inspect.alert.v1"]}},"example":{"selection_id":"hot:hot-1","source":"hot","block_id":"hot_needs_attention","block_stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","stable_entity_id":null,"title":"Acme Manufacturing","command_id":"cmd.msp.inspect.client.v1","select_command_id":"cmd.msp.hot.select.v1","seed":true,"payload":{"hot_id":"hot-1","type":"client","work_type":"request","immediate":false,"title":"Acme Manufacturing"}}},"hub.neit.opcontext.quick_action.v1.json":{"contract_id":"selection.quick_action.v1","stable_entity_id":"urn:valos:contract:selection.quick_action.v1","version":"1","status":"LOCKED","source":"quick_action","block_id":"quick_actions","block_stable_entity_id":"urn:valos:block:msp.quick_actions.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","required_payload":["action_id","label","command_id"],"properties":{"action_id":{"type":"string"},"label":{"type":"string"},"command_id":{"type":"string","description":"Action to run (create matter, report, surface, …)"},"primary":{"type":"boolean"},"ops_only":{"type":"boolean","const":true},"stable_entity_id":{"type":["string","null"],"description":"Usually null until action scopes a subject"}},"example":{"selection_id":"action:cmd.msp.matter.create.v1","source":"quick_action","block_id":"quick_actions","block_stable_entity_id":"urn:valos:block:msp.quick_actions.v1","stable_entity_id":null,"title":"Create Matter","command_id":"cmd.msp.matter.create.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","seed":true,"payload":{"action_id":"create_matter","label":"Create Matter","command_id":"cmd.msp.matter.create.v1","primary":true}}},"hub.neit.opcontext.stream.v1.json":{"contract_id":"hub.neit.opcontext.stream.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.stream.v1","version":"1","status":"LOCKED","source":"stream","block_id":"fact_stream","block_stable_entity_id":"urn:valos:block:msp.fact_stream.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","list_command_id":"cmd.msp.facts.stream.tail.v1","required_payload":["fact_id","kind","title","command_id"],"properties":{"fact_id":{"type":"string"},"kind":{"type":"string","enum":["matter","client","alert","estate","finance","fact"]},"work_type":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"client":{"type":"string"},"status":{"type":"string"},"status_tone":{"type":"string"},"ref":{"type":"string"},"actor":{"type":"string"},"age":{"type":"string"},"hot":{"type":"boolean"},"command_id":{"type":"string","description":"Originating event command on the fact"},"stable_entity_id":{"type":["string","null"],"description":"Party/matter/device subject on the fact when bound"}},"example":{"selection_id":"stream:fact.msp.stream.8847","source":"stream","block_id":"fact_stream","block_stable_entity_id":"urn:valos:block:msp.fact_stream.v1","stable_entity_id":null,"title":"HOT matter opened — VPN outage site B","command_id":"cmd.msp.matter.open.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","seed":true,"payload":{"fact_id":"fact.msp.stream.8847","kind":"matter","title":"HOT matter opened — VPN outage site B","command_id":"cmd.msp.matter.open.v1","client":"Acme Manufacturing","hot":true}}},"hub.neit.opcontext.support.v1.json":{"contract_id":"selection.support.v1","stable_entity_id":"urn:valos:contract:selection.support.v1","version":"1","status":"LOCKED","source":"support","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.dim.v1","required_payload":["hero_id","dim","label","value","command_id"],"properties":{"hero_id":{"type":"string","enum":["standing","cases","revenue"]},"dim":{"type":"string"},"label":{"type":"string"},"value":{},"tone":{"type":"string"},"command_id":{"type":"string","description":"cmd.msp.dim.*.v1 from scoreboard persona"},"stable_entity_id":{"type":["string","null"]}},"example":{"selection_id":"support:cases:open_matters_critical","source":"support","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","stable_entity_id":null,"title":"HOT Now","command_id":"cmd.msp.dim.open_matters_critical.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.dim.v1","seed":true,"payload":{"hero_id":"cases","dim":"open_matters_critical","label":"HOT Now","value":5,"command_id":"cmd.msp.dim.open_matters_critical.v1"}}},"hub.neit.arch.surface.v1.json":{"id":"hub.neit.dashboard.ARCH.surface.v1","schema":"hub.pack.arch.surface.v1","status":"ALIGNED","aligned_at":"2026-08-06T06:45:27Z","tab_id":"dashboard","bp_id":"bp.hub.neit.dashboard.v1","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing","surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"pack_must":["domain contracts and domain personas only","use var(--select-view) / var(--select-execute) and shared classes","fill shell slots only"],"pack_must_not":["ship persona.product.* files","set --workbench-width or .shell-body grid","redefine select-view / select-execute hex or hover chrome","own brand or product color SOT"],"css":"pack-dashboard.css","js":"pack.js (dashboard mount + router)","verify":{"product_files_in_pack":false,"shared_loaded_from":"bpaas/shared/","select_chrome":"bpaas/shared/hub.shared.chrome.select.v1.css"}},"hub.neit.arch.surface.v1.md":"# Pack arch — dashboard\n\n**ALIGNED** · `2026-08-06T06:45:27Z` · lock `HUB_SURFACE_RUNTIME_FOUR_STAGE.standing`\n\n```text\nshell → shared → pack → active\n```\n\n| Stage | This pack |\n|-------|-----------|\n| Shell | Does not own — `shell.css` |\n| Shared | Cites `bpaas/shared/` only |\n| Pack | Domain body: `bp.hub.neit.dashboard.v1/` |\n| Active | Visibility/permissions — not this folder |\n\n**Must not:** product personas, grid width, brand/color SOT, solid-hover redefine.\n\nMachine: `hub.neit.arch.surface.v1.json`\n"}},"hub.neit.commands.dashboard.v1.json":{"registry_id":"hub.neit.dashboard.commands.v1","stable_entity_id":"urn:valos:registry:hub.neit.dashboard.commands.v1","blueprint_id":"hub.neit.dashboard.v1","pack_id":"hub.neit.v1","version":"1.0.0","status":"PLACEHOLDER","bind_policy":"command_id is run stub until pulse/genie product binds on HQ path","populate_path":"command_id → pulse_or_genie → product","identity":{"command_id":"immutable run id for pulse/genie","stable_entity_id":"forever subject on selection/entity (Option 1)"},"commands":[{"command_id":"cmd.msp.hot.list.v1","block_id":"hot_needs_attention","kind":"list","status":"placeholder"},{"command_id":"cmd.msp.hot.select.v1","block_id":"hot_needs_attention","kind":"select","selection_source":"hot","status":"placeholder"},{"command_id":"cmd.msp.hot.clear_local.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.hot.client.focus.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.hot.promote_from_stream.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hot.attach_fact.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hot.promote_from_signal.v1","block_id":"hot_needs_attention","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.hero.standing.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.hero.cases.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.hero.revenue.v1","block_id":"scoreboard","kind":"hero","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_good.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_attention.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.clients_critical.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.fleet_avg_standing.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.open_matters_critical.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.matters_resolved_24h.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.matters_waiting_on_client.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.mrr_total.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.gross_margin_pct.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.overdue_invoices_total.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.dim.tech_utilization_pct.v1","block_id":"scoreboard","kind":"dim","status":"placeholder"},{"command_id":"cmd.msp.matter.create.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.report.aging.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.report.portfolio.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.client_cc.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.financials.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.surface.fleet_health.v1","block_id":"quick_actions","kind":"action","status":"placeholder"},{"command_id":"cmd.msp.estate.pack.v1","block_id":"msp_estate","kind":"batch","status":"placeholder"},{"command_id":"cmd.msp.estate.managed_clients.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.endpoints_online.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.agreements_active.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.sla_compliance.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.open_tickets.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.tickets_breaching.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.backup_success.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.edr_coverage.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.patch_compliance.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.critical_alerts.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.renewals_90d.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.estate.mrr_at_risk.v1","block_id":"msp_estate","kind":"estate_dim","status":"placeholder"},{"command_id":"cmd.msp.facts.stream.tail.v1","block_id":"fact_stream","kind":"list","status":"placeholder"},{"command_id":"cmd.msp.facts.stream.select.v1","block_id":"fact_stream","kind":"select","selection_source":"stream","status":"placeholder"},{"command_id":"cmd.msp.inspect.selection.v1","block_id":"inspector","kind":"select_bus","status":"placeholder"},{"command_id":"cmd.msp.inspect.client.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.matter.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.alert.v1","block_id":"inspector","kind":"inspect","status":"placeholder"},{"command_id":"cmd.msp.inspect.hero.v1","block_id":"inspector","kind":"inspect","selection_source":"hero","status":"placeholder"},{"command_id":"cmd.msp.inspect.dim.v1","block_id":"inspector","kind":"inspect","selection_source":"support","status":"placeholder"},{"command_id":"cmd.msp.inspect.estate.v1","block_id":"inspector","kind":"inspect","selection_source":"estate","status":"placeholder"},{"command_id":"cmd.msp.inspect.action.v1","block_id":"inspector","kind":"inspect","selection_source":"quick_action","status":"placeholder"},{"command_id":"cmd.msp.inspect.stream.v1","block_id":"inspector","kind":"inspect","selection_source":"stream","status":"placeholder"},{"command_id":"cmd.msp.inspect.evidence.v1","block_id":"inspector","kind":"page","status":"placeholder"},{"command_id":"cmd.msp.inspect.log.v1","block_id":"inspector","kind":"page","status":"placeholder"},{"command_id":"cmd.msp.signal.create.v1","block_id":"quick_actions","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.compose.open.v1","block_id":"inspector","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.hero.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.dim.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.source.estate.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.signal.create_from_stream.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.signal_arm.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.signal_disarm.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.hero.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.estate.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.stream.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.context.hot.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.hover.preview.v1","kind":"interaction_later","status":"placeholder"},{"command_id":"cmd.msp.ui.open_detail.v1","kind":"interaction_later","status":"placeholder"}]},"hub.neit.dc.dashboard.actions.v1.json":{"contract_id":"hub.neit.dc.dashboard.actions.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.actions.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"quick_actions","title":"Quick Actions","selection_contract":"selection.quick_action.v1","note":"Action catalog for B · Quick Actions. Labels + command_id — not hardcoded in pack.js.","actions":[{"id":"create_matter","label":"Create Matter","command_id":"cmd.msp.matter.create.v1","primary":true,"hero":true},{"id":"aging_report","label":"Aging report","command_id":"cmd.msp.report.aging.v1"},{"id":"clear_hot","label":"Clear filters / Hot","command_id":"cmd.msp.hot.clear_local.v1"},{"id":"hot_client","label":"Hot client","command_id":"cmd.msp.hot.client.focus.v1"},{"id":"client_cc","label":"Client CC board","command_id":"cmd.msp.surface.client_cc.v1"},{"id":"financials","label":"View Financials / NEIT","command_id":"cmd.msp.surface.financials.v1"},{"id":"fleet_health","label":"Fleet Health / RMM","command_id":"cmd.msp.surface.fleet_health.v1"},{"id":"portfolio_report","label":"Run Portfolio Report","command_id":"cmd.msp.report.portfolio.v1"}]},"hub.neit.dc.dashboard.dimensions.v1.json":{"contract_id":"hub.neit.dc.dashboard.dimensions.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.dimensions.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"dimensions","title":"Dashboard tab — Dimensions","command_id":"cmd.msp.inspect.dimensions.v1","note":"Tab page data contract — selection field subset"},"hub.neit.dc.dashboard.evidence.v1.json":{"contract_id":"hub.neit.dc.dashboard.evidence.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.evidence.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"evidence","title":"Dashboard tab — Evidence","command_id":"cmd.msp.inspect.evidence.v1","note":"Tab page data contract — evidence bind later"},"hub.neit.dc.dashboard.fact_log.v1.json":{"contract_id":"hub.neit.dc.dashboard.fact_log.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.fact_log.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"fact_log","title":"Dashboard tab — Fact Log","command_id":"cmd.msp.inspect.fact_log.v1","note":"Tab page data contract — business facts only"},"hub.neit.dc.dashboard.hot.queue.v1.json":{"contract_id":"hub.neit.dc.dashboard.hot.queue.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.hot.queue.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"hot_needs_attention","title":"HOT · Needs My Attention queue","command_id":"cmd.msp.hot.list.v1","select_command_id":"cmd.msp.hot.select.v1","selection_contract":"hub.neit.opcontext.hot.v1","projection_mode":"pack_sample_until_command_binds","note":"Queue items live here (pack SOT) — not hardcoded in pack.js. Live list binds later via command.","items":[{"id":"hot-1","type":"client","work_type":"request","badge":"CLIENT","title":"Acme Manufacturing","sub":"Attention · 3 open matters","tag":"HOT","status":"attention","detail":{"standing":"Attention","open_matters":"3","rmm":"12 / 14 online · 1 alert","financials":"MRR $4,200 · GM 58%","cc":"acme.valtience.com"}},{"id":"hot-2","type":"matter","work_type":"incident","badge":"MATTER","title":"VPN outage — site B","sub":"Critical · aging 31h","tag":"CRITICAL","status":"critical","detail":{"age":"31h","assignee":"J. Rivera","history":"Opened → Escalated → Client pinged","client":"Acme Manufacturing","status":"Critical"}},{"id":"hot-3","type":"alert","work_type":"security","badge":"RMM","title":"EDR threat — WS-0142","sub":"Active · quarantined","tag":"ALERT","status":"critical","detail":{"signal":"EDR · malware.generic","source":"SentinelOne","status":"Quarantined","device":"WS-0142 · Northwind","detail":"User clicked phish · isolate ok"}},{"id":"hot-4","type":"client","work_type":"general","badge":"CLIENT","title":"Northwind Traders","sub":"Critical standing","tag":"CRITICAL","status":"critical","detail":{"standing":"Critical","open_matters":"5","rmm":"88 / 96 online · 4 alerts","financials":"MRR $9,800 · overdue $3,100","cc":"northwind.valtience.com"}},{"id":"hot-5","type":"matter","work_type":"backup","badge":"MATTER","title":"Backup failed — NAS-02","sub":"Gate · waiting client","tag":"GATE","status":"attention","detail":{"age":"14h","assignee":"Unassigned","history":"Fail ×3 · waiting storage auth","client":"Contoso Ltd","status":"Waiting on client"}}]},"hub.neit.dc.dashboard.metadata.v1.json":{"contract_id":"hub.neit.dc.dashboard.metadata.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.metadata.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"metadata","title":"Dashboard tab — Metadata","command_id":"cmd.msp.inspect.metadata.v1","note":"Selection package full dump for dashboard selections"},"hub.neit.dc.dashboard.overview.v1.json":{"contract_id":"hub.neit.dc.dashboard.overview.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.overview.v1","version":"1.0.0","status":"ACTIVE","layer":"tab_page","tab_id":"dashboard","page_id":"overview","title":"Dashboard tab — Overview","command_id":"cmd.msp.inspect.overview.v1","fields_policy":"selection projection — board from selection DC","note":"Tab page data contract — load from BPaaS pack. Not inspect.*"},"hub.neit.dc.dashboard.stream.v1.json":{"contract_id":"hub.neit.dc.dashboard.stream.v1","stable_entity_id":"urn:valos:contract:hub.neit.dc.dashboard.stream.v1","version":"1.0.0","status":"ACTIVE","layer":"block","tab_id":"dashboard","block_id":"fact_stream","title":"Fact Stream","command_id":"cmd.msp.facts.stream.tail.v1","select_command_id":"cmd.msp.facts.stream.select.v1","selection_contract":"hub.neit.opcontext.stream.v1","limit":10,"projection_mode":"pack_sample_until_ledger_binds","note":"Stream rows live on pack — not hardcoded in pack.js.","entries":[{"t":"2m","kind":"matter","work_type":"incident","title":"HOT matter opened — VPN outage site B","summary":"Primary WAN down · site B users offline · RMM confirmed","client":"Acme Manufacturing","status":"Critical","status_tone":"critical","ref":"#8847","actor":"J. Rivera","command_id":"cmd.msp.matter.open.v1","fact_id":"fact.msp.stream.8847","hot":true},{"t":"18m","kind":"client","work_type":"general","title":"Client standing → Critical","summary":"Score drop after 2 open criticals + overdue aging","client":"Northwind Traders","status":"Critical","status_tone":"critical","ref":"standing 41","actor":"system","command_id":"cmd.msp.client.standing.v1","fact_id":"fact.msp.stream.northwind.standing","hot":true},{"t":"41m","kind":"matter","work_type":"request","title":"Matter cleared — email queue backlog","summary":"Queue drained · client confirmed mail flow restored","client":"Contoso Ltd","status":"Cleared","status_tone":"good","ref":"#8820","actor":"S. Chen","command_id":"cmd.msp.matter.clear.v1","fact_id":"fact.msp.stream.8820","hot":false},{"t":"1h","kind":"alert","work_type":"security","title":"Critical EDR alert raised","summary":"malware.generic · quarantined · user phish click","client":"Northwind Traders","status":"Quarantined","status_tone":"critical","ref":"WS-0142","actor":"SentinelOne","command_id":"cmd.msp.alert.raise.v1","fact_id":"fact.msp.stream.edr.ws0142","hot":true},{"t":"2h","kind":"matter","work_type":"incident","title":"Aging threshold crossed","summary":"Open >26h without client update · escalate gate","client":"Acme Manufacturing","status":"Aging","status_tone":"attention","ref":"#8841","actor":"unassigned","command_id":"cmd.msp.matter.aging.v1","fact_id":"fact.msp.stream.8841","hot":true},{"t":"3h","kind":"estate","work_type":"backup","title":"Backup success rate dip","summary":"Last job fail ×3 · waiting storage auth","client":"Contoso Ltd","status":"Failing","status_tone":"attention","ref":"NAS-02","actor":"Veeam","command_id":"cmd.msp.estate.backups.v1","fact_id":"fact.msp.stream.nas02","hot":false},{"t":"4h","kind":"estate","work_type":"patch","title":"Patch compliance updated","summary":"Fleet compliance refresh after Tuesday cycle","client":"Portfolio","status":"94.2%","status_tone":"good","ref":"fleet","actor":"RMM","command_id":"cmd.msp.estate.patch.v1","fact_id":"fact.msp.stream.patch","hot":false},{"t":"5h","kind":"matter","work_type":"request","title":"Matter forming — onboarding pack","summary":"Intake pack started · waiting docs from client","client":"Contoso Ltd","status":"Forming","status_tone":"neutral","ref":"#8835","actor":"A. Okonkwo","command_id":"cmd.msp.matter.form.v1","fact_id":"fact.msp.stream.8835","hot":false},{"t":"6h","kind":"finance","work_type":"general","title":"Financial exception — overdue invoices","summary":"Overdue crossed $3.1k · AR watch list","client":"Northwind Traders","status":"Overdue","status_tone":"attention","ref":"$3,100","actor":"NEIT","command_id":"cmd.msp.finance.exception.v1","fact_id":"fact.msp.stream.northwind.ar","hot":true},{"t":"8h","kind":"estate","work_type":"general","title":"Device came online","summary":"Fleet online count recovered after patch reboot window","client":"Portfolio","status":"Online","status_tone":"good","ref":"1,184/1,240","actor":"RMM","command_id":"cmd.msp.estate.devices.v1","fact_id":"fact.msp.stream.devices","hot":false}]},"hub.neit.evidence.index.v1.json":{"id":"EVIDENCE_MANIFEST.bp.hub.neit.dashboard.v1","schema":"bpaas.evidence.manifest.v1","stable_entity_id":"urn:valos:evidence:bp.hub.neit.dashboard.v1","subject":{"blueprint_id":"bp.hub.neit.dashboard.v1","stable_entity_id":"urn:valos:blueprint:hub.neit.dashboard.v1"},"status":"WIP_GOLDEN_P1","generated_at":"2026-08-06T00:20:12Z","retrieval":{"how":"hub-next/bpaas flat pack during P1; BPaaS data/pa after P2 PUBLISH_BP"},"items":[{"path":"hub.neit.dc.dashboard.actions.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.dimensions.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.evidence.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.fact_log.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.hot.queue.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.metadata.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.overview.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.dc.dashboard.stream.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.blocks.dashboard.v1.json","kind":"blocks_registry","stable_entity_id":null},{"path":"hub.neit.toc.dashboard.v1.json","kind":"artifact","stable_entity_id":null},{"path":"hub.neit.commands.dashboard.v1.json","kind":"commands_registry","stable_entity_id":null},{"path":"hub.neit.blueprint.dashboard.v1.json","kind":"blueprint","stable_entity_id":null},{"path":"hub.neit.persona.dashboard.estate.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.neit.persona.dashboard.estate.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.neit.persona.dashboard.scoreboard.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.bind.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.bind.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.brand.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.brand.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.color.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.color.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.shell.v1.md","kind":"persona","stable_entity_id":null},{"path":"hub.shared.persona.shell.v1.rules.json","kind":"persona","stable_entity_id":null},{"path":"hub.neit.opcontext.base.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.estate.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.hero.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.hot.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.quick_action.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.stream.v1.json","kind":"data_contract","stable_entity_id":null},{"path":"hub.neit.opcontext.support.v1.json","kind":"data_contract","stable_entity_id":null}]},"hub.neit.manifest.product.v1.json":{"id":"PACK.product.manifest.bp.hub.neit.dashboard.v1","schema":"bpaas.pack.product.manifest.v1","blueprint_id":"bp.hub.neit.dashboard.v1","stable_entity_id":"urn:valos:blueprint:hub.neit.dashboard.v1","status":"WIP_GOLDEN_P1","generated_at":"2026-08-06T00:20:12Z","rule":"Product pack only — no audit/compare/MOT/prep under product export","sot":"data/pa/HUB_GOLDEN_OUTCOME_OVERLAY.arch.lock.json","product_vs_prep":"data/pa/hub.golden.evidence.export_rule.v1.md","items":[{"path":"hub.neit.evidence.index.v1.json","kind":"manifest","product":true},{"path":"hub.neit.manifest.product.v1.json","kind":"manifest","product":true},{"path":"hub.neit.dc.dashboard.actions.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.dimensions.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.evidence.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.fact_log.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.hot.queue.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.metadata.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.overview.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.dc.dashboard.stream.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.blocks.dashboard.v1.json","kind":"blocks_registry","product":true},{"path":"hub.neit.toc.dashboard.v1.json","kind":"artifact","product":true},{"path":"hub.neit.commands.dashboard.v1.json","kind":"commands_registry","product":true},{"path":"hub.neit.blueprint.dashboard.v1.json","kind":"blueprint","product":true},{"path":"hub.neit.persona.dashboard.estate.v1.md","kind":"persona","product":true},{"path":"hub.neit.persona.dashboard.estate.v1.rules.json","kind":"persona","product":true},{"path":"hub.neit.persona.dashboard.scoreboard.v1.md","kind":"persona","product":true},{"path":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","kind":"persona","product":true},{"path":"hub.shared.persona.bind.v1.md","kind":"persona","product":true},{"path":"hub.shared.persona.bind.v1.rules.json","kind":"persona","product":true},{"path":"hub.shared.persona.brand.v1.md","kind":"persona","product":true},{"path":"hub.shared.persona.brand.v1.rules.json","kind":"persona","product":true},{"path":"hub.shared.persona.color.v1.md","kind":"persona","product":true},{"path":"hub.shared.persona.color.v1.rules.json","kind":"persona","product":true},{"path":"hub.shared.persona.shell.v1.md","kind":"persona","product":true},{"path":"hub.shared.persona.shell.v1.rules.json","kind":"persona","product":true},{"path":"hub.neit.opcontext.base.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.estate.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.hero.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.hot.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.quick_action.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.stream.v1.json","kind":"data_contract","product":true},{"path":"hub.neit.opcontext.support.v1.json","kind":"data_contract","product":true}],"excluded_top_level":[],"notes":["Flat pack lab layout on hub-next/bpaas (P1).","PRE_MOVE nested evidence tree may live under _old_evidence_tree/ as prep — not product."]},"hub.neit.opcontext.base.v1.json":{"contract_id":"hub.neit.opcontext.base.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.base.v1","version":"1","status":"LOCKED","title":"Dashboard selection envelope (all sources)","description":"Every inspector-driving selection MUST carry this envelope. command_id = run; stable_entity_id = forever subject when known (Option 1).","required":["selection_id","source","block_id","title","command_id","select_command_id","selected_at"],"properties":{"selection_id":{"type":"string","description":"Session selection id (may be composite lab id)"},"stable_entity_id":{"type":["string","null"],"description":"Forever subject when bound — immutable from Signal/entity. Null only in SEED until bind.","pattern_hint":"urn:valos:*"},"source":{"type":"string","enum":["hot","hero","support","estate","quick_action","stream"]},"block_id":{"type":"string","enum":["hot_needs_attention","scoreboard","quick_actions","msp_estate","fact_stream","inspector"]},"block_stable_entity_id":{"type":"string","description":"Registered block urn from hub.neit.dashboard.blocks.v1"},"title":{"type":"string"},"sub":{"type":"string"},"badge":{"type":"string"},"command_id":{"type":"string","description":"Primary command for this selection (drill/run)"},"select_command_id":{"type":"string","description":"Command that established this selection"},"inspect_command_id":{"type":"string","description":"Inspector load/inspect command for this source"},"selected_at":{"type":"string","format":"date-time"},"seed":{"type":"boolean","description":"true while SEED LAB — not production truth"},"payload":{"type":"object","description":"Source-specific fields (see selection.*.v1.json)"}},"rules":["Inspector always remounts from currentSelection matching this envelope","stable_entity_id required on live bind for entity-backed sources (hot client/matter, stream party)","Do not invent parallel selection shapes in pack.js without contract delta"]},"hub.neit.opcontext.estate.v1.json":{"contract_id":"selection.estate.v1","stable_entity_id":"urn:valos:contract:selection.estate.v1","version":"1","status":"LOCKED","source":"estate","block_id":"msp_estate","block_stable_entity_id":"urn:valos:block:msp.estate.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.estate.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","required_payload":["estate_key","label","value","command_id"],"properties":{"estate_key":{"type":"string","description":"Key from hub.neit.persona.dashboard.estate.v1 dims catalog (provisional)"},"label":{"type":"string"},"value":{},"tone":{"type":"string","enum":["good","attention","critical","neutral","accent"]},"icon":{"type":"string"},"command_id":{"type":"string","description":"cmd.msp.estate.*.v1 from estate persona"},"stable_entity_id":{"type":["string","null"],"description":"Null for fleet rollups; set if dim is party-scoped"}},"catalog_sot":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json#dims","example":{"selection_id":"estate:endpoints_online","source":"estate","block_id":"msp_estate","block_stable_entity_id":"urn:valos:block:msp.estate.v1","stable_entity_id":null,"title":"Endpoints online","command_id":"cmd.msp.estate.endpoints_online.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.estate.v1","seed":true,"payload":{"estate_key":"endpoints_online","label":"Endpoints online","value":"1,184 / 1,240","tone":"good","command_id":"cmd.msp.estate.endpoints_online.v1"}}},"hub.neit.opcontext.hero.v1.json":{"contract_id":"selection.hero.v1","stable_entity_id":"urn:valos:contract:selection.hero.v1","version":"1","status":"LOCKED","source":"hero","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.hero.v1","required_payload":["hero_id","label","value","command_id"],"properties":{"hero_id":{"type":"string","enum":["standing","cases","revenue"],"description":"Only three heroes — SOT hub.neit.persona.dashboard.scoreboard.v1"},"label":{"type":"string"},"value":{},"unit":{"type":"string"},"status":{"type":"string"},"status_tone":{"type":"string","enum":["good","attention","critical","neutral","accent"]},"sub":{"type":"string"},"command_id":{"type":"string","enum":["cmd.msp.hero.standing.v1","cmd.msp.hero.cases.v1","cmd.msp.hero.revenue.v1"]},"supports":{"type":"array","minItems":4,"maxItems":4,"items":{"type":"object","required":["dim","label","command_id"],"properties":{"dim":{"type":"string"},"label":{"type":"string"},"value":{},"tone":{"type":"string"},"command_id":{"type":"string"}}}},"stable_entity_id":{"type":["string","null"],"description":"Usually null for fleet heroes; set if hero is scoped to a party"}},"example":{"selection_id":"hero:standing","source":"hero","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","stable_entity_id":null,"title":"Good Standing","command_id":"cmd.msp.hero.standing.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.hero.v1","seed":true,"payload":{"hero_id":"standing","label":"Good Standing","value":87,"command_id":"cmd.msp.hero.standing.v1"}}},"hub.neit.opcontext.hot.v1.json":{"contract_id":"hub.neit.opcontext.hot.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.hot.v1","version":"1","status":"LOCKED","source":"hot","block_id":"hot_needs_attention","block_stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.hot.select.v1","list_command_id":"cmd.msp.hot.list.v1","required_payload":["hot_id","type","title","immediate","work_type"],"properties":{"hot_id":{"type":"string"},"type":{"type":"string","enum":["client","matter","alert"]},"work_type":{"type":"string","enum":["incident","security","request","backup","general","maintenance","project"]},"badge":{"type":"string"},"title":{"type":"string"},"sub":{"type":"string"},"status":{"type":"string"},"immediate":{"type":"boolean","description":"true → HOT red only"},"stable_entity_id":{"type":["string","null"],"description":"Client/matter/device subject forever id when bound"},"detail":{"type":"object"},"inspect_command_id":{"type":"string","enum":["cmd.msp.inspect.client.v1","cmd.msp.inspect.matter.v1","cmd.msp.inspect.alert.v1"]}},"example":{"selection_id":"hot:hot-1","source":"hot","block_id":"hot_needs_attention","block_stable_entity_id":"urn:valos:block:msp.hot_needs_attention.v1","stable_entity_id":null,"title":"Acme Manufacturing","command_id":"cmd.msp.inspect.client.v1","select_command_id":"cmd.msp.hot.select.v1","seed":true,"payload":{"hot_id":"hot-1","type":"client","work_type":"request","immediate":false,"title":"Acme Manufacturing"}}},"hub.neit.opcontext.quick_action.v1.json":{"contract_id":"selection.quick_action.v1","stable_entity_id":"urn:valos:contract:selection.quick_action.v1","version":"1","status":"LOCKED","source":"quick_action","block_id":"quick_actions","block_stable_entity_id":"urn:valos:block:msp.quick_actions.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","required_payload":["action_id","label","command_id"],"properties":{"action_id":{"type":"string"},"label":{"type":"string"},"command_id":{"type":"string","description":"Action to run (create matter, report, surface, …)"},"primary":{"type":"boolean"},"ops_only":{"type":"boolean","const":true},"stable_entity_id":{"type":["string","null"],"description":"Usually null until action scopes a subject"}},"example":{"selection_id":"action:cmd.msp.matter.create.v1","source":"quick_action","block_id":"quick_actions","block_stable_entity_id":"urn:valos:block:msp.quick_actions.v1","stable_entity_id":null,"title":"Create Matter","command_id":"cmd.msp.matter.create.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.action.v1","seed":true,"payload":{"action_id":"create_matter","label":"Create Matter","command_id":"cmd.msp.matter.create.v1","primary":true}}},"hub.neit.opcontext.stream.v1.json":{"contract_id":"hub.neit.opcontext.stream.v1","stable_entity_id":"urn:valos:contract:hub.neit.opcontext.stream.v1","version":"1","status":"LOCKED","source":"stream","block_id":"fact_stream","block_stable_entity_id":"urn:valos:block:msp.fact_stream.v1","extends":"hub.neit.opcontext.base.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","list_command_id":"cmd.msp.facts.stream.tail.v1","required_payload":["fact_id","kind","title","command_id"],"properties":{"fact_id":{"type":"string"},"kind":{"type":"string","enum":["matter","client","alert","estate","finance","fact"]},"work_type":{"type":"string"},"title":{"type":"string"},"summary":{"type":"string"},"client":{"type":"string"},"status":{"type":"string"},"status_tone":{"type":"string"},"ref":{"type":"string"},"actor":{"type":"string"},"age":{"type":"string"},"hot":{"type":"boolean"},"command_id":{"type":"string","description":"Originating event command on the fact"},"stable_entity_id":{"type":["string","null"],"description":"Party/matter/device subject on the fact when bound"}},"example":{"selection_id":"stream:fact.msp.stream.8847","source":"stream","block_id":"fact_stream","block_stable_entity_id":"urn:valos:block:msp.fact_stream.v1","stable_entity_id":null,"title":"HOT matter opened — VPN outage site B","command_id":"cmd.msp.matter.open.v1","select_command_id":"cmd.msp.facts.stream.select.v1","inspect_command_id":"cmd.msp.inspect.stream.v1","seed":true,"payload":{"fact_id":"fact.msp.stream.8847","kind":"matter","title":"HOT matter opened — VPN outage site B","command_id":"cmd.msp.matter.open.v1","client":"Acme Manufacturing","hot":true}}},"hub.neit.opcontext.support.v1.json":{"contract_id":"selection.support.v1","stable_entity_id":"urn:valos:contract:selection.support.v1","version":"1","status":"LOCKED","source":"support","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","extends":"hub.neit.opcontext.base.v1","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.dim.v1","required_payload":["hero_id","dim","label","value","command_id"],"properties":{"hero_id":{"type":"string","enum":["standing","cases","revenue"]},"dim":{"type":"string"},"label":{"type":"string"},"value":{},"tone":{"type":"string"},"command_id":{"type":"string","description":"cmd.msp.dim.*.v1 from scoreboard persona"},"stable_entity_id":{"type":["string","null"]}},"example":{"selection_id":"support:cases:open_matters_critical","source":"support","block_id":"scoreboard","block_stable_entity_id":"urn:valos:block:msp.scoreboard.v1","stable_entity_id":null,"title":"HOT Now","command_id":"cmd.msp.dim.open_matters_critical.v1","select_command_id":"cmd.msp.inspect.selection.v1","inspect_command_id":"cmd.msp.inspect.dim.v1","seed":true,"payload":{"hero_id":"cases","dim":"open_matters_critical","label":"HOT Now","value":5,"command_id":"cmd.msp.dim.open_matters_critical.v1"}}},"hub.neit.persona.dashboard.estate.v1.md":"---\nstable_entity_id: \"urn:valos:persona:msp.estate.v1\"\nregistry_family: \"personas\"\nentry_id: \"hub.neit.persona.dashboard.estate.v1\"\npersona_id: \"hub.neit.persona.dashboard.estate.v1\"\ndisplay_name: \"MSP Estate Persona\"\npersona_type: \"domain_role\"\npersona_kind: \"block_persona\"\naltitude: \"hub_msp_ops\"\nbrain_for: \"msp_estate_fact_dims\"\nstatus: \"active\"\nversion: \"1\"\nowner_ref: \"operator\"\nposture: \"internal\"\nparent_persona_ref: \"persona.product.pack.v1\"\nchild_persona_refs: []\npurpose: >\n  Owns the Master MSP dashboard C·MSP Estate dimension catalog: which facts appear\n  as estate pills, their labels, command_ids, tones, icons, and batch hydrate rules.\n  NOT an RMM asset census (printers/cameras/APs laundry list). Portfolio + ops health\n  dims only. Pack UI loads+evaluates this persona — never sole-owns the field list.\nallowed_callers:\n  - \"val-genie-runtime\"\n  - \"pulse\"\n  - \"flow\"\n  - \"pa_engine\"\n  - \"codex\"\n  - \"claude\"\n  - \"grok\"\n  - \"human_builder\"\n  - \"builder\"\ndenied_callers:\n  - \"block\"\nauthority:\n  can_advise: true\n  can_request_action: true\n  can_execute_action: false\nrisk_tier: \"medium\"\naudit_required: true\noutput_contract_ref: \"persona.context.v1\"\nrules_location: \"this_md_machine_rules_section\"\nrules_companion: \"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json\"\nneit_registry:\n  family: \"msp.dashboard.personas\"\n  seed: \"data/pa/neit.msp.dashboard.persona.registry.v1.json\"\n  ordinal: 2\n  registry_scope: \"neit_platform\"\ngrounding_refs:\n  - \"hub.neit.dashboard.v1\"\n  - \"hub.neit.persona.dashboard.scoreboard.v1\"\n  - \"persona.signal.color.v1\"\nrelated_personas:\n  - \"hub.neit.persona.dashboard.scoreboard.v1\"\n  - \"persona.signal.color.v1\"\n  - \"persona.product.pack.v1\"\nnote_related: >\n  Lab SEED used device/printer/camera inventory pills — RETIRED as living SOT.\n  This persona owns the real estate catalog. Edit dims here; re-run estate facts.\n---\n\n# MSP Estate Persona\n\n**Block persona** · altitude **hub_msp_ops** · brain for **C · MSP Estate**\n\n## One-liner\n\n> **Estate = portfolio / ops health facts for the MSP board — not a second scoreboard and not an RMM asset inventory dump. Dim list and commands live on this persona.**\n\n## What this is / is not\n\n| Is | Is not |\n|----|--------|\n| Managed portfolio health dims | Scoreboard heroes (those are scoreboard persona) |\n| Facts operators act on at a glance | Full CMDB / every device class |\n| Command-bound pills (`cmd.msp.estate.*`) | Hardcoded 16-cell list only in pack.js |\n| Editable SOT for team | One-off seed inventory (printers, cameras, APs as the product truth) |\n\n### Retired lab seed (do not re-promote as SOT)\n\n`devices, users, licenses, sites, cameras, firewalls, servers, workstations, networks, storage_tb, m365_seats, printers, aps` as the **primary** estate board — useful for RMM deep-dives later under a different surface, **not** the Master MSP estate band.\n\n## Living estate catalog (v1 provisional)\n\n**Status:** `provisional` — operator may reorder / replace dims via persona delta without UI rewrite.  \n**Count:** 12 (dense band; not 16 asset types).  \n**Batch hydrate (optional):** `cmd.msp.estate.pack.v1`\n\n| # | key | label | command_id | tone default | meaning |\n|---|-----|--------|------------|--------------|---------|\n| 1 | `managed_clients` | Managed clients | `cmd.msp.estate.managed_clients.v1` | neutral | Clients under active agreement |\n| 2 | `endpoints_online` | Endpoints online | `cmd.msp.estate.endpoints_online.v1` | good | Online / total managed endpoints |\n| 3 | `agreements_active` | Agreements | `cmd.msp.estate.agreements_active.v1` | neutral | Live managed-service agreements |\n| 4 | `sla_compliance_pct` | SLA met | `cmd.msp.estate.sla_compliance.v1` | good | % tickets/matters in SLA |\n| 5 | `open_tickets` | Open tickets | `cmd.msp.estate.open_tickets.v1` | attention | Open PSA/matter work |\n| 6 | `tickets_breaching` | SLA breach risk | `cmd.msp.estate.tickets_breaching.v1` | critical | At or past SLA |\n| 7 | `backup_success_pct` | Backup success | `cmd.msp.estate.backup_success.v1` | good | Last-cycle backup success |\n| 8 | `edr_coverage_pct` | EDR coverage | `cmd.msp.estate.edr_coverage.v1` | good | Protected / in-scope |\n| 9 | `patch_compliance_pct` | Patch | `cmd.msp.estate.patch_compliance.v1` | good | Fleet patch compliance |\n| 10 | `critical_alerts` | Critical alerts | `cmd.msp.estate.critical_alerts.v1` | critical | Open critical RMM/EDR |\n| 11 | `renewals_90d` | Renewals 90d | `cmd.msp.estate.renewals_90d.v1` | attention | Agreements renewing ≤90d |\n| 12 | `mrr_at_risk` | MRR at risk | `cmd.msp.estate.mrr_at_risk.v1` | attention | Revenue on at-risk accounts |\n\n**Icons:** monoline key → icon map may live in UI; **keys** are owned here.\n\n## Cell product shape (genie → UI)\n\n```json\n{\n  \"key\": \"endpoints_online\",\n  \"label\": \"Endpoints online\",\n  \"value\": \"1184 / 1240\",\n  \"tone\": \"good\",\n  \"command_id\": \"cmd.msp.estate.endpoints_online.v1\",\n  \"stable_entity_id\": null\n}\n```\n\n## Standing split\n\n| Layer | Owns |\n|-------|------|\n| **This persona** | Dim keys, labels, order, command_ids, default tones |\n| **hub.neit.persona.dashboard.scoreboard.v1** | Heroes only (GS / Cases / Revenue) |\n| **hub.neit.dashboard.v1** | Zone C mount; cites `rules_source` |\n| **UI** | Layout density, icons, click → command |\n\n## Machine rules\n\n```json\n{\n  \"rules_owner\": \"persona\",\n  \"persona_id\": \"hub.neit.persona.dashboard.estate.v1\",\n  \"display_name\": \"MSP Estate Persona\",\n  \"kind\": \"block_persona\",\n  \"version\": \"1\",\n  \"status\": \"ACTIVE\",\n  \"catalog_status\": \"provisional\",\n  \"stable_entity_id\": \"urn:valos:persona:msp.estate.v1\",\n  \"rules_source\": \"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json\",\n  \"meta_owner\": \"persona.pa.engine.v1\",\n  \"batch_command_id\": \"cmd.msp.estate.pack.v1\",\n  \"retired_lab_inventory_keys\": [\n    \"cameras\", \"printers\", \"aps\", \"firewalls\", \"networks\",\n    \"storage_tb\", \"m365_seats\", \"workstations\", \"servers\", \"users\", \"licenses\", \"sites\"\n  ],\n  \"note_retired\": \"RMM asset census is not the living Master MSP estate band. Deep asset views bind under Fleet Health surface later.\",\n  \"dims\": [\n    { \"key\": \"managed_clients\", \"label\": \"Managed clients\", \"command_id\": \"cmd.msp.estate.managed_clients.v1\", \"tone\": \"neutral\", \"icon\": \"users\" },\n    { \"key\": \"endpoints_online\", \"label\": \"Endpoints online\", \"command_id\": \"cmd.msp.estate.endpoints_online.v1\", \"tone\": \"good\", \"icon\": \"devices\" },\n    { \"key\": \"agreements_active\", \"label\": \"Agreements\", \"command_id\": \"cmd.msp.estate.agreements_active.v1\", \"tone\": \"neutral\", \"icon\": \"licenses\" },\n    { \"key\": \"sla_compliance_pct\", \"label\": \"SLA met\", \"command_id\": \"cmd.msp.estate.sla_compliance.v1\", \"tone\": \"good\", \"icon\": \"patch\" },\n    { \"key\": \"open_tickets\", \"label\": \"Open tickets\", \"command_id\": \"cmd.msp.estate.open_tickets.v1\", \"tone\": \"attention\", \"icon\": \"servers\" },\n    { \"key\": \"tickets_breaching\", \"label\": \"SLA breach risk\", \"command_id\": \"cmd.msp.estate.tickets_breaching.v1\", \"tone\": \"critical\", \"icon\": \"threats\" },\n    { \"key\": \"backup_success_pct\", \"label\": \"Backup success\", \"command_id\": \"cmd.msp.estate.backup_success.v1\", \"tone\": \"good\", \"icon\": \"backups\" },\n    { \"key\": \"edr_coverage_pct\", \"label\": \"EDR coverage\", \"command_id\": \"cmd.msp.estate.edr_coverage.v1\", \"tone\": \"good\", \"icon\": \"firewalls\" },\n    { \"key\": \"patch_compliance_pct\", \"label\": \"Patch\", \"command_id\": \"cmd.msp.estate.patch_compliance.v1\", \"tone\": \"good\", \"icon\": \"patch\" },\n    { \"key\": \"critical_alerts\", \"label\": \"Critical alerts\", \"command_id\": \"cmd.msp.estate.critical_alerts.v1\", \"tone\": \"critical\", \"icon\": \"threats\" },\n    { \"key\": \"renewals_90d\", \"label\": \"Renewals 90d\", \"command_id\": \"cmd.msp.estate.renewals_90d.v1\", \"tone\": \"attention\", \"icon\": \"sites\" },\n    { \"key\": \"mrr_at_risk\", \"label\": \"MRR at risk\", \"command_id\": \"cmd.msp.estate.mrr_at_risk.v1\", \"tone\": \"attention\", \"icon\": \"storage_tb\" }\n  ],\n  \"evaluate\": [\n    { \"id\": \"not_inventory_dump\", \"check\": \"no retired_lab_inventory_keys as sole living catalog\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"every_dim_has_command\", \"check\": \"each dim.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"not_second_scoreboard\", \"check\": \"no hero_order fields on estate persona\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"rules_source_cited\", \"check\": \"dashboard BP cites this persona\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"dim_change_is_persona_delta\", \"check\": \"field list edits land here first\", \"on_fail\": \"HUMAN\" }\n  ],\n  \"fail_if\": [\n    \"estate dims only hardcoded in pack.js with no persona\",\n    \"re-promote printers/cameras/APs laundry list as Master MSP estate SOT without PLAN DELTA\",\n    \"estate persona owns Good Standing / Cases / Revenue heroes\"\n  ]\n}\n```\n\n## Operator edit path\n\n```text\nWrong estate metrics?\n  → edit hub.neit.persona.dashboard.estate.v1 (MD machine rules + companion rules.json)\n  → re-run estate pack / dims\n  → UI loads catalog — do not invent a parallel table in pack.js\n```\n\n## Fail the change if\n\n- Living estate list only in seed `msp_estate` object in pack.js  \n- Inventory census returns as the product truth without persona delta  \n- Heroes and estate mixed into one persona field table  \n","hub.neit.persona.dashboard.estate.v1.rules.json":{"rules_owner":"persona","persona_id":"hub.neit.persona.dashboard.estate.v1","display_name":"MSP Estate Persona","kind":"block_persona","version":"1.1.0","status":"ACTIVE","catalog_status":"provisional","stable_entity_id":"urn:valos:persona:msp.estate.v1","rules_source":"data/pa/hub.neit.persona.dashboard.estate.v1.rules.json","okf_md":"okf/registry/personas/hub.neit.persona.dashboard.estate.v1.md","meta_owner":"persona.pa.engine.v1","batch_command_id":"cmd.msp.estate.pack.v1","note":"Portfolio / ops health — not RMM asset census. Edit dims here; UI loads only.","retired_lab_inventory_keys":["cameras","printers","aps","firewalls","networks","storage_tb","m365_seats","workstations","servers","users","licenses","sites","devices"],"dims":[{"key":"managed_clients","label":"Managed clients","command_id":"cmd.msp.estate.managed_clients.v1","tone":"neutral","icon":"users","seed_value":"41"},{"key":"endpoints_online","label":"Endpoints online","command_id":"cmd.msp.estate.endpoints_online.v1","tone":"good","icon":"devices","seed_value":"1,184 / 1,240"},{"key":"agreements_active","label":"Agreements","command_id":"cmd.msp.estate.agreements_active.v1","tone":"neutral","icon":"licenses","seed_value":"38"},{"key":"sla_compliance_pct","label":"SLA met","command_id":"cmd.msp.estate.sla_compliance.v1","tone":"good","icon":"patch","seed_value":"96.4%"},{"key":"open_tickets","label":"Open tickets","command_id":"cmd.msp.estate.open_tickets.v1","tone":"attention","icon":"servers","seed_value":"42"},{"key":"tickets_breaching","label":"SLA breach risk","command_id":"cmd.msp.estate.tickets_breaching.v1","tone":"critical","icon":"threats","seed_value":"5"},{"key":"backup_success_pct","label":"Backup success","command_id":"cmd.msp.estate.backup_success.v1","tone":"good","icon":"backups","seed_value":"98.1%"},{"key":"edr_coverage_pct","label":"EDR coverage","command_id":"cmd.msp.estate.edr_coverage.v1","tone":"good","icon":"firewalls","seed_value":"97.2%"},{"key":"patch_compliance_pct","label":"Patch","command_id":"cmd.msp.estate.patch_compliance.v1","tone":"good","icon":"patch","seed_value":"94.2%"},{"key":"critical_alerts","label":"Critical alerts","command_id":"cmd.msp.estate.critical_alerts.v1","tone":"critical","icon":"threats","seed_value":"2"},{"key":"renewals_90d","label":"Renewals 90d","command_id":"cmd.msp.estate.renewals_90d.v1","tone":"attention","icon":"sites","seed_value":"4"},{"key":"mrr_at_risk","label":"MRR at risk","command_id":"cmd.msp.estate.mrr_at_risk.v1","tone":"attention","icon":"storage_tb","seed_value":"$18.4k"}],"evaluate":[{"id":"not_inventory_dump","pass":"PASS","fail":"FAIL"},{"id":"every_dim_has_command","pass":"PASS","fail":"FAIL"},{"id":"not_second_scoreboard","pass":"PASS","fail":"FAIL"}],"fail_if":["estate dims only hardcoded in pack.js with no persona","re-promote printers/cameras/APs laundry list as Master MSP estate SOT without PLAN DELTA","estate persona owns Good Standing / Cases / Revenue heroes"],"projection_label":"BPaaS · pack projection"},"hub.neit.persona.dashboard.scoreboard.v1.md":"---\nstable_entity_id: \"urn:valos:persona:msp.scoreboard.v1\"\nregistry_family: \"personas\"\nentry_id: \"hub.neit.persona.dashboard.scoreboard.v1\"\npersona_id: \"hub.neit.persona.dashboard.scoreboard.v1\"\ndisplay_name: \"MSP Scoreboard Heroes Persona\"\npersona_type: \"domain_role\"\npersona_kind: \"block_persona\"\naltitude: \"hub_msp_ops\"\nbrain_for: \"msp_scoreboard_heroes_and_supports\"\nstatus: \"active\"\nversion: \"1\"\nowner_ref: \"operator\"\nposture: \"internal\"\nparent_persona_ref: \"persona.product.pack.v1\"\nchild_persona_refs: []\npurpose: >\n  Owns the Master MSP dashboard A·Scoreboard intelligence: three interchangeable\n  hero cards (Good Standing | Matters/Cases | Revenue) and each hero’s four support\n  dimensions, command_ids, tones, and evaluate rules. Hub pack and genie load+evaluate\n  only — no hero field tables sole-owned in pack.js or serve.py.\nallowed_callers:\n  - \"val-genie-runtime\"\n  - \"pulse\"\n  - \"flow\"\n  - \"pa_engine\"\n  - \"codex\"\n  - \"claude\"\n  - \"grok\"\n  - \"human_builder\"\n  - \"builder\"\ndenied_callers:\n  - \"block\"\nauthority:\n  can_advise: true\n  can_request_action: true\n  can_execute_action: false\nrisk_tier: \"medium\"\naudit_required: true\noutput_contract_ref: \"persona.context.v1\"\nrules_location: \"this_md_machine_rules_section\"\nrules_companion: \"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json\"\nneit_registry:\n  family: \"msp.dashboard.personas\"\n  seed: \"data/pa/neit.msp.dashboard.persona.registry.v1.json\"\n  ordinal: 1\n  registry_scope: \"neit_platform\"\ngrounding_refs:\n  - \"hub.neit.dashboard.v1\"\n  - \"persona.product.pack.v1\"\n  - \"persona.signal.color.v1\"\n  - \"COMMAND_ID_VS_STABLE_ENTITY\"\nrelated_personas:\n  - \"hub.neit.persona.dashboard.estate.v1\"\n  - \"persona.signal.color.v1\"\n  - \"persona.product.pack.v1\"\nnote_related: >\n  Scoreboard owns hero + support catalog. Estate owns C·MSP Estate dims only.\n  Signal color owns tone meaning. Pack owns shell/tabs order — not hero fields.\n---\n\n# MSP Scoreboard Heroes Persona\n\n**Block persona** · altitude **hub_msp_ops** · brain for **A · Scoreboard**\n\n## One-liner\n\n> **Three heroes only: Good Standing | Matters/Cases | Revenue. Each owns four supports. Catalog and commands live here; genie loads this persona; UI evaluates only.**\n\n## Standing split\n\n| Layer | Owns |\n|-------|------|\n| **This persona** | Hero ids, labels, order, support dims, command_ids, status_tone rules |\n| **persona.signal.color.v1** | How tone maps to color (good / attention / critical) |\n| **hub.neit.dashboard.v1** | Mount zone A; cites this persona as `rules_source` |\n| **pack.js / UI** | Render only — no parallel hero tables |\n\n## Hero lock (product)\n\n```text\nhero_order = [ standing, cases, revenue ]\n```\n\n| id | Label | Headline command |\n|----|--------|------------------|\n| `standing` | Good Standing | `cmd.msp.hero.standing.v1` |\n| `cases` | Matters / Cases | `cmd.msp.hero.cases.v1` |\n| `revenue` | Revenue | `cmd.msp.hero.revenue.v1` |\n\nInterchangeable presentation order only — **do not** mint a fourth hero without a persona delta.\n\n## Supports (4 each)\n\n### standing\n\n| dim | label | command_id | tone hint |\n|-----|--------|------------|-----------|\n| `clients_good` | Clients Good | `cmd.msp.dim.clients_good.v1` | good |\n| `clients_attention` | Attention | `cmd.msp.dim.clients_attention.v1` | attention |\n| `clients_critical` | Critical | `cmd.msp.dim.clients_critical.v1` | critical |\n| `fleet_avg_standing` | Avg score | `cmd.msp.dim.fleet_avg_standing.v1` | neutral |\n\n### cases\n\n| dim | label | command_id | tone hint |\n|-----|--------|------------|-----------|\n| `open_matters_critical` | HOT Now | `cmd.msp.dim.open_matters_critical.v1` | critical |\n| `open_matters_aging_gt_24h` | Aging >24h | `cmd.msp.dim.open_matters_aging_gt_24h.v1` | attention |\n| `matters_resolved_24h` | Cleared 24h | `cmd.msp.dim.matters_resolved_24h.v1` | good |\n| `matters_waiting_on_client` | Gates | `cmd.msp.dim.matters_waiting_on_client.v1` | attention |\n\n### revenue\n\n| dim | label | command_id | tone hint | note |\n|-----|--------|------------|-----------|------|\n| `mrr_total` | MRR | `cmd.msp.dim.mrr_total.v1` | accent | internal / role-gate later |\n| `gross_margin_pct` | Gross margin | `cmd.msp.dim.gross_margin_pct.v1` | good | internal |\n| `overdue_invoices_total` | Overdue | `cmd.msp.dim.overdue_invoices_total.v1` | attention | internal |\n| `tech_utilization_pct` | Utilization | `cmd.msp.dim.tech_utilization_pct.v1` | neutral | internal |\n\n## Knows (summary)\n\n- Exactly three heroes; four supports each  \n- Click hero → hero `command_id`; click support → dim `command_id`  \n- Status color from signal persona, not free hex in UI  \n- `command_id` = run; subjects carry `stable_entity_id` when entity-bound  \n\n## Machine rules\n\n```json\n{\n  \"rules_owner\": \"persona\",\n  \"persona_id\": \"hub.neit.persona.dashboard.scoreboard.v1\",\n  \"display_name\": \"MSP Scoreboard Heroes Persona\",\n  \"kind\": \"block_persona\",\n  \"version\": \"1\",\n  \"status\": \"ACTIVE\",\n  \"stable_entity_id\": \"urn:valos:persona:msp.scoreboard.v1\",\n  \"rules_source\": \"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json\",\n  \"meta_owner\": \"persona.pa.engine.v1\",\n  \"hero_order\": [\"standing\", \"cases\", \"revenue\"],\n  \"heroes\": {\n    \"standing\": {\n      \"id\": \"standing\",\n      \"label\": \"Good Standing\",\n      \"command_id\": \"cmd.msp.hero.standing.v1\",\n      \"supports\": [\n        { \"dim\": \"clients_good\", \"label\": \"Clients Good\", \"command_id\": \"cmd.msp.dim.clients_good.v1\", \"tone\": \"good\" },\n        { \"dim\": \"clients_attention\", \"label\": \"Attention\", \"command_id\": \"cmd.msp.dim.clients_attention.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"clients_critical\", \"label\": \"Critical\", \"command_id\": \"cmd.msp.dim.clients_critical.v1\", \"tone\": \"critical\" },\n        { \"dim\": \"fleet_avg_standing\", \"label\": \"Avg score\", \"command_id\": \"cmd.msp.dim.fleet_avg_standing.v1\", \"tone\": \"neutral\" }\n      ]\n    },\n    \"cases\": {\n      \"id\": \"cases\",\n      \"label\": \"Matters / Cases\",\n      \"command_id\": \"cmd.msp.hero.cases.v1\",\n      \"supports\": [\n        { \"dim\": \"open_matters_critical\", \"label\": \"HOT Now\", \"command_id\": \"cmd.msp.dim.open_matters_critical.v1\", \"tone\": \"critical\" },\n        { \"dim\": \"open_matters_aging_gt_24h\", \"label\": \"Aging >24h\", \"command_id\": \"cmd.msp.dim.open_matters_aging_gt_24h.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"matters_resolved_24h\", \"label\": \"Cleared 24h\", \"command_id\": \"cmd.msp.dim.matters_resolved_24h.v1\", \"tone\": \"good\" },\n        { \"dim\": \"matters_waiting_on_client\", \"label\": \"Gates\", \"command_id\": \"cmd.msp.dim.matters_waiting_on_client.v1\", \"tone\": \"attention\" }\n      ]\n    },\n    \"revenue\": {\n      \"id\": \"revenue\",\n      \"label\": \"Revenue\",\n      \"command_id\": \"cmd.msp.hero.revenue.v1\",\n      \"internal\": true,\n      \"supports\": [\n        { \"dim\": \"mrr_total\", \"label\": \"MRR\", \"command_id\": \"cmd.msp.dim.mrr_total.v1\", \"tone\": \"accent\" },\n        { \"dim\": \"gross_margin_pct\", \"label\": \"Gross margin\", \"command_id\": \"cmd.msp.dim.gross_margin_pct.v1\", \"tone\": \"good\" },\n        { \"dim\": \"overdue_invoices_total\", \"label\": \"Overdue\", \"command_id\": \"cmd.msp.dim.overdue_invoices_total.v1\", \"tone\": \"attention\" },\n        { \"dim\": \"tech_utilization_pct\", \"label\": \"Utilization\", \"command_id\": \"cmd.msp.dim.tech_utilization_pct.v1\", \"tone\": \"neutral\" }\n      ]\n    }\n  },\n  \"evaluate\": [\n    { \"id\": \"exactly_three_heroes\", \"check\": \"hero_order.length == 3\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"four_supports_each\", \"check\": \"each hero has supports.length == 4\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"hero_has_command\", \"check\": \"every hero.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"support_has_command\", \"check\": \"every support.command_id set\", \"on_fail\": \"FAIL\" },\n    { \"id\": \"no_hero_catalog_in_harness_only\", \"check\": \"pack cites this persona as rules_source\", \"on_fail\": \"FAIL\" }\n  ],\n  \"fail_if\": [\n    \"fourth hero without persona delta\",\n    \"hero field list only in pack.js with no persona rules_source\",\n    \"status color hardcodes bypassing persona.signal.color.v1\"\n  ]\n}\n```\n\n## Fail the change if\n\n- Hero dimensions invented only in `pack.js`  \n- Fourth hero added without editing this persona  \n- Revenue treated as public without role-gate decision  \n- Estate inventory mixed into scoreboard heroes  \n","hub.neit.persona.dashboard.scoreboard.v1.rules.json":{"rules_owner":"persona","persona_id":"hub.neit.persona.dashboard.scoreboard.v1","display_name":"MSP Scoreboard Heroes Persona","kind":"block_persona","version":"1.1.0","status":"ACTIVE","stable_entity_id":"urn:valos:persona:msp.scoreboard.v1","rules_source":"data/pa/hub.neit.persona.dashboard.scoreboard.v1.rules.json","okf_md":"okf/registry/personas/hub.neit.persona.dashboard.scoreboard.v1.md","meta_owner":"persona.pa.engine.v1","hero_order":["standing","cases","revenue"],"heroes":{"standing":{"id":"standing","label":"Good Standing","command_id":"cmd.msp.hero.standing.v1","supports":[{"dim":"clients_good","label":"Clients Good","command_id":"cmd.msp.dim.clients_good.v1","tone":"good"},{"dim":"clients_attention","label":"Attention","command_id":"cmd.msp.dim.clients_attention.v1","tone":"attention"},{"dim":"clients_critical","label":"Critical","command_id":"cmd.msp.dim.clients_critical.v1","tone":"critical"},{"dim":"fleet_avg_standing","label":"Avg score","command_id":"cmd.msp.dim.fleet_avg_standing.v1","tone":"neutral"}]},"cases":{"id":"cases","label":"Matters / Cases","command_id":"cmd.msp.hero.cases.v1","supports":[{"dim":"open_matters_critical","label":"HOT Now","command_id":"cmd.msp.dim.open_matters_critical.v1","tone":"critical"},{"dim":"open_matters_aging_gt_24h","label":"Aging >24h","command_id":"cmd.msp.dim.open_matters_aging_gt_24h.v1","tone":"attention"},{"dim":"matters_resolved_24h","label":"Cleared 24h","command_id":"cmd.msp.dim.matters_resolved_24h.v1","tone":"good"},{"dim":"matters_waiting_on_client","label":"Gates","command_id":"cmd.msp.dim.matters_waiting_on_client.v1","tone":"attention"}]},"revenue":{"id":"revenue","label":"Revenue","command_id":"cmd.msp.hero.revenue.v1","internal":true,"supports":[{"dim":"mrr_total","label":"MRR","command_id":"cmd.msp.dim.mrr_total.v1","tone":"accent"},{"dim":"gross_margin_pct","label":"Gross margin","command_id":"cmd.msp.dim.gross_margin_pct.v1","tone":"good"},{"dim":"overdue_invoices_total","label":"Overdue","command_id":"cmd.msp.dim.overdue_invoices_total.v1","tone":"attention"},{"dim":"tech_utilization_pct","label":"Utilization","command_id":"cmd.msp.dim.tech_utilization_pct.v1","tone":"neutral"}]}},"evaluate":[{"id":"exactly_three_heroes","severity":"PASS","fail":"FAIL"},{"id":"four_supports_each","severity":"PASS","fail":"FAIL"},{"id":"hero_has_command","severity":"PASS","fail":"FAIL"},{"id":"support_has_command","severity":"PASS","fail":"FAIL"}],"fail_if":["fourth hero without persona delta","hero field list only in pack.js with no persona rules_source","status color hardcodes bypassing persona.signal.color.v1","projection values only in pack.js with no persona.projection"],"projection":{"mode":"pack_sample_until_metrics_bind","label":"BPaaS · pack projection","gauges":{"hot_open":5,"gates_wait":6},"heroes":{"standing":{"value":87,"unit":"","status":"Good","status_tone":"good","sub":"2 Attention · 0 Critical","supports":{"clients_good":38,"clients_attention":2,"clients_critical":1,"fleet_avg_standing":"84"}},"cases":{"value":42,"unit":"open","status":"HOT 5","status_tone":"critical","sub":"5 Hot · 8 Aging","supports":{"open_matters_critical":5,"open_matters_aging_gt_24h":8,"matters_resolved_24h":11,"matters_waiting_on_client":6}},"revenue":{"value":"$184k","unit":"MRR","status":"+2.4%","status_tone":"good","sub":"GM 62% · Overdue $12.4k","supports":{"mrr_total":"$184,200","gross_margin_pct":"62%","overdue_invoices_total":"$12,400","tech_utilization_pct":"78%"}}}}},"hub.neit.toc.dashboard.v1.json":{"contract_id":"hub.neit.toc.dashboard.v1","stable_entity_id":"urn:valos:pack:hub.neit.toc.dashboard.v1","version":"1.1.1","status":"ACTIVE","name":"TOC","name_long":"Checklist · Manifest · Register (table of contents)","role":"toc","layout":"BPAAS / BPID / files (flat)","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","subject":{"blueprint_id":"hub.neit.dashboard.v1","bp_id":"bp.hub.neit.dashboard.v1","tab_id":"dashboard","pack_id":"hub.neit.v1"},"naming":{"data_contracts":"hub.neit.dc.dashboard.* and selection.* — all blocks/tabs are data contracts","no_inspect_prefix":"inspect.* retired for page ids — use hub.neit.dc.dashboard.*","shared_product":"persona.product.brand|shell|color|bind — same as every Hub tab","projection":"Board values project from persona.projection + hub.neit.dc.dashboard.hot|stream|actions — not pack.js tables"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"files":[{"file":"hub.neit.toc.dashboard.v1.json","role":"toc"},{"file":"hub.neit.dc.dashboard.actions.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.dimensions.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.evidence.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.fact_log.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.hot.queue.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.metadata.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.overview.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.stream.v1.json","role":"data_contract_block"},{"file":"hub.neit.blocks.dashboard.v1.json","role":"blocks_registry"},{"file":"hub.neit.commands.dashboard.v1.json","role":"commands_registry"},{"file":"hub.neit.blueprint.dashboard.v1.json","role":"blueprint"},{"file":"hub.neit.persona.dashboard.estate.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.estate.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.opcontext.base.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.estate.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hero.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hot.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.quick_action.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.stream.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.support.v1.json","role":"data_contract_selection"},{"file":"hub.neit.arch.surface.v1.json","role":"arch_compliance"},{"file":"hub.neit.arch.surface.v1.md","role":"arch_compliance_human"}],"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"}},"toc_doc":{"contract_id":"hub.neit.toc.dashboard.v1","stable_entity_id":"urn:valos:pack:hub.neit.toc.dashboard.v1","version":"1.1.1","status":"ACTIVE","name":"TOC","name_long":"Checklist · Manifest · Register (table of contents)","role":"toc","layout":"BPAAS / BPID / files (flat)","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","subject":{"blueprint_id":"hub.neit.dashboard.v1","bp_id":"bp.hub.neit.dashboard.v1","tab_id":"dashboard","pack_id":"hub.neit.v1"},"naming":{"data_contracts":"hub.neit.dc.dashboard.* and selection.* — all blocks/tabs are data contracts","no_inspect_prefix":"inspect.* retired for page ids — use hub.neit.dc.dashboard.*","shared_product":"persona.product.brand|shell|color|bind — same as every Hub tab","projection":"Board values project from persona.projection + hub.neit.dc.dashboard.hot|stream|actions — not pack.js tables"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"files":[{"file":"hub.neit.toc.dashboard.v1.json","role":"toc"},{"file":"hub.neit.dc.dashboard.actions.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.dimensions.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.evidence.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.fact_log.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.hot.queue.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.metadata.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.overview.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.stream.v1.json","role":"data_contract_block"},{"file":"hub.neit.blocks.dashboard.v1.json","role":"blocks_registry"},{"file":"hub.neit.commands.dashboard.v1.json","role":"commands_registry"},{"file":"hub.neit.blueprint.dashboard.v1.json","role":"blueprint"},{"file":"hub.neit.persona.dashboard.estate.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.estate.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.opcontext.base.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.estate.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hero.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hot.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.quick_action.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.stream.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.support.v1.json","role":"data_contract_selection"},{"file":"hub.neit.arch.surface.v1.json","role":"arch_compliance"},{"file":"hub.neit.arch.surface.v1.md","role":"arch_compliance_human"}],"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"cmr_doc":{"contract_id":"hub.neit.toc.dashboard.v1","stable_entity_id":"urn:valos:pack:hub.neit.toc.dashboard.v1","version":"1.1.1","status":"ACTIVE","name":"TOC","name_long":"Checklist · Manifest · Register (table of contents)","role":"toc","layout":"BPAAS / BPID / files (flat)","bpaas_path":"data/pa/bp.hub.neit.dashboard.v1/","subject":{"blueprint_id":"hub.neit.dashboard.v1","bp_id":"bp.hub.neit.dashboard.v1","tab_id":"dashboard","pack_id":"hub.neit.v1"},"naming":{"data_contracts":"hub.neit.dc.dashboard.* and selection.* — all blocks/tabs are data contracts","no_inspect_prefix":"inspect.* retired for page ids — use hub.neit.dc.dashboard.*","shared_product":"persona.product.brand|shell|color|bind — same as every Hub tab","projection":"Board values project from persona.projection + hub.neit.dc.dashboard.hot|stream|actions — not pack.js tables"},"shared_product_personas":["hub.shared.persona.brand.v1","hub.shared.persona.shell.v1","hub.shared.persona.color.v1","hub.shared.persona.bind.v1"],"domain_personas":["hub.neit.persona.dashboard.scoreboard.v1","hub.neit.persona.dashboard.estate.v1"],"files":[{"file":"hub.neit.toc.dashboard.v1.json","role":"toc"},{"file":"hub.neit.dc.dashboard.actions.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.dimensions.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.evidence.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.fact_log.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.hot.queue.v1.json","role":"data_contract_block"},{"file":"hub.neit.dc.dashboard.metadata.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.overview.v1.json","role":"data_contract_tab"},{"file":"hub.neit.dc.dashboard.stream.v1.json","role":"data_contract_block"},{"file":"hub.neit.blocks.dashboard.v1.json","role":"blocks_registry"},{"file":"hub.neit.commands.dashboard.v1.json","role":"commands_registry"},{"file":"hub.neit.blueprint.dashboard.v1.json","role":"blueprint"},{"file":"hub.neit.persona.dashboard.estate.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.estate.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.md","role":"domain_persona_skill"},{"file":"hub.neit.persona.dashboard.scoreboard.v1.rules.json","role":"domain_persona_execution"},{"file":"hub.neit.opcontext.base.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.estate.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hero.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.hot.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.quick_action.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.stream.v1.json","role":"data_contract_selection"},{"file":"hub.neit.opcontext.support.v1.json","role":"data_contract_selection"},{"file":"hub.neit.arch.surface.v1.json","role":"arch_compliance"},{"file":"hub.neit.arch.surface.v1.md","role":"arch_compliance_human"}],"shared_source":{"layer":"shared","path":"bpaas/shared/","chrome_css":"bpaas/shared/hub.shared.chrome.select.v1.css","rule":"Product foundation from L2 only; pack must not ship persona.product.*","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"surface_runtime":{"order":["shell","shared","pack","active"],"shell":"shell.css / shell.js — geometry only","shared":"bpaas/shared/ — brand, color, shell persona, bind + select chrome","pack":"this BP folder — domain persona, DCs, pack-<tab>.js/css fill slots only","active":"operator/session checklist (permissions) — not pack body","lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"},"arch_lock":"HUB_SURFACE_RUNTIME_FOUR_STAGE.standing"}}