You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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>
Copy file name to clipboardExpand all lines: .agents/skills/ideation-sandbox/audits/double-diamond-divergence-guard.md
+19-6Lines changed: 19 additions & 6 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -22,17 +22,30 @@ Empirical anchors:
22
22
23
23
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.
24
24
25
-
Matrix floor:
25
+
Divergence matrix floor (pure-divergence — NO adopt/reject, NO author-lean column):
26
26
27
-
| Option | When this would be right | Evidence / falsifier | Rationale | Residual risk |
28
-
|---|---|---|---|---|
27
+
| Option | When this would be right | Evidence / falsifier |
28
+
|---|---|---|
29
29
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):
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.
31
44
32
45
Process gate:
33
46
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`).
36
49
- Retro-fitted matrices after OQ resolution are paperwork; they capture convergence, not divergence.
Copy file name to clipboardExpand all lines: .agents/skills/ideation-sandbox/references/ideation-sandbox-workflow.md
+7-10Lines changed: 7 additions & 10 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -30,7 +30,7 @@ Before Discussion prose, read [`reference-hygiene.md`](../../../../learn/agentos
30
30
## 3. Author's Note Convention (The `#10119` Annotation Pattern)
31
31
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.
32
32
- 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.`
34
34
- You may add a brief comment to notify thread participants, but the body remains the single source of truth.
35
35
36
36
## 4. Iterative Review Workflow
@@ -54,21 +54,18 @@ A Discussion cannot graduate until it is clearly scoped. There is no universal c
54
54
55
55
**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.
| 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
+
|---|---|---|
61
61
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.
63
63
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.
68
65
69
66
**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.
70
67
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).
0 commit comments