skills/setup-hud/SKILL.md
Use when you need to install or remove the Team-Shinchan HUD statusline.
npx skillsauth add seokan-jeong/team-shinchan team-shinchan:setup-hudInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
When this skill is invoked, execute immediately.
If $ARGUMENTS contains "remove" -> go to Step 4 (Remove flow).
Otherwise -> continue to Step 2 (Install flow).
node -e "console.log(process.env.CLAUDE_PLUGIN_ROOT || '')"
Capture output as PLUGIN_ROOT.
If PLUGIN_ROOT is empty: Output error: "Cannot detect CLAUDE_PLUGIN_ROOT. Are you running in plugin mode?" STOP.
Set SCRIPT_PATH = PLUGIN_ROOT + '/src/statusline/index.js'
Verify script exists:
node -e "require('fs').accessSync('${CLAUDE_PLUGIN_ROOT}/src/statusline/index.js'); console.log('ok')"
If output is not 'ok': Output error: "statusline script not found at: ${SCRIPT_PATH}" STOP.
node -e "
const fs = require('fs'), path = require('path');
const p = path.join(process.env.HOME || '~', '.claude/settings.json');
let s = {};
try { s = JSON.parse(fs.readFileSync(p, 'utf-8')); } catch(e) {}
console.log(JSON.stringify({ exists: !!s.statusLine, current: s.statusLine || null }));
"
If the output shows "exists": true:
Display the current statusLine config to the user.
Ask: "A statusLine is already configured. Overwrite? (yes/no)"
If user says no: output "Cancelled. Existing statusLine unchanged." STOP.
node -e "
const fs = require('fs'), path = require('path');
const pluginRoot = process.env.CLAUDE_PLUGIN_ROOT;
const scriptPath = path.join(pluginRoot, 'src/statusline/index.js');
const settingsPath = path.join(process.env.HOME, '.claude/settings.json');
let settings = {};
try { settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8')); } catch(e) {}
settings.statusLine = {
type: 'command',
command: 'node \"' + scriptPath + '\"',
padding: 0
};
fs.mkdirSync(path.dirname(settingsPath), { recursive: true });
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
console.log('ok:' + scriptPath);
"
Output:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HUD installed!
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Script: {SCRIPT_PATH}
Settings: ~/.claude/settings.json
The HUD will appear on the NEXT assistant message.
If you update the plugin, run /team-shinchan:setup-hud again to refresh the path.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
node -e "
const fs = require('fs'), path = require('path');
const p = path.join(process.env.HOME || '~', '.claude/settings.json');
let s = {};
try { s = JSON.parse(fs.readFileSync(p, 'utf-8')); } catch(e) {}
console.log(JSON.stringify({ exists: !!s.statusLine, current: s.statusLine || null }));
"
If "exists": false: output "No statusLine configured." STOP.
If the command field in the current statusLine does NOT contain src/statusline/index.js:
Output: "Existing statusLine is not from Team-Shinchan. Refusing to remove."
STOP.
node -e "
const fs = require('fs'), path = require('path');
const settingsPath = path.join(process.env.HOME, '.claude/settings.json');
let settings = {};
try { settings = JSON.parse(fs.readFileSync(settingsPath, 'utf-8')); } catch(e) {}
delete settings.statusLine;
fs.writeFileSync(settingsPath, JSON.stringify(settings, null, 2));
console.log('ok');
"
Output: "HUD removed. StatusLine configuration cleared."
development
Deterministic adversarial code review for high-stakes scope — independent per-dimension review, a non-skippable per-finding refutation, a completeness critic, and a schema-validated rubric judge. Opt-in main-loop Workflow tier.
data-ai
Deterministic loop-until-done for high-stakes long-running tasks — a worker/verifier loop the script bounds by iteration cap, token budget, and stagnation, closed by an Action-Kamen gate. Opt-in main-loop Workflow tier.
testing
Deterministic adversarial debate for high-stakes or irreversible decisions — mandatory refutation plus a scored judge panel. Opt-in main-loop Workflow tier.
development
Deterministic competitive code tournament — N builders independently solve one task and return patches, an Action-Kamen judge scores them head-to-head, the winner is picked by score and applied. Opt-in main-loop Workflow tier.