Skip to content

docs(me): default ship/create-pr to squash auto-merge - #658

Closed
baleen37 wants to merge 3 commits into
mainfrom
feat/improve-ship2
Closed

docs(me): default ship/create-pr to squash auto-merge#658
baleen37 wants to merge 3 commits into
mainfrom
feat/improve-ship2

Conversation

@baleen37

@baleen37 baleen37 commented May 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • create-pr: 항상 gh pr merge --auto --squash로 기본 동작 변경. 다른 머지 전략은 사용자가 명시적으로 요청할 때만.
  • ship: ship 흐름 내 push/PR/merge는 승인 프롬프트 없이 자동 진행 (me:create-pr에 위임). 그 외 위험 액션(배포·태깅·인프라 등)은 여전히 승인 필요.
  • main과의 머지 동기화 포함 (autoresearch 제거 등). MD029 정렬 위반 fix.

Test plan

  • pre-commit (markdownlint, BATS unit) 통과
  • CI 통과

Summary by CodeRabbit

  • Features Removed

    • Removed the autoresearch plugin and related functionality.
  • Updates

    • Updated plugins (Datadog, Jira, Me, Ralph) to version 17.11.1.
    • Redesigned the Ship workflow from persona-based review to production deployment procedures with pre-deploy, deploy, and post-deploy phases.
    • Updated Create PR skill to default to auto-squash merge strategy.
  • Documentation

    • Updated lifecycle and deployment documentation to reflect new shipping and launch procedures.

Review Change Stack

Test User added 3 commits May 17, 2026 01:24
…o ship

Remove the parallel fan-out orchestrator and promote the
shipping-and-launch pre-launch checklist skill to the `ship` name.
The two skills overlapped in purpose and the checklist-driven skill is
the one worth keeping.
create-pr: always squash --auto unless user explicitly requests another strategy.
ship: exempt push/PR/merge from approval prompts inside the ship flow; delegate to create-pr.
Resolves conflict in plugins/me/skills/ship/SKILL.md by taking the rewritten
three-phase ship skill from main and re-applying the squash auto-merge exception
for the PR flow inside ship.

Also fixes pre-existing MD029 ordered-list violations exposed by lint after merge.
@baleen37
baleen37 enabled auto-merge (squash) May 24, 2026 11:51
@coderabbitai

coderabbitai Bot commented May 24, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

This PR removes the autoresearch plugin completely, bumps plugin versions to 17.11.1, updates the create-pr merge policy to default to auto-squash, and redesigns the ship workflow from fan-out orchestration to a three-phase deploy/verify/rollback pattern with explicit approval gates.

Changes

Plugin lifecycle and workflow updates

Layer / File(s) Summary
Autoresearch plugin removal
.agents/plugins/marketplace.json, README.md, plugins/me/skills/setup/settings.json, tests/codex_marketplace_json.bats, tests/codex_plugin_json.bats
Autoresearch plugin removed from marketplace registry, enabled plugins list, project documentation, and test expectations; plugin count assertion updated from 5 to 4.
Plugin version synchronization
.claude-plugin/marketplace.json, plugins/datadog/.claude-plugin/plugin.json, plugins/datadog/.codex-plugin/plugin.json, plugins/jira/.claude-plugin/plugin.json, plugins/jira/.codex-plugin/plugin.json, plugins/me/.claude-plugin/plugin.json, plugins/me/.codex-plugin/plugin.json, plugins/ralph/.claude-plugin/plugin.json, plugins/ralph/.codex-plugin/plugin.json
All plugin manifest versions bumped from 17.10.0 to 17.11.1 across marketplace registry and individual plugin descriptors.
Create-PR merge policy defaults
plugins/me/skills/create-pr/SKILL.md
Default merge behavior changed to always use gh pr merge --auto --squash with documented override path for user-requested alternate strategies; Monitor tool integration clarified with terminal event handling for MERGED, AWAITING_REVIEW, CI_FAILED, and CLOSED states.
Ship workflow redesign
plugins/me/README.md, plugins/me/skills/ship/SKILL.md
Ship skill rewritten from fan-out orchestrator (code-reviewer, security-auditor, test-engineer personas) to three-phase deployment workflow (pre-deploy → deploy with approval gate → post-deploy verification); adds Deploy Convention reading, health checks, rollback policy, staged rollout guidance, and feature flag handling; consolidates shipping-and-launch lifecycle under ship.

Sequence Diagram(s)

