# reference-educational-template
> [REPLACE] Teach concepts and demonstrate patterns with examples. Use when [REPLACE with specific triggers].
- Author: Daniel Jankowski
- Repository: djankies/claude-configs
- Version: 20251125114517
- Stars: 0
- Forks: 0
- Last Updated: 2026-02-06
- Source: https://github.com/djankies/claude-configs
- Web: https://mule.run/skillshub/@@djankies/claude-configs~reference-educational-template:20251125114517
---
---
name: reference-educational-template
description: [REPLACE] Teach concepts and demonstrate patterns with examples. Use when [REPLACE with specific triggers].
allowed-tools: Read, TodoWrite
---
# Reference-Educational Template
## Purpose
This template demonstrates educational content delivery with concept explanation, examples, and anti-patterns.
**Use this template when:**
- Teaching concepts or design patterns
- Explaining language features
- Demonstrating best practices
- Showing common mistakes to avoid
## Workflow
### Phase 1: Explain Concept
1. Define the concept clearly
2. Explain why it exists
3. Describe when to use it
4. Compare with alternatives
### Phase 2: Show Examples
1. Basic usage example
2. Intermediate patterns
3. Advanced techniques
4. Real-world scenarios
### Phase 3: Demonstrate Patterns
1. Common patterns
2. Best practices
3. Performance considerations
4. Type safety implications
### Phase 4: Highlight Pitfalls
1. Common mistakes
2. Edge cases
3. Antipatterns to avoid
4. Debugging tips
List scripts that should be run to validate the output of this skill
## Progressive Disclosure
**Core content (this file):**
- Concept explanation
- Basic examples
- When to use guidance
**Detailed examples (references/):**
- @references/type-guard-examples.md - Complete pattern demonstrations
- Advanced techniques and edge cases
## Example Usage
````xml
Type guards are TypeScript constructs that narrow types within conditional blocks.
They allow the compiler to understand type refinement based on runtime checks.
Why: TypeScript needs runtime evidence to narrow union types safely.
When: Use when working with union types or unknown data.
Basic typeof guard:
```typescript
function process(value: string | number) {
if (typeof value === "string") {
return value.toUpperCase();
}
return value.toFixed(2);
}
````
Custom type predicate:
```typescript
function isString(value: unknown): value is string {
return typeof value === "string";
}
```
❌ DON'T: Assume type narrowing persists across function boundaries
✓ DO: Use type predicates for reusable type guards
```
## See Also
- @references/type-guard-examples.md - Comprehensive type guard patterns