Stats
Actions
Tags
From team-shinchan
Runs first-time installation onboarding and health check for the team-shinchan plugin: verifies version, hooks, agents, and validation.
How this skill is triggered — by the user, by Claude, or both
Slash command
/team-shinchan:setupThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**When this skill is invoked, execute immediately.**
When this skill is invoked, execute immediately.
node -e "console.log('v' + JSON.parse(require('fs').readFileSync('${CLAUDE_PLUGIN_ROOT}/.claude-plugin/plugin.json','utf-8')).version)"
node -e "
const fs = require('fs');
const p = '${CLAUDE_PLUGIN_ROOT}/hooks/hooks.json';
try {
const h = JSON.parse(fs.readFileSync(p, 'utf-8'));
const events = Object.keys(h.hooks || {});
const str = JSON.stringify(h);
const cmd = (str.match(/\"type\":\"command\"/g) || []).length;
const pmt = (str.match(/\"type\":\"prompt\"/g) || []).length;
console.log('Events: ' + events.join(', '));
console.log('Command hooks: ' + cmd);
console.log('Prompt hooks: ' + pmt);
console.log('Total: ' + (cmd + pmt));
} catch(e) { console.log('ERROR: ' + e.message); }
"
mkdir -p .shinchan-docs
If .shinchan-docs/ already exists, report existing state:
ls .shinchan-docs/ 2>/dev/null | head -20
cd "${CLAUDE_PLUGIN_ROOT}" && for f in agents/*.md; do
name=$(basename "$f" .md)
mem=$(grep -m1 "^memory:" "$f" 2>/dev/null | awk '{print $2}')
echo " $name: memory=${mem:-none}"
done
cd "${CLAUDE_PLUGIN_ROOT}" && node tests/validate/index.js
Output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Setup Complete!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Version: {version}
Hooks: {N} command + {N} prompt
Agents: 15 total ({N} with memory)
Validation: {PASS/FAIL}
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Ready! Use /team-shinchan:start to begin a task.
npx claudepluginhub seokan-jeong/team-shinchan --plugin team-shinchanGuides creation, editing, and verification of skills for AI coding agents using test-driven development with subagent scenarios. Use when authoring or debugging skills.