sequenceDiagram
  participant User
  participant CreatePR as create-pr skill
  participant Monitor as Monitor tool
  participant GH as GitHub API
  User->>CreatePR: Invoke create-pr
  CreatePR->>GH: gh pr merge --auto --squash (default)
  CreatePR->>Monitor: Invoke wait-for-merge.sh
  Monitor->>GH: Poll PR status
  alt Terminal: MERGED
    Monitor-->>CreatePR: MERGED event
    CreatePR->>CreatePR: Continue to PR body
  else Terminal: CI_FAILED
    Monitor-->>CreatePR: CI_FAILED event
    CreatePR->>User: Request log review
    CreatePR->>CreatePR: Invoke me:fix-pr
    CreatePR->>Monitor: Re-invoke wait-for-merge.sh
  else Terminal: CLOSED
    Monitor-->>CreatePR: CLOSED event
    CreatePR->>CreatePR: Stop
  end
Loading
sequenceDiagram
  participant Dev
  participant Ship as ship skill
  participant DeployConvention as Project Deploy Convention
  participant PostDeploy as Post-deploy verifier
  Dev->>Ship: Invoke /ship
  Ship->>Ship: Classify changes (deployable vs. non-deployable)
  alt Non-deployable
    Ship-->>Dev: Skip deploy/verify phases
  else Deployable
    Ship->>DeployConvention: Read deploy commands, health checks, rollback
    Ship->>Ship: Phase 1: pre-deploy checks
    Ship->>Ship: Phase 2: deploy (await approval)
    Ship->>PostDeploy: Phase 3: health checks, smoke flows, logs
    alt Verification OK
      PostDeploy-->>Dev: Ship complete
    else Verification FAIL
      PostDeploy->>PostDeploy: Draft rollback command
      PostDeploy-->>Dev: Evidence collected, awaiting approval
    end
  end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • baleen37/bstack#657: Also removes the autoresearch plugin end-to-end from marketplace registry, plugin files, and tests.
  • baleen37/bstack#641: Modifies the same plugins/me/skills/ship/SKILL.md file; locks /ship skill to explicit invocation.
  • baleen37/bstack#655: Updates the same plugins/me/skills/ship/SKILL.md and plugins/me/skills/shipping-and-launch/SKILL.md files during ship workflow redesign.

