> Seed a fresh (greenfield) repository with the PRD-Driven Context Engineering scaffold — PRD.md, SoT/ knowledge files, EPIC templates, domain-profile config, and agent MEMORY (skills, agents, hooks, scripts) ships LIVE in the plugin; this skill only plants the "set up PRD lifecycle here", "scaffold a new PRD-CE project", "initialize the methodology". Outputs a seeded scaffold + a verification report.
npx skills add https://github.com/mattgierhart/PRD-driven-context-engineering --skill init
Plant the consumer-owned scaffold for a fresh PRD-CE project. The methodology engine
(lifecycle skills, the agent squad, governance hooks, readiness.py) is delivered live
by the installed prd-ce plugin — it never gets copied into your repo. This skill seeds only
what is yours to own and edit: PRD.md, the SoT/ graph, epics/ templates, your
.claude/domain-profile.yaml, and per-agent MEMORY.md starters.
> One manifest, no drift. The seed list comes from install-manifest.yaml's
> template_seed section — the same list install.sh (fork path) and ghm-template-sync
> (update path) read. This skill drives the deterministic prd-ce-init.sh so behavior is
> identical no matter who invokes it.
> Scope (v1): greenfield only. This seeds an *empty* structure into a fresh repo.
> Mid-build and live-codebase on-ramps (entry-mode branching, graph extraction) are
> backlogged — see temp/plugin-conversion-plan.md. If the target already has PRD.md or
> SoT/ content, the seeder keeps it (non-destructive) rather than adapting to it.
${CLAUDE_PLUGIN_ROOT}/templates/ — the bundled seed sources (mirrors template_seedpaths) the packager ships with the plugin.
install-manifest.yaml template_seed + never_touch — authoritative seed/skip lists.scripts/prd-ce-init.sh — the deterministic seeder this skill drives.does not author specs).
PRD.md (frontmatter at v0.1, today's date, no stale template_version).readiness.py runs).git, python3, bash are present. Warn (don't block) if the target isn't a git repo.PRD.md or non-empty SoT/ already exist, say so and stop —the seeder will keep them untouched, so there is nothing for init to do. (Point the user at
the lifecycle skills to keep building, not at re-seeding.)
Ask only what changes the outcome (honor the execution mode's budget):
product (default) · library · infrastructure · research.Quick mode skips this and takes the default.
prd-ce-init.sh)Run the deterministic seeder so behavior matches every other path:
bash "${CLAUDE_PLUGIN_ROOT}/scripts/prd-ce-init.sh" --target <DIR> --dry-run # preview
bash "${CLAUDE_PLUGIN_ROOT}/scripts/prd-ce-init.sh" --target <DIR> # seed
--dry-run plan first [standard+], then execute.never_touch honored) and resets a freshlyseeded PRD.md frontmatter to v0.1.
profile: key in the seeded .claude/domain-profile.yaml [standard+].
python "${CLAUDE_PLUGIN_ROOT}/scripts/readiness.py" run — a BLOCK on an emptyscaffold is the gate working (no content yet), not a failure. Report the score.
README.md + PRD.md, then "Let's frame the problem" (v0.1).| Pattern | Fix |
|---------|-----|
| Hardcoding the seed file list in the skill | Drive prd-ce-init.sh; it reads template_seed |
| Copying the framework (skills/hooks) into the consumer repo | The plugin provides those live — seed only consumer-owned files |
| Overwriting an existing PRD.md/SoT/ | Greenfield-only; the seeder skips what exists |
| Leaving PRD.md at the example's version header | Frontmatter reset to v0.1 happens automatically on a fresh seed |
| Treating a readiness BLOCK on a fresh scaffold as a bug | It's the gate working — report the score |
Take mattgierhart/init from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.