Simple Man
May 23, 2026 ยท View on GitHub
Simple Man
High-compression professional communication mode for coding agents.
Simple Man is not a persona. It is a communication policy:
Minimum user-facing words; same work quality.
It is designed for users who work with agents for many hours and want lower cognitive load without making the agent passive, less careful, or less proactive.
What it changes
It compresses user-facing communication:
- no preambles
- no praise
- no filler
- no repeated recaps
- no generic closing offers
- sentence fragments and compact labels when clear
- compact status updates
- compact final answers
- compact review findings
- compact explanations and plans
What it does not change
It must not reduce:
- repository search
- usage search
- dependency tracing
- impact analysis
- validation
- test/lint/typecheck effort
- proactive detection of related correctness issues
Examples
Same model, same failing mini-project, same task. Only the communication policy changed. These are real captured Codex final answers from evals/reports/codex-skill-comparison.md.
Expired-session auth bug
Prompt: inspect a Node auth API where expired sessions are still accepted, fix it, run tests, and hand off root cause, files changed, validation, and remaining risk.
| No Simple Man | With Simple Man |
|---|---|
|
Engineering Handoff Root cause: Files changed:
Validation: Remaining risk: This assumes |
Fixed.
|
Result: both fixed the bug and passed npm test. Answer length: 601 chars vs 221 chars, 63% shorter. |
|
Payment idempotency retry bug
Prompt: inspect a Python payment ledger where retrying with the same idempotency key creates another local charge, fix it, run tests, and hand off root cause, files changed, validation, and remaining risk.
| No Simple Man | With Simple Man |
|---|---|
|
Root cause The charge path was append-only. After a gateway timeout, the fake provider had already accepted a charge, but retrying with the same idempotency key created a new provider charge and the ledger had no local idempotency lookup to return an existing local charge. Files Changed
Validation Command: Result: passed, 1 test run. Remaining Risk This is still an in-memory implementation. A production version would need persistent idempotency storage with transaction/concurrency protection, and likely validation that reused idempotency keys match the original customer and amount. |
Root cause: no idempotency-key lookup; timeout lost the accepted provider charge locally, and retries created new charge records. Files changed:
Validation: Remaining risk: idempotency state is in-memory only; no durable/concurrent store in this fixture. |
Result: both fixed the retry bug and passed python3 -m unittest -v. Answer length: 1022 chars vs 520 chars, 49% shorter. |
|
Unsafe migration rollout order
Prompt: inspect a SQLite rollout where a migration drops legacy_sessions.expires_at before the backup reads it, fix it, run tests, and hand off root cause, files changed, validation, and remaining risk.
| No Simple Man | With Simple Man |
|---|---|
|
Root Cause
Files Changed
Validation Command: Result: passed, 1 test ran OK. Remaining Risk The focused test now covers the required order: backup reads |
Root cause: Files changed: Validation: Remaining risk: none known; only the focused repo test exists and was run. |
Result: both fixed the rollout order and passed python3 -m unittest -v. Answer length: 736 chars vs 324 chars, 56% shorter. |
|
Agent support
This repo ships two activation surfaces:
- full skill:
skills/simple-man/SKILL.md - compact always-on runtime policy:
AGENTS.md,AGENTS.md.snippet,CLAUDE.md,GEMINI.md
| Agent/tool | Path |
|---|---|
| OpenAI Codex / Agent Skills | skills/simple-man/SKILL.md, AGENTS.md, AGENTS.md.snippet |
| Claude Code | CLAUDE.md, optional global skill copy |
| Gemini CLI | GEMINI.md, or configure Gemini to read AGENTS.md |
| Qwen Code | AGENTS.md, optional global skill copy |
| Cursor / Windsurf / Cline / Copilot / Continue / Zed / Junie | AGENTS.md, or copy AGENTS.md.snippet into that agent's native rule file |
| Amp / OpenCode / Kilo / Roo / Aider / other AGENTS.md agents | AGENTS.md |
Always-on project files do not invoke $simple-man; they inline a compact runtime
policy to avoid loading full skill overhead on every turn.
Agent-specific dotdir rule files are not committed here by default. They are target-project activation files, not the source of the skill.
See INSTALL.md for per-agent setup notes.
Benchmark
This repo includes two Codex-based token benchmark suites:
runtime_economics: coding-agent cost, including instruction overhead and long-session amortized net.reference_compression: Caveman README-style output compression against a verbose normal helpful baseline.
make bench-dry-run
make bench-refresh
make bench
make bench-check
make bench-compare-sample
make bench-reference-dry-run
make bench-reference-refresh
make bench-reference
make bench-reference-check
The benchmark compares control, generic terse, simple_man_runtime,
simple_man_candidate, simple_man_skill, and optional Caveman arms. Runtime
headlines use output compression and long-session net; reference headlines use
output-only compression vs normal.
See evals/README.md.
Install
Install Simple Man as an always-on Codex communication policy:
curl -fsSL https://raw.githubusercontent.com/Maksim-Burtsev/simple-man/master/install.sh | bash
Important: Simple Man is always-on after install. This is expected.
The installer copies skills/simple-man to ~/.codex/skills/simple-man and writes the compact runtime policy into ~/.codex/AGENTS.md.
Codex plugin package
To add the repo-local plugin package to Codex:
codex plugin marketplace add Maksim-Burtsev/simple-man --ref master
codex plugin add simple-man@simple-man
Plugin install makes the skill available in Codex. Always-on behavior comes from the installer writing global Codex instructions.
Recommended usage
Use it as the default communication layer for Codex when you want minimum user-facing words without reducing search, validation, or implementation effort.