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.
Synchronizes the claudeResources object in packages/backend/src/claude-runner.ts with the actual files in the .claude folder.
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 |
Scan .claude folder to discover all resources:
# 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
Parse existing claudeResources in packages/backend/src/claude-runner.ts
Generate camelCase key from resource name:
complex-task-planner -> complexTaskPlannercreate_plan -> createPlanweb-search-researcher -> webSearchResearcherDetermine stopper based on resource purpose:
DEFAULT_STOPPERUpdate claudeResources object in claude-runner.ts:
function toCamelCase(name: string): string {
return name
.replace(/[-_](.)/g, (_, c) => c.toUpperCase())
.replace(/^(.)/, (c) => c.toLowerCase());
}
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
},
After syncing, verify:
.claude/{skills,agents,commands} have corresponding entriespnpm --filter @haflow/backend buildSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer