skills/autopilot/SKILL.md
Autonomously pick up a Jira issue and complete it end-to-end — plan, implement, test, verify, archive, commit, push, and confirm CI passes. Use when the user says "autopilot", "pick up the next ticket and finish it", "autonomous mode", or otherwise wants the full development cycle run without intermediate confirmations. Only pauses at the very start to confirm the issue selection.
npx skillsauth add avantmedialtd/skills autopilotInstall 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.
Run the full development cycle on a Jira issue without intermediate confirmations: pick up, plan, implement, test, verify, archive, commit, push, and check CI.
/autopilot or asks for "autonomous" / "hands-off" work.Examples:
If no issue-key is provided, fetch the topmost issue from the board:
af jira projects --json
af jira search "project = <PROJECT> AND status = 'Selected for Development' ORDER BY Rank ASC" --limit 1 --json
Fetch the issue details using af jira get <issue-key>.
Assign the issue to yourself using af jira assign <issue-key> --to $(af jira get <issue-key> --json | jq -r '.reporter.emailAddress') — but first check who the current user is by looking at the Jira config or asking.
Transition the issue to "In Progress" using af jira transition <issue-key> --to "In Progress". If this fails, run af jira transitions <issue-key> to find the correct status name.
Derive a change-id from the issue key and summary (kebab-case, verb-led). Store <issue-key>, <issue-summary>, and <change-id> for use in all remaining phases.
Invoke /opsx:ff (Skill tool) with the <change-id>.
Enrich the proposal artifact with Jira context:
**Jira**: [ISSUE-KEY](jira-url)This creates the change directory and generates ALL artifacts (proposal, specs, design, tasks) in one pass.
On failure: If artifact creation fails critically (e.g., cannot create directory, CLI errors), report the error and STOP.
Invoke /opsx:apply (Skill tool) with the <change-id>.
This implements all tasks from the generated tasks.md. Let the skill run through all tasks without interruption.
Auto-mode behavior: When the apply skill would normally pause for clarification, make reasonable decisions and continue. Prefer the simplest correct approach. If implementation reveals a true design issue that cannot be resolved with reasonable defaults, STOP and explain the issue.
Run E2E tests:
af e2e
If tests fail, enter a fix-and-retry loop:
./test-results/*/error-context.md for full page stateaf e2e npm run e2e -- --update-snapshots
--grep "pattern" to iterate faster on the specific failing test--grep to confirm nothing else brokeEscape valve: If E2E tests still fail after 3 full-suite attempts, STOP and report which tests are failing, what fixes were attempted, and the current state.
Invoke /opsx:verify (Skill tool) with the <change-id>.
Handle verification results autonomously:
Archive the OpenSpec change:
Invoke /opsx:archive (Skill tool) with the <change-id>.
In auto mode, when the archive skill encounters prompts:
Commit with trailers:
git add -A
git commit -m "<issue-summary>" \
--trailer "Issue=<issue-key>" \
--trailer "OpenSpec-Id=<change-id>"
Transition Jira to Done:
af jira transition <issue-key> --to "Done"
If this fails, run af jira transitions <issue-key> to find the correct completion status name.
Push to remote:
git push
Read the Jenkins job path from the project's CLAUDE.md (e.g., Jenkins job: folder/job-name). If not configured, skip this phase and warn the user.
Wait ~30 seconds for Jenkins to pick up the push, then poll build status:
af jenkins build <job-path> latest --json
Repeat every 30 seconds until the build is no longer in progress (check the building field or result field in JSON output).
If build succeeds: continue to final summary.
If build fails:
af jenkins stages <job-path> latest to identify the failing stageaf jenkins stage-log <job-path> <failing-stage> latest to read the error outputgit add -A && git commit -m "<issue-summary>" --trailer ... pattern from Phase 6 step 12, push, and poll againEscape valve: If the build still fails after 3 CI attempts, STOP and report the failing stage, error output, and what fixes were attempted.
Display a completion summary:
## Work Complete
**Issue:** [ISSUE-KEY] <issue-summary>
**Change:** <change-id>
**Status:** Done
### Phases Completed
1. Issue picked up and transitioned to In Progress
2. All OpenSpec artifacts generated
3. All tasks implemented
4. E2E tests passing
5. Verification passed
6. Change archived, committed, pushed
7. CI build passed
All done.
This skill runs without user interaction after the initial issue selection:
The skill STOPS and reports (rather than loop or proceed with broken state) when:
When stopped, always report: which phase failed, what was attempted, and the current state so the user can resume manually.
If the project instructions specify a default Jira project key (e.g., Jira project: PROJ), use it as the default for --project, list, types, and JQL queries. Explicit user input always overrides the default.
openspec/AGENTS.md for OpenSpec conventionsaf jira --help for Jira CLI options/opsx:ff, /opsx:apply, /opsx:verify, /opsx:archive for individual phase detailsaf jenkins --help for Jenkins CLI optionsdevelopment
Manage Bitbucket Cloud pull requests, comments, tasks, and pipelines from the command line. Use when working with PRs, reviewing code, leaving inline comments, creating PR tasks, triggering or inspecting Bitbucket Pipelines, or looking up reviewer account IDs.
development
Opinionated TypeScript and React development standards from Avant Media. Use when scaffolding new components, reviewing code, writing TypeScript interfaces or types, setting up project structure, creating React hooks, or working on any TypeScript/React codebase. Also use when the user asks about best practices, patterns, or conventions for TypeScript or React projects, even if they don't explicitly mention "standards."
tools
Assign a Jira issue to yourself and convert it into an OpenSpec proposal. Use when the user says "start work", "pick up an issue", "take the next ticket", or provides a Jira key and wants to begin work on it. Handles issue selection from the backlog, assignment, transition to In Progress, and scaffolding an OpenSpec change with Jira context embedded in the proposal.
development
Bun/Elysia/React/MUI monorepo stack blueprint. Use when scaffolding a new project, adding a new app or package to the monorepo, choosing dependencies, or making architectural decisions. Contains the full tech stack, conventions, and wiring patterns.