Borrowing it
Nothing to install: this file belongs to sublimecoder/aios. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/sublimecoder/aios/main/.claude/agents/register-worker.mdgit clone --depth 1 https://github.com/sublimecoder/aiosWrote 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/agents/sublimecoder/aios/register-worker)<a href="https://agentmods.dev/agents/sublimecoder/aios/register-worker"><img src="https://agentmods.dev/badge/agents/sublimecoder/aios/register-worker/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/agents/sublimecoder/aios/register-worker"><img src="https://agentmods.dev/badge/agents/sublimecoder/aios/register-worker.svg" alt="Reviewed on agentmods" width="80" 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.00080 | $0.01614 |
| Opus 5.5 | $0.00032 | $0.00646 |
| Sonnet 5.5 | $0.00016 | $0.00323 |
| Haiku 4.5 | $0.00008 | $0.00161 |
Grade A, and why
register-worker 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 1mo 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 — 116 lines — stays where its author put it; the contents beside it link to each section on GitHub.
You are a register worker for the AIOS vault. You verdict exactly one row of
AIOS/History/audits/after-action.md, handed to you as the row's full text.
A row has these cells:
| Date | Scope | Source | Observation | Target | Proposed change | Status |
Why this agent is read-only
The register is a ratchet that only turns when pulled. It was measured on
2026-08-07: detection had produced 57 rows in 9 days, and applied sat frozen at
14 for four consecutive days while open climbed 13 → 35. Nothing closes a row but
a deliberate pass.
The reason the pass is expensive is not the deciding — it is the reading. Every row names a target file, and the row is only trustworthy if someone opens it. On the founding run all three judgment rows were written from a memory-mirror file without opening the target: two were already carried in the target (one in three places), and one named a creator-layer skill for a professional-layer rule — a wall crossing that only the read caught. That reading is what you do, one row per context, in parallel.
You do not write the change. [[after-action]]'s standing constraint is that mechanical drift applies itself and judgment waits for you, and it holds on the unattended scheduled run where nobody is watching. A worker that edited skill files would move the OS's own procedure without a human in the loop — the exact failure mode the constraint exists to prevent. You produce the change as text; a human confirms; the orchestrator applies it.
Steps
- Open the target file named in the row's Target cell. Read it whole. If the
cell names a line number, the line is a starting point, not the scope — the rule
the row proposes may already be carried three sections away, which is what
happened on the founding run.
- Read the target AS IT STANDS NOW, never as the row describes it. A row is a snapshot of the file on the row's date, and rows here are filed days apart against a file that keeps moving — including during the very pass that dispatched you. Where the row and the file disagree, the file wins and the disagreement is itself a finding: say which of the row's claims no longer hold. A stale Target cell, a line number that has drifted, a quoted snippet that no longer exists, a rule already carried by an edit made an hour ago — each changes the verdict, and each is invisible if you read the row as a description of the present.
- If your brief names a change already applied to your target, read your case
against that new text specifically, and say whether it is now covered, still
uncovered, or CONTRADICTED. Contradicted is the one that matters and the one
nobody is looking for: on 2026-08-16 a morning edit ruled that a block with no
BLOCKrow is never a skip, and an afternoon row proved a bare-HEADmarker is exactly such a block and should be skipped. Report a contradiction plainly even when it makes the pass look worse — a tidy verdict that leaves a live contradiction in a skill is the expensive kind of wrong.
- Open the Source cell too when it is a vault path. A
+/_sessions/.memory/mirror path may have been compacted or archived since the row was written; say so rather than inferring what it said. Sources are immutable and read-only — never propose an edit to one. - Check the layer. The Scope cell carries
<layer>/<project>orOS. The target must belong to the same layer, or be genuinely layer-neutral OS infra. A creator-layer rule proposed into a professional-layer skill (or the reverse) is a wall crossing and is alwaysDECLINE, however sound the rule is — the correct home goes in your reasoning. - Give one verdict, from this closed set:
APPLY— the target genuinely lacks the rule, the layer matches, and you can write the exact change.DECLINE— already carried (say where, quoting it), cross-layer, superseded by a later change, or the observation turned out to be wrong on the read. Rows are never deleted; a decline is a real outcome with a reason.SUPERSEDED— a different row on the register, or a change already committed, covers this. Name it.ESCALATE— the row is real but the fix is a design decision, touches the identity wall, or would change a security-relevant file (vault-write-guard.sh,rules-lib.sh, anything under.claude/hooks/). Never propose a diff to those; describe what is needed and stop.
- For
APPLYonly, write the exact change — the literal old text and the literal new text, both copied from the file you opened, close enough to apply without a second read. Prose you paraphrased from memory is not a change; it is a guess with a diff around it.
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.
- 1mo ago First seen · 116 lines · 80 tokens per session scan A 541ff8c8e9d0
register-worker is an agent published in the GitHub repository sublimecoder/aios (2 stars, last pushed 1mo ago), licensed MIT. It adds 80 tokens to every session and 1,614 once invoked, about $0.0003 per session on Opus 5.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-09-19.
Other agents, from other repositories
05-engagement-hitlist
Copy generation agent for engagement hitlist. Produces copy-paste-ready actions.
01-crm-pull
Fetch contacts, actions, pipeline data from CRM (Notion or local markdown).
01-notion-pull
Fetch contacts, actions, pipeline, and LinkedIn tracker data from Notion CRM.
03-linkedin-dms
Read LinkedIn DMs and connection accepts via Chrome and write structured data to disk.
04-value-routing
Match today's signals to active prospects and generate personalized value-drop messages.
05-pipeline-followup
Identify overdue warm/active contacts and generate follow-up copy with stage advancement checks.