Files
gh-anton-abyzov-specweave-p…/commands/specweave-github-close-issue.md
2025-11-29 17:56:38 +08:00

9.1 KiB
Raw Blame History

name, description
name description
specweave-github:close-issue Close GitHub issue for completed SpecWeave increment. Posts completion summary with final stats, deliverables, and closes the issue. Links closure in increment metadata.

Close GitHub Issue for Completed Increment

Close the GitHub issue associated with a completed SpecWeave increment.

Usage

/specweave:github:close-issue <increment-id> [options]

Arguments

  • increment-id: Increment ID (e.g., 0004 or 0004-plugin-architecture)

Options

  • --force: Force close even if increment not marked complete
  • --comment: Custom closing comment (default: auto-generated summary)
  • --reopen: Reopen a previously closed issue
  • --skip-validation: Skip PM gate validation

Examples

# Basic usage (auto-generates completion summary)
/specweave:github:close-issue 0004

# With custom comment
/specweave:github:close-issue 0004 --comment "Merged to main, deploying to production"

# Force close (skip validation)
/specweave:github:close-issue 0004 --force

# Reopen closed issue
/specweave:github:close-issue 0004 --reopen

What This Command Does

  1. Validates Increment Completion

    • All tasks completed (48/48)
    • All tests passing
    • PM gates passed (from /specweave:done)
    • Documentation updated
  2. Generates Completion Summary

    **Increment Completed**
    
    This increment has been successfully completed and is ready for release.
    
    ## Final Stats
    
    - **Tasks**: 48/48 completed (100%)
    - **Duration**: 4 weeks (2025-10-01 → 2025-10-30)
    - **Time Tracked**: 240 hours (estimated) / 235 hours (actual)
    - **Test Coverage**: 127 test cases, 95% coverage
    - **Priority**: P1
    
    ## Deliverables
    
    ✅ Plugin architecture implemented
    ✅ 15 plugins migrated (github, kubernetes, frontend-stack, ...)
    ✅ Documentation updated (ADRs, user guides, API docs)
    ✅ E2E tests passing (Playwright suite)
    ✅ Integration tests passing (Jest suite)
    
    ## Key Changes
    
    - Added plugin system with loader, manager, detector
    - Implemented 4 adapters (Claude, Cursor, Copilot, Generic)
    - Created 15 domain-specific plugins
    - Updated all documentation
    - Achieved 80% test coverage
    
    ## Files Changed
    
    - 48 files modified
    - +12,500 lines added
    - -3,200 lines removed
    - Net: +9,300 lines
    
    ## Related
    
    - **Spec**: [spec.md](https://github.com/owner/repo/blob/main/.specweave/increments/0004/spec.md)
    - **Plan**: [plan.md](https://github.com/owner/repo/blob/main/.specweave/increments/0004/plan.md)
    - **Tests**: [tests.md](https://github.com/owner/repo/blob/main/.specweave/increments/0004/tests.md)
    
    ## Next Steps
    
    - Deploy to production (tracked in #135)
    - Monitor for issues (see runbook)
    - Plan next increment (0005-user-authentication)
    
    ---
    
    🎉 Thank you to all contributors!
    
    🤖 Auto-closed by SpecWeave at 2025-10-30 17:00:00
    
  3. Posts Completion Comment

    gh issue comment 130 --body "$(cat completion-summary.md)"
    
  4. Closes GitHub Issue

    gh issue close 130
    
  5. Updates Metadata

    # .metadata.yaml
    github:
      issue_number: 130
      issue_url: "https://github.com/owner/repo/issues/130"
      closed_at: "2025-10-30T17:00:00Z"
      closed_by: "specweave-github-plugin"
      closing_comment_id: 1234590
    
  6. Reports Result

    ✅ GitHub issue #130 closed!
    
    Increment 0004 is complete.
    Issue: https://github.com/owner/repo/issues/130 (closed)
    

Configuration

Settings from .specweave/config.yaml:

plugins:
  settings:
    specweave-github:
      # Auto-close issues when increment completes
      auto_close_issue: true

      # Validate before closing
      require_validation: true

      # Include in closing comment
      closing_comment:
        include_stats: true
        include_deliverables: true
        include_file_changes: true
        include_next_steps: true

Output Format

Success

🔒 Closing GitHub issue for increment 0004...

Validation:
✓ All tasks completed (48/48)
✓ All tests passing (127/127)
✓ PM gates passed
✓ Documentation updated

Generating completion summary...
✓ Final stats calculated
✓ Deliverables listed
✓ File changes summarized

Closing issue...
✓ Posted completion comment (ID: 1234590)
✓ Issue #130 closed
✓ Metadata updated

✅ GitHub Issue Closed!

Issue #130: https://github.com/owner/repo/issues/130
Status: Closed
Closed at: 2025-10-30 17:00:00

Increment 0004 is complete! 🎉

Validation Failure

❌ Cannot close issue: Validation failed

Increment 0004 is not yet complete:

Issues:
✗ Tasks: 45/48 completed (3 remaining)
  - T-046: Update documentation
  - T-047: Run E2E tests
  - T-048: Final review

✗ Tests: 2 tests failing
  - TC-105: Plugin unload test
  - TC-127: E2E sync test

✗ PM Gates: Not run yet
  - Run /specweave:done 0004 first

Fix these issues, then retry:
  /specweave:github:close-issue 0004

Or force close (not recommended):
  /specweave:github:close-issue 0004 --force

Requirements

  • GitHub CLI (gh) installed and authenticated
  • Increment marked as complete (via /specweave:done)
  • Valid GitHub issue exists for increment

Error Handling

Increment not complete:

❌ Error: Increment 0004 is not complete

Status: in_progress (should be: completed)

Complete the increment first:
  /specweave:done 0004

Then close the issue:
  /specweave:github:close-issue 0004

Issue not found:

❌ Error: No GitHub issue found for increment 0004

Check .metadata.yaml for issue number.

Create issue first:
  /specweave:github:create-issue 0004

Issue already closed:

  Issue #130 is already closed

Closed by: @developer1
Closed at: 2025-10-30 16:00:00

Use --reopen to reopen the issue.

Permission denied:

❌ Error: Insufficient permissions to close issue #130

Required: Write or Admin access to repository

Contact repository admin for access.
  • /specweave:done <increment-id>: Mark increment complete (run this first)
  • /specweave:github:sync <increment-id>: Sync final progress before closing
  • /specweave:github:status <increment-id>: Check issue status

Tips

  1. Auto-Close: Enable auto_close_issue: true for automatic closing when running /specweave:done

  2. Final Sync: Always run /specweave:github:sync before closing to ensure latest progress is posted

  3. Validation: Don't skip validation (--force) unless absolutely necessary - it ensures quality

  4. Custom Comments: Use --comment for release-specific notes (deployment status, known issues, etc.)

  5. Reopening: If increment needs more work after closing, use --reopen to reopen the issue

Advanced

Custom Closing Template

Create .specweave/github/closing-template.md:

# 🎉 Increment {{id}} Completed!

{{summary}}

## Achievements

{{deliverables}}

## Stats

- Duration: {{duration}}
- Team size: {{team_size}}
- Commits: {{commit_count}}

## Deployment

- Merged to: {{branch}}
- Deployed to: {{environment}}
- Release: {{version}}

## Thank You

Special thanks to:
{{contributors}}

---

_Closed by SpecWeave on {{date}}_

Conditional Closing

Close only if specific conditions met:

plugins:
  settings:
    specweave-github:
      closing_conditions:
        # Require all tests passing
        - type: "tests"
          threshold: 100
          required: true

        # Require coverage >= 80%
        - type: "coverage"
          threshold: 80
          required: true

        # Require PR merged
        - type: "pr_merged"
          required: true

        # Require approval from tech lead
        - type: "approval"
          approvers: ["@tech-lead"]
          required: true

Post-Closing Actions

Trigger actions after closing:

plugins:
  settings:
    specweave-github:
      post_close:
        # Create release tag
        - action: "create_tag"
          format: "increment-{{id}}"

        # Trigger deployment
        - action: "github_workflow"
          workflow: "deploy.yml"
          inputs:
            increment: "{{id}}"

        # Notify team
        - action: "slack_notification"
          channel: "#releases"
          message: "Increment {{id}} completed! 🎉"

        # Archive to notion
        - action: "notion_export"
          database: "Completed Increments"

Bulk Close

Close multiple completed increments:

# Close all completed increments
/specweave:github:close-issue --status completed --all

# Close specific increments
for i in 0004 0005 0006; do
  /specweave:github:close-issue $i
done

Reopen with Context

Reopen issue with explanation:

/specweave:github:close-issue 0004 --reopen \
  --comment "Reopening: Critical bug found in production (issue #140). Need to add rollback mechanism."

Close and Lock

Close and lock issue to prevent further comments:

/specweave:github:close-issue 0004 --lock \
  --lock-reason "resolved"  # or "off-topic", "spam", "too heated"

Command: /specweave:github:close-issue Plugin: specweave-github Agent: github-manager Version: 1.0.0 Last Updated: 2025-10-30