From jaan-to
Adds categorized lessons to skill, template, or context LEARN.md files from feedback. Routes by target, auto-detects categories like questions/edge-cases, commits via git.
npx claudepluginhub parhumm/jaan-to --plugin jaan-toThis skill is limited to using the following tools:
> Route feedback to the appropriate LEARN.md file.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Route feedback to the appropriate LEARN.md file.
$JAAN_LEARN_DIR/*.learn.md - Skill lessons$JAAN_CONTEXT_DIR/*.md - Context files and lessons${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocolArguments: $ARGUMENTS
Expected format: "target" "lesson"
$JAAN_TEMPLATES_DIR/name, or $JAAN_CONTEXT_DIR/nameExamples:
/jaan-to:learn-add "pm-prd-write" "Always ask about rollback strategy"/jaan-to:learn-add "$JAAN_CONTEXT_DIR/tech" "All new tables need soft delete"If no input provided, ask for target and lesson.
Read and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md
Override field for this skill: language_learn-add
Extract target and lesson from arguments.
If format is unclear:
Route based on target:
| Target Pattern | LEARN.md Location |
|---|---|
Skill name (e.g., pm-prd-write) | $JAAN_LEARN_DIR/jaan-to-{skill}.learn.md |
System skill (e.g., skill-create) | $JAAN_LEARN_DIR/jaan-to-{skill}.learn.md |
$JAAN_TEMPLATES_DIR/{name} | $JAAN_TEMPLATES_DIR/LEARN.md |
$JAAN_CONTEXT_DIR/{name} | $JAAN_CONTEXT_DIR/LEARN.md |
$JAAN_CONTEXT_DIR/tech | $JAAN_CONTEXT_DIR/tech.md (constraints section) |
$JAAN_CONTEXT_DIR/team | $JAAN_CONTEXT_DIR/team.md (norms section) |
Detect category from lesson keywords:
| Category | Trigger Keywords |
|---|---|
| Better Questions | ask, question, clarify, confirm, "should ask" |
| Edge Cases | edge, special, case, handle, check, "need to handle" |
| Workflow | workflow, process, step, order, "before/after" |
| Common Mistakes | avoid, mistake, wrong, don't, never, "should not" |
If unclear, ask: "Which category? [questions/edge-cases/workflow/mistakes]"
Read the target LEARN.md file if it exists at $JAAN_LEARN_DIR/jaan-to-{name}.learn.md.
If not found, check legacy path $JAAN_LEARN_DIR/jaan-to:{name}.learn.md — if legacy found, rename it to the dash-prefixed path first.
If neither exists, prepare to create with template.
Show preview:
Ready to Add Lesson
**File:** {file path}
**Category:** {category}
**Lesson:** {lesson text}
Preview:
## {Category}
- {existing lessons...}
- {new lesson} <-- NEW
Confirm? [y/n/edit]
Do NOT proceed without explicit approval.
If file exists:
## Better Questions)If file doesn't exist:
${CLAUDE_PLUGIN_ROOT}/skills/{skill-name}/LEARN.md- bullet points), use it as starting point$JAAN_LEARN_DIR/jaan-to-{skill-name}.learn.md# Lessons: {skill-name}
> Last updated: {date}
## Better Questions
- {lesson if category matches}
## Edge Cases
- {lesson if category matches}
## Workflow
- {lesson if category matches}
## Common Mistakes
- {lesson if category matches}
Lesson Added
**File:** {path}
**Category:** {category}
**Lesson:** {lesson}
Ask user:
Commit this lesson? [y/n]
If confirmed:
git add {file_path}git commit -m "learn({skill}): {short lesson summary}"{commit hash}"If declined:
"No target specified. Which skill or context should this lesson apply to?"
"Skill '{target}' not found. Available skills: {list}"
"No lesson provided. What feedback should be remembered?"
"Could not create LEARN.md. Check file permissions."