summaryrefslogtreecommitdiff
path: root/prompts
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2026-02-21 16:14:03 +0200
committerPaul Buetow <paul@buetow.org>2026-02-21 16:14:03 +0200
commite91df0ffec673ed2e2c93424c51cb3ebabc5fe05 (patch)
tree8c25850fa2bd01f4a2db5d6caa667d5d2ec48f16 /prompts
parentd7eaade8a45bec55c274f4683ad209e94c0f3308 (diff)
add project taskwarrior
Diffstat (limited to 'prompts')
-rw-r--r--prompts/skills/project-taskwarrior/00-context.md20
-rw-r--r--prompts/skills/project-taskwarrior/1-create-task.md27
-rw-r--r--prompts/skills/project-taskwarrior/2-start-task.md18
-rw-r--r--prompts/skills/project-taskwarrior/3-complete-task.md33
-rw-r--r--prompts/skills/project-taskwarrior/4-annotate-update-task.md40
-rw-r--r--prompts/skills/project-taskwarrior/5-review-overview-tasks.md58
-rw-r--r--prompts/skills/project-taskwarrior/SKILL.md26
7 files changed, 222 insertions, 0 deletions
diff --git a/prompts/skills/project-taskwarrior/00-context.md b/prompts/skills/project-taskwarrior/00-context.md
new file mode 100644
index 0000000..19771b1
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/00-context.md
@@ -0,0 +1,20 @@
+# Project Taskwarrior — shared context
+
+Load this with any of the action files (1–5) when working with tasks. It defines project scope and rules that apply to all task operations.
+
+## Project name
+
+Derive the project name from the git repository:
+
+```bash
+basename -s .git "$(git remote get-url origin 2>/dev/null)" 2>/dev/null || basename "$(git rev-parse --show-toplevel)"
+```
+
+Use it as `project:<name>` in every `task` command.
+
+## Rules that apply to all task commands
+
+- **EVERY `task` command MUST include `project:<name>`** — no exceptions. Never run a bare `task` without the project filter. When using a task ID, confirm the task belongs to the current project first.
+- **NEVER modify, delete, complete, start, or annotate tasks from other projects.** Only act on tasks where `project:<name>` matches the current git repo.
+- **One task in progress per project.** Do not start a second task while another is started and not completed, unless the user explicitly asks.
+- **Parallel work via sub-agents** — the agent may spawn sub-agents to work on tasks in parallel only **after the user approves**.
diff --git a/prompts/skills/project-taskwarrior/1-create-task.md b/prompts/skills/project-taskwarrior/1-create-task.md
new file mode 100644
index 0000000..9db6093
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/1-create-task.md
@@ -0,0 +1,27 @@
+# Create task
+
+Use with `00-context.md`. Project name and global rules apply.
+
+## Rules for new tasks
+
+- **Every task MUST have at least one tag** for sub-project/feature/area (e.g. `+integrationtests`, `+flamegraph`, `+bpf`, `+cli`, `+refactor`, `+bugfix`).
+- **When an agent creates a task, always add the tag `+agent`** so agent-created tasks can be identified.
+
+## Add a task
+
+```bash
+task add project:<name> +<tag> +agent "Description"
+```
+
+## With dependency
+
+```bash
+task add project:<name> +<tag> +agent "Description" depends:<id>
+```
+
+Multiple dependencies: `depends:<id1>,<id2>`.
+
+## Conventions
+
+- Pick or create a meaningful tag for the sub-project or feature.
+- Add dependencies when one task must complete before another can start.
diff --git a/prompts/skills/project-taskwarrior/2-start-task.md b/prompts/skills/project-taskwarrior/2-start-task.md
new file mode 100644
index 0000000..4e27fa0
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/2-start-task.md
@@ -0,0 +1,18 @@
+# Start task
+
+Use with `00-context.md`. Project name and global rules apply (including one task in progress per project unless the user says otherwise).
+
+## Mark task as started
+
+When you begin working on a task, **always mark it as started in Taskwarrior** so current work is visible:
+
+```bash
+task <id> start
+```
+
+Do this as soon as you start work on the task.
+
+## Conventions
+
+- Run `task <id> start` when you start working on the task, not only when listing or completing.
+- Do not start a second task for the same project while one is already started and not done, unless the user explicitly asks.
diff --git a/prompts/skills/project-taskwarrior/3-complete-task.md b/prompts/skills/project-taskwarrior/3-complete-task.md
new file mode 100644
index 0000000..e1dd337
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/3-complete-task.md
@@ -0,0 +1,33 @@
+# Complete task
+
+Use with `00-context.md`. Project name and global rules apply.
+
+## Completion criteria (required before “done”)
+
+A task is **not** considered done until all of the following are true:
+
+- **Best practices** — the codebase (or changed parts) follows the project’s best practices.
+- **Compilable** — all code compiles successfully (e.g. full build succeeds).
+- **Tests pass** — all tests pass (e.g. full test suite green).
+
+If any of these fail, fix the issues and recheck. Do not mark the task complete until they are all met.
+
+## Before marking complete (after criteria are met)
+
+**Once the completion criteria above are met:**
+
+1. Spawn a **sub-agent** with **fresh context** (no prior conversation).
+2. Sub-agent reviews the diff, code, or deliverables for the task and **reports back** to the main agent (review comments, suggestions, issues).
+3. Main agent **addresses all review comments** from the sub-agent — no exceptions. Fix or respond to every point.
+4. If changes were made, repeat the sub-agent review until the main agent has addressed all comments.
+5. Only then:
+
+```bash
+task <id> done
+```
+
+## Conventions
+
+- A task is not done until: best practices met, code compiles, all tests pass, **and** all sub-agent review comments have been addressed.
+- Complete with `task <id> done` only after completion criteria and the sub-agent review (and all follow-up fixes) are satisfied.
+- When completing a task, note which tasks were unblocked (dependents that became ready), if any.
diff --git a/prompts/skills/project-taskwarrior/4-annotate-update-task.md b/prompts/skills/project-taskwarrior/4-annotate-update-task.md
new file mode 100644
index 0000000..f96d46b
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/4-annotate-update-task.md
@@ -0,0 +1,40 @@
+# Annotate / update task
+
+Use with `00-context.md`. Project name and global rules apply.
+
+## Reading task context
+
+When working on a task, **always read the full context:** description, summary, and **all annotations**. Annotations often contain progress, challenges, and references to files or documents — use them for further reference.
+
+View full task (including annotations):
+
+```bash
+task <id>
+```
+
+## Annotate a task
+
+```bash
+task <id> annotate "Note about progress or context"
+```
+
+While making progress, **add annotations** to reflect progress, challenges, or decisions. You may refer to files, documents, or other resources (paths, doc links, snippets) so the task history stays useful for later work and for the pre-completion review.
+
+## Modify a task
+
+```bash
+task <id> modify +<tag>
+task <id> modify depends:<id2>
+task <id> modify priority:H
+```
+
+## Delete a task
+
+```bash
+task <id> delete
+```
+
+## Conventions
+
+- Read description, summary, and all annotations when working on a task.
+- Annotate with implementation notes, progress, challenges, and references to files or documents as you go.
diff --git a/prompts/skills/project-taskwarrior/5-review-overview-tasks.md b/prompts/skills/project-taskwarrior/5-review-overview-tasks.md
new file mode 100644
index 0000000..954c720
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/5-review-overview-tasks.md
@@ -0,0 +1,58 @@
+# Review / overview tasks
+
+Use with `00-context.md`. Project name and global rules apply.
+
+## List tasks for the project
+
+```bash
+task project:<name> list
+```
+
+By tag:
+
+```bash
+task project:<name> +<tag> list
+```
+
+## Picking what to work on (next task)
+
+**Check already-started tasks first.** Before suggesting or starting a new task:
+
+```bash
+task project:<name> start.any: list
+```
+
+- If any tasks are already started, **use one of those** — do not start a second task unless the user explicitly asks.
+- Only if no tasks are in progress, show the next actionable (READY) task:
+
+```bash
+task project:<name> +READY next limit:1
+```
+
+## View task details
+
+```bash
+task <id>
+```
+
+Always read description, summary, and **all annotations** when working on or reviewing a task.
+
+## Visualization
+
+Dependency tree (export):
+
+```bash
+task project:<name> export
+```
+
+Blocked vs ready:
+
+```bash
+task project:<name> +BLOCKED list
+task project:<name> +READY list
+```
+
+## Conventions
+
+- When picking the next task: first list already-started (`start.any:`); if any exist, continue one of those; only if none, pick from `+READY` by urgency.
+- Prefer `+READY` (unblocked) tasks sorted by urgency when choosing among ready tasks.
diff --git a/prompts/skills/project-taskwarrior/SKILL.md b/prompts/skills/project-taskwarrior/SKILL.md
new file mode 100644
index 0000000..82ee456
--- /dev/null
+++ b/prompts/skills/project-taskwarrior/SKILL.md
@@ -0,0 +1,26 @@
+---
+name: project-taskwarrior
+description: "Manage Taskwarrior tasks scoped to the current git project. Use when asked to list, add, start, complete, annotate, or organize tasks for the project. Triggers on: tasks, todo, task list, pick next task, what's next."
+---
+
+# Project Taskwarrior
+
+Taskwarrior tasks are scoped to the current git repository. **Load only the files you need** for the current action so the whole skill does not need to be in context.
+
+## When to load what
+
+| Action | Load |
+|--------|------|
+| **Create task** | `00-context.md` + `1-create-task.md` |
+| **Start task** | `00-context.md` + `2-start-task.md` |
+| **Complete task** | `00-context.md` + `3-complete-task.md` |
+| **Annotate / update task** | `00-context.md` + `4-annotate-update-task.md` |
+| **Review / overview tasks** | `00-context.md` + `5-review-overview-tasks.md` |
+
+Always load `00-context.md` first (project name resolution and global rules); then load the one action file that matches what you are doing.
+
+## Task lifecycle (overview)
+
+1. Create task → 2. Start task → 3. Annotate as you go → 4. **Completion criteria** (best practices, compilable, all tests pass) → 5. Sub-agent review (fresh context) → 6. Main agent addresses all review comments → 7. Complete task
+
+A task is not done until criteria are met and all sub-agent review comments are addressed. Details are in `3-complete-task.md`.