controllers-policy
Autonomy contract and routing index for autonomous project controllers. Loaded every tick;…
Steer sandboxed.sh projects, roadmaps, decisions from chat.
$ npx -y skills add Th0rgal/sandboxed.sh --skill project-manager --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/project-managerContext preview
The summary Claude sees to decide when to auto-load this skill.
Steer sandboxed.sh projects, roadmaps, decisions from chat.
name: project-manager
description: Steer sandboxed.sh projects, roadmaps, decisions from chat.
version: 2.0.0
author: thomas
license: MIT
platforms: [linux, macos, windows]
prerequisites:
tools: [mcp]
metadata:
hermes:
tags: [Projects, Roadmap, Orchestration, Autonomy]To withdraw work still queued, call `cancel_action(action_id, idempotency_key)`. Read its receipt: `cancelled=false` means dispatch already started or settled; use the existing mission/job cancellation tool after inspecting the target. Cancelling an MCP request or closing stdio does not cancel accepted work.
When the owner asks about their projects ("how is X going?", "what's on the roadmap?", "what needs me?"), wants roadmap items added/edited/cancelled from conversation, answers an escalated decision, or asks to change a project's autonomy grant. Requires the `sandboxed_assistant` MCP server.
Use the `sandboxed_assistant` MCP tool family to talk about the owner's projects with real data, never from memory. Every project is identified by its `slug`.
The server runs `sandboxed-mcp` with a scoped coordinator credential. Read `get_capabilities` if a tool is unavailable; only an operator session can change autonomy grants or infrastructure. Do not bypass the boundary with an owner token or a direct API call.
Every mutation requires an `idempotency_key` and returns an action receipt. Keep the same key and arguments after a lost response. Read `get_action` until it settles before reporting the change as applied. An action marked `reconciliation_required` has an uncertain outcome: inspect existing state, do not repeat it under a new key. A completed launch action means its mission was created, not that the mission finished or its evidence was accepted.
1. `list_projects` — the roster with buckets (attention/active/paused) and health. Start here when the owner asks "how are my projects doing?". 2. `get_project <slug>` — objective, status/mode, blocker, next action, grant, open decisions, recent decisions (the decision ledger), tracks. 3. `get_project_tasks <slug>` — the roadmap: board tasks planned by the project's boss missions plus chat-planned proposals (`status: "proposed"`), with result digests, PR links and attempts. Use `get_situation <slug>` for authoritative verified progress; a completion claim is not verified evidence.
When summarizing, lead with what needs the owner (open decisions, blockers, failed tasks), then progress (summary done/total), then what is running.
project (`task_key`). A proposal is a *plan*, not dispatched work: the project's controller adopts it by planning a real board task under the same key, at which point the proposal drops out automatically.
criteria, dependencies). Board tasks already adopted belong to their boss mission — steer the mission instead.
Prefer small, verifiable items with acceptance criteria over vague epics. Re-planning an existing key updates it in place (idempotent), and revives it if it was cancelled.
verdict (only when the owner has actually decided in the conversation).
when you are operating as the project's controller.
(observe/propose/act_reversible/act_full), merge authority (`full | repo:a,b | review-first`), budget per tick, parallel missions. Change it only on the owner's explicit request through an operator session. A coordinator may read the grant but cannot broaden it.
Unscoped coordinator sessions can read the project roster. Project-scoped sessions can access only their bound project. When the conversation is about one project, do not mutate another one's state without naming it and getting the owner's confirmation first. Reads are always fine.
Workspace Git operations (`create_worktree`, `remove_worktree`, `merge_branch`) require a coordinator/operator session, an explicit `mission_id`, and an idempotency key. Core routes them to that mission's current machine. Paths stay inside the mission root; use `repo_path` for a nested checkout. Removal preserves dirty worktrees. Merge requires a clean checkout already on the target branch; inspect conflict/abort evidence before assigning a resolver. Core task-board worktree planning uses the same workspace executor. Task-board scheduling for node/client bosses and desktop-owned workspace operations remain unavailable until their execution routing is migrated. Never substitute a Core path.
An operator may settle an uncertain action with `reconcile_action`, using the original mission/project scope and concrete evidence from the target. It never replays the action. Do not mark it rejected unless absence of effects is verified.
Workspace jobs follow the mission placement on Core or a node. A remote job receipt includes `remote.node_id` and `spawn_accepted`; `unknown` after a lost response requires inspecting the existing job ID, never a new submission key. Node logs combine stdout/stderr. Cancellation is complete only when the node reports a terminal state. Unsettled jobs prevent moving the workspace.
`get_cloud_execution` returns the latest turn by default, omits prompts, and caps each result/detail excerpt at 4096 Unicode characters. Use `offset=0` for history. Follow `page.next_offset` with `offset` to read new turns; poll the unfinished turn again until it is terminal. For a longer result, use
Safe runtime for autonomous on-chain AI agents: isolated sandboxes, Library skills, encrypted secrets.
Autonomy contract and routing index for autonomous project controllers. Loaded every tick;…
How Hermes monitors and steers long-running sandboxed.sh missions (days to weeks): diagnose…
Persistent read-only advisor mission. Build a mental map of the repository once, then answer…
Boss skill for parallel worker orchestration. Analyze, split, delegate by outcome, judge by…
Executor skill: do the work yourself, and consult a single persistent smart-model advisor via…
Worker skill for boss-spawned missions. Stay within scope, verify, and report blockers…