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/luiseiman/dotforge/bootstrap-projectnpx skills add luiseiman/dotforge --skill bootstrap-projectgit clone --depth 1 https://github.com/luiseiman/dotforgeWhat 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.00021 | $0.02286 |
| Opus 5 | $0.00010 | $0.01143 |
| Sonnet 5 | $0.00004 | $0.00457 |
| Haiku 4.5 | $0.00002 | $0.00229 |
Grade B, and why
bootstrap-project scanned grade B with 1 finding 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 2d 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.
Reads agent configuration directoriesmediumAgent snooping
.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.
If the user does not have `detect-claude-changes.sh` installed in `~/.claude/settings.json`, show: How it starts
The opening of the file, as written. The whole thing — 227 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Bootstrap Project
Initialize a complete .claude/ in the current project using the dotforge template.
Step 0: Determine profile
Check if $ARGUMENTS contains --profile minimal, --profile standard, or --profile full.
If not specified, use standard as default.
Profiles control what gets installed:
| Component | minimal | standard | full |
|---|---|---|---|
| CLAUDE.md | yes | yes | yes |
| settings.json | yes | yes | yes |
| block-destructive hook | yes | yes | yes |
| lint-on-save hook | no | yes | yes |
| session-report hook | no | yes | yes |
| warn-missing-test hook | no | no | yes (strict profile) |
| rules/ (_common + stack) | yes | yes | yes |
| commands/ | no | yes | yes |
| agents/ + orchestration | no | yes | yes |
| agent-memory/ | no | no | yes |
| CLAUDE_ERRORS.md | no | yes | yes (pre-populated) |
| memory.md rule | no | yes | yes |
Save the profile in .claude/settings.local.json under env.FORGE_BOOTSTRAP_PROFILE.
Step 1: Detect stack
Use detection rules from $DOTFORGE_DIR/stacks/detect.md.
Step 2: Confirm with user
Show:
Profile: {{profile}}
Detected stack: {{stacks}}
Will create:
- CLAUDE.md (base template + stack rules)
- .claude/settings.json (base permissions + stack)
- .claude/rules/ (common rules + stack)
- .claude/hooks/ (block-destructive + lint + session-report) [minimal: block-destructive only]
- .claude/commands/ (audit, health) [minimal: skipped]
- .claude/agents/ + orchestration [minimal: skipped]
- CLAUDE_ERRORS.md (empty, for error logging) [minimal: skipped]
Proceed? (yes/no)
Adapt the list shown based on the profile (hide components that won't be installed).
Step 3: Generate CLAUDE.md
Use $DOTFORGE_DIR/template/CLAUDE.md.tmpl as the base.
Replace markers:
{{PROJECT_NAME}}→ name of the current directory<!-- forge:stack -->→ detected technologies<!-- forge:commands -->→ detected build/test commands (package.json scripts, Makefile targets, etc.)
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.
- 2d ago First seen · 227 lines · 21 tokens per session scan B 6f28e0434366
bootstrap-project is a skill published in the GitHub repository luiseiman/dotforge (8 stars, last pushed 2mo ago), licensed MIT. It adds 21 tokens to every session and 2,286 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
scaffold
Set up or align a non-code ops/PM repo with the ops folder structure, CLAUDE.md, and INDEX.md hierarchy.
find-opps
Find new directions for an ops project — adjacent opportunities, strategic gaps, preparatory research. Use when known work is well-mined and you need to look outward.
factory-db-migration
The operational discipline for running a destructive change against a production database — schema migrations, data backfills, one-shot RPCs, historical seed imports. Adjacent to factory-data-layer.md (schema design) and factory-deployment.md (where migrations execute in CI) — this skill is about the runbook around…
prioritize
Pick 2–3 independent ops tasks from active plans and backlog for autonomous execution, weighing impact, feasibility, and project goals.
factory-api
API conventions for both server actions and tRPC builds. Covers the decision between them, per-mutation Zod input schemas, central router composition, pagination shape, multi-field search via Drizzle ilike + or(), mutation lifecycle hooks, conditional query enabling, stale-time defaults, error response shape and…
factory-ci
CI and pull-request review conventions. One canonical .github/workflows/ci.yml is the merge gate (typecheck, lint, test, build, claude-review); branch protection's required-checks list matches the job list 1:1; anthropics/claude-code-action@v1 reviews every PR against the factory-pitfalls.md checklist as a required…