Files
John Lamb 24d77808c0
Some checks failed
CI / test (push) Has been cancelled
minor updates, includes new skills for just-ship-it and push to proof
2026-03-13 18:20:27 -05:00

121 lines
3.2 KiB
Markdown

---
name: ship-it
description: This skill should be used when the user wants to ticket, branch, commit, and open a PR in one shot. It creates a Jira ticket from conversation context, assigns it, moves it to In Progress, creates a branch, commits changes, pushes, and opens a PR. Triggers on "ship it", "ticket and PR this", "put up a PR", "let's ship this", or any request to package completed work into a ticket + PR.
---
# Ship It
End-to-end workflow: Jira ticket + branch + commit + push + PR from conversation context. Run after a fix or feature is done and needs to be formally shipped.
## Constants
- **Jira cloudId**: `9cbcbbfd-6b43-42ab-a91c-aaaafa8b7f32`
- **Jira project**: `ZAS`
- **Issue type**: `Story`
- **Assignee accountId**: `712020:62c4d18e-a579-49c1-b228-72fbc63186de`
- **PR target branch**: `stg` (unless specified otherwise)
## Workflow
### Step 1: Gather Context
Analyze the conversation above to determine:
- **What was done** — the fix, feature, or change
- **Why** — the problem or motivation
- **Which files changed** — run `git diff` and `git status` to see the actual changes
Synthesize a ticket summary (under 80 chars, imperative mood) and a brief description. Do not ask the user to describe the work — extract it from conversation context.
### Step 2: Create Jira Ticket
Use `/john-voice` to draft the ticket content, then create via MCP:
```
mcp__atlassian__createJiraIssue
cloudId: 9cbcbbfd-6b43-42ab-a91c-aaaafa8b7f32
projectKey: ZAS
issueTypeName: Story
summary: <ticket title>
description: <ticket body>
assignee_account_id: 712020:62c4d18e-a579-49c1-b228-72fbc63186de
contentFormat: markdown
```
Extract the ticket key (e.g. `ZAS-123`) from the response.
### Step 3: Move to In Progress
Get transitions and find the "In Progress" transition ID:
```
mcp__atlassian__getTransitionsForJiraIssue
cloudId: 9cbcbbfd-6b43-42ab-a91c-aaaafa8b7f32
issueIdOrKey: <ticket key>
```
Then apply the transition:
```
mcp__atlassian__transitionJiraIssue
cloudId: 9cbcbbfd-6b43-42ab-a91c-aaaafa8b7f32
issueIdOrKey: <ticket key>
transition: { "id": "<transition_id>" }
```
### Step 4: Create Branch
Create and switch to a new branch named after the ticket:
```bash
git checkout -b <ticket-key>
```
Example: `git checkout -b ZAS-123`
### Step 5: Commit Changes
Stage and commit all relevant changes. Use the ticket key as a prefix in the commit message. Follow project git conventions (lowercase, no periods, casual).
```bash
git add <specific files>
git commit -m "<ticket-key> <short description>"
```
Example: `ZAS-123 fix candidate email field mapping`
Include the co-author trailer:
```
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
```
### Step 6: Push and Open PR
Push the branch:
```bash
git push -u origin <ticket-key>
```
Use `/john-voice` to write the PR title and body. Create the PR:
```bash
gh pr create --title "<PR title>" --base stg --body "<PR body>"
```
PR body format:
```markdown
## Summary
<2-3 bullets describing the change>
## Jira
[<ticket-key>](https://discoverorg.atlassian.net/browse/<ticket-key>)
## Test plan
<bulleted checklist>
```
### Step 7: Report
Output the ticket URL and PR URL to the user.