trueforge AGENTS.md

Repository guidance for TrueFoundry, an open-source runtime that turns a language model into a working software agent.

In plain words
What is it for?
Use it when changing TrueFoundry packages, frontend code, CI configuration, Docker Compose services, SDK releases, or workspace workflows.
Why use it?
It records project rules for scripts, continuous integration, package releases, shared services, and published-package changes.

Instructions file for CodexOpenCode

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/truefoundry/trueforge/agents-md
Clone the repo
git clone --depth 1 https://github.com/truefoundry/trueforge

Made for: Codex, OpenCode.

Per session 1,070 This file is loaded in full into every session.
When invoked 1,070 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.01070 $0.01070
Opus 5 $0.00535 $0.00535
Sonnet 5 $0.00214 $0.00214
Haiku 4.5 $0.00107 $0.00107

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

Security

Grade A, and why

trueforge AGENTS.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.

AGENTS.md · 23 lines

How it starts

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

  • Workspace tasks MUST use package.json scripts; add a script when a missing workflow is repeatable like the existing commands, not ad hoc commands.
  • CI package path filters, matrix package ids, and root scripts test:* in .github/workflows/ci.yml and root package.json MUST stay synchronized when a workspace package is added, renamed, or moved; the store filter sync rule lives in packages/trueforge-core/src/agent-session/store/AGENTS.md.
  • Release wiring MUST keep dist-free host development, pnpm smoke, and packed CJS/ESM consumers of @truefoundry/trueforge-core working without changes.
  • PRs that change published-package code (packages/trueforge-core, packages/trueforge, packages/trueforge-ui, packages/trueforge-sdk) or packages/frontend (ships inside @truefoundry/trueforge) MUST include a new .changeset/*.md file (pnpm changeset). Docs, CI/workflows, charts, and docker-compose changes do not. SDK regeneration already adds @truefoundry/trueforge-sdk via pnpm changeset:sdk-regen.
  • Shared Postgres/Redis settings in docker-compose.yml and docker-compose.dev.yml (image versions, health checks, env_file) MUST stay synchronized; intentional differences (app services, data paths, project name, host ports, in-network POSTGRES_HOST / REDIS_URL) MUST stay explicit. packages/trueforge/.env is the host-dev + secrets source; docker-compose.yml may read it but MUST override container connectivity so host-dev localhost values are not used inside the smoke-test stack.
  • Changes to types or schemas MUST keep packages/trueforge-core, packages/frontend, packages/trueforge, and patches synchronized; they MUST NOT update only one affected layer.
  • TypeScript code MUST NOT use assertion escapes such as as T, as unknown as T, non-null !, or as never to silence type errors; implementations MUST use sound contracts, guards, or corrected types.
  • When catching an error and throwing another, the new error MUST set { cause: caught } so the original failure is preserved for logs and debugging.
  • Every type, schema, helper, and contract MUST have one canonical owner; code MUST NOT introduce duplicate definitions or forwarding shims that hide ownership.
  • AgentUIServer / server-port types (AgentChatServer, AgentBuilderServer, catalog ports, session/turn DTOs, stream events) MUST be defined only in @truefoundry/assistant-ui-runtime (src/server/types.ts / events.ts). @truefoundry/trueforge-ui MUST re-export them from src/server/types.ts (pass-through aliases only) and MUST NOT add hand-written parallel definitions of those ports/DTOs.
  • Runtime types backed by Zod schemas MUST be derived with named z.infer<typeof Schema> aliases; code MUST NOT duplicate those schemas as hand-written interfaces or indirect utility-type chains.
  • Modules MUST use static import and import type; they MUST NOT use require(), require.resolve(), or lint suppressions to bypass import checks.
  • A change that makes code unused MUST remove that dead code in the same change; it MUST NOT leave stale exports, files, documentation, duplicates, or “just in case” shims.
  • Comments MUST explain intent, trade-offs, or constraints and remain concise; they MUST NOT restate the code or include issue-tracker IDs.
  • Every nested AGENTS.md MUST have a sibling CLAUDE.md containing only @AGENTS.md, so Cursor and Claude Code load the same scoped rules.
  • OpenAPI specs under .github/fern/openapi/openapi.json and docs/openapi.json are autogenerated in CI and MUST NOT be edited manually (both copies MUST stay identical)
  • Code under packages/trueforge-sdk is autogenerated in CI and MUST NOT be edited manually
  • Tests MUST live under a package-top-level test or tests directory that mirrors the src layout; they MUST NOT be inlined under src.
  • Functions with more than one parameter of the same type MUST take a single options object (e.g. f({ a, b }: { a: string; b: string })); they MUST NOT use multiple positional parameters of that repeated type (e.g. f(a: string, b: string)).
  • Zod unions MUST use z.discriminatedUnion whenever every member carries a shared literal discriminator field; z.union is only permitted when no such common discriminator exists.
  • HTTP/OpenAPI wire shapes (path params, query params, request/response JSON fields) and database identifiers (table/column names, persisted jsonb document keys) MUST use snake_case.
  • Server code MUST NOT read environment variables via process.env directly; all env reads MUST go through packages/trueforge/src/config.ts, unless there is a documented special requirement (for example bootstrap before config is loaded).

Read the full file on GitHub · 23 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 First seen · 23 lines · 1,070 tokens per session scan A e685cd2cffae

Subscribe to this mod's changes

trueforge AGENTS.md is an instructions file published in the GitHub repository truefoundry/trueforge (4,935 stars, last pushed 2d ago), licensed MIT. It adds 1,070 tokens to every session, about $0.0053 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.