Claude Skill

earnings-preview

Earnings preview deck, quarterly earnings presentation, earnings summary slides, consensus vs actual presentation, earnings preview report, pre-earnings analysis, earnings expectations deck, quarterly preview, upcoming earnings summary, earnings announcement preview

LLM Mart · 0 points · 0 views 0 listing impressions 0 install-command copies
Virus-scanned Reviewed automatically before listing.

Full trust report

Download agentii-ai-agentii-investment-intelligence-plugins_vertical-plugins_models-and-pitches_skills_agentii_earnings-preview-1a2d679.zip · 9 KB
Part of agentii-ai/agentii-investment-intelligence — 46 skills

Install

skills CLI npx skills add https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/models-and-pitches/skills/agentii/earnings-preview
Claude Code claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install agentii-ai-agentii-investment-intelligence@llmmart
Git git clone https://github.com/agentii-ai/agentii-investment-intelligence.git

The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole agentii-ai/agentii-investment-intelligence collection as a plugin from our marketplace. Git is the plain clone.

Skill manifest

Preflight

Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace style.md override, memory load, and coverage check. See contracts/preflight.md.

Office dependency probe (FR-043) — this skill produces .pptx via Bash + python-pptx:

  1. Live Office session? If mcp__office__* tools are present (Cowork), drive the live document instead of headless Python.
  2. Python library: Bash: python3 -c "import pptx" — if exit ≠ 0, fall back to .md slide spec with data_availability: degraded + python_pptx_missing: true.
  3. LibreOffice: Bash: which soffice for structural validation and PDF export.

If the Python library is absent, report the exact remediation (install the python-pptx package) and produce the .md degraded fallback per contracts/office-tooling.md.

Include the X-Agentii-Trace header on every tool call per contracts/x-agentii-trace-header.md.

Triggers

  • generate earnings preview deck
  • build earnings preview presentation
  • create quarterly earnings slides
  • earnings preview pptx
  • earnings summary presentation
  • consensus estimates presentation
  • earnings surprise summary deck
  • quarterly results presentation
  • earnings catalyst calendar slides
  • pre-earnings analyst deck

Defaults

Parameter Default Notes
slide_count 4-6 Title, Company Overview, Consensus Estimates, Historical Surprises, Catalysts, Outlook
lookback_quarters 4 Trailing 4 quarters for trend analysis
peer_count 3-5 From search_companies sector peers
source_footers required Every slide has standard agentii citation footer
template institutional-default Dark header bar, agentii blue accent, 12pt body

Methodology

Retrieval Scope

This skill performs structured data retrieval (earnings calendar, XBRL facts, company profile) plus earnings call transcript document search (search_documents(form_type="earnings_call_transcript") → read_source_outline → read_source_pages) for forward-looking catalyst and guidance context. See references/formula-sheet.md for presentation structure guidelines.

Retrieval Strategy

See contracts/retrieval.md for the canonical decision tree; skill-specific retrieval detail is in references/methodology.md.

Temporal Scope

Default: 4 fiscal quarters (max 8). Trailing 4 quarters captures current estimates and YoY comparisons. Maximum 8 quarters for analysts who want 2-year trend context on the estimates slide.

Tool Allowlist

See frontmatter allowed_tools. This skill produces a polished .md slide-deck specification; .pptx rendering is available via the companion financial-analysis:pptx-author skill (separate install; see contracts/office-tooling.md).

Protocol

Step-by-step execution detail is in references/methodology.md.

Deliverable Chain

Inputs → Build → Validate → Output → Next

  1. Inputs: resolved ticker + earnings calendar, consensus estimates, and trailing XBRL facts (search_earnings_calendar, search_xbrl_facts, search_companies, get_company_profile).
  2. Build: write a self-contained Python script using python-pptx that creates the 4–6 slide .pptx deck per ## Output Structure. Execute via Bash: python3 script.py. Verify the .pptx file exists. If python-pptx is absent, fall back to .md slide spec per contracts/office-tooling.md.
  3. Validate: run the ## Validation Gates below.
  4. Output: write the artifact path per ## Output File.
  5. Next: append to agentii.md; hand off to a downstream pitch/review skill if requested.

