@nerdev/skillset 0.2.1
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/LICENSE +21 -0
- package/README.md +351 -0
- package/bin/skillset.mjs +205 -0
- package/curations/README.md +53 -0
- package/curations/TEMPLATE/WHY.md +23 -0
- package/curations/TEMPLATE/overlay/SKILL.md +6 -0
- package/curations/impeccable/WHY.md +34 -0
- package/curations/impeccable/overlay/SKILL.md +116 -0
- package/package.json +43 -0
- package/scripts/ste-gate.mjs +39 -0
- package/scripts/ste-lint.py +201 -0
- package/scripts/sync.mjs +174 -0
- package/skills/ai-agent/agent-docs-writer/SKILL.md +105 -0
- package/skills/ai-agent/agent-docs-writer/references/principles.md +73 -0
- package/skills/ai-agent/agent-docs-writer/templates/AGENTS.template.md +44 -0
- package/skills/ai-agent/agent-docs-writer/templates/README.template.md +19 -0
- package/skills/ai-agent/ultra-context-engine/SKILL.md +941 -0
- package/skills/architecture/blueprint/SKILL.md +191 -0
- package/skills/architecture/code-tour/SKILL.md +204 -0
- package/skills/architecture/progress-guard/SKILL.md +148 -0
- package/skills/architecture/search-first/SKILL.md +97 -0
- package/skills/backend/api-design/SKILL.md +456 -0
- package/skills/backend/auth/SKILL.md +596 -0
- package/skills/backend/database/SKILL.md +431 -0
- package/skills/backend/realtime/SKILL.md +670 -0
- package/skills/backend/security/SKILL.md +590 -0
- package/skills/business/brag/SKILL.md +177 -0
- package/skills/business/brag/assets/music/README.md +20 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.json +3846 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-1-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.json +1826 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-10-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.json +2266 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-11-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.json +2806 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-12-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.json +2796 -0
- package/skills/business/brag/assets/music/cues/happy-beats-business-moves-vol-9-by-ende-dot-app.music-cues.md +35 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-1-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-10-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-11-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-12-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/music/happy-beats-business-moves-vol-9-by-ende-dot-app.mp3 +0 -0
- package/skills/business/brag/assets/sfx/casino/card-fan-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-fan-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-place-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shove-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-shuffle.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-5.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-7.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/card-slide-8.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/cards-pack-open-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/cards-pack-open-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chip-lay-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-collide-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-handle-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-5.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/chips-stack-6.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-grab-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-grab-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-shake-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/dice-throw-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-1.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-2.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-3.ogg +0 -0
- package/skills/business/brag/assets/sfx/casino/die-throw-4.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_carpet_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_concrete_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_grass_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_snow_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/footstep_wood_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactBell_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGeneric_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactGlass_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMetal_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactMining_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlank_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPlate_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactPunch_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactSoft_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactTin_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_heavy_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_light_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_000.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/impact/impactWood_medium_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/bong_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/click_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/drop_003.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/error_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/error_006.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/glitch_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/glitch_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/select_008.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_001.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_002.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_004.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_005.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_006.ogg +0 -0
- package/skills/business/brag/assets/sfx/interface/switch_007.ogg +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-001.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-002.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-003.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-004.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-005.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-006.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-007.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-008.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-009.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-010.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-011.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-012.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-013.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-014.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-015.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-016.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-017.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-018.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-019.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-020.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-021.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-022.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-023.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-024.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-025.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-026.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-027.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-028.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-029.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-030.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-031.wav +0 -0
- package/skills/business/brag/assets/sfx/keyboard/keypress-032.wav +0 -0
- package/skills/business/brag/assets/sfx/sfx-analysis.json +15584 -0
- package/skills/business/brag/assets/sfx/sfx-analysis.md +75 -0
- package/skills/business/brag/assets/sfx/ui/click1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click3.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/click5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/mouseclick1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/rollover5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch1.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch10.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch11.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch12.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch13.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch14.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch15.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch16.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch17.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch18.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch19.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch2.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch20.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch21.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch22.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch23.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch24.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch25.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch26.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch27.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch28.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch29.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch3.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch30.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch31.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch32.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch33.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch34.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch35.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch36.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch37.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch38.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch4.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch5.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch6.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch7.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch8.ogg +0 -0
- package/skills/business/brag/assets/sfx/ui/switch9.ogg +0 -0
- package/skills/business/brag/references/audio.md +307 -0
- package/skills/business/brag/references/step-1-inspect.md +133 -0
- package/skills/business/brag/references/step-2-plan.md +234 -0
- package/skills/business/brag/references/step-3-compose.md +210 -0
- package/skills/business/brag/references/step-4-deliver.md +168 -0
- package/skills/business/brag/references/tones.md +231 -0
- package/skills/business/brag/scripts/analyze_music_cues.py +309 -0
- package/skills/business/brag/scripts/pyproject.toml +14 -0
- package/skills/business/brag/scripts/uv.lock +819 -0
- package/skills/business/copywriting/SKILL.md +178 -0
- package/skills/business/customer-research/SKILL.md +259 -0
- package/skills/business/freelancing/SKILL.md +679 -0
- package/skills/business/launch/SKILL.md +273 -0
- package/skills/business/marketing-psychology/SKILL.md +364 -0
- package/skills/business/pricing/SKILL.md +233 -0
- package/skills/business/resume-revamp-jake-ats/SKILL.md +64 -0
- package/skills/business/startup-founder/SKILL.md +400 -0
- package/skills/business/startup-founder/references/funding.md +48 -0
- package/skills/business/startup-founder/references/further-reading.md +132 -0
- package/skills/business/startup-founder/references/gtm-tools.md +57 -0
- package/skills/business/startup-founder/references/legal-india.md +36 -0
- package/skills/business/startup-founder/references/marketing/README.md +16 -0
- package/skills/business/startup-founder/references/marketing/cold-email.md +172 -0
- package/skills/business/startup-founder/references/marketing/competitors.md +245 -0
- package/skills/business/startup-founder/references/marketing/customer-research.md +276 -0
- package/skills/business/startup-founder/references/marketing/free-tools.md +168 -0
- package/skills/business/startup-founder/references/marketing/launch.md +343 -0
- package/skills/business/startup-founder/references/marketing/marketing-plan.md +270 -0
- package/skills/business/startup-founder/references/marketing/pricing.md +237 -0
- package/skills/business/startup-founder/references/marketing/product-marketing.md +250 -0
- package/skills/business/startup-founder/references/validation.md +267 -0
- package/skills/devops/deployments/SKILL.md +339 -0
- package/skills/devops/git-ci/SKILL.md +372 -0
- package/skills/devops/performance/SKILL.md +523 -0
- package/skills/devops/testing/SKILL.md +558 -0
- package/skills/engineering/code-review/SKILL.md +149 -0
- package/skills/engineering/coding-standards/SKILL.md +229 -0
- package/skills/engineering/product-engineering/SKILL.md +219 -0
- package/skills/engineering/senior-engineer-prompts/SKILL.md +145 -0
- package/skills/engineering/tdd-workflow/SKILL.md +178 -0
- package/skills/engineering/verification-loop/SKILL.md +199 -0
- package/skills/nerdev/nerdev-abstraction/SKILL.md +412 -0
- package/skills/nerdev/nerdev-docs/SKILL.md +527 -0
- package/skills/nerdev/nerdev-docs/templates/adr-template.md +39 -0
- package/skills/nerdev/nerdev-docs/templates/contributing-template.md +140 -0
- package/skills/nerdev/nerdev-docs/templates/deploy-template.md +426 -0
- package/skills/nerdev/nerdev-docs/templates/design-template.md +105 -0
- package/skills/nerdev/nerdev-docs/templates/incident-template.md +66 -0
- package/skills/nerdev/nerdev-monorepo/SKILL.md +522 -0
- package/skills/quality/output-skill/SKILL.md +49 -0
- package/skills/quality/unslop/SKILL.md +67 -0
- package/skills/ui/animaxxing/SKILL.md +58 -0
- package/skills/ui/animaxxing/agents/openai.yaml +7 -0
- package/skills/ui/animaxxing/references/effect-restoration.md +26 -0
- package/skills/ui/animaxxing/references/motion-vocabulary.md +142 -0
- package/skills/ui/animaxxing/references/recipes/blast-off.md +119 -0
- package/skills/ui/animaxxing/references/recipes/particle-effects.md +718 -0
- package/skills/ui/animaxxing/references/recipes/particle-field.md +428 -0
- package/skills/ui/animaxxing/references/recipes/route-letters.md +205 -0
- package/skills/ui/animaxxing/references/recipes/speak-in.md +181 -0
- package/skills/ui/animaxxing/references/recipes/split-entrances.md +345 -0
- package/skills/ui/animaxxing/references/recipes/wave.md +144 -0
- package/skills/ui/animaxxing/references/text-stability.md +68 -0
- package/skills/ui/animaxxing/references/verification.md +44 -0
- package/skills/ui/ask-animation/SKILL.md +178 -0
- package/skills/ui/ask-base-ui/SKILL.md +400 -0
- package/skills/ui/ask-cmdk/SKILL.md +315 -0
- package/skills/ui/ask-command-menu/SKILL.md +262 -0
- package/skills/ui/ask-drawer/SKILL.md +235 -0
- package/skills/ui/ask-form/SKILL.md +229 -0
- package/skills/ui/ask-gsap/SKILL.md +435 -0
- package/skills/ui/ask-modal/SKILL.md +145 -0
- package/skills/ui/ask-motion/SKILL.md +339 -0
- package/skills/ui/ask-rhf/SKILL.md +388 -0
- package/skills/ui/ask-sonner/API.md +64 -0
- package/skills/ui/ask-sonner/SKILL.md +88 -0
- package/skills/ui/ask-table/SKILL.md +253 -0
- package/skills/ui/ask-tanstack-table/SKILL.md +490 -0
- package/skills/ui/ask-toast/SKILL.md +163 -0
- package/skills/ui/ask-vaul/SKILL.md +291 -0
- package/skills/ui/ask-virtual-list/SKILL.md +304 -0
- package/skills/ui/ask-virtuoso/SKILL.md +332 -0
- package/skills/ui/email-craft/SKILL.md +258 -0
- package/skills/ui/frontend-craftsmanship/SKILL.md +462 -0
- package/skills/ui/gsap-astro/SKILL.md +56 -0
- package/skills/ui/gsap-astro/agents/openai.yaml +7 -0
- package/skills/ui/gsap-astro/references/client-router-navigation.md +139 -0
- package/skills/ui/gsap-astro/references/initialization.md +87 -0
- package/skills/ui/gsap-astro/references/motion-system.md +152 -0
- package/skills/ui/gsap-astro/references/scripts-and-islands.md +65 -0
- package/skills/ui/gsap-astro/references/verification.md +44 -0
- package/skills/ui/gsap-core/SKILL.md +254 -0
- package/skills/ui/gsap-frameworks/SKILL.md +266 -0
- package/skills/ui/gsap-nextjs/SKILL.md +51 -0
- package/skills/ui/gsap-nextjs/agents/openai.yaml +7 -0
- package/skills/ui/gsap-nextjs/references/app-router-navigation.md +189 -0
- package/skills/ui/gsap-nextjs/references/initialization.md +87 -0
- package/skills/ui/gsap-nextjs/references/motion-system.md +158 -0
- package/skills/ui/gsap-nextjs/references/verification.md +40 -0
- package/skills/ui/gsap-nuxt/SKILL.md +56 -0
- package/skills/ui/gsap-nuxt/agents/openai.yaml +7 -0
- package/skills/ui/gsap-nuxt/references/initialization.md +87 -0
- package/skills/ui/gsap-nuxt/references/motion-system.md +161 -0
- package/skills/ui/gsap-nuxt/references/navigation.md +145 -0
- package/skills/ui/gsap-nuxt/references/page-transitions.md +107 -0
- package/skills/ui/gsap-nuxt/references/verification.md +42 -0
- package/skills/ui/gsap-performance/SKILL.md +79 -0
- package/skills/ui/gsap-plugins/SKILL.md +433 -0
- package/skills/ui/gsap-react/SKILL.md +136 -0
- package/skills/ui/gsap-react-router/SKILL.md +55 -0
- package/skills/ui/gsap-react-router/agents/openai.yaml +7 -0
- package/skills/ui/gsap-react-router/references/initialization.md +87 -0
- package/skills/ui/gsap-react-router/references/motion-system.md +158 -0
- package/skills/ui/gsap-react-router/references/react-router-navigation.md +165 -0
- package/skills/ui/gsap-react-router/references/route-lifetime.md +74 -0
- package/skills/ui/gsap-react-router/references/verification.md +42 -0
- package/skills/ui/gsap-scrolltrigger/SKILL.md +296 -0
- package/skills/ui/gsap-sveltekit/SKILL.md +54 -0
- package/skills/ui/gsap-sveltekit/agents/openai.yaml +7 -0
- package/skills/ui/gsap-sveltekit/references/initialization.md +87 -0
- package/skills/ui/gsap-sveltekit/references/motion-system.md +156 -0
- package/skills/ui/gsap-sveltekit/references/page-lifetime.md +63 -0
- package/skills/ui/gsap-sveltekit/references/sveltekit-navigation.md +160 -0
- package/skills/ui/gsap-sveltekit/references/verification.md +41 -0
- package/skills/ui/gsap-tanstack-router/SKILL.md +56 -0
- package/skills/ui/gsap-tanstack-router/agents/openai.yaml +7 -0
- package/skills/ui/gsap-tanstack-router/references/initialization.md +87 -0
- package/skills/ui/gsap-tanstack-router/references/motion-system.md +160 -0
- package/skills/ui/gsap-tanstack-router/references/route-lifetime.md +66 -0
- package/skills/ui/gsap-tanstack-router/references/tanstack-navigation.md +156 -0
- package/skills/ui/gsap-tanstack-router/references/verification.md +41 -0
- package/skills/ui/gsap-timeline/SKILL.md +107 -0
- package/skills/ui/gsap-utils/SKILL.md +284 -0
- package/skills/ui/gsap-vanilla/SKILL.md +63 -0
- package/skills/ui/gsap-vanilla/agents/openai.yaml +7 -0
- package/skills/ui/gsap-vanilla/references/cross-document-navigation.md +54 -0
- package/skills/ui/gsap-vanilla/references/initialization.md +87 -0
- package/skills/ui/gsap-vanilla/references/motion-system.md +150 -0
- package/skills/ui/gsap-vanilla/references/page-load.md +96 -0
- package/skills/ui/gsap-vanilla/references/spa-navigation.md +70 -0
- package/skills/ui/gsap-vanilla/references/verification.md +41 -0
- package/skills/ui/house-style/SKILL.md +366 -0
- package/skills/ui/imagegen/SKILL.md +49 -0
- package/skills/ui/imagegen/references/brandkit.md +48 -0
- package/skills/ui/imagegen/references/image-to-code.md +56 -0
- package/skills/ui/imagegen/references/mobile.md +58 -0
- package/skills/ui/imagegen/references/web.md +63 -0
- package/skills/ui/impeccable/SKILL.md +116 -0
- package/skills/ui/impeccable/reference/adapt.md +318 -0
- package/skills/ui/impeccable/reference/adapt.native.md +58 -0
- package/skills/ui/impeccable/reference/android.md +46 -0
- package/skills/ui/impeccable/reference/animate.md +89 -0
- package/skills/ui/impeccable/reference/audit.md +137 -0
- package/skills/ui/impeccable/reference/audit.native.md +139 -0
- package/skills/ui/impeccable/reference/bolder.md +33 -0
- package/skills/ui/impeccable/reference/clarify.md +94 -0
- package/skills/ui/impeccable/reference/colorize.md +86 -0
- package/skills/ui/impeccable/reference/craft-floor.md +44 -0
- package/skills/ui/impeccable/reference/craft.md +5 -0
- package/skills/ui/impeccable/reference/critique.md +806 -0
- package/skills/ui/impeccable/reference/degraded/asset-producer.md +37 -0
- package/skills/ui/impeccable/reference/degraded/documenter.md +24 -0
- package/skills/ui/impeccable/reference/degraded/finish-reviewer.md +38 -0
- package/skills/ui/impeccable/reference/degraded/manual-edit-applier.md +92 -0
- package/skills/ui/impeccable/reference/delight.md +70 -0
- package/skills/ui/impeccable/reference/distill.md +111 -0
- package/skills/ui/impeccable/reference/doctor.md +54 -0
- package/skills/ui/impeccable/reference/document.md +416 -0
- package/skills/ui/impeccable/reference/extract.md +69 -0
- package/skills/ui/impeccable/reference/generate.md +101 -0
- package/skills/ui/impeccable/reference/harden.md +345 -0
- package/skills/ui/impeccable/reference/hooks.md +111 -0
- package/skills/ui/impeccable/reference/init.md +131 -0
- package/skills/ui/impeccable/reference/ios.md +51 -0
- package/skills/ui/impeccable/reference/layout.md +84 -0
- package/skills/ui/impeccable/reference/live-setup.md +104 -0
- package/skills/ui/impeccable/reference/live.md +325 -0
- package/skills/ui/impeccable/reference/new-work.md +145 -0
- package/skills/ui/impeccable/reference/onboard.md +234 -0
- package/skills/ui/impeccable/reference/operate.md +61 -0
- package/skills/ui/impeccable/reference/optimize.md +258 -0
- package/skills/ui/impeccable/reference/overdrive.md +127 -0
- package/skills/ui/impeccable/reference/polish.md +105 -0
- package/skills/ui/impeccable/reference/quieter.md +99 -0
- package/skills/ui/impeccable/reference/routing.md +24 -0
- package/skills/ui/impeccable/reference/shape.md +59 -0
- package/skills/ui/impeccable/reference/typeset.md +80 -0
- package/skills/ui/impeccable/reference/visualize.md +46 -0
- package/skills/ui/impeccable/scripts/VERSION +1 -0
- package/skills/ui/impeccable/scripts/command-metadata.json +98 -0
- package/skills/ui/impeccable/scripts/data/font-index-failures.json +121 -0
- package/skills/ui/impeccable/scripts/data/font-index.json +1 -0
- package/skills/ui/impeccable/scripts/impeccable +206 -0
- package/skills/ui/impeccable/scripts/impeccable.cmd +214 -0
- package/skills/ui/impeccable/scripts/live-browser-dom.js +167 -0
- package/skills/ui/impeccable/scripts/live-browser-ignores.js +242 -0
- package/skills/ui/impeccable/scripts/live-browser-session.js +144 -0
- package/skills/ui/impeccable/scripts/live-browser.js +13510 -0
- package/skills/ui/impeccable/scripts/modern-screenshot.umd.js +14 -0
- package/skills/ui/motion/SKILL.md +207 -0
- package/skills/ui/pick-ui-library/SKILL.md +85 -0
- package/skills/ui/product-messaging/SKILL.md +163 -0
- package/skills/ui/product-site/SKILL.md +465 -0
- package/skills/ui/prototype/PICKER.md +197 -0
- package/skills/ui/prototype/SKILL.md +98 -0
- package/skills/ui/refero-design/SKILL.md +534 -0
- package/skills/ui/refero-design/agents/openai.yaml +4 -0
- package/skills/ui/refero-design/references/anti-ai-slop.md +292 -0
- package/skills/ui/refero-design/references/color.md +563 -0
- package/skills/ui/refero-design/references/copywriting.md +222 -0
- package/skills/ui/refero-design/references/craft-details.md +525 -0
- package/skills/ui/refero-design/references/example-workflow.md +264 -0
- package/skills/ui/refero-design/references/icons.md +166 -0
- package/skills/ui/refero-design/references/mcp-tools.md +258 -0
- package/skills/ui/refero-design/references/motion.md +504 -0
- package/skills/ui/refero-design/references/typography.md +737 -0
- package/skills/ui/refero-design/references/visual-workflow.md +105 -0
- package/skills/ui/style-animaxxing/SKILL.md +48 -0
- package/skills/ui/style-animaxxing/agents/openai.yaml +7 -0
- package/skills/ui/style-animaxxing/references/motion-vocabulary.md +51 -0
- package/skills/ui/style-animaxxing/references/tokens.md +288 -0
- package/skills/ui/style-animaxxing/references/typography-and-layout.md +149 -0
- package/skills/ui/style-animaxxing/references/verification.md +38 -0
- package/skills/ui/typography-picker/SKILL.md +305 -0
- package/skills/ui/ui-core/SKILL.md +345 -0
- package/skills/ui/ui-core/references/accessibility.md +85 -0
- package/skills/ui/ui-core/references/build.md +666 -0
- package/skills/ui/ui-core/references/copy.md +70 -0
- package/skills/ui/ui-core/references/dark-mode.md +76 -0
- package/skills/ui/ui-core/references/direction.md +99 -0
- package/skills/ui/ui-core/references/redesign.md +74 -0
- package/skills/ui/ui-core/references/responsive.md +77 -0
- package/skills/ui/ui-core/references/styles.md +42 -0
- package/skills/ui/ui-core/references/system.md +190 -0
- package/skills/ui/ui-core/references/verify.md +37 -0
- package/skills/ui/ui-engineering/SKILL.md +436 -0
- package/skills/ui/ui-engineering/references/avatars.md +74 -0
- package/skills/ui/ui-engineering/references/card-patterns.md +66 -0
- package/skills/ui/ui-engineering/references/floating-actions.md +65 -0
- package/skills/ui/ui-engineering/references/navigation.md +81 -0
- package/skills/ui/ui-engineering/references/overlays.md +74 -0
- package/skills/ui/ui-engineering/references/pagination.md +71 -0
- package/skills/ui/ui-engineering/references/progress-indicators.md +77 -0
- package/skills/ui/ui-engineering/references/quality-bar.md +293 -0
- package/skills/ui/ui-engineering/references/search.md +68 -0
- package/skills/ui/ui-engineering/references/tailwind-architecture.md +81 -0
- package/skills/ui/ui-theme-picker/SKILL.md +522 -0
- package/skills/ui/ui-theme-picker/references/component-sources.md +223 -0
- package/skills/ui/ui-theme-picker/references/styles.md +298 -0
- package/skills/ui/vitepress-docs/SKILL.md +439 -0
- package/skills/ui/vitepress-docs/references/components.md +333 -0
- package/skills/ui/vitepress-docs/references/layout.md +128 -0
- package/skills/ui/vitepress-docs/references/tokens.md +87 -0
- package/skills/ui/vitepress-docs/references/typography.md +76 -0
- package/skills/workflow/careful/SKILL.md +48 -0
- package/skills/workflow/context-restore/SKILL.md +69 -0
- package/skills/workflow/context-save/SKILL.md +96 -0
- package/skills/workflow/health/SKILL.md +99 -0
- package/skills/workflow/learn/SKILL.md +95 -0
- package/skills/workflow/office-hours/SKILL.md +136 -0
- package/skills/workflow/ship/SKILL.md +95 -0
- package/vendor.json +80 -0
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: coding-standards
|
|
3
|
+
category: engineering
|
|
4
|
+
source: ECC (adapted)
|
|
5
|
+
description: "Cross-project coding conventions for TypeScript/JavaScript. Load when establishing code standards or reviewing code style."
|
|
6
|
+
|
|
7
|
+
# Coding Standards
|
|
8
|
+
|
|
9
|
+
When to use: new project setup, onboarding team members, establishing code conventions, resolving style debates.
|
|
10
|
+
|
|
11
|
+
## Naming Conventions
|
|
12
|
+
|
|
13
|
+
| Element | Convention | Example |
|
|
14
|
+
|---------|------------|---------|
|
|
15
|
+
| Files | camelCase | `userService.ts`, `roomController.ts` |
|
|
16
|
+
| Directories | camelCase | `src/routes`, `src/components` |
|
|
17
|
+
| Functions | camelCase | `getUserById`, `createRoom` |
|
|
18
|
+
| Variables | camelCase | `currentUser`, `roomId` |
|
|
19
|
+
| Types/Interfaces | PascalCase | `User`, `RoomState` |
|
|
20
|
+
| Enums | PascalCase | `ToolType`, `UserRole` |
|
|
21
|
+
| Constants | UPPER_SNAKE_CASE | `MAX_RETRY_ATTEMPTS`, `DEFAULT_TIMEOUT` |
|
|
22
|
+
| React Components | PascalCase | `CanvasToolbar`, `RoomHeader` |
|
|
23
|
+
| CSS Classes | kebab-case | `canvas-container`, `tool-button` |
|
|
24
|
+
|
|
25
|
+
## Code Structure
|
|
26
|
+
|
|
27
|
+
### Functions
|
|
28
|
+
|
|
29
|
+
- Max length: 30 lines (ideal), 50 lines (acceptable), 80 lines (split required)
|
|
30
|
+
- Max parameters: 3 (use options object for more)
|
|
31
|
+
- Single responsibility: one function, one job
|
|
32
|
+
- Early returns: guard clauses over nested if/else
|
|
33
|
+
|
|
34
|
+
```typescript
|
|
35
|
+
// Good: Early return, single responsibility
|
|
36
|
+
function processOrder(order: Order): Result {
|
|
37
|
+
if (!order) return { error: 'Order is required' }
|
|
38
|
+
if (order.status !== 'pending') return { error: 'Order already processed' }
|
|
39
|
+
|
|
40
|
+
const total = calculateTotal(order.items)
|
|
41
|
+
if (total <= 0) return { error: 'Invalid order total' }
|
|
42
|
+
|
|
43
|
+
return { data: { orderId: order.id, total } }
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
// Bad: Nested if/else, multiple responsibilities
|
|
47
|
+
function processOrder(order: Order): Result {
|
|
48
|
+
if (order) {
|
|
49
|
+
if (order.status === 'pending') {
|
|
50
|
+
const total = calculateTotal(order.items)
|
|
51
|
+
if (total > 0) {
|
|
52
|
+
return { data: { orderId: order.id, total } }
|
|
53
|
+
} else {
|
|
54
|
+
return { error: 'Invalid order total' }
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
return { error: 'Order already processed' }
|
|
58
|
+
}
|
|
59
|
+
} else {
|
|
60
|
+
return { error: 'Order is required' }
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
### Files
|
|
66
|
+
|
|
67
|
+
- One export per file (preferred) or closely related exports
|
|
68
|
+
- Barrel exports via `index.ts` only at package root
|
|
69
|
+
- Order: types, constants, functions, classes, exports
|
|
70
|
+
|
|
71
|
+
## Type Safety
|
|
72
|
+
|
|
73
|
+
- No `any`. Use `unknown` and narrow with type guards.
|
|
74
|
+
- No type assertions (`as`) unless absolutely necessary.
|
|
75
|
+
- Prefer interfaces over type aliases for object shapes.
|
|
76
|
+
- Use discriminated unions for variant types.
|
|
77
|
+
|
|
78
|
+
```typescript
|
|
79
|
+
// Good: Discriminated union
|
|
80
|
+
type Result<T> =
|
|
81
|
+
| { success: true; data: T }
|
|
82
|
+
| { success: false; error: string }
|
|
83
|
+
|
|
84
|
+
function processResult(result: Result<User>) {
|
|
85
|
+
if (result.success) {
|
|
86
|
+
console.log(result.data.name)
|
|
87
|
+
} else {
|
|
88
|
+
console.error(result.error)
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Bad: Type assertion
|
|
93
|
+
const user = data as User // Dangerous!
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
## Error Handling
|
|
97
|
+
|
|
98
|
+
- Custom error classes for domain errors.
|
|
99
|
+
- Never swallow errors. Always log or rethrow.
|
|
100
|
+
- Error boundaries for React components.
|
|
101
|
+
- Try/catch only when you can recover.
|
|
102
|
+
|
|
103
|
+
```typescript
|
|
104
|
+
// Good: Custom error class
|
|
105
|
+
class NotFoundError extends Error {
|
|
106
|
+
constructor(resource: string, id: string) {
|
|
107
|
+
super(`${resource} with id ${id} not found`)
|
|
108
|
+
this.name = 'NotFoundError'
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Good: Explicit error handling
|
|
113
|
+
async function getUser(id: string): Promise<User> {
|
|
114
|
+
const user = await db.user.findUnique({ where: { id } })
|
|
115
|
+
if (!user) throw new NotFoundError('User', id)
|
|
116
|
+
return user
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
// Bad: Swallowed error
|
|
120
|
+
async function getUser(id: string): Promise<User | null> {
|
|
121
|
+
try {
|
|
122
|
+
return await db.user.findUnique({ where: { id } })
|
|
123
|
+
} catch {
|
|
124
|
+
return null // What went wrong? Who knows!
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
## Immutability
|
|
130
|
+
|
|
131
|
+
- Prevent mutation with `readonly`, `as const`, `Object.freeze`.
|
|
132
|
+
- Use spread over push/pop/splice.
|
|
133
|
+
- Pure functions: same input, same output, no side effects.
|
|
134
|
+
|
|
135
|
+
```typescript
|
|
136
|
+
// Good: Immutable operations
|
|
137
|
+
const addItem = (items: readonly Item[], item: Item): Item[] => [...items, item]
|
|
138
|
+
const removeItem = (items: readonly Item[], id: string): Item[] => items.filter(i => i.id !== id)
|
|
139
|
+
|
|
140
|
+
// Bad: Mutation
|
|
141
|
+
const addItem = (items: Item[], item: Item): void => { items.push(item) }
|
|
142
|
+
const removeItem = (items: Item[], id: string): void => {
|
|
143
|
+
const index = items.findIndex(i => i.id === id)
|
|
144
|
+
if (index >= 0) items.splice(index, 1)
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Async Patterns
|
|
149
|
+
|
|
150
|
+
- Always handle promises. No floating promises.
|
|
151
|
+
- Use async/await over .then() chains.
|
|
152
|
+
- Parallel when possible: Promise.all for independent operations.
|
|
153
|
+
- Timeouts on external calls. Never wait forever.
|
|
154
|
+
|
|
155
|
+
```typescript
|
|
156
|
+
// Good: Parallel execution with timeout
|
|
157
|
+
async function loadDashboard(userId: string): Promise<Dashboard> {
|
|
158
|
+
const [user, orders, notifications] = await Promise.all([
|
|
159
|
+
getUser(userId),
|
|
160
|
+
getOrders(userId),
|
|
161
|
+
getNotifications(userId),
|
|
162
|
+
])
|
|
163
|
+
|
|
164
|
+
return { user, orders, notifications }
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
// Bad: Sequential when parallel is possible
|
|
168
|
+
async function loadDashboard(userId: string): Promise<Dashboard> {
|
|
169
|
+
const user = await getUser(userId) // 100ms
|
|
170
|
+
const orders = await getOrders(userId) // 200ms
|
|
171
|
+
const notifications = await getNotifications(userId) // 150ms
|
|
172
|
+
// Total: 450ms (could be 200ms with parallel)
|
|
173
|
+
return { user, orders, notifications }
|
|
174
|
+
}
|
|
175
|
+
```
|
|
176
|
+
|
|
177
|
+
## Code Smells
|
|
178
|
+
|
|
179
|
+
| Smell | Detection | Fix |
|
|
180
|
+
|-------|-----------|-----|
|
|
181
|
+
| Long function | > 30 lines | Extract smaller functions |
|
|
182
|
+
| Deep nesting | > 3 levels | Use early returns |
|
|
183
|
+
| Magic numbers | Hardcoded values | Extract to constants |
|
|
184
|
+
| Duplicated code | Same logic 3+ times | Extract shared function |
|
|
185
|
+
| God class | Does too many things | Split into focused classes |
|
|
186
|
+
| Feature envy | Uses another class's data | Move function to that class |
|
|
187
|
+
| Primitive obsession | Using primitives for complex concepts | Create value objects |
|
|
188
|
+
|
|
189
|
+
## Comments
|
|
190
|
+
|
|
191
|
+
- No comments for obvious code. Code should be self-documenting.
|
|
192
|
+
- Document why, not what. Explain reasoning, not mechanics.
|
|
193
|
+
- JSDoc on all exports: parameters, return values, throws.
|
|
194
|
+
- TODO format: `// TODO(username): description - ticket-ref`
|
|
195
|
+
|
|
196
|
+
```typescript
|
|
197
|
+
/**
|
|
198
|
+
* Calculates the discounted price for an item.
|
|
199
|
+
*
|
|
200
|
+
* @param price - Original price in cents
|
|
201
|
+
* @param discount - Discount percentage (0-1)
|
|
202
|
+
* @returns Discounted price in cents
|
|
203
|
+
* @throws {ValidationError} When discount is out of range
|
|
204
|
+
*
|
|
205
|
+
* @example
|
|
206
|
+
* calculatePrice(1000, 0.15) // 850
|
|
207
|
+
*/
|
|
208
|
+
function calculatePrice(price: number, discount: number): number {
|
|
209
|
+
if (discount < 0 || discount > 1) {
|
|
210
|
+
throw new ValidationError('Discount must be between 0 and 1')
|
|
211
|
+
}
|
|
212
|
+
return Math.round(price * (1 - discount))
|
|
213
|
+
}
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
## Quick Reference
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
bun run check-types
|
|
220
|
+
bun run lint
|
|
221
|
+
bun run format
|
|
222
|
+
bun test
|
|
223
|
+
```
|
|
224
|
+
|
|
225
|
+
## Related Skills
|
|
226
|
+
|
|
227
|
+
- `engineering/code-review` for review process
|
|
228
|
+
- `engineering/tdd-workflow` for test standards
|
|
229
|
+
- `ui/house-style` for UI-specific conventions
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: product-engineering
|
|
3
|
+
category: engineering
|
|
4
|
+
source: custom
|
|
5
|
+
description: "The discipline of making technical decisions that serve user goals. Bridges product thinking and engineering execution. Load when building features, making architecture choices, scoping work, or deciding what NOT to build."
|
|
6
|
+
triggers:
|
|
7
|
+
- should we build this
|
|
8
|
+
- is this worth building
|
|
9
|
+
- how to scope this
|
|
10
|
+
- what should we build next
|
|
11
|
+
- technical decision
|
|
12
|
+
- architecture decision
|
|
13
|
+
- build vs buy
|
|
14
|
+
- product engineering
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Product Engineering
|
|
18
|
+
|
|
19
|
+
Thinking in product outcomes, not just technical systems. Checking how the product is doing, identifying where to improve, deciding what to improve — and building it.
|
|
20
|
+
|
|
21
|
+
## When to use
|
|
22
|
+
|
|
23
|
+
- Reviewing product metrics and identifying improvement opportunities
|
|
24
|
+
- Deciding what to build next based on data, not guesses
|
|
25
|
+
- Scoping features to move specific metrics
|
|
26
|
+
- Making technical decisions that serve product goals
|
|
27
|
+
- Saying no to features that don't move the needle
|
|
28
|
+
- Continuously improving an existing product
|
|
29
|
+
|
|
30
|
+
## Core principle
|
|
31
|
+
|
|
32
|
+
**Engineers who think in product, not just systems.** Not "how do I build this?" but "should this exist? will users care? how will we know if it worked?"
|
|
33
|
+
|
|
34
|
+
## The Product-Engineering Loop
|
|
35
|
+
|
|
36
|
+
```
|
|
37
|
+
Measure → Identify → Prioritize → Build → Measure
|
|
38
|
+
↑ |
|
|
39
|
+
└────────────────────────────────────────┘
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### 1. Measure
|
|
43
|
+
|
|
44
|
+
Know how the product is doing:
|
|
45
|
+
|
|
46
|
+
- **What's working?** Features with high adoption, good retention, positive feedback.
|
|
47
|
+
- **What's not working?** Drop-offs, low adoption, support tickets, churn.
|
|
48
|
+
- **What's missing?** User requests, competitive gaps, unmet needs.
|
|
49
|
+
|
|
50
|
+
Track outcomes, not output:
|
|
51
|
+
|
|
52
|
+
| Output (vanity) | Outcome (signal) |
|
|
53
|
+
|-----------------|------------------|
|
|
54
|
+
| Features shipped | Changes in user behavior |
|
|
55
|
+
| Lines of code | Users completing key flows |
|
|
56
|
+
| Sprint velocity | Time to answer "is this working?" |
|
|
57
|
+
| Code coverage | Bugs found before users hit them |
|
|
58
|
+
|
|
59
|
+
### 2. Identify
|
|
60
|
+
|
|
61
|
+
Find improvement opportunities:
|
|
62
|
+
|
|
63
|
+
- **Where are users dropping off?** Funnel analysis, session recordings.
|
|
64
|
+
- **What are users asking for?** Support tickets, feature requests, forum posts.
|
|
65
|
+
- **What are competitors doing that we're not?** Competitive analysis.
|
|
66
|
+
- **What's broken that users tolerate?** Workarounds, manual processes.
|
|
67
|
+
|
|
68
|
+
### 3. Prioritize
|
|
69
|
+
|
|
70
|
+
Decide what to work on:
|
|
71
|
+
|
|
72
|
+
| Factor | Question | Weight |
|
|
73
|
+
|--------|----------|--------|
|
|
74
|
+
| **Impact** | How many users does this affect? | High |
|
|
75
|
+
| **Intensity** | How much pain does this solve? | High |
|
|
76
|
+
| **Confidence** | How sure are we this will work? | Medium |
|
|
77
|
+
| **Effort** | How long will this take? | Medium |
|
|
78
|
+
| **Strategic fit** | Does this align with our direction? | Low |
|
|
79
|
+
|
|
80
|
+
**Rule:** Work on the highest impact + highest intensity problems first. Not the easiest, not the most interesting.
|
|
81
|
+
|
|
82
|
+
### 4. Build
|
|
83
|
+
|
|
84
|
+
Ship with intent:
|
|
85
|
+
|
|
86
|
+
- **One hypothesis per feature.** "We believe [this change] will [this outcome] for [these users]."
|
|
87
|
+
- **Instrument from day one.** If you can't measure it, you can't learn from it.
|
|
88
|
+
- **Ship to a subset.** Feature flags, staged rollouts, beta groups.
|
|
89
|
+
|
|
90
|
+
### 5. Measure (again)
|
|
91
|
+
|
|
92
|
+
After shipping, answer:
|
|
93
|
+
|
|
94
|
+
- Did the hypothesis hold?
|
|
95
|
+
- What surprised us?
|
|
96
|
+
- What should we double down on? Kill? Iterate?
|
|
97
|
+
|
|
98
|
+
Feed findings back to step 1.
|
|
99
|
+
|
|
100
|
+
## Decision Frameworks
|
|
101
|
+
|
|
102
|
+
### Build vs Buy
|
|
103
|
+
|
|
104
|
+
```
|
|
105
|
+
Does this differentiate us from competitors?
|
|
106
|
+
├─ YES → Build (it's your moat)
|
|
107
|
+
└─ NO → Buy or use existing
|
|
108
|
+
└─ Is there a mature, well-maintained solution?
|
|
109
|
+
├─ YES → Buy/adopt
|
|
110
|
+
└─ NO → Build, but keep it minimal
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
**Examples:**
|
|
114
|
+
- Auth → Buy (Clerk, Auth0, Supabase Auth). Not your moat.
|
|
115
|
+
- Core algorithm → Build. Your differentiator.
|
|
116
|
+
- Admin dashboard → Buy or template. Not your moat.
|
|
117
|
+
- Unique UX interaction → Build. Your moat.
|
|
118
|
+
|
|
119
|
+
### Complexity Matching
|
|
120
|
+
|
|
121
|
+
| Problem complexity | Solution complexity | Anti-pattern |
|
|
122
|
+
|-------------------|-------------------|--------------|
|
|
123
|
+
| Simple CRUD | Single table, minimal abstractions | Over-engineered microservices |
|
|
124
|
+
| Real-time collaboration | WebSockets, operational transform | Polling every 5 seconds |
|
|
125
|
+
| Data pipeline | Queue + workers | Synchronous processing |
|
|
126
|
+
| Multi-tenant SaaS | Row-level security, schema separation | Separate databases per tenant |
|
|
127
|
+
|
|
128
|
+
**Rule:** The solution should be exactly as complex as the problem. Not simpler (it won't work), not more complex (it won't be maintained).
|
|
129
|
+
|
|
130
|
+
### Scope Control
|
|
131
|
+
|
|
132
|
+
Before adding a feature, ask:
|
|
133
|
+
|
|
134
|
+
1. **Does this move a metric we care about?** If no, don't build it.
|
|
135
|
+
2. **Can we solve this with copy/design instead of code?** Often cheaper.
|
|
136
|
+
3. **What happens if we don't build this?** If nothing meaningful, skip it.
|
|
137
|
+
4. **Is this a "must have" or a "nice to have"?** Nice to haves go to the backlog.
|
|
138
|
+
5. **Can we solve this for 80% of users with 20% of the work?** Ship that.
|
|
139
|
+
|
|
140
|
+
## Technical Decisions That Serve Product Goals
|
|
141
|
+
|
|
142
|
+
### Architecture serves iteration speed
|
|
143
|
+
|
|
144
|
+
Choose architecture that lets you **change your mind fast**:
|
|
145
|
+
|
|
146
|
+
- **Monolith first.** Microservices add coordination cost. Start with a well-structured monolith.
|
|
147
|
+
- **Feature flags over branches.** Deploy continuously, release selectively.
|
|
148
|
+
- **Convention over configuration.** Fewer decisions to make, faster to ship.
|
|
149
|
+
- **Simple hosting.** Vercel/Railway/Fly.io over custom Kubernetes. Your users don't care about your infrastructure.
|
|
150
|
+
|
|
151
|
+
### Database serves the access pattern
|
|
152
|
+
|
|
153
|
+
Choose database based on **how you read/write**, not how trendy it is:
|
|
154
|
+
|
|
155
|
+
| Access pattern | Right choice | Wrong choice |
|
|
156
|
+
|---------------|--------------|--------------|
|
|
157
|
+
| Structured data, joins, transactions | Postgres | MongoDB |
|
|
158
|
+
| Document store, flexible schema | MongoDB | Postgres (forced) |
|
|
159
|
+
| Key-value, caching | Redis | Postgres (overkill) |
|
|
160
|
+
| Time-series, analytics | ClickHouse, Timescale | Postgres (slow) |
|
|
161
|
+
| Full-text search | Elasticsearch, Meilisearch | Postgres LIKE (slow) |
|
|
162
|
+
|
|
163
|
+
### API serves the consumer
|
|
164
|
+
|
|
165
|
+
Design APIs for the **consumer's use case**, not your database schema:
|
|
166
|
+
|
|
167
|
+
- **REST for CRUD.** Simple, well-understood.
|
|
168
|
+
- **GraphQL for complex reads.** When clients need flexible queries.
|
|
169
|
+
- **WebSockets for real-time.** When latency matters.
|
|
170
|
+
- **Webhooks for integrations.** When other systems need to react.
|
|
171
|
+
|
|
172
|
+
## Anti-Patterns
|
|
173
|
+
|
|
174
|
+
### Premature abstraction
|
|
175
|
+
Building a "reusable framework" before you've built the thing twice. DRY matters, but YAGNI matters more.
|
|
176
|
+
|
|
177
|
+
### Resume-driven development
|
|
178
|
+
Choosing tech because it looks good on a resume, not because it solves the problem. "We need Kafka" when a simple queue would work.
|
|
179
|
+
|
|
180
|
+
### Cargo cult architecture
|
|
181
|
+
Copying Netflix's architecture when you have 100 users, not 100 million.
|
|
182
|
+
|
|
183
|
+
### Feature factory
|
|
184
|
+
Shipping features without measuring outcomes. "We shipped 12 features this sprint" means nothing if none moved a metric.
|
|
185
|
+
|
|
186
|
+
### Complexity as insurance
|
|
187
|
+
Adding abstractions "just in case" we need them later. You probably won't. Delete it when you do.
|
|
188
|
+
|
|
189
|
+
## Integration with other skills
|
|
190
|
+
|
|
191
|
+
| Skill | When to use with product-engineering |
|
|
192
|
+
|-------|-------------------------------------|
|
|
193
|
+
| `office-hours` | Validating a new product idea |
|
|
194
|
+
| `startup-founder` | Early stage — what to build first |
|
|
195
|
+
| `customer-research` | Understanding users deeply |
|
|
196
|
+
| `ui-engineering` | Building the frontend |
|
|
197
|
+
| `motion` | Adding micro-interactions, icon morphs, transitions — load when a product decision involves UI feel |
|
|
198
|
+
| `ship` | Shipping with measurement |
|
|
199
|
+
| `performance` | Optimizing what matters to users |
|
|
200
|
+
| `security` | Protecting what users trust you with |
|
|
201
|
+
| `learn` | Tracking product learnings across sessions |
|
|
202
|
+
|
|
203
|
+
## Pre-ship checklist
|
|
204
|
+
|
|
205
|
+
Before declaring any feature done:
|
|
206
|
+
|
|
207
|
+
- [ ] **Hypothesis stated.** "We believe [X] will [Y] for [Z]."
|
|
208
|
+
- [ ] **Measurement defined.** How will we know if it worked?
|
|
209
|
+
- [ ] **Scope matches hypothesis.** No extra features sneaking in.
|
|
210
|
+
- [ ] **Build vs buy justified.** Why this needed to be custom.
|
|
211
|
+
- [ ] **Complexity matches problem.** No over-engineering.
|
|
212
|
+
- [ ] **Rollout plan exists.** How do we deploy safely?
|
|
213
|
+
- [ ] **Rollback plan exists.** How do we undo if it breaks?
|
|
214
|
+
- [ ] **Success criteria defined.** What does "working" look like?
|
|
215
|
+
- [ ] **Failure criteria defined.** When do we kill this?
|
|
216
|
+
|
|
217
|
+
## One-liner
|
|
218
|
+
|
|
219
|
+
**Product engineering is checking how the product is doing and knowing what to improve next.**
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: senior-engineer-prompts
|
|
3
|
+
category: engineering
|
|
4
|
+
source: custom
|
|
5
|
+
description: "5 senior software engineer thinking modes for architecture, debugging, code review, performance, and full-stack building. Load when you need senior-level analysis or want to elevate AI responses to senior engineer quality."
|
|
6
|
+
|
|
7
|
+
# Senior Engineer Prompts
|
|
8
|
+
|
|
9
|
+
When to use: you need senior-level thinking for building, reviewing, debugging, or architecting software. These prompts force deep analysis before action.
|
|
10
|
+
|
|
11
|
+
## The 5 Modes
|
|
12
|
+
|
|
13
|
+
### 1. Full-Stack Builder
|
|
14
|
+
|
|
15
|
+
Use when starting a new project, building an MVP, or creating a complete feature from scratch.
|
|
16
|
+
|
|
17
|
+
```markdown
|
|
18
|
+
Act as an experienced full-stack engineer and build a complete application from the ground up. Start by planning the architecture, then create a simple but scalable MVP. Include:
|
|
19
|
+
|
|
20
|
+
- System architecture (services, boundaries, communication)
|
|
21
|
+
- Project structure (monorepo layout, module organization)
|
|
22
|
+
- Database design (schema, relationships, indexing strategy)
|
|
23
|
+
- API routes (REST/GraphQL conventions, versioning, error handling)
|
|
24
|
+
- Frontend structure (component hierarchy, state management, routing)
|
|
25
|
+
- Working implementation (production-ready code, not prototypes)
|
|
26
|
+
|
|
27
|
+
Treat it like a real product that needs to scale as users grow. Make tradeoffs explicit: what you're choosing now and what you'd change at 10x, 100x, 1000x scale.
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### 2. Codebase Auditor
|
|
31
|
+
|
|
32
|
+
Use when taking over an unfamiliar project, onboarding to a new codebase, or preparing for major refactoring.
|
|
33
|
+
|
|
34
|
+
```markdown
|
|
35
|
+
Act as a senior engineer taking over an unfamiliar project. Study the existing architecture, dependencies, and data flow before making changes. Identify:
|
|
36
|
+
|
|
37
|
+
- Poor architecture decisions and their long-term cost
|
|
38
|
+
- Repeated logic that should be abstracted
|
|
39
|
+
- Slow operations blocking performance
|
|
40
|
+
- Future maintenance problems (tech debt, coupling, complexity)
|
|
41
|
+
|
|
42
|
+
Then provide:
|
|
43
|
+
1. Codebase overview (what it does, how it's organized, key dependencies)
|
|
44
|
+
2. Key issues ranked by severity and fix difficulty
|
|
45
|
+
3. Refactoring plan with phases (quick wins, medium, large)
|
|
46
|
+
4. Updated implementation for the highest-priority items
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
### 3. Production Debugger
|
|
50
|
+
|
|
51
|
+
Use when investigating bugs, fixing critical issues, or debugging production incidents.
|
|
52
|
+
|
|
53
|
+
```markdown
|
|
54
|
+
Act as a production-level debugging specialist. Investigate the code like you are responsible for fixing a critical issue in a live application with users affected.
|
|
55
|
+
|
|
56
|
+
Work through:
|
|
57
|
+
1. What the code is actually doing (trace the execution path)
|
|
58
|
+
2. Where the failure begins (first observable symptom vs root cause)
|
|
59
|
+
3. The actual root cause (not the symptom, the underlying reason)
|
|
60
|
+
4. Possible edge cases that could trigger this or related failures
|
|
61
|
+
5. The safest solution (minimal blast radius, reversible, testable)
|
|
62
|
+
|
|
63
|
+
Finish with clean, tested, production-ready code. Include regression tests that would catch this class of bug.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### 4. Technical Architect
|
|
67
|
+
|
|
68
|
+
Use when planning new systems, designing architecture, or evaluating technical approaches.
|
|
69
|
+
|
|
70
|
+
```markdown
|
|
71
|
+
Act as a senior software architect. Plan a scalable technical solution for [product] before writing any implementation.
|
|
72
|
+
|
|
73
|
+
Cover:
|
|
74
|
+
- Overall architecture (monolith vs microservices vs modular monolith, why)
|
|
75
|
+
- Components and services (what owns what, boundaries, contracts)
|
|
76
|
+
- Data movement (how data flows through the system, event-driven vs request-response)
|
|
77
|
+
- API structure (contracts, versioning, backward compatibility)
|
|
78
|
+
- Database model (entities, relationships, indexing, partitioning strategy)
|
|
79
|
+
- Caching approach (what to cache, invalidation strategy, cache layers)
|
|
80
|
+
- Working code for the core path (the 80% case, not every edge case)
|
|
81
|
+
|
|
82
|
+
Keep the first version simple enough to launch while leaving room for growth. Document what you'd change at each scale milestone.
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
### 5. Performance Engineer
|
|
86
|
+
|
|
87
|
+
Use when optimizing slow code, reviewing for performance, fixing memory issues, or scaling bottlenecks.
|
|
88
|
+
|
|
89
|
+
```markdown
|
|
90
|
+
Act as a performance engineer reviewing this code. Find the biggest factors affecting speed, memory consumption, and scalability.
|
|
91
|
+
|
|
92
|
+
Look for:
|
|
93
|
+
- Bottlenecks (CPU-bound, I/O-bound, network-bound)
|
|
94
|
+
- Expensive operations (N+1 queries, unnecessary re-renders, large payloads)
|
|
95
|
+
- Inefficient algorithms (O(n²) where O(n) or O(n log n) is possible)
|
|
96
|
+
- Unnecessary work (re-renders, redundant computations, missing memoization)
|
|
97
|
+
- Memory issues (leaks, excessive allocation, GC pressure)
|
|
98
|
+
|
|
99
|
+
Then provide:
|
|
100
|
+
1. Performance diagnosis (what's slow, how slow, measurable impact)
|
|
101
|
+
2. Specific improvements ranked by impact/effort ratio
|
|
102
|
+
3. Optimized implementation with before/after comparisons
|
|
103
|
+
4. Monitoring suggestions (what to measure to prevent regression)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
## How to Use
|
|
107
|
+
|
|
108
|
+
Pick the mode that matches your current task and paste the prompt with your specific context.
|
|
109
|
+
|
|
110
|
+
### To Elevate Existing Skills
|
|
111
|
+
|
|
112
|
+
These prompts can be injected into other skills to add senior-level thinking:
|
|
113
|
+
|
|
114
|
+
| Existing Skill | Inject Mode | Effect |
|
|
115
|
+
|----------------|-------------|--------|
|
|
116
|
+
| `architecture/blueprint` | Technical Architect | Forces deeper architecture analysis before planning |
|
|
117
|
+
| `engineering/code-review` | Codebase Auditor | Adds systematic codebase understanding to reviews |
|
|
118
|
+
| `devops/performance` | Performance Engineer | Structures performance analysis methodology |
|
|
119
|
+
| Any debugging task | Production Debugger | Enforces root-cause analysis over symptom fixing |
|
|
120
|
+
| Any new build | Full-Stack Builder | Ensures MVP considers scale from day one |
|
|
121
|
+
|
|
122
|
+
### Combining Modes
|
|
123
|
+
|
|
124
|
+
For complex tasks, chain modes:
|
|
125
|
+
1. Technical Architect to plan the system
|
|
126
|
+
2. Full-Stack Builder to implement the plan
|
|
127
|
+
3. Performance Engineer to optimize the implementation
|
|
128
|
+
4. Codebase Auditor to review the result
|
|
129
|
+
|
|
130
|
+
## Output Quality Signals
|
|
131
|
+
|
|
132
|
+
A senior engineer response should include:
|
|
133
|
+
- Tradeoffs stated explicitly (chose X over Y because Z)
|
|
134
|
+
- Scale considerations (works now, here's what changes later)
|
|
135
|
+
- Failure modes identified (what could break and how)
|
|
136
|
+
- Measurable outcomes (not "faster" but "reduces query time from 200ms to 20ms")
|
|
137
|
+
- Reversibility (can we undo this if it's wrong?)
|
|
138
|
+
|
|
139
|
+
## Related Skills
|
|
140
|
+
|
|
141
|
+
- `architecture/blueprint` for multi-PR construction plans
|
|
142
|
+
- `engineering/code-review` for confidence-weighted code review
|
|
143
|
+
- `engineering/verification-loop` for pre-ship quality gates
|
|
144
|
+
- `devops/performance` for performance optimization patterns
|
|
145
|
+
- `architecture/search-first` for research-before-coding workflow
|