tenforty AGENTS.md

tenforty AGENTS.md is an instructions file for Codex, OpenCode from mmacpherson/tenforty. It costs 2,685 tokens per session, scanned A, original, MIT.

Repository instructions for contributing to Tenforty, a tax-related software project that includes a separate third-party tax calculator called OpenTaxSolver.

In plain words
What is it for?
Use them when modifying the Tenforty codebase, preparing a pull request, running its tests and analysis, or reporting a defect in OpenTaxSolver.
Why use it?
They clarify which files may be changed, how defects in the third-party calculator must be recorded, and which checks must pass before review.

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

Made for: Codex, OpenCode.

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 tenforty AGENTS.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/mmacpherson/tenforty/agents-md.svg)](https://agentmods.dev/instructions/mmacpherson/tenforty/agents-md)
Your own site
<a href="https://agentmods.dev/instructions/mmacpherson/tenforty/agents-md"><img src="https://agentmods.dev/badge/instructions/mmacpherson/tenforty/agents-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 2,685 This file is loaded in full into every session.
When invoked 2,685 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.1 $0.02685 $0.02685
Opus 5 $0.01342 $0.01342
Sonnet 5 $0.00537 $0.00537
Haiku 4.5 $0.00268 $0.00268

Measured 4d ago against content hash 4354a61e87bf, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-05, from the pricing page.

Security

Grade A, and why

tenforty 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 4d 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.

AGENTS.md · 207 lines

How it starts

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

tenforty — Contributor & Agent Guide

Guidance for anyone working in this repo, human or AI coding agent. This is the canonical guide; CLAUDE.md is a symlink to this file so tool-specific loaders pick up the same content. It follows the AGENTS.md convention.

Working in this repo

  • main is protected — changes land through a pull request, not direct pushes.
  • Branch for each change, and keep PRs focused.
  • Never force-push main or any branch with an open PR.
  • Run the relevant quality gates before requesting review.

Vendored OpenTaxSolver is not ours to edit

We vendor OpenTaxSolver, we do not fork it. Never change what OTS computes — not the release tarballs, not the generated ots_amalgamation.cpp, and not through a patch function in ots/amalgamate.py. This holds even when the defect is proven and the fix is one character.

When you find a defect in OTS's tax logic:

  1. Report it upstream. Stage the report in docs/upstream-ots-reports.md.
  2. Record it locally as a strict-xfail test plus a known-defect signature in tests/taxcalc/taxcalc_policy.py. The xfail is the durable record and flips on its own once a release carries the correction.

Patching the vendored source instead would fork it invisibly: our tree would silently diverge from the upstream we claim to wrap, with nothing in the OTS release to show for it.

The narrow exception is portability and memory safety — making the source compile and not read out of bounds, without changing any computed figure. The existing patch functions are of this kind: C99→C++ shims, and patch_az_widow_std_deduction for an out-of-bounds array read. Anything in this category still gets reported upstream, and the patch function carries a docstring saying why it qualifies.

Before deciding a finding is upstream's, check whether it is actually ours: the mapping layer (models.py input maps, core.py activation and orchestration) is our code and gets fixed here.

Read the full file on GitHub · 207 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. 4d ago First seen · 207 lines · 2,685 tokens per session scan A 4354a61e87bf

Subscribe to this mod's changes

tenforty AGENTS.md is an instructions file published in the GitHub repository mmacpherson/tenforty (84 stars, last pushed 12d ago), licensed MIT. It adds 2,685 tokens to every session, about $0.0134 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-09-01.

Related

Other instructions, from other repositories