herdr-mesh
herdr-mesh-safe
안전 범위가 지정된 MCP 브리지로, Herdr에서 코딩 에이전트를 조정합니다.
이 저장소는 runchr-works/herdr-mesh의 포크입니다. 업스트림 MCP/Herdr 통합을 유지하면서, 제한 없는 터미널 수명 주기를 의미론적 대기(semantic waits)와 임대 범위(lease-scoped)의 리뷰어 및 작성자로 대체합니다.
현재 패키지 버전: 0.1.0-safe.13.
이 포크가 존재하는 이유
오케스트레이션 에이전트는 작업자를 검사하고, 작업을 보내고, 결과를 기다리고, 완료된 용량을 회수해야 합니다. 그 에이전트에게 임의의 터미널 명령, 원시 키 주입, 또는 범위가 지정되지 않은 팬 삭제 권한을 부여하면 불필요한 권한이 생깁니다.
이 브리지는 다음 불변 조건을 유지하면서 코디네이터가 필요한 작업을 노출합니다:
호출자가 제공한 셸 명령이나 제한 없는 터미널 실행이 없음;
원시
send-keys없음;범위가 지정되지 않은 팬, 탭, 워크스페이스 또는 세션 삭제 없음;
컨트롤러 자격 증명은 브리지 프롬프트 및 수명 주기 요청 직전에 확인됨;
유지된 에이전트에 대한 모든 프롬프트는 모든 수명 주기 및 핸드오프 영수증 저장소가 잠긴 경우에만 허용됨;
결과 수집은 정확히 임대된 팬과 수락된 프롬프트 커서에 바인딩됨;
자동 종료는 유휴/완료 관찰과 출력 캡처 중 변경되지 않은 상태 커서를 요구함;
리뷰어는 함께 생성된 임대를 통해서만 닫을 수 있음;
작성자는 보호되지 않은 브랜치의 연결된 Git 워크트리에서만 시작함;
동시 작성자는 겹치는 경로 범위를 임대할 수 없음;
작성자 해제는 해당 브랜치, 워크트리 및 바이트를 보존함.
브리지는 기술적 안전 경계입니다. GitHub Issue, 사양, 소유권 선언, 커밋, 병합, 마이그레이션 또는 배포가 승인되었는지 여부를 결정하지 않습니다. 코디네이터와 대상 저장소 계약이 여전히 권위를 가집니다.
Related MCP server: AgentConduit
아키텍처
MCP client
│ stdio
▼
herdr-mesh-safe
├── semantic Herdr waits and prompts
├── exclusive controller lease and fence
├── reviewer leases
├── writer lane leases
├── content-free handoff receipts
└── read-only Git preflight
│
▼
Herdr CLI → Herdr socket → managed panes and agents임대 기록은 Git 외부에 모드 0600으로 다음 위치에 저장됩니다:
${HERDR_MESH_STATE_DIR:-~/.local/state/herdr-mesh}/reviewer-leases
${HERDR_MESH_STATE_DIR:-~/.local/state/herdr-mesh}/writer-leases
${HERDR_MESH_STATE_DIR:-~/.local/state/herdr-mesh}/adopted-pane-leases
${HERDR_MESH_STATE_DIR:-~/.local/state/herdr-mesh}/controller-leases
${HERDR_MESH_STATE_DIR:-~/.local/state/herdr-mesh}/handoff-receipts거버넌스 어댑터
작성자 도구는 작업을 수락하고, 소유권을 선언하고, 지속적인 체크포인트를 기록하는 외부 거버넌스 프로세스를 요구합니다. 작성자를 활성화하기 전에 거버넌스 통합 계약을 읽으십시오.
GitHub 컨트롤 플레인 예제는 Issues, GitHub Project, PR 및 콘텐츠 없는 체크포인트를 사용하는 실용적인 어댑터를 보여줍니다. GitHub는 예시일 뿐, 브리지 의존성이 아닙니다. 완전한 도구 입력은 manifest.json에서 확인할 수 있습니다.
선택적 agent-control-skills 번들은 이 거버넌스 경계에 대한 재사용 가능한 코디네이터 지침을 제공합니다. 브리지는 해당 스킬을 설치하거나 그로부터 권한을 상속하지 않습니다.
노출된 도구
컨트롤러 수명 주기
Tool | Purpose |
| 호출자의 관리형 Herdr 팬에서 첫 번째 컨트롤러 세대를 획득합니다. |
| 동일한 에이전트 ID에서 clear 또는 MCP 재시작 후 자격 증명을 교체합니다. |
| 선행자가 없거나, 완료되었거나, 차단된 후 만료된 임대를 이전합니다. |
| 현재 세대가 만료되기 전에 연장합니다. |
| 지속적인 체크포인트 후 세대를 무효화합니다. |
| 펜스 토큰을 노출하지 않고 컨트롤러 ID와 만료를 검사합니다. |
프롬프트, 리뷰어, 작성자 또는 정리 변경 전에 프로젝트 컨트롤러를 획득하거나 재개하십시오. 반환된 임대 ID와 펜스 토큰은 일시적인 기능입니다. 변경 도구에 전달하되, 추적기, 커밋, 로그 또는 핸드오프에 게시하지 마십시오. 읽기 전용 인벤토리 및 대기 도구는 컨트롤러 임대 없이도 사용할 수 있습니다. 기본 임대는 15분 동안 지속되며, 긴 조정 턴 동안 갱신해야 합니다. herdr_bridge_status는 각 예약 잠금을 absent, active, stale 또는 indeterminate로 보고하지만, 소유자 PID, 잠금 ID 또는 컨트롤러 자격 증명은 노출하지 않습니다. 외부 호스트 잠금은 의도적으로 indeterminate입니다. 브리지는 TTL 추측으로 이를 빼앗지 않습니다.
조정
Tool | Purpose |
| 활성 임대 에이전트 하나에 제출하고 지속적인 영수증을 반환합니다. |
| 프롬프트하고 정확히 영수증에 바인딩된 결과를 수집합니다. |
| 최대 8개의 독립적인 프롬프트를 제출하고 모든 결과 또는 첫 번째 결과를 수집합니다. |
| 새 프롬프트를 제출하지 않고 하나 이상의 대기 중인 영수증을 수집합니다. |
| 콘텐츠 없는 영수증 상태를 검사합니다. |
| 정확한 에이전트가 안정된 후 모호한 장벽을 명시적으로 해제합니다. |
| 에이전트와 해당 터미널 출력을 검사합니다. |
| 정확한 Herdr 상태 하나를 기다립니다. |
|
|
| 최대 16개 에이전트 중 첫 번째가 안정될 때까지 기다리고, 지는 대기를 취소합니다. |
| 팬 출력 일치를 기다립니다. |
after_seq는 안정된 대기에서 이전 작업의 터미널 상태가 새 대기를 충족하지 못하게 합니다. 단일 긴 MCP 요청이 반복적인 클라이언트 측 폴링을 대체합니다. SSE 사이드 채널은 필요하지 않습니다. 임대된 에이전트의 경우, 프롬프트 수락은 먼저 정확한 안정된 ID를 요구한 다음 제출 전에 전달 전 커서를 기록합니다. 영수증은 팬, 이름, 에이전트 종류, 작업 디렉터리, 수명 주기 임대 및 커서를 바인딩합니다. 릴레이는 Herdr이 다음 커서에서 정확한 ID가 working 상태로 진입했음을 확인한 후에만 반환됩니다. 결과 영수증은 불투명한 조회 키입니다. 펜스, 프롬프트 또는 출력을 포함하지 않습니다. 해당 영수증이 완료, 실패 또는 명시적으로 포기될 때까지 해당 대상에 대한 이후의 모든 프롬프트는 거부됩니다. 이미 closing 또는 releasing 상태인 임대도 새 프롬프트를 거부합니다.
배치 핸드오프는 프롬프트를 제출하기 전에 동일한 컨트롤러 펜스 및 수명 주기 예약 하에서 모든 대상을 검증합니다. 모든 배치 대상은 하나의 활성 유지 임대를 가져야 합니다. 임대되지 않은 레거시 대상은 거부됩니다. mode=all은 요청 순서대로 결과를 반환합니다. mode=first는 지는 CLI 대기만 취소합니다. 다른 에이전트는 계속 작업하며 pendingReceipts로 반환됩니다. 수집은 해당 토큰을 요구하고, 수락된 working 커서 이후 엄격히 대기하며, 출력 캡처 후 ID와 시퀀스를 다시 읽습니다. 따라서 이후 작업의 출력은 잘못 라벨링되지 않고 거부됩니다. 완료된 영수증은 호출자 충돌 후 정확한 안정된 ID와 커서가 여전히 현재 상태인 동안에만 재생될 수 있습니다. 모호한 전달은 차단하는 reserved 영수증으로 남습니다. 운영자는 herdr_handoff_receipt_abandon, 유효한 컨트롤러 권한, 그리고 정확한 임대 에이전트가 안정되었다는 새로운 관찰을 통해서만 이를 해제할 수 있습니다.
컨트롤러 CLI
herdr-agent-control은 활성 컨트롤러 임대를 이미 보유한 명명된 코디네이터를 위한 로컬 CLI입니다. 실행자는 관리되는 코디네이터 환경에서 AGENT_CONTROL_CONTROLLER_ID를 해당 컨트롤러의 안정적인 ID로 설정해야 합니다. status 및 receipts는 읽기 전용이며 펜스를 로드하지 않습니다. 변경 명령은 현재 Herdr 팬, 에이전트 이름, 종류, 작업 디렉터리 및 Linux 프로세스 계보가 획득/재개 시 기록된 컨트롤러 프로세스와 일치한 후에만 임대를 로드합니다. 펜스는 인수나 출력에 절대 나타나지 않습니다.
herdr-agent-control status
herdr-agent-control receipts
herdr-agent-control ask TARGET -- MESSAGE
herdr-agent-control ask-many --request TARGET=MESSAGE --mode first
herdr-agent-control collect --receipt TOKEN
herdr-agent-control abandon --receipt TOKENask 및 ask-many는 영수증 바인딩 배치 프로토콜을 사용합니다. collect는 프롬프트를 제출하지 않습니다. abandon은 프로세스를 중지하지 않습니다. 정확한 대상이 안정된 것으로 관찰된 후에만 수락 장벽을 해제합니다. 프로세스 바인딩이 도입되기 전에 생성된 컨트롤러 임대는 변경 CLI가 사용할 수 있으려면 먼저 한 번 재개되어야 합니다. CLI는 임의의 터미널 명령을 시작, 종료, 중지, 삭제, 커밋 또는 실행하지 않습니다.
현재 컨트롤러 임대는 의도적으로 관리형 Herdr 팬의 명명된 에이전트에 바인딩됩니다. Herdr 외부의 MCP 클라이언트는 읽기 전용 인벤토리 및 대기 도구를 사용할 수 있지만, 이 버전에서는 조정 권한을 획득하거나 행사할 수 없습니다. 외부 코디네이터를 지원하려면 별도의 인증된 호출자 ID가 필요합니다. 팬을 가장하거나 자체 선언된 ID를 전달해서는 안 됩니다. 프로세스 계보는 협력적인 단일 사용자 호스트 모델에 대한 실패 시 닫힘 호출자 바인딩이며, 동일한 Unix 계정과 모드-0600 상태 파일을 다시 쓸 수 있는 권한을 가진 적대적 프로세스로부터의 격리가 아닙니다.
리뷰어 수명 주기
Tool | Purpose |
| 전용 포커스 없는 리뷰어 탭과 지속적인 임대를 생성합니다. |
| 리뷰어 임대를 나열합니다. |
| ID가 일치하는 유휴/완료 리뷰어 하나를 캡처하고 닫습니다. |
| 한 컨트롤러에 대해 적격한 임대 리뷰어를 드라이런 또는 정리합니다. |
리뷰어 ID에는 컨트롤러, 에이전트 이름 및 종류, 팬, 작업 디렉터리가 포함됩니다. working, blocked, 임대되지 않음 또는 ID가 변경된 팬은 관찰 시 보존됩니다. 새로 생성된 탭은 루트 셸이 에이전트를 수락하기 전에 존재할 수 있습니다. 브리지는 제한된 시간 동안 동일한 임대 팬에서 정확한 agent_pane_busy 준비 조건만 재시도합니다. 다른 시작 오류는 실패 시 닫힙니다. Claude 리뷰어의 경우 시작 매니페스트는 명시적 model 및 effort를 전달할 수 있습니다. 이 값은 -- 뒤에 네이티브 Claude CLI 인수가 됩니다. 다른 에이전트 종류는 검토된 공급자 어댑터가 있을 때까지 명시적 모델 인수를 거부합니다.
작성자 수명 주기
Tool | Purpose |
| 매니페스트 범위의 작성자 레인을 검증하고 예약한 다음 전용 탭에서 에이전트를 시작합니다. |
| 작성자 레인 임대를 나열합니다. |
| 체크포인트를 재검증하고, 출력을 캡처하고, 팬을 해제합니다. |
호스트 검증
Tool | Purpose |
| 저장소 코드를 실행하지 않고 안정된 작성자, Git 상태 및 워크트리 다이제스트를 고정합니다. |
| 선택된 고정 레시피를 실행합니다: |
| 콘텐츠 없는 검증 기록을 나열합니다. |
검증 레시피는 임대된 저장소의 코드입니다. 이들은 고정된 인자와 네트워크 없이 Linux Bubblewrap 샌드박스에서 실행됩니다. 이들은 이미 동일한 호스트 사용자를 가진 에이전트에 대한 보안 경계가 아닙니다. 선택적 웹 부트스트랩은 커밋된 lockfile을 사용하고, 패키지 다운로드를 허용하며, 패키지 수명 주기 스크립트를 비활성화합니다. Python 부트스트랩은 명시적으로 이름이 지정된 requirements.lock 파일에서 실행-로컬 uv 캐시를 워밍업할 수 있습니다. 각 lock은 일반 파일(심볼릭 링크 아님)이어야 하며, 바이트가 허용된 기본 커밋과 일치하고, 전체 의존성 그래프에 SHA-256 해시가 있어야 합니다. 브리지는 기본 파생 복사본을 읽기 전용으로 마운트하고, 레인-로컬 uv 구성을 무시하며, 소스 빌드를 비활성화하고, 네트워크가 가능한 동안 Python을 시작하지 않고 uv pip를 사용합니다. 최종 게이트는 여전히 오프라인 상태로 유지되며 동일한 격리된 캐시를 사용합니다. 호스트 리졸버가 /etc 외부의 심볼릭 링크인 경우, 네트워크 지원 부트스트랩은 해결된 파일만 읽기 전용으로 마운트합니다. 오프라인 게이트는 여전히 별도의 네트워크 네임스페이스를 사용합니다.
레거시 팬 임대
브리지 외부에서 생성된 레거시 에이전트는 코디네이터가 정리 전용 임대를 통해 채택할 때까지 소유되지 않은 상태로 남습니다. 채택은 정확한 명명된 에이전트, 팬, 종류, 작업 디렉터리, 정착된 상태 커서, 지속적 권한, 보호된 팬을 검증합니다. 이는 Git 소유권이나 구현 권한을 부여하지 않습니다.
도구 | 목적 |
| 활성 에이전트를 임대 일치, ID 변형, 또는 미임대로 분류합니다. |
| 정확한 팬이 없음을 확인한 후에만 실패한 임대를 드라이런 또는 종료합니다. |
| 유휴/완료된 레거시 에이전트 하나에 대한 정리 전용 임대를 생성합니다. |
| 정리 전용 임대를 나열합니다. |
| 새 커서와 지속적 체크포인트 후에 채택된 팬 하나를 캡처하고 닫습니다. |
작성자 승인에는 다음이 필요합니다:
지속적 티켓 및 권한 참조와 허용된 SHA-256 다이제스트;
저장소의 기본 체크아웃이 아닌 절대 경로의 연결된 Git 작업 트리;
정확한 브랜치, 기본 커밋, HEAD, Git 상태 다이제스트;
일반적으로 구성된 기본 브랜치인 하나 이상의 보호된 브랜치;
글로브나
..없는 리터럴 저장소-상대 소유 범위;명시적 잠긴 범위;
작업 트리에 기존 Herdr 에이전트 없음;
브랜치, 작업 트리, 중복 소유권 또는 잠긴 범위에 대한 유지된 임대 없음.
예약 및 해제는 원자적 저장소 잠금을 사용합니다. 충돌은 의도적으로 검사가 필요한 유지된 예약을 남길 수 있습니다. 자동 복구를 위해 두 명의 작성자를 허용해서는 안 됩니다.
Linux에서 새 예약 잠금에는 부팅 ID와 프로세스 시작 시간이 포함되므로 재부팅 또는 재사용된 PID는 오래된 것으로 인식됩니다. herdr_bridge_status는 모호한 레거시 또는 외부 호스트 잠금을 indeterminate로 노출합니다. 수동 복구 전에 이러한 잠금을 검사하고 나이로 삭제하지 마십시오.
읽기 전용 토폴로지 및 검색
안전 프로필은 또한 읽기 전용 세션, 팬, 탭, 작업 공간 및 통합 검사를 노출합니다. 원시 수명 주기 도구는 src/server.ts의 허용 목록에 의해 필터링된 상태로 유지됩니다.
요구 사항
Node.js 18 이상의 Linux 또는 macOS; 호스트 검증은 추가로 Linux 및 Bubblewrap이 필요합니다;
Git;
Herdr 설치 및 실행 중;
시작하려는 각 에이전트 종류에 대한 Herdr 통합;
Codex, Claude Code, OpenCode와 같은 MCP 지원 클라이언트.
설치 전에 Herdr를 확인하십시오:
herdr status
herdr integration status누락된 통합을 설치하십시오. 예:
herdr integration install codex
herdr integration install claude소스에서 설치
git clone https://github.com/nativestrider/herdr-mesh-safe.git
cd herdr-mesh-safe
npm ci
npm test
npm run build컴파일된 MCP 진입점은 dist/index.js입니다.
Codex
절대 클론 경로를 사용하여 ~/.codex/config.toml에 다음을 추가하십시오:
[mcp_servers.herdr-mesh]
command = "node"
args = ["/absolute/path/to/herdr-mesh-safe/dist/index.js"]Claude Code
claude mcp add -s user herdr-mesh node /absolute/path/to/herdr-mesh-safe/dist/index.jsOpenCode 또는 다른 MCP 클라이언트
herdr-mesh라는 이름의 로컬 stdio MCP 서버를 다음으로 등록하십시오:
command: node
arguments: /absolute/path/to/herdr-mesh-safe/dist/index.js설치 후 또는 브리지 업데이트 후 MCP 클라이언트를 다시 시작하십시오. 동일한 프로세스 내에서 /clear 또는 새 대화는 이미 실행 중인 MCP 서버를 다시 로드하지 않습니다.
선택적 환경
변수 | 의미 |
|
|
| 지속적 임대 저장소의 상위 디렉터리. |
MCP 프로세스는 관리되는 작업 공간과 동일한 Herdr 소켓에 도달할 수 있어야 합니다. Herdr 내부에서 이미 실행 중인 코디네이터는 Herdr CLI를 사용할 수 있지만, 브리지는 여전히 더 좁은 권한, 이벤트 스타일 대기, 검증된 수명 주기를 제공합니다.
사용 방법
사용자는 일반적으로 도구 이름을 호출하는 대신 코디네이터와 대화합니다.
여러 에이전트 대기
Wait for the first active worker to become idle, done, or blocked. Use each
worker's last state-change sequence so an old idle state is not accepted.코디네이터는 herdr_agent_wait_any를 사용하고 첫 번째 터미널 상태와 표시된 출력을 하나의 결과로 받습니다.
읽기 전용 외부 검토 실행
Create a leased Claude reviewer in a dedicated tab rooted at the ticket worktree, ask it to review the
exact PR head against Standards and Spec, wait for its result, then reclaim the
reviewer pane if it is idle or done.예상 시퀀스는 다음과 같습니다:
herdr_controller_acquire또는herdr_controller_resume컨트롤러 임대/펜스와 함께
herdr_owned_reviewer_start및 Claude의 경우 정확한 모델/노력동일한 컨트롤러 임대/펜스와 함께
herdr_relay및 수신 영수증 유지해당 영수증으로
herdr_collect_handoffs동일한 컨트롤러 임대/펜스와 함께
herdr_owned_reviewer_close
작성자 레인 시작
코디네이터는 먼저 지속적 프로젝트 상태에 대해 허용된 티켓/사양, 의존성, 소유권, 잠금 및 통합 순서를 검증합니다. 그런 다음 정확한 로컬 증거를 수집합니다. 다음을 포함:
git -C /absolute/worktree rev-parse HEAD
git -C /absolute/worktree status --porcelain=v1 --untracked-files=all | sha256sum해당 증거로 herdr_owned_worker_start를 호출합니다. 도구는 독립적으로 Git을 다시 읽고, 소유권을 예약하고, 전용 포커스 없는 탭을 만들고, 루트 팬에서 에이전트를 시작하고, 활성 임대를 반환하기 전에 ID를 확인합니다.
브리지는 파일 시스템 쓰기를 선언된 범위로 제한하지 않습니다. 코디네이터는 여전히 최종 변경 경로와 diff를 임대, 티켓 및 저장소 계약과 비교해야 합니다.
작성자 해제
해제 전에 현재 브랜치, HEAD, 더티 상태 다이제스트, 완료된 증명, 차단자 및 다음 작업을 포함하는 내용 없는 지속적 체크포인트를 기록하십시오. 그런 다음 체크포인트 참조와 다이제스트 및 새로 관찰된 에이전트 상태 커서와 Git 값을 사용하여 herdr_owned_worker_release를 호출하십시오.
해제는 임대된 팬만 닫습니다. 작업 트리를 커밋, 스태시, 리셋, 정리, 삭제 또는 수정하지 않습니다.
Herdr의 현재 pane close 명령은 예상 에이전트 상태 또는 커서를 허용하지 않습니다. 따라서 브리지는 닫기를 요청하기 직전에 ID, 정착 상태, 커서 안정성 및 컨트롤러 권한을 확인하지만, 최종 확인과 Herdr 닫기는 하나의 원자적 작업이 아닙니다. 닫기가 시작된 후 수동 Herdr 프롬프트를 보내거나 해당 팬을 재사용하지 마십시오. 조건부 닫기는 Herdr 자체의 지원이 필요합니다.
의도적 제한
독립 클론은 이 버전에서 작성자 레인으로 허용되지 않습니다. 연결된 Git 작업 트리를 사용하십시오.
임대 전에 생성된 기존 작업자는 자동으로 채택되지 않습니다.
브리지는 GitHub Issue가 권한을 부여한다는 것을 증명할 수 없습니다.
소유권은 승인 및 최종 조정 중에 확인됩니다. 운영 체제 파일 시스템 샌드박스가 아닙니다.
컨트롤러 펜싱 및 커서 검사는 오래된 브리지 작업을 방지하지만, Herdr는 이러한 검사를 프롬프트 전달 또는 팬 닫기와 원자적으로 결합하지 않습니다. 동일한 사용자의 직접 CLI 활동은 이 경계 밖에 있습니다.
인간 대화 및
blocked에이전트는 인간의 결정으로 남습니다.커밋, 푸시, PR, 병합, 배포, 마이그레이션 및 런타임 권한은 이 브리지 외부에 있습니다.
개발
npm ci
npm test
npm run build
npm audit --omit=dev테스트는 설치된 Herdr CLI 인자 계약, 커서 인식 대기, 컨트롤러 펜싱 및 인수, 배치 임대 ID, 샌드박스 리졸버 바인딩, 검토자 임대, 작성자 소유권 충돌, 보호된 브랜치, Git 상태 다이제스트 및 체크포인트 해제를 다룹니다.
빌드된 dist/ 디렉터리는 클라이언트가 TypeScript 도구 체인 없이 브리지를 실행할 수 있도록 커밋됩니다. 먼저 소스를 변경하고 위의 전체 명령을 실행한 다음 소스, 테스트, lockfile 및 생성된 출력을 함께 커밋하십시오.
업스트림 및 라이선스
업스트림 커밋 54adef5의 runchr-works/herdr-mesh를 기반으로 합니다. 업스트림은 일반 Herdr MCP 전송 및 설치 프로그램의 소스로 남아 있습니다. 이 포크는 안전한 허용 목록, 의미론적 대기 및 임대 수명 주기를 소유합니다.
MIT 라이선스에 따라 라이선스가 부여됩니다. LICENSE를 참조하십시오. 업스트림 저작권 고지는 보존됩니다.
Available Tools
44 toolsherdr_agent_getA
Get details for a single agent (state, pane id, workspace, agent session).
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden of behavioral disclosure. It says 'Get details' which suggests a read-only operation, but it does not explicitly state that it has no side effects, requires no special permissions, or what error conditions might occur. There is no disclosure of safety profile or any caveats beyond the basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is front-loaded with the core action and includes a parenthetical list of returned details. It is concise with no filler or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one parameter, no output schema, and no annotations, the description should hint at the return format. It does by listing 'state, pane id, workspace, agent session,' but it does not explain the structure (e.g., object, array) or any possible failure modes. It is adequate for a simple getter but could be more explicit about what the caller receives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the 'target' parameter is well-described in the schema as accepting terminal IDs, agent names, labels, or pane IDs. The tool description itself adds no additional meaning beyond the schema, so it meets the baseline but does not elevate it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get details for a single agent' and lists specific types of details (state, pane id, workspace, agent session). This is a specific verb+resource that distinguishes it from list tools like herdr_agent_list, and the word 'single' disambiguates from batch operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for fetching a single agent's details, but does not explicitly mention alternatives or when not to use it. Sibling tools like herdr_agent_list and herdr_agent_read exist, but no routing guidance is provided. The 'single agent' wording gives some implied context, but there is no explicit when/when-not.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_agent_listA
List all agents herdr currently recognizes — any supported agent type (pi, omp, claude, codex, opencode, hermes, qodercli, …) — with semantic state (idle/working/blocked/done), cwd, pane/tab/workspace ids. Use this first to discover targets for other agent tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full behavioral burden. It clearly conveys the read-only listing behavior and discloses the returned fields: semantic state, cwd, and pane/tab/workspace ids. There is no contradiction, though it does not mention error cases or system-level caveats.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact: two sentences, no filler, with scope and output detail front-loaded. The second sentence earns its place by adding direct usage guidance.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, no-output-schema listing tool, the description fully covers what the tool returns, its scope, and how it should be used. Nothing essential is missing for an agent to select and invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema coverage is 100%, so there is no parameter semantics burden on the description. The baseline for a no-parameter tool is 4, and the description does not need to add parameter-level detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List'), a clear resource ('all agents herdr currently recognizes'), and enumerates supported agent types. It also distinguishes itself from narrower sibling tools by covering any supported agent type rather than a specific owned/controller subset.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use this first to discover targets for other agent tools,' giving clear entry-point guidance. It does not explicitly name alternatives or exclusions, but the context and scope make the intended usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_agent_readA
Read another agent's terminal output to gather context (contextual handoff). Defaults to the visible screen, which is the most reliable source. Keep lines small to avoid flooding context. To find valid targets first, call herdr_agent_list.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | Number of trailing lines to read (default 200). | |
| source | No | Which portion of the pane buffer to read (default: visible). | |
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavior. It clearly states the operation is a read (non-destructive), highlights the most reliable source (visible screen), and warns about context flooding. It does not discuss error handling or rate limits, but for a read tool this is acceptable. It adds meaningful context beyond the schema by explaining the rationale for defaults and the target lookup step.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact (two sentences) and front-loads the primary purpose. Every sentence adds value: stating what it does, the recommended source, a usage caution, and a pointer to find targets. No redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 3 simple parameters and no output schema, the description covers essential context: how to identify the target (via herdr_agent_list), what source to use, and how to control output volume. It doesn't explain return format, but that's not required. It is complete enough for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description enhances parameter meaning by advising on 'lines' (keep small) and explaining the 'source' default preference for visible screen as most reliable. It guides usage without repeating schema details, adding value beyond the structured field descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('read'), resource ('another agent's terminal output'), and purpose ('gather context' for 'contextual handoff'). It clearly distinguishes from sibling tools by specifying 'another agent's' output and the handoff context, making its role unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: 'to gather context (contextual handoff)'. It also gives practical usage tips: defaults to the visible screen as the most reliable source, advises keeping 'lines' small to avoid context flooding, and directs users to call 'herdr_agent_list' to find valid targets. While it doesn't explicitly state when not to use it compared to all siblings, the guidance is sufficient for correct selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_agent_waitA
Block until an agent reaches a given status. Useful to synchronize a handoff (wait for the other agent to become idle/done before sending the next step).
| Name | Required | Description | Default |
|---|---|---|---|
| status | Yes | Status to wait for. | |
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. | |
| timeout_ms | No | Max time to wait in milliseconds. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full responsibility. It reveals the blocking behavior and gives a use case, but does not disclose timeout handling, error conditions, or return values. The schema documents timeout_ms, but the description does not emphasize its importance, leaving gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, concise, and front-loaded with the core purpose. It avoids redundancy and directly states the use case, making it efficient. Slightly more structure could be added, but it is well-suited for quick scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple blocking tool, the description is adequate but omits key behavioral details such as timeout consequences and what happens if the target is not found. It also does not clarify how it differs from sibling wait tools, which is important given the many related options. The lack of an output schema further necessitates a more comprehensive description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, providing descriptions for all parameters (especially status enum and timeout_ms). The description adds minimal extra meaning by mentioning 'idle/done' statuses, which are already in the enum. It does not compensate for any missing schema information, so a baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool blocks until an agent reaches a specified status, specifying the verb 'block' and the resource 'agent'. However, it does not distinguish this from sibling tools like herdr_agent_wait_settled or herdr_agent_wait_any, so it lacks explicit sibling differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear usage context—synchronizing a handoff by waiting for an agent to become idle or done—which helps the agent understand when to apply it. It does not mention alternatives or exclusions, but the context is specific enough to guide usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_agent_wait_anyB
Wait concurrently for the first of several agents to become idle, done, or blocked. Losing waits are cancelled. Per-target after_seq cursors prevent stale terminal states.
| Name | Required | Description | Default |
|---|---|---|---|
| targets | Yes | ||
| read_lines | No | ||
| timeout_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses that losing waits are cancelled and that per-target after_seq cursors prevent stale terminal states, which adds meaningful behavior beyond the name. However, it omits side effects (e.g., whether waits are non-destructive), timeout behavior, and the meaning of 'idle, done, or blocked' in practice. Some behavioral transparency is present but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two dense sentences, each adding unique information: the concurrency and terminal states, the cancellation behavior, and the cursor mechanism. No filler or redundancy. The most important fact (concurrent wait-for-first) is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has three parameters, no output schema, and no annotations, yet the description is minimal. It fails to explain return values, error conditions, timeout semantics, or what the awaited states mean in practice. Critical usage context is missing for a tool that coordinates multiple agents, making successful invocation risky without prior knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'after_seq cursors' but does not explain the after_seq parameter, and it entirely omits read_lines and timeout_ms, leaving their purpose and accepted values unexplained. The target parameter's meaning is only hinted at via 'agents' and the description of target types in the schema, but the description does not reinforce it. The compensation is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('wait') and resource ('several agents') with the condition 'first ... to become idle, done, or blocked'. It clearly distinguishes from sibling tools by the 'concurrently' and 'any' semantics, though it does not explicitly name an alternative. The purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus its siblings (e.g., herdr_agent_wait, herdr_agent_wait_settled). The description explains what it does but not the conditions that would lead an agent to choose it over alternatives. No exclusions or contextual triggers are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_agent_wait_settledB
Wait for an agent to become idle, done, or blocked, then return its state and visible output. Use after_seq to wait for a newer state transition instead of accepting stale terminal state.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. | |
| after_seq | No | ||
| read_lines | No | ||
| timeout_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool waits for specific states and returns state plus visible output, and mentions stale-state handling via after_seq. However, it does not describe timeout behavior, potential blocking duration, error handling, or any side effects. This is adequate but not comprehensive for a waiting tool with timeout_ms available.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences and every word earns its place. The core action and state conditions are front-loaded, and the after_seq note adds critical behavioral context without redundancy. It is concise, well-structured, and immediately scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description hints at return values ('state and visible output') but does not detail the structure. It also omits timeout behavior, even though timeout_ms is a parameter, and does not explain read_lines. Given the complexity of a waiting operation, more context would be needed for a complete picture, but the description covers the essential purpose and a key parameter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 25%, so the description must compensate for the undocumented parameters. It only explains after_seq (useful for avoiding stale states) but provides no explanation for read_lines or timeout_ms. Since two of the four parameters lack semantic context in both schema and description, the description is insufficient.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'wait' and the resource 'agent', and specifies the exact states it waits for (idle, done, or blocked) and what it returns (state and visible output). This distinguishes it from generic wait tools, though it does not explicitly contrast with sibling wait tools like herdr_agent_wait, which is a minor gap.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides guidance on using the after_seq parameter to avoid stale terminal states, which is helpful. However, it does not explicitly state when to prefer this tool over alternatives such as herdr_agent_wait or herdr_wait_output, nor does it mention conditions when this tool should not be used. Usage context is implied but not fully explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_batch_handoffC
Deliver up to eight independent tasks to active leased agents and collect exact receipt-bound results.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| requests | Yes | ||
| read_lines | No | ||
| timeout_ms | No | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry behavioral disclosure, and it does convey several traits: it batches up to eight independent tasks, requires active leased agents, and returns exact receipt-bound results rather than inline output. It omits failure semantics, partial-success behavior, and effects of mode/timeout, so it is adequate but not complete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The single sentence is compact, front-loaded with the action, and contains no fluff. It earns its place, though it is short given the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 7-parameter tool with no annotations and no output schema, this one-liner is not enough. It omits controller lease/fencing requirements, mode semantics, timeouts, read_lines, and result routing, leaving an agent to guess at essential invocation context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds almost no per-parameter meaning. 'Up to eight tasks' hints at requests, but the critical controller_id, controller_lease_id, controller_fence_token, mode, read_lines, and timeout_ms parameters are left entirely unexplained.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear action (deliver and collect) with a specific resource (up to eight independent tasks to active leased agents) and a concrete result (exact receipt-bound results). It is distinctive enough against siblings like herdr_handoff, though it doesn't explicitly name the alternative or scope boundary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied: this is for batch-delivering independent tasks to already leased/active agents and retrieving receipt-bound results. However, there is no explicit when-to-use vs. herdr_handoff, herdr_collect_handoffs, or the wait tools, and no exclusions or prerequisites beyond 'active leased agents.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_bridge_statusA
Report the safety profile, protocol version, and stable capabilities of this bridge. This is read-only and is the startup handshake for coordinators.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It explicitly states 'This is read-only', which is the key behavioral trait. It also implies it is safe to call at startup. However, it doesn't disclose any potential side effects, authentication requirements, or expected output format. For a read-only status tool, this is adequate but not exhaustive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, tightly packed with relevant information. The purpose is stated first, followed by the handshake context. There is no redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the bridge status tool has no parameters and no output schema, the description is sufficient. It specifies exactly what the tool reports (safety profile, protocol version, stable capabilities) and when it should be used (startup handshake). An agent can call it correctly without further information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, so the baseline for parameter semantics is 4. The description adds no parameter information because there are none, which is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Report') and resource ('bridge') with clear details on what is reported: safety profile, protocol version, and stable capabilities. It also identifies itself as a startup handshake, which clearly distinguishes it from sibling tools that deal with workers, panes, controllers, and agents.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It specifies that this is the startup handshake for coordinators, giving clear situational context. It doesn't explicitly list alternatives or when not to use it, but the context is strong enough that an agent would know this is the initial status check for the bridge.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_collect_handoffsC
Collect one to eight pending handoff receipts without submitting another prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | ||
| receipts | Yes | ||
| read_lines | No | ||
| timeout_ms | No | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It says 'collect' but does not explain what happens to the receipts—whether they are removed, acknowledged, returned in the response, or if the operation is idempotent. It also omits any mention of side effects, required permissions, or the meaning of the controller tokens. For a mutation-like operation, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loaded with the core purpose and the count constraint. It is efficiently worded, but given the complexity of the tool (7 parameters), the brevity may be under-specification rather than conciseness. However, it presents the key differentiator ('without submitting another prompt') clearly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 7 parameters, no annotations, and no output schema, the description is profoundly incomplete. It does not explain what a handoff receipt is, what 'collecting' entails, what the response format is, or why controller tokens are required. An agent cannot correctly invoke this tool with full confidence based on the description and schema alone.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, yet the description provides virtually no parameter semantics. It implies the receipts array holds the items to collect (via the 'one to eight' range), but it does not explain the roles of controller_id, controller_lease_id, controller_fence_token, mode, read_lines, or timeout_ms. The description does not compensate for the schema's lack of explanatory text.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the action ('collect') and the target resource ('pending handoff receipts') with a specific count range (one to eight) and a distinguishing nuance: it happens without submitting another prompt. This is clear, but it does not explicitly contrast with sibling tools like herdr_handoff_receipt_list or herdr_batch_handoff, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no explicit guidance on when to use this tool versus its siblings. The phrase 'without submitting another prompt' hints at a context, but it does not name alternatives or conditions that would select this tool over herdr_handoff_receipt_list or herdr_batch_handoff. No exclusions or prerequisites are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_acquireA
Acquire the first exclusive controller lease for the named project from this MCP client's Herdr pane. Returns an ephemeral fence token required by every coordination mutation.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl_seconds | No | ||
| authority_ref | Yes | ||
| controller_id | Yes | ||
| authority_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It usefully reveals that the tool returns an ephemeral fence token and that the lease is exclusive. However, it does not disclose failure conditions, whether acquiring can invalidate an existing lease, TTL behavior, or permission requirements, which are significant for a lease-acquisition operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. It front-loads the action and resource, then immediately adds the most important behavioral detail—the ephemeral fence token. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations, no output schema, and four parameters with zero schema-description coverage, the description is not complete enough. It explains what the tool returns and why it matters, but omits parameter meanings, failure semantics, exclusivity conflicts, and lease lifecycle considerations, leaving an agent to guess at critical invocation details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no explanation of the required parameters. The phrase 'named project' loosely hints at controller_id, but authority_ref and authority_sha256 remain completely unexplained, and ttl_seconds behavior is left entirely to the schema. The description does not compensate for the missing parameter documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Acquire'), a precise resource ('the first exclusive controller lease for the named project'), and a distinguishing trait ('first') that separates it from sibling tools like resume, takeover, renew, and release. It clearly identifies what the tool accomplishes and its return value.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear usage context: this is the initial acquisition of an exclusive controller lease, and the returned fence token is required for every coordination mutation. It does not explicitly enumerate alternatives or when not to use it, but 'first exclusive' strongly implies this is for initial acquisition rather than renewal or takeover.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_listA
List controller lease identities and expiry without exposing fence tokens. This is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the operation is read-only and explicitly notes that fence tokens are not exposed, which is valuable security-relevant behavior. It does not describe output structure or edge cases, but for a simple list operation this is largely sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two short sentences with no filler. It front-loads the action and resource, then adds a concise safety qualifier. Every word earns its place, making it an efficiently structured description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only list tool, the description adequately specifies what is returned (identities and expiry), the safety behavior (no fence tokens), and the read-only nature. It could be slightly more complete by clarifying how 'controller leases' relate to the broader 'lease_inventory' tool, but overall the definition is sufficient for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and an empty input schema, so there are no parameter semantics to document. Per the baseline for zero-parameter tools, a score of 4 is appropriate; the description does not need to compensate for missing parameter information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('List') and a specific resource ('controller lease identities and expiry'), making the tool's function immediately clear. It also distinguishes itself from lease-management siblings by scoping to the controller lease aspect, and the 'without exposing fence tokens' qualifier adds clarity about what is not included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is for retrieving controller lease identity and expiry information, but it does not explicitly state when to prefer this tool over alternatives like herdr_lease_inventory or other controller actions. No exclusions or alternative routing are provided, leaving usage context mostly inferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_releaseB
Release this controller generation after durable checkpointing. The fence becomes invalid immediately; workers and reviewer leases are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | Yes | ||
| checkpoint_ref | Yes | ||
| checkpoint_sha256 | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral disclosure burden. It discloses that the fence becomes invalid immediately and that worker/reviewer leases are preserved, which is valuable. However, it does not mention what happens to the controller state or any prerequisites beyond checkpointing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler. The purpose and key side effects are front-loaded, making it easy to read quickly. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 required parameters, no annotations, no output schema, and zero schema descriptions, this sparse description is inadequate. It fails to explain the parameters, success/failure behavior, or how checkpointing relates to the release. An agent would struggle to invoke this correctly without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate, but it provides no explanation of the five required parameters. While names like controller_id and controller_lease_id are self-explanatory, the roles of checkpoint_ref and checkpoint_sha256 are not clarified, leaving the agent guessing about their format or purpose.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool releases a controller generation after durable checkpointing, with a specific verb and resource. It distinguishes itself from other controller tools (acquire, renew, etc.) by implying a final release operation, though it does not explicitly name siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The phrase 'after durable checkpointing' provides context for when to call, but it does not explicitly state when not to use it or mention alternative controller operations. The agent must infer that this is the terminal release step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_renewC
Renew the active controller lease from its exact Herdr pane and identity.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl_seconds | No | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must carry the full burden of behavioral disclosure. It only mentions renewing a lease without explaining side effects, constraints (e.g., ttl_seconds bounds), failure conditions, or whether it requires the caller to be the current holder. This is minimal and insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence with no wasted words, but it is under-specified rather than concise. It omits essential usage and parameter information, so it is not appropriately sized for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no output schema, and no annotations, this description is grossly incomplete. It lacks parameter semantics, behavioral details, and usage context. An agent cannot correctly invoke this tool based on the provided information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must explain the parameters. It does not define controller_id, controller_lease_id, controller_fence_token, or ttl_seconds. The vague phrase 'exact Herdr pane and identity' does not map to these parameters, leaving the agent without meaning beyond raw property names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states a specific verb ('renew') and resource ('active controller lease'), and hints at the requirement of an exact pane and identity. It distinguishes itself from controller_acquire/release/takeover by its unique verb, but does not explicitly name alternatives or contrast with them. Clear but not fully differentiated from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus sibling tools like controller_resume, controller_takeover, or controller_release. There is no context about the lifecycle of leases or selection criteria. The description only states what the tool does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_resumeC
Resume coordination after clear or MCP restart only from the same named Herdr agent identity. Rotates the lease id and fence token so conversational history is unnecessary.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl_seconds | No | ||
| authority_ref | Yes | ||
| controller_id | Yes | ||
| authority_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does reveal one significant behavior: rotating the lease id and fence token, and states that conversational history is unnecessary. However, it does not mention side effects such as invalidating prior tokens, prerequisites like having an existing lease, or error conditions. This partial disclosure earns a 3.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences, front-loaded with the purpose and condition. Each sentence adds distinct information: the trigger/precondition and the mechanism/benefit. It avoids redundancy but could be slightly more explicit about parameters, though as a standalone it is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters (3 required), no output schema, and no annotations, the description is insufficient. It does not explain parameter meanings, expected return values, failure modes, or any side effects. Even with the context that this is a resume operation, an agent cannot confidently call it without understanding what authority_ref and authority_sha256 are. The description leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, so the description is the only source for parameter meaning. The description mentions 'same named Herdr agent identity' which likely relates to controller_id, but it never explicitly explains controller_id, authority_ref, authority_sha256, or ttl_seconds. There is no mapping between the description and the parameters, leaving the agent without needed semantic information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (resume coordination), the trigger condition (after clear or MCP restart), and a constraint (same named Herdr agent identity). It also mentions the core behavior of rotating lease id and fence token. However, the term 'coordination' is somewhat vague and could be more specific about what exactly is being resumed, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives context about when to use this tool (after clear or MCP restart) and a precondition (same agent identity). However, it does not explicitly contrast it with sibling tools like herdr_controller_acquire or herdr_controller_renew, nor does it state when not to use it. The guidance is implied rather than explicit, so a 3 is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_controller_takeoverA
Transfer an expired controller lease to this Herdr pane only when the previous identity is missing, done, or blocked and the caller supplies the expected predecessor lease plus durable authority.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl_seconds | No | ||
| authority_ref | Yes | ||
| controller_id | Yes | ||
| authority_sha256 | Yes | ||
| expected_predecessor_lease_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden, and it does convey that this is a conditional transfer of an expired lease and that a durable authority plus predecessor lease are required. It does not disclose the side effects on the previous identity/lease, error behavior, or whether the operation is reversible, which matters for a takeover-style mutation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence with the core action and guardrails front-loaded; no filler. The word 'done' is terse and the sentence is long, but it remains economical.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
A takeover operation with five parameters, four required, no annotations, and no output schema needs more lifecycle context: when to prefer it over controller_resume/renew, what response confirms takeover, and what happens to the predecessor lease. The description gives preconditions but leaves these gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description maps expected_predecessor_lease_id ('expected predecessor lease'), controller_id ('expired controller lease'), and the authority parameters ('durable authority'). With 0% schema coverage it still leaves ttl_seconds unexplained and does not clarify the relationship between authority_ref and authority_sha256.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific action ('transfer'), a specific resource ('expired controller lease'), and a target ('this Herdr pane'), then narrows it with explicit conditions ('only when previous identity is missing, done, or blocked'). This makes the tool distinct from typical acquire/renew/release controller operations even without reading the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives an explicit condition of applicability: only when the predecessor identity is missing/done/blocked and the lease has expired. It implies not to use when a healthy/active predecessor exists, but it does not name alternatives such as herdr_controller_resume or herdr_controller_renew.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_handoffC
Prompt one active leased agent and collect the exact receipt-bound settled result.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. | |
| message | Yes | Task/prompt to hand to the agent. | |
| read_lines | No | ||
| timeout_ms | No | ||
| wait_status | No | Deprecated compatibility option; collection returns the first settled state. | |
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure, but it only says it prompts an agent and collects a result. It doesn't disclose whether the operation blocks, how long it waits, what happens on timeout, whether the agent's lease is affected, or what 'receipt-bound settled result' means in practice. This is a significant gap for an 8-parameter tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence, front-loaded with the core action. It wastes no words and is easy to scan. However, it is so brief that it omits critical information, so it earns a 4 rather than 5 for being efficient but not complete.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 8 parameters, 5 required, no output schema, and no annotations, the description is far from sufficient. It doesn't explain the receipt concept, result format, error conditions, or how the 'settled result' is obtained. An agent would lack critical context to call the tool correctly without additional external knowledge.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds no parameter-level meaning. Schema coverage is only 38%, with descriptions only for target, message, and wait_status (deprecated). The controller parameters (controller_id, controller_lease_id, controller_fence_token) are not explained in the schema or the description, so the agent must infer their purpose. The description does not compensate for the low coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Prompt one active leased agent') and outcome ('collect the exact receipt-bound settled result'). It uses a specific verb and resource, and the singular 'one' distinguishes it from batch operations like herdr_batch_handoff. However, it doesn't explicitly contrast with other single-agent tools such as herdr_relay or herdr_agent_wait, so it's clear but not fully differentiating.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. It doesn't mention conditions like 'use for a single agent handoff requiring a receipt-bound result' or exclude batch cases. Siblings like herdr_batch_handoff and herdr_collect_handoffs exist, but the description doesn't point the agent to choose this tool based on any criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_handoff_receipt_abandonC
Explicitly release an outstanding handoff barrier only after its exact leased agent is settled.
| Name | Required | Description | Default |
|---|---|---|---|
| receipt | Yes | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must disclose side effects. 'Release' implies a mutation, but the description does not state what happens to the barrier, whether the action is idempotent, or what occurs if the precondition isn't met. The 'explicitly' modifier suggests caution but adds no concrete behavioral detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence that front-loads the core action. It avoids verbosity, but the brevity comes at the cost of important detail. Still, it is efficiently structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with four required parameters, no annotations, and no output schema, this description is far too sparse. It fails to explain the meaning of the parameters, the intended use adjacent to sibling tools, or the operational effect, making it inadequate for correct invocation by an agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description does not explain any of the four required parameters (receipt, controller_id, controller_lease_id, controller_fence_token). The agent must rely solely on the schema, which only provides types and patterns, leaving semantics completely unaddressed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the action (release) and the resource (an outstanding handoff barrier), and adds a precondition (after its exact leased agent is settled). It distinguishes from listing and creation tools by the verb 'release', though it doesn't explicitly name sibling alternatives.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus the many handoff-related siblings (e.g., herdr_handoff, herdr_handoff_receipt_list). The only usage hint is the precondition 'only after its exact leased agent is settled,' which is a condition rather than guidance about selecting this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_handoff_receipt_listC
List content-free handoff receipts and their collection state.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It implies a read-only operation via 'list' but does not explicitly confirm non-destructive behavior, nor does it explain what 'collection state' entails or whether any side effects occur. The description is too terse to be transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is technically concise, but it is under-specified. The instruction warns that under-specification is not the same as conciseness; here, the brevity sacrifices crucial information, earning a low score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's place among many similar handoff and collection tools, the description offers no context about its role, return format, or expected use cases. There is no output schema, and the description fails to clarify key terms like 'content-free' and 'collection state', making it incomplete for correct agent usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter, controller_id, is optional and undocumented in both the schema and the description. With 0% schema description coverage, the description is expected to compensate, but it does not mention the parameter at all, leaving the agent without any semantic context for this value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb ('List') and a specific resource ('handoff receipts'), and adds the qualifiers 'content-free' and 'collection state', which help distinguish it from other handoff-related tools. However, it does not explicitly name sibling tools or explain what 'content-free' means, so it is not a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus its many siblings such as herdr_handoff, herdr_collect_handoffs, or herdr_handoff_receipt_abandon. The description does not state any conditions, prerequisites, or alternative routing, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_integration_statusA
Show which agent integrations herdr knows about and their install status (pi, omp, claude, codex, opencode, hermes, qodercli, …). Use this to discover what agent types are available in this herdr install.
| Name | Required | Description | Default |
|---|---|---|---|
| outdated_only | No | Only list integrations whose hook/extension is outdated. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. 'Show' implies a read-only, non-destructive operation, and the discovery framing conveys a status-query semantic. However, it doesn't explicitly state it has no side effects or how output is structured, leaving some behavior implicit rather than disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two tight sentences with no filler. The core purpose and the useful example list are front-loaded, followed by a single concise usage directive. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter, optional-parameter status tool with no output schema, the description covers purpose and usage adequately. Return-value structure isn't described, but the absence of an output schema and the straightforward listing semantic make this a minor gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single outdated_only parameter is already documented in the schema as 'Only list integrations whose hook/extension is outdated.' The description adds nothing about parameters, but the schema does the heavy lifting, warranting the baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb (show), resource (agent integrations), and scope (install status), and enumerates concrete examples (pi, omp, claude, codex, opencode, hermes, qodercli). It is clearly distinguishable from sibling tools like herdr_bridge_status since it addresses integration installs, not bridge or worker state.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides an explicit directive: 'Use this to discover what agent types are available in this herdr install.' This gives clear intended context. It doesn't explicitly name alternatives to exclude, but the discovery/status framing makes the intended scenario evident.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_lease_inventoryA
List live Herdr agents with matching reviewer, writer, or adopted-pane leases and report retained leases whose live identity is missing or changed. This is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full responsibility for behavioral disclosure. It explicitly states 'This is read-only', which signals no side effects, and it describes the comparison-and-report behavior. This is strong transparency for a read-only list tool, though it omits any auth requirements or rate limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and ends with a clear read-only note. Every word earns its place with no filler or redundant detail.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only inventory tool with one optional parameter and no output schema, the description covers the core behavior and safety. However, it fails to explain the controller_id parameter or any output structure, leaving an agent without enough information to fully use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has a single optional parameter, controller_id, with no description (0% coverage). The description completely ignores this parameter, giving an agent no clue about its purpose, format, or impact on results. This is a significant gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the action ('List live Herdr agents with matching reviewer, writer, or adopted-pane leases') and the additional reporting behavior ('report retained leases whose live identity is missing or changed'). It names the resource and distinguishes this tool from siblings that handle owned workers, panes, or general reconciliation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear picture of what the tool does, so an agent can infer when it might be useful (inventory and discrepancy checking). However, it does not explicitly state when to use this tool over alternatives like herdr_lease_reconcile or herdr_owned_worker_list, nor does it mention any exclusions or conditions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_lease_reconcileA
Reconcile a retained failed lifecycle lease only when the exact leased pane is confirmed absent. Live panes and ambiguous writers are always preserved. Dry-run is the default.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| lease_id | Yes | ||
| lease_type | Yes | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose the dry-run default and the preservation guarantees, which is valuable. However, it never states what actually happens when dry_run is false—whether the retained failed lease is deleted, released, or otherwise altered—leaving a core side-effect gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three short sentences with no filler. The primary purpose is front-loaded, the safety condition comes second, and the operational default is stated last. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a six-parameter tool with no annotations and no output schema, this description is not complete enough. It omits what the reconciliation actually does, how the required controller/fence parameters are used, and what the caller should expect in response. The safety framing is helpful but insufficient for confident invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only adds meaning to dry_run by noting the default behavior. The five required parameters (controller_id, controller_lease_id, controller_fence_token, lease_type, lease_id) are left entirely unexplained beyond their names and formats, which is a major gap for a reconciliation tool.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Reconcile') and a specific resource ('retained failed lifecycle lease'), and adds a precise precondition ('only when the exact leased pane is confirmed absent'). This clearly distinguishes the tool from the many sibling tools, especially from lease_inventory and controller_release.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives an explicit condition for use: only when the exact leased pane is confirmed absent. It also states a safety boundary: live panes and ambiguous writers are always preserved. It does not name alternative sibling tools, but the when-to-use guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_pane_adoptC
Create a cleanup-only lease for one existing idle/done named agent after exact identity, durable authority, state cursor, and protected-pane checks. Adoption grants no Git ownership or implementation authority.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. | |
| purpose | Yes | ||
| expected_cwd | Yes | ||
| authority_ref | Yes | ||
| controller_id | Yes | ||
| expected_kind | Yes | ||
| expected_name | Yes | ||
| authority_sha256 | Yes | ||
| expected_pane_id | Yes | ||
| controller_pane_id | Yes | ||
| protected_pane_ids | No | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes | ||
| expected_state_change_seq | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses the cleanup-only scope, the absence of ownership/authority transfer, and the checks performed. However, it doesn't describe side effects on the existing agent, reversibility, or required permissions, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that leads with the purpose and includes a key limitation. It is efficient with no filler, though it could be structured to highlight critical prerequisites more prominently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 14 parameters (13 required), no annotations, and no output schema, the description is far from complete. It doesn't explain how the parameters interact, what success looks like, or what preconditions must be verified. The concise description covers the high-level intent but not the execution context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 7% (only 'target' has a description), and the tool description adds no parameter-specific guidance. It references categories like identity, authority, state cursor, and protected-pane checks but does not explain any of the 14 parameters or how to construct them correctly. The agent is left to guess from names and patterns alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (create a cleanup-only lease) on a specific resource (an existing idle/done named agent), and adds the restriction that adoption grants no Git ownership or implementation authority. This is clear and not a tautology, though it doesn't explicitly differentiate from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives like herdr_owned_pane_close, herdr_controller_takeover, or herdr_owned_worker_start. It mentions preconditions (exact identity, authority checks) but not when a caller should choose 'adopt' over other operations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_pane_closeC
Capture and close one cleanup-only adopted pane after exact identity, idle/done state, fresh state cursor, controller, and durable checkpoint checks. Files, worktrees, and branches are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes | ||
| read_lines | No | ||
| controller_id | Yes | ||
| checkpoint_ref | Yes | ||
| checkpoint_sha256 | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes | ||
| expected_state_change_seq | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It mentions the checks performed (identity, state, cursor, controller, checkpoint) and explicitly states that files, worktrees, and branches are preserved, which is valuable. However, it does not disclose what happens to the pane itself beyond 'close' (e.g., whether it is deleted, returned as a result), nor any side effects or error conditions. It adds some context beyond the schema but lacks critical details for a destructive-looking operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that is relatively concise and front-loads the primary action ('Capture and close'). It uses dense technical jargon but does not waste words. The structure is straightforward, though the list of checks is compressed into a stream of terms that could be parsed more cleanly. Overall, it is appropriately short for the information it conveys.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 8 parameters (7 required), no annotations, no output schema, and a complex domain, the description is insufficiently complete. It does not explain the return value, error handling, or the meaning of 'capture.' It mentions preservation of files/worktrees/branches but not what happens to the pane itself. Given the complexity of the operation, an agent would need additional documentation or schema descriptions to use it safely and correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has zero description coverage for its 8 parameters, so the description must compensate by explaining their meanings. The description mentions vague groupings like 'exact identity, idle/done state, fresh state cursor, controller, and durable checkpoint checks' which may correspond to parameters but does not map them explicitly. It fails to clarify what lease_id, controller_id, checkpoint_ref, etc. actually represent or how they should be filled. An agent reading the description would not know what each parameter needs or why, making correct invocation difficult.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: close a pane, specifically a cleanup-only adopted pane, and mentions preservation of files/worktrees/branches. It distinguishes itself from siblings by specifying 'cleanup-only adopted pane' and the checks performed. The verb 'capture' is somewhat ambiguous, and it doesn't explicitly name the resource type in the same way a simpler definition would, but the core purpose is clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit guidance on when to use this tool versus alternatives. It mentions 'cleanup-only adopted pane' which hints at a use case, but there is no comparison to sibling tools like herdr_owned_reviewer_close or herdr_owned_worker_release, and no conditions for when this is the right choice. The agent must infer from the name and the 'cleanup-only' phrase, which is insufficient for a tool with many siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_pane_listA
List cleanup-only leases for adopted legacy panes, optionally limited to one controller. This is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the burden of behavioral disclosure. It explicitly states 'This is read-only,' which is a key behavioral trait for a listing tool. However, it does not mention other behaviors like pagination, ordering, or side effects, but for a simple read-only list, the read-only disclosure is sufficient to prevent misuse.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with zero fluff. The primary action and object are front-loaded, and the secondary detail (optional filter) follows logically. The read-only note is a concise, valuable addition. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one optional parameter, no output schema, and no annotations, the description covers the essential facts: what is listed, the optional filter, and read-only nature. It does not state the return format or any pagination details, but for a focused list tool, the description is reasonably complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema defines controller_id as optional but provides no description (0% coverage). The description explains that the list can be 'optionally limited to one controller,' directly assigning functional meaning to the parameter. This goes beyond the raw schema and helps the agent understand how to use the optional filter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('List cleanup-only leases for adopted legacy panes') with a clear resource and optional filter. This is distinct from sibling list tools like herdr_owned_worker_list or herdr_pane_list, as it explicitly scopes to cleanup-only leases for adopted legacy panes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clarifies the tool is read-only and optionally limited to one controller, but it does not explicitly tell when to prefer this tool over alternatives (e.g., herdr_lease_inventory or herdr_pane_list). No exclusions or comparisons are given, so the agent must infer usage from the name and context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_reviewer_cleanupA
Inspect reviewer leases for one controller and optionally close only identity-matched idle/done reviewers. Dry-run is the default; blocked, working, and ambiguous leases are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| dry_run | No | ||
| read_lines | No | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description properly carries the safety burden: it states that dry-run is the default, that only identity-matched idle/done reviewers may be closed, and that blocked, working, and ambiguous leases are preserved. It could also reveal what actually happens during closure or on auth/fencing failures, but the core behavioral profile is well covered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the primary behavior, includes the critical dry-run default, and adds safety constraints without filler. Every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is adequate for selecting and safely invoking the tool, and it covers key behavioral safeguards. However, there is no output schema and the description does not say what the inspect/close result looks like, nor what read_lines controls; ambiguous lease handling is also implicit. These gaps make it minimally viable rather than fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Since schema description coverage is 0%, the description must compensate for parameter meaning. It partially does: 'dry-run is the default' explains dry_run, and 'for one controller' plus 'identity-matched' clarify the role of the controller identifiers. However, read_lines is entirely unexplained, and controller_lease_id/controller_fence_token rely on inference rather than explicit description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action (inspect and optionally close), the resource (reviewer leases), the scope (one controller), and precise eligibility criteria (identity-matched idle/done). This distinguishes it from sibling tools like herdr_owned_reviewer_list and herdr_owned_reviewer_close.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly communicates when to use the tool: to inspect or safely clean idle/done reviewer leases for a controller. The dry-run default and preservation guarantees also tell the agent when the tool is conservative. It does not explicitly name alternatives or give an explicit when-not-to-use condition, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_reviewer_closeA
Capture and close only an idle or done reviewer whose pane, agent kind, name, cwd, controller, and lease still match. Blocked or working reviewers are refused.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes | ||
| read_lines | No | ||
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes | ||
| expected_state_change_seq | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It does disclose a key behavior: it refuses blocked/working reviewers and requires condition matching. However, it doesn't mention any side effects like lease release, return values, or error handling, leaving some behavioral aspects opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, dense sentence conveys the core operation, conditions, and refusal behavior with no filler. Every clause adds value, and the key scoping constraint ('only an idle or done reviewer') is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has 6 parameters with no schema coverage, no annotations, and no output schema. The description explains the general use case and refusal condition but omits necessary details like what each parameter means (especially expected_state_change_seq, controller_fence_token), what 'capture' implies, or what success/failure looks like. It leaves the agent undersupplied for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description mentions nothing about the six parameters. It refers to 'lease' and matching conditions, but doesn't explain any parameter's purpose, syntax, or relationship. With zero compensation from the description, parameter semantics are entirely absent.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb combination ('capture and close') with a clear resource ('reviewer') and constraints (idle or done, with matching pane/agent/name/cwd/controller/lease). It distinguishes this from other reviewer tools like start, list, and cleanup by specifying the condition for operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly states the condition for use ('only an idle or done reviewer') and the refusal condition ('Blocked or working reviewers are refused'). This gives clear when-to-use/when-not-to-use guidance, though it doesn't name alternative sibling tools for other states.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_reviewer_listB
List persistent reviewer leases, optionally limited to one controller. This is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden of behavioral disclosure. The explicit 'This is read-only' statement is a genuine, valuable disclosure confirming the operation does not mutate state, and 'persistent' adds lease-lifetime context. However, it stops there — no mention of pagination, return shape, or any operational caveats. It covers the core safety trait but little else.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste: verb and resource first, scope qualifier second, read-only disclosure last. Every clause earns its place, and the key information is front-loaded for an agent scanning the description.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple (one optional param, no required fields, no enums), and the description covers its purpose and parameter meaning adequately. However, there is no output schema and the description gives no hint about return format, which leaves the agent blind to what the response looks like for what is fundamentally a listing operation. Adequate but with identifiable gaps for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It does meaningfully explain the sole parameter by noting the list is 'optionally limited to one controller,' mapping to controller_id. This adds real meaning beyond the bare 'controller_id: string' in the schema. However, it doesn't define what a controller is or what omitting the parameter returns, leaving partial compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('List') and resource ('persistent reviewer leases'), with an optional scope ('limited to one controller'). The resource name clearly differentiates this from the action-style siblings (herdr_owned_reviewer_start/close/cleanup) and from worker-focused tools via the 'reviewer' qualifier. It doesn't explicitly name a sibling contrast, but the verb+resource pairing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No when-to-use or when-not-to-use guidance is provided. With dozens of siblings including herdr_lease_inventory and herdr_owned_worker_list, the description does not help an agent select between this and similar list tools. The 'read-only' note is behavioral, not usage routing, so an agent gets no context about when to prefer this over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_reviewer_startB
Create a dedicated no-focus tab in the controller's workspace, start one supported reviewer in its root pane, verify its identity, and persist a lease. This never splits the controller tab and does not accept arbitrary shell commands or agent arguments.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | Yes | ||
| kind | Yes | ||
| name | Yes | ||
| model | No | ||
| effort | No | ||
| purpose | Yes | ||
| controller_id | Yes | ||
| parent_pane_id | Yes | ||
| start_timeout_ms | No | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses key behaviors (dedicated no-focus tab, lease persistence, identity verification, no split, no arbitrary commands), but doesn't mention side effects, error behavior, or prerequisites beyond the listed parameters. It adds some transparency but lacks depth for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words, and it front-loads the primary action and key constraints. It could be slightly more structured but is concise and readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (11 parameters, no output schema, no annotations), the description is insufficient. It doesn't explain parameter meanings, the lease lifecycle, what 'verify identity' entails, or expected results. An agent would struggle to correctly supply all parameters and anticipate side effects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It does not explain any of the 11 parameters (e.g., controller_id, lease, fence token, purpose, parent_pane_id, cwd, name, kind). The description only says 'start one supported reviewer' without mapping 'kind' or clarifying others, leaving agents to guess from names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action (create a dedicated no-focus tab and start a reviewer), names the resource (reviewer), and differentiates itself from sibling tools by specifying it never splits the controller tab and rejects arbitrary shell commands. It effectively distinguishes from worker_start and other tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it (when starting a reviewer) and provides exclusions (no shell commands, no splitting). However, it doesn't explicitly name alternative tools like herdr_owned_worker_start or state conditions for choosing between them, so some inference is required.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_listB
List persistent writer leases, optionally limited to one controller. This is read-only.
| Name | Required | Description | Default |
|---|---|---|---|
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden — and it does state 'This is read-only', which discloses the primary safety trait. However, it adds little behavioral context beyond that: no mention of what 'persistent' implies about data freshness, whether an acquired controller is required for the filter, or what empty results look like. Adequate but thin.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Purpose is front-loaded and the read-only safety note follows immediately. Every element earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only list tool, the essentials are covered. Gaps remain: no output description (no output schema exists), no differentiation from herdr_lease_inventory, and the unresolved worker-versus-lease terminology. Adequate but not fully self-sufficient given the large sibling set.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for the lone controller_id parameter. It does clarify the core meaning via 'optionally limited to one controller'. But it omits how to obtain a valid controller_id, what format is expected, and behavior for invalid or nonexistent controller IDs. Partial compensation for a low-coverage schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List persistent writer leases') plus an optional controller filter. However, the tool name says 'owned_worker' while the description says 'persistent writer leases' — a terminology mismatch that leaves the relationship to the similarly-named herdr_lease_inventory and herdr_owned_worker_verification_list unclear. Slightly ambiguous but fundamentally clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains one usage dimension ('optionally limited to one controller') but gives no guidance amid 43 siblings about when to call this versus herdr_lease_inventory, which appears to overlap in domain, or herdr_owned_worker_verification_list. No exclusions or alternative routing are given despite strong overlap potential.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_releaseB
Release only an idle/done identity-matched writer after revalidating branch, HEAD, Git status digest, and a durable checkpoint reference. The worktree and bytes are preserved.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes | ||
| read_lines | No | ||
| controller_id | Yes | ||
| expected_head | Yes | ||
| checkpoint_ref | Yes | ||
| checkpoint_sha256 | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes | ||
| expected_status_sha256 | Yes | ||
| expected_state_change_seq | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It discloses that the tool revalidates several conditions and preserves the worktree/bytes, which is useful. However, it omits failure behavior (e.g., whether release aborts if validation fails), any side effects on the lease, or reversibility, leaving significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence that leads with the action and immediately states constraints and key properties. It is concise with no filler, though it could be split for readability. It earns a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, 9 required, no annotations, no output schema), the description is far from complete. It lacks parameter-level explanations, failure semantics, and usage context, so an agent cannot reliably determine how to call it correctly or interpret outcomes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description must compensate, but it only references a few parameters indirectly (expected_head, expected_status_sha256, checkpoint_ref/sha256). It does not explain the purpose of lease_id, controller_id, controller_fence_token, expected_state_change_seq, or how they interrelate, making correct invocation difficult.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Release' and the resource 'idle/done identity-matched writer', distinguishing it from worker start/verify/list siblings. It also specifies the exact preconditions (revalidating branch, HEAD, Git status digest, checkpoint) and the preservation guarantee, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description offers no explicit guidance on when to use this tool versus alternates like herdr_controller_release. It implies usage only for idle/done writers, but does not name alternatives or provide exclusion conditions, leaving the agent to infer selection among many release-like siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_startB
Reserve a manifest-scoped Git lane, verify its branch/base/HEAD/status digest and active ownership leases, then start one leased writer in a dedicated no-focus tab. The controller tab is never split. Durable ticket/spec authority must already have been validated by the coordinator.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | Yes | ||
| name | Yes | ||
| branch | Yes | ||
| purpose | Yes | ||
| worktree | Yes | ||
| ticket_ref | Yes | ||
| base_commit | Yes | ||
| owned_scopes | Yes | ||
| authority_ref | Yes | ||
| controller_id | Yes | ||
| expected_head | Yes | ||
| locked_scopes | Yes | ||
| parent_pane_id | Yes | ||
| authority_sha256 | Yes | ||
| start_timeout_ms | No | ||
| protected_branches | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes | ||
| expected_status_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description must carry the full behavioral burden. It discloses that the tool verifies branch/base/HEAD/status digest and ownership leases, reserves a lane, and starts a worker in a no-focus tab without splitting the controller. It does not mention side effects on failure, return values, or whether it's idempotent. The information is helpful but incomplete for a complex operation with 18 required parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences long, efficient, and front-loads the primary action. It avoids unnecessary fluff and packs a lot of information into a compact structure. No redundancy or waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite the description's detail, it is not complete for a tool with 19 parameters, no output schema, and no annotations. It lacks explanation of parameter relationships, required values, error handling, and return format. The prerequisite is mentioned but not described in depth. An agent would struggle to correctly invoke this tool without additional documentation or schema hints.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description needs to compensate. It mentions key concepts like 'branch/base/HEAD/status digest' and 'control tab' but does not map these to the 19 parameters explicitly. For example, it doesn't explain the purpose of controller_id, controller_lease_id, fence token, or owned_scopes. The description provides high-level workflow context but fails to clarify individual parameter semantics, making it insufficient for an agent to construct correct arguments.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: reserve a Git lane, verify its state, then start a leased writer in a dedicated tab. It includes specific verbs and resources, and distinguishes it from list/verify/release siblings by focusing on the start workflow. However, it doesn't explicitly name sibling tools to differentiate, which prevents a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives a prerequisite ('Durable ticket/spec authority must already have been validated by the coordinator') but does not explicitly explain when to use this tool versus alternatives like herdr_owned_worker_release or herdr_owned_worker_verify. The usage context is implied by the action, but no exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_verification_listB
List content-free host verification records, optionally for one controller or writer lease. This is read-only and never returns command output.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | No | ||
| controller_id | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden and does disclose that the operation is read-only and never returns command output. However, it leaves other behavioral aspects unclear, such as whether results are paginated, ordered, scoped globally, or what a 'content-free host verification record' actually contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the core action is front-loaded and the behavioral caveat is concise. Every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only list tool with no output schema, no annotations, and 0% schema coverage, this is serviceable but incomplete. It does not describe the return shape, record contents, filter interaction, or failure behavior, leaving an agent to infer several important details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, so the description must compensate. It partially does by indicating records can be listed 'optionally for one controller or writer lease', which loosely maps to controller_id and lease_id. It does not explain whether the filters can be combined, which parameter corresponds to which role, or any constraints beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific operation: listing host verification records, with optional filtering by controller or writer lease. It distinguishes the tool from verification/verify siblings by emphasizing 'content-free' records and 'never returns command output', though it doesn't name any sibling explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus related tools like herdr_owned_worker_verification_snapshot or herdr_owned_worker_verify. No alternatives, exclusions, or contextual cues for selection are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_verification_snapshotC
Return the exact settled writer identity, Git status digest, and content digest used to authorize a host verification. This is read-only and executes no repository code.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes | ||
| base_commit | Yes | ||
| controller_id | Yes | ||
| expected_head | Yes | ||
| expected_status_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and does add meaningful safety disclosure: 'This is read-only and executes no repository code.' This is genuinely useful beyond what the name conveys. However, it stops there — it doesn't disclose outcomes on digest mismatch, whether prior settlement is required, or whether holding a lease is a precondition.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler; the primary return payload is front-loaded in the first sentence and the safety qualifier is tucked efficiently into the second. Nothing extraneous, though the structure is entirely adequate rather than exemplary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite moderate complexity (5 required params, 0% schema coverage, no output schema, no annotations), the description explains neither the parameters' roles nor the expected output shape. An agent cannot independently construct correct values for expected_head/expected_status_sha256 or understand the verification context. Sufficient for a caller who already knows the values, but too thin for autonomous selection and invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so all 5 required parameters are undocumented in both the schema and the description. The prose mentions 'Git status digest' (maps weakly to expected_status_sha256) and settled identity, but never clarifies what lease_id, controller_id, base_commit, or expected_head mean, nor that the expected_* fields are the values the caller asserts. At 0% coverage, the description must compensate and does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Return') and a precise resource ('exact settled writer identity, Git status digest, and content digest used to authorize a host verification'). This clearly distinguishes a snapshot/inspection tool from its siblings herdr_owned_worker_verify (performs verification) and herdr_owned_worker_verification_list (lists records). Slightly docked because it doesn't name the sibling it is not, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains what the tool returns but gives no explicit when/when-not guidance or named alternatives. An agent must infer that this is the inspection counterpart to herdr_owned_worker_verify and herdr_owned_worker_verification_list from the sibling list alone. No prerequisites (e.g., must a lease/verification already exist?) or routing conditions are stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_owned_worker_verifyA
Run the repository-selected verification gate on the host for one settled leased writer. Commands are fixed, controller-fenced, digest-pinned, time-bounded, and recorded. Optional dependency bootstraps accept only npm ci or unchanged, fully hash-pinned requirements.lock manifests from the accepted base commit.
| Name | Required | Description | Default |
|---|---|---|---|
| lease_id | Yes | ||
| base_commit | Yes | ||
| bootstrap_web | No | ||
| controller_id | Yes | ||
| expected_head | Yes | ||
| timeout_seconds | No | ||
| controller_lease_id | Yes | ||
| bootstrap_python_locks | No | ||
| controller_fence_token | Yes | ||
| expected_status_sha256 | Yes | ||
| expected_worktree_sha256 | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so richly: commands are 'fixed, controller-fenced, digest-pinned, time-bounded, and recorded'. It also specifies exactly what bootstrap inputs are allowed, which tells the agent about validation and rejection behavior. This goes well beyond what the schema alone conveys.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is only two sentences, with the core action and resource front-loaded, and every phrase contributes meaning. The dense, technical language is not padding; it conveys fixed commands, fencing, digest pinning, time bounds, recording, and bootstrap constraints economically.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 11-parameter tool with no output schema and no annotations, this description is too high-level to let an agent construct a correct call. It never explains what 'expected_status_sha256' and 'expected_worktree_sha256' represent, how timeout_seconds is applied, what 'settled leased writer' means, or what the verification result looks like. The behavioral summary is strong but operational detail is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, but it only adds meaning for the bootstrap-related parameters ('npm ci' or hash-pinned requirements.lock manifests). The many required parameters — controller_id, controller_lease_id, controller_fence_token, lease_id, expected_head, expected_status_sha256, expected_worktree_sha256 — are not explained or mapped to the behavioral concepts like 'controller-fenced' or 'digest-pinned'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific action verb, 'Run', on a clear resource: 'the repository-selected verification gate' for 'one settled leased writer'. It also describes scope ('on the host') and contrasts clearly with sibling tools like verification_list and verification_snapshot, which are list/snapshot operations, not execution.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the agent this is for running verification on a settled leased writer and imposes strict constraints on dependency bootstraps, which is useful context. However, it never explicitly says when not to use this tool or points to alternatives, leaving the agent to infer the appropriate usage from the context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_pane_getC
Get details for a pane.
| Name | Required | Description | Default |
|---|---|---|---|
| pane_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavior. It simply says 'Get details' without stating whether this is a read-only operation, what the response format is, or any error conditions. While 'get' implies non-mutation, it does not provide meaningful behavioral transparency beyond the operation name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, compact sentence with no unnecessary words. It is front-loaded and easy to parse. However, it is under-specified, so while it is concise, it sacrifices clarity for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a simple getter with one parameter and no output schema, the description should at least explain what 'details' means and how to use pane_id. It does neither. It also lacks any differentiation from sibling tools, making it incomplete for an agent to confidently select and invoke this tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a required string pane_id with no description. The description says 'for a pane', which minimally suggests pane_id identifies the pane, but it does not explain how to obtain a valid ID, what format it should be in, or any additional semantics. With 0% schema description coverage, the description should compensate more substantially.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Get details for a pane' provides a verb and resource, but 'details' is vague and does not specify what details are included. It also does not distinguish from sibling tools like herdr_pane_read, which could also be interpreted as retrieving pane information. The purpose is somewhat unclear without additional context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is given on when to use this tool versus alternatives such as herdr_pane_list or herdr_pane_read. There is no mention of context, preconditions, or exclusions. An agent is left to infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_pane_listB
List panes, optionally filtered to a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No | Workspace id filter. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden but only states a 'List' operation and an optional filter. It does not explicitly note read-only behavior, whether the list is scoped to the caller, or whether any state changes occur. This is minimal but not misleading.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One short sentence communicates the operation and the only option. Every word is useful, and it is front-loaded and direct.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple 1-parameter list tool the core behavior is stated, but there is no mention of the return shape and no distinction from the similarly named herdr_owned_pane_list. Without an output schema or annotations, that leaves an agent to guess what 'panes' resolves to and which list variant is appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already documents the single 'workspace' parameter as a filter (100% coverage). The description's 'optionally filtered' adds no new semantic detail beyond 'optional'; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('List') and resource ('panes') plus the optional workspace filter. However, it doesn't differentiate from the sibling herdr_owned_pane_list, so the agent cannot tell the difference between the two list tools from this description alone.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no explicit when-to-use guidance compared to sibling tools such as herdr_owned_pane_list, herdr_pane_get, or herdr_pane_read. The only usage signal is the optional workspace filter, which is parameter-level rather than tool-selection guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_pane_readC
Read a pane's terminal output. Keep lines small to avoid flooding context.
| Name | Required | Description | Default |
|---|---|---|---|
| lines | No | ||
| source | No | Which portion of the pane buffer to read (default: visible). | |
| pane_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry full behavioral disclosure. It hints at a non-destructive read and warns about context flooding with large `lines`, but it doesn't describe the return format, default behavior when `lines` or `source` are omitted, pagination, or any side effects. The caution about context flooding is a minor transparency element, but overall the behavioral surface is underexplained.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise: a single imperative sentence followed by a targeted caution. It's front-loaded with the core purpose and the caution is immediately relevant and useful. No redundant or verbose language.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with three parameters (one required) and no output schema, the description should explain what the tool returns, parameter defaults, and the meaning of non-obvious inputs. It only covers the action and a caution. Missing information includes what the terminal output looks like, the default of `lines` (likely all), and what `source` variations mean in practice. This is insufficient for an agent to make informed calls without additional inference.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is only 33% (only `source` has a description). The tool description mentions `lines` but only as a caution, not its meaning or default. It does not explain `pane_id` or the semantics of the `source` enum values. With low schema coverage, the description fails to compensate for the undocumented parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Read a pane's terminal output') with a specific verb and resource. It distinguishes itself from siblings like herdr_pane_get (likely metadata) and herdr_agent_read, but doesn't explicitly name alternatives. The purpose is unambiguous but could be slightly more specific about what a 'pane' is.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only usage guidance is 'Keep `lines` small to avoid flooding context,' which is a parameter-level caution rather than tool-selection guidance. There's no mention of when to use this tool versus sibling read tools (e.g., herdr_agent_read, herdr_pane_get) or when not to use it. No exclusions or alternative conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_relayB
Submit a prompt to one active leased agent and return a durable receipt for later collection.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | Message/prompt to deliver to the agent. | |
| submit | No | Must remain true. | |
| target | Yes | Agent target: terminal id, unique agent name, detected/reported agent label, or legacy pane id. | |
| controller_id | Yes | ||
| controller_lease_id | Yes | ||
| controller_fence_token | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It states that it returns a 'durable receipt' and implies submission, but it does not disclose whether the action is synchronous or asynchronous, any side effects on the agent lease, permission requirements, or how the receipt is stored or retrieved. This is minimal disclosure for a tool with no safety annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no filler words. It states the action and outcome efficiently. It could have added more details, but as far as conciseness, it is well-structured and does not bury key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 6 parameters, no output schema, and no annotations, the description is severely incomplete. It does not explain the purpose of the controller_* parameters, the conditions required to use the tool (e.g., must have an active lease), what a 'durable receipt' means, or how to later collect the result. An agent would need to infer too much about prerequisites and expected behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 50% (only text, submit, and target have descriptions). The description does not add any parameter-specific meaning beyond what the schema provides, and it especially fails to clarify the controller_* parameters (controller_id, controller_lease_id, controller_fence_token) that lack schema descriptions. Given the low coverage, the description should have compensated but does not.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (submit a prompt), the target (one active leased agent), and the outcome (return a durable receipt for later collection). It is specific and unambiguous, and it differentiates from sibling tools like herdr_agent_read (reading) and herdr_handoff (handoffs) by focusing on submission with a receipt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the primary use case: when you want to submit a prompt and get a receipt. However, it does not explicitly mention when not to use this tool or contrast it with alternatives like herdr_agent_wait or herdr_handoff. The context makes it clear for submission, but there is no explicit routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_session_listA
List herdr persistent sessions. Sessions survive disconnects and can be shared/reattached locally or over SSH.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden. It discloses that sessions are persistent, survive disconnects, and support sharing/reattachment—useful behavioral traits beyond the name alone. It doesn't mention any side effects, but as a list operation, none are expected, and the disclosed behaviors are sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, focused sentence that states the core purpose and then adds valuable context about session characteristics. It is front-loaded with the action and resource, and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool with no output schema, the description is complete. It tells exactly what the tool lists and the nature of those sessions, which is enough for an agent to decide whether to invoke it. There is no missing information that would hinder correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and the schema has 100% coverage (vacuous). The baseline for zero parameters is 4, and the description need not add parameter semantics. No gaps exist here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'List herdr persistent sessions' with a specific verb and resource. The qualifier 'persistent' distinguishes this from other list tools in the sibling set (e.g., controller_list, agent_list), making its purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It provides clear context on when to use this tool by explaining that sessions survive disconnects and can be shared/reattached locally or over SSH. This implies usage when the agent needs to interact with persistent, reattachable sessions. However, it does not explicitly state when not to use it or name alternatives, so it misses an exclusion clause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_tab_getC
Get details for a tab.
| Name | Required | Description | Default |
|---|---|---|---|
| tab_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description carries full burden. 'Get' implies a read operation, but it does not explicitly state side-effect-free behavior, permissions, or response format. The description is too minimal to inform an agent about runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
It is a single, short sentence with no fluff, but it is under-specified. It is concise but not informative enough to be useful, so it earns a neutral score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one parameter and no annotations or output schema, the description still leaves critical gaps: what fields are returned, any filtering or pagination, and how it differs from tab_list. It is too minimal for an agent to call successfully without guessing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single parameter tab_id has 0% schema description coverage, and the description never explains what tab_id represents or how it should be formatted. The schema only says it's a string, so the description adds no value beyond that.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear verb ('Get') and resource ('a tab'), but 'details' is vague and does not distinguish from sibling tools like herdr_tab_list or herdr_pane_get. It communicates the basic action but lacks specificity about what details are included.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. There is no mention of context, exclusions, or trade-offs. An agent has no help deciding between this and herdr_tab_list or other similar getters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_tab_listA
List tabs, optionally filtered to a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosure. It implies a read-only operation via 'List', but it does not state whether there are side effects, authentication requirements, pagination, or ordering. For a simple list tool this is acceptable, but additional context like return format or default scope would improve transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, front-loaded sentence that conveys the core action and the optional filter. There is no wasted language, and the description is appropriately brief for a simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is low complexity (one optional parameter, no nested objects, no output schema). The description covers the essential purpose and the parameter's role. While it does not describe the output format, the list action is straightforward, and naming conventions align with sibling tools. It is nearly complete for an agent to call it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema only defines a 'workspace' string with no description, and schema coverage is 0%. The description compensates by explicitly stating 'optionally filtered to a workspace', clarifying the parameter's purpose. This adds meaning beyond the schema, so the score is above baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists tabs and optionally filters by workspace. It distinguishes from herdr_tab_get (which presumably gets a single tab) and other list tools by naming the resource and the optional filter. It could explicitly name sibling alternatives, but the purpose is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this is the tool for listing tabs, but it provides no explicit guidance on when to use it versus alternatives like herdr_tab_get or other list tools. There is no mention of conditions, exclusions, or prerequisites. The usage context is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_wait_outputA
Block until a pane's output matches given text (or regex). Useful to wait for a build/command to finish in another agent's pane.
| Name | Required | Description | Default |
|---|---|---|---|
| match | Yes | Text (or regex if `regex` is true) to wait for. | |
| regex | No | Treat `match` as a regex. | |
| source | No | Which portion of the pane buffer to read (default: visible). | |
| pane_id | Yes | Pane id to watch. | |
| timeout_ms | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of disclosing behavioral traits. It only says 'Block until', which is verbose and could be interpreted as a synchronous wait, but it does not explain timeout behavior, error handling, whether the operation is read-only, or what the return value is (since there is no output schema). It also does not clarify if it polls or uses events. These gaps are significant for a blocking tool, so a 2 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, with the primary action and use case front-loaded. There is no redundant text, and every word adds value. It is appropriately sized for the tool's complexity, so it earns a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, blocking behavior, no output schema), the description is incomplete. It does not specify what happens on timeout, whether the operation is side-effect free, or the return value. It also does not differentiate from sibling wait tools. An agent cannot fully understand the tool's behavior from this description alone, making a 2 appropriate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides descriptions for all parameters (match, regex, source, pane_id, timeout_ms), giving high coverage. The description adds minimal extra meaning beyond the purpose ('wait for a build/command to finish'), which does not clarify parameter-specific semantics like how timeout_ms behaves or how source options differ. Since schema coverage is high, the baseline is 3, and the description does not meaningfully improve it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear action ('Block until'), a specific resource ('a pane's output'), and the condition ('matches given text or regex'). It also gives a concrete use case ('wait for a build/command to finish in another agent's pane'). This is specific and distinguishes the tool from simple read operations, though it does not explicitly name sibling wait tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear context for when to use the tool: waiting for a build/command to finish in another agent's pane. It implies the tool is for cross-agent waits, but it does not explicitly contrast with other wait tools like herdr_agent_wait, herdr_agent_wait_any, or herdr_agent_wait_settled, nor does it state when not to use it. Thus it has clear context but no exclusions or alternatives, fitting a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_workspace_getC
Get details for a workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| workspace_id | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. 'Get' indicates a read operation, but the description does not disclose response format, error or not-found behavior, permissions, or side effects. This leaves the tool's behavior largely to inference.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one short, front-loaded sentence with no filler. For a one-parameter getter, this is an appropriately concise size and structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema and no annotations, the description leaves the return shape and selection criteria unspecified. It also does not clarify how to obtain the workspace ID or how this differs from workspace_list. The tool is simple, but the description remains too minimal for an agent to invoke it with full confidence.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0% and the description adds no meaning to workspace_id beyond its self-explanatory name. It does not specify that workspace_id is the unique identifier of the workspace or describe how to obtain it. With only one parameter, the gap is modest, but the description still fails to compensate for the missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and a clear resource ('a workspace'), so an agent can tell this is a singleton lookup rather than a list operation. It differentiates from the sibling herdr_workspace_list, though it does not explicitly name it. 'Details' is somewhat generic, so it stops short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus workspace_list or other getter tools such as agent_get or pane_get. The only usage cue is the workspace_id parameter in the schema, but the description never mentions it. No when-not conditions or alternative routing are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
herdr_workspace_listC
List workspaces.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must carry the burden of behavioral disclosure. 'List workspaces' provides no information about side effects, scope of results, performance implications, or whether it is a pure read operation. It only restates the action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, direct sentence with no redundant words. It is perfectly concise for a tool with no parameters.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should clarify the returned data format (e.g., a list of workspace names, IDs, or full objects). It does not, leaving the agent uncertain about the result. The minimalism is a gap for a list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters, and the schema fully covers this (coverage 100%). The description adds no parameter-related information, which aligns with the baseline of 4 for parameter-less tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a clear action on a resource: 'List workspaces.' It is specific and not a tautology, but lacks differentiation from many sibling list tools like herdr_owned_pane_list or herdr_agent_list, which could confuse an agent selecting among them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. The description does not mention scope, exclusions, or alternative tools, leaving the choice to the agent's inference. There is no explicit when/when-not condition.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
44 tool updates
v0.1.0-safe.13- First observed
herdr_agent_get - First observed
herdr_agent_list - First observed
herdr_agent_read - First observed
herdr_agent_wait - First observed
herdr_agent_wait_any - First observed
herdr_agent_wait_settled - First observed
herdr_batch_handoff - First observed
herdr_bridge_status - First observed
herdr_collect_handoffs - First observed
herdr_controller_acquire - First observed
herdr_controller_list - First observed
herdr_controller_release - First observed
herdr_controller_renew - First observed
herdr_controller_resume - First observed
herdr_controller_takeover - First observed
herdr_handoff - First observed
herdr_handoff_receipt_abandon - First observed
herdr_handoff_receipt_list - First observed
herdr_integration_status - First observed
herdr_lease_inventory - First observed
herdr_lease_reconcile - First observed
herdr_owned_pane_adopt - First observed
herdr_owned_pane_close - First observed
herdr_owned_pane_list - First observed
herdr_owned_reviewer_cleanup - First observed
herdr_owned_reviewer_close - First observed
herdr_owned_reviewer_list - First observed
herdr_owned_reviewer_start - First observed
herdr_owned_worker_list - First observed
herdr_owned_worker_release - First observed
herdr_owned_worker_start - First observed
herdr_owned_worker_verification_list - First observed
herdr_owned_worker_verification_snapshot - First observed
herdr_owned_worker_verify - First observed
herdr_pane_get - First observed
herdr_pane_list - First observed
herdr_pane_read - First observed
herdr_relay - First observed
herdr_session_list - First observed
herdr_tab_get - First observed
herdr_tab_list - First observed
herdr_wait_output - First observed
herdr_workspace_get - First observed
herdr_workspace_list
TDQS
Scored across 44 tools
Most tools target distinct lease, agent, or handoff concerns, but several families overlap: three agent-wait variants, relay/handoff/batch_handoff, agent_read vs pane_read, and multiple cleanup/reconcile tools. The detailed descriptions help, but an agent must read closely to avoid selecting the wrong tool.
The dominant pattern is herdr_<object>_<action> (agent_list, controller_acquire, owned_worker_release), but there are notable exceptions like relay, handoff, batch_handoff, collect_handoffs, and wait_output, plus noun-style names like bridge_status and integration_status. The herdr_ prefix and snake_case keep it readable, but the convention is mixed.
44 tools is well above the threshold for a focused server and feels heavy for what is ultimately one orchestration domain. Many tools could be consolidated, such as the three agent-wait variants, multiple handoff submission/collection modes, and the various list/status/cleanup helpers.
The surface covers the core lifecycle well: controller leases, worker/reviewer leases, handoffs, agent inspection, and pane/tab/workspace discovery all have appropriate operations. Minor gaps exist around general pane writes or workspace/session mutation, but those appear intentionally outside the safety-focused lease model.
Maintenance
Related MCP Connectors
Scoped agent execution. Server-side credentials, policy, budgets and verifiable receipts.
Deny-by-default authority leases for agents wielding real power.
Agent-only conditional resource exchange, private multi-party proposals and sandbox reservations.
The trust harness for AI agents. Set what an agent can do before it acts.
Related MCP Servers
- FlicenseAqualityAmaintenanceEnables coding agents to perform workspace-confined file operations, read-only Git inspection, and structured shell commands, while requiring out-of-band human approval for mutations and external executions and maintaining an audit trail.143-
- AlicenseNot gradedqualityBmaintenanceEnables provider-neutral durable coordination for coding agents sharing Git work, including peer discovery, durable messaging, job progress tracking, and FIFO integration authority with fenced leases.MIT
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to safely run bounded, sandboxed tasks on remote machines with persistent state and reviewable artifacts.Apache 2.0
- AlicenseBqualityBmaintenanceEnables multiple coding agents sharing one repository to coordinate their work through time-limited directory and file leases, an enforced pre-tool-use hook, shared presence tracking, messaging, and an audit history, so they never edit or run each other's files concurrently.13MIT