changedInput schema / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "description": "action=\"create\": Create an objective — a standing goal whose end-state lives in its body, with ordered milestone phases under it. Non-claimable; it rolls up from its milestones and the tasks attached to them. Add milestones with objective(action=\"add_milestone\"), then attach tasks with objective(action=\"attach\").",
- "properties": {
- "action": {
- "const": "create",
- "type": "string"
- },
- "body": {
- "description": "(create/add_milestone only) Optional markdown body — the objective's end-state prose (what 'done' looks like), or a milestone description.",
- "type": "string"
- },
- "component_id": {
- "description": "REQUIRED for create/add_milestone — parent component shareable id.",
- "type": "string"
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "scope": {
- "description": "(create/add_milestone only) Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it.",
- "type": "string"
- },
- "target_date": {
- "description": "(create/add_milestone/set_target only) Soft target date, ISO e.g. 2026-09-30. Optional on create/add_milestone; REQUIRED for set_target (pass null there to clear).",
- "type": "string"
- },
- "title": {
- "description": "REQUIRED for create/add_milestone — one-line title (an objective's end-state, or a milestone name).",
- "maxLength": 300,
- "minLength": 1,
- "type": "string"
- },
- "topics": {
- "description": "(create/add_milestone only) Short tag list.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "action",
- "project_slug",
- "component_id",
- "title"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"add_milestone\": Create a milestone — an ordered phase under an objective. Appended after the objective's existing milestones unless you pass an explicit position. Attach tasks to it with objective(action=\"attach\").",
- "properties": {
- "action": {
- "const": "add_milestone",
- "type": "string"
- },
- "body": {
- "description": "Optional milestone description.",
- "type": "string"
- },
- "component_id": {
- "description": "Parent component shareable id. REQUIRED.",
- "type": "string"
- },
- "objective_id": {
- "description": "REQUIRED for add_milestone/move/reorder/achieve — the objective (TASK-N).",
- "type": "string"
- },
- "position": {
- "description": "1-based order within the objective. Appended last when omitted.",
- "type": "integer"
- },
- "privacy_bypass": {
- "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
- "type": "boolean"
- },
- "privacy_false_positive": {
- "description": "With privacy_bypass: true reports the privacy flag as wrong.",
- "type": "boolean"
- },
- "privacy_judgement_id": {
- "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
- "type": "string"
- },
- "privacy_note": {
- "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
- "maxLength": 500,
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "scope": {
- "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
- "type": "string"
- },
- "target_date": {
- "description": "Optional soft target date, ISO e.g. 2026-09-30.",
- "type": "string"
- },
- "title": {
- "description": "Milestone one-liner.",
- "maxLength": 300,
- "minLength": 1,
- "type": "string"
- },
- "topics": {
- "description": "Short tag list.",
- "items": {
- "type": "string"
- },
- "type": "array"
- }
- },
- "required": [
- "action",
- "project_slug",
- "objective_id",
- "component_id",
- "title"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"attach\": Attach a plain task to a milestone, re-parenting it off any prior milestone/objective. Real task→task `blocks` dependencies are preserved — only the milestone/objective containment moves.",
- "properties": {
- "action": {
- "const": "attach",
- "type": "string"
- },
- "milestone_id": {
- "description": "REQUIRED for attach/set_target — the milestone (TASK-N).",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "task_id": {
- "description": "REQUIRED for attach/move/detach — the plain task (TASK-N).",
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "task_id",
- "milestone_id"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"move\": Attach a plain task directly to an objective — a 'loose' task serving the objective without a milestone. Re-parents off any prior container. Once an objective has milestones, loose tasks are its drift signal.",
- "properties": {
- "action": {
- "const": "move",
- "type": "string"
- },
- "objective_id": {
- "description": "The objective to attach it to directly (TASK-N).",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "task_id": {
- "description": "The plain task to attach (TASK-N).",
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "task_id",
- "objective_id"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"detach\": Remove a task's milestone/objective containment. Genuine task→task `blocks` dependencies are left intact.",
- "properties": {
- "action": {
- "const": "detach",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "task_id": {
- "description": "The task to detach from its milestone/objective (TASK-N).",
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "task_id"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"reorder\": Reorder an objective's milestones. `milestone_ids` must list exactly the objective's own milestones, in the new order (a total permutation); a partial or foreign list is rejected so positions never go inconsistent.",
- "properties": {
- "action": {
- "const": "reorder",
- "type": "string"
- },
- "milestone_ids": {
- "description": "REQUIRED for reorder — the objective's milestones (TASK-N) in the desired order. Must be exactly the objective's own milestones — a full permutation.",
- "items": {
- "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
- "type": "string"
- },
- "minItems": 1,
- "type": "array"
- },
- "objective_id": {
- "description": "The objective whose milestones to reorder (TASK-N).",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "objective_id",
- "milestone_ids"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"set_target\": Set (or clear, with null) a milestone's soft target date.",
- "properties": {
- "action": {
- "const": "set_target",
- "type": "string"
- },
- "milestone_id": {
- "description": "The milestone to retarget (TASK-N).",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- },
- "target_date": {
- "description": "ISO target date e.g. 2026-09-30, or null to clear.",
- "type": [
- "string",
- "null"
- ]
- }
- },
- "required": [
- "action",
- "project_slug",
- "milestone_id",
- "target_date"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "description": "action=\"achieve\": Mark an objective as achieved (status → done).",
- "properties": {
- "action": {
- "const": "achieve",
- "type": "string"
- },
- "objective_id": {
- "description": "The objective to mark achieved (TASK-N).",
- "type": "string"
- },
- "project_slug": {
- "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
- "minLength": 1,
- "type": "string"
- }
- },
- "required": [
- "action",
- "project_slug",
- "objective_id"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "description": "objective action \"create\".",
+ "properties": {
+ "action": {
+ "const": "create",
+ "description": "Run the create action.",
+ "type": "string"
+ },
+ "body": {
+ "description": "(create/add_milestone only) Optional markdown body — the objective's end-state prose (what 'done' looks like), or a milestone description.",
+ "type": "string"
+ },
+ "component_id": {
+ "description": "REQUIRED for create/add_milestone — parent component shareable id.",
+ "type": "string"
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "scope": {
+ "description": "(create/add_milestone only) Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it.",
+ "type": "string"
+ },
+ "target_date": {
+ "description": "(create/add_milestone/set_target only) Soft target date, ISO e.g. 2026-09-30. Optional on create/add_milestone; REQUIRED for set_target (pass null there to clear).",
+ "type": "string"
+ },
+ "title": {
+ "description": "REQUIRED for create/add_milestone — one-line title (an objective's end-state, or a milestone name).",
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "topics": {
+ "description": "(create/add_milestone only) Short tag list.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "component_id",
+ "title"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"add_milestone\".",
+ "properties": {
+ "action": {
+ "const": "add_milestone",
+ "description": "Run the add_milestone action.",
+ "type": "string"
+ },
+ "body": {
+ "description": "Optional milestone description.",
+ "type": "string"
+ },
+ "component_id": {
+ "description": "Parent component shareable id. REQUIRED.",
+ "type": "string"
+ },
+ "objective_id": {
+ "description": "REQUIRED for add_milestone/move/reorder/achieve — the objective (TASK-N).",
+ "type": "string"
+ },
+ "position": {
+ "description": "1-based order within the objective. Appended last when omitted.",
+ "type": "integer"
+ },
+ "privacy_bypass": {
+ "description": "true writes despite a privacy flag. Only meaningful after a flag; the user decides whether the content can be written.",
+ "type": "boolean"
+ },
+ "privacy_false_positive": {
+ "description": "With privacy_bypass: true reports the privacy flag as wrong.",
+ "type": "boolean"
+ },
+ "privacy_judgement_id": {
+ "description": "With privacy_bypass: the judgement_id the privacy flag returned.",
+ "type": "string"
+ },
+ "privacy_note": {
+ "description": "With privacy_bypass: an optional short reason, kept with the bypass.",
+ "maxLength": 500,
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "scope": {
+ "description": "Workspace scope. Omit or 'auto' = scope to the workspace mapped to the current git branch, else trunk (shared truth). 'trunk' = force shared truth even on a branch. Or pass a workspace name/id to target it. Branch-scoped writes are invisible to collaborators off that workspace.",
+ "type": "string"
+ },
+ "target_date": {
+ "description": "Optional soft target date, ISO e.g. 2026-09-30.",
+ "type": "string"
+ },
+ "title": {
+ "description": "Milestone one-liner.",
+ "maxLength": 300,
+ "minLength": 1,
+ "type": "string"
+ },
+ "topics": {
+ "description": "Short tag list.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "objective_id",
+ "component_id",
+ "title"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"attach\".",
+ "properties": {
+ "action": {
+ "const": "attach",
+ "description": "Run the attach action.",
+ "type": "string"
+ },
+ "milestone_id": {
+ "description": "REQUIRED for attach/set_target — the milestone (TASK-N).",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "task_id": {
+ "description": "REQUIRED for attach/move/detach — the plain task (TASK-N).",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "task_id",
+ "milestone_id"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"move\".",
+ "properties": {
+ "action": {
+ "const": "move",
+ "description": "Run the move action.",
+ "type": "string"
+ },
+ "objective_id": {
+ "description": "The objective to attach it to directly (TASK-N).",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "task_id": {
+ "description": "The plain task to attach (TASK-N).",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "task_id",
+ "objective_id"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"detach\".",
+ "properties": {
+ "action": {
+ "const": "detach",
+ "description": "Run the detach action.",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "task_id": {
+ "description": "The task to detach from its milestone/objective (TASK-N).",
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "task_id"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"reorder\".",
+ "properties": {
+ "action": {
+ "const": "reorder",
+ "description": "Run the reorder action.",
+ "type": "string"
+ },
+ "milestone_ids": {
+ "description": "REQUIRED for reorder — the objective's milestones (TASK-N) in the desired order. Must be exactly the objective's own milestones — a full permutation.",
+ "items": {
+ "description": "Shareable id: TASK-N (task), KNOW-N (knowledge), COMP-N (component), DOC-N (document), or NODE-N (any).",
+ "type": "string"
+ },
+ "minItems": 1,
+ "type": "array"
+ },
+ "objective_id": {
+ "description": "The objective whose milestones to reorder (TASK-N).",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "objective_id",
+ "milestone_ids"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"set_target\".",
+ "properties": {
+ "action": {
+ "const": "set_target",
+ "description": "Run the set_target action.",
+ "type": "string"
+ },
+ "milestone_id": {
+ "description": "The milestone to retarget (TASK-N).",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "target_date": {
+ "description": "ISO target date e.g. 2026-09-30, or null to clear.",
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "milestone_id",
+ "target_date"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "description": "objective action \"achieve\".",
+ "properties": {
+ "action": {
+ "const": "achieve",
+ "description": "Run the achieve action.",
+ "type": "string"
+ },
+ "objective_id": {
+ "description": "The objective to mark achieved (TASK-N).",
+ "type": "string"
+ },
+ "project_slug": {
+ "description": "Project slug, e.g. \"acme-app\" — list(what=\"projects\") returns yours.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "action",
+ "project_slug",
+ "objective_id"
+ ],
+ "type": "object"
+ }
+]