Skip to content

docs: record the decisions of the integrated pull request map - #83

Draft
fveracoechea wants to merge 13 commits into
mainfrom
docs/integrated-delivery-unit
Draft

fveracoechea wants to merge 13 commits into
mainfrom
docs/integrated-delivery-unit

Conversation

@fveracoechea

@fveracoechea fveracoechea commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Summary

This draft collects the glossary and ADR changes of Map the integrated pull request workflow, one commit for each decision.
The map is now complete: every decision ticket is closed, and "Not yet specified" is empty.

 work source
-  assignment → pull request (head checked at acceptance)
+  integration branch (one commit for each accepted code result, in landing order)
+    submit      refuses a file outside the write paths, uncommitted work, a behavior change with no basis
+    frontier    holds overlapping write paths inside one source
+    accept      result review, project gate on the candidate, then the CLI lands the commit
+    branch review of the whole head, then publish
+  → pull request stack (merge commits, bottom up, merged by a person)
+  → tracker steps after the observed merge
docs/adr/0015 … 0016          # delivery unit, registration (earlier commits)
docs/adr/0017-…reviewed-as-a-whole-before-it-is-published.md
docs/adr/0018-…checked-at-submit-against-its-authority-limits.md
docs/adr/0019-…planning-decision-is-recorded-at-acceptance….md
docs/adr/0020-…cli-lands-each-accepted-commit….md
docs/adr/0021-…passes-the-project-gate-before-it-lands.md
docs/adr/0022-…cli-publishes-the-stack….md
docs/adr/0004 0005 0006 0007 0008 0009 0010 0015 0016 0017 0020 0021   # amended in place
CONTEXT.md                    # new and sharpened terms for each decision

Start with ADR 0020, then ADR 0021 and ADR 0022.
Each commit names its decision ticket, and each ticket holds the full resolution.

The decisions after the first two were made by the main agent under the user's delegation to decide from ~/OPINIONS.md, with a grilling sub-agent for each ticket.
Each resolution says so, and none of them is recorded as a human answer.
The resolution of Choose how a decision before dispatch reaches dependent work lists the three decisions that rest on no named source.

Evidence

Docs only.
bun run quality: format, lint, typecheck, and module checks pass.
bun test: 583 pass and 1 fails on this Mac.
The failure is modules/operator-release/main.test.ts:73, which The release artifact test fails on macOS when TMPDIR ends with a slash tracks, and it also fails on main.

Merge Danger

Door: two-way

Text only, but the build of this map follows these records.

Blast Radius: docs

🤖 Generated with Claude Code

Choose the delivery unit for a source settled that a source delivers one
integration branch, published as a pull request stack, with one commit for
each accepted code result. The glossary and the ADRs change first, so the
build that follows the map lands under them.

ADR 0015 records the decision. ADR 0007 and ADR 0009 are amended, because
acceptance now compares the reviewed patch with the integration branch
instead of a pull request head.
Choose how a source is registered from a parent issue settled that the
CLI reads each work source from the tracker, and that Operator never
creates an issue. The tracker holds the structure, and the Operator input
holds only the fields the tracker does not hold. Registration is
deterministic and previewed, so an approval covers exactly what gets
recorded.

ADR 0016 records the decision. ADR 0004 is amended, because a new source
revision is no longer a conflict by itself.
Choose where the shared rule block of a brief lives settled that the
block splits by owner. The release owns the rules that are the same for
every launch, and the brief states each one beside the command that
enforces it. The committed project instructions own the rules of one
project, and the base commit fixes them for a launch.

ADR 0005 is amended, because it already owns what a launch fixes and
copies. The glossary adds Brief and Project instructions.
Choose where review looks settled that two reviews run. The result
review of each submission stays the gate of accepted completion, so no
barrier holds parallel work. One branch review then reads the
integration branch of a source as a whole, and it gates the publish of
that exact head, because only a reader of two commits sees a relation
between them.

ADR 0017 records the branch review. ADR 0007 is amended, because a
review now reads a fixed copy of the requirements and its subject can
be a branch snapshot. ADR 0008 is amended by one sentence for the
branch review limit of a source.
Choose the recorded checks on a result settled that submit checks a
result against its authority limits before any review reads it. It
refuses a file outside the write paths, work that is not committed, and
a behavior change with no recorded basis, so the Operative that holds
the context makes the fix. A change found outside the worktree is
recorded, and acceptance waits until it is disposed, because the scan
cannot name the writer.

