skills/dev-workflow/SKILL.md
This skill should be used when the user asks to "run the full workflow", "spec and implement", "dev workflow", "build this end to end", or "spec, branch, implement, and PR". Chains spec → branch → run-agents → PR into a single orchestrated flow.
npx skillsauth add ryan-mahoney/ryan-llm-skills dev-workflowInstall 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.
Based on the current analysis, execute the full development workflow: write a spec to a GitHub issue, review it via Codex CLI, create a branch, implement all steps, and open a PR.
If any phase fails, stop and report which phase failed and why. Do not proceed to subsequent phases.
If an issue number is provided ($ARGUMENTS):
~/.agents/skills/spec/SKILL.md to write a spec.gh issue edit <issue-number> --body '<spec body>'.If no issue number is provided:
~/.agents/skills/spec/SKILL.md to write a spec and create a new GitHub issue.Run Codex CLI to review the spec with high reasoning effort. Codex will edit the issue body directly if changes are needed.
Preflight requirement:
gh auth status must be valid before running this phase.REVIEW_FILE=/tmp/review-<issue-number>.txt
codex exec --dangerously-bypass-approvals-and-sandbox \
-c model_reasoning_effort="high" \
--output-schema ~/.agents/skills/dev-workflow/review-schema.json \
-o "$REVIEW_FILE" \
"You are reviewing GitHub issue #<issue-number> as an implementation spec.
First, fetch the issue body directly from GitHub by running:
gh issue view <issue-number> --json body --jq '.body'
If that command fails for any reason (auth, permissions, network, gh CLI), return a structured response with review_status=\"failed\", spec_modified=false, viable=false, failure_reason set to the exact failure cause, and summary=\"Unable to fetch issue body from GitHub.\"
Do not read or review repository-local files as a substitute for issue content.
If fetch succeeds, review the fetched issue body using this checklist:
### Required Sections
All 7 sections must be present and substantive:
1. Qualifications — lists only skills actually needed.
2. Problem Statement — 2-4 sentences: what is missing/broken, current behavior, what the spec addresses.
3. Goal — one concrete sentence describing the outcome.
4. Architecture — files with responsibilities, types/interfaces, design decisions with rationale, dependency map.
5. Acceptance Criteria — numbered, observable, automatable assertions. Includes non-happy-path behaviors.
6. Notes — trade-offs with rationale, risks and ambiguities.
7. Implementation Steps — see below.
### Architecture Review
Flag: over-engineering, single-use abstractions, missing failure modes, unclear data flow, unjustified trade-offs.
### Implementation Steps Review
Each step needs: what (exact files/changes), why (tied to architecture/criteria), signatures/contracts, tests.
Verify: deterministic, minimal, self-contained, forward-only.
Order: types first, pure logic next, I/O after, integration last.
Remove: manual QA, docs-only, full test suite runs, formatting, git workflow steps.
If the spec needs changes, run: gh issue edit <issue-number> --body '<updated body>' and set spec_modified=true.
Your final response is constrained by an output schema. Set failure_reason to an empty string on success. Set viable=false only when the spec cannot be salvaged into a usable implementation plan."
After codex returns:
/tmp/review-<issue-number>.txt exists and is valid JSON.review_status, spec_modified, viable, failure_reason.review_status is failed, stop and report remediation:
gh auth login or refresh credentials).review_status is success but viable is false, stop and report the spec as unviable.spec_modified is true, proceed (the issue body is already updated).review_status=success and viable=true.Create an isolated worktree so multiple dev-workflows can run concurrently against the same repository, each in its own VSCode window.
Read the GitHub issue to understand the topic.
Derive a descriptive slug from the issue title (e.g., 42-add-auth-middleware).
The slug must include the issue number and be a valid branch name.
Extract the repository name from git remote get-url origin (last path segment, strip .git suffix).
Check for existing worktree/branch (enables re-entry after a crashed run):
~/.worktrees/<repo-name>/<slug> already exists, reuse it and skip to step 6.<slug> exists but no worktree, run:
git worktree add ~/.worktrees/<repo-name>/<slug> <slug>git fetch origin
mkdir -p ~/.worktrees/<repo-name>
git worktree add ~/.worktrees/<repo-name>/<slug> -b <slug> origin/main
Record the absolute worktree path. All subsequent phases operate from this path.
Copy environment files from the original repository root into the worktree:
cp .env ~/.worktrees/<repo-name>/<slug>/.env
If .env does not exist in the source repo, skip this step without failing.
Color-code the VSCode window. Compute the color index as <issue-number> % 8 and select the hex value from this palette:
| Index | Color | Hex |
|-------|--------|-----------|
| 0 | Teal | #0d7377 |
| 1 | Purple | #6a1b9a |
| 2 | Orange | #e65100 |
| 3 | Blue | #1565c0 |
| 4 | Green | #2e7d32 |
| 5 | Red | #b71c1c |
| 6 | Indigo | #283593 |
| 7 | Brown | #4e342e |
Write .vscode/settings.json in the worktree with the color settings:
.vscode/settings.json exists, write:
{
"workbench.colorCustomizations": {
"titleBar.activeBackground": "<hex>",
"titleBar.activeForeground": "#ffffff",
"statusBar.background": "<hex>",
"statusBar.foreground": "#ffffff"
}
}
.vscode/settings.json already exists, merge via jq:
jq --arg bg "<hex>" \
'.["workbench.colorCustomizations"] = {"titleBar.activeBackground": $bg, "titleBar.activeForeground": "#ffffff", "statusBar.background": $bg, "statusBar.foreground": "#ffffff"}' \
.vscode/settings.json > /tmp/vscode-settings-tmp.json && mv /tmp/vscode-settings-tmp.json .vscode/settings.json
jq is not available, write the file from scratch (color settings only).Write a continuation hook so the new VSCode window's Claude Code session automatically receives the next-phase instructions on startup.
Create <worktree-path>/.claude/hooks/continue.sh:
#!/bin/bash
cat <<'PROMPT'
# Continue Dev Workflow — Issue #<issue-number>
This worktree was created by the dev-workflow skill. Pick up from Phase 4.
## Phase 4: Implement
Follow `~/.agents/skills/run-agents/SKILL.md` to implement all steps from GitHub issue #<issue-number>.
Read the issue spec via `gh issue view <issue-number> --json body --jq '.body'`.
Implement each step with a dedicated subagent. Commit after each verified step.
## Phase 5: PR
Follow `~/.agents/skills/pr/SKILL.md` with issue number <issue-number>.
1. Read the GitHub issue to understand the context.
2. Commit any remaining staged files with a conventional commit.
3. Push the branch to origin: `git push -u origin <slug>`.
4. Open a pull request:
- Title: short, imperative, under 70 characters.
- Body: summary of what changed and why, link to the issue.
- Reference and close the issue.
Do not add Co-Authored-By trailers, "Generated with" footers, or any AI model attribution.
PROMPT
Make it executable: chmod +x <worktree-path>/.claude/hooks/continue.sh
Write <worktree-path>/.claude/settings.json (merge with existing if present):
{
"hooks": {
"SessionStart": [
{
"matcher": "startup",
"hooks": [
{
"type": "command",
"command": ".claude/hooks/continue.sh",
"timeout": 10
}
]
}
]
}
}
Open the worktree in a new VSCode window: code --new-window ~/.worktrees/<repo-name>/<slug>
STOP. Do not proceed to implementation. Report the worktree path, issue number, and branch name to the user. The new VSCode window's Claude Code session will receive the continuation prompt via the SessionStart hook — the user just needs to type "go".
testing
This skill should be used when the user asks to "run the spec", "implement the spec", or "execute the spec". Implements every step in a SpecOps implementation spec by delegating each step (or logical group of adjacent steps) to a sequential subagent, conventional-committing each one independently, and — when `roborev` is on the path — running `roborev check` on every commit and `roborev fix` (with spec context, so the fix cannot silently drift the implementation away from the spec) on any commit that fails.
development
Exhaustively audit a top-level UI implementation component against an HTML prototype and produce a grouped markdown checklist of corrections. Use when a user asks for UI parity review, visual QA, design implementation audit, pixel-level drift detection, or behavior/style mismatch analysis between prototype HTML and shipped component code.
development
Audit a SpecOps implementation spec against its source analysis spec to find requirements, policies, contracts, edge cases, error modes, invariants, defaults, side effects, or implementation steps that the implementation has dropped, weakened, contradicted, or silently changed — then patch the implementation spec to restore them. Use this skill whenever the user mentions auditing, comparing, conforming, reconciling, or checking an implementation spec against an analysis spec, finding gaps between two specs, ensuring an implementation spec preserves analysis behavior, or verifying spec derivation or traceability. Also trigger when the user describes "did the implementation spec lose anything from the analysis," "does the implementation match the analysis," "verify the implementation spec covers everything," or asks to confirm one spec is faithful to another. Run this before generating code from an implementation spec and after either spec is edited.
development
Audit a set of SpecOps analysis specs for cross-spec coherence — establish a dependency-ordered implementation sequence, then verify pairwise integration contracts at module boundaries plus three cross-cutting consistency dimensions (shared data models, side-effect ownership, terminology) — and patch the affected specs to resolve gaps. Use this skill whenever the user mentions cross-spec consistency, integration gaps between specs, conflicts between specs, duplicate work across specs, implementation order, dependency order for migration, building an implementation-order checklist, ensuring specs interoperate, terminology drift across specs, or shared data model conflicts. Also trigger when the user describes "do my specs agree with each other," "what order should I implement these in," "find inconsistencies across all my specs," or asks to audit a folder of analysis specs as a set rather than individually. Run this once after generating a full set of analysis specs, before deriving implementation specs.