Files
base/docs/tasks.md
2026-10-08 18:29:45 -07:00

202 lines
11 KiB
Markdown

---
# Most projects only have one or two projects. label is used in prose and value is used as an index. Setup those task-id-prefix and projects values.
task-id-prefix: 'OB'
projects:
- label: 'Old Bear VTT'
path: '.'
prefix: 'OBV'
value: 'old-bear-vtt'
- label: 'Old Bear Brawl'
path: '.'
prefix: 'OBB'
value: 'old-bear-brawl'
- label: 'Common'
path: '.'
prefix: 'CMN'
value: 'cmn'
task-statuses:
- label: 'Planning'
value: 'planning'
description: 'We do not yet know what it should do.'
- label: 'Triage'
value: 'triage'
description: 'We do not yet know how to do it.'
- label: 'Ready'
value: 'ready'
description: 'Task is ready to be worked on.'
- label: 'In Progress'
value: 'in-progress'
description: 'Task is currently being worked on.'
- label: 'Testing'
value: 'testing'
description: 'Task is currently being tested.'
- label: 'Blocked'
value: 'blocked'
description: 'Task is waiting on external dependencies.'
- label: 'Done'
value: 'done'
description: 'Task is completed and verified.'
task-types:
- value: 'bug'
prefix: 'BUG'
label: 'Bug'
description: 'The task is a bug to fix.'
- value: 'feature'
prefix: 'ENH'
label: 'Feature'
description: 'The task is a new feature to implement.'
- value: 'chore'
prefix: 'CHR'
label: 'Chore'
description: 'The task is a routine maintenance or administrative task.'
---
# Project Task Tracker
## Instructions for Working with Tasks
### Quick Start (Environment Setup)
Before running task commands, source the helper environment script in your shell to load convenient aliases and paths:
```bash
source ./scripts/env.sh
```
### Task ID Configuration
- Set the document-wide `task-id-prefix` in YAML frontmatter (this tracker uses `OB`).
- Optionally export `TASK_ID_PREFIX` in your shell or in the local settings sourced by `scripts/env.sh` (`scripts/env.sh.local` or `.env`). It overrides frontmatter; when neither is set, the default is `OT`.
- Prefixes must start with a letter and contain only letters, digits, underscores, or hyphens. Display IDs are uppercase and anchors are lowercase.
- Numbers remain globally monotonic across the document, with at least three digits. Project and task-type `prefix` fields do not control these IDs.
- After changing the prefix, run `update-tasks` to normalize existing IDs and internal anchor links. Numeric IDs can still be used with task commands.
- All task commands accept `-f /path/to/tasks.md`; `TASKS_FILE` supplies the default path when exported.
### Command Reference
You can manage tasks using the provided automation scripts in `./scripts/` (or via their aliases):
- **List tasks**:
- `get-tasks` (or `./scripts/get-tasks`): Show active pending tasks.
- `get-planning-tasks` (or `get-tasks --planning`): Show tasks in _Planning_ or _Triage_ status.
- `get-tasks --all`: List all tasks regardless of status.
- `get-tasks --accept "Status:In Progress"` / `get-tasks --reject "Project:Example"`: Filter tasks.
- `get-tasks --all --accept "Epic:poc" --select "ID,Title,Epic"`: Filter or select the Epic column. Epic filters accept frontmatter values (`poc`) or labels (`Proof of Concept`), case-insensitively.
- `get-tasks --all --reject "Epic:poc"`: Exclude an Epic by value or label; comma-separated lists such as `Epic:poc,bootstrap` also work.
- **View a specific task**:
- `get-task OT-001` (or `./scripts/get-task 1`): Inspect task details, requirements, and metadata.
- `get-task OT-001 --json`: Output task data in JSON format, including `epic` (value) and `epic_label`.
- `get-task OT-001 --epic`: Output only the canonical Epic value.
- **Add a new task**:
- `add-task "Task Title" --project=example-project --type=feature --status=triage`
- (Optionally supply `-d "Description and checklist"`)
- Add `--epic=poc` (or `--epic="Proof of Concept"`) to assign an Epic defined in frontmatter.
- **Update an existing task**:
- `update-task OT-001 --status in_progress`
- `update-task OT-001 --title "New Title"`
- `update-task OT-001 --status done --check-all`
- `update-task OT-001 --append-description "- [ ] Additional subtask"`
- `update-task OT-001 --epic=poc` / `update-task OT-001 --clear-epic`: Assign or remove an Epic.
- **Synchronize document**:
- `update-tasks` (or `./scripts/update-tasks`): Re-indexes task IDs, re-renders the summary progress table, and regenerates metadata enum tables.
### Workflow Guidelines
1. **Do Not Edit the Summary Table Manually**: The summary table below is automatically regenerated from the detailed task entries. Use `./scripts/add-task` and `./scripts/update-task`, or edit the detailed task blocks directly and run `./scripts/update-tasks`.
2. **Anchor Tags as SSOT**: Each task in `## Detailed Tasks` is defined by an anchor tag:
`<a id="ot-XXX" class="task" data-project="PROJECT" data-epic="EPIC" data-status="STATUS" data-task-type="TYPE"></a>`
The attributes on this anchor tag are the canonical source of truth for the task's state.
`data-epic` is optional; its value comes from frontmatter `epics`. Summary and detail views display the corresponding label.
3. **Task Lifecycle**:
- **Triage**: Conceptualization and scoping phase.
- **Ready**: Ready to be picked up for implementation.
- **In Progress**: Actively being worked on.
- **Testing**: Code complete and ready for verification.
- **Done**: Completed and verified.
- **Blocked**: Waiting on external dependencies.
<a id="tasks-summary"></a>
## Overall Progress
<a id="tasks-list"></a>
| ID | Title | Project | Status | Type |
|:-----|:-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-------------|:-------|:-----------------|
| OB-001 | In voice and audio settings the 4th button for streaming is mostly off screen | Old Bear VTT | Done | [Feature](#ob-001) |
| OB-002 | When adding a new token to the board try to not put it on top of an existing one | Old Bear VTT | Done | [Feature](#ob-002) |
| OB-003 | When uploading files allow selecting multiple files at once | Old Bear VTT | Done | [Feature](#ob-003) | | Common | Ready | [Feature](#ob-211) |
---
<a id="task-details"></a>
## Detailed Tasks
<a id="ob-001" class="task" data-project="old-bear-vtt" data-status="done" data-task-type="feature"></a>
### In voice and audio settings the 4th button for streaming is mostly off screen
**ID:** OB-001
**Project:** Old Bear VTT
**Status:** Done
**Type:** Feature
**Description:**
In voice and audio settings the 4th button for streaming is mostly off screen
<a id="ob-002" class="task" data-project="old-bear-vtt" data-status="done" data-task-type="feature"></a>
### When adding a new token to the board try to not put it on top of an existing one
**ID:** OB-002
**Project:** Old Bear VTT
**Status:** Done
**Type:** Feature
**Description:**
When adding a new token to the board try to not put it on top of an existing one
<a id="ob-003" class="task" data-project="old-bear-vtt" data-status="done" data-task-type="feature"></a>
### When uploading files allow selecting multiple files at once
**ID:** OB-003
**Project:** Old Bear VTT
**Status:** Done
**Type:** Feature
**Description:**
When uploading files allow selecting multiple files at once
---
## Notes
#### Projects (Rendered from frontmatter projects)
| Value | Label | Prefix | Path |
| :------------- | :------------- | :----- | :--- |
| old-bear-vtt | Old Bear VTT | OBV | . |
| old-bear-brawl | Old Bear Brawl | OBB | . |
#### Task Statuses (Rendered from frontmatter task-statuses)
| Value | Label | Description |
| :---------- | :---------- | :---------------------------------------- |
| triage | Triage | Task is still being defined. |
| ready | Ready | Task is ready to be worked on. |
| in-progress | In Progress | Task is currently being worked on. |
| testing | Testing | Task is currently being tested. |
| blocked | Blocked | Task is waiting on external dependencies. |
| done | Done | Task is completed and verified. |
#### Task Types (Rendered from frontmatter task-types)
| Value | Label | Prefix | Description |
| :------ | :------ | :----- | :-------------------------------------------------------- |
| bug | Bug | BUG | The task is a bug to fix. |
| feature | Feature | ENH | The task is a new feature to implement. |
| chore | Chore | CHR | The task is a routine maintenance or administrative task. |