learn-while-building/SKILL.md
Pedagogical framework for deep learning through project-based development. Use when the user wants to maximize skill acquisition while shipping real products, structure deliberate practice into their workflow, learn new technologies effectively, or balance shipping speed with mastery. Triggers on phrases like "learn while building", "deliberate practice", "learn by doing", "skill acquisition", "learning roadmap", "how to learn X deeply", or requests to structure learning around real projects.
npx skillsauth add abanoub-ashraf/manus-skills-import learn-while-buildingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Framework for transforming project work into deliberate skill acquisition.
The goal is not just shipping—it's shipping while becoming measurably better. Every project should leave you more capable than when you started, with specific skills you can name and demonstrate.
Problem: Pure shipping optimizes for speed, often reusing familiar patterns. Pure learning optimizes for depth, often at the expense of delivery. Neither alone produces expert practitioners.
Solution: Deliberate integration—structuring projects to include targeted learning challenges while maintaining shipping velocity.
Practice that is:
Research shows skill acquisition comes from:
Optimize for the 70% while strategically adding the 20% and 10%.
Before starting any project, explicitly identify:
For each Stretch Skill, define:
Structure the project to include deliberate challenges:
Architecture Decisions: Choose one area to experiment with a new pattern
Implementation Challenges: Pick 2-3 features that stretch capabilities
Quality Gates: Add one new quality practice
Apply the debugging prediction technique:
When debugging, before checking a variable value:
Generalize this to all development:
Wrong predictions are learning opportunities. Right predictions confirm understanding.
Daily (5 min): What did I struggle with today? What's one thing I understand better?
Weekly (15 min):
Project End (30 min):
See references/reflection-templates.md for structured prompts.
Level 1 - Awareness: Know it exists, can recognize it Level 2 - Literacy: Can read and understand code using it Level 3 - Application: Can implement with heavy reference to docs Level 4 - Fluency: Can implement from memory, handle common edge cases Level 5 - Mastery: Can teach it, know tradeoffs, optimize for context
Moving from Level 3 → 4:
Moving from Level 4 → 5:
Maintain a simple skill log:
Skill: [Name]
Current Level: [1-5]
Evidence: [What demonstrates this level]
Next Target: [Specific capability to develop]
Practice Plan: [How upcoming work will develop this]
Don't master one thing before touching another. Interleave related skills:
Interleaving feels slower but produces better long-term retention and transfer.
Revisit learned concepts at increasing intervals:
When learning something new, always ask:
Answering these questions creates deeper memory traces than passive reading.
Instead of re-reading documentation:
Retrieval strengthens memory more than review.
See references/career-learning-principles.md for learn-in-public and writing practices that compound skill growth.
If a project is 100% comfortable, you're not growing. If a project is 100% stretch, you won't ship.
Optimize for Learning When:
Optimize for Shipping When:
For complex new skills:
This separates exploration from production while ensuring you eventually develop mastery.
Symptom: Completing tutorials but unable to build independently Fix: After any tutorial, immediately build something original using only docs
Symptom: Researching the "best" way to learn for weeks Fix: Start building today. Optimize learning process after you have data
Symptom: Projects feel easy, you're very productive, but skills plateau Fix: Deliberately add one unfamiliar element to each project
Symptom: Deep knowledge, empty portfolio Fix: Set shipping deadlines even for learning projects
Symptom: Large portfolio, skills haven't grown in years Fix: Before each project, explicitly name what you'll learn
See references/anti-pattern-diagnosis.md for self-assessment questions.
development
Design principles for building polished, native-feeling SwiftUI apps and widgets. Use this skill when creating or modifying SwiftUI views, iOS widgets (WidgetKit), or any native Apple UI. Ensures proper spacing, typography, colors, and widget implementations that look and feel like quality apps rather than AI-generated slop.
data-ai
Design and implement SwiftUI views, components, and app architecture. Use when creating new SwiftUI views, implementing MVVM/TCA patterns, managing state with @Observable, @State, @Binding, or @Environment, designing navigation flows, or structuring iOS app architecture. Triggers on SwiftUI, view model, state management, navigation, coordinator pattern.
development
Implement, review, or improve SwiftUI animations and transitions. Use when adding implicit or explicit animations with withAnimation, configuring spring animations (.smooth, .snappy, .bouncy), building phase or keyframe animations with PhaseAnimator/KeyframeAnimator, creating hero transitions with matchedGeometryEffect or matchedTransitionSource, adding SF Symbol effects (bounce, pulse, variableColor, breathe, rotate, wiggle), implementing custom Transition or CustomAnimation types, or ensuring animations respect accessibilityReduceMotion.
testing
Audit SwiftUI views for accessibility (iOS + macOS) with patch-ready fixes