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 commands/punt-labs/z-spec/b-creategit clone --depth 1 https://github.com/punt-labs/z-specWrote 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/commands/punt-labs/z-spec/b-create)<a href="https://agentmods.dev/commands/punt-labs/z-spec/b-create"><img src="https://agentmods.dev/badge/commands/punt-labs/z-spec/b-create.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.00012 | $0.01901 |
| Opus 5 | $0.00006 | $0.00950 |
| Sonnet 5 | $0.00002 | $0.00380 |
| Haiku 4.5 | $0.00001 | $0.00190 |
Grade A, and why
b-create 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 4d 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.
This is a copy
94% identical to b-create-dev — 6 lines differ, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 315 lines — stays where its author put it; the contents beside it link to each section on GitHub.
/z-spec:b-create - Create B Machine
You are creating a B Abstract Machine Notation (AMN) specification. B machines are executable formal specifications that can be type-checked, animated, model-checked, and refined toward implementation --- all using probcli.
This command has two modes:
- Description mode: Create a B machine from a natural language description
- Translation mode: Translate an existing Z specification (
.tex) to a B machine
Input
Hint: $ARGUMENTS
Determine the mode:
- If the argument is a path to a
.texfile: translation mode - Otherwise: description mode (treat as natural language description)
Process
0. Check Prerequisites
Verify probcli is installed:
PROBCLI="${PROBCLI:-$HOME/Applications/ProB/probcli}"
if ! which probcli >/dev/null 2>&1 && [ ! -x "$PROBCLI" ]; then
echo "PROBCLI_NOT_FOUND"
fi
If probcli not found: Stop and tell the user:
probcli is not installed. Run
/z-spec:setup probclifirst.
1. Create specs/ Directory
mkdir -p specs
Update .gitignore if needed:
for pattern in "specs/*.prob" "specs/*.prob2project"; do
grep -qxF "$pattern" .gitignore 2>/dev/null || echo "$pattern" >> .gitignore
done
2a. Description Mode
If working from a natural language description:
Analyze the Description
Extract:
- Entities: What things does the system track?
- Attributes: What properties do entities have?
- Constraints: What must always be true?
- Operations: What state transitions exist?
- Relationships: How do entities relate to each other?
Generate the Machine
Create a .mch file following this structure:
MACHINE MachineName
SETS
/* Deferred sets for entity identifiers */
ID;
/* Enumerated sets for status values */
STATUS = {active, inactive}
CONSTANTS
max_capacity
PROPERTIES
max_capacity : NAT &
max_capacity = 100
VARIABLES
/* State variables */
entries,
statuses
INVARIANT
/* Typing constraints */
entries : ID +-> NAT &
statuses : ID +-> STATUS &
/* Domain consistency */
dom(entries) = dom(statuses) &
/* Business invariants */
card(entries) <= max_capacity
INITIALISATION
entries := {} ||
statuses := {}
OPERATIONS
/* Operations with PRE/THEN substitutions */
add(id, val) =
PRE id : ID & val : NAT &
id /: dom(entries) &
card(entries) < max_capacity
THEN
entries := entries \/ {id |-> val} ||
statuses := statuses \/ {id |-> active}
END;
remove(id) =
PRE id : ID & id : dom(entries)
THEN
entries := {id} <<| entries ||
statuses := {id} <<| statuses
END;
nn <-- count =
nn := card(entries)
END
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.
- 4d ago First seen · 315 lines · 12 tokens per session scan A 2bd78a10216e
b-create is a command published in the GitHub repository punt-labs/z-spec (5 stars, last pushed today), licensed MIT. It adds 12 tokens to every session and 1,901 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. It is 94% identical to b-create-dev, differing in 6 lines, and is treated as a copy.
Other commands, from other repositories
meeting-listen
Play back a completed meeting summary as a voiced debate between personas.
meeting-hive
Run an autonomous PR/FAQ review meeting where four personas debate and reach consensus without user intervention.
vote
Assess whether a PR/FAQ should move forward with a structured go/no-go decision.
feedback
Incorporate feedback into PR/FAQ and redraft affected sections.
feedback-to-us
Tell us how the prfaq plugin is working for you (anonymous 1-5 feedback).
badge
Generate a stage-colored badge and embed it in your README.