--- task-id-prefix: 'EX' projects: - label: 'Example Project' path: '.' value: 'example-project' task-statuses: - label: 'Planning' value: 'planning' description: 'Define the goals and scope.' - label: 'Triage' value: 'triage' description: 'Decide how to approach the work.' - label: 'Research' value: 'research' description: 'Investigate before planning or execution.' - label: 'Ready' value: 'ready' description: 'Ready to be worked on.' - label: 'In Progress' value: 'in_progress' description: 'Work is underway.' - label: 'Testing' value: 'testing' description: 'Awaiting human review or verification.' - label: 'Blocked' value: 'blocked' description: 'Waiting on a dependency or decision.' - label: 'Done' value: 'done' description: 'Completed and verified by a human.' - label: 'Cancelled' value: 'cancelled' description: 'No longer applicable.' task-types: - value: 'task' label: 'Task' description: 'A project deliverable or activity.' - value: 'chore' label: 'Chore' description: 'Routine maintenance or administrative work.' - value: 'feature' label: 'Feature' description: 'A new capability, when relevant to the project.' - value: 'bug' label: 'Bug' description: 'A defect to fix, when relevant to the project.' --- # Project Task Tracker ## Working with Tasks This tracker works for any project, including writing, research, and software. `testing` means awaiting review or verification; it does not require automated tests. This is a sample backlog. Customize the sample task for your project. ### Configuration - `task-id-prefix` controls display IDs and anchors. This example uses `EX`. - `TASK_ID_PREFIX` overrides frontmatter; the script default is `EX`. - Prefixes start with a letter and contain letters, digits, underscores, or hyphens. Display IDs are uppercase; anchors are lowercase. - Numbers are globally monotonic with at least three digits. Use a number alone with task commands to avoid dependence on the configured prefix. - After changing the prefix, run `./scripts/update-tasks` to migrate IDs and internal links without changing task numbers. - `projects` defines labels, keys, and repository-relative paths. If renaming a project key, update corresponding task anchor `data-project` attributes. - All task commands accept `-f /path/to/tasks.md`; exported `TASKS_FILE` sets the default tracker. - Optional `epics` and `subprojects` can group work. Define their values and labels in frontmatter before assigning them. ### Commands The CLI tools require Python 3.9+ and Bash or Zsh. They are optional; you can also maintain this Markdown tracker with your assistant. ```bash source ./scripts/env.sh ./scripts/get-tasks --all ./scripts/get-tasks --accept "Status:Ready" ./scripts/get-task 1 --json ./scripts/add-task "Outline the next deliverable" --project example-project --type task --status triage ./scripts/update-task 1 --status in_progress ./scripts/update-task 1 --append-description "- [ ] Additional review criterion" ./scripts/update-task 1 --status testing --check-all ./scripts/update-tasks ``` Task anchor attributes in **Detailed Tasks** are the canonical metadata. Do not manually edit generated summary or enum tables; regenerate them with `update-tasks`. Working agents transition completed work to `testing`, not `done`. A human confirms completion. See the [script guide](../scripts/README.md) and [getting started guide](../README.md) for details. ## Overall Progress | ID | Title | Project | Status | Type | |:-----|:-------------------------|:--------------|:-----|:--------------| | EX-001 | Define the project's goals | Example Project | Ready | [Task](#ex-001) | --- ## Detailed Tasks ### Define the project's goals **ID:** EX-001 **Project:** Example Project **Status:** Ready **Type:** Task **Description:** Replace this sample with the first meaningful activity for your project. - [ ] Describe the intended outcome and audience. - [ ] Identify the first deliverable. - [ ] Agree on how the deliverable will be reviewed or verified. --- ## Notes #### Projects (Rendered from frontmatter projects) #### Task Statuses (Rendered from frontmatter task-statuses) #### Task Types (Rendered from frontmatter task-types)