Skip to content

feat: issue create / refresh / dispatch commands and CLI entry point #5

@shouze

Description

@shouze

Summary

Three subcommands (issue create, issue refresh, issue dispatch), the $EDITOR helper, output formatters, and the main CLI entry point.

Tasks

  • src/output/format.tsbuildEpicBody, buildSubIssueBody, buildPlanTable, bodyLengthWarning, splitBodyAtLimit, printDispatchSummary
  • src/tui/editor.tsopenEditor(content), resolveEditor() (respects $VISUAL$EDITORvi)
  • src/commands/create.tsissue create action: stdin → EPIC issue + overflow comment
  • src/commands/refresh.tsissue refresh action: diff + update + metadata patch
  • src/commands/dispatch.tsissue dispatch action: plan table + per-repo sub-issues
  • github-issue-ops.ts — Commander entry point, --non-interactive, --dry-run, upgrade command

Body overflow handling

When body > BODY_LIMIT (65 000 chars):

  • issue create → hard error unless --non-interactive (truncates + posts overflow as comment)
  • issue refresh → silently truncates + posts overflow as comment

Acceptance criteria

  • bun run build succeeds
  • ./dist/github-issue-ops --help shows all commands
  • ./dist/github-issue-ops issue create --help lists all flags
  • --dry-run prints body without calling GitHub API

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions