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.
npx agentmods add instructions/davetashner/stringer/agents-mdgit clone --depth 1 https://github.com/davetashner/stringerWhat 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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.06816 | $0.06816 |
| Opus 5 | $0.03408 | $0.03408 |
| Sonnet 5 | $0.01363 | $0.01363 |
| Haiku 4.5 | $0.00682 | $0.00682 |
Grade A, and why
stringer 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 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.
How it starts
The opening of the file, as written. The whole thing — 515 lines — stays where its author put it; the contents beside it link to each section on GitHub.
AGENTS.md — Stringer
What is Stringer?
Stringer is a codebase archaeology tool that mines existing repositories to produce Beads-formatted issues. It solves the cold-start problem: when you adopt Beads on a mature codebase, agents wake up with zero context. Stringer gives them instant situational awareness by extracting actionable work items from signals already present in the repo.
Architecture
stringer/
├── cmd/stringer/ # CLI entrypoint
│ ├── main.go # cobra root setup
│ ├── root.go # root command, global flags
│ ├── scan.go # scan subcommand and flags
│ ├── report.go # report subcommand
│ ├── context.go # context subcommand
│ ├── docs.go # docs subcommand
│ ├── init.go # init subcommand (bootstrap stringer in a repo)
│ ├── config.go # config get/set/list subcommands
│ ├── collectors.go # collectors list/info subcommands (info shows thresholds, supports --json)
│ ├── baseline.go # baseline create/suppress/list/remove/status subcommands
│ ├── mcp.go # mcp serve subcommand (MCP server)
│ ├── validate.go # validate subcommand (JSONL validation)
│ ├── version.go # version subcommand
│ ├── configwiring.go # shared flag-to-config wiring
│ ├── exitcodes.go # exit code constants
│ └── fs.go # filesystem helpers
├── internal/
│ ├── beads/ # Beads integration
│ │ ├── conventions.go # Beads naming and format conventions
│ │ ├── dedup.go # Beads-aware signal deduplication
│ │ └── reader.go # Read existing beads from .beads/ directory
│ ├── bootstrap/ # stringer init bootstrapping
│ │ ├── bootstrap.go # Bootstrap orchestration
│ │ ├── detect.go # Project detection (language, framework, CI)
│ │ ├── config.go # Generate .stringer.yaml defaults
│ │ ├── agentsmd.go # Append stringer section to AGENTS.md
│ │ └── mcpjson.go # Generate .mcp.json for Claude Code
│ ├── collector/ # Collector registry and interface
│ │ └── collector.go # Register(), List(), Get(), Collector interface
│ ├── collectors/ # Signal extraction modules (one file per collector)
│ │ ├── todos.go # TODO/FIXME/HACK/XXX/BUG/OPTIMIZE scanner; owns defaultExcludePatterns (vendor, node_modules, .beads, .stringer, .claude/worktrees, …) shared by all collectors
│ │ ├── gitlog.go # Reverts, high-churn files, stale branches
│ │ ├── patterns.go # Large files, missing tests, low test coverage ratios (Go, JS/TS, Python, Ruby, Java, Kotlin, Rust, C#, PHP, Swift)
│ │ ├── lotteryrisk*.go # Lottery risk: core, ownership math, review analysis
│ │ ├── github.go # GitHub issues, PRs, and review comments
│ │ ├── dephealth*.go # Dependency health: 10 ecosystems (Go, npm, Cargo, Maven, NuGet, PyPI, Packagist, SwiftPM, sbt, Hex)
│ │ ├── vuln*.go # Vuln scanner: 11 ecosystems via OSV.dev (+ PHP, Swift, Scala, Elixir parsers); CVSS v3 base-score severity, npm dev/prod reachability, paginated OSV queries with partial-coverage accounting, versioned signal titles (DR-023)
│ │ ├── configdrift.go # Config drift: env var drift, dead keys, inconsistent defaults
│ │ ├── apidrift.go # API drift: undocumented routes, unimplemented spec paths, stale versions
│ │ ├── docstale.go # Doc staleness: stale docs, co-change drift, broken links (URI-scheme targets and fenced code blocks are skipped)
│ │ ├── duplication*.go # Code duplication: exact clones (Type 1) and near-clones (Type 2) via FNV-64a sliding window; test-only clone groups down-weighted and tagged test-only
│ │ ├── coupling*.go # Coupling: circular dependencies (Tarjan's SCC) and high fan-out modules via import graph; entry points/barrels auto-exempt, per-path exempt globs, default threshold 15 (DR-025)
│ │ ├── complexity.go # Complexity: AST-based for Go (cyclomatic/cognitive/nesting); other languages get indentation-derived nesting-weighted scoring with string/comment stripping and a 0.5× JSX logical-op discount (DR-024)
│ │ ├── complexity_go.go # Go AST analysis: cyclomatic, cognitive, nesting depth via go/parser
│ │ ├── githygiene.go # Git hygiene: large binaries, merge conflicts, committed secrets, mixed line endings — tracked files only (git ls-files), full-scan fallback outside a repo
│ │ ├── secrets.go # Secret detection: 24+ built-in patterns, custom patterns, allowlist, entropy detection
│ │ └── duration.go # Duration parsing helpers
│ ├── analysis/ # LLM-powered analysis
│ │ ├── cluster.go # Signal clustering via LLM
│ │ ├── priority.go # Priority inference via LLM
│ │ └── dependency.go # Dependency detection via LLM
│ ├── config/ # .stringer.yaml config file support
│ │ ├── config.go # Config and CollectorConfig structs
│ │ ├── yaml.go # Load(), Write(), LoadRaw(), WriteFile()
│ │ ├── validate.go # Validate() — multi-error validation
│ │ ├── merge.go # Merge() — file config + CLI merge
│ │ ├── keypath.go # Dot-notation key path navigation
│ │ └── global.go # Global config (~/.config/stringer/)
│ ├── context/ # Context generation (stringer context)
│ │ ├── generator.go # Context generation orchestration
│ │ ├── githistory.go # Git history analysis for context
│ │ └── render_json.go # JSON output for context
│ ├── docs/ # Docs generation (stringer docs)
│ │ ├── analyzer.go # Repository analysis for docs
│ │ ├── detector.go # Language/framework detection
│ │ ├── generator.go # AGENTS.md generation
│ │ └── updater.go # Update existing AGENTS.md preserving manual sections
│ ├── gitcli/ # Native git CLI wrapper (DR-011)
│ │ └── gitcli.go # Shell out to git for blame and ownership
│ ├── llm/ # LLM provider abstraction
│ │ ├── provider.go # Provider interface and registry
│ │ ├── anthropic.go # Anthropic Claude provider
│ │ └── openai.go # OpenAI-compatible provider
│ ├── log/ # Structured logging
│ │ └── log.go # slog-based logging helpers
│ ├── mcpserver/ # MCP server for AI agent integration
│ │ ├── server.go # Server creation and lifecycle
│ │ ├── tools.go # Tool handlers: scan, report, context, docs
│ │ └── resolve.go # Path resolution and input parsing
│ ├── output/ # Output formatters
│ │ ├── formatter.go # Formatter interface and registry
│ │ ├── beads.go # Beads JSONL writer (primary)
│ │ ├── json.go # JSON with metadata envelope
│ │ ├── markdown.go # Human-readable markdown summary
│ │ ├── sarif.go # SARIF v2.1.0 output with suppressions + baseline comparison
│ │ ├── tasks.go # Claude Code task format
│ │ └── signalid.go # Shared deterministic signal ID generation
│ ├── pipeline/ # Scan orchestration
│ │ ├── pipeline.go # New(), Run() — parallel execution via errgroup
│ │ ├── dedup.go # Content-based signal deduplication
│ │ ├── enrich.go # Cross-signal confidence boosting (co-location)
│ │ ├── baseline.go # FilterSuppressed() — baseline suppression filtering
│ │ └── validate.go # ScanConfig validation
│ ├── redact/ # Secret redaction
│ │ └── redact.go # Scrub sensitive patterns from signal content
│ ├── report/ # Report generation (stringer report)
│ │ ├── section.go # Section registry and interface
│ │ ├── render.go # Report rendering orchestration
│ │ ├── color.go # Color-coded terminal output
│ │ ├── table.go # Table formatting helpers
│ │ ├── lotteryrisk.go # Lottery risk analysis section
│ │ ├── churn.go # Code churn hotspots section
│ │ ├── todoage.go # TODO age distribution section
│ │ ├── coverage.go # Test coverage gaps section
│ │ ├── recommendations.go # Actionable recommendations section
│ │ └── modulesummary.go # Module health summary section
│ ├── baseline/ # Signal suppression state (baseline.json)
│ │ ├── baseline.go # Load/Save/Lookup/AddOrUpdate/Remove for .stringer/baseline.json
│ │ └── rename.go # Atomic rename helper (overridable for tests)
│ ├── signal/ # Domain types
│ │ └── signal.go # RawSignal, ScanConfig, ScanResult, CollectorOpts
│ ├── state/ # Delta scan state persistence
│ │ └── state.go # Load/Save/FilterNew/Build for .stringer/last-scan.json
│ ├── validate/ # JSONL validation for beads compatibility
│ │ └── validate.go # Validate() — field-level JSONL validation
│ └── testable/ # Interfaces for test mock injection
│ ├── exec.go # CommandExecutor interface
│ ├── exec_mock.go # Mock command executor
│ ├── fs.go # FileSystem interface
│ ├── mock_fs.go # Mock filesystem
│ ├── git.go # GitOpener interface
│ └── git_mock.go # Mock git opener
├── test/
│ └── integration/ # End-to-end integration tests
├── eval/ # Evaluation harness for stress-testing
├── testdata/
│ ├── fixtures/ # Test fixture repos
│ └── golden/ # Golden file outputs
├── docs/
│ ├── decisions/ # Decision records (see docs/decisions/)
│ ├── agent-integration.md # MCP setup and tool reference
│ ├── branch-protection.md # Branch protection rules
│ ├── competitive-analysis.md # Competitive landscape
│ └── release-strategy.md # Versioning and release process
├── go.mod
├── go.sum
├── AGENTS.md # You are here
├── README.md
├── LICENSE
└── CLAUDE.md
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.
- 2d ago First seen · 515 lines · 6,816 tokens per session scan A d06f1f5f0b80
stringer AGENTS.md is an instructions file published in the GitHub repository davetashner/stringer (53 stars, last pushed 4d ago), licensed MIT. It adds 6,816 tokens to every session, about $0.0341 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.
Other instructions, from other repositories
codex AGENTS.md
AGENTS.md instructions for openai/codex, covering rust/codex-rs, the codex-core crate, code review rules, crate api surface and model visible context.
vscode buildNext.instructions.md
Working notes and architecture documentation for the new esbuild-based build system in build/next. Use when making changes to the new build pipeline (transpile/bundle commands, NLS plugin, source-map handling, resource copying, or self-hosting watch tasks).
next.js AGENTS.md
Instructions for vercel/next.js, covering next.js development guide, codebase structure, monorepo overview, core package: packages/next and other important packages.
vscode oss-third-party-notices.instructions.md
Instructions for microsoft/vscode, covering vs code oss third-party-notices pipeline, architecture, pipeline flow in ci, applying the notice (cutover) and fallback chain (never fail the build).
spec-kit AGENTS.md
AGENTS.md instructions for github/spec-kit, covering agents.md, about spec kit and specify, quickstart — add a new integration in 5 steps, integration architecture and integrationmanifest — file tracking.
langchain AGENTS.md
AGENTS.md instructions for langchain-ai/langchain, covering global development guidelines for the langchain monorepo, corridor security analysis, project architecture and context, monorepo structure and development tools & commands.