AgentSkillsCN

Dossier Generation

档案生成

SKILL.md

Dossier Generation Skill

Purpose

Generate investment dossiers and IC (Investment Committee) memos from pipeline output. This skill defines the structure, cadence, and content requirements for transforming raw screening results into actionable investment documents.

Preconditions

  • Pipeline run has completed successfully (all audit stages OK).
  • Governance metadata is present in screening output.
  • All scores referenced in the dossier are from the same as_of_date.
  • No future data has leaked into the scoring (PIT-verified).

Weekly Cadence

DayActivityOwner
TuesdayMachine processing: full pipeline run, data collection, scoringAutomated
WednesdayHuman scoring: manual review of flagged tickers, override decisionsAnalyst
ThursdayIC presentation: ranked portfolio, position sizing, risk overlaysCommittee

Dossier Structure

Section 1: Run Summary

code
Run ID:           <deterministic hash>
As-of Date:       <YYYY-MM-DD>
PIT Cutoff:       <as_of_date - 1>
Score Version:    <version>
Schema Version:   <version>
Parameters Hash:  sha256:<hash>

Section 2: Universe Overview

MetricValue
Total tickers screenedN
Active (passed gates)N
Excluded (SEV3)N
Shell companies filteredN
Below liquidity gateN
Below market cap gateN

Section 3: Signal Coverage Dashboard

Report coverage for each signal component. Flag any component below its minimum threshold.

SignalCoverageThresholdStatus
Financial scoresX/N (Y%)80%OK/DEGRADED
Clinical scoresX/N (Y%)80%OK/DEGRADED
Catalyst eventsX/N (Y%)10%OK/DEGRADED
Market dataX/N (Y%)0%OPTIONAL
Momentum signalX/N (Y%)0%OPTIONAL
Valuation signalX/N (Y%)0%OPTIONAL
Smart money (13F)X/N (Y%)0%OPTIONAL
Short interestX/N (Y%)0%OPTIONAL
PoS scoresX/N (Y%)0%OPTIONAL

Section 4: Regime Context

IndicatorValueRegime Signal
VIX levelX.XCalm/Normal/Elevated/High/Extreme
XBI vs SPY (30d)X.X%Outperform/Underperform
Yield curve (10Y-2Y)X bpsNormal/Inverted
HY credit spreadX bpsNormal/Elevated/Crisis
Classified regimeXBULL/BEAR/VOLATILITY/etc.

Regime Signal Adjustments Applied

SignalMultiplierRationale
MomentumX.XxRegime-adjusted
FundamentalX.XxRegime-adjusted
QualityX.XxRegime-adjusted
CatalystX.XxRegime-adjusted
ClinicalX.XxRegime-adjusted
FinancialX.XxRegime-adjusted

Section 5: Top Holdings (Ranked Portfolio)

For each ticker in the top N (default 20), present:

code
Rank: #X
Ticker: XXXX
Composite Score: XX.XX / 100
Position Size: X.X%

Score Breakdown:
  Clinical:   XX.XX (weight: XX%)  [Phase: X, Indication: X]
  Financial:  XX.XX (weight: XX%)  [Runway: Xmo, Severity: X]
  Catalyst:   XX.XX (weight: XX%)  [Events: X, Proximity: X days]
  PoS:        XX.XX (weight: XX%)  [LOA: X.XXX, Confidence: X.XX]
  Momentum:   XX.XX (weight: XX%)  [Direction: X]
  Valuation:  XX.XX (weight: XX%)  [Peer rank: X]
  Short Int:  XX.XX (weight: XX%)  [SI: X%, DTC: X, Signal: X]

Enhancement Flags:
  - E1 Regime Gating:    [applied/not applied]
  - E2 Existential Flaw: [applied/not applied] [cap: XX]
  - E3 Confidence Gate:  [components gated: X]
  - E4 Score Ceiling:    [ceiling: XX, reason: X]
  - E5 Asymmetric:       [transform applied: X]
  - E6 Contradictions:   [conflicts: X]

Risk Flags:
  - Dilution Risk: [NO_RISK/LOW/MEDIUM/HIGH] (score: X.XX)
  - Liquidity Risk: [flags]
  - Crowding Risk: [LOW/MEDIUM/HIGH]
  - Staleness: [PASS/WARN/SOFT_GATE]

Smart Money:
  - Managers holding: X/33 elite
  - Coordinated activity: [ADD/EXIT/NONE]
  - Crowding: [YES/NO] (threshold: 6+)

Section 6: Exclusions Report

List all excluded tickers with reasons:

TickerExclusion ReasonGate
XXXXRunway < 6 monthsSEV3 (financial)
XXXXADV < $500KLiquidity hard gate
XXXXShell companyUniverse filter
XXXXMarket cap < $50MSize filter

