workflow
Manage feature workflow state — status, transitions, context switching
Files4
View on GitHubSKILL.mdskills/workflow/SKILL.md
GitHubWorkflow Manager
Manages the feature development workflow state machine.
References (load when needed)
references/track-conventions.md— Track-file location, frontmatter, required sections, session-log rules. Read when enteringimplementation, updating progress, or creating a new track file.references/testing-policy.md— STRICT opt-in testing rules. Read before writing or running tests.references/session-checks.md— Session-time procedures (feature branch recency check, service health checks, update-check + sync + conflict handling). Read when the session-start protocol inAGENTS.mddelegates here.
Commands
/workflow status
Show the current workflow state for the active feature.
Steps:
- Read
.workflow-state.json - Display:
- Active feature:
{active_feature} - Current phase:
{phase}({phase_name}) - Phase status:
{phase_status}(idle/inprogress/completed) - Phase entered:
{phase_entered} - Worker:
{worker} - Type:
{type}(feature | bug | improvement) - Brainstorming: questions answered / total, summary present?
- Branch:
{branch}or "not created" - Service PRDs: list with status
- PRs: list
{pr_urls}entries (service → URL) or "not submitted"
- Active feature:
/workflow list
Show ALL active features with their phases.
Steps:
- Read
.workflow-state.json - For each feature in
features{}:- Show slug, phase, phase_entered, worker
- Mark active feature with
→
/workflow start <slug>
Start a new feature workflow.
Steps:
Check onboarding state first. Read
.onboard-state.json:- If file doesn't exist and no service directories → BLOCK: "Run
/onboardfirst." - If
statusis"in_progress", check critical steps:steps.env_filesmust be"completed"(every service that needs a.envhas a real one). A service whoseenv_statusis"n/a"is satisfied, not pending — it has no.envby design (data-pipeline uses Prefect Secret blocks), so it must not hold this field back.steps.db_setupmust be"completed"(if API service is selected)steps.clone_reposmust be"completed"steps.install_depsmust be"completed"
- If ANY critical step is missing → BLOCK and list what's needed:
Cannot start workflow. Onboarding is incomplete: - api/.env is missing — contact arhen - Database not restored — contact arhen for dev dump Run `/onboard resume` to complete setup. - If
statusis"completed"→ proceed
- If file doesn't exist and no service directories → BLOCK: "Run
Read
.workflow-state.json(create if doesn't exist).Check that
<slug>doesn't already exist in features.If an active feature already exists, offer parallel work via git worktrees (no extra tooling — modern agents handle worktrees fine):
"You have an active feature (
<active-slug>in<phase>). You can:"- Continue here with context-switching (
/workflow switchbetween features) — recommended for related work - Work in parallel — the new feature gets its own git worktree per affected service repo (
git worktree add <path> -b <prefix>vc-<slug> <base>), one agent session there
If the user picks parallel: create the worktrees, key
.workflow-state.jsonfeatures by slug, and proceed in the separate directory. Cleanup (git worktree remove) at completion.- Continue here with context-switching (
Capture intake via the ask tool:
- Type: feature | bug | improvement
- Initial request: the user's raw description (free text)
Create feature entry with:
{ "phase": "idle", "phase_status": "completed", "phase_entered": "<ISO>", "type": "<type>", "initial_request": "<text>", "brainstorming": { "questions": [], "summary": null }, "prd_path": null, "branch": null, "service_prds": {}, "pr_urls": {} }Set
active_featureto<slug>. Ask the user for worker name if not set.Save state.
Ask: "Advance to brainstorming?" — on yes, transition (
phase: "brainstorming",phase_status: "idle"); the orchestrator then runs the brainstorming phase itself (skill:brainstorm).
/workflow next
Transition to the next phase (if gate conditions are met).
Steps:
- Read
.workflow-state.json. - Get current phase +
phase_statusfor active feature. - Require
phase_status === "completed". Ifidleorinprogress, refuse: "Phase<phase>is still pending (idle) or in progress (inprogress). Let the agent finish (or wait for it to flip phase_status to completed) before advancing." - Look up gate conditions from
.agentic-workflows/workflow/gates.json. - If the current phase has multiple possible next phases, check
next_strategyon the phase inphases.json:brainstorming → prd_creationwhen the feature type isfeature;brainstorming → implementationforbug|improvement(type_bug_or_improvement).pr_submission → pr_reviewwhen the PR has reviewer/bot feedback (has_feedback).pr_submission → completionwhen the PR merged with zero feedback (merged_clean).
- Check EACH gate condition for the resolved transition:
- If all pass → transition to next phase, update
phase,phase_entered, set newphase_statusto"idle". - If any fail → report which conditions failed and what's needed.
- If all pass → transition to next phase, update
- Save state.
- Inform user of new phase and which agent will handle it.
/workflow switch <slug>
Switch active feature context.
Steps:
- Read
.workflow-state.json - Verify
<slug>exists in features - Save any pending state for current feature
- Set
active_featureto<slug> - Load target feature's phase context
- If on a different git branch, inform user: "Feature
<slug>is on branch{branch}. Switch with:git checkout {branch}" - Save state
/workflow list-all
Discover ALL features across the team — not just local ones. Scans committed artifacts and git branches.
Steps:
- Fetch latest from all remotes:
git fetch --allin each service dir - Scan for features from multiple sources:
- PRDs:
ls docs/prd/*.md→ extract slugs - Feature branches:
git branch -r | grep -E '^(feature|fix|improvement)/[^/]*vc-'in each service → extract slugs (matches both thevc--only form and the legacy<worker>/vc-form) - Worktrees:
git worktree listin each service dir plus sibling worktree dirs outside the workspace root - Track files:
find . -name '*.track.md'across all services → extract slugs
- PRDs:
- For each unique slug found, reconstruct the phase (same logic as resume):
- Brainstorming summary recorded? PRD exists? Branch exists? Service PRDs? Track progress? PR?
- Also check local
.workflow-state.jsonfor any features only tracked locally - Display a table:
All features (committed artifacts + local state):
Slug Phase Last Activity Worker
─────────────────────────── ────────────────── ───────────────────── ──────────
→ brand-health-dashboard implementation 2026-03-20 (track) fahrizky
user-analytics pr_review 2026-03-18 (PR #42) daffa
kv-generator prd_creation 2026-03-15 (PRD) arhen
→ = active in your local .workflow-state.json
- Show: "To pick up a feature:
/workflow resume <slug>"
/workflow resume <slug>
Resume a feature started by another team member.
Steps:
- Fetch latest:
git fetch --allin each service dir - Scan committed artifacts to reconstruct phase:
- Brainstorming summary recorded in
.workflow-state.json? → past brainstorming - PRD exists at
docs/prd/<slug>.md? → past prd_creation - Branch matching
(feature|fix|improvement)/vc-<slug>(or legacy<worker>/vc-) exists AND service PRDs exist? → past prd_splitting - Track files show progress? → in implementation
- PR URL in track file with no review threads? → in pr_submission (clean) or pr_review (has feedback)
- PR merged? → in completion
- Brainstorming summary recorded in
- Read the latest session log from track files to show who last worked on it and what they did
- Create/update feature entry in
.workflow-state.jsonwith reconstructed state - Set
active_featureto<slug> - Ask user for their worker name if not already set
- Inform user:
- Reconstructed phase
- Last session log entry (who did what)
- What's left to do (remaining tasks from track file)
- Which branch to checkout:
git checkout <branch>fromfeatures[<slug>].branch(prefix isfeature/,fix/, orimprovement/per type)
/workflow progress
Show detailed progress for the active feature.
Steps:
- Read
.workflow-state.jsonand all related files - Show:
- Phase progression timeline (with
phase_statusper phase) - Brainstorming summary
- Service PRD status
- Track file task completion percentage
- Session log summary
- PR self-review and security audit summaries
- Phase progression timeline (with
/workflow worktrees
Offer/parallelize work with git worktrees (see /workflow start step 4). One worktree per affected
service repo, per feature; keyed by slug in .workflow-state.json; cleaned up at completion.
No extra tooling — plain git.