Skip to content

Commit bc522ac

Browse files
neo-opus-adatobiu
andauthored
refactor(agentos): split ideation-sandbox §5.1 divergence from convergence (#12441) (#12475)
Split the Double Diamond §5.1 matrix into a 3-col pure-divergence matrix (open for peer-added rows) + a gated convergence pass opened after a time-boxed divergence window. Add correlation-ceiling, comment-anchored option-cards, and valid-options reject-at-entry. Move the §3 change-log to bottom-of-body. Rule bodies in the audit (World Atlas); §5.1 compressed + net-reduced under the per-file budget. Resolves #12441 Refs #12436 Co-authored-by: tobiu <tobiasuhlig78@gmail.com>
1 parent 3628ce1 commit bc522ac

2 files changed

Lines changed: 26 additions & 16 deletions

File tree

.agents/skills/ideation-sandbox/audits/double-diamond-divergence-guard.md

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,17 +22,30 @@ Empirical anchors:
2222

2323
Mandatory high-blast-radius Discussion graduations cover Epics, new skill/rule/workflow changes, and substrate-level architecture changes. Standalone tickets keep the matrix optional/recommended unless a peer or operator marks the proposal high-blast-radius.
2424

25-
Matrix floor:
25+
Divergence matrix floor (pure-divergence — NO adopt/reject, NO author-lean column):
2626

27-
| Option | When this would be right | Evidence / falsifier | Rationale | Residual risk |
28-
|---|---|---|---|---|
27+
| Option | When this would be right | Evidence / falsifier |
28+
|---|---|---|
2929

30-
Rejected options require at least one falsifying source: prior commit, precedent code, KB result, Memory Core result, prior issue / PR / discussion, or explicit `"no source found after query X"`. Include at least two alternative shapes beside the recommended one.
30+
Each option (incl. later-rejected ones) requires at least one falsifying source: prior commit, precedent code, KB result, Memory Core result, prior issue / PR / discussion, or explicit `"no source found after query X"`. Include at least two alternative shapes beside the recommended one. The matrix is **open for peer-added rows** — the divergent half of design is *peers adding options*, not pressuring the author's.
31+
32+
**Valid options only (reject-at-entry).** A matrix row must be a plausible/valid candidate. Reject categorically-invalid / strawman / impossible options **at entry**, not at the §5.2 Step-Back — an invalid option pollutes the divergence frame from the start. This is distinct from the divergence-theater guard below (which targets low-effort throwaway filler): an articulated-but-invalid option (e.g. "one subtractive PR" for a 20-sub epic, or "lint-first" conflating the lint with the inventory method) is wrong, not lazy, and the window-gate would not catch it.
33+
34+
**Divergence window, not per-peer count.** Gate the convergence pass on a time-boxed divergence **window**, never a per-peer option count — a count breeds divergence-*theater* (low-effort filler to clear the gate). Quality is enforced at the §5.2 Step-Back. Peers may submit options asynchronously as **comment-anchored option-cards**: one comment per option, shaped `Option <X>: <one-line> | when-right: … | falsifier: …`, which the author folds into the body matrix.
35+
36+
**Correlation-ceiling.** At least one divergence option MUST be sourced from **outside the awake-peer-set** — prior-art via `ask_knowledge_base`, or the §2.2 precedent sweep elevated to a required option-source. The liveness cap means 1–2 same-family awake peers share correlated blind spots; an outside-sourced option counters that.
37+
38+
Gated convergence pass (opens only after the window closes):
39+
40+
| Option | Adoption / rejection rationale | Residual risk |
41+
|---|---|---|
42+
43+
The convergence columns (adopt/reject + author-lean + residual-risk) are filled **after** the divergence window closes. Filling them during the window re-introduces the pre-converged frame that makes peers pressure the author's options instead of widening the space.
3144

3245
Process gate:
3346

34-
- Matrix appears in the Discussion body before any `[RESOLVED_TO_AC]` tags.
35-
- At least one non-author peer review cycle occurs after matrix insertion and before `GRADUATED`.
47+
- The divergence matrix appears in the Discussion body before any `[RESOLVED_TO_AC]` tags.
48+
- At least one non-author peer cycle occurs during the divergence window (after matrix insertion, before the window closes and `GRADUATED`).
3649
- Retro-fitted matrices after OQ resolution are paperwork; they capture convergence, not divergence.
3750

3851
## Ticket-Create Exception

.agents/skills/ideation-sandbox/references/ideation-sandbox-workflow.md

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ Before Discussion prose, read [`reference-hygiene.md`](../../../../learn/agentos
3030
## 3. Author's Note Convention (The `#10119` Annotation Pattern)
3131
Discussions are meant to evolve. Instead of creating noisy parallel comment threads to reflect updates to the core idea, the authoritative substrate is the Discussion body itself.
3232
- Use **"the `#10119` annotation pattern"**: Treat the Discussion body like a PR diff. When the idea evolves, edit the body directly with `manage_discussion({action: 'update_body', discussion_number, body})` (like a force-push).
33-
- Add top-of-body annotation markers (e.g. `> **Update 2026-04-24:** Refined the VDOM syncing section based on feedback below.`) to signal what changed.
33+
- Add annotation markers at the **bottom of the body** (or use re-poll-comment deltas) so the **proposal leads**e.g. `> **Update 2026-04-24:** Refined a section per feedback.`
3434
- You may add a brief comment to notify thread participants, but the body remains the single source of truth.
3535

3636
## 4. Iterative Review Workflow
@@ -54,21 +54,18 @@ A Discussion cannot graduate until it is clearly scoped. There is no universal c
5454

5555
**Trigger — mandatory cases:** if the Discussion intends to graduate to (a) an Epic, (b) a new skill / rule / workflow change, or (c) a substrate-level architecture change, the divergence matrix below is **MANDATORY** before graduation. For standalone tickets (`[GRADUATED_TO_TICKET]`) the matrix is **optional but recommended** unless a peer or the operator marks the proposal high-blast-radius.
5656

57-
**Matrix floor (5 columns, mandatory):**
57+
**Divergence matrix floor (3 columns — pure-divergence, mandatory):**
5858

59-
| Option | When this would be right | Evidence / falsifier (≥1 source per rejected option) | Adoption or rejection rationale | Residual risk |
60-
|---|---|---|---|---|
59+
| Option | When this would be right | Evidence / falsifier (≥1 source per option) |
60+
|---|---|---|
6161

62-
- Each rejected option MUST cite at least one falsifying source, and at least 2 alternative shapes must be enumerated beside the recommendation.
62+
- **No adopt/reject + no author-lean column**; the matrix is **open for peer-added rows** (peers ADD options, not pressure the author's), ≥2 alternatives each with ≥1 falsifying source. Adopt/reject + residual-risk move to a separate **gated convergence pass** after the divergence window closes.
6363

64-
**Process gate — matrix authored BEFORE convergence:**
65-
66-
- The matrix MUST appear in the Discussion body **before any `[RESOLVED_TO_AC]` tags are applied**. Matrices retro-fitted after OQ resolution are paperwork, not divergence — they capture the convergent answer rather than preserving the alternatives that were genuinely considered.
67-
- After matrix is in the body, **at least one non-author peer review cycle MUST occur before `GRADUATED`**. The peer cycle pressures the matrix's depth and falsifying sources; author-only graduation skips the divergent-pressure half of design.
64+
**Process gate:** divergence matrix in the body before any `[RESOLVED_TO_AC]` tag; ≥1 non-author peer cycle during the **divergence window** (peers ADD options); the **gated convergence pass** opens only after the window closes.
6865

6966
**Graduation block:** if the matrix is missing OR lacks falsifying sources, downstream Epic / ticket creation is blocked per `epic-review-workflow.md` Stage 2 Discussion-origin backstop and per `ticket-create-workflow.md` §1c ungraduated-Discussion cross-check (substantive-rationale exception path documented there for legitimate edge cases). **Per §6 Consensus Mandate (high-blast classes only)**, graduation is ALSO blocked when the Signal Ledger lacks the §6.2 quorum (floor-2 active families with signal + ≥ 1 non-author family APPROVED; Tier-2 also requires `## Unresolved Liveness` + `revalidationTrigger` AC) or has unresolved DEFERRED/VETO; see §6 below for full 2-axis substrate.
7067

71-
For source anchors, exception semantics, and substrate-decay review, read [`../audits/double-diamond-divergence-guard.md`](../audits/double-diamond-divergence-guard.md).
68+
The full divergence rules (valid-options-only, correlation-ceiling, option-cards, gated convergence columns), source anchors, and exception semantics are in [`../audits/double-diamond-divergence-guard.md`](../audits/double-diamond-divergence-guard.md).
7269

7370
### 5.1.1. Reflective Pause Trigger (Friction-Driven Proposals)
7471

0 commit comments

Comments
 (0)