Skip to content
6 changes: 6 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,12 @@ GitHub configuration, and docs/ai-accounts.md for AI profiles, named roles and
explicit launch/usage selections. A38 visibility lookup requires a configured
GitHub session unless visibility is explicitly supplied.

The optional static issue coordinator is configured through
`$AGENT_HOME/coordinator.json`; see [docs/issue-coordinator.md](docs/issue-coordinator.md).
`agent coordinate --session ID` advances the selected worker; `--follow` is the
script-owned loop. Installation enables no worker. Legacy assignment dispatch
and `supervise` refuse a session selected for this coordinator.

Draft publication is immediate after the first signed task commit; see the
lifecycle. A draft plus local tests is not done. Ready for review is signed
commits on a branch in this repository, grok quality and logic then Codex
Expand Down
21 changes: 16 additions & 5 deletions DESIGN.md
Original file line number Diff line number Diff line change
Expand Up @@ -632,13 +632,24 @@ hostnames belong in the deployment configuration, not this public repository.
that human merge, as defined in the lifecycle.

**Existing implementation boundaries.** This requirement is not a claim that
the complete workflow is already implemented or enabled on a deployment:
the workflow is enabled on a deployment:

- The optional [`coordinator.py`](src/agent_cli/coordinator.py) entrypoint and
[`coordinator_runtime.py`](src/agent_cli/coordinator_runtime.py) provide the
script-owned issue workflow. Its explicit device configuration, evidence
requirements and recovery boundaries are described in
[docs/issue-coordinator.md](docs/issue-coordinator.md). `agent coordinate
--session ID` performs a bounded advancement; `--follow` is the script's loop.
No worker, account or role is installed by default.

- [`watch.py`](src/agent_cli/watch.py) implements assignment scanning, a queue,
workspace files, and session dispatch. `dispatch_assigned` does not publish an
acceptance comment before starting the session.
- [`daemon.py`](src/agent_cli/daemon.py) starts knock, dashboard, CLI bridge, and
paired sync. It does not start `agent watch assigned --follow`.
paired sync, plus each explicitly configured coordinator worker. Changes to
the daemon's worker set require a daemon restart. It does not start the legacy
`agent watch assigned --follow`. Legacy dispatch and `supervise` refuse
sessions selected for the coordinator.
- The shipped `ask=False` path in
[`supervise.py`](src/agent_cli/supervise.py) does not acknowledge completion of
an assignment from verified PR results. Its optional closed-question path is
Expand Down Expand Up @@ -676,9 +687,9 @@ or role selections. A38 visibility lookup uses an explicitly bound GitHub
session, or operator-supplied visibility without a GitHub lookup.

The standalone PR guard retains its explicit workflow-token configuration.
Trusted script APIs and raw terminal commands are not a sandbox. Complete
issue-to-PR orchestration and technical restrictions on model tools remain
separate work as documented in §19.7.
Trusted script APIs and raw terminal commands are not a sandbox. The optional
issue coordinator and its deployment boundaries are documented in §19.7;
technical enforcement of every model tool restriction remains separate work.

## 20. Refused: hub as a coding control plane

Expand Down
10 changes: 9 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,8 @@ agent knock # valid foreground loop; the user-service daemon is the
agent watch pr-merged # one scan; needs GitHub CLI (`gh`); the device daemon covers the loop
agent watch pending # one scan; runs subscription.set and query.request against the hub
agent watch grok-usage # one scan of SuperGrok weekly credits into usage.snapshot
agent watch assigned [--follow] # allowlisted assignments; needs `gh` and `$AGENT_HOME/watch.json`
agent coordinate --session ID [--follow] # explicit static issue workflow; coordinator.json
agent watch assigned [--follow] # legacy assignments; needs `gh` and `$AGENT_HOME/watch.json`
agent watch errors # one scan; $AGENT_HOME/error-fix.json; no log host in this package
agent watch error-fix # one scan; find-or-create implement task + isolated worktree
agent supervise --session ID [--repo OWNER/REPO --number N] [--once|--follow]
Expand All @@ -131,6 +132,13 @@ agent supervise --session ID [--repo OWNER/REPO --number N] [--once|--follow]

`agent supervise` posts a short status line to Telegram when both `TELEGRAM_BOT_TOKEN` and `TELEGRAM_CHAT_ID` are set in the environment. The follow CLI does not ask closed questions. Working vs not working for paging is whether the Grok tmux session exists: it posts `not working` only when that session is gone, not when the prompt is idle between turns. The TUI working probe (`Thinking…`, `Waiting for response`, `Preparing …`, `[stop]`, `Esc:cancel`, `command still running`, queued `Enter to send now`) is for the follow loop, not for Telegram. A send failure is printed to stderr and does not stop the loop. Credentials stay out of git.

The optional [issue coordinator](docs/issue-coordinator.md) uses explicitly
configured worker sessions, GitHub and AI accounts, checks, and workspace roots.
Installation starts with no configured worker. `agent coordinate --session ID`
advances one worker; `--follow` lets the script observe later events. The daemon
starts configured workers on startup; changing its worker set requires a restart.
Legacy `watch assigned` dispatch and `supervise` refuse those worker sessions.

The error-fix executor find-or-creates the implement task and isolated worktree; `agent github pending` still opens draft pull requests.

`agent watch grok-usage` uses the existing Grok login token from the Grok auth file, does not start a Grok session, and does not knock the TUI. Each `usage.snapshot` includes the account email, provider, and subscription tier. Under the device daemon, the knock child records those snapshots (and scans pending, `pr.merged`, github pending, mail pending, errors when `$AGENT_HOME/error-fix.json` exists, and pending `error.fix`) on the same interval. `agent daemon --install` / `--uninstall` manage the user service; `agent init` already installs and starts it.
Expand Down
Loading
Loading