LearnNewsExamplesServices
Frontmatter
id10646
titleRequire live open-queue sweep in ticket-create
stateOpen
labels
documentationenhancementaiarchitecture
assignees[]
createdAtMay 3, 2026, 4:36 PM
updatedAtMay 3, 2026, 5:02 PM
githubUrlhttps://github.com/neomjs/neo/issues/10646
authorneo-gpt
commentsCount1
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]

Require live open-queue sweep in ticket-create

Opendocumentationenhancementaiarchitecture
neo-gpt
neo-gpt commented on May 3, 2026, 4:36 PM

Context

During follow-up ticket creation on 2026-05-03, @tobiu surfaced a live creation-side gap:

our ask tool can be stale. a dup sweep MUST include to at least read the latest 20 open ticket titles, authors and labels.

This correction matters immediately. ask_knowledge_base(type: 'ticket') and local resources/content/issues/** are useful, but both can lag behind GitHub reality. A ticket-create duplicate sweep that only uses stale indexed/local state can still file a near-duplicate against work opened minutes earlier by another swarm agent.

I applied the stricter rule before filing this ticket: the latest 20 open queue was fetched live from GitHub with number, title, author, labels, and URL. No open ticket in that list covered this exact ticket-create live-open-queue mandate.

The Problem

.agents/skills/ticket-create/references/ticket-create-workflow.md §1a currently makes ask_knowledge_base(type: 'ticket') the primary semantic duplicate search and local grep/query fallback the exact-match layer. That is insufficient under active swarm conditions because:

  • the Knowledge Base can be stale after recent issue creation or sync lag;
  • local resources/content/issues/** can be stale for the same reason;
  • multiple agents can create tickets minutes apart while operating from different harnesses/clones;
  • the most likely duplicates are often in the newest open queue, before sync/indexing catches up.

The result is a false sense of duplicate-sweep safety: the agent performs a sweep, but the sweep is not live enough to protect the current tracker.

The Architectural Reality

Relevant protocol surfaces:

  • AGENTS.md §6 Meta Gate: Deduplication & Linking — currently mandates local duplicate sweeps before issue/discussion creation.
  • .agents/skills/ticket-create/references/ticket-create-workflow.md §1a — creation-side Content Sweep, currently KB-primary plus local exact-match fallback.
  • .agents/skills/ticket-create/SKILL.md — lightweight Progressive Disclosure router; per create-skill, this should stay small and point at the reference payload.
  • .agents/skills/create-skill/references/skill-authoring-guide.md — confirms operational lessons should be promoted into the relevant skill payload, not bloated into the router.

Adjacent but not duplicate:

  • #10276 adds adjacency sweep discipline to ideation-sandbox; this ticket is specifically about issue creation and live open-ticket freshness.
  • #10104 created the ticket-create skill itself; it is closed and does not contain the latest-20 live queue rule.

The Fix

Update the ticket creation protocol so every create_issue path must include a live open-queue sweep before filing.

Concrete prescription:

  1. In .agents/skills/ticket-create/references/ticket-create-workflow.md §1a, add a mandatory live GitHub sweep step:
gh issue list --state open --limit 20 --json number,title,author,labels,url

or the equivalent GitHub MCP/API call returning the same fields.

  1. State that this live sweep is additive, not a replacement:

    • keep semantic search (ask_knowledge_base(type: 'ticket')) for conceptual adjacency;
    • keep local rg/grep over issues, archives, and discussions for exact historical checks;
    • require the live latest-20 open queue because KB/local sync can be stale.
  2. Add failure handling:

    • if the live latest-20 call fails due sandbox/network/auth, retry with the appropriate approved/escalated path;
    • if it still cannot be fetched, stop before create_issue and report the blocker rather than filing from stale evidence only.
  3. Update AGENTS.md §6 so the per-turn invariant also names live latest-open queue freshness, not only local grep.

  4. Keep SKILL.md unchanged unless the trigger wording itself needs a tiny pointer. The heavy rule belongs in references/ticket-create-workflow.md per Progressive Disclosure.

Acceptance Criteria

  • ticket-create-workflow.md §1a requires reading at least the latest 20 open issue titles, authors, labels, issue numbers, and URLs from live GitHub before create_issue.
  • The workflow says the live latest-20 sweep is mandatory even when ask_knowledge_base and local grep return no duplicates.
  • The workflow documents retry/escalation behavior for sandbox/network/auth failures and forbids proceeding to create_issue if live latest-open state cannot be fetched.
  • AGENTS.md §6 Meta Gate is updated to include the same live latest-open queue requirement for issue creation.
  • The rule is placed in the reference payload, not expanded into ticket-create/SKILL.md, preserving Progressive Disclosure.
  • The ticket body / creation notes pattern is updated to mention the live-open sweep result when filing future Fat Tickets.

Out of Scope

  • Replacing semantic duplicate search with live title scanning. Both are needed.
  • Requiring exhaustive full-repo remote issue enumeration on every ticket. Latest 20 open is the minimum freshness guard; deeper searches remain keyword/semantic targeted.
  • Changing ideation-sandbox adjacency sweep behavior; #10276 owns that lane.
  • Building a new MCP tool solely for this workflow. Existing GitHub API / gh issue list / workflow MCP equivalents are sufficient.

Avoided Traps

  • Trap: trust ask_knowledge_base because it is semantically richer. Rejected. It can be stale, and freshness is the failure mode this rule addresses.
  • Trap: trust local synced markdown. Rejected. resources/content/** can lag behind remote GitHub during active swarm work.
  • Trap: dump the rule into SKILL.md. Rejected. SKILL.md is a lightweight router; the heavy operational rule belongs in the reference payload.
  • Trap: make latest-20 the only duplicate sweep. Rejected. Newest open issues catch freshness; semantic/local sweeps catch older conceptual duplicates and archived/discussion adjacency.

Related

  • #10104 — created the ticket-create skill.
  • #10276 — analogous adjacency sweep gap for ideation-sandbox.
  • #10645 — ticket created immediately before this correction; future tickets should include the live-open sweep explicitly.

Origin Session ID: 89b259c3-27ec-4afb-baaf-fd39b55bffe1

Retrieval Hint: ticket-create duplicate sweep latest 20 open issues titles authors labels stale ask_knowledge_base.