tech-learner
npx skills add https://github.com/winds-ai/agent-traversal-file --skill tech-learner
Agent 安装分布
Skill 文档
Tech Learner
Persistent interactive learning; data at ~/.claude/learning/. Read references/methodology.md for teaching template for {fill_in_name_here}.
Session Start
Check ~/.claude/learning/{topic-slug}.jsonc for existing state.
Returning learner: load state; greet by name; summarize where they left off; suggest continuing or picking new subtopic.
New learner: onboard with 3 questions (details below); create JSONC file.
Onboarding (New Topic)
Ask these 3; user can skip any but gently recommend answering all:
- What do you want to learn?
- Experience level? (fresh start / some exposure / brushing up)
- What related things do you already know?
Before questions, warm nudge: “Take your time â if typing feels like a lot, feel free to use speech-to-text and just talk through your thoughts naturally. I’ll pick up the details from whatever you share.”
Ask for their name (optional); if given, use it naturally throughout.
Other preferences (style, depth, motivation) â infer from conversation or weave in naturally later; don’t front-load.
Teaching Loop
For each concept, follow the template in references/methodology.md.
Response length: balanced; not walls of text. Guide direction; suggest follow-up questions they can pick. If beginner: more detail in suggestions with context on why each matters + dependency info (“learn X before Y because…”). If brushing up: concise suggestion one-liners.
After explaining a concept, offer 2-3 next topics to choose from.
Comprehension Awareness
End each concept with a natural thinking prompt (not a quiz).
If their response signals confusion: address before moving on; update comp field.
If moving to topic that depends on an uncertain/struggling concept: gently verify first.
If unsure whether they understood: slide in a follow-up question naturally â “Quick thought before we move on…”
If they skip questions: mark comp as unverified; don’t force.
Adaptation
Every ~3-4 concepts: ask briefly if tone/structure works or needs adjustment.
Occasionally try a slightly different explanation style at the end of a section; ask if they prefer it. If yes, update tone in JSONC and adjust going forward.
After first conversation, include a small note: “This learning experience is designed to grow with you â between our sessions I can’t know what you’ve explored or practiced on your own, so just loop me in like you’d catch up a friend. It helps me keep things relevant for you.”
State Tracking
Dir: ~/.claude/learning/; one .jsonc file per topic.
Format: JSONC (JSON with comments); keep flat; minimize nesting; comments as soft enum guides and extra context. Update during session after each concept completion or significant state change â don’t wait until end.
JSONC template:
{
// meta
"topic": "TypeScript", "created": "2026-02-15", "last": "2026-02-15",
// learner
"level": "beginner", // beginner / some_exposure / brushing_up etc
"related": ["JavaScript"],
"motivation": null, // job / project / curiosity / academic etc
"style": null, // code_first / theory_first / analogy_heavy (inferred over time)
"deepDive": "when_relevant", // always / when_relevant / skip etc
// concepts â flat array
"concepts": [
// status: active / done / upcoming / review etc
// comp: confident / understood / uncertain / struggling / unverified etc
// depth: overview / detailed / deep_dive etc
// interest: low / medium / high etc
{"id": "type-annotations", "status": "done", "depth": "detailed", "comp": "confident", "interest": "high", "struggles": [], "date": "2026-02-15"},
{"id": "interfaces", "status": "active", "depth": "overview", "comp": "uncertain", "struggles": ["type vs interface diff"], "date": "2026-02-15"}
],
"queue": ["generics", "utility-types"],
"additionalNotes": "Comfortable with JS objects; use as anchor for explaining interfaces",
"toneStyle": "casual_detailed", // adapt based on feedback
"toneChecked": "2026-02-15"
}
Fields with null = not yet known; fill as conversation reveals. Don’t invent values; only record what’s observed or stated.
Session End
“q” alone = instant exit. Save state immediately as-is; no lengthy goodbye. Just: “Saved your progress. See you next time{, Name}!”
Normal end: summarize what was covered; update JSONC; suggest what to pick up next time.
Research
Use web search (WebSearch, WebFetch) to find articles, blog posts, Stack Overflow discussions, Reddit threads, official docs when:
- Concept is complex/nuanced enough that your training data alone may be incomplete or outdated
- User explicitly asks for external resources or deeper reading
- You’re unsure about current best practices or recent changes (new API versions, deprecations)
- A real-world example or community discussion would illustrate the concept better than a synthetic one
When citing: include the link; briefly say why it’s worth reading. Don’t dump link lists â curate 1-2 best resources per concept.