Edits the spec directly (no separate amendment). Defines the units that both agents' work is organised into, as a new top-level section 0.2:
Duty: a standing responsibility that produces work items. Duties exist in ops (scheduled checks, log monitoring, alert intake); the Dev Agent has none yet.
Work item: one effort, the unit of state and of the transcript. It is identified by a locally minted id (A9's task_id), and it may link to an external record (a Gitea issue or Vikunja ticket). A general question is a work item with no record.
Scope: what a work item operates on (a repo, or a site and service). Many work items can share one scope.
Park-and-switch: one active work item per agent. The schema must not assume only one item.
Also:
0.1: records designing the identity model ahead of extraction as a bounded exception.
A2, A4, A9, A10, B1/B2, C4: now use these terms.
Part H: parks concurrency with its costs listed, and leaves open when a work item must have an external record.
Choices in this change that go beyond what we discussed, for review in particular:
A milestone is a phase within a work item, not a work item of its own, so starting a milestone no longer creates a new task_id (A9).
An approval that arrives on a parked item's record waits until that item is active again, and is never applied to the active item (A4).
Switching is refused while intents are unresolved, to keep boot reconciliation single-item (0.2).
Unblocks #27, which becomes the Dev Agent's first implementation of this model.
Edits the spec directly (no separate amendment). Defines the units that both agents' work is organised into, as a new top-level section **0.2**:
- **Duty:** a standing responsibility that produces work items. Duties exist in ops (scheduled checks, log monitoring, alert intake); the Dev Agent has none yet.
- **Work item:** one effort, the unit of state and of the transcript. It is identified by a locally minted id (A9's `task_id`), and it *may* link to an external record (a Gitea issue or Vikunja ticket). A general question is a work item with no record.
- **Scope:** what a work item operates on (a repo, or a site and service). Many work items can share one scope.
- **Park-and-switch:** one active work item per agent. The schema must not assume only one item.
Also:
- **0.1:** records designing the identity model ahead of extraction as a bounded exception.
- **A2, A4, A9, A10, B1/B2, C4:** now use these terms.
- **Part H:** parks concurrency with its costs listed, and leaves open when a work item must have an external record.
Choices in this change that go beyond what we discussed, for review in particular:
- A milestone is a phase within a work item, not a work item of its own, so starting a milestone no longer creates a new `task_id` (A9).
- An approval that arrives on a *parked* item's record waits until that item is active again, and is never applied to the active item (A4).
- Switching is refused while intents are unresolved, to keep boot reconciliation single-item (0.2).
Unblocks #27, which becomes the Dev Agent's first implementation of this model.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
"Project" was carrying several things at once: the repo, the effort
through arch plan and milestones, and the transcript's scope. The
Sysadmin Agent needs the same distinctions in a different shape, with
standing duties that produce many efforts over one scope. New section
0.2 names them:
- Duty: a standing responsibility that produces work items, and owns
deduplication of its findings
- Work item: the unit of state, identified by a locally minted id
(A9's task_id), optionally linked to an external record
- Scope: what a work item operates on, shared across work items
- Park-and-switch: one active work item, switching only at safe
points, nothing lost while parked; the schema does not assume one
0.1 records this as a bounded exception to extract-after-it-works:
identity is designed ahead, behaviour is not. A2, A4, A9, A10, B1/B2
and C4 now speak in these terms; the transcript is scoped per work
item, and a milestone no longer mints a task_id. Part H parks
concurrency with its costs, and leaves open when a work item must
have an external record.
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Edits the spec directly (no separate amendment). Defines the units that both agents' work is organised into, as a new top-level section 0.2:
task_id), and it may link to an external record (a Gitea issue or Vikunja ticket). A general question is a work item with no record.Also:
Choices in this change that go beyond what we discussed, for review in particular:
task_id(A9).Unblocks #27, which becomes the Dev Agent's first implementation of this model.
🤖 Generated with Claude Code
5c23389984to2c9a082e5b