Sno Station
Sno Station은 AI 에이전트를 하나의 팀으로 묶는 오픈소스 워크스테이션으로, 로컬 머신에서 에이전트 협업을 가능하게 함
긴 에이전트 루프 실행 방법과 Claude Code에서 실행하는 법 agent‑workflows 플러그인·Loop v3 프로토콜·관련 기사 소개
How I run long agent loops, and how to run one on Claude Code: the agent-workflows plugin, the Loop v3 protocol it follows, and the articles behind it.
플러그인Python · JustGitHub @rknightion온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Claude Code plugin and protocol for long-running agent loops: the loop skill, two hooks, five pinned lane agents and the Loop v3 protocol
저장소 README에서 가져옴
README 전체를 불러오는 중입니다.
README 전문 보기 ↗A loop is one long Claude Code session, the root, that works a Backlog.md board in waves: it hands each task to a pinned subagent lane in its own git worktree, reviews and lands what comes back, and stops only when it has written a closeout. This repository is a Claude Code plugin marketplace that packages what makes that work, plus the protocol (Loop v3) the root and its lanes follow.
The write-up is at https://rob-knight.com/loop/ and the rendered protocol is at https://rob-knight.com/reference/.
Everything lives in plugins/agent-workflows/.
skills/loop/: the loop skill (/agent-workflows:loop). It prepares a run: the charter, the
lane rules and the launch file, linted, for you to launch.
agents/: the five lane roles, each with its model and effort pinned:
| Agent | Model / effort | Use |
|---|---|---|
agent-workflows:worker | Sonnet 5.5 / high | one task, proven red then green, handed back as a patch |
agent-workflows:senior | Opus 5.5 / medium | judgement calls, unknown causes, composing a landing batch |
agent-workflows:senior-escalation | Opus 5.5 / xhigh | a task that has already failed review rounds |
agent-workflows:reviewer | Opus 5.5 / high | read-only review, PASS or FAIL with findings |
agent-workflows:scout | Sonnet 5.5 / medium | read-only mapping, sweeps and log reduction |
hooks/hooks.json and scripts/: two root hooks. The Stop hook re-prompts a root that ends its turn
before its closeout exists, up to three times in a row, unless its last line is a PAUSED: line
or a WAITING: ... until <UTC time> line. The PreToolUse hook denies a root's lane dispatch
whose brief does not open with the contract's header line. Both arm only in a session whose
operator message is a loop launch ("You are the root" plus one closeout path), never in
ordinary sessions, and both let the call through on any fault of their own.
The plugin also registers a global SubagentStop lane hook, scripts/lane_return.py. It
requires a nonempty agent_id and an exact agent-workflows:worker, agent-workflows:senior,
agent-workflows:senior-escalation, agent-workflows:reviewer or agent-workflows:scout type.
Root sessions (including --agent), unrelated agents and empty-type forks are no-ops; the
registration matcher alone is not the authority. Plugin-agent frontmatter hooks are not used.
It sends a lane back to repair its return when the lane-return block is missing, malformed or
duplicated, lacks or mistypes a field, names a patch whose sha256 does not match (the reason
names both hashes, or the unreadable path), or reports complete with a nonzero check exit.
Honest partial/blocked returns, read-only null patches and senior compose/board commit SHAs
remain valid. Return fences are limited to 1,800 UTF-16 units and JSON nesting to 32; decoder
failures block rather than fail open. The hook writes no state and repeated stops still
validate, but Claude's native consecutive-stop-block cap (default 8) can end a lane despite
later block requests. No hook inspects lane commands: the lanes' no-push rule lives in the agent
definitions.
bin/loop-lint: the charter, queue and LOOP.md linter. While the plugin is enabled it is on
the Bash tool's PATH, so the skill, the root and the lanes run it as loop-lint.
tools/dsreview/: dsreview, a code reviewer for lanes. It sends a candidate change and its
brief to DeepSeek Flash through Cloudflare AI Gateway, lets the model read the repository through
read-only tools, and prints a PASS or FAIL verdict as JSON. On 59 replayed reviews it caught as
many defects as Opus reviewer lanes (8 of 11 each) with no false blocks, at about $0.05 a review
against about $1.09. It is optional and needs your own gateway: see tools/dsreview/README.md.
protocol/: the contract, the three harness files, the charter and lane templates, the planner
and the board setup guide. See protocol/README.md.
${CLAUDE_PLUGIN_ROOT} in skill text, and loop-lint relies on the plugin bin/
directory being on the Bash tool's PATH.loop-lint.backlog) and a board in the repository you run loops on. The root reads
and updates tasks through it, and loop-lint queue checks every wave against it.just, because the protocol's gate and verification examples are just recipes
(any gate command works), and the GitHub CLI gh for the online LOOP.md checks
(loop-lint loopmd --offline skips them).dsreview (in this plugin, Python 3.12 or later and a Cloudflare AI Gateway with a
DeepSeek key). The lane template asks lanes to run it on each candidate; set it up as its README
says or delete that rule from your LANE.md.LANE.md if you do not use it.Inside Claude Code:
/plugin marketplace add rknightion/agent-workflows
/plugin install agent-workflows@rob-knight
Or from a shell:
claude plugin marketplace add rknightion/agent-workflows
claude plugin install agent-workflows@rob-knight
Start a new session (or run /reload-plugins). claude plugin details agent-workflows should list
one skill, five agents and the hooks.
Set up a Backlog.md board (backlog init) and give it some tasks.
Ignore the run directory: loop files live in codex/ and never get committed.
mkdir -p codex && echo 'codex/' >> .gitignore
Write LOOP.md at the repository root: the facts every run and every lane needs. Keep it under
6 KB and free of dates and loop numbers. A minimal one:
# Loop: my-repo
tier: routine
gate: just check
ci-required: none
grafana-stack: none
## Lane brief
- Build and test with `just check`; it must pass before a candidate is handed back.
- Never edit `migrations/` without a task that names it.
tier is routine or guarded (guarded runs get a security review before anything lands),
gate is the command that proves a change, ci-required names required CI checks or none,
and grafana-stack names a telemetry stack or none. Inside Claude Code, check it with
loop-lint loopmd LOOP.md --offline.
/agent-workflows:loop. The skill reads the planner and the board, asks
you every decision the first wave needs in one round, then writes
codex/charter-<date>-loop1.md, codex/loop1/LANE.md and codex/launch-<date>-loop1.txt,
lints them and gives you the launch file's path.cmd: line (for example
claude --model claude-opus-5-5 --effort medium) and paste the rest of the file as the first
message. That message arms the hooks.codex/closeout-<date>-loop1.md and replies with its
path. For the next run, pass that closeout to the skill: /agent-workflows:loop <closeout path>.The launch file names the contract and the harness file by absolute path inside the installed plugin. Claude Code keeps a previous plugin version on disk for 14 days after an update, so prepare and launch a run in the same sitting.
A charter can point at a Standing file: per-repository grants (live reads, deploy targets) that
carry from run to run. It is optional and none by default: the skill writes codex/standing.md
holding No standing grants. and pins its sha256 in the charter and the launch file. Per-run
grants go in the charter's authority: lines.
agent-workflows-fanout/.~/.local/state/agent-loops/. An external watchdog in the author's setup reads them; nothing in
this repository does, and you can delete them at any time.protocol/loop/ for
reference, but this plugin supplies only the Claude Code hooks and agents.codex/ between machines, the session catalogue that
reports a run's usage, the watchdog and scheduled verification. The protocol mentions some of
them; skip those steps.just check runs the syntax checks and the tests in tests/, which drive the hooks, the launch
template and loop-lint against temporary repositories, and dsreview against a local fake
gateway. claude plugin validate . checks the
manifests.
This repository is build output. It is generated from private source repositories, which stay the source of truth, so each export replaces the previous tree. Issues are welcome. Pull requests are read, and an accepted change is re-applied upstream and arrives here in a later export rather than being merged.
Apache-2.0. See LICENSE.