feat(aidd-task-creator): add PageSpace MCP as primary task storage backend#212
feat(aidd-task-creator): add PageSpace MCP as primary task storage backend#2122witstudios wants to merge 1 commit into
Conversation
…ckend When mcp__pagespace__* tools are connected, tasks now live in PageSpace as nested TASK_LIST pages (Epic → Phase → Task → Step). Adds a full nesting model with container/leaf semantics, a PageSpace Storage procedure (bootstrap drive, create_page, create_task, update_task lifecycle, read_page progress), and a Memory section for durable learnings. Falls back to $projectRoot/tasks markdown files when no MCP is available — non-breaking for non-PageSpace projects.
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e84abc75df
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| A task can be broken down into smaller tasks. The larger task is stored in a task file in the $projectRoot/tasks folder. Subtasks live in that file. | ||
| A task can be broken down into smaller tasks at any depth. | ||
|
|
||
| **Storage.** If the PageSpace MCP tools (`mcp__pagespace__*`) are connected, tasks live in PageSpace as nested TASK_LIST pages — this is primary. Otherwise (e.g. a non-PageSpace repo, or a worktree subagent without the MCP server) they live in `$projectRoot/tasks` as markdown files. A project may pin the PageSpace conventions in its own rules; defer to those when present. |
There was a problem hiding this comment.
Keep existing filesystem tasks discoverable
When PageSpace is connected globally for a user who opens a repository with existing $projectRoot/tasks plans, this rule immediately treats PageSpace as the sole task store even though nothing migrates or imports those plans. Consequently, /execute and /list can stop finding previously created work merely because the MCP server became available; retain filesystem discovery for existing plans or define a migration/fallback lookup.
Useful? React with 👍 / 👎.
| 2. **Epic → TASK_LIST.** `create_page({driveId, parentId: epicsFolderId, title: "${EpicName} Epic", type: "TASK_LIST"})`. Overview/goal goes in the page body. | ||
| 3. **Tasks → create_task (tree).** `create_task({pageId: <taskListId>, title, priority, note: <"Given X, should Y" requirements>})` returns the new task and its linked `pageId`. To decompose, call `create_task` again with `pageId` = that task's linked page — recurse to build the tree. Leaf requirements go in the `note`. | ||
| 4. **Status lifecycle (leaves only).** `update_task({taskId, status})` — `pending → in_progress` on start, `→ completed` on done (auto-sets completedAt), `blocked` when stuck. Don't complete a container task; it rolls up automatically when its last child finishes. Add a `note` on each transition. | ||
| 5. **Progress & navigation.** `read_page({pageId})` returns `progress` (total/percentage/byGroup) and per-task `subTaskCount`/`subTaskCompletedCount` + linked `pageId`. Read into a task's page to walk the tree; use for checkpoints instead of re-reading files. |
There was a problem hiding this comment.
Route periodic checkpoints through PageSpace
For PageSpace-only plans, this says to use read_page for checkpoints, but executePlan() still mandates re-reading $projectRoot/plan/* after every three tasks. Since the new storage branch creates no local plan file, that required drift check has no requirements to read and may be skipped; branch the checkpoint step so it explicitly reads the epic TASK_LIST and relevant task pages.
Useful? React with 👍 / 👎.
Summary
mcp__pagespace__*tools are connected, task/epic planning now uses PageSpace TASK_LIST pages as the primary storage backend.create_pagefor epic TASK_LIST,create_taskrecursion,update_taskstatus lifecycle,read_pagefor progress checks.update_drive_contextshort and stable.$projectRoot/tasksmarkdown files when PageSpace MCP is unavailable — non-breaking for non-PageSpace projects.Why
PageSpace is an AI-native workspace with a native TASK_LIST page type that supports nested tasks with automatic progress rollup, status tracking, and rich notes. Using it as the task backend gives every AI session a live, queryable board instead of flat markdown files — while preserving the existing filesystem fallback for projects not using PageSpace.
Changes
ai/skills/aidd-task-creator/SKILL.md— adds Storage paragraph, Nesting Model section, PageSpace Storage procedure, expandedonComplete(), and Memory section