diff --git a/trios/docs/par-a.md b/trios/docs/par-a.md index 6135adaf42..1c2ce194f2 100644 --- a/trios/docs/par-a.md +++ b/trios/docs/par-a.md @@ -1,7 +1,9 @@ -# Parallel Work — Layer A +# Parallel Work — Track A -1. Parallel work in Trios means that multiple workers operate on the same repository at the same time, each on an isolated branch that the Queen provisions. No worker checks out another worker's branch, merges anything, or commits to shared lines. The shared checkout is the arena: every worker reads from it, nobody writes to it directly, and the Queen is the only entity that lands completed work. +Parallel work in Trios is the Queen splitting one effort into slices that run at the same time, each slice pinned to exact file paths before any worker starts. The boundary is the whole safety story: a worker may create or edit only the paths named in its specification, and anything it writes elsewhere is dropped rather than reviewed. Two workers are never pointed at the same file — when needs overlap, the Queen sequences them, so the second begins from the landed state of the first. Collision prevention is a planning act, not a merge act. -2. The Queen prevents collisions by scoping each task to explicit file paths. A worker may only create or edit files listed in the boundary section of its specification. If two workers need the same file, the Queen sequences them rather than running them concurrently, so that the second worker starts from the landed state of the first. This makes conflicts a planning failure rather than a merge problem. +Independence is deliberate. A worker does not read a sibling's output, wait on it, or assume it passed: each task must stand on its own acceptance criteria whatever the others did. Verification follows the same line — every worker answers its own criteria, one by one, plainly, and the Queen reviews the actual edit against the spec before anything lands. Work that looks obviously needed but is not in the spec gets raised in the report rather than done quietly, because unstated scope is where a review turns into an argument. -3. Verification is individual, not collective. Each worker answers its own acceptance criteria before stopping, and the Queen reviews every criterion against the actual diff before landing anything. A worker does not assume that a sibling task passed, nor does it depend on another worker's output. Independence is the invariant: the result of one task must not depend on the outcome of another task that ran in parallel. +Workers write files and nothing else: no branch switches, no branch creation, no commits. The checkout is shared with the user, the build, and every other worker; attribution happens after the turn, when the Queen lands the work on the worker's branch. + +One practical lesson from this very track: the specification's paths are relative to the project the issue belongs to, not to wherever a worker's shell happens to open. Reading the boundary against the wrong root sends the edit outside the owned paths, and the Queen's committer rightly sweeps up nothing. Resolve every path against the repository root before writing.