feat(skills): add verify composition skill and lock /ship to explicit invocation - #641
Conversation
BREAKING CHANGE: /ship now loads a launch checklist (feature flags, staged rollout, monitoring, rollback) instead of an automated review gate workflow. /land-and-deploy is removed.
New /ship-review skill: spawns code-reviewer, security-auditor, and test-engineer subagents in parallel, then merges into a GO/NO-GO decision with rollback plan. Adapted from addyosmani/agent-skills commands/ship.md. Explicit-invocation only — does not auto-trigger from "ship"/"release"/"deploy" keywords (those stay with /ship).
Add independent skills covering trunk-based git workflow, CI/CD pipeline design, deprecation and migration patterns, ADRs and documentation, and launch readiness with feature flag lifecycle.
- ship: addyosmani /ship command 내용으로 교체 (3-persona 병렬 fan-out → GO/NO-GO + rollback) - ship-review: 삭제 (ship과 중복, explicit-only 가드 때문에 동작 어색) BREAKING CHANGE: /ship 호출 시 기존 배포 체크리스트 대신 fan-out 리뷰가 실행됨. 체크리스트는 shipping-and-launch skill 참조.
… invocation - Add browser-testing-with-devtools and debugging-and-error-recovery skills (mirrored from addyosmani/agent-skills) as the two "Verify" practices. - Add /verify composition skill that runs root-cause triage then runtime verification and emits a PASS/PARTIAL/FAIL report. - Mark /ship as disable-model-invocation so it only runs on explicit user request, not on phrases like "ship it" or "release".
📝 WalkthroughWalkthroughThis PR introduces a comprehensive skill library covering development practices (debugging, CI/CD, git workflow, documentation, deprecation management) and restructures the ship/deploy workflow from individual specialist checklists to a parallel subagent orchestrator. It adds browser-testing and verify composition skills while removing the land-and-deploy skill and supporting specialist reference documentation. Changes
Sequence DiagramsequenceDiagram
actor User
participant Verify as /verify Composition
participant Debug as debugging-and-error-recovery
participant Browser as browser-testing-with-devtools
participant Report as Verification Report
User->>Verify: Trigger verify
activate Verify
Verify->>Debug: Phase 1: Execute debug workflow
activate Debug
Debug->>Debug: Reproduce → Localize → Reduce → Fix → Guard
Debug-->>Verify: Return debug evidence
deactivate Debug
Verify->>Browser: Phase 2: Browser validation (if applicable)
activate Browser
Browser->>Browser: Inspect DOM, Console, Network, Performance
Browser->>Browser: Visual & Accessibility checks
Browser-->>Verify: Return browser evidence
deactivate Browser
Verify->>Report: Merge phase results
activate Report
Report->>Report: Verdict: PASS/PARTIAL/FAIL
Report->>Report: Attach per-phase evidence
deactivate Report
Report-->>User: Structured verification report
deactivate Verify
Estimated Code Review Effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly Related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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. Review rate limit: 0/1 reviews remaining, refill in 60 minutes.Comment |
Repository rule violations found
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 `@plugins/me/skills/browser-testing-with-devtools/SKILL.md`:
- Line 82: Several fenced code blocks in SKILL.md that contain workflow/ASCII
step lists (for example the block starting with "1. REPRODUCE") are unlabeled
and trigger markdownlint MD040; update each unlabeled triple-backtick fence to
include the text language tag (change ``` to ```text) so the step/ASCII blocks
are explicitly marked, and apply the same change to the other similar blocks
noted in the review (the remaining unlabeled workflow/ASCII fenced blocks
throughout the document).
In `@plugins/me/skills/debugging-and-error-recovery/SKILL.md`:
- Line 25: Several fenced code blocks in SKILL.md are missing language tokens
and blank lines causing MD040/MD031 warnings; update each fenced block to
include an explicit language (use ```text for decision-tree/plain examples) and
ensure there is a blank line before and after every triple-backtick fence.
Search SKILL.md for bare fences (``` ) and replace them with fenced blocks like
```text (or the appropriate language for code snippets), and add a blank line
immediately above and below each fence so all blocks follow the suggested
pattern and clear the markdownlint errors MD040/MD031.
In `@plugins/me/skills/documentation-and-adrs/SKILL.md`:
- Around line 16-33: The ADR template's opening fenced code block (the triple
backticks around the ADR content that includes "ADR-NNN: <Title>") lacks a
language identifier causing markdownlint MD040; update the opening fence to
include a language token (e.g., change the leading "```" to "```md") so the
block containing "ADR-NNN: <Title>" is fenced as Markdown and the linter passes.
🪄 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: 0a9a443b-4a7c-4334-b85c-c832fea3dc52
📒 Files selected for processing (20)
plugins/me/skills/browser-testing-with-devtools/SKILL.mdplugins/me/skills/ci-cd-and-automation/SKILL.mdplugins/me/skills/debugging-and-error-recovery/SKILL.mdplugins/me/skills/deprecation-and-migration/SKILL.mdplugins/me/skills/documentation-and-adrs/SKILL.mdplugins/me/skills/git-workflow-and-versioning/SKILL.mdplugins/me/skills/land-and-deploy/SKILL.mdplugins/me/skills/ship/SKILL.mdplugins/me/skills/ship/references/review-checklist.mdplugins/me/skills/ship/references/specialists/api-contract.mdplugins/me/skills/ship/references/specialists/data-migration.mdplugins/me/skills/ship/references/specialists/maintainability.mdplugins/me/skills/ship/references/specialists/performance.mdplugins/me/skills/ship/references/specialists/red-team.mdplugins/me/skills/ship/references/specialists/security.mdplugins/me/skills/ship/references/specialists/testing.mdplugins/me/skills/ship/references/test-triage.mdplugins/me/skills/shipping-and-launch/SKILL.mdplugins/me/skills/verify/SKILL.mdtests/me/me-specific.bats
💤 Files with no reviewable changes (11)
- plugins/me/skills/ship/references/specialists/performance.md
- plugins/me/skills/ship/references/specialists/data-migration.md
- plugins/me/skills/ship/references/specialists/testing.md
- plugins/me/skills/ship/references/specialists/security.md
- plugins/me/skills/ship/references/specialists/maintainability.md
- plugins/me/skills/ship/references/specialists/api-contract.md
- plugins/me/skills/ship/references/test-triage.md
- plugins/me/skills/land-and-deploy/SKILL.md
- plugins/me/skills/ship/references/review-checklist.md
- tests/me/me-specific.bats
- plugins/me/skills/ship/references/specialists/red-team.md
|
|
||
| When processing browser data, maintain clear boundaries: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Please add language tags to unlabeled fenced blocks.
The listed sections trigger markdownlint MD040. Use ```text for workflow/ASCII blocks so the file is lint-clean and consistent.
Suggested pattern
-```
+```text
1. REPRODUCE
...
-```
+```Also applies to: 99-99, 128-128, 152-152, 208-208, 226-226, 248-248
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 82-82: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@plugins/me/skills/browser-testing-with-devtools/SKILL.md` at line 82, Several
fenced code blocks in SKILL.md that contain workflow/ASCII step lists (for
example the block starting with "1. REPRODUCE") are unlabeled and trigger
markdownlint MD040; update each unlabeled triple-backtick fence to include the
text language tag (change ``` to ```text) so the step/ASCII blocks are
explicitly marked, and apply the same change to the other similar blocks noted
in the review (the remaining unlabeled workflow/ASCII fenced blocks throughout
the document).
|
|
||
| When anything unexpected happens: | ||
|
|
||
| ``` |
There was a problem hiding this comment.
Address markdownlint fence warnings in this file.
Several fenced blocks are missing a language token and a couple need blank lines around fences. Consolidating these to ```text (for decision trees) and keeping blank lines around all fences will clear MD040/MD031 warnings.
Suggested pattern
-```
+```text
...
-```
+``` For test failures:
+
```bash
# Run the specific failing test
npm test -- --grep "test name"
...</details>
Also applies to: 44-44, 55-55, 76-76, 91-91, 102-102, 125-125, 176-176, 190-190, 201-201
<details>
<summary>🧰 Tools</summary>
<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>
[warning] 25-25: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
</details>
</details>
<details>
<summary>🤖 Prompt for AI Agents</summary>
Verify each finding against the current code and only fix it if needed.
In @plugins/me/skills/debugging-and-error-recovery/SKILL.md at line 25, Several
fenced code blocks in SKILL.md are missing language tokens and blank lines
causing MD040/MD031 warnings; update each fenced block to include an explicit
language (use text for decision-tree/plain examples) and ensure there is a blank line before and after every triple-backtick fence. Search SKILL.md for bare fences ( ) and replace them with fenced blocks like ```text (or the
appropriate language for code snippets), and add a blank line immediately above
and below each fence so all blocks follow the suggested pattern and clear the
markdownlint errors MD040/MD031.
</details>
<!-- fingerprinting:phantom:triton:hawk:bcdd6a95-6c47-4434-99a2-1cba58cdfe40 -->
<!-- d98c2f50 -->
<!-- This is an auto-generated comment by CodeRabbit -->
| ``` | ||
| # ADR-NNN: <Title> | ||
|
|
||
| ## Status | ||
| Proposed | Accepted | Superseded by ADR-XXX | ||
|
|
||
| ## Context | ||
| What problem? What constraints? What did we know at the time? | ||
|
|
||
| ## Decision | ||
| What we chose. | ||
|
|
||
| ## Consequences | ||
| What this enables, what it costs, what it forecloses. | ||
|
|
||
| ## Alternatives Considered | ||
| What else we looked at and why we didn't pick it. | ||
| ``` |
There was a problem hiding this comment.
Add a language identifier to the ADR template code fence.
markdownlint MD040 is triggered here because the fenced block has no language tag. Add one (e.g., md) to keep lint green.
Proposed fix
-```
+```md
# ADR-NNN: <Title>
@@
-```
+```📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| ``` | |
| # ADR-NNN: <Title> | |
| ## Status | |
| Proposed | Accepted | Superseded by ADR-XXX | |
| ## Context | |
| What problem? What constraints? What did we know at the time? | |
| ## Decision | |
| What we chose. | |
| ## Consequences | |
| What this enables, what it costs, what it forecloses. | |
| ## Alternatives Considered | |
| What else we looked at and why we didn't pick it. | |
| ``` |
🧰 Tools
🪛 markdownlint-cli2 (0.22.1)
[warning] 16-16: Fenced code blocks should have a language specified
(MD040, fenced-code-language)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@plugins/me/skills/documentation-and-adrs/SKILL.md` around lines 16 - 33, The
ADR template's opening fenced code block (the triple backticks around the ADR
content that includes "ADR-NNN: <Title>") lacks a language identifier causing
markdownlint MD040; update the opening fence to include a language token (e.g.,
change the leading "```" to "```md") so the block containing "ADR-NNN: <Title>"
is fenced as Markdown and the linter passes.
# [17.0.0](v16.19.0...v17.0.0) (2026-05-01) ### Features * **skills:** add verify composition skill and lock /ship to explicit invocation ([#641](#641)) ([33845ff](33845ff)) ### BREAKING CHANGES * **skills:** /ship now loads a launch checklist (feature flags, staged rollout, monitoring, rollback) instead of an automated review gate workflow. /land-and-deploy is removed. * feat(ship-review): add explicit-only fan-out review skill New /ship-review skill: spawns code-reviewer, security-auditor, and test-engineer subagents in parallel, then merges into a GO/NO-GO decision with rollback plan. Adapted from addyosmani/agent-skills commands/ship.md. Explicit-invocation only — does not auto-trigger from "ship"/"release"/"deploy" keywords (those stay with /ship). * feat(skills): add five engineering practice skills to me plugin Add independent skills covering trunk-based git workflow, CI/CD pipeline design, deprecation and migration patterns, ADRs and documentation, and launch readiness with feature flag lifecycle. * refactor(ship)!: replace ship skill with addyosmani fan-out orchestrator - ship: addyosmani /ship command 내용으로 교체 (3-persona 병렬 fan-out → GO/NO-GO + rollback) - ship-review: 삭제 (ship과 중복, explicit-only 가드 때문에 동작 어색) * **skills:** /ship 호출 시 기존 배포 체크리스트 대신 fan-out 리뷰가 실행됨. 체크리스트는 shipping-and-launch skill 참조. * feat(skills): add verify composition skill and lock /ship to explicit invocation - Add browser-testing-with-devtools and debugging-and-error-recovery skills (mirrored from addyosmani/agent-skills) as the two "Verify" practices. - Add /verify composition skill that runs root-cause triage then runtime verification and emits a PASS/PARTIAL/FAIL report. - Mark /ship as disable-model-invocation so it only runs on explicit user request, not on phrases like "ship it" or "release".
Summary
browser-testing-with-devtoolsanddebugging-and-error-recoveryskills (mirrored fromaddyosmani/agent-skills) as the two "Verify — prove it works" practices./verifycomposition skill that sequences root-cause triage (Phase 1) and Chrome DevTools runtime verification (Phase 2), then emits a PASS/PARTIAL/FAIL report. Markeddisable-model-invocation: trueso it only runs on explicit user request./shipto explicit invocation by addingdisable-model-invocation: trueso phrases like "ship it" / "release" / "deploy" no longer auto-trigger the skill.Changes
plugins/me/skills/ship/SKILL.md— frontmatter now includesdisable-model-invocation: true.plugins/me/skills/verify/SKILL.md— new composition skill.plugins/me/skills/browser-testing-with-devtools/SKILL.md— new.plugins/me/skills/debugging-and-error-recovery/SKILL.md— new.Test plan
/shipno longer auto-triggers on the phrase "ship it" in a fresh session./verifyruns only when invoked explicitly via slash command./verifyresolves links to the two underlying skills correctly.Summary by CodeRabbit
Release Notes
New Features
/verifyskill for end-to-end verification with browser runtime validationRefactor
/shipto run specialist reviews in parallel instead of sequentially/land-and-deployskill with new/shipping-and-launchguidance focused on reversible, observable, incremental deployments