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/update-practicesnpx skills add luiseiman/dotforge --skill update-practicesgit 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.00023 | $0.01347 |
| Opus 5 | $0.00012 | $0.00674 |
| Sonnet 5 | $0.00005 | $0.00269 |
| Haiku 4.5 | $0.00002 | $0.00135 |
Grade A, and why
update-practices 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 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.
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 — 148 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Update Practices
3-phase pipeline to keep dotforge up to date with discovered practices.
Practice sources:
- Post-session hook (
detect-claude-changes.sh) → automatic - Manual capture (
/forge capture) → user - For manual web search: research and then use
/forge capturewith the findings
Phase 1: EVALUATE — Process inbox
Read all files in $DOTFORGE_DIR/practices/inbox/.
For each practice:
Acceptance criteria
- Is it actionable? — Can be translated into a concrete change in dotforge
- Is it new? — Does not duplicate something already in
practices/active/ - Is it generalizable? — Applies to >1 project (not project-specific)
- Does it prevent a specific error? — If yes, annotate
error_typeand error description for tracking in metrics.yml
Classify
- Accept → move to
practices/evaluating/, note proposed concrete change - Reject → remove from inbox with a note explaining why
- Defer → leave in inbox with tag
needs-more-info
Priority
- Security (vulnerabilities, permissions)
- Breaking changes (APIs that changed)
- New features that simplify something existing
- Patterns validated in >1 project
- Minor optimizations
Show summary:
═══ INBOX EVALUATION ═══
{{N}} practices in inbox
✅ ACCEPT: {{title}} → {{proposed change}}
❌ REJECT: {{title}} → {{reason}}
⏸️ DEFER: {{title}} → {{what is missing}}
Proceed with accepted? (yes/no/select)
Phase 2: INCORPORATE — Apply changes to dotforge
For each accepted practice in evaluating/:
Determine impact
| Change type | Affected files | Version bump |
|---|---|---|
| New/modified rule | template/rules/, stacks/*/rules/ | minor |
| New/modified hook | template/hooks/, stacks/*/hooks/ | minor |
| Documentation | docs/*.md | patch |
| Modified template | template/*.tmpl | minor |
| Security fix | any | patch |
Apply
- Show proposed diff to the user and ask for confirmation
- Modify the corresponding dotforge files
- If the practice warrants a new rule: generate a
.mdfile intemplate/rules/orstacks/*/rules/with properglobs:(eager) orpaths:+alwaysApply: false(lazy) frontmatter. Only create a rule if the practice is a repeatable constraint (not a one-time fix). Use existing rules as format reference. - Move practice from
evaluating/toactive/withincorporated_in:updated - Set frontmatter fields:
effectiveness: monitoring(orinformationalif no error targeted — informational is excluded from the validation rate metric),error_typematching CLAUDE_ERRORS.md types - Register in
$DOTFORGE_DIR/practices/metrics.yml:error_targeted: description of the error this practice prevents (null if not error-targeted)error_type: syntax | logic | integration | config | security | nullactivated: today's datestatus: monitoring (or informational — for general-knowledge practices, never validated)recurrence_checks: 0recurrence_target: 5
- Update
docs/changelog.md - Bump
VERSIONaccording to type
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 · 148 lines · 23 tokens per session scan A d48c30685029
update-practices is a skill published in the GitHub repository luiseiman/dotforge (8 stars, last pushed 2mo ago), licensed MIT. It adds 23 tokens to every session and 1,347 once invoked, about $0.0001 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
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…