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/tradebaas/groundwork/beginnpx skills add Tradebaas/Groundwork --skill begingit clone --depth 1 https://github.com/Tradebaas/GroundworkWhat 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.00124 | $0.03744 |
| Opus 5 | $0.00062 | $0.01872 |
| Sonnet 5 | $0.00025 | $0.00749 |
| Haiku 4.5 | $0.00012 | $0.00374 |
Grade C, and why
begin scanned grade C 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 yesterday.
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.
Recursive force deletehighDestructive command
rm -rf with a variable or a broad path is one typo away from removing the wrong tree.
root, so remove it: `rm -rf .git`. In an existing project that `.git` is the owner's own history: How it starts
The opening of the file, as written. The whole thing — 225 lines — stays where its author put it; the contents beside it link to each section on GitHub.
begin: from fresh copy to working project
Run this once. When it's done, STATE.md carries real state and this skill never triggers again.
Which of the two entrances is this? Read it off the tree before doing anything, and say which
one you read: a fresh copy holds nothing but Groundwork, while an existing project has its
own .git history, source files, and a README that is not this one. Both take the route below;
the existing project keeps everything it already has, and the steps say where the two differ.
One skill, two doors: decision 0018 records why.
1. Clean the copy
Do this housekeeping silently: it is plumbing, not progress. Report on it only if something went wrong or needs the owner's action; a list of deleted template files is noise to them.
- If a
MASTER_PROMPT.mdorMASTER_PROMPT.local.mdexists at the root: it is Groundwork's own origin brief, not part of any project. Delete it. (Fresh copies no longer carry it: it is gitignored at source. This clears it from older copies made while it was still tracked.) CHANGELOG.mdat the root is Groundwork's release history, not this project's. Note which version this copy came from (its newest entry) in STATE.md at step 4, then empty the file down to its heading so this project's first release writes into it.- Delete any non-archived spec folder:
docs/specs/[0-9]*directories are in-flight Groundwork maintainer work, never the new owner's. Keep the worked example indocs/specs/archive/007-pickup-slots/and theTEMPLATE*.mdfiles. docs/product/VISION.mddoes not exist in a fresh copy, because Groundwork keeps its own purpose out of the copy entirely. Put this project's in place (cp docs/product/TEMPLATE-VISION.md docs/product/VISION.md); the interview at step 4 fills it, and it is the first document that step writes, because scope serves purpose.docs/product/BRIEF.mdanddocs/specs/archive/000-baseline/hold Groundwork's own scope and the record of what the framework itself had already shipped. Counted against this project they would report someone else's work as done here. Put the blank brief back (cp docs/product/TEMPLATE-BRIEF.md docs/product/BRIEF.md) and delete the baseline folder.docs/PRODUCT.mdis Groundwork's own record of the surfaces this framework renders, which the design method would read as this project's product truth. Delete it: the method's own init writes this project's, in the same place, from what the interview below already captured.docs/DESIGN.mdstays: sections 1 and 2 ship with Groundwork and are input to that method.docs/standards/node.mdis Groundwork's own stack and its own floor table, whichstack-gateswould hold this project to. Delete it: a copy has not chosen a stack yet, and thestackskill writes this project's own fromdocs/standards/TEMPLATE-STACK.md.GLOBAL.mdand the template stay - they are the cross-stack floor and the shape, not Groundwork's answers.docs/operations/deploy.mdholds Groundwork's own release route, which would read as this project's if it stayed. Put the blank runbook back (cp docs/operations/TEMPLATE-DEPLOY.md docs/operations/deploy.md).deliverfills it at first delivery.docs/state/DEBT.mdcarries Groundwork's own debt rows, whichmaintainwould harvest and report as this project's. Put the blank ledger back (cp docs/state/TEMPLATE-DEBT.md docs/state/DEBT.md). The first accepteddefer:marker fills it; on the existing-project door below, the check total lands here as the starting position.docs/compliance/REGISTER.mdholds Groundwork's own compliance answers, which would read as this project's if they stayed. Put the blank register back (cp docs/compliance/TEMPLATE-REGISTER.md docs/compliance/REGISTER.md). Step 4 fills its header from the interview;complyfills the rest before first delivery. The two files beside it,docs/compliance/COMPLIANCE.mdanddocs/compliance/AI-LITERACY.md, are shared knowledge and stay as they are.- Reset
"denylist"inchecks/config.jsonto[]: its entries guard the origin repo's retired wording, never this project's. KeepstyleBansintact (those are generic). - Keep the numbered records in
docs/decisions/: they document the system this project just inherited (why the rulebook, skills and checks work the way they do). This project's own decisions continue from the next free number. Naming a range here would go stale the next time the framework records one. - Strip the
data-deriveattributes from the stat strip inindex.html(leave the numbers and the page alone). They tie those numbers to a gate that counts this repo, and in a copy the numbers describe the framework, not the project: the first decision this project records would otherwise turn the gate red. - Verify prerequisites:
git --versionandnode --version(Node ≥ 20). Missing → tell the owner exactly what to install, then stop.
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.
- yesterday First seen · 225 lines · 0 tokens per session scan C 5844a1025cf6
begin is a skill published in the GitHub repository Tradebaas/Groundwork (2 stars, last pushed 6d ago), licensed MIT. It adds 124 tokens to every session and 3,744 once invoked, about $0.0006 per session on Opus 5. A static security scan graded it C with 1 finding (recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
mission-driver
Create roadmaps and mission configs, then drive the mission-driver AI dev-loop engine. mission-driver lives at tools/mission-driver/ — it reads missions/ .json and loops CHECK → REVIEWPLANS → EXECPLANS → DRAFTPLANS → DEEPAUDIT until the roadmap is done or the audit budget is exhausted. Use this skill when the user…
keel-plan
Create or revise PLAN.md — propose the phase DAG (phases · gates · dependencies) from the user's goal, get approval, write the table and regenerate the colored Mermaid diagram from it. Statuses flip at rituals (/keel-handover, /keel-phase-review); post-completion fixes land in the Fix log.
keel-stats
Render the ritual telemetry visually — turns .claude/ritual-log into reports/ritual-stats.md with PLAN.md-style colored Mermaid interval boxes (session/compact boundaries) + a counts table. Answers "which skills/commands/hooks ran, how often, in which interval".
init
Configure an uninitialized project from an approved charter: stack, scripts, identity, optional Git, and verification.
sdd-serve
Serve the SDD Builder's AI request queue: claim requests with sddnextrequest, draft the proposal, answer with sddrespondrequest. Never writes spec files — the user accepts each proposal in the builder. Use when the user asks to attend, serve or listen to the SDD board queue. / Atiende la cola de peticiones del SDD…
review-creative
Audit customer-facing work for UX, accessibility, brand fit, credibility, and generic AI output. Use for design, marketing, document, presentation, or visual review.