AIWorkhub
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| AIWORKHUB_REPO_ROOT | No | Repository the server binds to; when set it takes precedence over the working directory. Default: unset — the nearest `.aiworkhub/project.json` above the working directory within its Git repository, else that Git root. | |
| AIWORKHUB_ALLOW_LAUNCH | No | Only the exact value `1` enables worker launches; launches also need `AIWORKHUB_ALLOW_WRITES=1`. | 0 |
| AIWORKHUB_ALLOW_WRITES | No | Only the exact value `1` enables write tools. | 0 |
| AIWORKHUB_MAX_PROCESSES | No | Cap on workers running at once; values below 1 become 1 and values above 32 become 32. | 4 |
| AIWORKHUB_PROVIDER_LAUNCH_LIMITS | No | Per-provider launch limits as `provider=limit` pairs, for example `opencode-go=1,xai=2`; listed providers override the default entry by entry. | opencode-go=1 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
AIWORKHUB MANAGER CONTRACT (MANDATORY): call aiworkhub_manager_bootstrap first and trust only repository-bound MCP receipts. For every non-trivial code request, use aiworkhub_manager_source_graph_query before built-in filesystem discovery; start with focus/slice and re-query when the active boundary changes. If required Source Graph is unavailable, report it instead of silently bypassing AIWorkHub. Creating a task leaves it pending; only an exact claim plus launch may make it processing. Launch independent tasks in parallel only after dependency, write-scope, preflight and collision checks. Workers stop at review_ready; every review/terminal transition emits a callback, but only the current verified manager may inspect evidence and accept or reject it. Never invent task/status/callback IDs, infer state from prose, or recreate a task after a lost acknowledgement—reconcile the same ID. Tasks are uncapped by default; never infer or auto-assign a token cap unless the owner supplies an exact budget or repository policy pre-registers one.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| aiworkhub_manager_bootstrapA | CALL FIRST: mandatory repository manager contract and callback workflow. The identity block -- role, verified route, repository and storage
readiness, task health, the last hygiene pass and the Claude-route
dispatcher state -- is on every reply, so repository_current and
A reply that suppresses the contract ( |
| aiworkhub_manager_semantic_edit_prepareB | MANAGER EDIT: bind one verified file range before changing it. |
| aiworkhub_manager_semantic_edit_applyA | MANAGER EDIT: replace exactly one prepared, hash-bound range.
|
| aiworkhub_manager_source_graph_queryB | MANAGER CODE DISCOVERY: use first and continuously before built-in file search. |
| aiworkhub_manager_session_current_stateC | MANAGER READ: bounded canonical Session Manager current state. |
| aiworkhub_manager_resource_statusA | MANAGER READ: queue of a hub-managed resource such as cpu_heavy. Returns the holder, the waiters in the order they will be served, and each entry's priority and wait time, from the runtime database. |
| aiworkhub_manager_candidate_treeA | MANAGER READ: path and state of a request's full candidate tree. The tree is built by the host validation stage (host_commands/host_sweep) from canonical plus the candidate overlay; ready means the stage finished. |
| aiworkhub_manager_ai_memory_searchC | MANAGER READ: bounded canonical AI Memory search. |
| aiworkhub_manager_ai_memory_getA | MANAGER READ: exact active canonical AI Memory lookup. |
| aiworkhub_manager_kb_searchC | MANAGER READ: bounded canonical KB search. |
| aiworkhub_manager_kb_getA | MANAGER READ: exact canonical KB entry lookup. |
| aiworkhub_manager_kb_relatedB | MANAGER READ: bounded canonical KB relation lookup. |
| aiworkhub_manager_context_graph_searchB | MANAGER READ: search exact transcript-backed Context Graph evidence. |
| aiworkhub_manager_context_graph_rangeB | MANAGER READ: retrieve an exact bounded transcript range around one event. |
| aiworkhub_manager_context_graph_relatedB | MANAGER READ: retrieve bounded deterministic relations for one graph node. |
| aiworkhub_manager_workforce_catalogB | MANAGER READ: configured models joined to observed canonical outcomes.
|
| aiworkhub_manager_workforce_rankB | MANAGER READ: explainable cheapest-capable routing from current evidence.
|
| aiworkhub_manager_session_writeA | MANAGER WRITE: append one audited canonical Session Manager event, or edit one existing event. Append actions: start, event, checkpoint, state, handoff, close (no
document_id). Edit actions: |
| aiworkhub_manager_ai_memory_writeB | MANAGER WRITE: remember, update, supersede, or archive canonical memory. |
| aiworkhub_manager_kb_writeC | MANAGER WRITE: upsert, ingest, supersede, or archive canonical KB data. |
| aiworkhub_manager_learning_commitA | MANAGER WRITE: persist and project one verified Learning Commit. SHORT FORM -- the one to use: Add your own references with
LONG FORM (compatibility): supply repo_area, outcome, evidence_ids, idempotency_key and provenance yourself and nothing is resolved. The lesson text is always the caller's; nothing is written without this call. |
| aiworkhub_manager_workforce_upsertB | MANAGER WRITE: audited bounded upsert of one repository worker model. |
| aiworkhub_manager_context_write_intentsA | MANAGER READ: inspect authenticated worker context-write proposals. |
| aiworkhub_manager_context_write_intent_disposeB | MANAGER WRITE: explicitly accept or reject one worker proposal. |
| aiworkhub_manager_skill_add_evidenceA | MANAGER WRITE: append one MANAGER evidence entry to a skill version. CLOSED VOCABULARIES -- a guess is refused before a turn is spent:
outcome accepted | negative
actor_id ^[a-z][a-z0-9_.-]{0,127}$, and it may NOT contain the reserved
role tokens Two spellings of one manager are ONE actor: identities are compared in their
canonical form, so When |
| aiworkhub_manager_skill_usageA | MANAGER READ: per-skill usage statistics, measured from the stored record. For every stored skill version: how many versions of that identity are proposed, its evidence rows split by outcome (accepted/negative), the number of CANONICAL independent actor identities its accepted evidence rests on (not the raw strings -- two spellings of one manager count once), the cards it was injected into according to the persisted selection receipts, whether it is injectable at all, and when it is not, the exact named reason: lifecycle_state_is_retired unresolved_negative_evidence activation_evidence_below_two_distinct_actors lifecycle_state_is_proposed_not_active Read-only. It never activates, retires or evidences anything. |
| aiworkhub_manager_skill_mineA | MANAGER READ: mine the correction record into gated skill PROPOSALS. Clusters every stored rejection instruction and adjudicated invariant by the
RULE it asserts -- instance vocabulary (paths, identifiers, ids, digits) is
deleted before anything is compared -- then promotes only families that
recurred across at least Read-only. It produces proposals, never activations: the returned draft reaches the store only if a manager proposes it through the skill-proposal step, and activation remains gated on evidence from two distinct actor identities. |
| aiworkhub_manager_skill_retirement_reportA | MANAGER READ: measure every stored skill against its own failure class. Reports, per skill, whether it is injectable at all, the cards its evidence anchors to, and the adjudicated outcome of those cards. It also reports whether the injection denominator exists in this repository -- and when it does not, says so with both counts instead of computing a rate against a zero denominator. Verdicts are recommendations; retirement stays manager-gated and this never writes. Summary mode (default) folds each skill's |
| aiworkhub_manager_skill_evidence_sweepA | MANAGER WRITE: backfill learning-commit evidence for every recorded commit. Bounded and resumable like every other sweep here: pass back
|
| aiworkhub_manager_loop_statusA | MANAGER READ: the active session, whether a turn is running, queued owner sends, and the last turn's outcome. |
| aiworkhub_manager_loop_eventsA | MANAGER READ: bounded session events, for incremental client polling. Events with seq greater than after_seq, bounded to limit, and |
| aiworkhub_manager_recipe_seed_canonicalA | MANAGER WRITE: install the catalogue of this repository's own invocations. Each entry of Per-project, not a fixed list. The universal entries -- the git
workspace/finalization/diff probes and the packaged |
| aiworkhub_manager_recipe_listA | MANAGER READ: bounded identity/contract listing of persisted recipes. Returns each manifest's identity, digest, purpose, risk, capabilities and
parameter signature -- never its argv template. An empty store is a
legitimate repository state and returns |
| aiworkhub_manager_recipe_usageA | MANAGER READ: which registered recipes are actually used, and by whom.
The actor on every receipt is derived by the server from the verified
route, never from a caller-supplied string, so
|
| aiworkhub_manager_recipe_showA | MANAGER READ: one persisted recipe in its exact canonical manifest form. With |
| aiworkhub_manager_recipe_runA | MANAGER EXECUTE: run one PERSISTED recipe and return a bounded digest. What runs is the immutable stored manifest resolved from the registry, not
a mapping typed at call time: A non-zero exit is a RESULT, not an error: the digest carries the return
code, the duration, stdout/stderr tails capped at 4096 characters with
explicit truncation flags, and the path plus SHA-256 of the full output
file, so the whole stream stays retrievable without being carried here.
Every run persists a |
| aiworkhub_manager_recipe_run_statusA | MANAGER READ: the state of one detached recipe run, optionally waiting for it to finish. Returns the run's state (queued, waiting_memory, running, completed, failed, refused or lost). A completed run carries the same bounded digest the synchronous aiworkhub_manager_recipe_run returns, plus the child log path. A run whose process died before finishing reads as lost. |
| aiworkhub_repo_listC | READ-ONLY: bounded live repository identities available to this manager. |
| aiworkhub_repo_currentB | READ-ONLY: exact current repository, binding source, and manager route. |
| aiworkhub_repo_switchB | MANAGER OPERATION: atomically switch to one live manager-owned repo_id. |
| aiworkhub_task_createA | MANAGER WRITE: create one new canonical repo-local task card. Creation choices (also exposed as field hints): difficulty: bounded, standard, complex (optional; never inferred). work_kind: generic, bugfix, refactor, performance, security, data_ml. validation_roles: generic, reproduction, regression, parity, baseline, delta, negative_fixture, schema, distribution, suite_vs_base; one per validation command. suite_vs_base: a pytest command that passes when every failing test also fails on the candidate's base. Required roles: bugfix=reproduction+regression; refactor=parity; performance=baseline+delta; security=negative_fixture; data_ml=schema+distribution. validation: shell-free executable commands; no environment assignments, pipes, redirects or chaining. Set environment outside validation argv. custom_template_escape: audited_custom_unclassified, explicitly audited unclassified cards only, not an automatic bypass; writable escaped cards require non-empty required_outputs covered by allowed_writes. Replies with a creation receipt ( |
| aiworkhub_task_amend_pendingA | MANAGER WRITE: amend a pending card that no request was ever launched for. Use this to widen a card's scope or fix its validation before its first
launch, instead of archiving and re-creating it. Only a never-launched pending card qualifies: a launched, claimed,
archived or non-pending card is refused with
|
| aiworkhub_task_create_from_templateA | MANAGER WRITE: create one task from an authenticated template. Replies with the same creation receipt as |
| aiworkhub_task_template_listA | MANAGER READ: list the bounded repository-bound template registry. The seven built-ins are followed by one extra |
| aiworkhub_task_template_showA | MANAGER READ: show one exact short or full template ID, fail closed. |
| aiworkhub_task_plan_snapshotA | READ-ONLY: bounded Plan-DAG summary, or the complete DAG with Use this for the dependency DAG across cards; use aiworkhub_task_list for a flat card list by status. Default mode reports actionable lifecycle, ready work, blockers,
write-scope overlaps, orphaned processing and DAG validity without
repeating every finished card's dependency history. Use |
| aiworkhub_task_healthA | Check parent AIWorkHub task queue health and write-gate state. Use for the task queue and write gate only; use aiworkhub_doctor_diagnose for a cross-subsystem verdict. |
| aiworkhub_task_review_queueA | List tasks waiting for Codex review. Use this for the bare list of review-queue cards; use aiworkhub_review_packet for one candidate's full review evidence or aiworkhub_completion_inbox for the queue together with failures and stale work. |
| aiworkhub_task_listA | List task cards by status and optional topic. Use this for a flat card list by status; use aiworkhub_task_show for one card in full or aiworkhub_task_plan_snapshot for the dependency DAG. |
| aiworkhub_task_showA | Show a single task card by task_id. Use this for one card by task_id; use aiworkhub_task_list to find cards or aiworkhub_agent_task_status for a launched request's live state.
The manager-authored bodies (
|
| aiworkhub_task_auto_pickup_dryrunA | READ-ONLY: preview which task the write-gated claim WOULD take for a runner/topic. Reports the candidate task_id, a compact card, and runner/topic filtering
counts WITHOUT mutating the parent queue and WITHOUT touching the write gate.
Never invokes the write-gated auto-pickup command; uses only the read-only
|
| aiworkhub_task_dependency_autolaunch_reconcileB | MANAGER WRITE: bounded startup reconciliation for dependency-ready children. |
| aiworkhub_task_reject_reviewA | Write-gated Codex action: reject a reviewed task with exact feedback and
an explicit disposition.
Replies with a receipt ( A base_drift or validation_environment reject also starts one provider-free
replay of the retained candidate and adds
|
| aiworkhub_task_recover_blocked_reworkB | Recover one exact blocked task through the canonical transaction.
When the core result's |
| aiworkhub_task_retry_terminalA | COORDINATOR WRITE: retry one exact operational terminal episode. Only blocked cancelled/timed-out/launch/worker/process/liveness failures are eligible. The exact prior request id and substatus are mandatory; semantic validation/review failures remain on their established review workflow. The same task ID is requeued and its append-only audit history is preserved. Replies with a receipt ( |
| aiworkhub_task_reroute_launch_identityA | COORDINATOR WRITE: explicitly reroute one pending retry launch identity. Replies with a receipt ( |
| aiworkhub_task_archiveA | COORDINATOR WRITE: archive stale non-processing tasks atomically
(archived_at + card_json + an Targets: one |
| aiworkhub_manager_reconcile_dead_processingB | MANAGER WRITE: reconcile one exact authenticated dead blocked claim. |
| aiworkhub_task_supersedeA | COORDINATOR WRITE: supersede a stale/active task with a replacement. Archives the card as Replies with a receipt ( |
| aiworkhub_task_collision_guardC | Run the task collision guard for active cards. |
| aiworkhub_task_usage_reportA | Return task usage report, optionally filtered.
|
| aiworkhub_task_review_summarizeA | READ-ONLY: Inspect review queue, group tasks by topic/runner, return Codex review checklist. Use this for a topic/runner-grouped review checklist; use aiworkhub_task_codex_handoff for per-task risks and finalize commands. Calls the B110 review_summarizer core (read-only contract). Returns grouped tasks, validation commands, allowed_writes counts, and a Codex-ready review checklist shape. FROZEN INPUT SCHEMA — no write-gate toggle, no mutation parameters. Never calls taskctl done/review/start/auto-pickup/add-card. Never mutates queue or audit state. Never launches agents or model processes. Writes remain default-off regardless of input values. |
| aiworkhub_task_codex_handoffA | READ-ONLY: Codex-ready HANDOFF report for review-queue tasks. Use this for the handoff as JSON; use aiworkhub_task_codex_handoff_markdown for the same report rendered as Markdown. For each task waiting on Codex review, summarizes task_id, runner, topic, allowed_writes, validation commands, derived risks, commit-hygiene status, and a scoped stage/finalize command list — WITHOUT mutating the parent task queue. FROZEN READ-ONLY CONTRACT — no write-gate toggle, no mutation parameters. Never calls taskctl done/review/start/auto-pickup/add-card. Never mutates queue or audit state. Never launches agents or processes. Writes remain default-off regardless of input values. |
| aiworkhub_task_codex_handoff_markdownA | READ-ONLY: Codex-ready HANDOFF report rendered as compact Markdown. Builds the same B116 handoff report as FROZEN READ-ONLY CONTRACT — no write-gate toggle, no mutation parameters. Never calls taskctl done/review/start/auto-pickup/add-card. Never mutates queue or audit state. Never launches agents or processes. Writes remain default-off regardless of input values. |
| aiworkhub_supervisor_loop_statusA | READ-ONLY: derive supervisor_state + error taxonomy for a task_id. Use this for the derived supervisor state and error class of one task; use aiworkhub_agent_task_status for the raw launched request and its card. Implements the B08 contract's 7-step derivation over the LIVE queue (task_mcp_supervisor_loop_status_tool_b08_v1.json): fetch_status via core.show_task, then runner_topic_mismatch / missing_artifact / collision / stale_task / failed_validation checks, falling through to a read-only lifecycle_state -> supervisor_state mapping when none trip. FROZEN READ-ONLY CONTRACT -- no write-gate toggle, no mutation parameters. Never calls taskctl done/review/start/auto-pickup/add-card. Never mutates queue or audit state. Never launches agents or processes. Writes remain default-off regardless of input values. |
| aiworkhub_dashboard_snapshotA | READ-ONLY: build the canonical dashboard queue, health, and storage snapshot for the active repository. Use the default compact mode for manager queue summaries and status counts, or full=True for the native Webview payload; use the cheap connection-check view or the single task-card detail view instead. Reads canonical SQLite state and cached storage telemetry without mutating tasks or launching processes. |
| aiworkhub_dashboard_needfix_transitionA | USER WRITE: apply one confirmed lifecycle transition to one NeedFix or up to 25. Use this to triage, accept, reject, defer, mark duplicate or task_planned, resolve, or recover a conversion claim; archive, restore and convert have their own tools. Requires confirm=True and returns a transition receipt. A task-less fix closes with action=resolve_verified (readiness_score=100, evidence, evidence_refs) or a |
| aiworkhub_task_stale_recovery_recommendA | READ-ONLY: recommend recovery actions for stale processing tasks or blocked cards. scope="processing" (default) covers stale processing tasks. scope="blocked"
triages the blocked-card queue: one recommendation per card, |
| aiworkhub_task_cost_ledgerA | READ-ONLY: bounded cost summary, with opt-in detailed dimensions. Default mode retains cost/cache truth plus provider, model and day
aggregates, and stays bounded as usage history grows. Kept rows are also narrower than The repository binding is what makes those aggregates answerable.
|
| aiworkhub_completion_inboxA | READ-ONLY: combined completion-inbox facts for Codex orchestration. Returns five facets in one call: FROZEN READ-ONLY CONTRACT -- no write-gate toggle, no mutation
parameters. Only issues |
| aiworkhub_review_packetA | READ-ONLY: ONE bounded review packet for a Every fact a manager needs to decide a candidate is already persisted -- validation rows with their declared commands and output tails, the quality gate's checks and blockers, the worker MCP gate and its receipt-conformance verdict, required outputs, destructive-diff checks, the effective tier and its per-lens status, the deduped reviewer findings, the reachability observation -- spread across six nested objects on one card. This returns them together, under a measured byte bound. Measured over all 419 real cards carrying a quality gate: min 1,662 B, p50 6,387 B, p90 8,813 B, max 13,799 B, 0 needing truncation. It replaces per candidate 10 task-scoped calls at p50 (p90 21) and, session-wide, 1,688 hand-written Bash re-derivations (pytest 611, attempt-artifact reads 242, task_queue.sqlite scripts 250, log tails 113, git diff 155) totalling 1.45 MB. Nothing here is a verdict: every status was decided by the gate that
recorded it, and accepting still runs the whole fold in
The |
| aiworkhub_agent_launch_taskA | DUAL-GATED: launch one exact local Claude/Codex worker process. Requires both AIWORKHUB_ALLOW_LAUNCH=1 and
AIWORKHUB_ALLOW_WRITES=1. The task card, runner, topic, pending state,
allowed-write scope, collision guard, adapter, and process limit are all
validated before a shell-free child process can start.
|
| aiworkhub_quality_reviewer_launchB | DUAL-GATED: launch one independent anti-anchored quality reviewer.
|
| aiworkhub_agent_task_statusA | READ-ONLY: inspect one launched process and its authoritative task card. Use this for one launched request and its card; use aiworkhub_agent_list_processes to find recent requests or aiworkhub_task_show for a card by task_id alone.
|
| aiworkhub_agent_collect_resultA | READ-ONLY: collect bounded worker output and review-readiness evidence. Use this for one request's raw output and readiness; use aiworkhub_review_packet for the folded review evidence before deciding. |
| aiworkhub_agent_cancel_taskB | DUAL-GATED: terminate one exact process group recorded by this server. |
| aiworkhub_agent_retry_finalizationA | COORDINATOR/WRITE-GATED: retry one retained finalization request. The provider/model is never launched again. The exact successful worker
request, retained workspace, task identity and supervisor exit receipt are
revalidated before deterministic validation/finalization is re-entered.
A validation failure is eligible only when its durable reason is the
operational
|
| aiworkhub_manager_review_hold_resolveA | MANAGER WRITE: resolve one exact durable reviewer-route hold. Every chain, candidate and retired-attempt identity is mandatory. The action can only expose an already-recorded callback, authorize the one bounded distinct-route successor, or re-arm the exact pre-provider reviewer attempt after its operational blocker was repaired. It never accepts the target and never relaunches its implementation worker. |
| aiworkhub_manager_review_finding_disposeA | MANAGER WRITE: record one audited disposition of one reviewer finding.
Reproduction runs only on dismissal. When the finding's reproduction is a spec (pytest: or probe:) and the disposition is dismissed, the coordinator first runs it in the validation sandbox on the candidate and on its base, and stores the signed receipt with the disposition. A confirmed disposition needs no proof and never runs it. Only a failed test, or a probe's assertion failure or explicit exit 1, counts as failed; any other error is unrunnable. A reproduced finding can be dismissed only when counter_evidence cites the contract as for HIGH (manager_signed); otherwise review_finding_reproduced_not_dismissable and nothing is stored. not_reproduced or pre_existing may replace counter_evidence for a LOW/MEDIUM finding (HIGH still needs the citation, CRITICAL never); unrunnable changes nothing. A replay reuses the stored receipt. |
| aiworkhub_agent_accept_previewA | READ-ONLY: what would block aiworkhub_agent_accept_review right now, before any work. Use this for the cheap accept blockers of one candidate; use aiworkhub_review_packet for that candidate's full review evidence. Measured 2026-09-08: 49 of 159 accept attempts (31%) failed on a blocker that was knowable in advance -- a required lens still running, a target not yet review_ready, an approval not given -- but only after the combined tree had been materialized and two validation runs paid for. This folds exactly those cheap blockers and writes nothing. A clear preview is NOT an acceptance and NOT a promise of one. The
expensive half -- combined tree, declared validations, mechanical gate,
reviewer receipt verification by request id -- runs only in aiworkhub_agent_accept_review
and can still refuse. |
| aiworkhub_agent_accept_reviewA | COORDINATOR/WRITE-GATED: accept one Re-runs scope, required-output, and validation gates against the
retained isolated worktree, compares every changed path's hash against
the ones recorded when the request first reached review, and only then
promotes into the canonical repo and finalizes the task as done. Any
precondition or revalidation failure leaves the canonical repo untouched
and the task in review. Idempotent: accepting the same already-finished
request again returns
A successful reply is the receipt (
|
| aiworkhub_agent_list_processesA | READ-ONLY: summarize latest processes; use detail='full' for legacy records. Use this for the newest worker processes across all tasks; use aiworkhub_agent_task_status for one launched request in detail. |
| aiworkhub_dispatcher_ensure_startedA | Idempotently ensure exactly one callback dispatcher is running for the active repository, bound to the currently-selected coordinator target (B857). Called by the VS Code extension after every MCP handshake (activation, tab-deserialization, reload) and after an explicit coordinator-target switch -- never starts a second thread and never marks an uninitialized repository as degraded. |
| aiworkhub_dispatcher_healthA | READ-ONLY: dispatcher running/stopped, selected coordinator target, repository identity, pending callback count, and last delivery/error. Use this when callbacks stop arriving; use aiworkhub_source_graph_health when Source Graph answers look stale, and for a cross-subsystem verdict run the one-call doctor check. |
| aiworkhub_doctor_diagnoseA | READ-ONLY: what is wrong right now. Runs the task, dispatcher, source-graph and manager-route health probes concurrently and returns one verdict (ok/problem/unavailable) with the non-ok probes and the tool to call next, plus server_process: this answering process's pid, memory and runtime generation. Use first when something fails and the cause is unknown; use aiworkhub_environment_preflight for pre-launch readiness. |
| aiworkhub_manager_callback_lane_claimA | MANAGER WRITE: take the callback lane back for this verified manager. Selects the caller's own verified provider and session in the repository's
coordinator-target file (atomic replace, unrelated keys kept), so callbacks
and |
| aiworkhub_source_graph_ensure_startedA | Idempotently ensure exactly one Source Graph indexing daemon is running for the active repository. Safe to call repeatedly (InitRepo, activation, tab-deserialization, reload) -- never starts a second thread and never fabricates a running daemon for an uninitialized repository. |
| aiworkhub_source_graph_healthA | READ-ONLY: Source Graph indexing daemon health for the active repository -- indexing/ready/degraded status, last report/error/time. Use this when Source Graph answers look stale or fail; use aiworkhub_dispatcher_health when callbacks stop arriving, and for a cross-subsystem verdict run the one-call doctor check.
|
| aiworkhub_source_graph_refresh_nowA | Force one bounded incremental (or first-ever full) Source Graph build now, non-overlapping with the periodic background refresh. The reply is the daemon health payload: |
| aiworkhub_source_graph_stopA | Stop and unregister the active repository's Source Graph indexing daemon, if any. Called on workspace/repository switch and extension deactivation so no cross-repository indexing thread survives. |
| aiworkhub_claude_callback_waitA | BLOCKING READ/CLAIM: wait for a callback for this verified Claude
Code manager session. Acknowledge the previous batch by passing its
|
| aiworkhub_claude_callback_ackB | WRITE: acknowledge one exact callback batch returned to this same verified Claude manager session. |
| aiworkhub_session_token_profileA | READ-ONLY: observed provider tokens plus separately-labelled prompt bytes. Use to see where one session's input tokens went; use aiworkhub_task_cost_ledger for per-task cost instead. |
| aiworkhub_quality_run_checksA | Run repo-declared .aiworkhub/quality.json build/test/lint/typecheck
commands (argv arrays only, shell=False). Fails closed on malformed
config. Diff/new-code-first: pass |
| aiworkhub_quality_evidence_packetA | READ-ONLY: full canonical evidence packet -- profile, declared checks, risk-based optional-gate policy metadata (not_available != passed), and the cross-provider read-only quality_reviewer contract. |
| aiworkhub_environment_preflightA | READ-ONLY: unified repository/policy/Source Graph/provider readiness. Use before launching workers to confirm readiness; use aiworkhub_doctor_diagnose when something is already failing. Provider access is reported as observed only when an adapter-specific
bridge or credential readiness source proves it; installed CLI binaries
alone remain
|
| aiworkhub_storage_recover_stranded_worktreesA | Recover retained worktrees stranded outside every reclamation path. NF-2026-00279: the storage observability surface recommends this recovery, but it had no tool/MCP/CLI entry point, so an operator was told to run something they could not. This exposes it as a real action. READ-ONLY first: |
| needfix_listA | List repo-scoped NeedFix entries (bounded); rows are a compact projection. Measured: 379 rows were 452 KB, about 1.2 KB each (NF-2026-01722, NF-2026-01726). By default each row keeps only id, title, status, severity, kind, converted_task_id and updated_at; |
| needfix_showA | Show one NeedFix by id, or up to 25 in one call; a body over 1 KB folds to its own identity. Use this for the current fields of one NeedFix, or pass needfix_ids to read several in one call; use needfix_list to find ids or needfix_events for its audit history. Measured 2026-10-09: 51 calls, avg 4 KB, max 12 KB, almost all of it the
description and evidence bodies the filer wrote (NF-2026-01447). Each body
whose own canonical bytes exceed |
| aiworkhub_manager_needfix_draftA | READ-ONLY: draft the NeedFixes one request's own review evidence justifies. A NeedFix could not be drafted from the evidence that justifies it, so it was retyped. Measured 2026-09-08: of 204 manual filings, 76 had an accept/ reject/status/collect result within the previous 15 calls, 43 carried a 32-hex request id, and 355 of 540 typed identifiers (66%) appeared verbatim in the previous 15 tool results; 453 of 557 stored rows carry a hand-typed evidence dict at p50 549 B. Meanwhile 589 accepted-shape reviewer findings and 1,623 failed-gate payloads became a NeedFix only if someone retyped them, and reviewer cards are archived (1,796 so far), taking every unconverted finding with them. Everything returned is mechanical: title from the failing check id or the
finding summary, kind and severity from the finding category through a
fixed map, The DESCRIPTION is deliberately empty -- it is your judgement about what to
do, not a fact on the card, and this never invents one. Writes nothing:
file a candidate with |
| needfix_addA | Manager-authority add of a NeedFix (dedupe-aware).
Replies with a receipt ( |
| needfix_updateA | Manager update of mutable NeedFix fields.
Replies with a delta receipt ( |
| needfix_archiveA | Explicitly archive (soft, audited, restorable) a NeedFix. Use this to retire a NeedFix from the active inbox; use needfix_restore to bring an archived one back or needfix_update to edit its fields instead. |
| needfix_restoreA | Explicitly restore an archived NeedFix. Use this to bring an archived NeedFix back into the inbox; use needfix_archive to retire an active one. |
| needfix_countA | Bounded count of NeedFix entries. Use this for a single number; use needfix_list for the matching rows themselves. With breakdown=true the reply is {count, by_work_state, by_status, derived, underived_reason}: count is the same number, and the two maps split the same candidate rows by work state (untriaged, decided_no_card, in_work, stalled, reopened, deferred, closed) and by status. |
| needfix_eventsA | List events for a NeedFix entry. Use this for one NeedFix's audit history; use needfix_show for its current fields. |
| aiworkhub_manager_sdlc_outcome_metricsC | READ-ONLY: bounded outcome metrics from canonical task/review events. |
| needfix_preview_convertA | Preview an explicit workforce-bound task conversion. The reply keeps |
| needfix_convertA | Convert an accepted NeedFix into a task card; With |
| needfix_link_existing_taskA | Manager-only: atomically link a NeedFix to an existing, finished, accepted task. |
| needfix_reopen_superseded_task_linkA | Manager-only: reopen a NeedFix whose exact linked task was superseded. |
| roadmap_listA | List bounded repository Roadmap outcomes; outcome and acceptance bodies fold to their identity. Measured: the same rows roadmap_snapshot(limit=60) returned were 174 KB, 61% outcome and acceptance bodies (NF-2026-01726). By default both fold to |
| roadmap_showA | Show one Roadmap outcome. Use this for one outcome's stored fields by id; use roadmap_list to find ids or roadmap_snapshot for every outcome joined to its linked tasks. |
| roadmap_snapshotA | Return the Roadmap with each outcome joined to the live status of its linked tasks. Measured: Use this to see what is done, blocked or ready across the roadmap in one call. The
other roadmap tools return stored fields only: The reply is |
| roadmap_addA | Manager-only Roadmap proposal; does not create or launch a task. |
| roadmap_transitionA | Manager-only guarded Roadmap lifecycle transition. Use this to change an outcome's status; use roadmap_link_task to attach a task without changing status. |
| roadmap_link_taskA | Link one existing canonical task to a Roadmap outcome. Use this to attach a task to an outcome; use roadmap_transition to change the outcome's status. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 117 tools
Many tools carry explicit routing prose ('use X for..., use Y for...'), which genuinely helps separate lookalikes such as task_show vs agent_task_status vs supervisor_loop_status and task_list vs review_queue vs plan_snapshot. But the set still has real overlap clusters: completion_inbox vs dashboard_snapshot vs task_review_queue, codex_handoff vs codex_handoff_markdown vs review_summarize, needfix_archive vs dashboard_needfix_transition vs needfix_update, and needfix_add vs manager_needfix_draft. At 117 tools the reader must hold a large disambiguation graph in working memory even though each individual pair is documented.
The dominant style is snake_case, and the manager_* family (manager_kb_get/search/related, manager_recipe_list/show/run) is internally consistent. However the set mixes an aiworkhub_ prefix on most tools with unprefixed needfix_* and roadmap_* families, and mixes verb_noun names (task_create, needfix_archive) with bare noun names (review_packet, completion_inbox, dashboard_snapshot, task_health, task_collision_guard, task_review_queue). It is readable but not predictable from name alone.
The platform genuinely spans many subsystems (task lifecycle, review, NeedFix, roadmap, skills, recipes, KB/memory/context graph, source graph, dispatcher, storage), so a large surface is partly earned. Still, 117 tools is far past what an agent can reliably select from, and several near-duplicate or facet-of-a-larger-tool entries (needfix_count, codex_handoff_markdown, dashboard_snapshot) look like candidates for folding into callers that already exist. This is over-scoped for reliable tool choice even if few tools are individually trivial.
Coverage is unusually thorough: create/amend/list/show/archive/supersede/supersede-recover/retry/reroute for cards, full review evidence plus accept/preview/reject/finding-dispose/hold-resolve, and complete lifecycle sets for NeedFix (add/update/archive/restore/convert/events/count), roadmap, skills, recipes, KB, AI memory and context graph. Preview/commit/status/health/diagnose/doctor companion tools mean few workflows dead-end, and read-only previews exist alongside every gated write. No material gap is apparent for the stated orchestration purpose.