ADR 0018 records the checks and the write-path grammar that the
frontier also reads. ADR 0007 is amended, because a submission and its
review now carry the behavior changes and the outside changes.
Choose how the frontier holds overlapping write paths settled that the
frontier never offers a production assignment whose write paths overlap
the paths that unaccepted work of the same source holds. Two results that
change one file from one base can combine with no conflict and still
change a patch, and acceptance refuses a changed patch after its review
is done, so the frontier prevents that waste before dispatch.

ADR 0004 is amended, because the frontier gets one more rule. It reads
the write-path grammar that ADR 0018 records.
Choose how a decision before dispatch reaches dependent work settled
that planning acceptance records a planning record, and that dispatch
derives it into the brief of each direct dependent from the dependency.
The Operator input names no receiver, so no dependent is forgotten and
no word is copied wrong. A grilling or a prototype never records an
Operator decision, because it is the user's side of a decision, and a
requirement must quote a stored copy of its source.

ADR 0019 records the decision. ADR 0006 is amended, because a
requirement now names its source by a stored copy. ADR 0004 points to
ADR 0019, and one reason in ADR 0005 is corrected, because a reviewer
now reads a copy of the producer's requirements.
Choose who integrates accepted commits settled that the CLI lands each
accepted commit on the integration branch as the last step of
acceptance, with no worktree and no edit. The flow proved the procedure,
and a machine can check a landing by its patch, so the step needs no
agent. The branch moves only from the tip the crew recorded, so a moved
branch stops the work instead of being repaired. A corrected commit is
rewritten in place, so each assignment keeps one commit that passes on
its own.

ADR 0020 records the decision. ADR 0008 is amended, because Operator
now moves one branch. ADR 0015, ADR 0016, and ADR 0017 are amended where
they left this decision open or depend on it.
Choose who makes a correction settled that a fresh Operative writes
every correction, and that the attempt of the producer still ends at its
submission. A producer kept for its review would hold a crew slot or run
uncounted, and two of the three correction kinds could never reach it,
so a producer path would sit beside the fresh path that must exist
anyway. The brief of every cycle carries what the crew state recorded
about the earlier rounds, which recovers the part of the producer's
context that a record can hold.

ADR 0008 is amended, and it names repair by the producer as a rejected
option with its cost. ADR 0005, ADR 0017, and ADR 0020 are amended in
one sentence each.
Choose the preservation proof for cleanup after integration settled
that removal proves the accepted result from the recorded landing: the
integration branch, at its recorded tip, must still hold the commit that
carries it. Nothing pushes before publish, and a merge landing or a
rewrite gives a result a new commit, so a remote copy of every commit
would refuse almost every removal. Acceptance already proves the patch,
so cleanup proves only that the landed commit is still on the branch.

ADR 0010 is amended, because only the remote-copy detail of its proof
reversed. ADR 0020 records that each landing names the commit that
carries its result.
Choose the gate at every commit of the integration branch settled that
every commit, and the integration base, passes one project gate before
the branch moves. The project declares the gate in a committed file,
read at the integration base, so no result chooses the gate that scores
it. The CLI runs it in a Herdr checkout through an Operator runner that
reads each exit status itself, because an agent report of a pass is a
claim. A failure is never erased, and a later pass makes the key flaky,
which blocks.

ADR 0021 records the decision. ADR 0005, 0007, 0008, 0015, 0017, 0018,
and 0020 are amended where they named the gate, the start of an
integration cycle, or a worktree of the Operator.
Choose how a registered assignment is withdrawn from its source settled
that a person withdraws an item by removing its issue from the parent,
and the next registration records it behind the plan approval. Without
it, an item nobody wants would hold the branch review and the publish
of its source for ever. A landed commit of a withdrawn item leaves the
integration branch through a take-out, which is the rewrite of ADR 0020
with no replacement.

ADR 0016 is amended, because its refusal of a missing item becomes the
withdrawal rule. ADR 0004, 0010, 0017, and 0020 are amended where the
hold, the removal gate, the branch review, and the rewrite meet it.
Choose how the integrated pull request is opened and linked settled that
the CLI publishes the stack behind one approval, with one atomic push of
new remote names and a body rendered from the records plus a closed set
of Operator sections. A person merges each part with a merge commit,
bottom up, so every commit reaches the target as it was gated and
reviewed. The tracker steps of a code result run after the observed
merge, so a commit link is final and a closed ticket means its commit
reached the target.

ADR 0022 records the decision. ADR 0008, 0015, 0016, 0017, 0020, and
0021 are amended where they left publish open or depend on it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant