truecourse CLAUDE.md

truecourse CLAUDE.md is an instructions file for coding agents from truecourse-ai/truecourse. It costs 7,282 tokens per session, scanned A, original, MIT.

Project instructions for TrueCourse, a code-analysis application with a dashboard, server, and shared analysis engine.

In plain words
What is it for?
Use them when changing TrueCourse features, its dashboard or server, project structure, documentation, storage, or analysis pipeline.
Why use it?
They identify the files that must stay current and explain where the main parts of the project live, reducing the risk of inconsistent changes.

Instructions file

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 instructions/truecourse-ai/truecourse/claude-md
Clone the repo
git clone --depth 1 https://github.com/truecourse-ai/truecourse

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for truecourse CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/truecourse-ai/truecourse/claude-md.svg)](https://agentmods.dev/instructions/truecourse-ai/truecourse/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/truecourse-ai/truecourse/claude-md"><img src="https://agentmods.dev/badge/instructions/truecourse-ai/truecourse/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 7,282 This file is loaded in full into every session.
When invoked 7,282 The same file — it is already loaded in full.
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.07282 $0.07282
Opus 5 $0.03641 $0.03641
Sonnet 5 $0.01456 $0.01456
Haiku 4.5 $0.00728 $0.00728

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

Security

Grade A, and why

truecourse CLAUDE.md 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 yesterday.

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.

CLAUDE.md · 134 lines

How it starts

The opening of the file, as written. The whole thing — 134 lines — stays where its author put it; the contents beside it link to each section on GitHub.

TrueCourse — Claude Instructions

Key Files to Keep Updated

  • docs/SPEC_GUARD_PLAN.md — The source of truth for the guard (spec → scenario) pipeline: design, implementation status, and the numbered decision/work items. When completing work on an item, update its STATUS:; when adding features or changing scope, update the plan.
  • README.md — Must reflect the current state of the project. When adding new packages, endpoints, commands, environment variables, or changing the project structure, update the README to match.

Project Layout

  • apps/dashboard/client/ — Vite + React Router frontend (React Flow graph, Tailwind CSS, dark mode)
  • apps/dashboard/server/ — Express + Socket.io HTTP layer that serves the dashboard. Thin adapter over @truecourse/core; contains routes, sockets, middleware, and dashboard-only services (analytics, watcher, telemetry).
  • apps/landing/ — Public marketing site (Vite + React + Tailwind v4). Standalone, deployed separately from the local dashboard. pnpm --filter @truecourse/landing dev runs it on port 3100. Sample OSS analysis reports live in apps/landing/src/data/analyses.ts.
  • packages/core/ — Framework-agnostic analysis engine: pipeline, graph/flow services, LLM providers, persistence (analysis-store), config, logger, errors. Consumed by both the CLI and the dashboard server.
  • packages/analyzer/ — Tree-sitter (WASM via web-tree-sitter) + TypeScript Compiler analysis engine (TS/JS/Python)
  • packages/interface-mapper/ — The deterministic interface catalog: CLI (tree + probes), API (route registrations, OpenAPI contracts), RPC routers and web places/resources derived from the analyzer's per-file facts. Feeds guard setup's interfaces step and guard interfaces author; depends only on @truecourse/shared and @truecourse/guard-runner.
  • packages/llm-api/ — The direct-API LlmTransport (createApiTransport) on the Vercel AI SDK: anthropic | openai | bedrock | copilot, generateObject when the request carries a schema, per-call StageUsage. The only OSS package allowed to import ai / @ai-sdk/* (enforced by tests/architecture/ee-import-boundary.test.ts); @truecourse/ee-llm re-exports it. Also home to the api-mode session driver (createApiSessionDriver) — the per-turn loop the agent sessions run on in api mode — and the per-provider cache/tool-call tuning table it applies.
  • packages/llm-claude-agent/ — The Agent SDK session driver (createClaudeAgentSessionDriver): claude-code mode of the agent loop, one streaming-input query() subprocess per session, tools as in-process MCP handlers, outcome via native json-schema output. The only package allowed to reference @anthropic-ai/claude-agent-sdk (enforced by the same boundary test), which is an OPTIONAL peer behind a lazy import — never a compile-time dependency (its optionalDependencies drag a ~300MB binary).
  • packages/agent-loop/ — The agent loop, defined in ONE package: the session contract (transcript events, session defs, the SessionDriver seam, sessions-store shapes) and the policy shell runAgentLoop (budgets, ceilings, resume grants, malformed-outcome policy, seq/ts stamping, depth-1 children). Driver-agnostic by construction — imports neither ai nor the Agent SDK nor node builtins; one package per backend implements the seam (llm-api, llm-claude-agent).
  • packages/core/src/services/guard-setup/guard setup's agent sessions, injected into @truecourse/guard-generator's runGuardSetup (which stays core-free) by commands/guard-setup.ts: recipe-repair (loop only on the failure path of deterministic recipe discovery, iterating in one persistent WorkingSandbox), dependency-catalog (classify the starting state after the deterministic externals skeleton; add-only fold into scenarios/dependencies.json), interfaces-step + reconcile-interfaces (the deterministic interface catalog from @truecourse/interface-mapper, a reconcile session that settles tree-vs-probe disagreements, and the services/interface-author/ engine behind guard interfaces author; the derived catalog is guard/interfaces.json, the authored one guard/interfaces.authored.json), seed-session (prove-by-execution seed authoring against the live services; the fold re-proves the outcome in a fresh world and restores the tree on refusal) and auth-proof (one short session per user-registered supplied dependency; proof-class, never cached). session-context.ts is the holder of the run record + driver every seam draws from — lazy for the CLI, eager and keyed by repo identity for a hosted run.
  • packages/core/src/services/spec-scan/ — The spec scan as agent sessions, the loop's first production consumer: orchestrate (≤1 scope session whose standing instructions ride every downstream briefing and cache key), curate-doc (pooled, one coherent keep/skip/tag judgment per doc — it may page a long doc and peek at a referenced one), settle-areas (a true barrier, concurrency 1) and overlap (pooled, one session per deterministic COLLISION CLUSTER). run.ts is the whole scan: discovery → prefilter → the four steps → the deterministic fold (pointer re-anchoring, cross-area dedup, high-confidence auto-apply) → writeCorpus. Two invariants: FAIL-OPEN per item (a dead session never drops a doc), and the ONE-ABORT rule — a kind whose every session died transport-class throws BEFORE anything is written. @truecourse/spec-consolidator keeps the deterministic half (discovery, prefilter, collision pairing, pointer verification, area grouping, the corpus/decisions stores); it holds no LLM runner and no LlmTransport reference at all.
  • packages/shared/ — Shared Zod schemas and TypeScript types
  • packages/db/@truecourse/db: the Postgres schema (drizzle) + createDb (one pool, migrations at boot, a dedicated advisory-lock pool). Used by the dashboard server and EE.
  • packages/data-store/@truecourse/data-store: Postgres implementations of core's storage seams (analyses, specs, guard, config/ui-state, the gh_repos-derived registry, the LLM KV cache, the advisory analyze lock) over a content-addressed content table. Installed by the dashboard server at boot (apps/dashboard/server/src/stores.ts); @truecourse/ee-data-store re-exports it and keeps only EE-only stores (knowledge, traces, workspace settings). The jobs, notifications and pending-baseline stores live here too (jobs-store.ts), consumed by @truecourse/jobs.
  • packages/github-app/ — The GitHub App protocol: webhook receiver, connect API, the gh_repos/installations link store (PostgresGateStore).
  • packages/jobs/@truecourse/jobs: the generic background job runner. A Postgres-backed queue (graphile-worker) with a tracked row per job, the shared lifecycle harness (executeJob: row bookkeeping, the stepped checklist, the standardized notification, the settled hook), a local cancel registry, the LISTEN/NOTIFY event hub, and the three routers the server mounts (/api/events, /api/jobs, /api/notifications). Enqueues are single-flight per (workspace, key). Job TYPES live with their consumer — the dashboard server's are in apps/dashboard/server/src/jobs/tasks/.
  • tools/cli/ — CLI commands (analyze, dashboard, list, add, rules). Thin adapter over @truecourse/core — does NOT depend on the dashboard server.
  • tests/ — All tests (centralized, not colocated). Organized by package: tests/shared/, tests/analyzer/, tests/server/ (covers both dashboard-server routes and core services), tests/cli/.
  • tests/fixtures/ — Fixture repos the tests drive: sample-{js,python,csharp}-project-{positive,negative,il}/ (analyzer rule fixtures), sample-scheduling-saas/, guard-fixture-cli/ (the relkit CLI) and guard-fixture-api/ (the todos + api-v2 HTTP servers) for the guard drivers, recipe-propose/ and route-manifest-monorepo/ for the deterministic recipe/route derivations

Read the full file on GitHub · 134 lines

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. yesterday Changed · +14 lines · +2,175 tokens per session f615d4928f2a
  2. 5d ago First seen · 120 lines · 5,107 tokens per session scan A c6980922607c

Subscribe to this mod's changes

truecourse CLAUDE.md is an instructions file published in the GitHub repository truecourse-ai/truecourse (527 stars, last pushed yesterday), licensed MIT. It adds 7,282 tokens to every session, about $0.0364 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.