Validation Gates

  1. slide count: between 4 and 6. If failed: If outside range: refuse delivery.
  2. estimates slide: includes consensus, high, and low estimates. If failed: If missing: flag in Coverage Gaps.
  3. source footers: every slide has source_footer with standard agentii citation. If failed: If any missing: refuse delivery.
  4. peer comparison: has >= 3 peers. If failed: If < 3: flag in Coverage Gaps.

Tool Fallbacks

Per-tool failure modes and fallback actions are tabulated in references/tool-fallbacks.md.

Disclaimer (Q139/T137) — REQUIRED, template-owned

This output is presentation-shaped and MUST carry the canonical disclaimer from scenarios/templates/disclaimer.md — verbatim, not restated. The clause set is the contract; the wording is the workspace's rendering (Q126). Placeholders are filled, never shipped. The full requirement, the clause-set rule, and the per-slide footer rule for price targets are in references/disclaimer.md.

Output File

Primary deliverable: {ticker}/{YYYY-MM-DD_HHMM}_earnings-preview_{affix}.pptx — real PowerPoint binary via Bash + python-pptx per contracts/office-tooling.md. Degraded fallback: {ticker}/{YYYY-MM-DD_HHMM}_earnings-preview_{affix}.md when python-pptx is absent (FR-044).

Output Structure

The deliverable is a structured markdown report written to the path in ## Output File. Full section-by-section template (headings, tables, and field definitions) lives in references/output-structure.md. Required elements:

  1. Executive Summary — headline conclusions (≤200 words).
  2. Core analysis sections — per this skill's methodology and analyst modes.
  3. Data classification — tag findings [FACT] / [DEDUCTED] / [VIEW] per contracts/snapshot-synthesis.md.
  4. Coverage Gaps & Citations — inline /v/ citations are PRIMARY (immediately after each fact); the bottom Citations section is a non-duplicative roll-up index.
  5. Output frontmatter — emit the FR-090 structured block per contracts/output-frontmatter-schema.md.

Citations & memory: follow contracts/citation-and-memory.md — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link; a bottom Citations section provides a non-duplicative roll-up index; the closing TUI reply includes a compact Key Citations list (headline 5–10 facts) of clickable /v/ URLs; and append the run to agentii.md per contracts/agentii-md-schema.md.

Memory & Snapshot

  • Memory load (pre-flight): load prior workspace context for the ticker before retrieval — see contracts/memory-load.md.
  • Structured output frontmatter: emit the FR-090 block (key_metrics, conclusions, facts_count, deducted_count, views_count, citation_count) per contracts/output-frontmatter-schema.md.
  • Snapshot synthesis: after writing the deliverable, update the two-tier snapshot and classify findings as [FACT]/[DEDUCTED]/[VIEW] — see contracts/snapshot-synthesis.md.
  • Session archival: record the run under sessions/{YYYY-MM-DD}/ and update sessions/INDEX.md per contracts/session-format.md.

Final Summary (TUI)

End the closing chat reply with a compact Key Citations list (headline 5–10 facts), each a clickable https://agentii.ai/v/{ticker}/{citation_id}/{N} link, so the user can cmd+click straight to the exact SEC page. See contracts/citation-and-memory.md.

Error Handling

