agentleFS
AgiFlowAgiFlow/ai-plugin/skills/run-work/SKILL.md

run-work

Skill4 starsChanged 33 days agoMITView on GitHub

Execute a work unit end-to-end: sequence tasks by dependency, implement, test between tasks, commit, and track progress. Use to deliver a complete feature in one session. Invoked as /agiflow:run-work <work-unit>. Uses get_work_unit, list_tasks, update_task, get_work_unit_progress.

1 other project uses a version of this.

Adopted by

Most recently taken up by

  • Other versions1 project uses a version of this.

    Word for word · 0

    None found.

    Edited · 0

    None found.

    Wrote their own version · 1

    1. lhpaul/ai-dev-framework-template★ 9same name

    How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.

  • In this repository9 other files it gives its agents.

The file

Show its rules and text

We split this skill into the rules it gives an agent

47 rules. About 0 are common, 23 are distinctive, and 24 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈23

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 24

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Keep changes tightly scoped to the requested outcome within the work unit scope.

    line 31
  2. Very specific:

    If a work unit slug/id is provided, load it with get_work_unit.

    line 34
  3. Very specific:

    Follow the shared AgiFlow project-management guidelines in references/agiflow-agents.md — agent assignment, the task status workflow and …

    line 40
  4. Very specific:

    If any task hits Blocked, consider setting the work unit to blocked too.

    line 48
  5. Very specific:

    Use list_work_units MCP tool to show available work units:

    line 60
  6. Distinctive:

    Do NOT pick up work units where all tasks are still in "Planning" status

    line 62
  7. Distinctive:

    Ask user to select which work unit to work on.

    line 64
  8. Distinctive:

    Check all tasks in the work unit

    line 80
  9. Distinctive:

    If ANY task has status "Planning": REFUSE to execute

    line 81
  10. Distinctive:

    If work unit status is "planning":

    line 88
  11. Very specific:

    If verified, use update_work_unit MCP tool to set status to "in_progress"

    line 90
  12. Very specific:

    If any tasks are in "Planning", REFUSE and suggest backlog-grooming

    line 91
  13. Distinctive:

    Create a TODO list of all tasks in execution order (use TodoWrite tool).

    line 92
  14. Very specific:

    Document execution plan in work unit via update_work_unit devInfo:

    line 93
  15. Very specific:

    Use update_task MCP tool to set status to "In Progress"

    line 106
  16. Very specific:

    BEFORE editing any code: Use architect MCP get_file_design_pattern (MANDATORY)

    line 107
  17. Very specific:

    AFTER editing code: Use architect MCP review_code_change (MANDATORY)

    line 109
  18. Very specific:

    Update task devInfo with implementation notes:

    line 110
  19. Very specific:

    Use update_task to move status to "Testing"

    line 121
  20. Distinctive:

    Run unit tests, integration tests, type check and lint for affected code

    line 122
  21. Very specific:

    If retryCount >= maxRetries (default: 2): move task to "Blocked", set work unit to "blocked", stop

    line 126
  22. Very specific:

    If retryCount < maxRetries: move task back to "Todo", document failure, continue to next task or stop session

    line 127
  23. Very specific:

    Use update_task to set status to "Review" when tests pass

    line 128
  24. Distinctive:

    Update your TODO list (mark task as completed)

    line 130
  25. Distinctive:

    Commit changes with meaningful commit messages

    line 133
  26. Distinctive:

    Run tests to ensure no regressions

    line 134
  27. Distinctive:

    Update work unit progress in devInfo

    line 135
  28. Very specific:

    Use get_work_unit to check current state and task statuses

    line 140
  29. Very specific:

    Update work unit devInfo as you progress via update_work_unit:

    line 145
  30. Distinctive:

    When ALL tasks in work unit are in "Review" or "Done":

    line 168
  31. Distinctive:

    Verify all tasks have status "Review" or "Done"

    line 169
  32. Distinctive:

    Verify all acceptance criteria across all tasks are met

    line 170
  33. Distinctive:

    Run full test suite for the feature

    line 171
  34. Very specific:

    Use update_work_unit to set status to "completed" and save draft PR text and commit message:

    line 183
  35. Very specific:

    Note on draftCommitMessage: Write a conventional commit message that will be used for the final git commit.

    line 203
  36. Distinctive:

    Create final summary comment documenting:

    line 205
  37. Very specific:

    All files created/modified (use file.ts:42 format)

    line 207
  38. Distinctive:

    Test coverage and results

    line 208
  39. Distinctive:

    If blocked on a task:

    line 214
  40. Very specific:

    Use update_task to set task status to "Blocked"

    line 215
  41. Very specific:

    Use update_work_unit to set status to "blocked"

    line 216
  42. Distinctive:

    Document blocker in work unit devInfo

    line 217
  43. Very specific:

    Use create_task_comment on blocked task with details explaining what human intervention is needed

    line 218
  44. Distinctive:

    Consider creating follow-up tasks for blockers

    line 219
  45. Distinctive:

    If scope changes during execution:

    line 221
  46. Very specific:

    Use create_task to add new tasks to work unit

    line 222
  47. Distinctive:

    Update work unit description/goals if needed

    line 223

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Invoked as /agiflow:run-work. In hosts without slash-prompts, this skill is triggered by matching intent and drives AgiFlow via its MCP tools.

