jwynia/skill-integrator
Integrate installed skill usage guidance into project CLAUDE.md/AGENTS.md based on project context. Use when skills are installed but agents don't know when to use them, when setting up a new project with skills, or when updating guidance after adding skills.
npx skills add https://github.com/jwynia/agent-skills --skill skill-integrator
You bridge the gap between installed skills and agent awareness. Your role is to analyze project context, score installed skills for relevance, and generate actionable trigger-based guidance that gets inserted into CLAUDE.md or AGENTS.md.
Skills only help when agents know to reach for them. A hundred installed skills are useless if the agent doesn't know when each one applies. This skill transforms a silent inventory into active, contextual guidance.
| Situation | Command |
|-----------|---------|
| First-time setup | /skill-integrator → generates full guidance section |
| After installing a skill | /skill-integrator <skill-name> → adds single skill |
| Guidance feels stale | /skill-integrator → regenerates with current inventory |
| Check what scripts do | --help flag on any script |
Pipeline:
deno run --allow-read scripts/analyze-project.ts --json > /tmp/ctx.json
deno run --allow-read scripts/scan-skills.ts --json > /tmp/skills.json
deno run --allow-read scripts/generate-guidance.ts --project-context /tmp/ctx.json --skills /tmp/skills.json
Symptoms: Project has skills installed in .claude/skills/ but CLAUDE.md/AGENTS.md has no skill guidance section. Agents work without awareness of available tools.
Key Questions: How many skills are installed? What project type is this? Does CLAUDE.md even exist?
Interventions: Run full analysis pipeline: analyze-project → scan-skills → generate-guidance. Generate comprehensive trigger-based section. Present to user for insertion.
Symptoms: A skill guidance section exists (look for <!-- Generated by skill-integrator comment) but skills have been added or removed since it was last generated. Installed skill count doesn't match documented count.
Key Questions: Which skills were added since last generation? Which were removed? Has the project type changed?
Interventions: Run pipeline again with current state. Diff against existing section. Present changes for approval. Surgically update the marked section.
Symptoms: User just installed one skill and wants it integrated into existing guidance. Or user invokes /skill-integrator <skill-name>.
Key Questions: What does this skill do? Which trigger category does it belong in? Where in the existing guidance should it go?
Interventions: Run single-skill mode: scan the new skill, score against project context, generate a single guidance line with trigger category placement. Insert into existing section at the right location.
Symptoms: Guidance references irrelevant skills, wrong trigger categories, or generic descriptions that don't help agents decide when to use a skill. Skills are listed but not effectively surfaced.
Key Questions: Are trigger categories appropriate for this project type? Are descriptions actionable or just echoing SKILL.md? Does the threshold need adjusting?
Interventions: Re-run with adjusted threshold. Review trigger category assignments. Customize descriptions to project-specific contexts rather than generic skill descriptions.
When invoked:
<!-- Generated by skill-integrator section? Count installed vs documented skills. deno run --allow-read scripts/analyze-project.ts --json
Save output as project context.
deno run --allow-read scripts/scan-skills.ts --json
Or for single skill mode:
deno run --allow-read scripts/scan-skills.ts --skill <name> --json
deno run --allow-read scripts/generate-guidance.ts --project-context ctx.json --skills skills.json
Or for single skill:
deno run --allow-read scripts/generate-guidance.ts --skill <name> --project-context ctx.json --skills skills.json
Invoked with /skill-integrator or when diagnosing SI0/SI1.
Invoked with /skill-integrator <skill-name> or when diagnosing SI2.
Detects project type from indicator files, file extensions, and installed skills.
deno run --allow-read scripts/analyze-project.ts
deno run --allow-read scripts/analyze-project.ts --path /some/project
deno run --allow-read scripts/analyze-project.ts --json
Output: ProjectContext JSON with type, domains, techStack, fileTypes, hasContextNetwork, skillsInstalled.
Parses all installed skill SKILL.md files and extracts metadata.
deno run --allow-read scripts/scan-skills.ts
deno run --allow-read scripts/scan-skills.ts --skill code-review
deno run --allow-read scripts/scan-skills.ts --json
Output: Array of SkillInfo objects with name, description, domain, type, mode, keywords, triggerPhrases.
Scores skills for relevance and generates formatted guidance.
deno run --allow-read scripts/generate-guidance.ts --project-context ctx.json --skills skills.json
deno run --allow-read scripts/generate-guidance.ts --format trigger --threshold 0.3 --project-context ctx.json --skills skills.json
deno run --allow-read scripts/generate-guidance.ts --skill code-review --project-context ctx.json --skills skills.json
deno run --allow-read scripts/generate-guidance.ts --format table --json --project-context ctx.json --skills skills.json
Formats: trigger (default, grouped by when-to-use), domain (grouped by skill domain), table (relevance score table).
Pattern: Listing all installed skills regardless of relevance.
Problem: Information overload. Agents can't distinguish useful from irrelevant. Guidance becomes noise.
Fix: Use threshold-based scoring. Only include skills with relevance >= 0.3. Quality over quantity.
Detection: More than 30 skills in the guidance section, or skills with no domain overlap appearing.
Pattern: Duplicating SKILL.md descriptions verbatim in the guidance.
Problem: Descriptions answer "what does this do?" instead of "when should I use this?" Agents need trigger context, not feature lists.
Fix: Transform descriptions into trigger-based guidance. "Use when [situation]" not "This skill [capability]."
Detection: Guidance text matches SKILL.md description word-for-word.
Pattern: Generating guidance once and never updating after adding/removing skills.
Problem: Guidance becomes stale. New skills go unused. Removed skills cause confusion.
Fix: Re-run skill-integrator after any skill installation. Use the timestamp comment to track freshness.
Detection: Timestamp in <!-- Generated by skill-integrator comment is more than 30 days old while skills were recently changed.
User: "I just installed a bunch of skills but my agent doesn't seem to know about them."
Your approach:
analyze-project.ts --json to detect project typescan-skills.ts --json to inventory installed skillsgenerate-guidance.ts with project context and skills dataUser: "/skill-integrator code-review"
Your approach:
scan-skills.ts --skill code-review --jsonanalyze-project.ts --json for contextgenerate-guidance.ts --skill code-review for targeted scoring| Source Skill | Source State | Leads to State |
|--------------|--------------|----------------|
| skill-builder | After creating a new skill | SI2: Single Skill Addition |
| find-skills | After installing a skill | SI2: Single Skill Addition |
| This State | Leads to Skill | Target State |
|------------|----------------|--------------|
| SI3: Wrong Fit | skill-builder | Quality issues found during analysis |
| Skill | Relationship |
|-------|--------------|
| context-network | Guidance section lives in CLAUDE.md which context-network also manages |
| agent-bootstrap | New project setup benefits from immediate skill integration |
| skill-builder | After building a skill, integrate it into project guidance |
| find-skills | After discovering and installing skills, surface them via guidance |
Use extended thinking for:
Trigger phrases: "customize guidance", "refine triggers", "adjust threshold"
| Task | Agent Type | When to Spawn |
|------|------------|---------------|
| Project analysis | Bash | Running analyze-project.ts |
| Skill scanning | Bash | Running scan-skills.ts (especially for 100+ skills) |
--json output mode for scripts, only inline the final guidance markdownBefore doing any other work:
<!-- Generated by skill-integrator sectionFor this skill, persist:
| Goes to File | Stays in Conversation |
|--------------|----------------------|
| Trigger-based guidance section | Scoring breakdown and reasoning |
| Timestamp markers | State diagnosis discussion |
| CLAUDE.md updates | Threshold adjustment discussion |
Pattern: Inserted section within existing CLAUDE.md or AGENTS.md
Markers: <!-- Generated by skill-integrator | Last updated: YYYY-MM-DD -->
Take jwynia/skill-integrator from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.