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 skills/phuonghx/aim-cli/clean-codenpx skills add phuonghx/aim-cli --skill clean-codegit clone --depth 1 https://github.com/phuonghx/aim-cliWhat 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.00064 | $0.01125 |
| Opus 5 | $0.00032 | $0.00562 |
| Sonnet 5 | $0.00013 | $0.00225 |
| Haiku 4.5 | $0.00006 | $0.00112 |
Grade A, and why
clean-code 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.
How it starts
The opening of the file, as written. The whole thing — 146 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Pragmatic Coding Standards
The aim is working software written plainly. Be concise, be direct, and solve the actual problem — nothing more.
Guiding Principles
- One job per unit — a function or class should do a single thing.
- No duplication — when logic repeats, lift it out and share it.
- Simplest thing that works — favor the obvious solution over the clever one.
- Build only what's needed — skip features no one asked for yet.
- Leave it tidier — every file you touch should come out a little cleaner.
Naming
| Thing | Convention | Good |
|---|---|---|
| Variables | Say what they hold | retryCount, not n |
| Functions | Action + subject | fetchOrder(), not order() |
| Booleans | Phrase as a yes/no | isReady, hasAccess, canDelete |
| Constants | Upper snake case | DEFAULT_TIMEOUT_MS |
If a name needs a comment to be understood, the name is wrong — rename it.
Functions
- Short — aim for 5–10 lines, treat 20 as a ceiling.
- Focused — one responsibility, done well.
- Single altitude — don't mix high-level orchestration with low-level detail in the same body.
- Lean signatures — zero to two parameters ideally, three at most.
- No surprise mutations — don't quietly alter the caller's data.
Structure
- Use guard clauses to handle edge cases up front and return early.
- Keep nesting shallow — two levels deep is plenty.
- Prefer small pieces composed together over one sprawling block.
- Keep related code physically close.
How to Respond While Coding
- Feature requested → write it, skip the preamble.
- Bug reported → fix it; don't narrate the fix.
- Requirement unclear → ask, rather than guessing.
Anti-Patterns to Avoid
| Don't | Do instead |
|---|---|
| Annotate every line | Drop comments that restate the code |
| Wrap a one-liner in a helper | Inline it |
| Build a factory for two cases | Construct them directly |
Create utils.ts for a lone function |
Put it where it's used |
| Open with "First we import…" | Just write the code |
| Nest four levels deep | Flatten with guard clauses |
| Sprinkle magic numbers | Name the constant |
| Write a 200-line god function | Split it by responsibility |
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.
- yesterday First seen · 146 lines · 64 tokens per session scan A 3294ea82f235
clean-code is a skill published in the GitHub repository phuonghx/aim-cli (1 stars, last pushed 2mo ago), licensed MIT. It adds 64 tokens to every session and 1,125 once invoked, about $0.0003 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-31.
Other skills, from other repositories
case-study
Craft a portfolio case study with narrative arc, process evidence, and outcomes. Use when telling a project's story to an external audience. For an internal stakeholder deck, use presentation-deck.
mulch-record-from-evidence
Turn the evidence of a finished work session — git commits, changed files, recently-touched seeds issues — into well-formed ml record invocations. Use at session close, when an agent has made changes worth preserving as mulch expertise but hasn't yet recorded them.
memory-protocol
Universal protocol for total-agent-memory MCP server. Activate at session start, before any non-trivial task, after every significant action, on errors, and at session end. Relevant whenever the user mentions: memory, recall, past context, decisions history, conventions, lessons learned, "продолжаем", "сохранись"…
new-feedback
Log a harness lesson / post-incident so the SYSTEM improves, not just this one bug — fires on "log a harness lesson", "post-incident", "we should make this less likely", System-Evolution moments. Part of the Agentsmith harness; scaffolds a numbered docs/feedback/NNNN-.md with the five-stage template (R9 — numbers are…
memory
Activate this skill when starting a new session, beginning a new task, saving knowledge, recalling past decisions, or after completing significant work. Also activate on errors to log them for pattern analysis. Relevant when the user asks about memory, past context, lessons learned, decisions history, project…
contextstream-workflow
Manage persistent AI memory across sessions with ContextStream MCP.