ct-status-diff
Weekly clinical-trial status diff — the 11-category change report over the stored weekly snapshots (spec 055 FR-B03). Surfaces exactly what changed on the trial registry for your coverage: New / Suspended / Withdrawn / Terminated / Recruiting / Recruitment-Complete / Completed /
Install
npx skills add https://github.com/agentii-ai/agentii-investment-intelligence/tree/main/plugins/vertical-plugins/bio-pharm/skills/agentii/ct-status-diff
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install agentii-ai-agentii-investment-intelligence@llmmart
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
Methodology inspired by publicly taught clinical-trial monitoring frameworks; all text is an original paraphrase.
Defaults
| Parameter | Default Value | Rationale |
|---|---|---|
| window | latest two snapshots | The diff is always between consecutive stored states |
| categories | all 11 | Complete change report; filter on request |
| risk_flags | on | Terminated / Downsized are surfaced first |
| gap_statement | on | Missing snapshot weeks are stated, never inferred |
Preflight
Run canonical pre-flight per contracts/preflight.md. Propagate X-Agentii-Trace per contracts/x-agentii-trace-header.md. Confirm the snapshot coverage via get_ct_status_changes before framing any readout.
Triggers
- "What changed on clinicaltrials.gov for my coverage this week?"
- "Which of [ticker]'s trials moved this week?"
- "Any trial delays or accelerations in my watchlist?"
- "Flag every terminated or downsized trial since last week."
- "Did any recruitment complete for [ticker]?"
- "Show the previous and new primary-completion dates for [drug]'s program."
- "Which trials were upsized this week?"
- "Is [trial]'s enrollment collapsing?"
- "Summarize the week's trial-registry changes for the sector."
- "What should I re-check ahead of [readout] based on registry moves?"
- "Compare this week's diff to the month-ago diff."
Production Grounding
- The diff is a stored-state comparison: every row pairs a NEW value with the PREVIOUS value from the prior snapshot — the previous-value column is the discipline; a row without both is a defect.
- The 11-category taxonomy: New / Suspended / Withdrawn / Terminated / Recruiting / Recruitment-Complete / Completed / Ahead / Delayed / Upsized / Downsized.
- Risk signals: Terminated and Downsized (enrollment collapse is the earliest visible distress). Re-timing alerts: Ahead / Delayed primary-completion moves.
- Recruitment-Complete means the readout clock has started — treat it as a catalyst-date confirmation.
- Gap windows: if snapshots are not consecutive archive writes, the gap is stated on the rows — a change is never attributed across a missing week.
- Determinism: identical snapshots yield byte-identical diffs; never invent an intermediate state.
- Badge discipline:
[FACT]registry rows,[DEDUCTED]interpretations,[VIEW]positioning, with the summary table.
Data Source Priority
get_ct_status_changes— the stored-weekly-snapshot diff (pipeline.ct_status_snapshot).- Trial context:
search_clinical_trials/get_clinical_trialfor design and endpoints. - Company context:
search_companies/get_company_profile. - Historical grounding:
search_investment_cases(event_type=termination/delay/safety) +search_by_analogue. - Knowledge:
search_knowledge_entriesfor trial-judgment patterns.
Methodology
Retrieval Scope
structured_only
Retrieval Strategy
- Pull the weekly diff via
get_ct_status_changes(ticker-filtered for single names, sector-wide for watchlists). - Rank rows: risk signals first, then re-timing, then recruiting/completed, then new.
- For each risk-signal row, pull the trial's design via
get_clinical_trialand state what changed and what it implies. - Ground termination/delay reads in
search_investment_cases/search_by_analogue(sectors=med); cite /v/ records. - Attach the gap-window statement verbatim wherever the tool reports one.
Temporal Scope
See frontmatter temporal_scope block. Historical diff series (month-over-month) available on request.
Tool Allowlist
See frontmatter allowed_tools.
Protocol
- Snapshot-diff pull
- Risk/re-timing triage
- Per-signal trial context
- Historical grounding
- Weekly change report + watch flags
Modes
- Watchlist (default): one diff report across the basket, sorted risk-first.
- Single ticker: per-trial change ledger with trial context.
- Signal scan: restrict to risk signals (Terminated/Downsized) or re-timing (Ahead/Delayed).
Tool Fallbacks
| Failure | Fallback |
|---|---|
| get_ct_status_changes empty (<2 snapshots) | State the coverage gap: the diff needs two consecutive snapshot cycles; use search_clinical_trials metadata as a degraded view |
| Trial not in snapshots | Flag as registry-coverage gap; do not fabricate a previous value |
| Knowledge tools empty | Proceed with structured diff only; annotate knowledge coverage_gap |
Output File
{ticker}/{YYYY-MM-DD_HHMM}_ct-status-diff_{affix}.md (watchlist: watchlist/{YYYY-MM-DD_HHMM}_ct-status-diff_{affix}.md)
Output Structure
- Executive Summary — the week in trial-registry changes, 2-3 sentences
- Risk Signals — Terminated / Downsized rows with previous/new values and trial context
- Re-Timing Alerts — Ahead / Delayed rows with date deltas
- Flow Changes — New / Recruiting / Recruitment-Complete / Completed / Suspended / Withdrawn rows
- Gap Statement — snapshot windows with missing weeks stated
- Watch Flags — what to re-check before the next readout
- Coverage Gaps — missing snapshots, unregistered trials, degraded modes
Error Handling
| Error | Fallback |
|---|---|
| Fewer than 2 snapshots | coverage_gap with the two-cycle requirement; degraded metadata view only |
| Empty diff | State it plainly — a clean week is a valid result; never pad |
| Ticker not in med universe | Resolve via company match; surface the classification gap |
Memory Load
See contracts/memory-load.md.
Snapshot
See contracts/snapshot-synthesis.md.
Final Summary (TUI)
Include ### Key Citations block with 0-10 clickable /v/ URLs.
References
contracts/citation-and-memory.mdcontracts/output-frontmatter-schema.mdcontracts/memory-load.mdcontracts/snapshot-synthesis.mdcontracts/preflight.mdreferences/knowledge-frameworks.md
Files (agentii-investment-intelligence)
-
references
-
knowledge-frameworks.md 2.2 KB
# ct-status-diff — Knowledge Frameworks Original paraphrase of publicly taught clinical-trial monitoring discipline. No external research text is quoted. ## The 11-Category Change Taxonomy - **New** — no prior snapshot row; the trial entered the registry view. - **Suspended / Withdrawn / Terminated** — regulatory or sponsor stops; Terminated carries the highest risk weight. - **Recruiting / Recruitment-Complete / Completed** — the enrollment lifecycle; Recruitment-Complete starts the readout clock. - **Ahead / Delayed** — primary-completion re-timing; the earliest signal of program momentum. - **Upsized / Downsized** — enrollment-count moves; Downsized is the earliest visible distress indicator (a collapse in planned enrollment often precedes a termination). ## The Stored-Previous-Value Discipline The diff is only meaningful because the prior week's state was STORED before this week's arrived. Every reported change pairs new with previous; a change without a previous value is an inference, and inferences are never presented as facts. Gap windows (missing snapshot weeks) are stated verbatim on the rows they affect — a change is never attributed across a gap. ## Signal Weighting 1. **Risk signals** (Terminated, Downsized): portfolio-level red flags — check the sponsor's pipeline dependence on the asset, the safety read-through to the mechanism, and the cash-runway implication. 2. **Re-timing alerts** (Ahead, Delayed): program-momentum signals — a Delayed pivotal date pushes the whole catalyst calendar; an Ahead date pulls it forward. 3. **Flow changes** (New, Recruiting, Recruitment-Complete, Completed): the readout calendar's heartbeat. ## Readout-Clock Rule Recruitment-Complete is the reliable "readout clock started" marker — pair it with the primary-completion date to date the catalyst. An unchanged status between snapshots is information too: a trial that was due to complete and did not is a silent delay. ## Badge Discipline - `[FACT]` — registry rows and their previous/new values. - `[DEDUCTED]` — signal interpretations (e.g., enrollment collapse implies distress). - `[VIEW]` — positioning judgments; always labeled, never conflated with facts. -
modes.md 478 B
# ct-status-diff — Analyst Mode Definitions Derived from the skill's own methodology structure (scripts/mode_backfill.py, spec 046 M1). ### Mode: watchlist **Objective**: Watchlist analysis per the skill's methodology (see SKILL.md sections). ### Mode: single-ticker **Objective**: Single Ticker analysis per the skill's methodology (see SKILL.md sections). ### Mode: signal-scan **Objective**: Signal Scan analysis per the skill's methodology (see SKILL.md sections).
-
-
SKILL.md 6.9 KB
--- name: ct-status-diff description: "Weekly clinical-trial status diff — the 11-category change report over the stored weekly snapshots (spec 055 FR-B03). Surfaces exactly what changed on the trial registry for your coverage: New / Suspended / Withdrawn / Terminated / Recruiting / Recruitment-Complete / Completed / Ahead / Delayed / Upsized / Downsized, every row carrying previous and new values, with risk flags on Terminated and Downsized and re-timing flags on Ahead and Delayed. The stored-previous-value discipline makes each week's diff reproducible." sectors: [med.medicines_biotech, med.medical_devices] multi_ticker_semantics: basket_v1_1 temporal_scope: default_quarters: 4 max_quarters: 8 description: "Weekly diff over the latest two snapshots by default; up to 8 quarters of diff history on request." allowed_tools: - get_ct_status_changes - search_clinical_trials - get_clinical_trial - search_companies - get_company_profile - search_investment_cases - search_by_analogue - search_knowledge_entries - get_knowledge_entry retrieval_scope: structured_only min_tool_diversity: 3 parameter_free: false --- > Methodology inspired by publicly taught clinical-trial monitoring frameworks; all text is an original paraphrase. ## Defaults | Parameter | Default Value | Rationale | |-----------|---------------|-----------| | window | latest two snapshots | The diff is always between consecutive stored states | | categories | all 11 | Complete change report; filter on request | | risk_flags | on | Terminated / Downsized are surfaced first | | gap_statement | on | Missing snapshot weeks are stated, never inferred | ## Preflight Run canonical pre-flight per `contracts/preflight.md`. Propagate X-Agentii-Trace per `contracts/x-agentii-trace-header.md`. Confirm the snapshot coverage via `get_ct_status_changes` before framing any readout. ## Triggers - "What changed on clinicaltrials.gov for my coverage this week?" - "Which of [ticker]'s trials moved this week?" - "Any trial delays or accelerations in my watchlist?" - "Flag every terminated or downsized trial since last week." - "Did any recruitment complete for [ticker]?" - "Show the previous and new primary-completion dates for [drug]'s program." - "Which trials were upsized this week?" - "Is [trial]'s enrollment collapsing?" - "Summarize the week's trial-registry changes for the sector." - "What should I re-check ahead of [readout] based on registry moves?" - "Compare this week's diff to the month-ago diff." ## Production Grounding - The diff is a stored-state comparison: every row pairs a NEW value with the PREVIOUS value from the prior snapshot — the previous-value column is the discipline; a row without both is a defect. - The 11-category taxonomy: New / Suspended / Withdrawn / Terminated / Recruiting / Recruitment-Complete / Completed / Ahead / Delayed / Upsized / Downsized. - Risk signals: Terminated and Downsized (enrollment collapse is the earliest visible distress). Re-timing alerts: Ahead / Delayed primary-completion moves. - Recruitment-Complete means the readout clock has started — treat it as a catalyst-date confirmation. - Gap windows: if snapshots are not consecutive archive writes, the gap is stated on the rows — a change is never attributed across a missing week. - Determinism: identical snapshots yield byte-identical diffs; never invent an intermediate state. - Badge discipline: `[FACT]` registry rows, `[DEDUCTED]` interpretations, `[VIEW]` positioning, with the summary table. ## Data Source Priority 1. `get_ct_status_changes` — the stored-weekly-snapshot diff (pipeline.ct_status_snapshot). 2. Trial context: `search_clinical_trials` / `get_clinical_trial` for design and endpoints. 3. Company context: `search_companies` / `get_company_profile`. 4. Historical grounding: `search_investment_cases` (event_type=termination/delay/safety) + `search_by_analogue`. 5. Knowledge: `search_knowledge_entries` for trial-judgment patterns. ## Methodology ### Retrieval Scope structured_only ### Retrieval Strategy 1. Pull the weekly diff via `get_ct_status_changes` (ticker-filtered for single names, sector-wide for watchlists). 2. Rank rows: risk signals first, then re-timing, then recruiting/completed, then new. 3. For each risk-signal row, pull the trial's design via `get_clinical_trial` and state what changed and what it implies. 4. Ground termination/delay reads in `search_investment_cases` / `search_by_analogue` (sectors=med); cite /v/ records. 5. Attach the gap-window statement verbatim wherever the tool reports one. ### Temporal Scope See frontmatter temporal_scope block. Historical diff series (month-over-month) available on request. ### Tool Allowlist See frontmatter allowed_tools. ### Protocol 1. Snapshot-diff pull 2. Risk/re-timing triage 3. Per-signal trial context 4. Historical grounding 5. Weekly change report + watch flags ## Modes - **Watchlist** (default): one diff report across the basket, sorted risk-first. - **Single ticker**: per-trial change ledger with trial context. - **Signal scan**: restrict to risk signals (Terminated/Downsized) or re-timing (Ahead/Delayed). ## Tool Fallbacks | Failure | Fallback | |---------|----------| | get_ct_status_changes empty (<2 snapshots) | State the coverage gap: the diff needs two consecutive snapshot cycles; use search_clinical_trials metadata as a degraded view | | Trial not in snapshots | Flag as registry-coverage gap; do not fabricate a previous value | | Knowledge tools empty | Proceed with structured diff only; annotate knowledge coverage_gap | ## Output File `{ticker}/{YYYY-MM-DD_HHMM}_ct-status-diff_{affix}.md` (watchlist: `watchlist/{YYYY-MM-DD_HHMM}_ct-status-diff_{affix}.md`) ## Output Structure 1. **Executive Summary** — the week in trial-registry changes, 2-3 sentences 2. **Risk Signals** — Terminated / Downsized rows with previous/new values and trial context 3. **Re-Timing Alerts** — Ahead / Delayed rows with date deltas 4. **Flow Changes** — New / Recruiting / Recruitment-Complete / Completed / Suspended / Withdrawn rows 5. **Gap Statement** — snapshot windows with missing weeks stated 6. **Watch Flags** — what to re-check before the next readout 7. **Coverage Gaps** — missing snapshots, unregistered trials, degraded modes ## Error Handling | Error | Fallback | |-------|----------| | Fewer than 2 snapshots | coverage_gap with the two-cycle requirement; degraded metadata view only | | Empty diff | State it plainly — a clean week is a valid result; never pad | | Ticker not in med universe | Resolve via company match; surface the classification gap | ## Memory Load See `contracts/memory-load.md`. ## Snapshot See `contracts/snapshot-synthesis.md`. ## Final Summary (TUI) Include ### Key Citations block with 0-10 clickable /v/ URLs. ## References - `contracts/citation-and-memory.md` - `contracts/output-frontmatter-schema.md` - `contracts/memory-load.md` - `contracts/snapshot-synthesis.md` - `contracts/preflight.md` - `references/knowledge-frameworks.md`
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.