Getting it into your agent
It runs from inside its repository, so the clone comes first — what it calls does not travel with the file alone.
git clone --depth 1 https://github.com/cardstack/boxelnpx agentmods add skills/cardstack/boxel/software-factory-bootstrapWrote 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/cardstack/boxel/software-factory-bootstrap)<a href="https://agentmods.dev/skills/cardstack/boxel/software-factory-bootstrap"><img src="https://agentmods.dev/badge/skills/cardstack/boxel/software-factory-bootstrap/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/cardstack/boxel/software-factory-bootstrap"><img src="https://agentmods.dev/badge/skills/cardstack/boxel/software-factory-bootstrap.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00032 | $0.03727 |
| Opus 5.5 | $0.00013 | $0.01491 |
| Sonnet 5.5 | $0.00006 | $0.00745 |
| Haiku 4.5 | $0.00003 | $0.00373 |
Grade A, and why
software-factory-bootstrap 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 5d 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 — 337 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Software Factory Bootstrap
Use this skill when the current issue has issueType: bootstrap. Your job is
to read the brief, create project artifacts, and set up the issue backlog for
the implementation phase.
Two modes: greenfield vs adjust
The bootstrap issue's description tells you which mode you're in:
- Greenfield (no source card) — build new cards from scratch. Create
Project / IssueTracker / Knowledge Articles, then one
featureIssue per entry-point card. This is the default; the rest of this skill describes it. - Adjust (the brief carries a
sourceCardUrl, surfaced in the bootstrap issue as "Source card to adjust:") — seed the target realm with a working copy of an existing card, confirm it's green, then createadjustmentIssues that describe deltas to it. See "Adjust flow" below.
Everything from the implementation loop onward (scheduling, the validators,
status transitions, project completion) is identical for both modes — adjust
is a superset, not a fork. The only differences are the seed-from-source
sub-phase below and that adjust emits adjustment Issues instead of
feature Issues.
Adjust flow (when a source card is present)
Do this in addition to the standard Project / IssueTracker / Knowledge
Article artifacts (steps still apply), and instead of creating feature
Issues per entry-point card.
- Seed the source card + its same-realm dependency graph. From inside the
workspace dir, run the dedicated ingestion command (read-only from the
source realm — it doesn't write to it):
It copies, preserving realm-relative paths: the source card's module, every same-realm module it imports transitively (including type-only imports, which a runtime dep graph would miss butboxel realm ingest-card "<source-card-url>" .boxel parseneeds), its sample instances, and its card-level Catalog Spec. Cross-realm imports (@cardstack/base/...) and component/function Specs are left out on purpose. Pass--realm <url>only if the source realm can't be auto-detected.- If the source card has no co-located test — common for catalog
cards, which rarely ship
.test.gts— write characterization tests that capture its current behavior: field defaults, computed-field outputs (e.g. adisplayName/valueChange), and the key rendered output of its formats. These establish the green baseline; they are what the adjustment must not regress. Without them there is nothing to protect andrun_tests(which fails on zero tests) can never go green.
- If the source card has no co-located test — common for catalog
cards, which rarely ship
- Confirm a green baseline. Run
run_parse,run_evaluate,run_instantiate, andrun_testsagainst the seeded copy. They must all pass before you create any adjustment Issue —run_testsrelies on the co-located or characterization tests from step 1; a zero-test run counts as failed. A red parse/eval/instantiate baseline usually means the copy is incomplete (a missed same-realm dependency) — copy the missing file and re-run. If you cannot get green,request_clarificationrather than proceeding. - Write a source-provenance Knowledge Article
(
Knowledge Articles/<slug>-source-provenance.json,articleTypeper the schema): thesourceCardUrl, the list of files copied, and the baseline validator results. This is what later issues read to understand what the seed was. - Create
adjustmentIssues — one per coherent delta the brief describes (not one-per-entry-point-card; that's the greenfield rule). UseissueType: "adjustment"(confirm the enum viaget_card_schema). Each adjustment Issue'sdescription(immutable after creation) must name:- the workspace-relative target file(s) to edit — the seeded card and any support files the delta touches (they already exist in the workspace);
- the delta — what changes, phrased as a diff against the seeded baseline, not a from-scratch card spec;
- acceptance — the new expected behavior and its test assertions, plus the standing requirement that the pre-existing baseline tests keep passing (the delta must not regress the green baseline).
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.
- 5d ago First seen · 337 lines · 32 tokens per session scan A e96be9458724
software-factory-bootstrap is a skill published in the GitHub repository cardstack/boxel (27 stars, last pushed today), licensed MIT. It adds 32 tokens to every session and 3,727 once invoked, about $0.0001 per session on Opus 5.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-10-21.
Other skills, from other repositories
story-readiness
Checks whether a story is ready to implement: clear acceptance criteria, no open questions, valid ADR and dependencies. Use when the user asks if a story, or the sprint's stories, are ready to start or build.
recipe-create-meet-space
Create a Google Meet meeting space and share the join link.
atmos-config
Atmos root configuration: atmos.yaml discovery, precedence, deep merging, basepath, imports, minimal bootstrap, and routing to narrower Atmos skills.
workthreads
SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still…
qa-project-bootstrap
Onboard a new QA engineer to an existing codebase, or audit an existing test architecture. Produces a 30-day ramp plan: codebase orientation, framework walkthrough, test architecture audit, mentorship pairing, and first-test guidance. Use when: "QA onboarding," "new tester," "ramp up," "test architecture audit,"…
handle-linkedin-connection-request-signal
Use this skill when someone sends a team member an inbound LinkedIn connection request. An inbound request is a deliberate, ACTIVE first-party intent signal — meaningfully stronger than a passive profile view — and it deserves different scoring rules. The skill resolves and enriches the requester, gates them through…