Define the work model: duties, work items, scopes #38

Merged
dongar merged 1 commits from work-model into main 2026-09-23 20:31:29 +00:00
Collaborator

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

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)
dev-agent added 1 commit 2026-09-23 20:26:27 +00:00
Define the work model: duties, work items, scopes
CI / checks (push) Skipped
CI / checks (pull_request) Successful in 53s
2c9a082e5b
"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>
dev-agent force-pushed work-model from 5c23389984 to 2c9a082e5b 2026-09-23 20:26:27 +00:00 Compare
dongar approved these changes 2026-09-23 20:31:25 +00:00
dongar merged commit 182216296d into main 2026-09-23 20:31:29 +00:00
dongar deleted branch work-model 2026-09-23 20:31:29 +00:00
Sign in to join this conversation.
No Reviewers
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dev/nisse#38