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/prompt-engineeringnpx skills add phuonghx/aim-cli --skill prompt-engineeringgit 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.00079 | $0.01557 |
| Opus 5 | $0.00039 | $0.00779 |
| Sonnet 5 | $0.00016 | $0.00311 |
| Haiku 4.5 | $0.00008 | $0.00156 |
Grade A, and why
prompt-engineering 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 — 158 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Prompt Engineering
Treat prompts as code: explicit, structured, versioned, and tested.
Core principles
- Be explicit, not clever. State the task, constraints, and output format directly. The model cannot read intent you did not write.
- Show the shape of success. A correct example beats a paragraph of description.
- Separate the stable from the variable. Put fixed rules in the system prompt; inject per-request data in the user turn.
- Constrain the output. Define the exact format you will parse. Unconstrained prose is unparseable.
- One job per prompt. If a prompt does extraction and summarization and routing, split it.
Anatomy of a production prompt
| Section | Purpose | Goes in |
|---|---|---|
| Role / persona | Set domain + tone | System |
| Task instruction | What to do, imperatively | System |
| Rules / constraints | Hard limits, do/don't | System |
| Output schema | Exact format to return | System |
| Few-shot examples | Demonstrate edge cases | System |
| Input data | The thing to process | User |
Clear instructions checklist
- Task stated as an imperative ("Extract...", "Classify...", not "Can you...").
- Audience and tone specified if it matters.
- Edge cases named: empty input, ambiguous input, no valid answer.
- An explicit escape hatch: what to output when the model cannot comply (e.g.
{"error": "insufficient_context"}). - Ordering matters — put the most important constraint first and last (models weight both ends).
Role / system prompts
Set durable behavior once, not per request.
You are a support-ticket triage engine for a B2B SaaS product.
You classify tickets and never address the customer directly.
You only ever return JSON matching the schema. No prose, no apologies.
Keep the role functional ("triage engine") over theatrical ("world-class expert"). Function drives behavior; flattery does not.
Delimiter / XML structuring
Wrap distinct parts in named tags so the model never confuses instructions with data. This also blunts prompt injection from user content.
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 · 158 lines · 79 tokens per session scan A c74c54591a61
prompt-engineering is a skill published in the GitHub repository phuonghx/aim-cli (1 stars, last pushed 2mo ago), licensed MIT. It adds 79 tokens to every session and 1,557 once invoked, about $0.0004 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
hs-release
Cut a core Hindsight release (vX.Y.Z) and open the changelog + blog PR. Use when asked to cut/start a release, bump the version, or publish a new Hindsight version.
hindsight-local
Store user preferences, learnings from tasks, and procedure outcomes. Use to remember what works and recall context before new tasks. (user).
research-repository
Build a repository that makes findings findable, reusable, and cumulative across teams. Use when the same research keeps getting redone. For synthesising one study, use affinity-diagram.
design-negotiation
Advocate for design quality, scope, and timeline with partners and leadership using evidence and shared goals. Use in the conversation itself. For the commercial vocabulary behind it, use business-design (ux-strategy).
user-persona
Build research-grounded personas with goals, frustrations, and behavioural patterns. Use when decisions need a consistent user reference. For one session's emotional snapshot use empathy-map; for motivation framing use jobs-to-be-done.
version-control-strategy
Define version control for design files, components, and libraries — branching, naming, and release. Use when file history is chaotic. For design system contribution rules, use design-system-governance (design-systems).