From eeb7138ecc45e383af7515f95017ddca6466f55e Mon Sep 17 00:00:00 2001 From: calvin-archastro Date: Tue, 20 Oct 2026 20:54:42 -0700 Subject: [PATCH] tasks skill: write decision question, recommended option and per-option consequences Plans now fill major_decisions[].question, major_decisions[].recommended and Effect/Cost/Risk lines in each option, matching the contract in firstlanding #19330. Plugin copies regenerated with plugin-gen. Co-Authored-By: Claude Opus 5.5 (1M context) --- plugins/antigravity/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/claude/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/codex/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/copilot/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/cursor/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/grok/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/opencode/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- plugins/pi/skills/tasks/SKILL.md | 29 ++++++++++++++++++++--- tasks/SKILL.md | 29 ++++++++++++++++++++--- 9 files changed, 234 insertions(+), 27 deletions(-) diff --git a/plugins/antigravity/skills/tasks/SKILL.md b/plugins/antigravity/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/antigravity/skills/tasks/SKILL.md +++ b/plugins/antigravity/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/claude/skills/tasks/SKILL.md b/plugins/claude/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/claude/skills/tasks/SKILL.md +++ b/plugins/claude/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/codex/skills/tasks/SKILL.md b/plugins/codex/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/codex/skills/tasks/SKILL.md +++ b/plugins/codex/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/copilot/skills/tasks/SKILL.md b/plugins/copilot/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/copilot/skills/tasks/SKILL.md +++ b/plugins/copilot/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/cursor/skills/tasks/SKILL.md b/plugins/cursor/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/cursor/skills/tasks/SKILL.md +++ b/plugins/cursor/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/grok/skills/tasks/SKILL.md b/plugins/grok/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/grok/skills/tasks/SKILL.md +++ b/plugins/grok/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/opencode/skills/tasks/SKILL.md b/plugins/opencode/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/opencode/skills/tasks/SKILL.md +++ b/plugins/opencode/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/plugins/pi/skills/tasks/SKILL.md b/plugins/pi/skills/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/plugins/pi/skills/tasks/SKILL.md +++ b/plugins/pi/skills/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary. diff --git a/tasks/SKILL.md b/tasks/SKILL.md index 02ef48c..2f442e7 100644 --- a/tasks/SKILL.md +++ b/tasks/SKILL.md @@ -248,13 +248,35 @@ The review command also accepts optional `major_decisions` (not part of { "id": "export-format", "name": "Choose the export format", - "description": "Which format should the first version support?", - "options": ["CSV", "JSON"] + "question": "Which file format should the first export version produce?", + "description": "Spreadsheet users want CSV; API consumers want JSON. Default if undecided: CSV.", + "recommended": 1, + "options": [ + "CSV\n\n- **Effect:** the download opens directly in spreadsheets.\n- **Cost:** one streaming writer; nested fields need flattening.\n- **Risk:** a later JSON request means a second format to maintain.", + "JSON\n\n- **Effect:** the output keeps nested fields as they are.\n- **Cost:** a second endpoint if CSV is wanted later.\n- **Risk:** spreadsheet users cannot open it without conversion." + ] } ] } ``` +Write each `major_decisions` entry so a reviewer can answer from the card +alone: + +- `question`: the one-sentence question being decided, ending in `?`. +- `description`: why it matters and the default if undecided. +- `options`: at most 8 strings. The first line is a short label; the lines + after it are markdown with `**Effect:**`, `**Cost:**` and `**Risk:**` lines + for that option. A bare label is valid, but give consequences whenever the + options differ in more than name. +- `recommended`: the 1-based number of the option you recommend. It must be + an integer within `options` (the CLI rejects 0, a number past the last + option, non-integers, and any value without `options`). Omit it when you have + no recommendation; never mark one option "(recommended)" in its text instead. + +Older renderers ignore `question` and `recommended`, so keep `description` +self-sufficient. + Replace illustrative paths with this project's real planned proof. Optional node fields also include `context`, `scope`, `exclusions`, `deliverables`, `depends_on`, `dependency_reasons`, `priority` (0–4), and `kind` @@ -339,7 +361,8 @@ test each node with a reader that has only that node. Run exactly one round. `exclusions`, `deliverables`, `implementation`, or `risk`). Write it so a reader without your history could act on it; name real paths and symbols. - **A choice only the human can make:** add or extend a `major_decisions` - entry. Do not pick an answer to close the gap. + entry with `question`, per-option Effect/Cost/Risk lines and, if you have + a view, `recommended`. Do not pick an answer to close the gap. - **Not a real gap** (already stated, or out of scope): leave the node as is and note why in the triage summary.