🐰 A plugin exits the stage with grace,
Versions leap forward in space,
Auto-squash now leads the way,
And ships chart a new deploy day.
Workflows refined, one change at a time!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title focuses narrowly on documentation for the create-pr and ship skills (squash auto-merge defaults), but the changeset includes substantial plugin removal (autoresearch), version updates across multiple plugins, test modifications, and skill workflow restructuring. Consider a more comprehensive title that reflects the primary scope, such as 'feat: remove autoresearch plugin and consolidate ship/create-pr workflows' or clarify if plugin removal is incidental to the docs changes.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/improve-ship2
⚔️ Resolve merge conflicts
  • Resolve merge conflict in branch feat/improve-ship2

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@plugins/me/skills/ship/SKILL.md`:
- Line 150: The SKILL.md file contains broken links to non-existent checklist
files; update SKILL.md to either point to the correct existing checklist
locations or add the missing checklist files under a new references directory.
Specifically fix the three referenced paths
"references/performance-checklist.md", "references/accessibility-checklist.md",
and "references/security-checklist.md" by (a) replacing each link with the
correct repo path if those checklists live elsewhere, or (b) creating the
corresponding files in plugins/me/skills/ship/references/ with the expected
checklist content (or stubs) and commit them so the links resolve; ensure link
text remains descriptive and test the links render correctly in SKILL.md.
- Around line 23-26: Update the user-facing docs and skill invocation text to
state that the ship flow runs push, PR creation and merge automatically (no
per-step prompts), that it delegates PR creation/merge to the me:create-pr skill
and performs a squash auto-merge using gh pr merge --auto --squash, and include
a short note about behavior when GitHub/repo protections block merging (e.g.,
the flow will fail or report the block rather than pausing for manual
confirmation); make these edits in SKILL.md and the ship invocation response so
users see the auto-squash/auto-merge behavior up front.

In `@tests/codex_plugin_json.bats`:
- Line 10: The test's expected_plugins array is missing the "datadog" plugin;
update the expected_plugins variable instances in the test cases to include
"datadog" (so the array becomes ("jira" "me" "ralph" "datadog")) to match the
marketplace entry (source ./plugins/datadog and skills ./skills/) and apply this
same change to all occurrences of expected_plugins in the test file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: cdf09beb-e519-47a7-bed0-c7114dbce4d0

📥 Commits

Reviewing files that changed from the base of the PR and between 0cac024 and 029cab0.

📒 Files selected for processing (24)
  • .agents/plugins/marketplace.json
  • .claude-plugin/marketplace.json
  • README.md
  • plugins/autoresearch/.claude-plugin/plugin.json
  • plugins/autoresearch/.codex-plugin/plugin.json
  • plugins/autoresearch/commands/autoresearch.md
  • plugins/autoresearch/hooks/autoresearch-context.sh
  • plugins/autoresearch/hooks/hooks.json
  • plugins/autoresearch/skills/autoresearch/SKILL.md
  • plugins/datadog/.claude-plugin/plugin.json
  • plugins/datadog/.codex-plugin/plugin.json
  • plugins/jira/.claude-plugin/plugin.json
  • plugins/jira/.codex-plugin/plugin.json
  • plugins/me/.claude-plugin/plugin.json
  • plugins/me/.codex-plugin/plugin.json
  • plugins/me/README.md
  • plugins/me/skills/create-pr/SKILL.md
  • plugins/me/skills/setup/settings.json
  • plugins/me/skills/ship/SKILL.md
  • plugins/me/skills/shipping-and-launch/SKILL.md
  • plugins/ralph/.claude-plugin/plugin.json
  • plugins/ralph/.codex-plugin/plugin.json
  • tests/codex_marketplace_json.bats
  • tests/codex_plugin_json.bats
💤 Files with no reviewable changes (10)
  • plugins/autoresearch/hooks/hooks.json
  • plugins/autoresearch/hooks/autoresearch-context.sh
  • plugins/autoresearch/skills/autoresearch/SKILL.md
  • plugins/autoresearch/.codex-plugin/plugin.json
  • README.md
  • .agents/plugins/marketplace.json
  • plugins/autoresearch/.claude-plugin/plugin.json
  • plugins/me/skills/shipping-and-launch/SKILL.md
  • plugins/autoresearch/commands/autoresearch.md
  • plugins/me/skills/setup/settings.json

Comment on lines +23 to +26
**Exception — PR flow inside ship:** push, PR creation, and merge are part of the ship flow itself,
so run them automatically without prompting. Always squash-merge via `gh pr merge --auto --squash`
(delegate to `me:create-pr`, which defaults to squash auto-merge). The user invoked ship to drive
the release end-to-end; pausing on each git step defeats the purpose.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if ship behavior is documented in user-facing README or quickstart

rg -n -C3 --type=md 'ship.*automatic|ship.*without.*prompt|ship.*auto.*merge'

Repository: baleen37/bstack

Length of output: 1874


Ship auto-squash merge runs without per-step user prompting—call it out in user-facing docs.

The ship exception grants the ship flow automatic push/PR creation/merge authority (delegated to me:create-pr) and always uses gh pr merge --auto --squash, bypassing any “ask before changing shared state” pause between those git steps. Make sure /ship user-facing documentation (or the skill invocation response) clearly states that invoking ship will auto-squash-merge the PR without pausing for manual confirmation/diff review, and clarifies what happens if merge is blocked by repo/GitHub protections.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/me/skills/ship/SKILL.md` around lines 23 - 26, Update the user-facing
docs and skill invocation text to state that the ship flow runs push, PR
creation and merge automatically (no per-step prompts), that it delegates PR
creation/merge to the me:create-pr skill and performs a squash auto-merge using
gh pr merge --auto --squash, and include a short note about behavior when
GitHub/repo protections block merging (e.g., the flow will fail or report the
block rather than pausing for manual confirmation); make these edits in SKILL.md
and the ship invocation response so users see the auto-squash/auto-merge
behavior up front.


- **Code quality** — tests pass, lint/type/build clean, code reviewed (use `me:review`, `me:test`)
- **Security** — no secrets, audit clean, auth/CORS/rate limits in place (use `me:security-auditor`)
- **Performance / a11y** — see `references/performance-checklist.md`, `references/accessibility-checklist.md`

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check if the referenced checklist files exist

fd --type f --full-path 'plugins/me/skills/ship/references/(security-checklist|performance-checklist|accessibility-checklist)\.md'

Repository: baleen37/bstack

Length of output: 41


🏁 Script executed:

#!/bin/bash
set -euo pipefail

# 1) List the references/ directory
echo "== references directory (if exists) =="
ls -la plugins/me/skills/ship/references 2>/dev/null || echo "MISSING: plugins/me/skills/ship/references"

