[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7DF4SSKYVBZNTGV1DB83FYS":3,"skill-same:01M7DF4SSKYVBZNTGV1DB83FYS":51},{"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},"01M7DF4SSKYVBZNTGV1DB83FYS","change-delivery",null,"Carry a verified and reviewed change through its change request: open it, read automated checks and review comments, and merge only when the evidence still describes the head. Use when a completed Paved run's change is to be proposed, updated or merged through a pull or merge request; use change-review to review the code itself.","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\u002Fpaved\u002Fruntime\u002Fpaved-core\u002Fcore\u002Fskills\u002Fcode-review\u002Fchange-delivery\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: change-delivery\ndescription: >-\n  Carry a verified and reviewed change through its change request: open it, read automated checks and review comments, and merge only when the evidence still describes the head. Use when a completed Paved run's change is to be proposed, updated or merged through a pull or merge request; use change-review to review the code itself.\n---\n\n# Change delivery\n\n## When to use\n\nAfter a Paved run completed: its change was verified, its evidence recorded and an\nindependent review passed. Use it to open the change request, to respond to what the\nshared repository reports about it, and to merge it when a human asks. Not for\nreviewing code (`change-review`) and not before the run completed: a change request is\nnever a substitute for local verification or review.\n\n## Required context\n\nNone beyond the completed run and its evidence. The verification context says which\nautomated checks the project treats as required; the rules context says who may merge.\n\n## Preconditions\n\n- The run in this checkout completed, so verification and review passed.\n- The branch carrying the change is committed and published; nothing the change needs is\n  left uncommitted.\n- Delivery readiness reports the target: `paved status --base \u003Ctarget> --json` returns\n  `data.delivery`. When `ready` is not true, follow its remediation instead.\n\n## Procedure\n\n1. **Check freshness.** Run `paved status --base \u003Ctarget> --json`. Evidence covers a\n   patch, not a commit id: a rebase that keeps the patch keeps `fresh: true`; any other\n   difference reports `fresh: false`. When it is not fresh, start a new run for the\n   current patch so it is verified and reviewed again. Never reuse the old verdict.\n2. **Open.** Ask the user to confirm the title, target and draft state, then use\n   `core.change-request.open`. Its body states what changed, which claims were verified\n   and that an independent review passed, with the evidence record's location. The\n   confirmation covers this one invocation only.\n3. **Read status.** Use `core.change-request.status` for automated checks, review\n   decision and mergeability. Green automated checks are one more observation of the\n   head, not a verdict: they do not replace the evidence or the review, and a check that\n   does not exercise the change supports nothing.\n4. **Triage comments**, automated or human, one at a time, and report each outcome:\n   - *Fix*: a defect you can demonstrate. Change the code, then return to step 1; the\n     patch changed, so it needs new verification and review before it ships.\n   - *Dismiss*: a false positive, already handled, or out of scope. Reply with the\n     concrete reason (the line, test or rule that settles it), never \"not applicable\".\n   - *Ask*: a product or design choice, or anything you cannot settle from the code.\n     Put it to the user; do not decide it silently.\n5. **Merge only when asked.** A human must ask for this specific merge; approval of the\n   implementation plan never covers it. Before `core.change-request.merge`:\n   - step 1 reports `ready: true` for the change request's target;\n   - required automated checks passed on the head revision `core.change-request.status`\n     reports;\n   - the user confirmed the merge naming the change request, its head revision and its\n     target. Pass that head revision, so the merge is refused if the head moved since.\n6. **Stacked change requests land bottom-up.** Merge the one targeting the main line\n   first. Then retarget the next to the main line, rebase it, and repeat from step 1:\n   when its patch is unchanged it stays fresh; when the rebase changed it, re-verify.\n\n## Tools\n\n`core.change-request.open`, `core.change-request.status` and `core.change-request.merge`\ncome from an adapter for the shared repository's service. When one is unavailable,\ntell the user which step they need to do themselves and keep the freshness check. Open\nneeds confirmation for each invocation; merge is destructive and needs an explicit\nhuman confirmation every time, with no automatic retry.\n\n## Rules\n\n`core.quality.evidence-before-completion` applies to delivery as well: do not report a\nchange request as ready, or a merge as safe, without the freshness result and the check\nstatus that show it.\n\n## Verification\n\nDelivery adds no check type. It relies on the run's evidence, the freshness result and\nthe status the shared repository reports for the head revision.\n\n## Evidence\n\nThe run's evidence record stays the source of truth; the change request links to it.\nReport the freshness result, the status observed and each triage outcome to the user.\n\n## Completion criteria\n\n- The change request exists, describes the verified change and links its evidence.\n- Every review comment is fixed, dismissed with a concrete reason or put to the user.\n- A merge happened only after a human asked for it, with fresh evidence and passing\n  required checks on the merged head.\n\n## Failure modes\n\n| Failure | Signal | Response |\n|---|---|---|\n| Stale verdict | Freshness reports `patch-changed` after a fix or a conflicted rebase | New run for the current patch; do not merge on the old evidence |\n| Green checks taken as approval | About to merge with no passed local review | Stop; finish the run first |\n| Comment dismissed without reason | Reply says only \"won't fix\" | Give the line, test or rule that settles it, or ask the user |\n| Head moved during merge | Merge refused because the head differs | Read status again and return to step 1 |\n| Stack merged top-down | Upper change request merged before its base | Stop and tell the user; land the base, then re-verify the upper one |\n\n## References\n\nNone.\n","# Change delivery\n\n## When to use\n\nAfter a Paved run completed: its change was verified, its evidence recorded and an\nindependent review passed. Use it to open the change request, to respond to what the\nshared repository reports about it, and to merge it when a human asks. Not for\nreviewing code (`change-review`) and not before the run completed: a change request is\nnever a substitute for local verification or review.\n\n## Required context\n\nNone beyond the completed run and its evidence. The verification context says which\nautomated checks the project treats as required; the rules context says who may merge.\n\n## Preconditions\n\n- The run in this checkout completed, so verification and review passed.\n- The branch carrying the change is committed and published; nothing the change needs is\n  left uncommitted.\n- Delivery readiness reports the target: `paved status --base \u003Ctarget> --json` returns\n  `data.delivery`. When `ready` is not true, follow its remediation instead.\n\n## Procedure\n\n1. **Check freshness.** Run `paved status --base \u003Ctarget> --json`. Evidence covers a\n   patch, not a commit id: a rebase that keeps the patch keeps `fresh: true`; any other\n   difference reports `fresh: false`. When it is not fresh, start a new run for the\n   current patch so it is verified and reviewed again. Never reuse the old verdict.\n2. **Open.** Ask the user to confirm the title, target and draft state, then use\n   `core.change-request.open`. Its body states what changed, which claims were verified\n   and that an independent review passed, with the evidence record's location. The\n   confirmation covers this one invocation only.\n3. **Read status.** Use `core.change-request.status` for automated checks, review\n   decision and mergeability. Green automated checks are one more observation of the\n   head, not a verdict: they do not replace the evidence or the review, and a check that\n   does not exercise the change supports nothing.\n4. **Triage comments**, automated or human, one at a time, and report each outcome:\n   - *Fix*: a defect you can demonstrate. Change the code, then return to step 1; the\n     patch changed, so it needs new verification and review before it ships.\n   - *Dismiss*: a false positive, already handled, or out of scope. Reply with the\n     concrete reason (the line, test or rule that settles it), never \"not applicable\".\n   - *Ask*: a product or design choice, or anything you cannot settle from the code.\n     Put it to the user; do not decide it silently.\n5. **Merge only when asked.** A human must ask for this specific merge; approval of the\n   implementation plan never covers it. Before `core.change-request.merge`:\n   - step 1 reports `ready: true` for the change request's target;\n   - required automated checks passed on the head revision `core.change-request.status`\n     reports;\n   - the user confirmed the merge naming the change request, its head revision and its\n     target. Pass that head revision, so the merge is refused if the head moved since.\n6. **Stacked change requests land bottom-up.** Merge the one targeting the main line\n   first. Then retarget the next to the main line, rebase it, and repeat from step 1:\n   when its patch is unchanged it stays fresh; when the rebase changed it, re-verify.\n\n## Tools\n\n`core.change-request.open`, `core.change-request.status` and `core.change-request.merge`\ncome from an adapter for the shared repository's service. When one is unavailable,\ntell the user which step they need to do themselves and keep the freshness check. Open\nneeds confirmation for each invocation; merge is destructive and needs an explicit\nhuman confirmation every time, with no automatic retry.\n\n## Rules\n\n`core.quality.evidence-before-completion` applies to delivery as well: do not report a\nchange request as ready, or a merge as safe, without the freshness result and the check\nstatus that show it.\n\n## Verification\n\nDelivery adds no check type. It relies on the run's evidence, the freshness result and\nthe status the shared repository reports for the head revision.\n\n## Evidence\n\nThe run's evidence record stays the source of truth; the change request links to it.\nReport the freshness result, the status observed and each triage outcome to the user.\n\n## Completion criteria\n\n- The change request exists, describes the verified change and links its evidence.\n- Every review comment is fixed, dismissed with a concrete reason or put to the user.\n- A merge happened only after a human asked for it, with fresh evidence and passing\n  required checks on the merged head.\n\n## Failure modes\n\n| Failure | Signal | Response |\n|---|---|---|\n| Stale verdict | Freshness reports `patch-changed` after a fix or a conflicted rebase | New run for the current patch; do not merge on the old evidence |\n| Green checks taken as approval | About to merge with no passed local review | Stop; finish the run first |\n| Comment dismissed without reason | Reply says only \"won't fix\" | Give the line, test or rule that settles it, or ask the user |\n| Head moved during merge | Merge refused because the head differs | Read status again and return to step 1 |\n| Stack merged top-down | Upper change request merged before its base | Stop and tell the user; land the base, then re-verify the upper one |\n\n## References\n\nNone.\n",{"name":5,"description":7},"main","1cd80f05aff924ea609012e864fa5c22c16c7d2d","plugins\u002Fpaved\u002Fruntime\u002Fpaved-core\u002Fcore\u002Fskills\u002Fcode-review\u002Fchange-delivery",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 change-delivery",{"tool":37,"command":38},"bunx","bunx skills add andersonmrodrigues\u002Fpaved --skill change-delivery",{"tool":40,"command":41},"pnpm","pnpm dlx skills add andersonmrodrigues\u002Fpaved --skill change-delivery","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Fplugins\u002Fpaved\u002Fruntime\u002Fpaved-core\u002Fcore\u002Fskills\u002Fcode-review\u002Fchange-delivery\u002FSKILL.md",true,[45],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"skill.yaml","REFERENCE","参考文档",392,"https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Fplugins\u002Fpaved\u002Fruntime\u002Fpaved-core\u002Fcore\u002Fskills\u002Fcode-review\u002Fchange-delivery\u002Fskill.yaml",[52,59,65,71,77,83],{"skillNo":53,"name":54,"nameZh":6,"description":55,"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},"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":60,"name":61,"nameZh":6,"description":55,"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},"01M7DFBS6WTK30PBSW4ZS0NPWT","unexplained-contract","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Funexplained-contract\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":55,"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},"01M7DFBPJGG170V9WTMFWY73R4","shell-block","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Fshell-block\u002FSKILL.md",[],[],{"skillNo":72,"name":73,"nameZh":6,"description":55,"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},"01M7DFBMZYR20JPTXNE5A8EFG6","project-identifier","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Fproject-identifier\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":55,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":80,"categories":81,"keywords":82,"publishedAt":19},"01M7DFBJ8J533DAKA3FTF54SX3","oversized","https:\u002F\u002Fgithub.com\u002Fandersonmrodrigues\u002Fpaved\u002Fblob\u002Fmain\u002Ftests\u002Ffixtures\u002Fskills\u002Finvalid\u002Foversized\u002FSKILL.md",[],[],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"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",[],[]]