task_extract_from_note
Split unstructured prose from notes into a list of candidate tasks with source line tracking. Preview proposed tasks in dry-run mode before creating them in a target project.
Instructions
Mechanically split prose into a candidate-task list with source-line provenance. Source can be a task's note (kind: 'task'), a project's note (kind: 'project'), or inline text (kind: 'inline') — useful for piping a transcript through capture-meeting. Two-phase contract: dryRun=true returns { proposed, unmappedLines }; dryRun=false with confirmation: ProposedTask[] creates the (possibly-edited) tasks in targetProjectId via batchCreateTasks semantics. Returns { phase: 'dryRun', proposed, unmappedLines } or { phase: 'created', outcome: BatchOutcome } accordingly. Do NOT use this tool when you already have structured tasks — call task_batch_create directly instead. Prefer this helper when the input is a wall-of-text note that needs splitting. Side effects: dryRun=true is read-only; dryRun=false creates tasks in the target project. Mutations do not sync automatically — call sync_trigger if cross-device visibility matters. Example: task_extract_from_note({ source: { kind: "task", id: "abc123" }, dryRun: true })
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| dryRun | No | Default true — return proposals without creating. false requires confirmation[]. | |
| source | Yes | Where to read prose from. | |
| confirmation | No | Required when dryRun is false. The (possibly-edited) ProposedTask[] the agent has confirmed with the user. | |
| targetProjectId | Yes | Project that will receive created tasks on dryRun=false. Read-only on dryRun=true. |