Failure Mode Detection Action User-Facing Message
Missing earnings data search_earnings_calendar returns empty Use search_xbrl_facts for historical actuals only; flag estimates as unavailable "Consensus estimates not available for ; presentation based on historical actuals only."
Partial data <80% expected fields returned Proceed with coverage gaps section "Presentation based on partial data; see Coverage Gaps."
Sector mismatch Peer sector != target sector Filter out mismatched peers "Removed peer(s) due to sector mismatch."
Insufficient history <4 quarters of data available Downgrade to limited-history presentation (3 slides min) "Limited historical data available; presentation adjusted."
MCP unreachable agentii Preflight probe fails Halt with actionable error "agentii data plane unreachable; check connection and AGENTII_API_KEY."
Office backend unreachable All 3 office backends fail Preflight Halt with AGENTII_OFFICE_UNREACHABLE "No office backend available. Options: (a) set AGENTII_API_KEY for agentii-office, (b) pip install python-pptx, (c) install OfficeCLI."
Knowledge Store unavailable get_entity_knowledge returns 503 Fall back to get_company_profile + search_companies; flag with knowledge_store_degraded: true "Knowledge Store not yet available; peer analysis based on filing-derived entity context."
Files (agentii-investment-intelligence)
  • references
    • disclaimer.md 2.5 KB
      # Disclaimer requirement (Q139/T137) — full text
      
      The body of SKILL.md carries only the binding rule; the reasoning lives here, so the
      skill body stays inside its context budget (the `ctx-gate-body-size` gate caught this
      at 1358 words against a 1300 limit — its own advice was "move detail to references/").
      
      ## The rules
      
      1. Include the canonical block from `scenarios/templates/disclaimer.md` as authored.
         Do not write your own, restate it, or paraphrase it.
      2. `[WORKSPACE]` / `[AS_OF]` / `[GENERATED]` are FILLED, never shipped. An unfilled
         placeholder fails the output gate (the same structural, case-insensitive check as
         Q108).
      3. **Language follows the workspace** (Q126). The canonical file is English; a
         workspace declaring another language supplies its own rendering of the SAME
         clauses. The clause SET is the contract — every `<p>` carries `data-clause="…"`,
         and a rendering that drops one is not a translation, it is a different disclaimer.
      4. The disclaimer states what the document IS; the badges, `epistemic_state` and
         coverage-gaps sections state what each claim IS. Do not let the disclaimer carry
         a burden the body should.
      
      ## Why this is written down at all — this skill has no template and no producer
      
      Measured 2026-09-18: `scenarios/templates/` holds neither a pitch-deck nor an
      earnings-preview template, and no producer script exists. So there is nothing yet to
      mount the disclaimer ON, and `check_disclaimer.py` reports both as `nothing to gate
      yet` rather than as compliant.
      
      Recording the requirement in the output contract means it is already binding when a
      template or producer is written, instead of being rediscovered afterwards — which is
      how the thesis report's own disclaimer came to be retrofitted rather than designed in.
      
      ## Additional requirement — the footer of every slide carrying a price target
      
      `earnings-preview` is the one presentation-shaped output that repeats a **price
      target** across slides, so it carries the disclaimer **twice**: once as the closing
      block, and once as a **footer on every slide that states a price target**.
      
      The reason is not redundancy. A deck is read OUT of order and in fragments — a reader
      can meet the price-target slide without ever reaching the closing disclaimer, and a
      price target is exactly the thing a reader acts on. A disclaimer a reader never
      reaches does not discharge the obligation it exists for. `thesis-report.html` needs no
      such rule because it is a single continuous document with one ending.
      
    • formula-sheet.md 280 B
      # Formula Sheet
      
      Canonical formulas for this model. All figures must tie to XBRL facts or cited filing pages.
      
      - Revenue growth = (Rev_t / Rev_{t-1}) - 1
      - Gross margin = GrossProfit / Revenues
      - Operating margin = OperatingIncomeLoss / Revenues
      - FCF = OperatingCashFlow - CapEx
      
    • institutional-defaults.md 302 B
      # Institutional Defaults
      
      - Lookback: per skill `temporal_scope`.
      - Currency: reporting currency from the first XBRL fact `unit` (no conversion at v1.0).
      - XBRL: `is_primary = true` default; `?include_all_sources=true` only for audit/reconciliation.
      - Dedup: API-side; do not re-implement client-side.
      
    • methodology.md 1.5 KB
      # earnings-preview — Methodology Detail
      
      Extracted from SKILL.md for progressive disclosure (US5).
      
      ## Retrieval Strategy
      
      Follow the retrieval strategy decision tree in `contracts/retrieval.md`. This skill uses:
      - Branch (a) for structured financial metrics via `search_xbrl_facts` with `list_xbrl_concepts` pre-condition for unfamiliar concepts.
      - Branch (d) for simple lookups via `search_earnings_calendar` / `get_company_profile` / `search_companies`.
      
      ## Protocol
      
      1. **Earnings calendar lookup**: call `search_earnings_calendar(ticker, fiscal_year=current)` to get the most recent reported quarter, next earnings date, and consensus estimates.
      2. **Financial highlights**: call `search_xbrl_facts(ticker, concept=["Revenues","NetIncomeLoss","OperatingIncomeLoss","EarningsPerShareDiluted"], fiscal_period=["Q1","Q2","Q3","Q4","FY"], fiscal_year=[current, current-1])` for trailing data.
      3. **Company context**: call `get_company_profile(ticker)` for company name, sector, industry.
      4. **Peer discovery**: call `get_peer_comparison(ticker, metric)` (note: `search_companies` has no `sector`/`limit` params — pagination is `page`/`page_size`) for peer comparison slide.
      5. **Slide-spec construction**: structure a 4–6 slide `.md` slide-deck specification (one section per slide, with title, bullets, and a source footer).
      6. **Build**: write the polished `.md` slide-deck specification per `## Output Structure`.
      7. **Review**: self-review the slide spec against the `## Validation Gates` below.
      8. **Output**: write the artifact path per `## Output File`.
      
    • modes.md 698 B
      # earnings-preview — Analyst Mode Definitions
      
      Derived from the skill's own methodology structure (scripts/mode_backfill.py, spec 046 M1).
      
      ### Mode: preflight
      
      **Objective**: Preflight analysis per the skill's methodology (see SKILL.md sections).
      
      ### Mode: triggers
      
      **Objective**: Triggers analysis per the skill's methodology (see SKILL.md sections).
      
      ### Mode: defaults
      
      **Objective**: Defaults analysis per the skill's methodology (see SKILL.md sections).
      
      ### Mode: methodology
      
      **Objective**: Methodology analysis per the skill's methodology (see SKILL.md sections).
      
      ### Mode: retrieval-scope
      
      **Objective**: Retrieval Scope analysis per the skill's methodology (see SKILL.md sections).
      
    • output-structure.md 1.7 KB
      # earnings-preview — Output Structure (full template)
      
      Extracted from SKILL.md for progressive disclosure (US5). The skill body keeps a compact summary under `## Output Structure`.
      
      1. **Slide 1 — Title**: Company name, ticker, "Earnings Preview — Q<N> FY<YYYY>", report date
      2. **Slide 2 — Company Overview**: Business description, sector, market cap, key products/segments (from `get_company_profile`)
      3. **Slide 3 — Consensus Estimates**: Table with consensus/high/low for Revenue, EPS, EBITDA; YoY comparison; estimate count (from `search_earnings_calendar`)
      4. **Slide 4 — Historical Surprises**: Table of last 4 quarters: estimate vs actual, surprise %, direction (from `search_earnings_calendar` + `search_xbrl_facts`)
      5. **Slide 5 — Peer Comparison**: Peer table with ticker, EV/EBITDA, P/E, Revenue growth (from `search_companies` + `search_xbrl_facts`)
      6. **Slide 6 — Catalysts & Outlook**: Forward catalysts from the latest earnings call transcript (`search_documents(form_type="earnings_call_transcript")` → `read_source_pages` on the guidance/forward-looking pages), upcoming events, guidance summary (from `search_earnings_calendar`)
      
      Slide 6 is optional (4–6 range). If peer data or catalyst data is unavailable, merge into fewer slides.
      
      **Citations & memory**: follow `contracts/citation-and-memory.md` — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link; a bottom **Citations** section provides a non-duplicative roll-up index; the closing TUI reply includes a compact **Key Citations** list (headline 5–10 facts) of clickable `/v/` URLs; and append the run to `agentii.md` per `contracts/agentii-md-schema.md`.
      
    • tool-fallbacks.md 2.2 KB
      # earnings-preview — Tool Fallbacks
      
      Extracted from SKILL.md for progressive disclosure (US5).
      
      | Tool | Failure Mode | Fallback Action | Coverage Annotation |
      |------|-------------|-----------------|---------------------|
      | `read_source_pages` | SQL error / PROXY_ERROR | Use `search_keyword_in_source(document_id, keyword)` if document_id known; otherwise `search_documents` with same query | "source file unavailable; used keyword search instead" |
      | `read_source_deep_outline` | PROXY_ERROR / 404 | Use lightweight `read_source_outline` and flag `deep_outline_degraded: true` | "deep outline unavailable; used lightweight page map instead" |
      | `read_source_outline` | PROXY_ERROR / 404 | Use `list_sources` for document-level metadata | "page map unavailable; used document listing instead" |
      | `list_xbrl_concepts` | Timeout / 503 | Use direct `search_xbrl_facts` with standard US-GAAP concepts (Revenues, NetIncomeLoss, EarningsPerShareDiluted, OperatingIncomeLoss, Assets) | "concept discovery skipped due to timeout; using standard US-GAAP concepts" |
      | `get_company_fiscal_calendar` | Cross-validation failed | Use XBRL-derived period grid from `search_xbrl_facts` `period_end` dates | "fiscal calendar mismatch; using XBRL-derived period grid" |
      | `search_unified` | Intermittent error | Use parallel `search_documents` + `search_xbrl_facts` with the same query | "unified search unavailable; used parallel document + XBRL search" |
      | `batch_search` | PROXY_ERROR | Use sequential individual calls (one per sub-query) | "batch search unavailable; used sequential calls" |
      
      Tool errors are retried ONCE with the fallback action before escalating to the retrieval gaps failure policy. If both Layer 2 and Layer 3 tools are unavailable, enter document access degradation mode (structured data + metadata only, flag output as degraded).
      
      11. **tool diversity**: distinct MCP tools used in this invocation >= `min_tool_diversity` (5). *If failed*: flag as depth-insufficient in Coverage Gaps, listing which tool categories were unused (structured data / document retrieval / company metadata / earnings calendar / coverage). This gate does NOT block analysis completion — it is a quality signal for your review.
      
    • validation-checklist.md 313 B
      # Validation Checklist
      
      - [ ] Every input figure cites a filing page or XBRL accession.
      - [ ] Recalc/audit returns no hardcoded-over-formula cells.
      - [ ] Statement identities balance within rounding.
      - [ ] Period labels match `get_company_fiscal_calendar`.
      - [ ] Coverage gaps are surfaced, not silently dropped.
      
  • SKILL.md 9.3 KB
    ---
    name: earnings-preview
    multi_ticker_semantics: single_target
    description: Earnings preview deck, quarterly earnings presentation, earnings summary slides, consensus vs actual presentation, earnings preview report, pre-earnings analysis, earnings expectations deck, quarterly preview, upcoming earnings summary, earnings announcement preview
    temporal_scope:
     default_quarters: 4
     max_quarters: 8
     description: "Typical lookback: 4 quarters, max: 8"
    allowed_tools:
     - search_companies
     - search_xbrl_facts
     - search_earnings_calendar
     - get_company_financials
     - get_company_profile
     - list_xbrl_concepts
     - search_documents
     - read_source_outline
     - read_source_pages
     - Bash
    retrieval_scope: unstructured_document_search
    min_tool_diversity: 5
    ---
    
    ## Preflight
    
    Run the canonical pre-flight sequence — MCP health probe, ticker resolution, workspace
    `style.md` override, memory load, and coverage check. See `contracts/preflight.md`.
    
    **Office dependency probe (FR-043)** — this skill produces `.pptx` via `Bash` + `python-pptx`:
    
    1. **Live Office session?** If `mcp__office__*` tools are present (Cowork), drive the live
       document instead of headless Python.
    2. **Python library**: `Bash: python3 -c "import pptx"` — if exit ≠ 0, fall back to `.md`
       slide spec with `data_availability: degraded` + `python_pptx_missing: true`.
    3. **LibreOffice**: `Bash: which soffice` for structural validation and PDF export.
    
    If the Python library is absent, report the exact remediation (install the
    python-pptx package) and produce the `.md` degraded fallback per
    `contracts/office-tooling.md`.
    
    Include the `X-Agentii-Trace` header on every tool call per
    `contracts/x-agentii-trace-header.md`.
    ## Triggers
    
    - generate earnings preview deck
    - build earnings preview presentation
    - create quarterly earnings slides
    - earnings preview pptx
    - earnings summary presentation
    - consensus estimates presentation
    - earnings surprise summary deck
    - quarterly results presentation
    - earnings catalyst calendar slides
    - pre-earnings analyst deck
    
    ## Defaults
    
    | Parameter | Default | Notes |
    |-----------|---------|-------|
    | slide_count | 4-6 | Title, Company Overview, Consensus Estimates, Historical Surprises, Catalysts, Outlook |
    | lookback_quarters | 4 | Trailing 4 quarters for trend analysis |
    | peer_count | 3-5 | From search_companies sector peers |
    | source_footers | required | Every slide has standard agentii citation footer |
    | template | institutional-default | Dark header bar, agentii blue accent, 12pt body |
    
    ## Methodology
    
    ### Retrieval Scope
    
    This skill performs structured data retrieval (earnings calendar, XBRL facts, company profile) plus earnings call transcript document search (`search_documents(form_type="earnings_call_transcript")` → `read_source_outline` → `read_source_pages`) for forward-looking catalyst and guidance context. See references/formula-sheet.md for presentation structure guidelines.
    
    ### Retrieval Strategy
    
    See `contracts/retrieval.md` for the canonical decision tree; skill-specific retrieval detail is in `references/methodology.md`.
    
    ### Temporal Scope
    
    Default: 4 fiscal quarters (max 8). Trailing 4 quarters captures current estimates and YoY comparisons. Maximum 8 quarters for analysts who want 2-year trend context on the estimates slide.
    
    ### Tool Allowlist
    
    See frontmatter `allowed_tools`. This skill produces a polished `.md` slide-deck specification; `.pptx` rendering is available via the companion `financial-analysis:pptx-author` skill (separate install; see `contracts/office-tooling.md`).
    
    ### Protocol
    
    Step-by-step execution detail is in `references/methodology.md`.
    
    ## Deliverable Chain
    
    **Inputs** → **Build** → **Validate** → **Output** → **Next**
    
    1. **Inputs**: resolved ticker + earnings calendar, consensus estimates, and trailing XBRL facts (`search_earnings_calendar`, `search_xbrl_facts`, `search_companies`, `get_company_profile`).
    2. **Build**: write a self-contained Python script using `python-pptx` that creates the 4–6 slide `.pptx` deck per `## Output Structure`. Execute via `Bash: python3 script.py`. Verify the `.pptx` file exists. If `python-pptx` is absent, fall back to `.md` slide spec per `contracts/office-tooling.md`.
    3. **Validate**: run the `## Validation Gates` below.
    4. **Output**: write the artifact path per `## Output File`.
    5. **Next**: append to `agentii.md`; hand off to a downstream pitch/review skill if requested.
    
    ## Validation Gates
    
    1. **slide count**: between 4 and 6. *If failed*: If outside range: refuse delivery.
    2. **estimates slide**: includes consensus, high, and low estimates. *If failed*: If missing: flag in Coverage Gaps.
    3. **source footers**: every slide has source_footer with standard agentii citation. *If failed*: If any missing: refuse delivery.
    4. **peer comparison**: has >= 3 peers. *If failed*: If < 3: flag in Coverage Gaps.
    ## Tool Fallbacks
    
    Per-tool failure modes and fallback actions are tabulated in `references/tool-fallbacks.md`.
    
    ## Disclaimer (Q139/T137) — REQUIRED, template-owned
    
    This output is **presentation-shaped** and MUST carry the canonical disclaimer from
    `scenarios/templates/disclaimer.md` — verbatim, not restated. The clause set is the
    contract; the wording is the workspace's rendering (Q126). Placeholders are filled,
    never shipped. **The full requirement, the clause-set rule, and the per-slide footer
    rule for price targets are in `references/disclaimer.md`.**
    
    ## Output File
    
    Primary deliverable: `{ticker}/{YYYY-MM-DD_HHMM}_earnings-preview_{affix}.pptx` — real PowerPoint binary via `Bash` + `python-pptx` per `contracts/office-tooling.md`. Degraded fallback: `{ticker}/{YYYY-MM-DD_HHMM}_earnings-preview_{affix}.md` when `python-pptx` is absent (FR-044).
    
    ## Output Structure
    
    The deliverable is a structured markdown report written to the path in `## Output File`. Full section-by-section template (headings, tables, and field definitions) lives in `references/output-structure.md`. Required elements:
    
    1. **Executive Summary** — headline conclusions (≤200 words).
    2. **Core analysis sections** — per this skill's methodology and analyst modes.
    3. **Data classification** — tag findings `[FACT]` / `[DEDUCTED]` / `[VIEW]` per `contracts/snapshot-synthesis.md`.
    4. **Coverage Gaps & Citations** — inline `/v/` citations are PRIMARY (immediately after each fact); the bottom **Citations** section is a non-duplicative roll-up index.
    5. **Output frontmatter** — emit the FR-090 structured block per `contracts/output-frontmatter-schema.md`.
    
    **Citations & memory**: follow `contracts/citation-and-memory.md` — ≥1 citation per 200 words; every material fact, table row, and metric is immediately followed by its inline clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link; a bottom **Citations** section provides a non-duplicative roll-up index; the closing TUI reply includes a compact **Key Citations** list (headline 5–10 facts) of clickable `/v/` URLs; and append the run to `agentii.md` per `contracts/agentii-md-schema.md`.
    
    ## Memory & Snapshot
    
    - **Memory load** (pre-flight): load prior workspace context for the ticker before retrieval — see `contracts/memory-load.md`.
    - **Structured output frontmatter**: emit the FR-090 block (`key_metrics`, `conclusions`, `facts_count`, `deducted_count`, `views_count`, `citation_count`) per `contracts/output-frontmatter-schema.md`.
    - **Snapshot synthesis**: after writing the deliverable, update the two-tier snapshot and classify findings as `[FACT]`/`[DEDUCTED]`/`[VIEW]` — see `contracts/snapshot-synthesis.md`.
    - **Session archival**: record the run under `sessions/{YYYY-MM-DD}/` and update `sessions/INDEX.md` per `contracts/session-format.md`.
    
    ## Final Summary (TUI)
    
    End the closing chat reply with a compact **Key Citations** list (headline 5–10 facts), each a clickable `https://agentii.ai/v/{ticker}/{citation_id}/{N}` link, so the user can cmd+click straight to the exact SEC page. See `contracts/citation-and-memory.md`.
    
    ## Error Handling
    
    | Failure Mode | Detection | Action | User-Facing Message |
    |---|---|---|---|
    | Missing earnings data | `search_earnings_calendar` returns empty | Use `search_xbrl_facts` for historical actuals only; flag estimates as unavailable | "Consensus estimates not available for {ticker}; presentation based on historical actuals only." |
    | Partial data | <80% expected fields returned | Proceed with coverage gaps section | "Presentation based on partial data; see Coverage Gaps." |
    | Sector mismatch | Peer sector != target sector | Filter out mismatched peers | "Removed {n} peer(s) due to sector mismatch." |
    | Insufficient history | <4 quarters of data available | Downgrade to limited-history presentation (3 slides min) | "Limited historical data available; presentation adjusted." |
    | MCP unreachable | agentii Preflight probe fails | Halt with actionable error | "agentii data plane unreachable; check connection and AGENTII_API_KEY." |
    | Office backend unreachable | All 3 office backends fail Preflight | Halt with AGENTII_OFFICE_UNREACHABLE | "No office backend available. Options: (a) set AGENTII_API_KEY for agentii-office, (b) pip install python-pptx, (c) install OfficeCLI." |
    | Knowledge Store unavailable | `get_entity_knowledge` returns 503 | Fall back to `get_company_profile` + `search_companies`; flag with `knowledge_store_degraded: true` | "Knowledge Store not yet available; peer analysis based on filing-derived entity context." |
    

Comments (0)

Sign in to join the conversation.

No comments yet.

Reviews (0)

No reviews yet.

Related