Section 7: Score Distribution

Report distribution statistics for each score component across the rankable universe:

ComponentMeanMedianStd DevMinMaxSkew
CompositeX.XX.XX.XX.XX.XX.X
ClinicalX.XX.XX.XX.XX.XX.X
FinancialX.XX.XX.XX.XX.XX.X
CatalystX.XX.XX.XX.XX.XX.X

Section 8: Week-over-Week Changes

Compare current run to previous week's run:

Change TypeCountDetails
New to top 20N[tickers]
Dropped from top 20N[tickers]
Rank change > 10N[tickers with direction]
New exclusionsN[tickers with reasons]
Re-includedN[tickers]
New catalyst eventsN[tickers with event types]

Section 9: Position Sizing Summary

MetricValue
Total positionsN (max: 60)
Target weight sum100%
Max single positionX.X% (limit: 10%)
Min single positionX.X% (limit: 0.5%)
HHI (concentration)X.XXXX

Composite Weight Sets

Document which weight set was used and why:

V3 Enhanced (all signals available)

ComponentWeight
Clinical26%
Financial24%
Catalyst16%
PoS14%
Momentum9%
Short Interest6%
Valuation5%

V3 Default (no enhancement data)

ComponentWeight
Clinical40%
Financial35%
Catalyst25%

V3 Partial (some enhancements)

ComponentWeight
Clinical33%
Financial28%
Catalyst18%
Momentum9%
Short Interest7%
Valuation5%

Baker-Style Fundamental-Concentrated

ComponentWeightRationale
Clinical35%Core thesis (biology quality)
PoS18%Core thesis (probability)
Financial22%Survivability
Valuation15%Mispricing
Catalyst7%Timing only
Momentum2%Overlay
Short Interest1%Risk context

Enhancement Flags Reference (E1-E6)

E1: Hard Regime Gating

RegimeMomentum CapCatalyst AdjFinancial Penalty
BEAR30% of deviation-1.25x
BULL100% (full)1.15x boost0.85x
NEUTRALNo gating--

E2: Existential Flaw Escalation

  • Runway < 9 months AND early-stage (phase_1, phase_2): cap score at 65
  • Alternative: apply 20% penalty

E3: Confidence-Weighted Aggregation

Per-component confidence multipliers. Components below 0.40 confidence are soft-gated (weight reduced, not zeroed).

E4: Dynamic Score Ceilings

ConditionCeiling
Phase 3 stage<= 85
No catalyst events<= 60
Commercial stage<= 90

E5: Convex Downside, Concave Upside

  • Negative deviations from neutral are amplified (convex loss function)
  • Positive deviations are dampened (concave gain function)
  • Reflects loss aversion appropriate for biotech risk

E6: Contradiction Detector

Conflict PairResolution
Strong momentum + low liquidityCap momentum contribution
Cheap valuation + financing pressureFlag, reduce conviction

Smart Money Section Detail

Manager Tier Weights

TierWeightDescription
Elite Core1.5xTop-tier biotech specialists
Conditional1.0xOther tracked managers

Position Change Scoring

ActionShare ChangeScore
NEW0 -> positive+10
ADD> +10%+5
HOLD+/- 10%+2
TRIM> -10%-3
EXITpositive -> 0-8

Coordinated Activity

SignalThresholdMeaning
Coordinated buying>= 3 managers addingBullish conviction
Fresh conviction>= 2 managers new positionsStrong bullish
Crowding>= 6 managers holdingPotential crowding risk

Expected Return Model

For translating composite scores into expected returns:

code
Score -> Rank -> Percentile (Blom plotting position)
Percentile -> Z-score (Acklam inverse normal)
Z-score -> Expected excess return = z * lambda * (12 / holding_period_months)
  • DEFAULT_LAMBDA_ANNUAL: 0.08 (8% per 1-sigma per year)
  • Model ID: zscore_linear_lambda
  • Model Version: 1.0.0

Output Format Requirements

  1. All monetary values in USD with commas (e.g., $1,234,567)
  2. All scores to 2 decimal places
  3. All percentages to 1 decimal place
  4. All dates in ISO 8601
  5. Governance block attached to every output document
  6. Content hash (SHA256) of the dossier included in audit log

Source Files

ComponentFile
Pipeline Orchestratorrun_screen.py
Composite Scoringmodule_5_composite_v3.py
Scoring Typesmodule_5_scoring_v3.py
Diagnosticsmodule_5_diagnostics_v3.py
Regime Engineregime_engine.py
Smart Moneymanager_momentum_v1.py
Expected Returnscommon/score_to_er.py
Audit Loggovernance/audit_log.py
Position Sizingmodule_5_composite_with_defensive.py