[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7DF20B9MHBXMXAP3SSYRXAN":3,"skill-same:01M7DF20B9MHBXMXAP3SSYRXAN":45},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7DF20B9MHBXMXAP3SSYRXAN","decisions",null,"Relay a pending decision and collect the user's answer without deciding on their behalf. Use when Paved blocks on a decision or the user asks you to present or resume one.","andersonmrodrigues\u002Fpaved","andersonmrodrigues","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F13907380?v=4","01M7DEV3FP2VMQZ3FP2FP1TK1C","Anderson Rodrigues","01M7DEV3GC2QAQBW4FMNT98H48",1,"MIT","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude\u002Fpaved\u002Fskills\u002Fdecisions\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: decisions\ndescription: >-\n  Relay a pending decision and collect the user's answer without deciding on their behalf. Use when Paved blocks on a decision or the user asks you to present or resume one.\n---\n\n\u003C!-- Generated by Paved plugin paved@2.29.0 from core.decisions.decisions@0.2.0; edit Paved Core instead. -->\n# Conversational decisions\n\n## When to use\n\nUse this protocol whenever a Paved command returns decisions or `awaiting_input`, and\nwhen deciding whether a blocking diagnostic can be answered. It applies to command and\nworkflow decisions.\n\n## Required context\n\nRead the decision projection returned by Paved, including its `id`, `question`, `reason`,\n`options`, `recommended`, `evidence`, `required`, `answerChannel`, `dependsOn` and `status`.\nUse the diagnostic list and next action from the same result. Do not infer omitted options,\nevidence, dependencies or approval requirements.\n\n## Preconditions\n\nA decision can be answered only when Paved has emitted it and its status is `ASKED`.\nIf the decision is absent, still `PENDING`, or its evidence has changed, rerun the same\ncommand and use the current projection. A blocking diagnostic without an emitted decision\nis a constraint to report, not a question to invent.\n\n## Procedure\n\n1. Present each emitted decision with what Paved detected, what choice remains, why it\n   matters, every listed option and its consequence, and the evidence cited by Paved.\n2. Include Paved's recommendation and its evidence when `recommended` is present. Label it\n   as a recommendation; never treat it as the user's answer.\n   If the user asks you to choose a material option, explain that you cannot submit the\n   choice for them and ask them to name one of the listed options.\n3. Present all currently emitted decisions together. Preserve only ordering expressed by\n   `dependsOn`; do not imply that independent decisions must be answered in sequence.\n4. Collect the user's explicit option for each decision. Resume the same command with\n   `--answer \u003Cid>=\u003Cvalue> --answered-by \u003Cidentity>`. Repeat `--answer` for additional\n   decisions and repeat it for each value in a multi-choice answer.\n5. Use only the option ids in `options`. Use only an answering identity the user supplied.\n6. If `answerChannel` is `human-authored`, explain that a person must author\n   `.paved\u002Fapprovals\u002F\u003Cid>.json` for this exact decision. Do not create or edit that file.\n   Never write an approval on the user's behalf, even when filesystem access is available.\n7. If Paved reports a blocking diagnostic, state its message and next action separately\n   from any emitted optional decision. Make clear that answering the optional decision\n   does not resolve the blocker unless Paved says it does. Do not turn the diagnostic into\n   an option or call `decision raise` to route around a decision Paved already emitted.\n8. After resuming, report Paved's resulting status and any remaining decisions or blockers.\n9. Before asking a question of your own, in the conversation or with `paved decision\n   raise`, triage it. If the answer is observable (current behavior, output, timing,\n   layout, whether a test fails), find it out by reading or running the code instead of\n   asking. Ask only about preferences: product, scope, priority or taste calls that no\n   experiment settles. Raise them with `\"questionKind\": \"preference\"`. When an\n   observable question genuinely cannot be observed (no access, no safe way to run it),\n   raise it with `\"questionKind\": \"observable\"` and an `\"observationBlocker\"` that says\n   why; Paved rejects an observable question without one. Triage covers only your own\n   questions: every decision Paved emits is still presented, and approvals stay human.\n\n## Tools\n\nUse the originating Paved command to refresh a decision or resume it with the user's\nanswer. Use `paved decision list` and `paved decision show \u003Cid>` when inspecting stored\ndecisions. If a command is unavailable, report that and use the next action Paved gave.\n\n## Rules\n\nThis skill defines how an agent relays Paved decision records. It does not authorize the\nagent to select a material option on the user's behalf, provide an identity the user did\nnot give, or create an approval record. Never offer an option Paved did not include in\n`options`. Never call `decision raise` to route around a decision Paved already raised.\n\n## Verification\n\nA resumed command result verifies whether Paved accepted and applied an answer. An\n`awaiting_input` result means required input remains. A blocking diagnostic remains a\nblocker until Paved reports otherwise.\n\n## Evidence\n\nThis skill adds no evidence record of its own. Preserve Paved's decision id, status,\nanswer source and resulting command status when reporting the interaction.\n\n## Completion criteria\n\n- The user saw Paved's question, options, consequences and cited evidence.\n- Every submitted answer and answering identity came from the user.\n- Human-authored approval requirements and blockers were relayed without agent edits.\n- The final Paved result and any remaining action were reported.\n- No question you asked yourself had an answer you could have observed.\n\n## Failure modes\n\n| Failure | Signal | Response |\n|---|---|---|\n| Recommendation treated as consent | No explicit user option was collected | Leave the decision unanswered and ask the user to choose. |\n| Agent authors an approval | `answerChannel` is `human-authored` | Tell the user where the approval belongs; do not write it. |\n| Blocker is turned into a choice | No matching decision was emitted | Relay the diagnostic and its next action without raising a substitute. |\n| Independent decisions are serialized | No dependency connects them | Present the emitted decisions together. |\n| A fact is asked as a question | The answer could be read from the code or a run | Find it out, then ask only what remains a preference. |\n\n## References\n\nNo supporting files.\n\n\n## Paved integration\n\nUse the project-local Paved contract as the source of truth. Discover state with `node \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpaved.mjs\" status --json`, load only relevant `.paved\u002Fproject\u002F` context, and invoke verification with `node \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpaved.mjs\" verify --json`. Always run it from the repository being worked on, never from the plugin directory. Do not edit generated integration files or bypass Paved lifecycle and ownership checks.\n","\u003C!-- Generated by Paved plugin paved@2.29.0 from core.decisions.decisions@0.2.0; edit Paved Core instead. -->\n# Conversational decisions\n\n## When to use\n\nUse this protocol whenever a Paved command returns decisions or `awaiting_input`, and\nwhen deciding whether a blocking diagnostic can be answered. It applies to command and\nworkflow decisions.\n\n## Required context\n\nRead the decision projection returned by Paved, including its `id`, `question`, `reason`,\n`options`, `recommended`, `evidence`, `required`, `answerChannel`, `dependsOn` and `status`.\nUse the diagnostic list and next action from the same result. Do not infer omitted options,\nevidence, dependencies or approval requirements.\n\n## Preconditions\n\nA decision can be answered only when Paved has emitted it and its status is `ASKED`.\nIf the decision is absent, still `PENDING`, or its evidence has changed, rerun the same\ncommand and use the current projection. A blocking diagnostic without an emitted decision\nis a constraint to report, not a question to invent.\n\n## Procedure\n\n1. Present each emitted decision with what Paved detected, what choice remains, why it\n   matters, every listed option and its consequence, and the evidence cited by Paved.\n2. Include Paved's recommendation and its evidence when `recommended` is present. Label it\n   as a recommendation; never treat it as the user's answer.\n   If the user asks you to choose a material option, explain that you cannot submit the\n   choice for them and ask them to name one of the listed options.\n3. Present all currently emitted decisions together. Preserve only ordering expressed by\n   `dependsOn`; do not imply that independent decisions must be answered in sequence.\n4. Collect the user's explicit option for each decision. Resume the same command with\n   `--answer \u003Cid>=\u003Cvalue> --answered-by \u003Cidentity>`. Repeat `--answer` for additional\n   decisions and repeat it for each value in a multi-choice answer.\n5. Use only the option ids in `options`. Use only an answering identity the user supplied.\n6. If `answerChannel` is `human-authored`, explain that a person must author\n   `.paved\u002Fapprovals\u002F\u003Cid>.json` for this exact decision. Do not create or edit that file.\n   Never write an approval on the user's behalf, even when filesystem access is available.\n7. If Paved reports a blocking diagnostic, state its message and next action separately\n   from any emitted optional decision. Make clear that answering the optional decision\n   does not resolve the blocker unless Paved says it does. Do not turn the diagnostic into\n   an option or call `decision raise` to route around a decision Paved already emitted.\n8. After resuming, report Paved's resulting status and any remaining decisions or blockers.\n9. Before asking a question of your own, in the conversation or with `paved decision\n   raise`, triage it. If the answer is observable (current behavior, output, timing,\n   layout, whether a test fails), find it out by reading or running the code instead of\n   asking. Ask only about preferences: product, scope, priority or taste calls that no\n   experiment settles. Raise them with `\"questionKind\": \"preference\"`. When an\n   observable question genuinely cannot be observed (no access, no safe way to run it),\n   raise it with `\"questionKind\": \"observable\"` and an `\"observationBlocker\"` that says\n   why; Paved rejects an observable question without one. Triage covers only your own\n   questions: every decision Paved emits is still presented, and approvals stay human.\n\n## Tools\n\nUse the originating Paved command to refresh a decision or resume it with the user's\nanswer. Use `paved decision list` and `paved decision show \u003Cid>` when inspecting stored\ndecisions. If a command is unavailable, report that and use the next action Paved gave.\n\n## Rules\n\nThis skill defines how an agent relays Paved decision records. It does not authorize the\nagent to select a material option on the user's behalf, provide an identity the user did\nnot give, or create an approval record. Never offer an option Paved did not include in\n`options`. Never call `decision raise` to route around a decision Paved already raised.\n\n## Verification\n\nA resumed command result verifies whether Paved accepted and applied an answer. An\n`awaiting_input` result means required input remains. A blocking diagnostic remains a\nblocker until Paved reports otherwise.\n\n## Evidence\n\nThis skill adds no evidence record of its own. Preserve Paved's decision id, status,\nanswer source and resulting command status when reporting the interaction.\n\n## Completion criteria\n\n- The user saw Paved's question, options, consequences and cited evidence.\n- Every submitted answer and answering identity came from the user.\n- Human-authored approval requirements and blockers were relayed without agent edits.\n- The final Paved result and any remaining action were reported.\n- No question you asked yourself had an answer you could have observed.\n\n## Failure modes\n\n| Failure | Signal | Response |\n|---|---|---|\n| Recommendation treated as consent | No explicit user option was collected | Leave the decision unanswered and ask the user to choose. |\n| Agent authors an approval | `answerChannel` is `human-authored` | Tell the user where the approval belongs; do not write it. |\n| Blocker is turned into a choice | No matching decision was emitted | Relay the diagnostic and its next action without raising a substitute. |\n| Independent decisions are serialized | No dependency connects them | Present the emitted decisions together. |\n| A fact is asked as a question | The answer could be read from the code or a run | Find it out, then ask only what remains a preference. |\n\n## References\n\nNo supporting files.\n\n\n## Paved integration\n\nUse the project-local Paved contract as the source of truth. Discover state with `node \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpaved.mjs\" status --json`, load only relevant `.paved\u002Fproject\u002F` context, and invoke verification with `node \"${CLAUDE_PLUGIN_ROOT}\u002Fscripts\u002Fpaved.mjs\" verify --json`. Always run it from the repository being worked on, never from the plugin directory. Do not edit generated integration files or bypass Paved lifecycle and ownership checks.\n",{"name":5,"description":7},"main","1cd80f05aff924ea609012e864fa5c22c16c7d2d","plugins\u002Fclaude\u002Fpaved\u002Fskills\u002Fdecisions",0,"https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues","2026-11-14 20:09:28",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add andersonmrodrigues\u002Fpaved --skill decisions",{"tool":37,"command":38},"bunx","bunx skills add andersonmrodrigues\u002Fpaved --skill decisions",{"tool":40,"command":41},"pnpm","pnpm dlx skills add andersonmrodrigues\u002Fpaved --skill decisions","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Fplugins\u002Fclaude\u002Fpaved\u002Fskills\u002Fdecisions\u002FSKILL.md",true,[],[46,53,59,65,71,77],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":19},"01M7DFBWJT4T1MPBHTWT19PBEK","sample-skill","Does a sample task. Use when a sample is needed.","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Fvalid\u002Fsample-skill\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":56,"categories":57,"keywords":58,"publishedAt":19},"01M7DFBS6WTK30PBSW4ZS0NPWT","unexplained-contract","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Funexplained-contract\u002FSKILL.md",[],[],{"skillNo":60,"name":61,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":19},"01M7DFBPJGG170V9WTMFWY73R4","shell-block","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Fshell-block\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":70,"publishedAt":19},"01M7DFBMZYR20JPTXNE5A8EFG6","project-identifier","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Fproject-identifier\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":19},"01M7DFBJ8J533DAKA3FTF54SX3","oversized","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Foversized\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M7DFBFAD0RYCRHTZ2JW4RX7E","no-activation","Does a sample task.","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Fno-activation\u002FSKILL.md",[],[]]