skills/language-learning/SKILL.md
Guides rapid acquisition of new programming languages, frameworks, and paradigms through a structured 5-phase protocol. ALWAYS trigger on "learn Rust", "learn Go", "new language", "pick up a language", "never used X before", "getting started with", "how does X work", "teach me Y", "unfamiliar technology", "language comparison", "evaluate language", "switch to X", "polyglot", "first time using". Use when encountering unfamiliar technology, evaluating language choices, or onboarding to a new stack. Delegates to Polyglot agent for execution.
npx skillsauth add aj-geddes/unicorn-team language-learningInstall 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.
| Phase | Duration | Goal | Key Deliverables | |-------|----------|------|-----------------| | 1. Exploration | 30 min | Run first program | Hello World, build system, basic syntax | | 2. Patterns | 1-2 hr | Map to known equivalents | Comparison table, pattern mapping | | 3. Ecosystem | 1 hr | Set up toolchain | Package manager, test framework, linter, LSP | | 4. Idioms | 2-3 hr | Learn community conventions | Style guide notes, anti-patterns list | | 5. Production | Ongoing | Ship production code | Logging, monitoring, deployment, security |
Target: Zero to implementing small features in < 4 hours.
Run scripts/new-language.sh with the target language to execute interactively.
Complete this comparison for the new language:
| Concept | Python | JavaScript | Go | New Language |
|---------|--------|------------|-----|-------------|
| Variables | x = 5 | let x = 5 | x := 5 | ? |
| Constants | X = 5 | const X = 5 | const X = 5 | ? |
| Functions | def f(): | function f() | func f() | ? |
| Error handling | try/except | try/catch | if err != nil | ? |
| Null safety | None | null/undefined | nil | ? |
| Iteration | for x in list: | list.forEach() | for _, x := range | ? |
| Collections | list, dict | Array, Object | slice, map | ? |
| Types/Classes | class Foo: | class Foo | type Foo struct | ? |
| Imports | import foo | import foo from | import "foo" | ? |
| Testing | pytest | jest | go test | ? |
| Packages | pip | npm | go mod | ? |
For each concept, ask: "What's the equivalent in languages I know?"
identify:
package_manager: cargo | go mod | npm | pip | ...
test_framework: built-in or external, conventions
linter_formatter: clippy/rustfmt | golint/gofmt | eslint/prettier | ...
lsp_server: name, IDE integration
Ecosystem checklist:
Language Analysis
|
+-- Object-Oriented (Java, C#, Python, Ruby)
| Classes, inheritance, polymorphism
|
+-- Functional (Haskell, Elixir, Clojure, Scala)
| First-class functions, immutability
|
+-- Procedural (C, Go, Pascal)
| Functions as primary unit, explicit state
|
+-- Multi-Paradigm (Python, Rust, JavaScript, Kotlin)
| Developer chooses approach
|
+-- Declarative (SQL, HTML, CSS, Terraform)
Describe WHAT, not HOW
For every new language, produce:
# [Language] Quick Reference
## Setup — install, project init, run, test commands
## Basics — variables, functions, control flow, errors
## Patterns — map, filter, reduce, null handling, async
## Ecosystem — package manager, testing, linting, formatting
## Idioms — language-specific best practices
## Anti-Patterns — common mistakes to avoid
## Resources — official docs, style guide, community
See references/learning-templates.md for full template.
knowledge_transfer:
language: "[Name]"
paradigm: "[OOP | FP | Procedural | Multi | Declarative]"
quick_reference: "[path to cheat sheet]"
gotchas:
- "Common mistake 1"
- "Common mistake 2"
production_notes:
- "Deployment consideration"
- "Performance characteristic"
confidence_level: "beginner | intermediate | proficient"
| Metric | Target | |--------|--------| | Hello World running | < 30 min | | Basic patterns mapped | < 90 min | | Ecosystem set up, tests passing | < 3 hr | | First real feature implemented | < 4 hr | | Pattern recognition accuracy | > 85% | | Anti-pattern avoidance (first 10 implementations) | > 80% |
Learn what the task requires. Skip the rest until needed.
| Task | Learn | Skip (for now) | |------|-------|----------------| | REST API in Go | HTTP server, routing, JSON, errors, testing | Generics, reflection, cgo | | CLI tool in Rust | Clap, file I/O, error handling | Unsafe, macros, async | | Data pipeline in Elixir | GenServer, streams, Ecto | NIFs, distributed Erlang |
| Layer | Timeframe | Scope | |-------|-----------|-------| | 1 | Day 1 | Core syntax, basic patterns | | 2 | Week 1 | Ecosystem, idioms, testing | | 3 | Month 1 | Advanced features, performance | | 4 | Month 3+ | Internals, contributing |
Most tasks require Layer 1-2 only.
references/language-comparison-matrices.md - Comparison tables across 10+ languagesreferences/learning-templates.md - Setup scripts, quick reference templatesreferences/phase-guides.md - Detailed guides for each learning phasescripts/new-language.sh - Interactive learning protocol scriptdevelopment
Guides the user through test-first development and test strategy decisions. ALWAYS trigger on "write tests", "TDD", "test coverage", "mock", "test fails", "flaky test", "how to test", "unit test", "integration test", "e2e test", "test structure", "what to test", "test organization", "coverage report", "testing strategy", "arrange act assert". Use when writing new tests, choosing test types, setting up mocking, debugging flaky tests, improving coverage, or designing testable code. Different from qa-security agent which focuses on code review and security audits rather than test authoring.
development
Guides deliberate management of technical debt: recognition, tracking, prioritization, and paydown. ALWAYS trigger on "technical debt", "code shortcut", "pay down debt", "debt tracking", "just for now", "temporary hack", "hardcoded value", "copy-paste code", "missing tests", "TODO cleanup", "refactor plan", "debt priority", "interest cost", "boy scout rule", "code quality backlog". Use when taking a shortcut, discovering suboptimal code, planning debt paydown, or quantifying ongoing cost of compromises.
development
Guides the user through systematic pre-commit quality verification. ALWAYS trigger on "review my code", "check my work", "before commit", "self-review", "quality check", "am I ready to commit", "pre-commit review", "code quality", "verify my changes", "sanity check", "review before merge", "is this ready". Use before any commit, merge, or code review submission.
development
Guides secure development using defense-in-depth and attacker's mindset. ALWAYS trigger on "security review", "vulnerability", "authentication", "authorization", "input validation", "XSS", "SQL injection", "CSRF", "secrets management", "OWASP", "threat model", "security scan", "path traversal", "mass assignment", "privilege escalation", "security headers", "bandit", "dependency audit", "hardening". Use when implementing auth, handling user input, storing secrets, reviewing code for vulnerabilities, or preparing for production deployment. Different from devops skill which covers infrastructure; this covers application-level security patterns.