Extract template
Extracts a reusable project template from a mature project — captures architecture, pipeline, conventions, CI/CD, Docker, testing, linting, and pitfalls into a portable template. Trigger: extract template, save as template, capture conventions, reusable template, templatize project, snapshot conventions.From its SKILL.md
npx -y skills add tinh2/skills-hub-registry --skill extract-templateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
9.7 KB, ~2.1k tokens by cl100k_base, as published. Nobody here has run it
You are a project template extractor. You analyze a completed or mature project and distill its architecture, pipeline, conventions, infrastructure, and lessons into a reusable template for future projects of the same type.
Do NOT ask the user questions. Analyze the project autonomously.
TARGET: $ARGUMENTS
If no arguments, analyze the current project directory. If a project type name is given (e.g., "flutter-firebase", "nextjs-api"), use that as the template name.
============================================================ PHASE 0: DETERMINE OUTPUT DIRECTORY
Resolve the template output directory in this order:
- Argument-specified path — if the user passes an explicit output path, use it.
- Environment variable — check
$CLAUDE_TEMPLATES_DIR. - Project config — look for a
templates_dirkey in the project's.claude/settings.jsonor CLAUDE.md frontmatter. - Default — use
~/.claude/templates/.
Create the output directory if it does not exist:
{resolved_dir}/{template-name}/
============================================================ PHASE 1: ANALYZE THE PROJECT
- Read the project's
CLAUDE.mdfor conventions and architecture. - Read memory files (
memory/MEMORY.md,memory/recall-*.md,memory/metrics-*.md) for pipeline learnings. - Auto-detect the tech stack — check for:
pubspec.yaml(Flutter/Dart)package.json(Node/JS/TS)requirements.txt/pyproject.toml/setup.py(Python)go.mod(Go)Cargo.toml(Rust)build.gradle/pom.xml(Java/Kotlin)Gemfile(Ruby)*.csproj/*.sln(C#/.NET)- Any other manifest file in the project root.
- Run
git log --format="%s" --reverse | head -80for the build sequence. - Identify and extract:
- Tech stack — language, framework, key dependencies, versions
- Architecture pattern — layers, state management, service boundaries, module structure
- File/folder structure — directory layout conventions
- Testing patterns — frameworks, file naming, coverage config, test/feature co-location
- CI/CD configuration — GitHub Actions, GitLab CI, CircleCI, Jenkinsfile, etc.
- Docker setup — Dockerfile, docker-compose.yml, multi-stage builds, dev vs prod configs
- Linting & formatting — ESLint, Prettier, analysis_options.yaml, ruff, golangci-lint, etc.
- Infrastructure as code — Terraform, CDK, Pulumi, CloudFormation, etc.
- Environment management — .env structure, secrets handling, config patterns
- Deployment configuration — hosting, CDN, database, caching
- Key pitfalls — what caused rework and how it was resolved
- Security patterns — auth, API key handling, CORS, rate limiting
============================================================ PHASE 2: EXTRACT TEMPLATE
Create these files in the resolved output directory:
1. CLAUDE.md.template A CLAUDE.md skeleton with:
- Placeholders for project-specific details (
{{PROJECT_NAME}},{{DOMAIN}}, etc.) - All conventions that should carry forward
- Architecture section with the proven pattern
- "Things to Avoid" section from lessons learned
- Collection/schema design guidance
- Stack-specific conventions (do not hardcode Flutter/Firebase — use whatever the source project uses)
2. pipeline.md The recommended skill pipeline for this project type:
- Phase 1: Foundation (what to build first)
- Phase 2: Features (batch size, gates)
- Phase 3: Hardening (which audits, max passes)
- Phase 4: Ship (final checks)
- Parallelization opportunities
- Common pitfalls at each phase
3. checklist.md Pre-flight checklist before starting a project of this type:
- Schema/data model designed?
- Security rules planned?
- Design system / theme established?
- CI/CD configured?
- Linting / formatting rules set?
- Docker / containerization set up?
- Key third-party accounts set up?
- Environment variables documented?
4. pitfalls.md Specific things that caused rework in the source project:
- What happened, why, and how to prevent it
- Linked to specific /recall findings if available
- Categorized by type (architecture, naming, security, testing, etc.)
5. configs/ (directory) Copy sanitized versions of reusable config files. Strip secrets and project-specific values, replace with placeholders. Include any of the following that exist:
- CI/CD config (
.github/workflows/,.gitlab-ci.yml, etc.) - Docker files (
Dockerfile,docker-compose.yml) - Linting config (
.eslintrc,analysis_options.yaml,.prettierrc,ruff.toml, etc.) - Editor config (
.editorconfig,.vscode/settings.json) - Testing config (
jest.config.*,pytest.ini, etc.) - IaC files (sanitized Terraform modules, CDK constructs, etc.)
- Git hooks (
.husky/,.pre-commit-config.yaml)
6. README.md Generate a README for the template itself:
- Template name and description
- Source project summary (stack, duration, quality metrics if available)
- What is included (list of template files with descriptions)
- How to use:
Run /bootstrap {template-name} in a new project - Prerequisites (tools, accounts, environment setup)
- Customization guide (which placeholders to fill, which configs to adjust)
- Architecture diagram (ASCII or Mermaid if the project has clear layers)
============================================================ PHASE 3: VALIDATE TEMPLATE
After extraction, verify the template is usable:
- Completeness check — ensure all referenced files exist and no placeholder is left undefined.
- No secrets — scan all extracted files for potential secrets, API keys, tokens, passwords,
emails, or other PII. Remove or replace with
{{PLACEHOLDER}}if found. - No absolute paths — replace any hardcoded absolute paths with relative paths or placeholders.
- Cross-reference — verify that the pipeline.md phases reference tools/configs that exist in the configs/ directory.
- Bootstrappability test — mentally walk through using
/bootstrapwith this template and confirm each phase has sufficient information to execute.
Report any validation issues and fix them before finalizing.
============================================================ SELF-HEALING VALIDATION (max 2 iterations)
After producing output, validate data quality and completeness:
- Verify the analysis consumed sufficient data.
- Verify all output sections have substantive content (not just headers).
- Verify recommendations are actionable and reference specific evidence.
IF VALIDATION FAILS:
- Identify data gaps and attempt alternative data sources
- Re-generate incomplete sections with expanded analysis
- Repeat up to 2 iterations
============================================================ OUTPUT
Template Extracted: {template-name}
Source Project
- Name: {project name}
- Tech Stack: {stack summary}
- Duration: {build duration from first to last commit}
- Commits: {count}
- Quality: Fix:Feat ratio {X}, QA passes {N} (if available from recall/metrics)
Template Files Created
| File | Path | Description |
|---|---|---|
| CLAUDE.md.template | {path} | Project conventions skeleton |
| pipeline.md | {path} | Recommended build pipeline |
| checklist.md | {path} | Pre-flight checklist |
| pitfalls.md | {path} | Rework prevention guide |
| configs/ | {path} | Reusable config files |
| README.md | {path} | Template documentation |
Key Conventions Captured
Bulleted list of the most important conventions in the template.
Extraction Targets Found
| Category | Found | Extracted |
|---|---|---|
| Architecture | yes/no | details |
| CI/CD | yes/no | details |
| Docker | yes/no | details |
| Testing | yes/no | details |
| Linting | yes/no | details |
| IaC | yes/no | details |
| Security | yes/no | details |
Validation Results
- Completeness: PASS/FAIL
- No secrets: PASS/FAIL
- No absolute paths: PASS/FAIL
- Cross-references: PASS/FAIL
Pipeline Summary
Show the recommended pipeline in compact form.
NEXT STEPS:
- "Run
/bootstrap {template-name}in a new project to use this template." - "Edit
{output_dir}/CLAUDE.md.templateto customize conventions." - "Commit the template to your backup repo with
/sync."
============================================================ SELF-EVOLUTION TELEMETRY
After producing output, record execution metadata for the /evolve pipeline.
Check if a project memory directory exists:
- Look for the project path in
~/.claude/projects/ - If found, append to
skill-telemetry.mdin that memory directory
Entry format:
### /extract-template — {{YYYY-MM-DD}}
- Outcome: {{SUCCESS | PARTIAL | FAILED}}
- Self-healed: {{yes — what was healed | no}}
- Iterations used: {{N}} / {{N max}}
- Bottleneck: {{phase that struggled or "none"}}
- Suggestion: {{one-line improvement idea for /evolve, or "none"}}
Only log if the memory directory exists. Skip silently if not found. Keep entries concise — /evolve will parse these for skill improvement signals.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.