session_trace

A set of rules for recording the reasoning and file changes made during multi-file or architectural coding tasks.

In plain words
What is it for?
Use it when a task touches more than two files or changes architecture, especially when linking the work to an architecture decision record.
Why use it?
It creates a linked trace of decisions, including the files involved and the reason for each significant step. The input does not name the system that receives these trace calls.

Cursor rule for Cursor

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add rules/indranildchandra/cursor-session-tracer/session_trace
Clone the repo
git clone --depth 1 https://github.com/indranildchandra/cursor-session-tracer

Made for: Cursor.

Per session 16 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 496 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00016 $0.00496
Opus 5 $0.00008 $0.00248
Sonnet 5 $0.00003 $0.00099
Haiku 4.5 $0.00002 $0.00050

Measured 2d ago against content hash b59e9cf065c8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

session_trace scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.cursor/rules/session_trace.mdc · 31 lines

What it actually says

Workflow

At the start of any task involving more than 2 files or any architectural change:

  1. Call start_trace with the full task description and the list of files you expect to touch. Store the returned session_id — you will need it for every subsequent call. Also note the returned trace_file_path so you can reference it later. If this work implements a decision recorded in an ADR (see docs/adr/), pass its id as adr_id (e.g. "ADR-0001") so the trace links back to the plan.

  2. Before each significant decision — reading a file to understand structure, choosing an implementation approach, modifying a file that other files depend on — call append_trace. The reason field must be specific. Not "modified stripe.py" but "routed StripeClient.charge through the resilient transport with order_id as the idempotency key, so a retried charge dedupes instead of double-charging."

  3. Pass the step_id returned from each append_trace call as parent_step_id in the next call. This is what builds the reasoning chain. For the very first append_trace, pass "" as parent_step_id.

  4. When the task is complete or you are stopping, call end_trace with:

    • outcome set to completed, partial, or aborted
    • Do NOT pass model, tokens_in, or tokens_out — these are captured automatically from Cursor's local database.

Do not call append_trace for trivial actions like reading a config file to check syntax. Call it when you are making a decision that affects other files or that a reviewer would want to understand three weeks from now.

Event type reference:

  • decision — choosing an approach or architecture. Most important type. reason must be specific.
  • file_read — reading a file to understand structure before acting
  • file_modify — modifying an existing file
  • file_create — creating a new file
  • file_delete — deleting a file
  • tool_call — invoking an external tool (terminal, search, etc.)
  • checkpoint — explicit marker mid-session for long-running tasks
Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 31 lines · 16 tokens per session scan A b59e9cf065c8

Subscribe to this mod's changes

session_trace is a cursor rule published in the GitHub repository indranildchandra/cursor-session-tracer (11 stars, last pushed 1mo ago), licensed MIT. It adds 16 tokens to every session and 496 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.