From PRD-Driven Context Engineering
Detects template version drift in a repo, compares against expected structure, generates migration plans, and automates safe updates while preserving product-specific content.
How this skill is triggered — by the user, by Claude, or both
Slash command
/prd-ce:ghm-template-syncThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
Detect template version drift and migrate to the latest template version.
Detect template version drift and migrate to the latest template version.
.claude/VERSION (if it exists) to get current template versionCLAUDE.md frontmatter for template_versionCompare your repo structure against what the current template version expects:
Check for missing files:
.claude/VERSION.claude/domain-profile.yaml.claude/hooks/HOOK_CONTRACT.md.claude/hooks/context-validation.sh.claude/hooks/context-density-gate.sh.claude/hooks/sot-update-trigger.shCHANGELOG.mdMIGRATION.mdCheck for stale files (should be removed):
.claude/hooks/context-validation.py.claude/hooks/context-density-gate.py.claude/hooks/sot-update-trigger.py.claude/agents/HORIZON.md (replaced by subdirectory).claude/agents/STUDIO.md.claude/agents/DEVLAB.md.claude/agents/METRO.mdCheck for structure issues:
settings.json: Does it use 3-level nesting? Are timeouts in seconds?horizon/, studio/, devlab/, metro/ subdirectories exist with AGENT.md + MEMORY.md?template_version?Output a table:
| File | Status | Action | Risk |
|---|---|---|---|
.claude/VERSION | Missing | Copy from template | None |
.claude/hooks/*.py | Stale | Delete (replaced by .sh) | None |
.claude/agents/HORIZON.md | Stale | Split into horizon/AGENT.md + MEMORY.md | Preserve MEMORY.md content |
settings.json | Outdated | Update hook nesting + commands | Check for custom hooks |
CLAUDE.md | Missing frontmatter | Add template_version: "3.0.0" | None |
Auto-safe (do without asking):
.claude/VERSION with current template versiontemplate_version frontmatter to files that lack itConfirm first (show diff, ask user):
settings.json hook configurationNever touch (product-specific):
PRD.md content (only add frontmatter)SoT/*.md contentepics/EPIC-*.md content (only update headers on closed EPICs).claude/agents/*/MEMORY.md contentREADME.md contentAfter all changes:
settings.json uses correct nesting| From | To | Key Changes |
|---|---|---|
| v1.0.0 | v2.0.0 | Add skills, hooks, agents, SoT standardization |
| v2.0.0 | v3.0.0 | Shell hooks, agent subdirs, semantic EPICs, versioning, domain-profile |
| v1.0.0 | v3.0.0 | All of the above (cumulative) |
npx claudepluginhub mattgierhart/prd-driven-context-engineering --plugin prd-ceGuided update assistant that reads the installed SDLC version, shows changelog, displays file diffs, and lets the user selectively adopt changes while preserving customizations. Also checks the npm CLI version and offers to bump it.
Detects drift between CLAUDE.md/AGENTS.md narrative state and live repository state with 7 checks: paths, project counts, issue freshness, session files, command counts, config parity, and vault-dir parity.
Updates CLAUDE.md and project.json by comparing against current just-ship framework templates, adding missing sections and framework content while preserving project-specific details.