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/scolladon/craft/proposenpx skills add scolladon/craft --skill proposegit clone --depth 1 https://github.com/scolladon/craftWrote 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/scolladon/craft/propose)<a href="https://agentmods.dev/skills/scolladon/craft/propose"><img src="https://agentmods.dev/badge/skills/scolladon/craft/propose.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.00031 | $0.00704 |
| Opus 5 | $0.00015 | $0.00352 |
| Sonnet 5 | $0.00006 | $0.00141 |
| Haiku 4.5 | $0.00003 | $0.00070 |
Grade A, and why
propose 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 3d 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 — 45 lines — stays where its author put it; the contents beside it link to each section on GitHub.
craft:propose
Preamble (always runs — non-overridable)
- Manifest read (lint if standalone). Probe: remote? none → propose AND integrate no-op with a note (work stays on the local branch); the run ends after documentation.
- Cross-phase invariant check: the validation phase's run has landed or recorded a no-op, survivors are
triaged,
gates.phaseis green. Not yet → wait; never create the PR early.
Procedure (default body — a manifest override: replaces everything below)
-
Pre-PR gate (
pr.pre-pr-gateif declared): contract = check + documented remediation + documented exceptions (both live in the manifest body or a phase context file — never memory). Run it; apply the remediation in its own conventional commit; re-gate. -
Consult
pushaction (seedocs/contributing/specs/policy.mdfor surface semantics). Obey the returned surface, then push-u origin <branch>. -
Consult
proposeaction (seedocs/contributing/specs/policy.md). Obey the returned surface:ask(default, ADR-127) — hand the drafted body to the user and stop (pr.creator: userbehaviour); on approval proceed with the PR creation, on decline recordPOLICY(ask:propose→declined)and block.never— refuse; recordPOLICY(never:propose); phase no-ops.always— create the PR without stopping; recordPOLICY(always:propose); supersedes thepr.creator: userstop (ADR-128 — Supersede).
Prose-lint the drafted body (advisory). Before invoking the port, write the drafted body to a temp file and scan it under the same posture the ci.sh cadence uses: resolve the gate via
node engine/bin/hygiene-gate.js <manifest-path>(defaultadvisory), then runnode engine/bin/prose-lint.js --gate <gate> --waiver-source <body-file> -- <body-file>. Fold anySLOP-FOUND(<file>): …lines into the run record and a hygiene note in the PR body; thehygiene.gateknob and theSLOP-WAIVE(<file>)waiver are honored (the body is its own waiver source, so a deliberate ban-list word can be waived in-body). PR body only — never the ci.sh touched-docs cadence.
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.
- 3d ago First seen · 45 lines · 31 tokens per session scan A 702aa5180a37
propose is a skill published in the GitHub repository scolladon/craft (2 stars, last pushed 15d ago), licensed MIT. It adds 31 tokens to every session and 704 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
define
Manifest builder. Turns shared understanding into a verifiable Manifest with Deliverables, Acceptance Criteria, Global Invariants, and an Initial Approach. Use when planning features, scoping refactors, debugging complex issues, or when the user asks to define, scope, plan, spec out, make a manifest, or break down a…
check-pr
Read-only inspection of a single GitHub PR lifecycle — checks CI, review threads, description sync, and mergeability, and returns PASS or FAIL with per-gate findings. Never invokes the merge button. Use when verifying a PR is ready to merge, polling lifecycle progress, checking mergeability, or babysitting a GitHub PR…
babysit-pr
Author-side PR lifecycle babysitter and companion to review-pr. Use when the user wants to tend an existing GitHub PR through CI, review threads, description sync, mergeability, auto-fixes, or asks to babysit a PR with or without an existing manifest.
review-code
Review a change along one specific quality dimension — bugs, design, simplicity, maintainability, testability, test quality, type safety, contracts, operational readiness, docs, prose value, change intent, defect-class completeness after a fix, or CLAUDE.md adherence. Loads exactly one dimension reference and audits…
just-define
Goal-based Manifest builder. Encodes shared understanding into a verifiable Manifest — Deliverables, Acceptance Criteria, Global Invariants — deciding for itself how to interview. Use when the user asks to just define it, spec it lean, or make a manifest with minimal process.
update-lid
Configure or reconcile a project for linked-intent development (LID). Dispatches on project state — fresh bootstrap, append directives to an existing agent-instructions file (AGENTS.md or CLAUDE.md), add missing mode marker, reconcile convention drift, or run mode transitions. Invoked as /update-lid. For fresh…