--- name: competitive multi_ticker_semantics: target_with_required_peers description: Competitive landscape analysis, competitor comparison, peer positioning, market share dynamics, competitive moat assessment, Porter five forces, industry competition, competitive advantage analysis, market positioning, strategic group mapping, compare competitors essentials_modes: [direct-competitor-identification-and-analysis, market-share-dynamics-analysis, market-share-evolution-and-competitive-benchmarking] temporal_scope: default_quarters: 4 max_quarters: 12 description: "Typical lookback: 4 quarters, max: 12" allowed_tools: - search_companies - search_xbrl_facts - search_documents - search_sec_filings - get_company_financials - list_coverage - search_earnings_calendar - get_company_profile - batch_search - read_source_outline - read_source_deep_outline - list_xbrl_concepts - read_source_pages - search_keyword_in_source - search_knowledge_entries - get_knowledge_entry - search_by_analogue - search_investment_cases - get_investment_case retrieval_scope: unstructured_document_search min_tool_diversity: 12 --- ## Preflight Run canonical pre-flight per `contracts/preflight.md`. Include the `X-Agentii-Trace` header on every tool call per `contracts/x-agentii-trace-header.md` — carry the `_run_id` from your first tool result and name yourself (and your parent, if you were spawned). ## Triggers - analyze competitive landscape - run competitive landscape analysis - produce competitive landscape report - competitive landscape breakdown - competitive landscape deep dive - build a competitive landscape - assess competitive landscape - quantify competitive landscape - compare competitive landscape across peers - review competitive landscape for - generate competitive landscape on - competitive landscape for investment decision ## Defaults | Parameter | Default | Notes | |---|---|---| | lookback_quarters | 4 | Historical data window — matches `temporal_scope.default_quarters` | | include_peers | false | Whether to surface a peer comparison block | ## Methodology ### Retrieval Scope This skill performs unstructured document search at scale (10-K, 10-Q, 8-K filings and earnings call transcripts spanning multiple fiscal periods). The three-layer agent-use-ready retrieval protocol (Document Discovery → Page Map → Deep Read) applies to all unstructured document search at scale. ### 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 (c) for single-period document queries via direct `read_source_outline` → `read_source_pages`. - Branch (d) for simple lookups via `get_company_profile` / `search_earnings_calendar`. **Layer 1 `secondary_label` allowlist **: prefer `?secondary_labels=material_definitive_agreement_1_01,other_events_8_01` to surface M&A / partnership / strategic-action 8-Ks before Layer 2. **Read before you quote.** A page's `description` is **platform-generated** — it is never the issuer's words and must never be quoted as the filing's. When a description identifies a relevant page, `read_source_pages` that page and quote its `page_content`. **The description is a pointer, not a source**: a citation written from one is the fabricated quote this skill's output standard exists to prevent (`contracts/retrieval.md` § *Three-Layer Document Protocol*). ### Temporal Scope Default: 8 fiscal quarters (max 16). Competitive landscape: 8 quarters for market-share trajectories and positioning shifts ### Tool Allowlist See frontmatter `allowed_tools`. ### Protocol This skill delivers analyst-grade output via 8 addressable mode(s); invoke with `--mode=` / `--modes=,` / `--mode=all` (see [Mode syntax](../../../../docs/commands/MODE_SYNTAX.md). The default invocation (no flag) runs the `essentials_modes` subset declared in this skill's frontmatter. **Industry Structure**: For the full moat assessment framework covering ROIC persistence by sector, Five Forces + Barriers integration, disruption analysis, and the 67-item Moat Checklist, consult `business-model/references/moat-methodology.md` — this skill uses the industry-level sections of that framework. ### Analyst Modes This skill exposes addressable analysis modes (`--mode=` / `--modes=,` / `--mode=all`; see [Mode syntax](../../../../docs/commands/MODE_SYNTAX.md)). The full mode definitions and their output templates live in `references/modes.md`. The default invocation runs the essentials subset. ## Tool Fallbacks Per-tool failure modes and fallback actions are tabulated in `references/tool-fallbacks.md`. ## Output File Write the final deliverable to `{ticker}/{YYYY-MM-DD_HHMM}_competitive_peer-positioning.md` . ## 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** — coverage gaps are required; inline `/v/` citations are the citation surface (immediately after each fact). A bottom roll-up index is optional, and where kept it must not repeat a link the prose already carries. 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; citations belong inline, a bottom roll-up index is optional and never a repeat of a link already given; 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 the summary shape in `contracts/citation-and-memory.md` — Citation Placement Policy item 3: title · key conclusions · key metrics · Executive Summary · **Key Citations** (the 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 without opening the file. ## Error Handling | Failure Mode | Detection | Action | User-Facing Message | |---|---|---|---| | Missing data | Data API returns empty result set | Widen date range and retry once | "No data available for {ticker} in requested window." | | Partial data | Data API returns <80% expected records | Proceed with coverage gaps section | "Analysis based on partial data; see Coverage Gaps section." | | Sector mismatch | Peer sector != target sector | Filter out mismatched peers | "Removed {n} peer(s) due to sector mismatch." | | Insufficient history | Ticker <3 years on public markets | Downgrade to limited-history profile | "Limited historical data; analysis adjusted accordingly." | | MCP unreachable | Preflight probe fails | Halt with actionable error | "agentii data plane unreachable; check connection." |