Usage:

  • /agiflow:run-work <work-unit-slug-or-id> - Execute specific work unit
  • /agiflow:run-work - List and select from available work units

Examples:

  • /agiflow:run-work DXX-WU-1 (using slug)
  • /agiflow:run-work 01K8FABMNEJG1XTA9JGHSNFV40 (using ID)
  • /agiflow:run-work (interactive selection)

Guardrails

  • Favor straightforward, minimal implementations first and add complexity only when it is requested or clearly required.
  • Keep changes tightly scoped to the requested outcome within the work unit scope.
  • A work unit represents a cohesive feature/epic that can be completed in one Claude Code session.

If a work unit slug/id is provided, load it with get_work_unit; otherwise list available work units with list_work_units for selection.


AgiFlow Project Management Guidelines

Follow the shared AgiFlow project-management guidelines in references/agiflow-agents.md — agent assignment, the task status workflow and transitions, work-unit best practices, and the tags strategy apply to this workflow.


Task Status Workflow (per task) Each task moves individually through: Todo → In Progress → Testing → Review The work unit stays in_progress until all tasks reach Review or Done. If any task hits Blocked, consider setting the work unit to blocked too.

IMPORTANT: Planning Status Guard This skill ONLY executes tasks in "Todo" or later status. Tasks in "Planning" have NOT been groomed and are NOT ready for execution. Use backlog-grooming to promote Planning tasks to Todo first.

Steps Track these steps as TODOs and complete them one by one.

1. Work Unit Selection & Loading

If work unit slug/id NOT provided:

  1. Use list_work_units MCP tool to show available work units:
    • Filter by status: "in_progress" for active work, or work units with tasks in "Todo"
    • Do NOT pick up work units where all tasks are still in "Planning" status
    • Display: slug, title, type, priority, task count, status
  2. Ask user to select which work unit to work on.
  3. Once user selects, proceed with the selected work unit slug/id.

If work unit slug/id IS provided: 4. Use get_work_unit MCP tool with the provided slug/id to retrieve:

  • Work unit: title, description, goals, type, priority, status, dates, devInfo
  • Tasks: All tasks associated with this work unit (already included in response)
  • Note: get_work_unit returns tasks automatically - no separate list_tasks call needed
  1. Review the work unit and all its tasks to understand:
    • Complete feature scope and deliverables
    • Task dependencies and execution order
    • Acceptance criteria across all tasks

5b. PLANNING STATUS GUARD (MANDATORY):

  • Check all tasks in the work unit
  • If ANY task has status "Planning": REFUSE to execute
  • Report: "Cannot execute: N task(s) are still in Planning status. Use backlog-grooming to promote them to Todo first."
  • List the Planning tasks by title
  • STOP execution — do not proceed

2. Start Work Unit Execution

  1. If work unit status is "planning":
    • First verify ALL tasks are in "Todo" or later status (not "Planning")
    • If verified, use update_work_unit MCP tool to set status to "in_progress"
    • If any tasks are in "Planning", REFUSE and suggest backlog-grooming
  2. Create a TODO list of all tasks in execution order (use TodoWrite tool).
  3. Document execution plan in work unit via update_work_unit devInfo:
    devInfo: {
      executionPlan: "Backend API → Frontend UI → Tests → Documentation",
      sessionId: "<current-session-id>",
      startedAt: "<timestamp>"
    }

3. Execute Tasks Sequentially

  1. For each task in the work unit (in dependency order from the tasks array):

    • Review task details: title, description, acceptance criteria, assignee
    • Use update_task MCP tool to set status to "In Progress"
    • BEFORE editing any code: Use architect MCP get_file_design_pattern (MANDATORY)
    • Implement the task following acceptance criteria
    • AFTER editing code: Use architect MCP review_code_change (MANDATORY)
    • Update task devInfo with implementation notes:
      devInfo: {
        filesChanged: ["path/to/file.ts:42"],
        testResults: { passed: true, coverage: "85%" },
        notes: "Implementation notes here"
      }
    • Mark acceptance criteria as checked via update_task

    Testing phase for each task:

    • Use update_task to move status to "Testing"
    • Run unit tests, integration tests, type check and lint for affected code
    • If tests PASS: proceed to move task to "Review"
    • If tests FAIL:
      • Increment retryCount in devInfo
      • If retryCount >= maxRetries (default: 2): move task to "Blocked", set work unit to "blocked", stop
      • If retryCount < maxRetries: move task back to "Todo", document failure, continue to next task or stop session
    • Use update_task to set status to "Review" when tests pass
    • Update your TODO list (mark task as completed)
  2. Between tasks:
    • Commit changes with meaningful commit messages
    • Run tests to ensure no regressions
    • Update work unit progress in devInfo

