smithery.ai

sync-claude-resources

Sync the claudeResources registry in claude-runner.ts with actual files in .claude folder. Use when adding, removing, or renaming skills/agents/commands, or when claudeResources may be out of sync with the .claude directory structure.

First seen Apr 24, 2026

Installation

$ npx skills add https://smithery.ai

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery.ai · top by installs.

npx skills add https://smithery.ai

Browse all from smithery.ai

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Declared agents claude-code

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,517 B
  • docs SUMMARY.md 263 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 1 installs

SKILL.md

Sync Claude Resources

Synchronizes the claudeResources object in packages/backend/src/claude-runner.ts with the actual files in the .claude folder.

Resource Structure

The .claude folder contains three resource types:

Type Location Path Pattern
Skills .claude/skills/<name>/SKILL.md @.claude/skills/<name>/SKILL.md
Agents .claude/agents/<name>.md @.claude/agents/<name>.md
Commands .claude/commands/<name>.md @.claude/commands/<name>.md

Sync Process

  1. Scan .claude folder to discover all resources:

```bash # Skills (directories with SKILL.md) find .claude/skills -name "SKILL.md" -type f

# Agents and Commands (direct .md files) ls .claude/agents/.md .claude/commands/.md ```

  1. Parse existing claudeResources in packages/backend/src/claude-runner.ts
  1. Generate camelCase key from resource name:

- complex-task-planner -> complexTaskPlanner - create_plan -> createPlan - web-search-researcher -> webSearchResearcher

  1. Determine stopper based on resource purpose:

- Default: DEFAULT_STOPPER - Planning commands: Custom stopper mentioning "implementation plan" - Research commands: Custom stopper mentioning "codebase research" - Commit/PR commands: Custom stopper mentioning "commit and PR creation"

  1. Update claudeResources object in claude-runner.ts:

- Add missing resources - Remove resources for deleted files - Preserve custom stoppers for existing entries

Key Conversion Function

function toCamelCase(name: string): string {
  return name
    .replace(/[-_](.)/g, (_, c) => c.toUpperCase())
    .replace(/^(.)/, (c) => c.toLowerCase());
}

Output Format

Each resource entry follows this structure:

resourceKey: {
  path: '@.claude/<type>/<name>/SKILL.md', // or <name>.md for agents/commands
  stopper: DEFAULT_STOPPER, // or custom stopper
},

Validation

After syncing, verify:

  1. All files in .claude/{skills,agents,commands} have corresponding entries
  2. No orphan entries exist for deleted files
  3. TypeScript compiles without errors: pnpm --filter @haflow/backend build