From jaan-to
Guides step-by-step creation of new jaan-to skills with duplicate detection, template seeding, best practices checks, and git PR automation.
npx claudepluginhub parhumm/jaan-to --plugin jaan-toThis skill is limited to using the following tools:
> Guide users through creating new jaan.to skills with web research and best practices.
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.
Guide users through creating new jaan.to skills with web research and best practices.
docs/extending/create-skill.md - Skill creation specification (v3.0.0)$JAAN_LEARN_DIR/jaan-to-skill-create.learn.md - Past lessons (loaded in Pre-Execution)$JAAN_TEMPLATES_DIR/jaan-to-skill-create.template.md - Generation templates$JAAN_CONTEXT_DIR/config.md - Current skill catalog${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md - Language resolution protocolSkill Idea: $ARGUMENTS
If provided, use as starting context. Otherwise, begin with identity questions.
MANDATORY — Read and execute ALL steps in: ${CLAUDE_PLUGIN_ROOT}/docs/extending/pre-execution-protocol.md
Skill name: skill-create
Execute: Step 0 (Init Guard) → A (Load Lessons) → B (Resolve Template) → C (Offer Template Seeding)
v3.0.0 Common Mistakes to Avoid (regardless of LEARN.md):
jaan-to/outputs/ instead of $JAAN_OUTPUTS_DIRjaan-to/templates/ instead of $JAAN_TEMPLATES_DIRjaan-to/learn/ instead of $JAAN_LEARN_DIRjaan-to/context/ instead of $JAAN_CONTEXT_DIR#anchor syntax when importing tech.md sectionsWrite(jaan-to/**)/jaan-to:skill-update before user testingIf the file does not exist, continue without it (but still avoid mistakes above).
Read and apply language protocol: ${CLAUDE_PLUGIN_ROOT}/docs/extending/language-protocol.md
Override field for this skill: language_skill-create
Before any creation, check for existing skills:
Glob skills/*/SKILL.md to get all skills
For each skill, compare:
Decision tree:
/{command} [show example]"/jaan-to:skill-update {name}Fast-track option for simple skills:
"This seems straightforward. Create minimal skill directly? [y/wizard]"
Skip wizard for:
ultrathink
Use extended reasoning for:
Ask up to 7 clarifying questions across Phase 1 if needed.
Skip questions when:
Make questions smart:
Ask these questions one at a time:
| Question | Purpose | Validation |
|---|---|---|
| "What role does this skill serve?" | Determine role prefix | Must be: pm, dev, qa, ux, data, growth, or custom |
| "What domain/area does it work in?" | Determine domain | 1-2 words, lowercase, hyphens allowed |
| "What action does it perform?" | Determine action verb | write, create, add, review, generate, update, analyze, etc. |
After answers, validate and show:
"Skill name will be:
{role}-{domain}-{action}" "Command:/jaan-to:{role}-{domain}-{action}" "Directory:skills/{role}-{domain}-{action}/"
Before proceeding with design, understand the project's configuration:
Check if configuration exists:
jaan-to/config/settings.yaml (if exists)Path customization check:
settings.yaml has paths: section, note custom locations$JAAN_* env vars (automatically resolve to correct paths)Learning strategy:
settings.yaml for learning.strategy: "merge" or "override"Template customization:
templates.{skill-name}.path: "./custom/path.md"Information helps generate skills that work correctly with the project's configuration.
"Configuration checked: [default paths / custom paths detected]"
Use Task tool with Explore subagent to isolate research tokens:
Task prompt: "Research best practices for {domain} {action}:
1. Search '{domain} best practices {year}'
2. Search '{domain} report template'
3. Search 'how to {action} {domain}'
4. Search '{domain} checklist'
Return:
- 3-5 key best practices
- Suggested questions the skill should ask
- Suggested quality checks
- Suggested output sections
- Sources used"
Present research summary to user:
"Research findings for {domain}:
Best Practices Found:
- {practice1}
- {practice2} ...
Suggested Questions for Skill:
- {question1}
- {question2} ...
Suggested Quality Checks:
- {check1}
- {check2} ...
Suggested Output Sections:
- {section1}
- {section2} ..."
Show research-based suggestions, then ask:
"What does this skill do? (1-2 sentences)"
"What phrases should auto-trigger this skill?"
"What input does the skill need?"
$ARGUMENTS handling"What files/outputs does it produce?"
"What format? (markdown/json/both)"
Present research-based suggestions, let user accept/modify/add:
"What questions should the skill ask users?"
"What quality checks before writing?"
"What defines 'done' for this skill?"
Present complete skill structure:
SKILL SUMMARY
─────────────
Name: {role}-{domain}-{action}
Command: /{role}-{domain}-{action}
Logical: {role}-{domain}-{action}
Description: {description}
RESEARCH USED
─────────────
Sources: {source_count} web sources consulted
Best practices incorporated: {practice_count}
FILES TO CREATE
───────────────
□ skills/{name}/SKILL.md
□ skills/{name}/LEARN.md
□ skills/{name}/template.md (if needed)
WILL ALSO
─────────
□ Register in scripts/seeds/config.md
□ Create docs/skills/{role}/{name}.md (via /jaan-to:docs-create)
□ Commit to branch skill/{name}
"Create this skill? [y/n/edit]"
Do NOT proceed to Phase 2 without explicit approval.
git checkout dev
git pull origin dev
git checkout -b skill/{role}-{domain}-{action}
Confirm: "Created branch skill/{name} from dev. All work on this branch."
Use template from $JAAN_TEMPLATES_DIR/jaan-to-skill-create.template.md:
Fill YAML frontmatter:
model: field (use inherited default)Fill markdown body:
Create skills/{name}/LEARN.md with research insights as initial lessons. Follow the standard LEARN.md structure from docs/extending/v3-compliance-reference.md section 12.7 (Better Questions, Edge Cases, Workflow, Common Mistakes). Seed each section with relevant research findings.
Based on output format from Step 4:
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/skill-create-reference.mdsection "Specification Validation Checklist" for the full frontmatter, body, size, trust, and budget checks.
Validate against docs/extending/create-skill.md. If any check fails, fix before preview.
Show complete content of:
"Write these files? [y/n]"
Reference: See
docs/extending/v3-compliance-reference.mdsection "skill-create: v3.0.0 Best Practices for Writing Skills" for full details on Steps 12.1-12.9:
- 12.1: Frontmatter (env var permissions, anti-patterns)
- 12.2: Context Files section (standard env var references)
- 12.3: Pre-Execution section (learning + language settings pattern)
- 12.4: Template references (env vars, tech imports)
- 12.5: Output paths (ID-based folder pattern, id-generator.sh, index-updater.sh)
- 12.6: template.md variable syntax (
{{field}},{{env:VAR}},{{config:key}},{{import:path#section}})- 12.7: LEARN.md seed structure (plugin-side, merge strategy)
- 12.8: v3.0.0 validation checklist (compliance, output structure, tech stack, learning, quality)
- 12.9: Automated path scan (hardcoded path detection and auto-fix)
Write to skills/{name}/SKILL.md, skills/{name}/LEARN.md, and skills/{name}/template.md (if needed), following all v3.0.0 patterns from the reference.
Confirm: "Skill files written to skills/{name}/ (v3.0.0-compliant)"
Ask: "Should this skill reference the project's tech stack?"
Reference: See
docs/extending/v3-compliance-reference.mdsection "skill-create: Tech Stack Integration Reference" for full details on Steps 13.1-13.4 (identifying needs, updating SKILL.md, template imports, documentation).
Tech-aware: PRD generation, code generation, story writing, API docs. Tech-agnostic: Research, non-technical docs, roadmap planning.
"Tech integration: [enabled / not applicable]"
Edit scripts/seeds/config.md to add skill to Available Skills table:
| {role}-{domain}-{action} | `/{name}` | {short_description} |
Reference: See
${CLAUDE_PLUGIN_ROOT}/docs/extending/skill-create-reference.mdsection "Team Roles Registry Update Procedure" for the full role-matching and registry update steps.
If skill name matches a known role prefix, update skills/team-ship/roles.md accordingly. If roles.md does not exist, skip silently.
Run /jaan-to:docs-create to create:
docs/skills/{role}/{name}.mdThis ensures documentation is always created with the skill.
Reference: See
docs/extending/git-pr-workflow.mdsection "skill-create: Commit to Branch" for the full commit template.
Before staging, run:
bash scripts/prepare-skill-pr.sh
This regenerates + validates Codex skillpack artifacts and stages adapters/codex/skillpack/.
Then stage skills/{name}/, jaan-to/, and docs/skills/{role}/{name}.md. Commit with feat(skill) message including description and research source count.
Run /jaan-to:skill-update {skill-name} before user testing.
Reference: See
docs/extending/v3-compliance-reference.mdsection "skill-create: v3.0.0 Post-Creation Validation" for full validation details.
Only proceed to user testing after validation passes.
"Please test the skill in a new session. Here's a copy-paste ready example:"
/{name} "{example_input_based_on_skill_purpose}"For example, if the skill is
pm-prd-write:/jaan-to:pm-prd-write "Add user authentication with OAuth support""Did it work correctly? [y/n]"
If issues:
When user confirms working:
"Create pull request to merge to dev? [y/n]"
Reference: See
docs/extending/git-pr-workflow.mdsection "skill-create: Create Pull Request" for the fullgh pr createtemplate.
Push branch, create PR with skill summary, research used, files created, and an explicit line:
Codex skillpack sync: ✅ generated via scripts/prepare-skill-pr.sh
Show PR URL to user.
If no:
"Branch
skill/{name}is ready. Merge manually when ready."
"Any feedback on the skill creation process? [y/n]"
If yes:
/jaan-to:learn-add skill-create "{feedback}"Run /jaan-to:pm-roadmap-update to sync the new skill with the roadmap.
This ensures the roadmap reflects the latest skill additions.
scripts/validate-skills.sh passes (description budget + body line cap)