Safely update public-company Excel model copies from source-to-model maps; emits XLSX as the hero artifact and CSV/log/manifest as support. Do not use for pure earnings notes or broad workbook audits.
python3 skills/user-context/scripts/user_context_preflight.py with the shell working directory set to this plugin's root, and follow the returned saved_context, source_category_plan, and next_action. Set the working directory before the first attempt; do not probe alternate relative paths. Missing context must not block the requested workflow. Do not initialize state or run onboarding during ordinary workflow work.next_action.id = "offer_orientation" and the parent router has not already handled it, complete the requested work first and append its one-line optional setup offer once.../../shared/workflow-source-resolution.md. Use source_category_plan lazily and attempt only the categories needed for this workflow: company_filings_ir, earnings_transcripts_presentations, internal_research, portfolio_models_trackers, and market_data_estimates.../../shared/deliverable-intake-policy.md. This workflow's natural artifact is an XLSX equity model workbook. Do not choose chat-only output unless the user explicitly requests a lightweight response.../../shared/deliverable-intake-policy.md and use its adaptive request_user_input preflight for materially unresolved format, depth, audience/use, or focus choices. Reuse resolved preferences in downstream steps; when acting only as input to an owning workflow, do not re-prompt..xlsx package, model implication, estimate-revision path, valuation/target-price read-through, source posture, changed/blocked cells, and update dashboard; for substantial reusable update packages, render an HTML dashboard/report alongside the workbook or hand off to the relevant workbook builder so the workbook Cover carries the insight view.references/DASHBOARD_PACK.md. equity-model-update owns source-to-model mapping, changed-line interpretation, stale/missing flags, and model implication, valuation read-through, and PM action implication; dashboard-builder owns the shell/rendering/QA. Build a public_equity_investing_dashboard.v1 payload as an internal renderer input, and keep JSON/Markdown/CSV/run-log support files behind the HTML dashboard unless explicitly requested.shared/support-layer-routing-contract.md when support services are needed. Use financial-source-of-truth for reported actuals, guidance, consensus, source timestamps, and claim labels. Use financials-normalizer before building the source-to-model map from messy release tables, transcript KPI tables, segment schedules, share-count support, net debt, or capital allocation data. Use excel-data-cleaner before relying on malformed model-update exports. Use model-audit-tieout for formula integrity, recalc/cache state, external links, circularity, and final tie-out. Support artifacts stay secondary to the copied workbook/control pack and update dashboard.mapping_treatment before calculating a delta: safe_update for true input updates, reference_only for facts that inform the review but cannot replace a model input, missing_model_architecture when the workbook lacks the required schedule, assumption_required when an investor judgment is needed, or rebuild_required when the model cannot express the update safely. Only safe_update rows may populate proposed model values or estimate-change deltas.Update_Cover, Source_Map, Rebuild_Requirements, Change_Log, Tie_Out, and Stale_Data review tabs instead of editing model cells.model-audit-tieout, DCF, three-statement, comps, or public-model builders as appropriate..xlsx the only user-facing primary workbook. Update run_log.json, manifest.json, and model_update_citations.json to point to the final workbook and its final sheet names before handoff; do not lead with an unstyled intermediate control pack.python scripts/materialize_workbook_update.py input.csv --workbook uploaded_model.xlsx --out output
xlsx_update_copy: updates safe mapped input cells in updated_model.xlsx.xlsx_control_pack: preserves model cells, opens on the Update_Cover review tab, and adds review tabs in model_update_control_pack.xlsx.csv_update_map_export: mapping/log fallback when no workbook is supplied or the user explicitly asks for support artifacts only.python scripts/materialize_model_update.py input.csv --out output
updated_model.xlsx or model_update_control_pack.xlsx, plus source_to_model.csv, change_log.csv, tieout_checklist.csv, model_update_citations.json, run_log.json, and manifest.json. The manifest marks the workbook as primary_human_deliverable; if a polished successor workbook is exported, promote that successor consistently across the manifest, run log, and model citations.calc_chain_present, formula_cell_count, cached_formula_value_count, calc_mode, and recalc_required in the run log and cover tab. It separately labels artifact readiness and model readiness: a completed control pack may be ready for review while the model remains not updated and requires mapping or rebuild. If mapped inputs are changed and formulas exist, treat downstream formula outputs as stale until Excel/Sheets recalculation and model-audit-tieout are complete.source_to_model.csv, change_log.csv, tieout_checklist.csv, run_log.json, and manifest.json. The run log includes status, model_status, source basis, warnings, hard failures, output paths, and output manifest. Hard failures: missing source_id, missing model_line, malformed/empty input. Stale data is flagged.references/workflow.md, references/templates.md, references/sector-kpis.md, references/executable-contract.md.shared/equity-valuation-pm-standard.md and shared/pm-judgment-heuristics.md for substantial model, valuation, scenario, model-update, or audit work.