Skip to main content
Glama
grahammccain

Chart Library

Decision Brief

decision_brief
Read-onlyIdempotent

Orchestrate a one-call decision brief by aggregating cohort analysis, anchor metadata, memory context, and narrative pulse for any symbol and date.

Instructions

One-call decision-grade orchestrator. Use this as your DEFAULT first call for any (symbol, date) anchor question.

Composes cohort_analyze (depth=full) + anchor metadata + Layer 5 memory
(symbol_intelligence) + narrative pulse into a single structured brief.

── HOW TO TURN THIS INTO A GOOD ANSWER ──────────────────────────
Read `summary` first. It contains deterministic classification flags:

    verdict_class:    bullish | lean_bull | coin_flip | lean_bear | bearish | broken
    edge_class:       trivial | small | meaningful | large
    regime_alignment: tailwind | neutral | headwind
    sample_quality:   thin | ok | strong
    conviction:       low | med | high
    swing_factors:    [ { factor, direction, framing } ]
    caveat_flags:     [ thin_in_regime_sample, regime_was_derived, ... ]

Paraphrase the `framing` strings in your OWN voice — do not quote them
verbatim. Cite the raw numbers in parentheses, don't enumerate every
structured field. Lead with the verdict, then the context, then the
swing factors as things to watch, then conviction.

Example (your voice may differ):
  "Honestly, this NVDA setup is a coin flip. In-regime cohort (n=21)
   printed +0.09% median over 5d (52% wins) — basically identical to
   other regimes (+0.27%, 52%). Sector is lagging hard (-10.4 RS),
   which is muting reads. Soft sample size — directional, not thesis."

── RESPONSE STRUCTURE ───────────────────────────────────────────
  summary                       (read this first — see above)
  current_regime                (anchor's regime label + features)
  cohort_total                  (all analogs, all regimes)
  in_current_regime             (subset matching the anchor's regime)
  outside_current_regime        (rest, weighted average)
  conditional_edge              (median_lift_pp + win_rate_lift_pp)
  thesis_invalidation_triggers  (top 5 features, narrative-ready with
                                 interpretation strings — quote these
                                 when explaining what would flip the read)
  feature_importance            (top 20 features ranked by within-cohort
                                 importance, compact shape — use this
                                 when the user asks about a specific
                                 feature or you need depth beyond the
                                 top 5. Mirrors the full attribution
                                 view the /intelligence UI shows.)
  n_features_total              (count of all features computed; if
                                 greater than 20 the rest are available
                                 via /api/v1/cohort_analyze directly)
  memory_context                (Layer 5 prior observations)
  narrative_context             (news pulse)
  conviction                    (legacy — same as summary.conviction)

When to use this vs the primitives:
  - decision_brief: agents asking "what should I know about this anchor?"
  - cohort (depth='full'): when you need full feature_importance / raw stats
  - analyze (metric=...): single metric drill-downs

Args:
    symbol, date, timeframe: anchor (timeframe default "1h" — current; "1d" lags ~3 days)
    cohort_size: target K (default 300)
    horizon_days: forward horizon for the headline read (default 5)
    include_memory: include Layer 5 prior-observations context (default True)
    include_narrative: include news pulse / narrative-change context (default True)

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
symbolYes
dateYes
timeframeNo1h
cohort_sizeNo
horizon_daysNo
include_memoryNo
include_narrativeNo

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes
Behavior4/5

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

Annotations already mark it as readOnly, idempotent, and non-destructive. The description adds value by disclosing the internal composition (cohort_analyze, memory, narrative) and the structured output format. It also explains the trade-off between detail and primitives, which aids understanding beyond the annotations.

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

Conciseness4/5

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

The description is lengthy but well-structured with clear sections (HOW TO TURN THIS INTO A GOOD ANSWER, RESPONSE STRUCTURE, When to use, Args). Every major section earns its place by providing necessary guidance. Minor redundancy could be trimmed, but overall it is efficiently organized.

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 tool's complexity (7 params, composite behavior, rich output), the description is remarkably complete. It covers what the tool does, how to use it, what the output fields mean (including field-by-field interpretation), when to choose alternatives, and parameter details. An output schema exists (not shown), but the description already explains the return value thoroughly.

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

Parameters5/5

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

The input schema has zero description coverage, so the description fully carries the burden. All 7 parameters are explained in the 'Args:' block, including defaults, behaviors (e.g., timeframe default '1h' meaning current, '1d' lagging ~3 days), and the role of each boolean (include_memory, include_narrative). This compensates fully for the schema's lack of descriptions.

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?

The description clearly states it is a 'One-call decision-grade orchestrator' and the 'DEFAULT first call for any (symbol, date) anchor question.' It explicitly lists the components it composes and distinguishes from sibling tools by providing specific guidance on when to use decision_brief vs cohort vs analyze.

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

Usage Guidelines5/5

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

The description provides extensive usage guidance: it names this as the default first call, includes a dedicated 'When to use this vs the primitives' section detailing alternatives, and gives step-by-step instructions on how to interpret the output (e.g., read summary first, paraphrase frames, cite numbers). This fully supports correct tool selection and invocation.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/grahammccain/chart-library-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server