Claude-project-skills-template workflow
Manage development lifecycle for CI/E2E runner work. Use when user says /workflow start, /workflow status, or /workflow finish.
git clone https://github.com/dohernandez/claude-project-skills-template
T=$(mktemp -d) && git clone --depth=1 https://github.com/dohernandez/claude-project-skills-template "$T" && mkdir -p ~/.claude/skills && cp -r "$T/.claude/skills/workflow" ~/.claude/skills/dohernandez-claude-project-skills-template-workflow && rm -rf "$T"
.claude/skills/workflow/SKILL.mdCI E2E Runner Workflow
Purpose
Manage the development lifecycle for work on the CI/E2E runner project. This skill handles setup (branch, context) and delegates implementation based on branch type.
Quick Reference
- Creates: Feature branch, workflow context file
- Requires: Plain text description of work to do
- Delegates to:
(fix branches) or/bugfix
(feat, chore, docs, ci branches)/task
Commands
| Command | Description |
|---|---|
| Create branch, set up context, then delegate |
| Show current workflow context and progress |
| Cleanup branch after PR is merged |
Related: Use
/pr-merge to merge PRs. Use /commit for commits. Use /pr-create for PRs.
When to Start a Workflow
Only start a new workflow when on
branch.main
| Current Branch | User Request | Action |
|---|---|---|
| "fix this bug" | |
| "start a workflow for..." | |
| working branch | "fix this bug" | Fix in current branch (no new workflow) |
| working branch | "let's work on this" | Work in current branch (no new workflow) |
| working branch | "start a new workflow for..." | (explicit request) |
Key Rules:
is the only non-working branchmain- Any branch other than
is a working branchmain - If already on a working branch, continue working there unless user explicitly requests a new workflow
- Trigger phrases on
: "start a workflow", "let's work on...", "fix this issue...", or any code change taskmain
Phase 1: Start
/workflow start "Add retry logic to E2E pipeline" /workflow start "Fix webhook reaction step"
Pre-condition: Must be on
main branch (or user explicitly requested new workflow)
Procedure:
- Check for uncommitted changes (warn if present)
- Determine branch type from context:
,feat
,fix
,chore
,docsci - Generate branch name with type prefix:
<type>/<kebab-description>
- Call
:workflow-setup- Update main branch
- Create feature branch
- Create
directory.claude/workflow/<branch>/ - Write
context.json
- Delegate based on type:
-> Invokefix
skill/bugfix
/feat
/chore
/docs
-> Invokeci
skill/task
Task Delegation
Based on the branch type detected in start:
| Type | Delegate To | Description |
|---|---|---|
| | Bug fix methodology |
| | Feature implementation |
| | Maintenance work |
| | Documentation updates |
| | CI/workflow changes |
Retrospective (After Implementation)
After completing the implementation, capture learnings before committing:
Procedure:
- Scan conversation for signals:
- Corrections (high confidence): "No, don't use X, use Y"
- Rules (high confidence): "Always do X", "Never do Y"
- Approvals (medium): "Perfect!", "That's exactly right"
- Write learnings to
(the only MEMORY.md in this project)workflow/MEMORY.md
Learning Quality Rules:
- Must be actionable (DO/DON'T/USE/AVOID)
- Must be complete sentences, not fragments
- Must NOT be questions
- Must include WHY, not just WHAT
Commit and PR
After retrospective, use the dedicated skills:
- Commit changes:
/commit - Create PR:
/pr-create
These skills handle conventional commit messages, PR formatting, and CI validation.
Phase 2: Status
/workflow status
Shows:
- Current branch and work description
- PR status (if created)
Phase 3: Finish
/workflow finish /workflow finish feat/add-retry-logic # Explicit branch
Pre-condition: PR must be merged before finishing.
Procedure:
- Resolve target branch (current branch or argument)
- Verify PR is merged via
gh pr list --head <branch> --state merged - Switch to main branch and pull latest
- Delete local branch:
git branch -D <branch> - Delete remote branch:
git push origin --delete <branch> - Clean up workflow context:
rm -rf .claude/workflow/<branch>/ - Report completion
See
workflow-finish skill for detailed procedure and sharp edges.
Workflow Context
Stored in
.claude/workflow/<branch>/context.json (gitignored):
{ "source": "text", "title": "Add retry logic to E2E pipeline", "branch": "feat/add-retry-logic-to-e2e-pipeline", "type": "feat", "createdAt": "2026-02-22T..." }
Branch Naming
Format:
<type>/<kebab-description>
Branch naming convention:
- Type prefix first (
,feat/
,fix/
,chore/
,docs/
)ci/ - Followed by kebab-case description from title
Examples:
feat/add-retry-logic-to-e2e-pipelinefix/webhook-reaction-stepci/add-profile-selection-to-dispatchchore/update-runner-setup-scriptdocs/update-readme-architecture
Automation
See
skill.yaml for the full procedure and patterns.
See sharp-edges.yaml for common failure modes.