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/kenmulford/milestone-driver/setupnpx skills add kenmulford/milestone-driver --skill setupgit clone --depth 1 https://github.com/kenmulford/milestone-driverWrote 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/kenmulford/milestone-driver/setup)<a href="https://agentmods.dev/skills/kenmulford/milestone-driver/setup"><img src="https://agentmods.dev/badge/skills/kenmulford/milestone-driver/setup.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.00146 | $0.06697 |
| Opus 5 | $0.00073 | $0.03349 |
| Sonnet 5 | $0.00029 | $0.01339 |
| Haiku 4.5 | $0.00015 | $0.00670 |
Grade A, and why
setup 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.
How it starts
The opening of the file, as written. The whole thing — 275 lines — stays where its author put it; the contents beside it link to each section on GitHub.
setup - first-run profile bootstrap
Generate or repair the driver profile through a guided, inference-first flow. The canonical location is <repo>/.milestone-config/driver.json; new profiles are always written there, and an existing legacy root <repo>/milestone-driver.json is migrated there by the preamble that runs before Phase 1.
Contents
When this runs
- Auto-invoked by
solve-issue/solve-milestonewhen the driver profile is absent or missing a required Core key. - Direct invocation (
/milestone-driver:setup) when onboarding a new repo or repairing an existing profile.
Migration preamble (run first, before Phase 1), so Phase 1 pre-fills from the already-migrated canonical file. Resolve the profile: <repo>/.milestone-config/driver.json exists → use it. Else a legacy root <repo>/milestone-driver.json exists → migrate it first (mkdir -p .milestone-config; git mv <repo>/milestone-driver.json <repo>/.milestone-config/driver.json when git-tracked, else plain mv), then continue. Else it is a new project (Phase 3 creates the canonical file). Idempotent: once .milestone-config/driver.json exists this is a no-op. Both present → .milestone-config/driver.json wins; no move, no overwrite, no deletion of the leftover root file. The transitional READ covers the gap before the move lands.
Procedure
Phase 1 - Silent project-evaluation pass
Before asking anything, gather signals from the repo. Run these checks silently (no output yet):
| Signal | Command / check |
|---|---|
| Repo default branch | git symbolic-ref refs/remotes/origin/HEAD → strip refs/remotes/origin/; fall back to gh repo view --json defaultBranchRef --jq '.defaultBranchRef.name' |
| Integration-branch candidates | git branch -a - look for develop, dev, development, integration |
| Repo layout | List top-level dirs + key files: package.json, *.sln, *.csproj, Makefile, pyproject.toml, Cargo.toml |
| Unit test command | package.json → .scripts.test; presence of test .csproj; Makefile targets test; pyproject.toml [tool.pytest]; Cargo.toml |
| E2E test indicators | Appium config, Playwright config (playwright.config.*), Selenium project, run-e2etests.* script |
| Visual-capture indicators | A dev/test sign-in seam (e.g. a /dev/sign_in route, a sign_in_as/test-login helper), a server boot command (bin/rails server, npm run dev, a Procfile web: entry), and/or appearance signals (dark: Tailwind variants, a theme toggle, prefers-color-scheme) |
| Preflight (fast pre-PR checks) command | .pre-commit-config.yaml present → pre-commit run --all-files; package.json .scripts.lint → npm run lint; Makefile lint/check target → make lint / make check |
| Stack signals | Language/framework files for domainSkills mapping (see table below) |
| Versioning target | Presence of .claude-plugin/plugin.json - present → default to versioned; absent → suggest versioning: false |
| Existing profile | Read .milestone-config/driver.json if present, else the legacy root milestone-driver.json - pre-fill any already-set keys; a pre-filled domainSkills runs through The expansion below before it is offered |
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 · 275 lines · 146 tokens per session scan A 8322c87e96c5
setup is a skill published in the GitHub repository kenmulford/milestone-driver (2 stars, last pushed 2d ago), licensed MIT. It adds 146 tokens to every session and 6,697 once invoked, about $0.0007 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
scout-briefing
Launch a Scout morning briefing session as a background process. Auto-detects mode (morning briefing, consolidation, or weekend briefing) from the current time and day.
scout-consolidation
Launch a Scout consolidation session as a background process. Runs a lighter delta scan — captures what changed since the last run and updates action items and KB.
scout-dream
Launch a Scout dreaming session as a background process. Processes feedback, does KB deep work, and works on wishlist items.
scout-research
Launch a Scout research session as a background process. Goes outward — discovers new information about KB entities via web search, docs, and APIs, then integrates findings.
orbit-upgrade
Upgrade the installed orbit plugin to the latest version from GitHub and show what changed. Use when the user says "upgrade orbit", "update agentic loop", "get the latest orbit", or when the /orbit preamble reports UPGRADEAVAILABLE. Speech-to-text aliases: "update agent loop", "upgrade the agent loop".
orbit
Transform any product repository into a production-grade, self-prompting agentic loop system following Daisy Hollman's "build a system that prompts itself" methodology. Audits the current project, then scaffolds persistent memory (CLAUDE.md + STATE files), a specialized sub-agent team, domain skills, a…