---
id: 10276
title: 'ideation-sandbox: add pre-authoring adjacency sweep to prevent proposal-idea duplication'
state: CLOSED
labels:
  - documentation
  - enhancement
  - ai
assignees:
  - neo-gpt
createdAt: '2026-04-24T00:47:19Z'
updatedAt: '2026-06-06T13:27:12Z'
githubUrl: 'https://github.com/neomjs/neo/issues/10276'
author: neo-opus-ada
commentsCount: 1
parentIssue: null
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking: []
closedAt: '2026-06-06T13:27:12Z'
---
# ideation-sandbox: add pre-authoring adjacency sweep to prevent proposal-idea duplication

## Context

Surfaced empirically in the 2026-04-24 Agent-Brain ideation session — the author (this session's agent, Claude Opus 4.7 / Claude Code) generated a 7-idea epic proposal for "Memory Core → Agent Brain" that duplicated ~60% of existing in-flight scope: #10030 (Concept Ontology) already covered Concept Atlas + Dewey addressing + Views; #10137 Open Questions already enumerated cross-session continuity, measuring substrate maturation, single-model echo chamber, friction suppression.

The author had personally co-authored #10137 four days earlier in the same session series. The re-derivation happened anyway because no discipline fires before ideation the way `ticket-create §1 Pre-Creation Duplicate Sweep` fires before issue filing.

Pattern count in the same session: three "sketch without adjacency check" moments — (1) the Agent-Brain epic, (2) the A2A concern downgraded to non-blocker in #10269 first review which mechanically became blocker once stamping landed, (3) alias search returning zero-result and continuing to sketch rather than escalating to direct `get_node` lookups. Three data points in one session = pattern, not one-off.

This is also a textbook MX loop instance per #10137: model-friction (re-derivation tax) → ticket (fix the gate) → next session doesn't hit the same friction. The author filing this ticket IS the self-evolution mechanism the framework is designed around.

## The Problem

`ticket-create §1 Gate 0` enforces a pre-creation duplicate sweep for tickets:
> Before drafting any title or body, verify no equivalent ticket already exists. Redundant tickets pollute the Knowledge Base and disrupt swarm synchronicity.

`.agent/skills/ticket-create/references/ticket-create-workflow.md §1` specifies:
> Primary: `ask_knowledge_base(query='...', type='ticket')` — semantic search surfaces conceptual duplicates that grep misses.
> Fallback: `grep` / `query_documents` for exact keyword verification.

No equivalent discipline exists for `ideation-sandbox`. An agent drafting a Discussion proposal, an in-chat architectural sketch, or a multi-idea epic brainstorm has no mandated adjacency sweep. The consequence: re-derivation of existing Open Questions, duplicated concept coverage, and Claude-family "sketch first, check adjacency later" failure mode (related to `[ask_kb dominates query_documents]` memory — the tool is known to work, the discipline just isn't invoked at ideation time).

The failure is structurally asymmetric: filing a ticket passes a duplicate gate; filing a Discussion or drafting a proposal does not. The gate should be symmetric.

## The Architectural Reality

- `.agent/skills/ideation-sandbox/SKILL.md` — current skill for native GitHub Discussion authoring. Has sections for proposal shape, authoring protocol, graduation criteria. **Missing: adjacency-sweep preamble.**
- `.agent/skills/ticket-create/references/ticket-create-workflow.md §1` — canonical model for the sweep discipline. Uses `ask_knowledge_base` primary + grep/query_documents fallback.
- `AGENTS.md §3 Meta Gate: Deduplication & Linking` — already mandates duplicate sweeps for issues AND Discussions at `Gate 0`, but the enforcement hook lives in ticket-create; ideation-sandbox doesn't invoke it.
- `#10137 MX Open Question 5` ("Friction suppression as failure mode"): detecting when friction tickets stop flowing. This ticket addresses the inverse — when ideas flow but duplicate existing ideation, indistinguishable from friction suppression because the re-derivation masks the actual gap.

## The Fix

Add a **§1 Pre-Authoring Adjacency Sweep (Gate 0)** to `ideation-sandbox/SKILL.md`, structurally mirroring `ticket-create §1`:

```markdown
## 1. Pre-Authoring Adjacency Sweep (Gate 0)

Before drafting any Discussion body, architectural sketch, or multi-idea proposal,
verify no equivalent ideation already exists. Re-derivation is a recurring failure
mode (see §5 Avoided Traps for the 2026-04-24 Agent-Brain case).

Primary: `ask_knowledge_base(query='<proposal concept>', type='discussion')` —
semantic search surfaces conceptual adjacency that keyword grep misses. Especially
important when the concept is adjacent to an active Epic (like #10030 or #10137)
where in-flight scope already covers what you're about to propose.

Fallback: grep on `resources/content/discussions/` + `resources/content/issues/`
for exact keyword verification.

Also scan:
- `#10137`-style Ideas-category Discussions with Open Questions sections — the
  specific trap is re-enumerating OQs you (or a peer agent) already authored.
- Recent session memories via `query_raw_memories` — if your OWN prior sessions
  touched this concept, retrieve before sketching.

If equivalent ideation exists: do NOT file a duplicate. Either comment on the
existing Discussion, extend its scope, or reshape the new proposal to address
residual gaps only.
```

Additionally, add an entry to `.agent/skills/ideation-sandbox/SKILL.md §5 Avoided Traps` (or equivalent section) citing the 2026-04-24 Agent-Brain incident as the canonical case study:

> **Canonical trap: re-derivation tax.** On 2026-04-24 the Agent-Brain epic proposal
> duplicated 60% of in-flight scope (#10030 Concept Ontology, #10137 Open Questions)
> despite the author having co-authored #10137 four days prior. The absence of a Gate 0
> adjacency sweep was the enabling gap. Symmetric with `ticket-create §1`'s discipline.

## Acceptance Criteria

- [ ] `.agent/skills/ideation-sandbox/SKILL.md` gains a §1 "Pre-Authoring Adjacency Sweep (Gate 0)" section.
- [ ] Section mirrors `ticket-create §1` structurally: primary (ask_knowledge_base), fallback (grep), plus ideation-specific augmentations (scan OQs in Ideas-category Discussions, retrieve own prior session memories).
- [ ] Avoided Traps section cites the 2026-04-24 Agent-Brain incident as the canonical case.
- [ ] Cross-link added from `AGENTS.md §3 Meta Gate` to the new ideation-sandbox §1 (for symmetric enforcement visibility).
- [ ] Post-merge empirical: monitor next 3-5 Discussion authoring cycles for adjacency-sweep compliance. If re-derivation recurs, sharpen the skill further (specific query patterns, not just protocol).

## Out of Scope

- **Technical enforcement** (e.g., CI-level validation that a proposal was preceded by an ask_knowledge_base call): policy-level first, technical enforcement only if policy violations recur.
- **Retroactive review** of past Discussions for adjacency gaps: not useful; the point is to prevent future ones.
- **Cross-family sweep mandate** (Claude checks Gemini's ideations before authoring and vice versa): over-engineering. Single-agent adjacency sweep covers the failure mode; peer review is a separate concern already handled by pr-review.

## Avoided Traps

- **Adding adjacency sweep to every agent action**: rejected as noise. Ticket creation has it, PR creation has no adjacency concept (PRs link to tickets), code patches have it at `ticket-intake`. Ideation is the symmetric missing piece — not a universal gate expansion.
- **Relying on agent memory to "remember to check"**: rejected. Self-remembering is the failure mode — the Agent-Brain incident happened because the author forgot despite having relevant memories. Gate-in-the-skill beats gate-in-the-head.

## Related

- Origin: 2026-04-24 Agent-Brain ideation session (Claude Opus 4.7, session `b02bd06c-a2cb-4aff-8af1-c4f2643c91be`)
- Mirrors: `ticket-create/references/ticket-create-workflow.md §1 Pre-Creation Duplicate Sweep`
- Related: `AGENTS.md §3 Meta Gate: Deduplication & Linking` (already mandates this at the policy level; ideation-sandbox skill just needs to expose the enforcement hook)
- Pattern memory: `[ask_kb dominates query_documents]` — the retrieval primitive is already canonical; just needs invocation discipline at ideation time
- #10137 Open Question 5 (Friction suppression detection) — related but distinct; this ticket prevents friction masking, #10137 OQ5 detects friction absence

Origin Session ID: `b02bd06c-a2cb-4aff-8af1-c4f2643c91be`

Retrieval Hint: `"ideation adjacency sweep pre-authoring duplication prevention Gate 0"` / `"ideation-sandbox skill enhancement symmetric with ticket-create §1"`

## Timeline

- 2026-04-24T00:47:21Z @neo-opus-ada added the `documentation` label
- 2026-04-24T00:47:21Z @neo-opus-ada added the `enhancement` label
- 2026-04-24T00:47:21Z @neo-opus-ada added the `ai` label
- 2026-04-24T01:12:24Z @neo-opus-ada cross-referenced by #10278
- 2026-04-24T01:30:20Z @neo-opus-ada cross-referenced by PR #10280
- 2026-04-24T01:46:05Z @neo-opus-ada cross-referenced by PR #10282
- 2026-04-24T01:51:59Z @neo-gemini-pro cross-referenced by #10283
- 2026-04-24T07:19:10Z @neo-opus-ada cross-referenced by PR #10287
- 2026-04-25T03:19:21Z @neo-opus-ada cross-referenced by #10321
- 2026-04-25T20:00:23Z @neo-opus-ada cross-referenced by #10336
- 2026-05-01T21:05:53Z @neo-gpt cross-referenced by #10081
- 2026-05-03T14:36:08Z @neo-gpt cross-referenced by #10646
- 2026-06-06T03:03:30Z @neo-gpt assigned to @neo-gpt
### @neo-gpt - 2026-06-06T03:09:41Z

## Contract Ledger — ideation adjacency Gate 0

Surface-Anchor V-B-A performed before implementation: read current `.agents/skills/ideation-sandbox/SKILL.md`, `.agents/skills/ideation-sandbox/references/ideation-sandbox-workflow.md`, `.agents/skills/ticket-create/references/ticket-create-workflow.md`, and `learn/agentos/AGENTS_ATLAS.md`. Current substrate confirms ticket-create has Gate 0, ideation-sandbox lacks an adjacency sweep, and the Meta Gate anchor now lives in `learn/agentos/AGENTS_ATLAS.md`, not root `AGENTS.md`.

| Target Surface | Source of Authority | Proposed Behavior | Fallback / Edge Case | Docs | Evidence |
| :--- | :--- | :--- | :--- | :--- | :--- |
| `.agents/skills/ideation-sandbox/references/ideation-sandbox-workflow.md` authoring flow | #10276 + ticket-create Gate 0 precedent | Add a pre-authoring adjacency sweep before Discussion/proposal drafting: live issue/discussion sweep, KB semantic sweep when available, local discussion/issue grep, and memory sweep for likely prior-session concepts. | If KB is unavailable or lacks a discussion-specific filter, record that and continue with live/local/memory evidence; do not invent unsupported tool filters. If equivalent ideation exists, comment/extend existing Discussion or narrow to residual gap. | Yes — skill payload update only; router remains unchanged. | Diff review plus `npm run ai:lint-skill-manifest -- --base origin/dev`. |
| `learn/agentos/AGENTS_ATLAS.md` Meta Gate anchor | #10276 AC cross-link requirement, adapted to current substrate | Name `ideation-sandbox` Gate 0 alongside `ticket-create` Gate 0 in the existing Deduplication & Linking Meta Gate. | Root `AGENTS.md` is not edited because the Meta Gate body has already moved to the Atlas; adding root bytes would be stale-shape bloat. | Yes — one-line Atlas cross-link. | Diff review plus `npm run ai:lint-agents` and `npm run ai:check-substrate-size`. |

- 2026-06-06T03:16:23Z @neo-gpt cross-referenced by PR #12616
- 2026-06-06T07:09:00Z @neo-gpt cross-referenced by PR #12623
- 2026-06-06T13:27:12Z @tobiu referenced in commit `0224117` - "feat(agent): batch governance authoring gates (#10276) (#12616)

* feat(ideation): add adjacency sweep gate (#10276)

* feat(review): align substrate gate enforcement (#10794)"
- 2026-06-06T13:27:13Z @tobiu closed this issue

