본문으로 건너뛰기
cccskills
무료GitHub에 공개

tmux-layout

Use this skill when the operator wants a prepared tmux visualization layout for the session's side-channels (STATE.md tail, CI-watch, events.jsonl tail). Renders a 4-pane default layout or debug layout. Read-only side-channel observability — the coordinator chat stays in the operator's original terminal. Trigger phrases: "tmux layout", "split panes for ci watch", "visualize session side-channels", "show me state-md tail and ci".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator스타 52(GitHub 52 + cccskills 0)
연동 도구GitLab

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md7.3 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

tmux-layout — Operator-Side Visualization Substrate

Status: PROPOSED per ADR-0007 (docs/adr/0007-tmux-visualization-substrate.md). Opt-in skill — NOT default. Project-instruction file resolution: this is CLAUDE.md on Claude Code / Cursor IDE; the equivalent on Codex CLI is AGENTS.md. See skills/_shared/instruction-file-resolution.md.

Purpose

Render a prepared tmux layout for operator-side observability of the session's asynchronous side-channels — STATE.md updates, CI status, events.jsonl wave/gate transitions. NOT a coordinator chat surface, NOT a wave-agent host. The coordinator chat remains in the operator's original terminal, period (per AUQ-001 in .claude/rules/ask-via-tool.md).

When to Use

  • During a long deep-session when you want CI status visible alongside Quality-Gate output without polling glab ci status manually.
  • During /debug Phase 2 hypothesis testing (use --layout debug).
  • Anywhere tail -F .claude/STATE.md + a CI watcher would speed up your loop.

When NOT to Use

  • For wave-agent visualization — wave agents are in-process Agent() calls; no PID, no TTY, no pane to attach.
  • For autopilot multi-story panes — autopilot.jsonl currently shows 11 entries / 8 dry-runs; below the value threshold for a pane-per-story UI.
  • As your coordinator chat surface — that stays in the terminal where you invoked /tmux-layout.

Usage

/tmux-layout                        # default layout (4 panes)
/tmux-layout --layout debug         # debug layout (4 panes, /debug companion)
/tmux-layout --json                 # machine-readable output (no attach)
/tmux-layout --session-name my-ws   # custom tmux session name
/tmux-layout --force                # replace existing session (PSA-003 escape hatch)
/tmux-layout --with-status-pane     # add a 5th pane tailing agent-status telemetry (#565)
/tmux-layout --help                 # full CLI usage

The skill prints a one-line tmux command. Paste it into a SECOND terminal (do not run it where /tmux-layout was invoked). That second terminal becomes the layout. Your original terminal (the coordinator chat) stays where it is.

Default Layout (4 panes; 5 with --with-status-pane)

