.agents/skills/harness-ship/SKILL.md
Phase skill: commit changes, push branch, create a GitHub pull request, and watch CI to green
npx skillsauth add cowcow02/agentfleet harness-shipInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Package the work into a well-described PR linked to the Linear ticket, then watch CI to green so the human review gate has a known-good state to evaluate.
Scope: ship is pre-merge only. PR merge, Railway healthcheck, Linear "Done", and worktree removal happen in harness-cleanup after the human approves and the review phase flips from waiting to done.
Stage and commit:
git add -A).harness/conversations/<task-id>.md — this file is part of the deliverable and lives outside the typical source dirs, so it's easy to miss. It is NOT gitignored.git logPush branch:
git push -u origin <branch-name>
Create PR:
gh pr create --title "<concise title>" --body "$(cat <<'EOF'
## Summary
<what changed and why, 1-3 bullets>
## Linear ticket
<ticket-id>: <title>
## Changes
<list of key changes>
## Test plan
- [ ] <checklist of what to verify>
## Evidence
<screenshots or API response summaries from verify phase>
EOF
)"
Capture PR URL in state outputs
Update Linear ticket — if the task is a Linear ticket (AGE-XX pattern):
In Reviewsave_issue with a links entry:
links: [{ url: "<pr-url>", title: "Pull Request: <pr-title>" }]
Watch CI — wait for all checks to complete on the PR:
gh pr checks <pr-number> --watch
ci_runsgh run view <run-id> --log-failed), attempt one fix, push, and re-watchRecord to conversation file:
Insert before the ## Harness Issues marker in .harness/conversations/<task-id>.md (use Edit tool with ## Harness Issues as the anchor — do NOT literally append, that would land below the issues section):
## Ship
**Branch:** <branch-name>
**PR:** <url>
**Commits:** <count>
**CI:** pass (run: <url>) / fail
If you hit friction (CI failed and required a fix, push rejected, PR creation failed), append an entry to the literal end of the file — it will land inside the ## Harness Issues section since that section is last.
Commit & push the ship-phase conversation update — step 7 wrote the ## Ship section to the conversation file after the initial commit in step 1, so those changes are uncommitted. Capture them in a follow-up commit so they survive worktree cleanup and are visible on the PR:
git add .harness/conversations/<task-id>.md
git commit -m "chore: record ship phase to <task-id> conversation log"
git push
If there are no changes, skip silently.
Mark ship phase done. The engine will move to the review phase, see status waiting, and stop. The human reviews on GitHub and signals approval. Once review flips to done, the engine resumes into harness-cleanup, which performs the merge, Railway healthcheck, Linear → "Done", and worktree removal.
Do not merge the PR, run Railway checks, or remove the worktree from this skill — those are harness-cleanup's job.
review waiting gate)git push fails (e.g., auth issue), tell the humantesting
Launcher — pick up a Linear ticket or task description and drive it through the full phased workflow (pickup → understand → plan → implement → quality → verify → ship).
development
Phase skill: start the app on an isolated per-task environment and verify the deliverable works — browser checks via Claude in Chrome for UI, HTTP calls for API
development
Phase skill: explore the codebase to understand what needs to change for the ticket
development
Discover your team's development lifecycle through a deep dive conversation, then generate a phased workflow tailored to how you actually work.