Skip to content

Redesign finish-feature.sh as the closing step of a feature - #52

Merged
taspinar merged 1 commit into
mainfrom
feature/48-finish-feature
Oct 2, 2026
Merged

taspinar merged 1 commit into
mainfrom
feature/48-finish-feature

Conversation

@taspinar

@taspinar taspinar commented Oct 2, 2026

Copy link
Copy Markdown
Owner

What changed

  • ./scripts/finish-feature.sh <issue> "<summary>" [--no-review "<reason>"] replaces the broken script and supersedes Add commit-feature.sh helper script #6 and Deprecate or redesign finish-feature.sh for the pre-commit review workflow #9. In the feature worktree it:
    • refuses another branch than feature/<issue>-* and a tree without changes;
    • runs ./scripts/verify.sh;
    • requires the latest review of the feature to be current and free of critical and major findings;
    • requires every review round with findings to have an approved triage (the newest by number) that was published on the Issue, and the latest round to have no FIX_NOW findings left; a passed newer round confirms earlier fixes;
    • stages all changes (review and triage files are ignored) and opens a structured commit message in the editor: summary, Issue, changes to fill in, verification, review round and verdict, Refs #<issue>. An emptied message aborts the commit.
  • --no-review "<reason>" finishes a low-risk change without a review and records the reason in the commit message.
  • It never pushes, opens a PR, or merges; it prints those next steps.
  • triage-review.sh records published_at in the triage after publication, and triage-review.sh --publish <triage-json> [--mark-only] repeats a failed publication.
  • README, docs/development.md, and docs/agentic-workflow.md end the feature workflow with finish-feature.sh.

Issue / acceptance criteria

Closes #48

Risk

  • Low
  • Medium
  • High

Verification evidence

  • ./scripts/verify.sh passed (15 checks), also without global or system Git configuration
  • Tests added/updated where appropriate (tests/finish-feature-test.sh, also passing under macOS system bash 3.2)
  • Independent review completed when required
  • Architecture/docs/ADR updated when required

Independent review: Codex (gpt-6-astra), read-only. CHANGES REQUIRED:

  • M1 (a passed second round bypassed a missing or unpublished triage of round 1): fixed; every round with findings is checked. Tested with two rounds.
  • M2 (the first, unnumbered triage could be chosen over a newer numbered one): fixed by selecting triages by number. Tested.

Not re-reviewed after the fixes.

Agent involvement

Planner: —
Implementer: Claude (Opus 5.5)
Reviewer: Codex (gpt-6-astra)

Production impact

None.

🤖 Generated with Claude Code

finish-feature.sh <issue> "<summary>" runs in the feature worktree,
runs verification, and checks that the latest review is current and has
no critical or major finding, that every round with findings has an
approved triage published on the Issue, and that the latest round has
no FIX_NOW findings left. It then stages the changes and opens a
structured, editable commit message. --no-review records the reason for
a low-risk change. It never pushes or merges.

triage-review.sh records the publication in the triage artifact and can
publish a stored triage again with --publish.

Closes #48

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@taspinar
taspinar merged commit dd46aef into main Oct 2, 2026
1 check passed
@taspinar
taspinar deleted the feature/48-finish-feature branch October 2, 2026 22:16
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Redesign finish-feature.sh as the closing step of a feature

1 participant