PaneContentCommand
1Shell (operator scratch — NOT claude)bash (interactive)
2STATE.md tailtail -F <state-dir>/STATE.md
3CI watch (poll-loop wrapper)while true; do clear; glab ci status -R <spec> --output json | jq -r '.jobs[] | ...'; sleep 15; done
4events.jsonl wave/gate filtertail -F .orchestrator/metrics/events.jsonl | jq --unbuffered 'select(.event | test("wave|gate|spiral"))'
5agent-status telemetry (#565, only with --with-status-pane)while true; do clear; node --input-type=module -e '...readCurrentStatus({repoRoot:"<own lock root>"})...'; sleep 2; done — the root holding this session's own lock, resolved once when the layout is rendered (resolveOwnLockRootFor, #1730); none found → process.cwd()

Pane 5 renders through readCurrentStatus() (scripts/lib/agent-status.mjs), never the cache file directly (#1342): its header line agent-status · source=<live-map|rebuilt-log|stale-cache|absent> · at=<ISO|n/a> says WHAT is on screen, in four states — live-map = every shown record came from the current-map cache and the cache was VERIFIED against the ledger, rebuilt-log = at least one record was taken from the append-only agent-status.jsonl because the cache was behind (or unreadable) for that agent, stale-cache = no ledger to check the cache against, absent = nothing on disk yet (no ledger, no cache), which stays unmarked because a fresh repo is not a degradation — plus a leading ⚠ and the words STALE / DEGRADED: <reasons> in TEXT whenever the view is not verified live. The render command is exported as buildStatusPaneRenderCommand({ repoRoot }) so it can be executed once (outside the poll loop) in tests; without repoRoot it reads its own cwd.

<state-dir> is resolved via resolveStateDir() from scripts/lib/platform.mjs (.claude/, .codex/, or .cursor/). Pane 3 command is vcs-aware (glab for gitlab, gh pr checks for github, informational echo fallback when no CLI).

Debug Layout (4 panes — --layout debug, depends-on #562)

PaneContentCommand
1Shell (operator scratch)bash (interactive)
2Hypothesis-test runnernpm test -- --watch <scope> (or per-skill-config)
3Debug-artifact tailtail -F .orchestrator/debug/*.md
4Diff-watchwatch -n 2 'git diff --stat | head -30'

Architecture

Three sibling modules under scripts/lib/tmux-layout/:

  • layouts.mjs — renderDefaultLayout(), renderDebugLayout(), detectVcsCommand().
  • vcs-detector.mjs — detectVcsCommand({config, projectRoot}) returns {bin, args, fallback, blocking} per vcs key.
  • tmux-shell.mjs — detectTmuxVersion(), session-collision policy helpers.

Entry point: scripts/tmux-layout.mjs (parseArgs from node:util, dispatcher to layout functions).

PSA-003 Compliance

Session-collision policy: refuse + --force. The skill NEVER kills, overwrites, or modifies a tmux session it did not create unless the operator passes --force explicitly. See .claude/rules/parallel-sessions.md § PSA-003.

AUQ-001 Compliance

The coordinator chat (where AskUserQuestion fires) stays in the operator's ORIGINAL terminal. Pane 1 of the tmux layout is intentionally a scratch shell, NOT a new claude session — there is no second AUQ surface, no decision-authority split. See .claude/rules/ask-via-tool.md § AUQ-001.

Telemetry & Promotion Gate (#563)

This skill emits structured events to .orchestrator/metrics/events.jsonl:

  • tmux-layout.invoked
  • tmux-layout.degraded (tmux missing, version too old, session collision without --force, etc.)
  • tmux-layout.completed (when the user closes the tmux session)

Promotion criteria from opt-in skill to default-recommended in session-start banner: invocation count ≥ 5 across ≥ 3 distinct deep sessions over ≥ 2 calendar weeks, layout-completion rate ≥ 80%, zero AUQ-001 / PSA-003 regressions. See ADR-0007 § Follow-ups.

Troubleshooting

  • tmux not found → install: brew install tmux (macOS) / apt install tmux (Linux). Minimum tmux ≥ 3.0.
  • Session already exists → use --force (acknowledges PSA-003) or --session-name my-other.
  • CI pane shows nothing → glab or gh not installed, or vcs: not set in ## Session Config. Pane will show a clear fallback message.

See Also

  • docs/adr/0007-tmux-visualization-substrate.md — design rationale.
  • skills/_shared/monitor-patterns.md — comparison: tmux-layout vs Monitor vs /loop.
  • skills/debug/SKILL.md — Phase 2 hypothesis testing (use --layout debug as companion).
  • GitLab #561 #562 #563.

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Use when the user asks to improve architecture, find refactoring opportunities, surface deepening opportunities, consolidate tightly-coupled modules, or make a codebase more testable and AI-navigable. Surfaces shallow modules and hypothetical seams using a precise vocabulary (Module / Interface / Implementation / Depth / Seam / Adapter / Leverage / Locality from LANGUAGE.md).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

autopilot

무료

Use this skill when running an autonomous session-orchestration loop. Chains session-start → session-plan → wave-executor → session-end for N iterations with all 10 kill-switches (SPIRAL, FAILED wave, carryover > 50%, max-hours, max-sessions, resource-overload, token-budget, stall-timeout, sub-threshold confidence, user-abort). Reads Mode-Selector output (Phase B) to decide auto-execute vs. fallback. Writes one autopilot.jsonl record per loop run. Phase C scaffold (issue #277); implementation lives in scripts/lib/autopilot.mjs (Phase C-1 follow-up).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

bootstrap

무료

Use this skill when scaffolding the minimum repository structure required by session-orchestrator. Invoked automatically by the Bootstrap Gate when CLAUDE.md, Session Config, or bootstrap.lock is missing. Also available as /bootstrap for manual invocation. Three intensity tiers: fast (demos/spikes), standard (MVPs), deep (production/team).

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

Use when you have a feature idea but the scope or UX is still ambiguous — runs a lightweight Socratic design dialogue (3-5 AUQ rounds) and writes a spec markdown file. Use BEFORE /plan feature when product intent needs validation; skip to /plan feature when scope is already clear. HARD-GATE prevents any code work until the design is user-approved.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

Use when detecting drift between CLAUDE.md (or AGENTS.md, the Codex CLI alias) / _meta narrative and live repository state. Ten checks: absolute-path resolution, 01-projects/ count claims, issue-reference freshness, session-file existence, command-count sync, session-config-parity (mandatory template keys = error, opt-in gaps = note, unknown local keys = warning), vault-dir-parity (CLAUDE.md vs AGENTS.md), generated-rule-staleness (WARN-only), rule-scoping (paths:/globs: frontmatter defects, dangling rule citations, zero-match globs), and docs-parity (docs/components.md count-claims vs on-disk counts, template-vs-reference config-key parity, stale .claude/metrics/ paths). Full per-check spec in the body table. Invoked as an opt-in session-end phase; mirrors vault-sync's lean JSON+exit-code contract.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

close

무료

End session with verification, commits, and documentation

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

Kanevry/session-orchestrator522026년 10월 26일 업데이트

Kanevry의 스킬 모두 보기

이 스킬의 문제 신고