agentic-team-templates 0.14.0 → 0.16.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agentic-team-templates",
3
- "version": "0.14.0",
3
+ "version": "0.16.0",
4
4
  "description": "AI coding assistant templates for Cursor IDE. Pre-configured rules and guidelines that help AI assistants write better code. - use at your own risk",
5
5
  "keywords": [
6
6
  "cursor",
package/src/index.js CHANGED
@@ -48,6 +48,10 @@ const TEMPLATES = {
48
48
  description: 'Technical documentation standards (READMEs, API docs, ADRs, code comments)',
49
49
  rules: ['adr.md', 'api-documentation.md', 'code-comments.md', 'maintenance.md', 'overview.md', 'readme-standards.md']
50
50
  },
51
+ 'educator': {
52
+ description: 'World-class pedagogy with evidence-based teaching, learning retention, gamification, and assessment design',
53
+ rules: ['accessibility.md', 'assessment.md', 'curriculum.md', 'engagement.md', 'instructional-design.md', 'overview.md', 'retention.md']
54
+ },
51
55
  'fullstack': {
52
56
  description: 'Full-stack web applications (Next.js, Nuxt, SvelteKit, Remix)',
53
57
  rules: ['api-contracts.md', 'architecture.md', 'overview.md', 'shared-types.md', 'testing.md']
@@ -118,6 +122,38 @@ const TEMPLATES = {
118
122
  }
119
123
  };
120
124
 
125
+ // Shorthand aliases for language expert templates
126
+ const TEMPLATE_ALIASES = {
127
+ 'js': 'javascript-expert',
128
+ 'javascript': 'javascript-expert',
129
+ 'ts': 'javascript-expert',
130
+ 'typescript': 'javascript-expert',
131
+ 'go': 'golang-expert',
132
+ 'golang': 'golang-expert',
133
+ 'py': 'python-expert',
134
+ 'python': 'python-expert',
135
+ 'rs': 'rust-expert',
136
+ 'rust': 'rust-expert',
137
+ 'swift': 'swift-expert',
138
+ 'kotlin': 'kotlin-expert',
139
+ 'kt': 'kotlin-expert',
140
+ 'java': 'java-expert',
141
+ 'cpp': 'cpp-expert',
142
+ 'csharp': 'csharp-expert',
143
+ 'cs': 'csharp-expert',
144
+ 'teach': 'educator',
145
+ 'teacher': 'educator',
146
+ };
147
+
148
+ /**
149
+ * Resolve a template alias to its canonical name
150
+ * @param {string} name - Template name or alias
151
+ * @returns {string} Canonical template name
152
+ */
153
+ function resolveTemplateAlias(name) {
154
+ return TEMPLATE_ALIASES[name] || name;
155
+ }
156
+
121
157
  const SHARED_RULES = [
122
158
  'code-quality.md',
123
159
  'communication.md',
@@ -215,7 +251,20 @@ ${colors.yellow('IDE Targets:')}
215
251
  claude CLAUDE.md file (Claude Code, Cursor with Claude)
216
252
  codex .github/copilot-instructions.md (GitHub Copilot)
217
253
 
254
+ ${colors.yellow('Shorthand Aliases:')}
255
+ js, ts, javascript, typescript → javascript-expert
256
+ go, golang → golang-expert
257
+ py, python → python-expert
258
+ rs, rust → rust-expert
259
+ swift → swift-expert
260
+ kotlin, kt → kotlin-expert
261
+ java → java-expert
262
+ cpp → cpp-expert
263
+ csharp, cs → csharp-expert
264
+ teach, teacher → educator
265
+
218
266
  ${colors.yellow('Examples:')}
267
+ npx cursor-templates js
219
268
  npx cursor-templates web-frontend
220
269
  npx cursor-templates web-frontend --ide=cursor
221
270
  npx cursor-templates web-frontend --ide=claude --ide=codex
@@ -237,13 +286,24 @@ ${colors.dim('CLAUDE.md: missing sections are intelligently merged (not overwrit
237
286
  }
238
287
 
239
288
  function printTemplates() {
289
+ // Build reverse map: canonical name -> list of aliases
290
+ const aliasesByTemplate = {};
291
+ for (const [alias, canonical] of Object.entries(TEMPLATE_ALIASES)) {
292
+ if (!aliasesByTemplate[canonical]) {
293
+ aliasesByTemplate[canonical] = [];
294
+ }
295
+ aliasesByTemplate[canonical].push(alias);
296
+ }
297
+
240
298
  console.log(colors.yellow('Available Templates:\n'));
241
-
299
+
242
300
  for (const [name, info] of Object.entries(TEMPLATES)) {
243
- console.log(` ${colors.green(name)}`);
301
+ const aliases = aliasesByTemplate[name];
302
+ const aliasSuffix = aliases ? ` ${colors.dim(`(aliases: ${aliases.join(', ')})`)}` : '';
303
+ console.log(` ${colors.green(name)}${aliasSuffix}`);
244
304
  console.log(` ${info.description}\n`);
245
305
  }
246
-
306
+
247
307
  console.log(colors.blue('Shared rules (always included):'));
248
308
  for (const rule of SHARED_RULES) {
249
309
  console.log(` - ${rule.replace('.md', '')}`);
@@ -1378,10 +1438,13 @@ export async function run(args) {
1378
1438
  }
1379
1439
 
1380
1440
  printBanner();
1381
-
1441
+
1382
1442
  // Check for updates (non-blocking, fails silently)
1383
1443
  await checkForUpdates();
1384
1444
 
1445
+ // Resolve template aliases to canonical names
1446
+ const resolvedTemplates = templates.map(resolveTemplateAlias);
1447
+
1385
1448
  // Use default IDEs if none specified
1386
1449
  const targetIdes = ides.length > 0 ? ides : DEFAULT_IDES;
1387
1450
 
@@ -1391,7 +1454,7 @@ export async function run(args) {
1391
1454
  console.error(colors.red('Error: Cannot use --remove and --reset together\n'));
1392
1455
  process.exit(1);
1393
1456
  }
1394
- if (templates.length > 0) {
1457
+ if (resolvedTemplates.length > 0) {
1395
1458
  console.error(colors.red('Error: --reset does not accept template arguments\n'));
1396
1459
  console.error(colors.dim('Use --remove <templates...> to remove specific templates.\n'));
1397
1460
  process.exit(1);
@@ -1410,14 +1473,14 @@ export async function run(args) {
1410
1473
 
1411
1474
  // Handle remove mode
1412
1475
  if (removeMode) {
1413
- if (templates.length === 0) {
1476
+ if (resolvedTemplates.length === 0) {
1414
1477
  console.error(colors.red('Error: No templates specified for removal\n'));
1415
1478
  console.error(colors.dim('Usage: npx cursor-templates --remove <templates...>\n'));
1416
1479
  printTemplates();
1417
1480
  process.exit(1);
1418
1481
  }
1419
1482
 
1420
- for (const template of templates) {
1483
+ for (const template of resolvedTemplates) {
1421
1484
  if (!TEMPLATES[template]) {
1422
1485
  console.error(colors.red(`Error: Unknown template '${template}'\n`));
1423
1486
  printTemplates();
@@ -1432,18 +1495,18 @@ export async function run(args) {
1432
1495
  console.log(colors.yellow('FORCE MODE - Modified files will be removed\n'));
1433
1496
  }
1434
1497
 
1435
- await remove(process.cwd(), templates, dryRun, force, skipConfirm, targetIdes);
1498
+ await remove(process.cwd(), resolvedTemplates, dryRun, force, skipConfirm, targetIdes);
1436
1499
  return;
1437
1500
  }
1438
1501
 
1439
1502
  // Install mode (default)
1440
- if (templates.length === 0) {
1503
+ if (resolvedTemplates.length === 0) {
1441
1504
  console.error(colors.red('Error: No templates specified\n'));
1442
1505
  printHelp();
1443
1506
  process.exit(1);
1444
1507
  }
1445
1508
 
1446
- for (const template of templates) {
1509
+ for (const template of resolvedTemplates) {
1447
1510
  if (!TEMPLATES[template]) {
1448
1511
  console.error(colors.red(`Error: Unknown template '${template}'\n`));
1449
1512
  printTemplates();
@@ -1460,7 +1523,7 @@ export async function run(args) {
1460
1523
  }
1461
1524
 
1462
1525
  // Install to current directory
1463
- install(process.cwd(), templates, dryRun, force, targetIdes);
1526
+ install(process.cwd(), resolvedTemplates, dryRun, force, targetIdes);
1464
1527
  }
1465
1528
 
1466
1529
  // Export internals for testing
@@ -1470,11 +1533,13 @@ export const _internals = {
1470
1533
  REPO_URL,
1471
1534
  CHANGELOG_URL,
1472
1535
  TEMPLATES,
1536
+ TEMPLATE_ALIASES,
1473
1537
  SHARED_RULES,
1474
1538
  SUPPORTED_IDES,
1475
1539
  DEFAULT_IDES,
1476
1540
  compareVersions,
1477
1541
  checkForUpdates,
1542
+ resolveTemplateAlias,
1478
1543
  filesMatch,
1479
1544
  parseMarkdownSections,
1480
1545
  generateSectionSignature,
package/src/index.test.js CHANGED
@@ -8,10 +8,12 @@ const {
8
8
  PACKAGE_NAME,
9
9
  CURRENT_VERSION,
10
10
  TEMPLATES,
11
+ TEMPLATE_ALIASES,
11
12
  SHARED_RULES,
12
13
  SUPPORTED_IDES,
13
14
  DEFAULT_IDES,
14
15
  compareVersions,
16
+ resolveTemplateAlias,
15
17
  filesMatch,
16
18
  parseMarkdownSections,
17
19
  generateSectionSignature,
@@ -80,6 +82,7 @@ describe('Constants', () => {
80
82
  'data-engineering',
81
83
  'devops-sre',
82
84
  'documentation',
85
+ 'educator',
83
86
  'fullstack',
84
87
  'golang-expert',
85
88
  'java-expert',
@@ -150,6 +153,50 @@ describe('Constants', () => {
150
153
  expect(DEFAULT_IDES).toEqual(SUPPORTED_IDES);
151
154
  });
152
155
  });
156
+
157
+ describe('TEMPLATE_ALIASES', () => {
158
+ it('all alias values should be valid TEMPLATES keys', () => {
159
+ for (const [alias, canonical] of Object.entries(TEMPLATE_ALIASES)) {
160
+ expect(TEMPLATES).toHaveProperty(canonical,
161
+ expect.anything(),
162
+ );
163
+ }
164
+ });
165
+
166
+ it('should include expected shorthand aliases', () => {
167
+ expect(TEMPLATE_ALIASES['js']).toBe('javascript-expert');
168
+ expect(TEMPLATE_ALIASES['ts']).toBe('javascript-expert');
169
+ expect(TEMPLATE_ALIASES['go']).toBe('golang-expert');
170
+ expect(TEMPLATE_ALIASES['py']).toBe('python-expert');
171
+ expect(TEMPLATE_ALIASES['rs']).toBe('rust-expert');
172
+ expect(TEMPLATE_ALIASES['kt']).toBe('kotlin-expert');
173
+ });
174
+ });
175
+
176
+ describe('resolveTemplateAlias', () => {
177
+ it('should resolve known aliases to canonical names', () => {
178
+ expect(resolveTemplateAlias('js')).toBe('javascript-expert');
179
+ expect(resolveTemplateAlias('typescript')).toBe('javascript-expert');
180
+ expect(resolveTemplateAlias('go')).toBe('golang-expert');
181
+ expect(resolveTemplateAlias('golang')).toBe('golang-expert');
182
+ expect(resolveTemplateAlias('py')).toBe('python-expert');
183
+ expect(resolveTemplateAlias('rs')).toBe('rust-expert');
184
+ expect(resolveTemplateAlias('kotlin')).toBe('kotlin-expert');
185
+ expect(resolveTemplateAlias('kt')).toBe('kotlin-expert');
186
+ });
187
+
188
+ it('should pass through unknown names unchanged', () => {
189
+ expect(resolveTemplateAlias('web-frontend')).toBe('web-frontend');
190
+ expect(resolveTemplateAlias('blockchain')).toBe('blockchain');
191
+ expect(resolveTemplateAlias('nonexistent')).toBe('nonexistent');
192
+ });
193
+
194
+ it('should pass through canonical template names unchanged', () => {
195
+ expect(resolveTemplateAlias('javascript-expert')).toBe('javascript-expert');
196
+ expect(resolveTemplateAlias('golang-expert')).toBe('golang-expert');
197
+ expect(resolveTemplateAlias('python-expert')).toBe('python-expert');
198
+ });
199
+ });
153
200
  });
154
201
 
155
202
  // ============================================================================
@@ -1019,7 +1066,50 @@ describe('CLI Argument Parsing', () => {
1019
1066
  it('should accept -y shorthand for yes', async () => {
1020
1067
  await run(['web-frontend']);
1021
1068
  await run(['--reset', '-y']);
1022
-
1069
+
1070
+ expect(exitSpy).not.toHaveBeenCalled();
1071
+ });
1072
+
1073
+ it('should resolve shorthand alias "js" to javascript-expert', async () => {
1074
+ await run(['js', '--dry-run']);
1075
+
1076
+ expect(exitSpy).not.toHaveBeenCalled();
1077
+ });
1078
+
1079
+ it('should resolve shorthand alias "go" to golang-expert', async () => {
1080
+ await run(['go', '--dry-run']);
1081
+
1082
+ expect(exitSpy).not.toHaveBeenCalled();
1083
+ });
1084
+
1085
+ it('should resolve shorthand alias "py" to python-expert', async () => {
1086
+ await run(['py', '--dry-run']);
1087
+
1088
+ expect(exitSpy).not.toHaveBeenCalled();
1089
+ });
1090
+
1091
+ it('should resolve shorthand alias "rs" to rust-expert', async () => {
1092
+ await run(['rs', '--dry-run']);
1093
+
1094
+ expect(exitSpy).not.toHaveBeenCalled();
1095
+ });
1096
+
1097
+ it('should resolve shorthand alias "kt" to kotlin-expert', async () => {
1098
+ await run(['kt', '--dry-run']);
1099
+
1100
+ expect(exitSpy).not.toHaveBeenCalled();
1101
+ });
1102
+
1103
+ it('should resolve aliases in --remove mode', async () => {
1104
+ await run(['go']);
1105
+ await run(['--remove', 'go', '--yes']);
1106
+
1107
+ expect(exitSpy).not.toHaveBeenCalled();
1108
+ });
1109
+
1110
+ it('should still accept canonical template names', async () => {
1111
+ await run(['javascript-expert', '--dry-run']);
1112
+
1023
1113
  expect(exitSpy).not.toHaveBeenCalled();
1024
1114
  });
1025
1115
  });
@@ -0,0 +1,266 @@
1
+ # Accessibility and Inclusive Education
2
+
3
+ Universal Design for Learning and evidence-based practices for reaching every learner.
4
+
5
+ ## Universal Design for Learning (CAST)
6
+
7
+ ### Three UDL Principles
8
+
9
+ ```
10
+ UDL Framework
11
+ ├── Principle I: Multiple Means of REPRESENTATION (the "what" of learning)
12
+ │ ├── Provide options for perception
13
+ │ ├── Provide options for language and symbols
14
+ │ └── Provide options for comprehension
15
+
16
+ ├── Principle II: Multiple Means of ACTION & EXPRESSION (the "how" of learning)
17
+ │ ├── Provide options for physical action
18
+ │ ├── Provide options for expression and communication
19
+ │ └── Provide options for executive functions
20
+
21
+ └── Principle III: Multiple Means of ENGAGEMENT (the "why" of learning)
22
+ ├── Provide options for recruiting interest
23
+ ├── Provide options for sustaining effort and persistence
24
+ └── Provide options for self-regulation
25
+ ```
26
+
27
+ ### UDL Implementation Guide
28
+
29
+ | Principle | Guideline | Practical Example |
30
+ |-----------|-----------|-------------------|
31
+ | Representation | Offer alternatives for visual info | Provide text descriptions for images, transcripts for videos |
32
+ | Representation | Clarify vocabulary and symbols | Define key terms, provide glossaries, use consistent notation |
33
+ | Representation | Activate prior knowledge | Start lessons with connections to what learners already know |
34
+ | Action & Expression | Vary methods for response | Allow written, verbal, visual, or multimedia submissions |
35
+ | Action & Expression | Support planning and strategy | Provide checklists, graphic organizers, project timelines |
36
+ | Action & Expression | Facilitate managing information | Offer templates, note-taking guides, categorization tools |
37
+ | Engagement | Optimize individual choice | Let learners choose topics, tools, or assessment formats |
38
+ | Engagement | Foster collaboration | Structured group work with clear roles and accountability |
39
+ | Engagement | Develop self-assessment | Teach learners to use rubrics to evaluate their own work |
40
+
41
+ ### UDL Checkpoint: Lesson Review
42
+
43
+ ```markdown
44
+ Before delivering a lesson, check:
45
+
46
+ Representation:
47
+ - [ ] Content is available in at least 2 formats (text + visual, audio + text)
48
+ - [ ] Key vocabulary is explicitly defined
49
+ - [ ] Background knowledge is activated
50
+
51
+ Action & Expression:
52
+ - [ ] Learners have more than one way to demonstrate understanding
53
+ - [ ] Scaffolds are available (templates, graphic organizers, exemplars)
54
+ - [ ] Technology options are flexible and accessible
55
+
56
+ Engagement:
57
+ - [ ] Learners have meaningful choices
58
+ - [ ] Goals are clear and relevant to learners
59
+ - [ ] Collaboration is structured with clear expectations
60
+ ```
61
+
62
+ ## Differentiated Instruction
63
+
64
+ ### Differentiation Model (Tomlinson)
65
+
66
+ ```
67
+ Differentiate by:
68
+ ├── Content: WHAT learners study
69
+ │ └── Same concept, different complexity or resources
70
+ ├── Process: HOW learners make sense of it
71
+ │ └── Same goal, different activities or scaffolding
72
+ ├── Product: HOW learners demonstrate learning
73
+ │ └── Same objectives, different output formats
74
+ └── Environment: WHERE and WITH WHOM learners work
75
+ └── Same classroom, different grouping and settings
76
+ ```
77
+
78
+ ### Differentiation Strategies
79
+
80
+ | Strategy | Description | Example |
81
+ |----------|-------------|---------|
82
+ | Tiered assignments | Same objective, varying complexity | All students analyze a text; Tier 1 guided questions, Tier 2 open analysis, Tier 3 comparative analysis |
83
+ | Flexible grouping | Group by readiness, interest, or learning preference | Readiness groups for skill practice; mixed groups for projects |
84
+ | Learning menus | Choice board of activities aligned to objectives | "Choose 3 from this menu to demonstrate your understanding" |
85
+ | Anchor activities | Meaningful work for early finishers | Extension problems, enrichment readings, peer tutoring |
86
+ | Compacting | Pre-test to skip mastered content | Students who demonstrate mastery work on extension projects |
87
+
88
+ ### Tiered Assignment Template
89
+
90
+ ```markdown
91
+ Objective: [Same for all tiers]
92
+
93
+ Tier 1 (Approaching):
94
+ - Scaffolded task with guided steps
95
+ - Graphic organizer provided
96
+ - Worked example available for reference
97
+
98
+ Tier 2 (Meeting):
99
+ - Standard task with minimal scaffolding
100
+ - Choice of graphic organizer (optional)
101
+ - Peer collaboration encouraged
102
+
103
+ Tier 3 (Exceeding):
104
+ - Extended task requiring transfer to new context
105
+ - Open-ended approach
106
+ - Independent or mentoring others
107
+ ```
108
+
109
+ ## Learning Styles: The Myth
110
+
111
+ ### What the Research Says
112
+
113
+ ```markdown
114
+ IMPORTANT: The "learning styles" model (visual, auditory, kinesthetic)
115
+ is NOT supported by research evidence.
116
+
117
+ The "meshing hypothesis" — that matching instruction to preferred
118
+ learning style improves outcomes — has been tested repeatedly
119
+ and consistently fails to show benefits.
120
+
121
+ Key studies:
122
+ - Pashler et al. (2008): Comprehensive review found no credible evidence
123
+ - Rogowsky et al. (2015): No interaction between style and instruction format
124
+ - Husmann & O'Loughlin (2019): Students didn't even study in their "preferred" style
125
+
126
+ What DOES work:
127
+ - Multiple representations of content (UDL) — benefits ALL learners
128
+ - Matching modality to CONTENT type (diagrams for spatial, text for verbal)
129
+ - Active learning strategies regardless of supposed "style"
130
+ ```
131
+
132
+ ### What to Do Instead
133
+
134
+ ```markdown
135
+ ❌ "This student is a visual learner, so only use diagrams"
136
+ ✅ "All students benefit from multiple representations (UDL Principle I)"
137
+
138
+ ❌ Assess students' learning styles and customize per student
139
+ ✅ Provide content in multiple formats for everyone
140
+
141
+ The goal is not matching to preference; it is matching to content:
142
+ - Geography → maps (visual makes sense for the CONTENT)
143
+ - Music → audio (auditory makes sense for the CONTENT)
144
+ - Vocabulary → verbal definitions + visual examples (dual coding helps ALL)
145
+ ```
146
+
147
+ ## Inclusive Content Design
148
+
149
+ ### Language and Representation
150
+
151
+ ```markdown
152
+ Inclusive practices:
153
+ - Use diverse names, contexts, and scenarios in examples
154
+ - Avoid stereotypes in case studies and problem contexts
155
+ - Represent multiple cultures, backgrounds, and perspectives
156
+ - Use gender-inclusive language
157
+ - Present multiple viewpoints on complex topics
158
+ ```
159
+
160
+ ### Culturally Responsive Teaching
161
+
162
+ | Principle | Practice |
163
+ |-----------|----------|
164
+ | High expectations for all | Hold rigorous standards while providing support to meet them |
165
+ | Cultural competence | Learn about students' backgrounds; incorporate into instruction |
166
+ | Critical consciousness | Connect learning to real-world issues students care about |
167
+ | Student voice | Create space for students to share perspectives and experiences |
168
+ | Asset-based framing | Focus on what students bring, not what they lack |
169
+
170
+ ### Accessible Materials Checklist
171
+
172
+ ```markdown
173
+ Text:
174
+ - [ ] Sans-serif font, minimum 12pt (14pt preferred)
175
+ - [ ] High contrast (minimum 4.5:1 ratio)
176
+ - [ ] Left-aligned (not justified)
177
+ - [ ] 1.5 line spacing minimum
178
+ - [ ] Clear heading hierarchy (H1, H2, H3)
179
+
180
+ Images:
181
+ - [ ] Alt text for all meaningful images
182
+ - [ ] Decorative images marked as decorative
183
+ - [ ] No information conveyed by color alone
184
+
185
+ Video:
186
+ - [ ] Captions for all spoken content
187
+ - [ ] Audio descriptions for visual-only content
188
+ - [ ] Transcript available
189
+
190
+ Documents:
191
+ - [ ] Proper heading structure (not just bold/large text)
192
+ - [ ] Tables have header rows
193
+ - [ ] Links have descriptive text (not "click here")
194
+ - [ ] Reading order is logical for screen readers
195
+
196
+ Assessment:
197
+ - [ ] Extended time available when appropriate
198
+ - [ ] Alternative formats offered (oral, written, visual)
199
+ - [ ] Instructions are clear and unambiguous
200
+ - [ ] Examples are provided for unfamiliar formats
201
+ ```
202
+
203
+ ## Supporting Diverse Learners
204
+
205
+ ### English Language Learners
206
+
207
+ | Strategy | Description |
208
+ |----------|-------------|
209
+ | Visual supports | Pair text with images, diagrams, and real objects |
210
+ | Sentence frames | Provide structured templates for academic language |
211
+ | Word walls | Display key vocabulary with definitions and visuals |
212
+ | Wait time | Allow extra processing time (7-10 seconds) |
213
+ | Preview/review | Introduce key concepts before, review after |
214
+ | Collaborative structures | Pair with bilingual peers for support |
215
+
216
+ ### Learners with Disabilities
217
+
218
+ ```markdown
219
+ Focus on BARRIERS, not deficits:
220
+
221
+ ❌ "This student can't learn because of their disability"
222
+ ✅ "What barriers in the learning environment can we remove?"
223
+
224
+ Universal design removes barriers proactively:
225
+ - Flexible materials (digital text that can be resized, read aloud)
226
+ - Multiple means of expression (don't require handwriting if typing works)
227
+ - Flexible timing (mastery matters more than speed)
228
+ - Accessible technology (screen readers, speech-to-text, magnification)
229
+ ```
230
+
231
+ ### Gifted and Advanced Learners
232
+
233
+ | Strategy | Description |
234
+ |----------|-------------|
235
+ | Curriculum compacting | Pre-test and skip mastered content |
236
+ | Depth and complexity | Add layers of analysis, not just more work |
237
+ | Independent study | Self-directed projects on topics of interest |
238
+ | Mentorship | Connect with experts in areas of passion |
239
+ | Acceleration | Move faster through content when mastery is demonstrated |
240
+
241
+ ```markdown
242
+ ❌ "You finished early? Do 10 more problems" (busywork)
243
+ ✅ "You've mastered this. Here's a challenge that extends the concept
244
+ to a new context" (depth, not volume)
245
+ ```
246
+
247
+ ## Trauma-Informed Practices
248
+
249
+ ### Core Principles
250
+
251
+ ```markdown
252
+ 1. Safety: Create physically and emotionally safe spaces
253
+ 2. Trustworthiness: Be consistent, transparent, and follow through
254
+ 3. Choice: Offer control wherever possible
255
+ 4. Collaboration: Work WITH students, not ON them
256
+ 5. Empowerment: Build on strengths; foster resilience
257
+ ```
258
+
259
+ ### Classroom Strategies
260
+
261
+ - Establish predictable routines
262
+ - Provide advance notice of changes
263
+ - Offer quiet spaces for self-regulation
264
+ - Use calm, regulated tone
265
+ - Avoid public shaming or confrontation
266
+ - Build relationships before demanding compliance