Skip to main content
Glama

Get drift alerts

get_drift_alerts
Read-only

Portfolio-wide drift scan. Iterates Decision Records, calls score_position_drift on each, returns flagged positions with severity + why_flagged + review_questions. Flag types: drift_severe (review_now), drift_meaningful (deteriorated), fit_low_structural (score ≤2 but unchanged since entry — low by design, not decay), fit_low_decayed (score ≤2 AND below entry fit — deteriorated after entry), conviction_gap (|gap| ≥3), thesis_undocumented (entry_date or thesis missing). Backs Chapter 4 Mode 4.3 (Thesis Status Sweep) as the portfolio-wide drift scan; flagged names feed a Mode 4.2 (Position Retrospective).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
portfolioYesArray of Decision Records — one per position the user wants scanned

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
alertsNo
as_of_dateNo
staleness_flagsNo
total_positionsNo
flagged_positionsNo
positions_without_recordsNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With readOnlyHint=true and destructiveHint=false already provided, the description adds meaningful behavioral detail beyond annotations: it discloses the iteration mechanism, the flag types, the conditions for each flag, and the downstream workflow. This fully informs an agent about what the tool will do and how to interpret results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core action and then details the flag taxonomy, which is essential for using the tool correctly. Every sentence adds value; the length is justified by the tool's complexity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists, the description need not explain return values in depth, but it still covers key output elements: severity, why_flagged, review_questions, and flag types. It also places the tool in the Mode 4.3 workflow, so an agent has enough context to call and interpret it properly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — the input schema already documents portfolio as 'Array of Decision Records — one per position the user wants scanned.' The description reinforces this by saying 'Iterates Decision Records' but adds no new parameter-level detail beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Portfolio-wide drift scan. Iterates Decision Records, calls score_position_drift on each, returns flagged positions with severity + why_flagged + review_questions.' This clearly distinguishes it from the sibling score_position_drift by emphasizing portfolio-wide scope.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit context for use: 'Backs Chapter 4 Mode 4.3 (Thesis Status Sweep) as the portfolio-wide drift scan.' It also notes downstream use in Mode 4.2. However, it does not explicitly say when not to use it or name an alternative like score_position_drift as the single-position fallback.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

TDQS

A4.1/5.0
Disambiguation4/5

Most tools target clearly distinct resources—regime, liquidity, conditions, prices, ETF profiles, data health—and the three history tools are explicitly separated as price, flow, and judgment. The main ambiguity is get_chapter vs run_chapter, which both return chapter framework content and differ only in usage logging, though the descriptions call this out explicitly.

Naming Consistency4/5

The set follows a consistent snake_case verb_noun pattern: get_ for reads, list_ for enumeration, run_ for framework text, and score_ for position drift. The only wrinkle is run_chapter/get_chapter, where 'run' doesn't mean execution but rather 'return framework text and log usage,' making the verb semantics slightly less predictable.

Tool Count4/5

22 tools is on the heavy side but the set is organized into recognizable clusters: macro regime, liquidity/conditions, histories, portfolio drift, ETF/prices, loops/framework, and data health. Each tool appears to earn its place, so the count is slightly high but not bloated.

Completeness4/5

The surface is comprehensive for a read-and-analyze macro/portfolio server: current reads, historical timeseries, data freshness, event calendar, ETF look-through, drift scoring, and loop navigation are all covered. Minor gaps exist—no direct portfolio/position listing tool and non-US central-bank event dates are intentionally not tracked—but these are acknowledged and workable.

Resources