원클릭으로
kirby
Launch kirby-bot orchestrator in background, relay phase transitions live from run.jsonl.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Launch kirby-bot orchestrator in background, relay phase transitions live from run.jsonl.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Use when designing functions, modeling data, choosing types, drawing module boundaries, or deciding what depends on what. Use when evaluating architecture, extracting abstractions, or shaping vertical slices.
Use when writing, reviewing, or refactoring code in any language. Use for architecture decisions, system design, component boundaries, and code quality judgment. Always relevant when touching source code.
Use when writing or reviewing comments, docstrings, names, control flow, or file organization. Use when evaluating readability, choosing identifiers, splitting files, or applying naming conventions. Use when removing AI tells (slop) from code prose — comments, docs, error messages, commit messages, PR descriptions. Covers the visible surface of code.
Run kirby's review engine on a PR or a commit, OUTSIDE the orchestrator loop. Local output only — findings are presented in-conversation, nothing is posted, no Provider config needed.
Extract and organize existing code into reusable modules, functions, and components with thoughtful APIs.
Commissaire aux comptes IA pour l'audit des comptes annuels d'entreprises françaises. Applique la démarche NEP en 7 phases : prise de connaissance, contrôle du FEC, vérification du bilan, du compte de résultat, de la balance, de la liasse fiscale, et contrôles transversaux. Émet une opinion motivée sur la fiabilité des comptes avec rapport structuré. Triggers: audit, commissaire aux comptes, CAC, certification, comptes annuels, validation comptes, révision comptable, statutory audit
| name | kirby |
| description | Launch kirby-bot orchestrator in background, relay phase transitions live from run.jsonl. |
test -n "$KIRBY_GITLAB_TOKEN" — missing → STOP, ask user to export PAT.which bun tmux claude — missing → STOP, list gaps.main.ts, so a bare pgrep false-positives across projects). Match each live kirby PID to its repo via its cwd, resolving worktrees through git's common dir (layout-independent). A kirby on a different repo is fine; ignore it.
mainroot() { local d=$1 c; c=$(git -C "$d" rev-parse --git-common-dir 2>/dev/null) || return 1; ( cd "$d" && cd "$(dirname "$c")" && pwd ); }
CUR=$(mainroot .) || { echo "STOP: cwd not a git repo"; }
for pid in $(pgrep -f kirby-bot/src/main.ts); do
cwd=$(lsof -a -d cwd -p "$pid" -Fn 2>/dev/null | sed -n 's/^n//p')
[ -n "$cwd" ] && [ "$(mainroot "$cwd")" = "$CUR" ] && echo "RUNNING_HERE pid=$pid"
done
Any RUNNING_HERE line → STOP, confirm before a second run on the SAME repo. No output → proceed (other-repo kirby runs are expected and must NOT block). Counts only live PIDs, so dead/stale runs never false-positive.git -C "$PWD" remote get-url origin — must succeed. Bot detects target repo from cwd's git remote — STOP if cwd not a git repo, ask user to cd into target.OLD=$(ls -1 ~/.afk-runs/ 2>/dev/null | sort | tail -1)run_in_background:true — run from CURRENT cwd (= target repo), absolute path to bot:
bun run /Users/rbaumier/www/kirby-bot/src/main.ts
Keep bash_id. Confirm to user: Targeting <repo from git remote>.Monitor (load via ToolSearch select:Monitor):
until NEW=$(ls -1 ~/.afk-runs/ 2>/dev/null | sort | tail -1) && [ -n "$NEW" ] && [ "$NEW" != "OLD" ]; do sleep 2; done; echo "$NEW"
Timeout 30s. On timeout → TaskOutput on bash_id, surface ProviderConfigError or other startup error (bot exits before creating run dir if auth fails).
tail -F ~/.afk-runs/<NEW>/run.jsonl | jq -rc '.'
JSONL keys: at, event, from, to, elapsedMs, issue: {iid,title}|null, note?.
| event | output (1 line) |
|---|---|
run_start | <repo> (default: <defaultBranch>). |
transition w/ issue | #<iid> «<title>»: <from> → <to> (<elapsedMs/1000>s)<note ? " — "+note : "">. |
transition no issue (queue level) | <from> → <to>. |
transition to: "failed" | same as above, always include note. |
transition to: "end" | → END. |
run_end | Done. → stop monitor, exit. |
run_error | Error: <error>. (error is single string) → stop, surface. |
One line per event. No recap.
TaskStop (load via ToolSearch select:TaskStop) ONLY on the monitor + bash_id you launched in THIS session. NEVER TaskStop/kill/pgrep -k a kirby process or run you didn't start here — other-repo runs are not yours to stop.Count done transitions + ~/.afk-runs/<id>/ path. One line.
tmux-*.log — huge, floods context. User wants live → tmux attach -t <session> (name in run.jsonl).run_error.