Skip to content

feat(aidd-task-creator): add PageSpace MCP as primary task storage backend#212

Open
2witstudios wants to merge 1 commit into
mainfrom
feat/aidd-task-creator-pagespace
Open

feat(aidd-task-creator): add PageSpace MCP as primary task storage backend#212
2witstudios wants to merge 1 commit into
mainfrom
feat/aidd-task-creator-pagespace

Conversation

@2witstudios

Copy link
Copy Markdown

Summary

  • When mcp__pagespace__* tools are connected, task/epic planning now uses PageSpace TASK_LIST pages as the primary storage backend.
  • Adds a semantic nesting model (Epic → Phase → Task → Step) with container vs. leaf semantics and automatic progress rollup.
  • Adds a full PageSpace Storage procedure: bootstrap drive, create_page for epic TASK_LIST, create_task recursion, update_task status lifecycle, read_page for progress checks.
  • Adds a Memory section: DOCUMENT note pages + Memory Index for durable learnings; guidance on keeping update_drive_context short and stable.
  • Falls back to $projectRoot/tasks markdown 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, expanded onComplete(), and Memory section

…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.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge 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 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant