Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/laicluse/agent-fieldkit --skill wtf명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
SKILL.md 표시 중
| name | wtf |
| description | Capture /wtf as a one-line friction note for later repair. |
The operator just cussed "wtf" at the session. This is one of the cuss commands:
a capture, not a request to fix anything now. Log it cheap and get back to work. The
constructive pass happens later via /anger-management:repair.
The commands below live in this plugin's bin/ directory. Resolve the loaded
plugin root first; Claude Code exposes ${CLAUDE_PLUGIN_ROOT}, and Codex exposes
the install path through codex plugin list.
Distil what actually set them off into a plain one-line pointer of at most a dozen words. Point at what happened (the thing the agent or workflow did), not at the feeling. Then append it through a quoted heredoc (the quoted delimiter stops the shell touching the text, even if it echoes something hostile):
resolve_anger_plugin_root() {
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ]; then
printf '%s\n' "$CLAUDE_PLUGIN_ROOT"
return 0
fi
if command -v codex >/dev/null 2>&1; then
codex plugin list | awk '$1 == "anger-management@laicluse-agent-fieldkit" { print $NF; found=1; exit } END { exit found ? 0 : 1 }'
return $?
fi
return 1
}
PLUGIN_ROOT="$(resolve_anger_plugin_root)" || { echo "anger-management plugin root not found" >&2; exit 1; }
node "$PLUGIN_ROOT/bin/anger-log" wtf <<'CAPTURE_NOTE'
<pointer>
CAPTURE_NOTE
No clear cause? Log the word alone, do not invent one:
use the same command with </dev/null instead of the heredoc.
Schedule the cooled-down repair so the operator never has to remember it:
resolve_anger_plugin_root() {
if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ]; then
printf '%s\n' "$CLAUDE_PLUGIN_ROOT"
return 0
fi
if command -v codex >/dev/null 2>&1; then
codex plugin list | awk '$1 == "anger-management@laicluse-agent-fieldkit" { print $NF; found=1; exit } END { exit found ? 0 : 1 }'
return $?
fi
return 1
}
PLUGIN_ROOT="$(resolve_anger_plugin_root)" || { echo "anger-management plugin root not found" >&2; exit 1; }
node "$PLUGIN_ROOT/bin/anger-schedule"
Single-flight: it starts a background investigation only if none is pending and there are open captures. Safe to run on every capture.
If your harness has a scheduler (Claude Code: CronList/CronCreate) and no
anger-management check-in job exists yet, schedule a recurring poll so the
diagnosis can surface when it arrives: a modest interval (e.g. */5 * * * *) whose
prompt is: "Read
${LAICLUSE_HOME:-~/.laicluse}/anger-management/findings.md. If it
exists, tell the operator a repair diagnosis is ready and offer
/anger-management:repair, then delete this job. If it is absent, do nothing this
tick." The exact 22m22s timing lives in the background worker; this just polls
cheaply until the diagnosis file appears, then removes itself. No scheduler in
your harness? Skip this step; the diagnosis still surfaces at the next
/anger-management:repair.
Acknowledge briefly in the operator's language and get back to work. This is a capture, not a fix: do not start self-improvement or change scope now, that is what the later repair pass is for.