Skip to content

Add a first-class pm reopen lifecycle command for closed items #796

Closed

Description

@unbraind

Summary

The latest CLI (2026.7.28) has start-task, pause-task, and close-task, but no corresponding reopen command. pm reopen <id> <reason> returns Unknown command reopen.

Why it matters

A closed defect can recur. Duplicate-safe workflows should reopen the canonical closed item rather than create another issue, and a lifecycle command can make that transition explicit, auditable, and policy-aware. The current workaround is pm update <id> --status open, which changes state but does not communicate reopen intent or require a recurrence reason.

This is distinct from #107 (extension hook before/after context) and #216 (general lifecycle adoption).

Reproduction

npm install -g @unbrained/pm-cli@latest
pm --version  # 2026.7.28
pm reopen <closed-id> "Regression reproduced"
# Error: Unknown command reopen

Proposed behavior

Add pm reopen <id> [reason] (and optionally reopen-task) that:

  • only accepts closed/canceled items unless explicitly forced;
  • transitions to open by default, with an option for in_progress;
  • clears terminal lifecycle fields that should not survive reopening while retaining prior closure evidence/history;
  • records the reason as structured lifecycle/history evidence;
  • respects claim/assignment and validation governance;
  • suggests itself in duplicate-search results when the strongest match is closed.

The command should be idempotent or return a clear actionable error for already-active items.

Activity

  1. coderabbitai commented on Jul 28, 2026

    @coderabbitai
    🔗 Related PRs

    #230 - Single-call mutation ergonomics: pm create/update --body-file, pm close -m/-r/-d, --resolution as close reason [closed]
    #429 - Accept close message fallback and reduce compatibility complexity [merged]
    #477 - feat(sdk): expand pm primitives and lifecycle aliases [merged]
    #695 - Preserve harness authors across all item mutations [merged]
    #712 - SDK context integrity: atomic Plans, batch similarity, sparse settings, and tombstones [merged]


    📝 Issue Planner

    Check the box below or use the @coderabbitai plan command to generate an implementation plan and prompts that you can use with your favorite coding assistant.

    • Create Plan

    🧪 Issue enrichment is currently in open beta.

    You can configure auto-planning by selecting labels in the issue_enrichment configuration.

    To disable automatic issue enrichment, add the following to your .coderabbit.yaml:

    issue_enrichment:
      auto_enrich:
        enabled: false

    💬 Have feedback or questions? Drop into our discord!

  2. unbraind commented on Jul 28, 2026

    @unbraind
    OwnerAuthor

    pm tracker item: pm-83cz0o

    Filed with the recurrence-vs-duplicate framing, the pm-g8jp constraint (close_reason clearing already ships — do not re-implement), and the append-not-rewrite requirement so prior closure evidence survives the transition. Spelling is gated on the noun-verb decision so the top-level surface does not grow uncontrolled.

  3. unbraind commented on Jul 31, 2026

    @unbraind
    OwnerAuthor

    Tracked in pm-83cz0o.

  4. unbraind commented on Aug 18, 2026

    @unbraind
    OwnerAuthor

    Canonical PM item: pm-83cz0o.

  5. unbraind commented on Aug 19, 2026

    @unbraind
    OwnerAuthor
  6. unbraind commented on Aug 19, 2026

    @unbraind
    OwnerAuthor

    Resolved by merged PR #1063 at f4cbd5f. The first-class noun-first lifecycle is shipped across CLI, SDK, MCP, generated contracts, documentation, and tests. Canonical PM item: https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-83cz0o.toon

  7. unbraind commented on Aug 19, 2026

    @unbraind
    OwnerAuthor

    Correction: the shipped command is pm item reopen. PR #1063 merged at f4cbd5f and delivers it across CLI, SDK, MCP, generated contracts, documentation, and tests. Canonical PM item: https://github.com/unbraind/pm-cli/blob/main/.agents/pm/features/pm-83cz0o.toon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions