Files
ComfyUI_frontend/.claude/skills/ticket-intake/schema.md
Dante 07d5bd50f6 feat: extract SeedControlButton component (#9744)
<img width="1048" height="482" alt="스크린샷 2026-03-12 오전 9 11 56"
src="https://github.com/user-attachments/assets/68009980-097c-4736-b7c4-eb8f9a6f05be"
/>

## Summary
- Extract inline value control button from `WidgetWithControl` into
reusable `SeedControlButton` component
- Support `badge` (pill) and `button` (square) variants per Figma design
system spec
- Use native `<button>` element for proper a11y (works with Reka UI's
`PopoverTrigger as-child`)

## Test plan
- [x] Verify seed control button renders correctly on KSampler node's
seed widget
- [x] Verify popover opens on click and mode selection works
- [x] Verify all 4 modes display correct icon/text (shuffle, pencil-off,
+1, -1)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9744-feat-extract-SeedControlButton-component-3206d73d365081a3823cc19e48d205c1)
by [Unito](https://www.unito.io)

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Co-authored-by: github-actions <github-actions@github.com>
2026-03-13 02:49:18 -07:00

2.4 KiB

Ticket Schema

Common schema for normalized ticket data across all sources. This data is stored and retrieved via the Pipeline API, not local files.

Ticket Data Schema

{
  // Required fields (all sources)
  "id": "string", // Unique identifier (short form)
  "url": "string", // Original URL
  "source": "notion | github", // Source type
  "title": "string", // Ticket title
  "description": "string", // Full description/body
  "fetchedAt": "ISO8601", // When ticket was fetched

  // Common optional fields
  "status": "string", // Current status
  "assignee": "string", // Assigned user
  "priority": "string", // Priority level
  "area": "string", // Category/area
  "labels": ["string"], // Tags/labels
  "acceptanceCriteria": ["string"] // List of AC items

  // Source-specific fields (see providers)
  // Notion: notionPageId, slackLink, relatedTasks, notionWrites
  // GitHub: githubOwner, githubRepo, githubIssueNumber, linkedPRs, dosuComment, referencedIssues
}

Ticket State Schema (via API)

State is managed via the Pipeline API using client.transitionState():

{
  "ticketId": "string",
  "state": "intake | research | planning | implementation | pr_created | done | failed",
  "stateChangedAt": "ISO8601",

  // Timestamps tracked by API
  "createdAt": "ISO8601",
  "updatedAt": "ISO8601"
}

Priority Normalization

All sources should normalize to these values:

Normalized Description
Critical Production down, security
High Blocking work, urgent
Medium Normal priority (default)
Low Nice to have, backlog

Status Normalization

Pipeline tracks these statuses internally:

Status Description
research Gathering context
planning Creating implementation plan
implementation Writing code
review Code review in progress
qa Quality assurance
done PR merged or completed

ID Generation

IDs are generated by the API when creating tickets. For reference:

  • Notion: First 8 characters of page ID
  • GitHub: gh-{owner}-{repo}-{issue_number} (sanitized)

Examples:

  • Notion: abc12345
  • GitHub: gh-comfy-org-frontend-123