Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Design reusable prompt templates that encode domain-specific patterns for recurring AI tasks. Use when you've executed similar prompts 2+ times and need to capture the pattern as reusable intelligence. NOT for one-off prompts or generic "ask AI a question" patterns.
.claude/skills/aiskillstore-prompt-template-designer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-03 | ✗→✓ | ▲ Improved | 31% | 0% |
| case-01 | ✗→✓ | ▲ Improved | 0% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 81% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 126% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 105% | 0% |
bash# 1. Check if template-worthy # Criteria: 2+ uses, 5+ decision points, domain-specific # 2. Extract pattern # Identify invariants (constants) vs variants (parameters) # 3. Create template # Use Intent → Constraints → Success Criteria structure
Think like a patterns library designer extracting recurring prompt structures. Identify what varies (parameters) vs what stays constant (pattern), encode domain knowledge into constraints, and design templates that reduce cognitive load while maintaining quality.
"Have I used this pattern 2+ times?"
| Scenario | Template? | |----------|-----------| | "Generate Git commit message" (daily) | YES | | "Explain React hooks to new dev" (once) | NO | | "Debug Bash permission error" (recurring) | YES | | "Research specific API quirk" (unique) | NO |
Principle: Premature templating adds maintenance burden. Wait for second use.
"What stays constant vs what changes?"
| Type | What It Is | Examples | |------|------------|----------| | Invariants | Template structure | Intent verb, core constraints, output format | | Variants | Parameters | File names, project context, thresholds |
"Does this have 5+ decision points?"
High-value template (5+ decisions): Code review prompt (action verb, language, review focus, output format, severity levels, style guide, context, fixes vs identify)
Low-value (1-3 decisions): "Explain specific Git command" → just ask directly
"Does this encode domain-specific intelligence?"
High-value: Team conventions, quality standards, project constraints Low-value: Generic "ask AI a question" or "generate code"
"What parameters make this flexible but not vague?"
| Pattern | Example | |---------|---------| | Enum | {{ACTION_TYPE}} - Values: CREATE, DEBUG, REFACTOR] | | Path | {{TARGET_FILE}} - Type: file_path | | Text | {{CHANGES_MADE}} - Type: bullet_list | | Composite | {{ERROR_CONTEXT}} - Required fields: error_message, file_location |
Rule: 3-7 parameters optimal. More → split into multiple templates.
# Before (hard-coded)
DEBUG backup.sh with "Permission denied" error
# After (parameterized)
DEBUG {{SCRIPT_NAME}} with "{{ERROR_MESSAGE}}" errorTemplates must include:
markdown### v2.0.0 (2025-11-18) - BREAKING: Changed {{CHANGES}} to structured {{CHANGES_MADE}} - Added "business value" requirement ### v1.0.0 (2025-10-15) - Initial extraction from successful prompts
| Metric | Target | |--------|--------| | Success rate | >85% | | Time saved | Measurable | | Iterations needed | <3 | | Team adoption | >50% |
markdown--- template_name: {{descriptive-name}} category: {{create|debug|refactor|optimize|analyze|generate}} domain: {{backend|frontend|devops|testing|documentation}} version: {{semantic-version}} success_rate: {{percentage}} --- # {{Template Name}} ## When to Use {{Trigger conditions}} ## Parameters ### {{PARAM_1}} - **Type**: {{enum|path|text|composite}} - **Example**: {{value}} - **Required**: {{yes|no}} ## Template \``` INTENT: {{ACTION_VERB}} {{description with parameters}} CONSTRAINTS: - {{invariant constraint}} - {{parameterized constraint using {{PARAM}}}} SUCCESS CRITERIA: - {{measurable criterion}} \``` ## Example (Filled) {{Concrete instantiation}} ## Common Mistakes - {{Anti-pattern and how to avoid}}
markdown--- template_name: git-commit-message-conventional category: generate version: 2.0.0 success_rate: 95% --- ## Parameters - **CHANGES_MADE**: List of changes (required) - **JIRA_TICKET**: PROJ-NNNN format (required) - **SCOPE**: [auth, api, ui, db, devops] (required) - **TYPE**: [feat, fix, docs, refactor, test] (required) ## Template \``` GENERATE Git commit message CHANGES: {{CHANGES_MADE}} CONSTRAINTS: - Format: {{TYPE}}({{SCOPE}}): <description> [{{JIRA_TICKET}}] - Subject: Imperative mood, <50 chars - Body: Explain WHY (business value) SUCCESS CRITERIA: - Passes commitlint - Teammate understands without reading diff \``` ## Example (Filled) \``` feat(auth): add JWT refresh endpoint [PROJ-1234] - Add /auth/refresh: improves mobile UX by eliminating re-logins - Extend token to 24h: reduces authentication friction \``` ## Common Mistakes - Forgetting Jira ticket - Past tense ("Added") instead of imperative ("Add") - Explaining WHAT instead of WHY
| Anti-Pattern | Symptom | Fix | |--------------|---------|-----| | Template Before Pattern | Creating for unused prompts | Use manually 2+ times first | | Over-Parameterization | 15+ parameters | Aim for 3-7, split if more | | Under-Parameterization | Only works for one scenario | Must apply to 3+ use cases | | No Success Metrics | Never tracked quality | Track success rate, time saved |
Template Creation Checklist:
Parameter Design:
Transition signal: Student has written similar prompts 2+ times with 85%+ success
Teaching sequence:
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-03 | fail→pass | 21,994 | 18,009 | -18% | 1 | 1 | 0% | 3,931 | 5,142 | +31% | 0 | 0 | — |
case-08 | fail→fail | 16,753 | 13,517 | -19% | 1 | 1 | 0% | 2,815 | 4,115 | +46% | 0 | 0 | — |
case-01 | fail→pass | 26,684 | 15,491 | -42% | 1 | 1 | 0% | 4,659 | 4,641 | -0% | 0 | 0 | — |
case-02 | fail→fail | 22,834 | 13,238 | -42% | 1 | 1 | 0% | 3,897 | 4,090 | +5% | 0 | 0 | — |
case-04 | pass→pass | 9,768 | 5,326 | -45% | 1 | 1 | 0% | 1,453 | 2,494 | +72% | 0 | 0 | — |
case-05 | fail→pass | 9,653 | 5,591 | -42% | 1 | 1 | 0% | 1,473 | 2,660 | +81% | 0 | 0 | — |
case-06 | pass→pass | 10,115 | 6,098 | -40% | 1 | 1 | 0% | 1,518 | 2,622 | +73% | 0 | 0 | — |
case-07 | pass→pass | 12,334 | 8,583 | -30% | 1 | 1 | 0% | 1,950 | 3,057 | +57% | 0 | 0 | — |
case-09 | pass→pass | 15,572 | 10,134 | -35% | 1 | 1 | 0% | 2,829 | 3,566 | +26% | 0 | 0 | — |
case-10 | pass→pass | 12,942 | 11,681 | -10% | 1 | 1 | 0% | 2,222 | 3,853 | +73% | 0 | 0 | — |
case-11 | pass→pass | 8,798 | 4,861 | -45% | 1 | 1 | 0% | 1,473 | 2,546 | +73% | 0 | 0 | — |
case-12 | fail→pass | 12,738 | 14,319 | +12% | 1 | 1 | 0% | 1,871 | 4,226 | +126% | 0 | 0 | — |
case-13 | pass→pass | 11,955 | 7,708 | -36% | 1 | 1 | 0% | 1,732 | 2,951 | +70% | 0 | 0 | — |
case-14 | pass→pass | 11,959 | 7,270 | -39% | 1 | 1 | 0% | 1,931 | 2,892 | +50% | 0 | 0 | — |
case-15 | pass→pass | 11,925 | 9,771 | -18% | 1 | 1 | 0% | 1,771 | 3,340 | +89% | 0 | 0 | — |
case-16 | pass→pass | 15,826 | 17,830 | +13% | 1 | 1 | 0% | 2,588 | 5,127 | +98% | 0 | 0 | — |
case-17 | fail→pass | 9,003 | 7,042 | -22% | 1 | 1 | 0% | 1,402 | 2,868 | +105% | 0 | 0 | — |
case-18 | pass→pass | 19,414 | 16,851 | -13% | 1 | 1 | 0% | 3,011 | 4,377 | +45% | 0 | 0 | — |
case-19 | pass→pass | 5,741 | 5,186 | -10% | 1 | 1 | 0% | 896 | 2,571 | +187% | 0 | 0 | — |
case-20 | fail→pass | 11,147 | 6,688 | -40% | 1 | 1 | 0% | 1,755 | 2,713 | +55% | 0 | 0 | — |
case-21 | pass→pass | 12,339 | 8,275 | -33% | 1 | 1 | 0% | 1,842 | 2,976 | +62% | 0 | 0 | — |
case-22 | pass→pass | 9,834 | 3,021 | -69% | 1 | 1 | 0% | 1,287 | 2,208 | +72% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +27 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.