Skip to main content
Glama

record_thesis

Saves an investment thesis with its claims, assumptions and triggers so Torus can monitor filings and news, then alert you when events threaten the view.

Instructions

Save a new investment thesis and the claims it rests on.

    Record the claims first with `record_claim` and pass their ids. Torus uses
    the assumptions, subject and triggers to decide which new filings and news
    threaten the thesis and raise alerts. Returns the thesis with its id and
    status (active). To change an existing thesis use `update_thesis`; to log
    an idea you rejected use `record_rejected_hypothesis`.

Input Schema

NameRequiredDescriptionDefault
titleYesShort name, e.g. 'NVIDIA stays supply-bound through FY27'
stanceYesbullish, bearish, neutral, or n/a for non-directional views
horizonNoWhen the view should play out, e.g. 12m, FY27
subjectNoMain entity (ticker, name or id); it is watched for filings
triggersNoConditions that would invalidate it; matching events raise alerts
statementYesThe investment view in one or two sentences
confidenceYes0 = guess, 1 = certain
risk_claim_idsNoClaim ids that argue against it
assumption_claim_idsNoClaim ids that must stay true for the thesis to hold
supporting_claim_idsNoClaim ids that strengthen it but aren't essential

Output Schema

NameRequiredDescriptionDefault
idYes
titleYes
claimsYes
stanceYes
statusYes
horizonYes
entry_atNo
triggersYes
benchmarkNo
statementYes
confidenceYes
created_atYes
instrumentNo
session_idYes
updated_atYes
entry_priceNo
horizon_dateNo
alert_thresholdNo
subject_entity_idYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.1.1
    • changedInput schema / properties / assumption_claim_ids / description
      Previous value: -"Claims the thesis depends on"New value: +"Claim ids that must stay true for the thesis to hold"
    • changedInput schema / properties / horizon / description
      Previous value: -"e.g. 12m, FY27"New value: +"When the view should play out, e.g. 12m, FY27"
    • addedInput schema / properties / risk_claim_ids / description
      Added value: +"Claim ids that argue against it"
    • addedInput schema / properties / stance / description
      Added value: +"bullish, bearish, neutral, or n/a for non-directional views"
    • addedInput schema / properties / statement / description
      Added value: +"The investment view in one or two sentences"
    • changedInput schema / properties / subject / description
      Previous value: -"Main entity of the thesis"New value: +"Main entity (ticker, name or id); it is watched for filings"
    • addedInput schema / properties / supporting_claim_ids / description
      Added value: +"Claim ids that strengthen it but aren't essential"
    • addedInput schema / properties / title / description
      Added value: +"Short name, e.g. 'NVIDIA stays supply-bound through FY27'"
    • changedInput schema / properties / triggers / description
      Previous value: -"Conditions that would invalidate it"New value: +"Conditions that would invalidate it; matching events raise alerts"
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safety profile (not read-only, not destructive, closed-world), and the description adds real behavioral context the annotations cannot: Torus consumes the assumptions, subject and triggers to decide which filings and news threaten the thesis and raise alerts. That downstream side effect is the key thing an agent needs to know before writing. Minor gaps remain (no mention of duplicate/conflict handling for an existing subject).

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?

Front-loaded with the action, then the prerequisite, then the routing alternatives — a sensible order with no filler. The 'Returns the thesis with its id and status (active)' sentence is partly redundant given an output schema exists, keeping it just below top marks.

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

Completeness4/5

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

For a 10-parameter mutation with full schema coverage and an output schema, the description supplies the workflow dependency and the alerting consequence, which is the right level of abstraction. It could say more about what happens if a thesis already exists for the subject, but nothing critical to correct invocation is missing.

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%, so every field including the three claim-id arrays and TriggerIn is already documented in the schema; baseline 3 applies. The description adds only a light relational hint ('pass their ids', 'assumptions, subject and triggers'), not new syntax or format meaning 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?

The first sentence names a specific verb and resource ('Save a new investment thesis') plus the linked claims, which distinguishes it from update_thesis and record_rejected_hypothesis. An agent can tell exactly what object is being created versus mutated.

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?

It gives an explicit ordering prerequisite ('Record the claims first with record_claim and pass their ids') and names two alternatives with their selecting conditions: update_thesis for changes, record_rejected_hypothesis for rejected ideas. Nothing about when to choose this tool is left to inference.

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