Adds four-case routing between push and description steps:
- Case 1: on a stack branch → gh stack push + gh stack submit + per-PR
description via ce-pr-description + gh pr edit per PR
- Case 2: not in stack, change passes two-stage effectiveness test →
suggest stacking, on yes load ce-pr-stack, on return re-enter routing
as Case 1
- Case 3: gh-stack not installed, change passes stage-1 → offer-and-run
install, on success re-enter as Case 2
- Case 4: monolithic default → existing git push + gh pr create, now
with description via ce-pr-description
Monolithic Steps 6-7 stay untouched; they are the single source of truth
for monolithic description generation. Case 1 explicitly exits before
them; Case 4 explicitly hands back to them.
Effectiveness test prose carries a sync-obligation comment listing all
four locations (this file, ce-work shipping, ce-work-beta shipping,
ce-plan). Changes to the heuristic update all four atomically.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New skill owns the value-first description writing logic that was
previously inline in git-commit-push-pr. Input contract is two-shape:
pr:<number> for existing PRs (used by refresh mode), or range:<base>..<head>
for pre-PR generation (used by new PR creation and by ce-pr-stack per
layer). Output is structured {title, body}; caller decides whether to
apply via gh pr edit.
No interactive prompts, no auto-apply, no branch coupling. The skill
is a pure capability — git-commit-push-pr wraps it with confirmation
prompts and evidence-capture for single-PR interactive flows;
ce-pr-stack (via git-commit-push-pr's stack-aware routing, coming next)
will call it per layer without the interactive scaffolding.
Refactor preserves git-commit-push-pr's user-facing behavior:
- Full flow: commit + push + create PR, description generated via
ce-pr-description with range:<base>..<head> and passed to gh pr create
in a single call (no transient placeholder on GitHub)
- Refresh mode (DU-1/DU-2/DU-3): interactive scaffolding stays; DU-3
delegates description generation to ce-pr-description with pr:<number>,
then presents the compare-and-confirm as before
Naming: ce-pr-description, not git-pr-description. PR is a GitHub
artifact; the ce- prefix matches the future convention for plugin
skills. git-commit-push-pr will rename later.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>