Skip to content
Development
Skill

/cartridge-forge

Use when the user asks to forge, scaffold, or author a new cartridge — content cartridge, department cartridge, or chipset bundle. Drives the cartridge-forge loop (scaffold → fill → gate checks → commit) via the skill-creator cartridge CLI.

From plugin
gsd-skill-creator
71102 skills61 agents26 commands1 MCP

Claude Code

$ npx -y skills add Tibsfox/gsd-skill-creator --skill cartridge-forge --agent claude-code

SKILL.md

cartridge-forge.SKILL.md
name: cartridge-forge
description: Use when the user asks to forge, scaffold, or author a new cartridge — content cartridge, department cartridge, or chipset bundle. Drives the cartridge-forge loop (scaffold → fill → gate checks → commit) via the skill-creator cartridge CLI.
description-frequency: on-demand
user-invocable: true
version: 1.0.0
format: 2025-10-02
triggers:
  - "the user asks to forge, scaffold, or author a new cartridge — content cartridge, department cartridge, or chipset bundle"
updated: 2026-04-25
status: ACTIVE

Cartridge Forge

Forge a new cartridge end-to-end using the `skill-creator cartridge` CLI. The forge is the toolchain that builds cartridges; this skill is the playbook that drives it.

When to invoke

Trigger on any of:

  • "create a cartridge for X"
  • "forge a new cartridge"
  • "scaffold a department" / "generate a department cartridge"
  • "build a content cartridge"
  • "make a chipset bundle for X"

Do **not** trigger for migrating legacy cartridges (that is `cartridge migrate`) or for forking an existing one (that is `cartridge fork`).

Prerequisites

1. `docs/cartridge/FORGING-GUIDE.md` and `docs/cartridge/CARTRIDGE-SPEC.md` are the normative references. Read them once per session if the context is not already loaded. 2. Pick the target directory. Convention:

  • `examples/cartridges/<slug>/` for in-repo cartridges
  • `./my-cartridges/<slug>/` for ad-hoc / user-local work

3. Pick the slug. Drop the `-department` suffix **unless** the cartridge is directly tied to a college department in `.college/`. "systems-administration" — not "systems-administration-department". 4. Pick the template: `department` (skills + agents + teams), `content` (deepMap + story arc), `coprocessor` (pure functional tooling), or `graphics` (GLSL / OpenGL / WebGL / Vulkan shader pipeline; grounded in the GFX research series at [/Research/GFX/](https://tibsfox.com/Research/GFX/) on tibsfox.com).

The Forge Loop

scaffold → fill → validate → eval → dedup → metrics → commit

Every step is idempotent and JSON-capable. `eval` is the gate — if it exits non-zero, the cartridge is not ready to ship.

1. Scaffold

skill-creator cartridge scaffold <template> <dir> <slug>

Writes an 8-file skeleton: `cartridge.yaml`, `chipsets/*.yaml`, one placeholder skill, agent, and team, plus a `README.md`. Round-trips through `load` → `validate` with zero errors before any edits.

2. Fill

Replace placeholder content with real content. A full department cartridge typically wants:

  • **Skills** — one per daily responsibility surface (10–15 is a

comfortable size; fewer feels thin, more suggests a split)

  • **Agents** — an Opus capcom + hands-on Sonnet executors;

router topology with `is_capcom: true` on the capcom

  • **Teams** — one per recurring workflow (author, review,

incident, drill) — each team names its roster and `use_when`

  • **Grove record types** — 4–8 record types that capture the

durable outputs this cartridge produces

  • **Evaluation domains** — one per skill domain; keep them

aligned with the `domain:` field on each skill

Replace the skeleton's `cartridge.yaml` header:

  • `id:` slug
  • `name:` title case, human-readable
  • `author:` real author
  • `description:` one-paragraph, no marketing tone
  • `provenance.origin`, `provenance.createdAt`
  • `metadata.tags`

Delete the three placeholder markdown files (`skills/placeholder-skill.md`, `agents/placeholder-agent.md`, `teams/placeholder-team.md`) and replace them with one markdown file per real skill / agent / team. Each companion file is informational — the loader does not scan them, but a "full" cartridge ships them.

3. Validate

skill-creator cartridge validate <dir>/cartridge.yaml --json

`valid: true` is the required outcome. If there are validation-debt errors (e.g. around `agent_affinity` or `domains_covered`), add `--allow-validation-debt` and track the debt per `docs/cartridge/KNOWN-VALIDATION-DEBT.md`.

4. Eval

skill-creator cartridge eval <dir>/cartridge.yaml

Runs the pre-deploy gates declared in `chipsets/evaluation.yaml`. Default gates:

  • `all_skills_have_descriptions`
  • `all_agents_have_roles`
  • `grove_record_types_defined`
  • `has_evaluation_chipset`

Exit code `0` is required before commit.

5. Dedup

skill-creator cartridge dedup <dir>/cartridge.yaml

`no collisions` is required. Collisions mean a skill or agent is defined twice across chipsets — either intentional merge (refactor) or typo (fix).

6. Metrics

skill-creator cartridge metrics <dir>/cartridge.yaml

Informational, not a gate. Captures shape (skill / agent / team / record-type counts) for the commit message.

7. Commit

Conventional Commits, scope `cartridge`:

feat(cartridge): forge <slug> cartridge

N skills / M agents / K teams / J grove record types.
Forged via cartridge-forge from the <template> template.
All forge gates green: validate, eval, dedup.

Rules

1. **Never hand-author a `cartridge.yaml` from scratch.** Always scaffold first — the template encodes the current schema. 2. **Never skip `eval`.** It is the ship gate. 3. **`kind: department` is a schema discriminator, not a college tie.** The chipset kind stays `department` even when the cartridge is not tied to a college department. 4. **Drop `-department` from the slug** unless the cartridge is tied to an entry under `.college/`. 5. **The companion markdown files are not validated.** Write them anyway — a cartridge without them is scaffold-quality. 6. **Backup and DR content belongs in a dedicated team** (`<slug>-dr-drill-team` or equivalent) if the cartridge has data-durability responsibilities.

Reference walkthrough

A complete worked example: `examples/cartridges/systems-administration/` — 12 skills, 5 agents, 4 teams, 6 grove record types, all forge gates green.

Output contract

After the loop completes, report to the user:

  • Final `i
Read more
@tibsfox
Ships withgsd-skill-creator

An adaptive learning and coprocessor architecture for Claude Code, built as an extension to GSD (open-gsd)

71102 skills61 agents1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
71
Star history of Tibsfox/gsd-skill-creator on GitHub, a chart by star-history.com

Other skills on gsd-skill-creator.

aminet-index

aminet-index

Manages Aminet INDEX infrastructure: fetch, parse, cache, and incremental update of ~84,000-entry package database. Use when…

aminet-mirror

aminet-mirror

Selective Aminet package mirroring: single-package fetch, integrity verification, mirror state tracking, bulk download, and sync…

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about cartridge-forge.

Which coding agents can use cartridge-forge?
cartridge-forge installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.