| name | cowork-sync |
| type | skill |
| category | instruction |
| description | Mirror PKB tasks onto the Cowork native task list at claim time and sync completion back to PKB. Cowork-only; ships only in the cowork build of aops-core. |
| triggers | ["mirror task","sync task list","cowork task","native task list","TaskCreate","merge tasks onto cowork"] |
| modifies_files | false |
| needs_task | false |
| mode | procedure |
| domain | ["operations"] |
| platforms | ["cowork"] |
| permalink | skills/cowork-sync |
/cowork-sync: PKB ↔ Native Task List Mirror
Defines procedures for aligning the Personal Knowledge Base (PKB) with the Cowork harness-native task list.
Invariants
- PKB remains the system of record.
- Mirror claimed tasks from PKB onto the native list at
/pull claim time.
- Write native task updates (
in_progress, completed) to the native list.
- Sync native child completions back to PKB via
mcp__pkb__complete_task in real time. Parent task sync is deferred to /end_session's release_task.
- Every native task must store its PKB task ID in its
description (e.g. "PKB task-acba1234 — Implement X").
- Only
/pull and /end_session drive this mirror; supervisor ticks and ad-hoc PKB writes bypass it and won't appear on the native list until the next /pull.
Bootstrap
Before calling native task tools, ensure schemas are loaded:
ToolSearch(query="select:TaskCreate,TaskUpdate,TaskList,TaskGet", max_results=4)
Mirror Procedure (PKB → Native)
Invoked by /pull claim step.
- Fetch the PKB task and its children:
parent = mcp__pkb__get_task(id="<pkb-id>")
leaves = mcp__pkb__get_task_children(id="<pkb-id>")
- Create the parent native task:
parent_native = TaskCreate(
subject="<short-title>",
description="PKB <pkb-id> — <full-title>",
activeForm="Implementing <subject>"
)
- For each child task in
leaves, create a native task and block the parent:
child_native = TaskCreate(
subject="<child-title>",
description="PKB <child-id> — <child-title>",
activeForm="Implementing <child-title>"
)
TaskUpdate(taskId=child_native addBlocks=parent_native)