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/45ck/skill-harness/annotation-writernpx skills add 45ck/skill-harness --skill annotation-writergit clone --depth 1 https://github.com/45ck/skill-harnessWrote 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.
[](https://agentmods.dev/skills/45ck/skill-harness/annotation-writer)<a href="https://agentmods.dev/skills/45ck/skill-harness/annotation-writer"><img src="https://agentmods.dev/badge/skills/45ck/skill-harness/annotation-writer.svg" alt="Measured on agentmods" height="20"></a>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.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00029 | $0.00762 |
| Opus 5 | $0.00015 | $0.00381 |
| Sonnet 5 | $0.00006 | $0.00152 |
| Haiku 4.5 | $0.00003 | $0.00076 |
Grade A, and why
annotation-writer 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 5d 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 — 100 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Add @spec annotations to source files so specgraph's AnnotationProvider can scan them and produce E0 evidence.
Annotation syntax
/**
* @spec SPEC-ID @implements ComponentName
*/
Or inline:
/** @spec SPEC-ID @implements ComponentName */
Multiple specs on one component — use separate blocks:
/** @spec AUTH-001 @implements TokenValidator */
/** @spec AUTH-002 @implements SessionStore */
export class AuthService { ... }
Relation types
| Annotation | Evidence relation | Use when |
|---|---|---|
@implements |
IMPLEMENTS | This code directly implements the spec |
@verifies |
VERIFIED_BY | This is a test that verifies the spec |
@satisfies |
IMPLEMENTS | Alias for @implements |
@model |
MODEL | This symbol is a data model referenced by the spec |
@test |
VERIFIED_BY | This file is a test file for the spec |
@api |
IMPLEMENTS | This is an API endpoint implementing the spec |
Placement rules
- Functions/methods — annotate the JSDoc block immediately above the function.
- Classes — annotate the class JSDoc block; all public methods are covered.
- Files — annotate the top-level
exportif the whole file implements one spec. - Tests — use
@verifieson test functions ordescribeblocks.
TypeScript examples
/**
* Validates a JWT token and returns the decoded payload.
* @spec AUTH-001 @implements TokenValidator
*/
export function validateToken(token: string): Payload { ... }
/**
* @spec TASK-003 @verifies TodoFiltering
*/
describe('todo filters', () => { ... });
/**
* @spec USER-002 @model UserModel
* @spec USER-002 @api POST /users
*/
export class UserController { ... }
JavaScript (CommonJS) example
/**
* @spec API-002 @implements RateLimiter
*/
module.exports.rateLimiter = function(req, res, next) { ... };
Multi-language support
Python, Go, Rust, Java, C#, Ruby, and most languages are supported via #, //, /* */, and """ comment styles.
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.
- 5d ago First seen · 100 lines · 29 tokens per session scan A fd7f919920fa
annotation-writer is a skill published in the GitHub repository 45ck/skill-harness (15 stars, last pushed 2mo ago), licensed MIT. It adds 29 tokens to every session and 762 once invoked, about $0.0001 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 skills, from other repositories
harness-init-runner
Initialize a lightweight repo-local Node.js harness (harness/ + .harness/) WITHOUT AIOS dependency. Use ONLY when you need a standalone, portable harness. If AIOS is installed, use aios-long-running-harness instead — it has rex Command hosting, ContextDB integration, and checkpoint recovery.
develop
Project conventions and recurring gotchas for implementer agents working on agent-orchestrator. Use before committing any change in orchestrator/, tests/, or docs/.
do-it-architecture
Use when authority, ownership, contracts, dependency boundaries, migration, recovery, or structural deletion can change a design.
do-it-code-quality
Use when designing, changing, or debugging code to locate causal ownership and close the affected behavior.
do-it-core
Use when repository work needs a shared baseline for intent, facts, causal changes, and honest evidence.
do-it-decide
Use when uncertainty about a choice, plan, dependency, or handoff could materially change what gets built.