Conversations on the new loop (M2.5, PR A)
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 5m14s

- A top-level message that isn't a command is a conversation: an item in
  the `general` scope (L1), threaded under the operator's message, with
  `reply`, `ask_human` and `propose_work` and no workspace or execution.
  `general` is reserved as a project name.
- propose_work(project, title, summary) goes up as a revision for a
  go-ahead (or a plain yes). On go, under a file_issue intent (L8), the
  record issue is opened in that project, assigned to the agent and
  carrying the new item's ID; its item starts agreed, with the summary as
  its brief. Intake skips any issue carrying an ID (D1); boot adopts a
  filed issue or puts the proposal up again.
- A conversation closes after tuning.loop.general_idle_s (default a day);
  a reply in its thread then starts a new conversation that continues it.

Tests: conversation unit tests (threading, filing, the marker, an unknown
project, changes, idle close and continuation, a plain yes, both crash
cases, commands at top level); the walk with conversations, proposals and
idle time, and records_have_one_item / conversations_do_no_work; an e2e
conversation that becomes filed work.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-06 04:26:40 +00:00
1 parent d70d43a8cc
commit 3f54896f65
14 files changed
+811 -35

No files matched your search

+11
View File
@@ -190,6 +190,17 @@ conversation, record issues carrying their item's ID, the new-project flow and i
project entry (D1, D8, #29). After M1.4. End-to-end: a small new project, in a
repository the test operator creates under its own account for the run and
deletes afterwards.
- **PR A, conversations — done (this PR).**
- A top-level message that isn't a command is a `general` item, threaded under
it; the driver gets `reply`, `ask_human` and `propose_work`, with no workspace.
- Agreed work (a go-ahead, or a plain yes, on the proposal) is filed under an
intent as a record issue carrying the new item's ID. Its item starts agreed,
with no second restatement. Intake skips any issue carrying an ID, and boot
settles a filing cut off by a crash.
- A conversation closes after `tuning.loop.general_idle_s` without a message; a
reply in its thread then starts a new one that continues it.
- **PR B, new projects:** the proposal, the checklist, reload-and-verify, and the
tracking issue; the e2e with a per-run repository.
**M2.6 Roles and capability profiles.** *Pre-approved.* `driver`, `helper`,
`expert`, `classifier` (L9); escalation triggers; delegation and `ask_expert` on the
+10
View File
@@ -526,3 +526,13 @@ thread stops the countdown, and `go` starts at once.
- **Deciding:** about the time it takes you to notice a message and read it
when you're around. A wrong start costs only time, since the fix still comes
as a PR you review.
### `tuning.loop.general_idle_s` — default 86400
How long a `general` conversation (one not about a project, architecture L1)
stays open without a message. It then closes with a note in its log; a later
reply in its thread starts a new conversation linked to it.
- **Too low:** a conversation you come back to after lunch has to be picked up
again from its summary.
- **Too high:** idle conversations pile up in `status` and in the queue.