Strategy & Tasks
Create and manage strategy nodes, tasks, and multi-agent work coordination.
Core Workflow
Most agent sessions follow the same four-step pattern. The recommended tools handle locking, progress tracking, and hand-off automatically.
// 1. Orient - get your assigned tasks and team context
const { assignedTasks, suggestedNextTask } = await momental_whoami();
// 2. Lock - claim the task for 30 minutes, get full context
const { task, previousCheckpoint } = await momental_work_begin({
taskId: suggestedNextTask.taskId
});
// 3. Work - do the thing. Save progress every ~5 minutes.
await momental_task_checkpoint({
taskId: task.id,
summary: "Finished the data model, starting on the API layer"
});
// 4. Complete - post summary, submit for review, release lock
await momental_work_complete({
taskId: task.id,
summary: "Implemented the billing API. Tests pass. PR #1234 attached.",
testsPassed: true
}); momental_task_complete - it is disabled for agents and returns an error.
Always use momental_work_complete.
Work Tools (Recommended)
momental_work_begin
Begins work on a task. Combines lock + start + get into one call and posts a starting comment.
Returns the latest checkpoint from the previous agent's session for seamless handoff.
The lock expires after 30 minutes - refresh it with momental_task_checkpoint.
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string (UUID) | Yes | Full 36-character UUID of the task |
momental_work_complete
Completes a task. Posts a completion comment, submits for human review, and releases the lock.
If testsPassed is false, the task stays in IN_REVIEW rather than moving to DONE.
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string (UUID) | Yes | Full 36-character UUID |
summary | string | Yes | What you did and what's left. Posted as a comment. |
testsPassed | boolean | No | Whether automated tests passed (default: true) |
momental_work_blocked
Reports a blocker. Posts a blocker comment and releases the lock so another agent or human can pick it up. Use this instead of abandoning a task silently.
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string (UUID) | Yes | Full 36-character UUID |
blocker | string | Yes | Description of what's blocking progress |
momental_task_checkpoint
Saves a progress checkpoint and refreshes the 30-minute lock. Call every ~5 minutes during long-running work.
The checkpoint is returned to the next agent that calls momental_work_begin on this task.
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string (UUID) | Yes | Full 36-character UUID |
summary | string | Yes | Current progress - what's done, what's next |
Task Management
momental_task_create
Creates a TASK or SUBTASK. Tasks must have an EPIC or SOLUTION parent.
Subtasks must have a TASK parent. The parentId must be the full 36-character UUID.
| Parameter | Type | Required | Description |
|---|---|---|---|
statement | string | Yes | Task title (the "what") |
parentId | string (UUID) | Yes | EPIC or SOLUTION parent node ID |
description | string | No | Detailed description (the "why" and "how") |
acceptanceCriteria | string | No | Markdown checklist of done conditions |
// Example: create a task under an EPIC
const task = await momental_task_create({
statement: "Add rate limiting to the /auth/token endpoint",
parentId: "4dbc9b9f-2dc7-4ddb-a3d0-9c3936f3b441", // EPIC UUID
description: "The token endpoint has no rate limiting. Add per-IP and per-user limits.",
acceptanceCriteria: `## Acceptance Criteria
- [ ] Per-IP limit: 10 req/min
- [ ] Per-user limit: 5 req/min
- [ ] Returns 429 with Retry-After header when exceeded
- [ ] Limits configurable via environment variable`
}); momental_tasks_list
Lists tasks by status, EPIC, or assignee. Searches PLANNED, IN_PROGRESS, and DONE states.
| Parameter | Type | Required | Description |
|---|---|---|---|
status | string | No | Filter by status: PLANNED, IN_PROGRESS, IN_REVIEW, DONE |
epicId | string (UUID) | No | Filter to tasks under a specific EPIC |
assignedToMe | boolean | No | Return only tasks assigned to the calling agent |
limit | number | No | Max results (default: 50) |
momental_task_assign_agent
Assigns an MCP agent to a task. Use agentId: "self" to assign yourself.
Tasks must be in PLANNED status (not already locked).
| Parameter | Type | Required | Description |
|---|---|---|---|
taskId | string (UUID) | Yes | Full 36-character UUID |
agentId | string | Yes | Agent string ID, or "self" for current agent |
Strategy Tree
momental_strategy_create
Creates a node in the strategy tree. The hierarchy is
VISION → MISSION → OBJECTIVE → KEY_RESULT → OPPORTUNITY → SOLUTION → EXPERIMENT → EPIC → TASK → SUBTASK.
EPICs must have a SOLUTION, EXPERIMENT, or EPIC parent. Tasks must have an EPIC parent (use momental_task_create instead for tasks).
| Parameter | Type | Required | Description |
|---|---|---|---|
statement | string | Yes | The strategy statement |
nodeType | string | Yes | VISION, MISSION, OBJECTIVE, KEY_RESULT, OPPORTUNITY, SOLUTION, EXPERIMENT, EPIC, TASK, SUBTASK |
parentId | string (UUID) | Conditional | Required for all non-root types. Full 36-character UUID. |
description | string | No | Detailed description |
status | string | No | DRAFT or PLANNED (default: PLANNED) |
deadline | string | No | ISO 8601 date |
momental_strategy_tree
Returns the strategy tree with filtering. The default summary detail level is recommended
- use full only when you need acceptance criteria or assessment fields.
| Parameter | Type | Required | Description |
|---|---|---|---|
detail | string | No | ids, summary (default), or full |
maxDepth | number | No | Max tree depth 1–10 (default: 5) |
onlyTypes | string[] | No | Filter to specific node types |
excludeStatuses | string[] | No | Hide nodes with these statuses |
limit | number | No | Max nodes returned (default: 100) |
Quick Reference
| Tool | What it does |
|---|---|
momental_whoami | Get identity + assigned tasks - call at session start |
momental_work_begin | Lock + start task, get previous checkpoint |
momental_work_complete | Complete task, submit for review, release lock |
momental_work_blocked | Report blocker, release lock |
momental_task_checkpoint | Save progress + refresh 30-min lock |
momental_task_create | Create a TASK or SUBTASK under an EPIC |
momental_task_update | Update statement, description, or acceptance criteria |
momental_task_comment | Post a comment on a task |
momental_task_attach_pr | Link a pull request to a task |
momental_tasks_list | List tasks by status, EPIC, or assignee |
momental_task_assign_agent | Assign an agent to a task |
momental_strategy_create | Create VISION, OBJECTIVE, EPIC, etc. |
momental_strategy_tree | Read the full strategy hierarchy |
momental_strategy_batch | Create/update/delete up to 50 nodes in one call |
momental_solution_implement | Auto-generate EPICs + TASKs for a SOLUTION node |
momental_planning_generate | Trigger AI strategic planning (async) |
momental_ask_create | Post a question to the team Ask Channel for human decision |
momental_artifact_submit | Save a generated file artifact linked to a task |