kanban-worker-lanes
anchor alias
Kanban 노동자 lanes
worker lane는 kanban 파견자가 작업을 할 수있는 프로세스의 클래스입니다. 각 차선에는 정체성(스퀘어 문자열), 스파네 메커니즘, 그리고 한 번 스파네드 작업을 수행해야 하는 계약이 있습니다.
이 페이지는 계약입니다. 그것은 2명의 청중을 위해 존재합니다:
- Operators 보드로 와이어를 선보인다 (그 프로파일이 생성되는 경우, 사용하도록 할당).
- **Plugin / 통합 저자 ** 새로운 차선 모양을 추가하려는 (예: Codex / Claude Code / OpenCode를 감싸는 CLI worker, 컨테이너화 된 검토 노동자, API를 통해 작업을 당하는 비 Hermes 서비스).
노동자 코드를 작성하는 경우 자체 - 실행하는 에이전트 inside 차선 - kanban-worker 스킬은 더 심화적인 세부 사항입니다.
히어로
Hermes Kanban = canonical task lifecycle + audit trail
Worker lane = implementation executor for one assigned card
Reviewer = human or human-proxy that gates "done"
GitHub PR = upstreamable artifact (optional, for code lanes)
헤르메스 Kanban은 라이프 사이클 진실을 소유합니다. - ready → blocked / done / archived. Worker lanes는 작업을 수행하지만 진실을 절대 소유하지; 그들이 kanban_* 도구를 통해 Kanban 커널을 통해 다시 흐름을 (또는, API를 통해 비 해체 외부 노동자를 위해). 작성자는 "code changes written"에서 "task done"로 전환합니다.
lane는 무엇을 제공합니다
kanban worker lane 일하기 위해 통합은 세 가지를 제공해야합니다.
1. 명세 할당 문자열
파견자 일치 task.assignee Hermes 프로필 이름 (기본 레인 모양) 또는 등록된 비 스팸 방지 식별자 ( 플러그인 레인 모양 - 외부 CLI 작업자 레인 추가 아래). 할당자가 해결되지 않는 작업은 ready에서 skipped_nonspawnable 이벤트를 사용하여 보드 연산자를 수정할 수 있습니다. 그들은 arbitrary fallback에 의해 침묵적으로 떨어지지 않습니다.
2. 명세 스파크 메커니즘
헤르메스 프로필 차선의 경우, 파견자의 _default_spawn는 hermes -p <assignee> chat -q <prompt> (또는 hermes shim이 $PATH에 있지 않을 때 해당 모듈 양식을 실행합니다
| 옵션 정보 | 카리스마 |
|---|---|
HERMES_KANBAN_TASK | 작업 id 노동자가 작동 |
HERMES_KANBAN_DB | SQLite 파일에 절대 경로 |
HERMES_KANBAN_BOARD | 널 slug |
HERMES_KANBAN_WORKSPACES_ROOT | 보드의 작업 공간 트리의 뿌리 |
HERMES_KANBAN_WORKSPACE | this 작업의 작업 공간에 절대 경로 |
HERMES_KANBAN_RUN_ID | 현재 런의 ID (Lifecycle gate의 경우) |
HERMES_KANBAN_CLAIM_LOCK | 주장 잠금 문자열 (<host>:<pid>:<uuid>) |
HERMES_PROFILE | worker의 프로필 이름 (kanban_comment 작성자 attribution 용) |
HERMES_TENANT | tenant namespace, 작업이 하나 있다면 |
non-Hermes lanes ( 플러그인을 통해 등록)를 위해 플러그인은 spawn_fn 호출 가능한 자체 task, workspace 및 board를 공급하고 충돌 감지에 대한 옵션 pid를 반환합니다.
3. 명세 Lifecycle 용어
모든 청구는 정확히 하나에서 끝야 합니다:
kanban_complete(summary=..., metadata=...)- 작업이 성공, 상태는done로 플립.kanban_block(reason=...)- 인간의 입력에 대한 작업을 기다립니다,blocked에 상태 플립.kanban_unblock가 실행될 때의 파견자 respawns.- 도구 호출없이 작업자 프로세스 종료. 커널은
crashed(PID 일어난 일에 태어난) 또는gave_up(대략한 파빌어 차단기) 또는timed_out(최대_runtime 초과)를 방출합니다. 이것은 실패 경로입니다; 건강한 노동자는 여기 말하지 않습니다.
kanban 커널은 각 실행을 종결 한 것을 정확히 시행합니다. 자주 묻는 질문.
산출 및 검토 필요 조건
대부분의 코드 변경 작업을 위해, 작업은 진정하지 않습니다 *done * 순간 작업자 마감 - 그것은 인간의 검토자가 필요합니다. kanban 커널은이 구별을 시행하지 않습니다 ("code-changing task"는 모든 코드 작업자에 블록 instead-of-complete를 강제하지 않습니다. 리뷰가 원하지 않는 흐름을 깰 것입니다). 그것은 정상에 층을 두는 컨벤션입니다:
- **전체 대신 블럭 **,
reasonprefixedreview-required:그래서 대쉬보드 /hermes kanban show는 검토를 기다리는 것과 같이 행을 표면화합니다. - Drop은
kanban_comment첫 번째으로 메타데이터를 구조화했습니다.kanban_block는 인간 읽기 쉬운reason만 제공합니다. 댓글은 튼튼한 주석 채널입니다 - 모든 감사 - 관련 필드 (changed_files, test_run, diff_path 또는 PR URL, 결정) 거기에 속한다. - **반응 및 차단을 해제 **, 다음 작업자가
kanban_show의 컨텍스트의 일부로 볼 수있는 다른 코멘트를 통해 변경 사항을 요청합니다.
kanban-worker 스킬은 kanban_complete (truly terminal task — typo fixes, docs changes, research writeups)와 review-required 블록 패턴 모두에 대해 일했습니다.
로그인 및 감사
파견자는 <board-root>/logs/<task_id>.log에 per-task worker stdout/stderr를 작성합니다. 로그는 kanban metadata에서 감사:
task_runs행은log_path, 종료 코드(사용 가능), 요약 및 메타데이터를 수행합니다.task_events행은 각 국가 전환을 수행 (promoted,claimed,heartbeat,completed,blocked,gave_up,crashed, __HERKEN_TOKEN_00007_TOKEN_TOKEN_00008,...,...,....kanban_show모두 반환, 그래서 검토자 (또는 후속 작업자) 작업은 대쉬보드 액세스를 필요로하지 않고 전체 역사를 얻을.
대시보드는 summaries, metadata 블록 및 Exit-status 배지를 사용하여 역사를 실행합니다. CLI 사용자는 hermes kanban tail <task_id>를 실행하여 라이브 또는 hermes kanban runs <task_id>를 과거 시도 목록으로 실행할 수 있습니다.
연락처
Hermes 단면도 차선 (과태)
모든 kanban 노동자는 오늘 걸립니다: 할당자는 프로필 이름, 파견자 스페인 hermes -p <profile>, 노동자 자동로드 kanban-worker 기술 플러스 KANBAN_GUIDANCE 시스템 보호 블록, 사용 kanban_* 도구를 종료. 프로파일을 정의하지 않고 설정.
당신의 함대에 대한 프로필을 만들 때, role와 일치하는 이름을 선택하면 관현관을 경로를 원합니다. 관현악기 (하나있을 때)는 hermes profile list를 통해 프로필 이름을 발견합니다. 시스템의 고정 로스터가 존재하지 않습니다 (kanban-orchestrator 계약의 관현악 측면에 대한 기술.
Orchestrator 프로필 lane
프로파일 레인의 특수화: 오케스트라는 kanban를 포함하는 헤르메스 프로필이지만 terminal / file / code /를 제외합니다. 그 직업은 kanban_create + ...를 통해 아이 작업으로 고도의 목표를 세분화하고 돌아갑니다. 관현악 스킬은 항습 규칙을 인코딩합니다.
외부 CLI worker lane 추가
no-Hermes CLI 도구 (Codex CLI, Claude Code CLI, OpenCode CLI, Local coding-model runner 등) kanban worker lane 으로 not 아직 포장된 path. 디스커버리의 스페인 기능은 플러그 가능 (spawn_fn는 dispatch_once)의 매개 변수이며, 플러그인은 자체 spawn_fn를 등록할 수 있지만 주변의 통합 작업은 CLI의 종료 코드를 kanban_complete / spawn_fn로 감싸고 있습니다. ..., CLI's_00003_TOKEN_00002__, CLI's_00005_.
CLI lane 추가를 고려하면 특정 CLI와 워크플로우를 설명하는 이슈를 엽니다. 위의 계약은 이러한 레인이 만족해야 할 제약입니다. 구현 형태 ( CLI vs generic CLI-runner 플러그인은 구성에 의해 매개 변수화)가 열립니다.
이 역사적인 문제는 #19931이며 닫히지 않은 코드 별 PR #19924입니다. 원래 건축 제안을 설명하지만 주자에 착륙하지 않았습니다.
실패 형태 파견자 손잡이
그래서 lane 저자는이를 단순화 할 필요가 없습니다:
- Stale 클레임 TTL - 주장하고 그 후에 결코 심박수 / 완료 / 블록은
DEFAULT_CLAIM_TTL_SECONDS(15 분 기본) 이후에 다시 인용됩니다 - 그러나 노동자 과정이 실제로 사망 한 경우에만. 살아있는 노동자 (낮은 모델은 1개의 공구 자유로운 LLM 외침에 있는 20+ 분을 소비합니다)는 죽음의 대신에 extended를 얻습니다; 죽은 PID만 reclaimed. - Crashed worker — host-local PID가 vanished가
detect_crashed_workers에 의해 검출되는 worker; 작업 incrementsconsecutive_failures를 호출하고 Breaker trips를 자동 차단할 수 있습니다. - Run-level retry - 작업이 검색될 때 (post-block, post-crash, post-reclaim), 작업자는
expected_run_id매개 변수를 사용하여 자체 실행이 이미 초래된 경우에 실패합니다. - ** per-task max runtime** —
task.max_runtime_secondshard-caps wall-clock time per run, PID liveness에 관계없이. Catches는 진짜로 퇴직한 노동자에게 살아있는 PID 연장이 달리는 것을 그렇지 않으면 지킵니다. - Stranded-task detection -
kanban.stranded_threshold_seconds(기본 30 분)의 청구를 결코 생산하지 않는 가능한 작업은hermes kanban diagnostics에서stranded_in_ready경고로 보여줍니다. Severity는 2x의 임계값과 6x의 임계값을 구합니다. Catches typo'd 할당자, 삭제 된 프로필, 그리고 하나의 신호에서 외부 노동자 풀 — identity-agnostic, no per-board allowlist to curate.
설명
- Kanban overview - 사용자 인터페이스 인트로.
- Kanban tutorial - 대시보드가 열립니다.
kanban-worker- 작업자 프로세스로드 기술.kanban-orchestrator- 관현악 측.