Add /landed skill for post-merge lifecycle#25
Conversation
Close the post-merge gap in the sync-design-done workflow by adding a /landed skill that verifies merge CI, optionally checks deployments, cleans up branches, and identifies next phases. Remove /catchup which overlapped with /sync. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
Warning Rate limit exceeded
⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughReplaces the Changes
Sequence Diagram(s)sequenceDiagram
participant User as User
participant Landed as /landed Skill
participant GitHub as GitHub API
participant CI as CI System
participant Deploy as Deployment/HealthCheck
participant Git as Git Remote
User->>Landed: invoke /landed for merged PR
Landed->>GitHub: fetch PR metadata & merge status
GitHub-->>Landed: PR merged info
Landed->>CI: query merge CI runs/status
CI-->>Landed: CI pass/fail
alt deployment configured
Landed->>Deploy: check environment health via `.claude/deploy.json`
Deploy-->>Landed: deployment healthy/unhealthy
end
Landed->>Git: delete remote branch (if requested)
Git-->>Landed: deletion result
Landed-->>User: summary (PR, CI, deployment, cleanup, next steps)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/landed/SKILL.md:
- Around line 80-84: Step 5 in .claude/skills/landed/SKILL.md currently looks
for phase-level checkbox markers but the IMPLEMENTATION_PLAN.md tracks phase
completion in the "Quick Status Summary" table instead; update the
phase-detection logic in Step 5 to parse the "Quick Status Summary" table in
docs/IMPLEMENTATION_PLAN.md (rows under the table header) and treat a phase as
complete only when its status cell equals "Complete", then pick the next phase
whose status is not "Complete" and summarize its description and dependencies.
Ensure the code that implements Step 5 references the "Quick Status Summary"
table header string and the phase names from that table rather than searching
for `- [ ]`/`- [x]` checklist items.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5970636d-1170-44bb-a53c-d8ec0b6ab291
📒 Files selected for processing (9)
.claude/commands/catchup.md.claude/deploy.json.example.claude/skills/landed/SKILL.md.gitignoreCLAUDE.mddocs/CHANGELOG.mddocs/DEVELOPMENT_PROCESS.mdtests/test_commands.pytests/test_skills.py
💤 Files with no reviewable changes (2)
- .claude/commands/catchup.md
- tests/test_commands.py
The IMPLEMENTATION_PLAN.md tracks phase completion via a "Quick Status Summary" table, not phase-level checkboxes. Update Step 5 to match. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Consolidate two ### Added sections into one and place Removed/Changed entries in their correct existing sections. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.claude/skills/landed/SKILL.md:
- Around line 21-23: Update the fenced code blocks in
.claude/skills/landed/SKILL.md to satisfy markdownlint by ensuring there is a
blank line before and after each triple-backtick fence and by declaring the
language for each fence (for example use ```bash for the gh commands and ```text
for output blocks). Specifically edit the blocks containing the command "gh pr
list --state merged --head <branch> --json number,title,mergeCommit -L 1", the
block with "gh run list --branch master -L 5 --json
status,conclusion,databaseId,name,headSha", and the output block that begins
with "# Landed" to add a blank line above and below the fences and add
appropriate language annotations (bash/text) so the linter warnings are
resolved.
- Around line 54-56: The deployment watcher currently queries the latest
workflow run globally using the command string 'gh run list --workflow
<workflow> -L 1 --json status,conclusion,databaseId', which can pick up stale
runs; update the command to filter by the merge commit SHA (use the --commit
<merge_sha> flag) so it only considers runs for the current merge, and ensure
any documentation text around 'health_check' and the '/landed' verification step
mentions that the merge SHA is passed to the gh run list call.
- Around line 33-45: The doc currently treats CI as a single-run check (uses `gh
run list --branch master -L 5 --json ...`) which can miss other workflow runs
for the same merge commit; change the guidance to increase the result window
(e.g., `-L 20`), filter the list by `headSha` to select all runs for the merge
commit SHA, then evaluate all matched runs: if any are `in_progress` watch them
(`gh run watch <id>`), if any have `conclusion=failure` show failed logs (`gh
run view <id> --log-failed`) and ask whether failures are recurring or
PR-specific (suggest adding `/done` validation or pre-merge CI for recurring
issues), and only proceed when all matched runs are `completed` with
`conclusion=success`.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: 3f6766dc-ce92-4211-b13c-af9429664794
📒 Files selected for processing (2)
.claude/skills/landed/SKILL.mddocs/CHANGELOG.md
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ys, markdown lint - CI verification now fetches -L 20 runs and filters by headSha to check all workflow runs for the merge commit, not just one - Deployment check uses --commit <sha> to avoid verifying stale runs - Fenced code blocks have language annotations and blank line spacing Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Summary
/landedskill that runs after a PR merges: verifies merge CI, optionally checks deployments (via.claude/deploy.json), cleans up local and remote feature branches, and identifies the next phase for P-scope work/catchupcommand whose context-restoration role was redundant with/syncTest plan
python -m pytest tests/test_skills.py tests/test_commands.py -v-- 94 passed/landedSKILL.md exists at.claude/skills/landed/SKILL.mdwith correct frontmatter (name, description, allowed-tools, disable-model-invocation)/catchupcommand file is removed and its tests are removed fromtest_commands.py.claude/deploy.jsonis gitignored and.claude/deploy.json.exampleis committed🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
/landedskill for post-merge lifecycle, including merge CI verification, optional deployment checks, automatic branch cleanup, and next-phase identification.Chores
/catchupcommand due to feature overlap with/sync.