LearnNewsExamplesServices
Frontmatter
id10104
titleticket-create skill — centralize issue creation discipline outside tool descriptions
stateClosed
labels
enhancementai
assigneestobiu
createdAtApr 19, 2026, 5:39 PM
updatedAtApr 20, 2026, 1:57 AM
githubUrlhttps://github.com/neomjs/neo/issues/10104
authortobiu
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
blockedBy[]
blocking[]
closedAtApr 20, 2026, 1:57 AM

ticket-create skill — centralize issue creation discipline outside tool descriptions

tobiu
tobiu commented on Apr 19, 2026, 5:39 PM

Context

Issue-creation logic currently lives across four disjoint surfaces:

  1. create_issue MCP tool description — mandates a visible proposal + labeling rules
  2. .agent/skills/ticket-intake/ — covers consumption of EXISTING tickets (validation sweep, ROI, branch-before-code), not creation
  3. AGENTS_STARTUP.md §9 "Fat Ticket Protocol" — body-level structure (Problem / Architectural Reality / Gold Standards / Traps)
  4. Tribal knowledge — anti-patterns that have no canonical home (e.g., [enhancement] prefixes in titles duplicating label taxonomy, Origin Session ID placement, duplicate sweep via grep_search on local issue dirs, rename-in-parens scope guidance)

The fragmentation means every new session re-derives the discipline from tool descriptions + precedent-following, which perpetuates existing anti-patterns. A dedicated skill would:

  • Give agents a single view_file target at creation time
  • Centralize the anti-pattern list so fixing one place fixes all future tickets
  • Mirror the ticket-intake skill's separation of concerns (intake = consume existing; create = produce new)

The Fix

Create .agent/skills/ticket-create/ with:

  1. SKILL.md — trigger description; invoked before create_issue is called.
  2. references/ticket-create-workflow.md — the canonical workflow:
    • Pre-creation duplicate sweep (grep_search resources/content/issues/)
    • Five-stage challenge chain applied at creation time (not just intake): premise → prescription → substrate → consumer → service-boundary
    • Title hygiene: NO prefix in title duplicating label taxonomy ([enhancement] / [bug] / [epic] belong to labels, not titles); title should describe the subject, not the category
    • Label rules: ai mandatory; one primary (epic/enhancement/bug); secondary labels (architecture, documentation, etc.) as applicable
    • Fat Ticket body structure: Context, The Problem, The Fix, ACs, Out of Scope, Related, Origin Session ID
    • Visible proposal protocol (reinforce the MCP tool description's MANDATORY step)
    • Linkage rules: parent issue for epics, blocking / blockedBy for dependencies, Origin Session ID for A2A context
  3. assets/ticket-proposal-template.md — the visible-proposal format agents dump into chat before calling create_issue

Acceptance Criteria

  • .agent/skills/ticket-create/SKILL.md exists with proper frontmatter trigger
  • references/ticket-create-workflow.md codifies the full workflow + anti-pattern list
  • assets/ticket-proposal-template.md provides the visible-proposal format
  • AGENTS_STARTUP.md §9 updated to reference the new skill (replace inline Fat Ticket protocol with a pointer)
  • create_issue MCP tool description updated to reference the skill as the canonical entry point
  • A representative test: generate a new test ticket through the skill, verify it hits all the hygiene rules (no [] prefix in title, labels correct, body structure, Origin Session ID present)

Anti-Patterns to Codify (non-exhaustive)

  • Title prefix duplicating labels: [enhancement] X when enhancement is already a label
  • Skeleton tickets: one-sentence bodies without architectural context (AGENTS_STARTUP.md §9.4 already forbids but needs enforcement mechanism)
  • Missing Origin Session ID: breaks A2A Contextual Bridge (§14)
  • Missing duplicate sweep: grep_search on resources/content/issues/ + resources/content/issue-archive/ + resources/content/discussions/
  • Stale precedent-following: filing without applying the five-stage challenge chain
  • Cross-scope bundling: [Epic] titles for single-commit tickets (§9.2 forbids but no tooling check)

Out of Scope

  • Migrating existing tickets' title prefixes (would require mass rename; separate doc ticket if worth it)
  • ticket-intake skill changes — that skill consumes existing tickets; creation is its dual

Related

  • Sibling: .agent/skills/ticket-intake/ — consumption dual
  • AGENTS_STARTUP.md §9 — current scattered location for Fat Ticket body rules
  • create_issue MCP tool — current scattered location for label rules + visible proposal
  • Session memories observing the fragmentation: this session's multiple ticket creations (#10103, earlier #10085/#10086/#10087 inheritances)

Origin Session ID: 1db25bbe-f39d-4dcd-bb0e-bc125ce91326

tobiu added the enhancement label on Apr 19, 2026, 5:39 PM
tobiu added the ai label on Apr 19, 2026, 5:39 PM
tobiu cross-referenced by #10109 on Apr 19, 2026, 7:48 PM
tobiu cross-referenced by #10030 on Apr 19, 2026, 7:53 PM
tobiu assigned to @tobiu on Apr 20, 2026, 1:24 AM
tobiu referenced in commit 382eb78 - "feat(ai): add ticket-create skill (#10104)" on Apr 20, 2026, 1:39 AM
tobiu cross-referenced by PR #10116 on Apr 20, 2026, 1:40 AM
tobiu referenced in commit e936afb - "chore(ai): polish ticket-create skill — minimize yaml, add chaining section, list in CodebaseOverview (#10104)" on Apr 20, 2026, 1:52 AM
tobiu referenced in commit d589677 - "chore(ai): complete CodebaseOverview skill manifest (#10104)" on Apr 20, 2026, 1:56 AM
tobiu referenced in commit edb5b54 - "feat(ai): add ticket-create skill (#10104) (#10116) on Apr 20, 2026, 1:57 AM
tobiu closed this issue on Apr 20, 2026, 1:57 AM
tobiu cross-referenced by #10118 on Apr 20, 2026, 2:11 AM