4. Work Unit Progress Tracking

  1. The work unit tasks array automatically updates as tasks are completed.
    • Use get_work_unit to check current state and task statuses
    • Track: How many tasks in Review or Done vs. total?
    • Monitor: Are we on track for target date?
    • Work unit stays in_progress until all tasks reach Review or Done
  2. Update work unit devInfo as you progress via update_work_unit:
    devInfo: {
      executionPlan: "...",
      sessionId: "<session-id>",
      startedAt: "<timestamp>",
      progress: {
        completedTasks: 3,
        totalTasks: 8,
        lastTaskCompleted: "Implement cart API",
        currentTask: "Add cart UI component"
      },
      testResults: {
        unitTests: "passing",
        integrationTests: "passing",
        coverage: "85%"
      },
      blockers: [] // or list any blockers encountered
    }

5. Work Unit Completion

  1. When ALL tasks in work unit are in "Review" or "Done":
    • Verify all tasks have status "Review" or "Done"
    • Verify all acceptance criteria across all tasks are met
    • Run full test suite for the feature
    • Review all files changed (use git diff)
  2. Draft a PR description for the work unit (DO NOT create the PR yet - just draft the text):
    • Title format: [WORK-UNIT-SLUG] Work unit title (e.g., [DXX-WU-1] Shopping cart feature)
    • Body should include:
      • Work unit reference and summary
      • List of tasks completed
      • Summary of all changes across tasks
      • Files modified (use file.ts:42 format)
      • Test results
  3. Use update_work_unit to set status to "completed" and save draft PR text and commit message:

    {
      status: "completed",
      completedAt: new Date(),
      devInfo: {
        ...existing,
        draftCommitMessage: "feat(cart): implement shopping cart feature\n\n- Add cart API endpoints\n- Add cart UI components\n- Add integration tests\n\nCloses: DXX-WU-1",
        draftPr: {
          title: "[DXX-WU-1] Shopping cart feature",
          body: "## Summary\n\nImplemented shopping cart feature.\n\n## Tasks Completed\n\n- [DXX-1] Add cart API\n- [DXX-2] Add cart UI\n- [DXX-3] Add cart tests\n\n## Changes\n\n- Added cart endpoints\n- Added cart components\n- Added integration tests\n\n## Files Modified\n\n- src/api/cart.ts:42\n- src/components/Cart.tsx:15\n- tests/cart.test.ts:1\n\n## Test Results\n\nAll tests passing. Coverage: 85%"
        },
        finalNotes: "All tasks completed. Files changed: [...]. Tests passing.",
        completedBy: "<member-id>",
        totalDuration: "3.5 hours"
      }
    }

    Note on draftCommitMessage: Write a conventional commit message that will be used for the final git commit. Format: type(scope): description with optional body listing changes.

  4. Create final summary comment documenting:
    • Work unit scope and goals achieved
    • All files created/modified (use file.ts:42 format)
    • Test coverage and results
    • Any follow-up work needed
    • Performance or architectural notes

6. Handle Blockers or Scope Changes

  1. If blocked on a task:
    • Use update_task to set task status to "Blocked"
    • Use update_work_unit to set status to "blocked"
    • Document blocker in work unit devInfo
    • Use create_task_comment on blocked task with details explaining what human intervention is needed
    • Consider creating follow-up tasks for blockers
  2. If scope changes during execution:
    • Use create_task to add new tasks to work unit
    • Update work unit description/goals if needed
    • Communicate scope change in work unit comments

Common Mistakes to Avoid

  • ❌ Starting without reviewing all tasks in work unit (lack of context)
  • ❌ Working on tasks in wrong order (missing dependencies)
  • ❌ Skipping vibe-lint MCP validation (MANDATORY for every file)
  • ❌ Not tracking work unit-level progress in devInfo
  • ❌ Completing tasks in isolation without considering work unit goals
  • ❌ Not running integration tests between tasks
  • ❌ Moving task to "Review" without first going through "Testing"
  • ❌ Marking work unit complete when tasks are still in "In Progress" or "Testing"
  • ❌ Not documenting scope changes or blockers
  • ❌ Forgetting to commit between tasks (losing incremental progress)
  • ❌ Not updating work unit status when blocked
  • ❌ Setting work unit to "completed" before all tasks reach "Review" or "Done"
  • ❌ Executing tasks that are still in "Planning" status (must be promoted to "Todo" via backlog-grooming first)

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.