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/srinitude/skills/reifynpx skills add srinitude/skills --skill reifygit clone --depth 1 https://github.com/srinitude/skillsWrote 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/srinitude/skills/reify)<a href="https://agentmods.dev/skills/srinitude/skills/reify"><img src="https://agentmods.dev/badge/skills/srinitude/skills/reify.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 | $0.00038 | $0.02574 |
| Opus 5 | $0.00019 | $0.01287 |
| Sonnet 5 | $0.00008 | $0.00515 |
| Haiku 4.5 | $0.00004 | $0.00257 |
Grade A, and why
reify 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 — 104 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Reify
Reify turns an unclear thought into one concrete outcome, then either makes the next safe move or produces a handoff another executor can use. Keep the exchange simple for the user while the working record preserves evidence, choices, uncertainty, and reversibility.
Which commands does this skill accept?
Interpret a plain request as new unless a prior reification record clearly applies.
| Command | Result |
|---|---|
help |
Show these commands and the current record state. |
new <thought> |
Start from a loose thought, memory, feeling, fragment, or uncertain direction. |
continue <record> |
Resume from a saved record without repeating settled questions. |
revert <decision-id> |
Restore the state before one recorded decision and recheck dependent choices. |
finalize |
Freeze the accepted outcome and create or hand off the next action. |
scrap |
Mark the current direction as scrapped, preserve the record, and stop. |
A decision ID matches ^D-[0-9]{3}$, counts up per record from D-001, and is never reused. A record path looks like reify-log-lighthouse-summers.md.
If the request matches no command and intent cannot be inferred from context, ask one short question and stop. Do not guess at a sensitive target, recipient, payment, publication, or irreversible effect.
How does reification work?
Use this full plan. After each consequential step, run the stated check and fix a failed check before moving on. Keep every user-facing reply at or below 350 words; move detail into the record and the files instead of the reply.
- Check for an active record. Inspect reachable conversation, files, notes, task systems, and named sources before asking the user to repeat facts. If one missing fact would change the outcome, ask for only that fact and stop. Check: the current thought and source boundary are explicit.
- Check the installed skill catalog for
starting-point. When present, apply it to define the target, constraints, completion proof, and first milestone. When absent, derive those four fields directly. Check: the target is an outcome rather than a topic. - Create or resume the record at
./reify-log-<slug>.mdin the directory the user is working in, as the reification record defines, and print its absolute path once. Otherwise keep the same visible record in the conversation and state that no file was written. Append the current signal, sources checked, assumptions, decisions, reversibility state, and next check after each remaining step. Check: another executor could resume without asking settled questions again. - Reflect the strongest signal in one sentence, offer one provisional outcome, and ask one low-effort question only when its answer changes the form, direction, or the facts a first-person draft would otherwise invent. Check: the response does not turn into an intake form and stays at or below 350 words.
- Read the tool and skill catalog index once, then open a capability contract only for a capability you are about to call. Name in the record every capability you skipped and the one-line reason. Check: unavailable capability claims name what was actually inspected.
- Make the smallest useful object that tests the current direction, such as a title, premise, sketch, example, decision, prototype, or first milestone. Recommend one default path. Name an alternative only when it implies a materially different completion proof, at most two, in one line. When a later object absorbs or replaces a probe, move the probe into
./superseded/in the same turn. Check: the object can reveal whether the idea should continue, change, or stop, and no two live files open with the same text. - Never invent first-person biographical fact. When the user's material lacks names, places, dates, or people, write bracketed slots such as
[lighthouse name], keep the object short, and ask for the two or three facts that unlock real writing. Check: every concrete personal detail in a draft traces to the user's words or a cited source. - Record each accepted choice with a decision ID, reason, dependents, and reversibility. For
revert, follow the five revert moves in the record reference, which reopen the affected fields, mark dependentsneeds-review, and move affected files to./superseded/rather than deleting them. Forscrap, setstatus: scrappedand perform no further effect. Check: the record explains the current state without hidden decisions. - Converge after one to three useful exchanges unless the user asks to keep exploring. State the outcome, why it fits, first milestone, observable completion proof, next action, and any open decision. Check: only one candidate is active.
- Execute the next safe action when the user requested execution and the environment permits it. For external writes, publication, deployment, messages, payments, authentication, or destructive changes, resolve the exact target, scope, and authorization first. A first name is not an address and a send instruction is not authorization for an unresolved recipient. Search the reachable address sources once each, stop after that, keep the work in a local handoff file, and ask one sentence for the missing target. Turn a vague deadline into one proposed date, say the date and the reason, and let the user correct it. Check: direct evidence proves any action claimed as complete.
- When the outcome must pass to another executor, copy the template out of the skill and validate the copy. Never edit files inside the installed skill. Set
SKILL_DIRto the absolute path of this skill directory, then runcp "$SKILL_DIR/assets/reification-brief.json" ./BRIEF.json, fill./BRIEF.jsonwith the ten record fields, and runmise run validate-brief ./BRIEF.json. Exit 0 is required. On exit 1 the brief is wrong: fix every reported field and rerun. On exit 2 the command is wrong, not the brief: the interpreter or the parser could not use the path, so recheckSKILL_DIR, use the absolute script path, and rerun. Check: outcome, completion proof, first milestone, next action, decisions, and status are present and the report reads"status": "PASS". - Finalize with either a verified artifact or a usable handoff. Report
status: finalizedand the milestone state as two separate sentences when the milestone depends on another person. Check: the result names what exists, what was verified, and what remains.
What ships with it
52 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- .github/workflows/ci.yml 181 B
- assets/decision-records.json 2.1 KB
- assets/improvement-contract.json 2.6 KB
- assets/invocation-receipt-template.json 254 B
- assets/mise-primitives-catalog.json 2.0 KB
- assets/mise-primitives.json 3.5 KB
- assets/primitive-lifecycle.json 5.5 KB
- assets/reification-brief.json 338 B
- assets/use-case-contract.json 23 KB
- evals/cases.json 6.6 KB
- evals/contract.md 3.0 KB
- evals/evals.json 4.4 KB
- evals/manifest.json 420 B
- evals/rubric.md 1.6 KB
- evals/source-lineage.json 5.8 KB
- evals/speed-budgets.json 321 B
- evals/trigger-cases.json 2.1 KB
- evals/trigger-queries.json 2.4 KB
- examples/continue-record.md 4.1 KB
- examples/finalize-artifacts.md 4.2 KB
- examples/finalize-handoff.md 5.2 KB
- examples/help-command.md 3.4 KB
- examples/new-vague-memory.md 4.4 KB
- examples/revert-decision.md 4.8 KB
- examples/scrap-direction.md 4.8 KB
- examples/thin-facts-no-invention.md 5.1 KB
- mise.toml 2.8 KB
- references/decisions.md 136 B
- references/generation-contract.md 19 KB
- references/reification-record.md 4.7 KB
- references/resource-and-experiment-design.md 13 KB
- references/use-case-specificity.md 6.4 KB
- scripts/agentic_request_contract.py 7.4 KB runs code
- scripts/check_code_rules.py 4.1 KB runs code
- scripts/check_decision_records.py 3.7 KB runs code
- scripts/check_domain_research.py 7.1 KB runs code
- scripts/check_evals.py 4.3 KB runs code
- scripts/check_improvement_contract.py 3.5 KB runs code
- scripts/check_invocation_receipt.py 3.7 KB runs code
- scripts/check_mise_primitives.py 4.7 KB runs code
- scripts/check_placeholders.py 3.6 KB runs code
- scripts/check_primitive_lifecycle.py 5.1 KB runs code
- scripts/check_task_graph.py 7.7 KB runs code
- scripts/check_use_case_contract.py 6.0 KB runs code
- scripts/domain_text.py 1.0 KB runs code
- scripts/lint_writing.py 7.9 KB runs code
- scripts/run_agentic_request.py 2.4 KB runs code
- scripts/sync_mise_primitives.py 4.1 KB runs code
- scripts/tests/test_ci_contract.py 1.3 KB runs code
- scripts/tests/test_validate_brief.py 4.7 KB runs code
- scripts/validate_brief.py 3.4 KB runs code
- scripts/validate_skill.py 4.3 KB runs code
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 Changed · +17 lines b2d9e15c8bc0
- 4d ago First seen · 87 lines · 38 tokens per session scan A 43e08f786977
reify is a skill published in the GitHub repository srinitude/skills (2 stars, last pushed 2d ago), licensed MIT. It adds 38 tokens to every session and 2,574 once invoked, about $0.0002 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
youtube-search
Use when the user wants to find YouTube content on any topic: searching for videos or channels, finding creators who cover a subject, discovering tutorials, talks, or expert discussions, or looking up a channel by name or handle. Also use proactively when the user wants to research a topic and YouTube is a good…
transcriptapi
Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, or anything…
youtube-channels
Use when a YouTube channel is the focus: pasted @handles or channel URLs, requests to browse a creator's uploads, see what a channel has posted recently, search within a channel, or resolve a handle to a channel ID. Also use when the user names a creator and wants to explore their content or monitor their uploads. Not…
youtube-full
Use when YouTube is or could be relevant — even if not mentioned: pasted video/channel/playlist links, video IDs, @handles, creator lookups, video summaries, quotes, translations, topic research, tutorials, talks, lectures, expert discussions, product reviews, how-to guides, new product announcements, first looks, or…
youtube-api
Use when YouTube data is needed without Google API quotas or OAuth setup: transcripts, video metadata, channel info, search results, playlists. Triggers on pasted YouTube links, creator names, @handles, topic research, video summaries, channel browsing, or any request where YouTube content would help — even if not…
youtube-data
Use when structured YouTube data is needed: pasted video/channel/playlist links, transcripts for analysis, video metadata, channel upload history, search results, or playlist contents — without Google API quotas or OAuth. Triggers on YouTube URLs, creator names, topic research, or any request needing YouTube content…