feat(genesis/A11): Reconciliation Loop architectural pattern + selection rule#7
Merged
Merged
Conversation
…ion rule (refs #6) Add A11 RECONCILIATION LOOP as a Tier-3 architectural pattern in the genesis catalogue, sibling to A8 ALIGNMENT LOOP. A8 stays as single-target convergence; A11 covers queue-of-targets convergence with per-item bounded loops, cross-item interlocks, and a fold-vs- defer policy at the queue level. Classical lineage: Kubernetes Operator pattern (CoreOS, 2016) and SRE control loop (Beyer et al., 2016); ancestral PDCA (Shewhart 1939) and cybernetic loop (Wiener 1948); form-analogue REST (Fielding 2000) for the discipline-over-substrate framing. Real example: the batch-bug-shepherd skill in microsoft/apm, which runs in GitHub Copilot CLI today without /goal or /loop. Substrate- portability claim: A11 needs only sub-agent dispatch + persistent state + completion signal from the harness. Vendor sugar (Codex /goal, Claude Code /loop, Copilot CLI #2129 + #3364) packages the re-entry contract; the discipline does not depend on the sugar. Edits: - skills/genesis/assets/architectural-patterns.md: A11 entry, catalogue-at-a-glance row, A8 forward-reference, bottom selection-heuristic entry. - skills/genesis/assets/design-patterns.md: B11 FOLD-BY-DEFAULT entry, layer diagram update, bottom selection-heuristic entry. - skills/genesis/SKILL.md: Step 3 selection rule expanded to include RECONCILIATION LOOP with trigger phrases. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…mplify mermaid - batch-bug-shepherd reframed as worked example we built while developing the pattern, not external industry validation - Add A10-wraps-A11-with-per-item-A8-or-A1 composition diagram to the 'How Tier-3 patterns compose with each other' section with three-axis explanation (outer wrap / per-item drop-in / queue policy) - Simplify A11 topology mermaid: remove <br/> tags, parens-in- labels, and edge-label colons so it renders on stricter mermaid frontends (Copilot CLI chat, etc.) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #6.
TL;DR
Adds A11 RECONCILIATION LOOP to the Tier-3 catalogue (sibling of A8 ALIGNMENT LOOP, not a sub-entry) and B11 FOLD-BY-DEFAULT to the Tier-2 catalogue as its queue-level policy primitive. Wires both into the Step-3 selection rule so the architect persona surfaces the pattern when the intent describes a queue of items each driven to a terminal state under non-determinism.
Recognition, not invention. The agentic instance of the Kubernetes Operator pattern (CoreOS 2016) and the SRE control loop (Beyer et al. 2016); ancestral lineage in PDCA (Shewhart 1939) and the cybernetic loop (Wiener 1948); form-analogue REST (Fielding 2000) for the discipline-over-substrate framing.
What this PR changes
Three files, additive only, no existing pattern reshaped.
Why a sibling (A11), not a sub-entry of A8
A8 and A11 are both loop-shaped but their composes-list, anti-pattern set, and selection trigger phrases overlap by <30%:
A sub-entry would force readers to skim A8 to find A11. The sibling slot is the honest signal that an architect is making a different call. A8 gets a one-line SEE ALSO; the catalogue table lists both at the same level.
Substrate-portability claim (made precise)
A11 needs only three baseline primitives from the harness:
Vendor sugar (Codex
/goal, Claude Code/loop+/goal, Copilot CLI issues #2129 and #3364) packages the re-entry contract; not a prerequisite. We tested this by building the worked example in Copilot CLI specifically because it ships neither -- the discipline rendered without the sugar. Single worked example, framed honestly as our own workbench, not a population claim.Composition with adjacent patterns
A11 is rarely deployed bare. It nests with three other catalogue entries along independent axes -- this is the production-deployment shape:
flowchart TB EV[event trigger] --> GATE GATE[A10 capability and sandbox gate] --> RUN RUN[A11 runner reads state table B4] --> SPAWN SPAWN[spawn per item sub-agent C2 plus C4] --> WORK WORK[item work] WORK --> A8[per item A8 ALIGNMENT LOOP if item is a draft] WORK --> A1[per item A1 PANEL if multi lens decision] A8 --> SP A1 --> SP WORK --> SP[S4 stop predicate from system of record] SP -->|terminal| UPD[update state table] SP -->|non terminal within budget| SPAWN SP -->|budget exhausted| HC[B10 human checkpoint] UPD --> POL{B11 fold or defer} POL -->|fold| RUN POL -->|defer| OUT[external queue] POL -->|all terminal| DONE[queue closed] DONE --> AUDIT[A10 audit surface] HC --> AUDIT OUT --> AUDITThree composition axes, each independently optional:
Start with A11 alone; add A10 when moving to unattended deployment; add A8 or A1 per item when the per-item work warrants the upgrade. Each addition is a separate decision.
Anti-patterns named in the entry
Maps cleanly to handbook ch19 #10 (Not Fixing Primitives), #14 (Cost Runaway), #17 (Persona Drift).
Worked example
batch-bug-shepherdin microsoft/apm -- the first concrete realization we built while developing this pattern, not external industry validation. Ran a saga in Copilot CLI (no/goal, no/loop) driving ten bug-flagged issues to seven merged PRs across two waves. The signal isn't the conversion rate; it's that the discipline rendered, terminated, and produced merged artifacts on a substrate exposing only the three baseline primitives.Out of scope (deliberate)
skills/genesis/examples/. Real-world reference is named in the entry; a longer walkthrough is a follow-up if wanted.pattern-tradeoffs.mdrow for A8-vs-A11. Discriminator lives in both entries' bodies; a formal matrix row is a follow-up if architects report ambiguity in practice.Companion artifact
A handbook treatment landed in parallel: danielmeppiel/agentic-sdlc-handbook#8 introduces a Mode axis (static / style / sugar) and adds Reconciliation Loop as the first style-mode entry to ch18. Same convergent framing; different audience (handbook is reader-facing prose, this PR is architect-facing reference).