skills/mav-bp-task-tracking/SKILL.md
Task tracking and management conventions for all projects. Covers the requirement for external task tracking, issue hygiene, workflow integration, and traceability between tasks and code changes. Applied as a foundational project management requirement.
npx skillsauth add thermiteau/maverick mav-bp-task-trackingInstall 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.
Ensure all code changes are traceable to tracked tasks, all tasks live in an external system of record, and task status reflects reality at all times.
Every project must use a shared, external task tracking system. Acceptable systems include:
| System | Notes | | ------ | ----- | | GitHub Issues | Native to GitHub repos; preferred for open-source and GitHub-hosted projects | | Jira | Common in enterprise environments | | Linear | Modern issue tracker with good API support | | Azure Boards | Native to Azure DevOps ecosystems | | GitLab Issues | Native to GitLab-hosted projects | | Shortcut | Formerly Clubhouse; used by some product teams |
Local notes and scratchpads are fine as personal aids, but the authoritative task must exist in the external system.
Every task or issue in the tracking system must meet minimum quality standards.
| Bad | Good | | --- | ---- | | Fix the bug | Fix null pointer in payment callback handler | | Update tests | Add unit tests for discount calculation edge cases | | Refactor code | Extract shared validation logic into reusable module | | Work on API | Implement GET /api/v2/invoices endpoint | | UI stuff | Add loading skeleton to dashboard widgets |
Acceptance criteria should be concrete and verifiable:
- [ ] CSV export button appears on the reports page
- [ ] Clicking export downloads a file with all visible rows
- [ ] File includes column headers matching the table
- [ ] Empty state shows a message instead of downloading an empty file
- [ ] Export respects active filters
Every commit message should reference the task it relates to:
feat: add CSV export to reports page (#42)
fix: handle null callback payload (#108)
chore: upgrade webpack to v5 (#91)
Every pull request must reference the task or issue it addresses:
Closes #42, Fixes #108Part of #42When a PR is opened for a task, the task should link back to the PR. Most systems do this automatically when closing keywords are used. If not, add the PR link to the task manually.
For GitHub-specific issue patterns --- reading, commenting, branching, and PR creation --- refer to mav-github-issue-workflow.
The task tracking standards in this skill are system-agnostic. The GitHub issue workflow skill provides concrete implementation patterns for GitHub-hosted projects.
digraph lifecycle {
rankdir=LR;
"Open" [shape=box style=filled fillcolor="#ccddff"];
"In Progress" [shape=box style=filled fillcolor="#fff3cc"];
"In Review" [shape=box style=filled fillcolor="#ffe0cc"];
"Done" [shape=box style=filled fillcolor="#ccffcc"];
"Open" -> "In Progress" [label="work starts"];
"In Progress" -> "In Review" [label="PR opened"];
"In Review" -> "Done" [label="PR merged"];
"In Review" -> "In Progress" [label="changes requested"];
}
| State | Meaning | Entry Condition | | ----- | ------- | --------------- | | Open | Work has not started | Task is created and prioritised | | In Progress | Someone is actively working on it | Developer picks up the task and creates a branch | | In Review | Code is written and awaiting review | PR is opened and linked to the task | | Done | Work is merged and verified | PR is merged and acceptance criteria are met |
Update task status when transitions happen. A task sitting in "In Progress" for weeks with no commits is a signal that something is wrong.
A task should produce one identifiable result: a feature, a fix, a refactoring, a document. If a task requires multiple unrelated changes across unrelated areas, split it.
Before starting work, the definition of done is written in the task. This is not optional. Acceptance criteria prevent scope creep and make review objective.
A task should contain or link to enough context that someone unfamiliar with the history can understand what needs to be done and why. Avoid tasks that only make sense if you were in the meeting where they were discussed.
When reviewing workflow and project management practices, flag these patterns:
| Pattern | Issue | Fix | | ------- | ----- | --- | | Commits with no issue reference | Untracked work | Require issue references in commit messages | | PR with no linked issue | Work not authorised or tracked | Create the issue retroactively; enforce going forward | | Tasks with no acceptance criteria | Ambiguous definition of done | Add acceptance criteria before starting work | | Tasks open for weeks with no activity | Stale or blocked work | Update status, reassign, or close | | Multiple tasks for the same change | Duplicate tracking | Consolidate into one task, close duplicates | | Task title is vague | Impossible to prioritise or review | Rewrite with a specific deliverable | | Local TODO list used instead of tracker | Invisible work | Move tasks to the external system | | Task marked done but PR not merged | Status does not reflect reality | Update status to match actual state |
<!-- maverick-plugin-version: 3.3.7 -->development
--- name: do-test description: Write or update tests for a code change. Operates in two modes: `unit` (module-scoped, fast, deterministic) and `integration` (crosses module / service / database boundaries). Intended to be invoked once per testable change from inside a do-issue-* or do-epic phase. Mode is required. argument-hint: mode: unit or integration user-invocable: true disable-model-invocation: false --- **Depends on:** mav-bp-unit-testing, mav-bp-integration-testing, mav-local-verificati
development
Implement a focused code change. Use this skill as the wrapper for any implementation work so the Maverick workflow report captures what was done and so the agent applies the project's coding standards before editing. Intended to be invoked once per task from inside a do-issue-* or do-epic phase, not standalone.
testing
How to stack a PR on top of an unmerged sibling branch, and how to retarget it to the repo's default branch once the sibling merges. Prevents orphan-merge incidents when a dependent story is ready before its parent.
development
Claim, lease, heartbeat, and release protocols for when multiple Claude Code instances may act on the same issue or epic concurrently. GitHub labels and marker comments are the coordination surface; local state is a cache.