# 2) Check exact filenames
echo
echo "== exact file checks =="
for f in security-checklist.md performance-checklist.md accessibility-checklist.md; do
  if [ -f "plugins/me/skills/ship/references/$f" ]; then
    echo "FOUND: plugins/me/skills/ship/references/$f"
  else
    echo "MISSING: plugins/me/skills/ship/references/$f"
  fi
done

# 3) Fallback: show any *checklist*.md in that directory
echo
echo "== *checklist*.md present =="
fd -t f "checklist" plugins/me/skills/ship/references -g "*.md" || echo "none"

Repository: baleen37/bstack

Length of output: 594


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Find exact checklist filenames anywhere in repo =="
for f in security-checklist.md performance-checklist.md accessibility-checklist.md; do
  echo "-- $f --"
  fd -t f --hidden --follow -i "$f" . || true
  echo
done

echo "== Find any *checklist*.md =="
fd -t f --hidden --follow -i "*checklist*.md" . | head -n 50

Repository: baleen37/bstack

Length of output: 550


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Exact filename existence (repo-wide) =="
for f in security-checklist.md performance-checklist.md accessibility-checklist.md; do
  echo "-- $f --"
  find . -type f -name "$f" 2>/dev/null | head -n 20 || true
  echo
done

echo "== Inspect SKILL.md references around mentioned lines =="
# Print a window around the relevant lines (150 and 179)
sed -n '130,190p' plugins/me/skills/ship/SKILL.md | nl -ba | sed -n '1,80p'

Repository: baleen37/bstack

Length of output: 316


🏁 Script executed:

#!/bin/bash
set -euo pipefail

echo "== Exact filename existence (repo-wide) =="
for f in security-checklist.md performance-checklist.md accessibility-checklist.md; do
  echo "-- $f --"
  find . -type f -name "$f" 2>/dev/null | head -n 20
  echo
done

echo "== Inspect SKILL.md references around mentioned lines =="
# Show line numbers using awk
awk 'NR>=130 && NR<=190 {printf "%d:%s\n", NR, $0}' plugins/me/skills/ship/SKILL.md

Repository: baleen37/bstack

Length of output: 3519


Fix broken checklist references in plugins/me/skills/ship/SKILL.md.

references/performance-checklist.md, references/accessibility-checklist.md, and references/security-checklist.md are linked at lines 150 and 179, but none of these files exist in the repo (and plugins/me/skills/ship/references/ is missing).

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@plugins/me/skills/ship/SKILL.md` at line 150, The SKILL.md file contains
broken links to non-existent checklist files; update SKILL.md to either point to
the correct existing checklist locations or add the missing checklist files
under a new references directory. Specifically fix the three referenced paths
"references/performance-checklist.md", "references/accessibility-checklist.md",
and "references/security-checklist.md" by (a) replacing each link with the
correct repo path if those checklists live elsewhere, or (b) creating the
corresponding files in plugins/me/skills/ship/references/ with the expected
checklist content (or stubs) and commit them so the links resolve; ensure link
text remains descriptive and test the links render correctly in SKILL.md.


@test "codex plugin manifests exist for skill plugins only" {
local expected_plugins=("autoresearch" "jira" "me" "ralph")
local expected_plugins=("jira" "me" "ralph")

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Missing datadog plugin in test expectations.

The expected_plugins array includes only jira, me, and ralph, but the marketplace contains a fourth plugin datadog with source ./plugins/datadog. The provided plugins/datadog/.codex-plugin/plugin.json (line 18) shows "skills": "./skills/", indicating it's a skill plugin that should be validated by these tests.

🔧 Proposed fix to include datadog
-    local expected_plugins=("jira" "me" "ralph")
+    local expected_plugins=("datadog" "jira" "me" "ralph")

Apply this change to all four test cases (lines 10, 20, 28, and 40).

Also applies to: 20-20, 28-28, 40-40

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/codex_plugin_json.bats` at line 10, The test's expected_plugins array
is missing the "datadog" plugin; update the expected_plugins variable instances
in the test cases to include "datadog" (so the array becomes ("jira" "me"
"ralph" "datadog")) to match the marketplace entry (source ./plugins/datadog and
skills ./skills/) and apply this same change to all occurrences of
expected_plugins in the test file.

@baleen37 baleen37 closed this Jun 2, 2026
auto-merge was automatically disabled June 2, 2026 05:19

Pull request was closed

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.

1 participant