[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M77XJSQ816VFN5F0785VZXJC":3,"skill-same:01M77XJSQ816VFN5F0785VZXJC":65},{"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},"01M77XJSQ816VFN5F0785VZXJC","vs-before-after",null,"Use when asked for before and after, the functional difference, what behavior changed, or the user value of a branch, PR, commit, or working-tree diff. Translates code changes into a concise observable-behavior comparison; it is not a code walkthrough or review.","vltansky\u002Fvs","vltansky","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F5851280?v=4","01M77XJAE230PB81N52XJHT5A1","Vlad Tansky","01M77XJAET1CMBAZ2TWTT4ZQT8",0,"MIT","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: vs-before-after\ndescription: \"Use when asked for before and after, the functional difference, what behavior changed, or the user value of a branch, PR, commit, or working-tree diff. Translates code changes into a concise observable-behavior comparison; it is not a code walkthrough or review.\"\n---\n\n# Before & After\n\nTranslate an exact code diff into the functional change a person, caller, or\noperator can observe. The diff is input evidence; the output describes behavior.\n\n## Boundary\n\nUse this skill for “before vs after,” “what is the value of this change?”, or\n“what works differently?” Do not use it for a file inventory, code walkthrough,\nreview verdict, implementation explanation, release status, or general recap.\n\nIf the diff contains only refactoring, tests, generated output, lockfiles, or\nother implementation churn with no supported behavior change, return\n`NO_FUNCTIONAL_CHANGE` and one sentence explaining why. Do not manufacture a\nuser impact.\n\n## 1. Pin the comparison\n\nResolve one exact comparison boundary before interpreting behavior:\n\n- **PR:** use its exact base and head SHAs.\n- **Branch or commit range:** use the merge base and exact head SHA.\n- **Working tree:** compare tracked staged and unstaged changes against `HEAD`;\n  name untracked files separately when they are in scope.\n- **Supplied diff:** record the user-provided base\u002Fhead or state labels.\n\nFail with `BLOCKED_NO_DIFF` when the boundary cannot be resolved or the diff is\nempty. Do not silently substitute a different base.\n\nKeep a large diff on disk and inspect bounded hunks through the shared\n[`disk-backed evidence contract`](..\u002Fvs-internal-shared\u002Freferences\u002Fdisk-backed-evidence.md).\nFor a local branch, capture the exact diff without printing it into chat:\n\n```bash\nUPSTREAM_REF=$(git symbolic-ref --quiet --short refs\u002Fremotes\u002Forigin\u002FHEAD)\nBASE=$(git merge-base HEAD \"$UPSTREAM_REF\")\nRUN_DIR=$(mktemp -d)\nDIFF_PATH=\"$RUN_DIR\u002Fbefore-after.diff\"\ngit diff \"$BASE\"..HEAD --no-color > \"$DIFF_PATH\"\nnode \u003Cresolved-vs-internal-shared-skill-directory>\u002Fscripts\u002Fevidence-manifest.mjs \\\n  manifest \"$DIFF_PATH\"\n```\n\n## 2. Derive the functional delta\n\nRead the affected flow once: changed entry points, relevant callers and callees,\ntests, contracts, and the base and head versions needed to establish behavior.\nRepository and PR prose can explain intent, but intent is not proof.\n\nFor each distinct outcome, compare the same actor, input, precondition, and\nobservable end state on both sides. Merge multiple implementation hunks that\nproduce one outcome. Omit internal mechanics unless they materially constrain\nthe behavior.\n\nClassify what happened while reasoning:\n\n- **Added:** a capability did not exist and now does.\n- **Fixed:** the old behavior was wrong and now reaches the intended result.\n- **Changed:** valid existing behavior now works differently.\n- **Removed:** a capability or supported path no longer exists.\n- **Breaking:** an existing caller or user must change how they interact.\n- **Unchanged:** a relevant contract remains stable despite the implementation\n  change.\n\nBreaking, security, authorization, data-loss, and compatibility effects must be\nstated explicitly. Preserve uncertainty instead of smoothing over it.\n\n## 3. Separate evidence from inference\n\nLabel the strongest support for each comparison:\n\n- **Observed:** matched before and after runtime evidence using the same setup.\n- **Tested:** a named test or command demonstrates the stated behavior.\n- **Source-derived:** behavior is inferred from the pinned base\u002Fhead source or\n  diff but was not executed.\n- **Stated:** intent comes only from a PR, issue, or user description.\n\nPassing current tests does not prove the before state. A source-derived claim is\nuseful, but it stays a proof gap until observed or tested at the relevant state.\nNever describe an inferred outcome as verified.\n\n## 4. Render only the behavioral comparison\n\nGroup closely related outcomes. Prefer one comparison; use more only when the\ndiff changes independently observable behaviors.\n\n```markdown\n## Before & After\n\n**Before**\n\u003CWhat the actor experienced with the concrete input or precondition.>\n\n**After**\n\u003CWhat that same actor experiences now.>\n\n**Impact**\n\u003CWhy the functional difference matters. Mark breaking behavior here.>\n\n**Unchanged**\n\u003COnly the relevant preserved behavior; omit when none is material.>\n\n**Evidence**\n- \u003CObserved or Tested evidence with the named command\u002Fartifact.>\n- Proof gap: \u003CSource-derived or Stated claim that was not demonstrated.>\n```\n\nDo not add a file inventory, diff stat, code walkthrough, architecture diagram,\nreview findings, screenshots, implementation plan, or next-step menu. Evidence\nmay cite the minimum exact path, test, command, or artifact needed to support a\nclaim; it must not turn into a changelog.\n\nApply the\n[`shared output style`](..\u002Fvs-internal-shared\u002Freferences\u002Foutput-style.md) to the\nrendered comparison.\n\n## Workflow\n\nDirect: emit **Next** only. Composed: return to caller.\n\n**Prev:** branch, PR, commit, or working-tree diff\n**Next:** done\n**Relevant:** `\u002Fvs-recap` for current status\n","# Before & After\n\nTranslate an exact code diff into the functional change a person, caller, or\noperator can observe. The diff is input evidence; the output describes behavior.\n\n## Boundary\n\nUse this skill for “before vs after,” “what is the value of this change?”, or\n“what works differently?” Do not use it for a file inventory, code walkthrough,\nreview verdict, implementation explanation, release status, or general recap.\n\nIf the diff contains only refactoring, tests, generated output, lockfiles, or\nother implementation churn with no supported behavior change, return\n`NO_FUNCTIONAL_CHANGE` and one sentence explaining why. Do not manufacture a\nuser impact.\n\n## 1. Pin the comparison\n\nResolve one exact comparison boundary before interpreting behavior:\n\n- **PR:** use its exact base and head SHAs.\n- **Branch or commit range:** use the merge base and exact head SHA.\n- **Working tree:** compare tracked staged and unstaged changes against `HEAD`;\n  name untracked files separately when they are in scope.\n- **Supplied diff:** record the user-provided base\u002Fhead or state labels.\n\nFail with `BLOCKED_NO_DIFF` when the boundary cannot be resolved or the diff is\nempty. Do not silently substitute a different base.\n\nKeep a large diff on disk and inspect bounded hunks through the shared\n[`disk-backed evidence contract`](..\u002Fvs-internal-shared\u002Freferences\u002Fdisk-backed-evidence.md).\nFor a local branch, capture the exact diff without printing it into chat:\n\n```bash\nUPSTREAM_REF=$(git symbolic-ref --quiet --short refs\u002Fremotes\u002Forigin\u002FHEAD)\nBASE=$(git merge-base HEAD \"$UPSTREAM_REF\")\nRUN_DIR=$(mktemp -d)\nDIFF_PATH=\"$RUN_DIR\u002Fbefore-after.diff\"\ngit diff \"$BASE\"..HEAD --no-color > \"$DIFF_PATH\"\nnode \u003Cresolved-vs-internal-shared-skill-directory>\u002Fscripts\u002Fevidence-manifest.mjs \\\n  manifest \"$DIFF_PATH\"\n```\n\n## 2. Derive the functional delta\n\nRead the affected flow once: changed entry points, relevant callers and callees,\ntests, contracts, and the base and head versions needed to establish behavior.\nRepository and PR prose can explain intent, but intent is not proof.\n\nFor each distinct outcome, compare the same actor, input, precondition, and\nobservable end state on both sides. Merge multiple implementation hunks that\nproduce one outcome. Omit internal mechanics unless they materially constrain\nthe behavior.\n\nClassify what happened while reasoning:\n\n- **Added:** a capability did not exist and now does.\n- **Fixed:** the old behavior was wrong and now reaches the intended result.\n- **Changed:** valid existing behavior now works differently.\n- **Removed:** a capability or supported path no longer exists.\n- **Breaking:** an existing caller or user must change how they interact.\n- **Unchanged:** a relevant contract remains stable despite the implementation\n  change.\n\nBreaking, security, authorization, data-loss, and compatibility effects must be\nstated explicitly. Preserve uncertainty instead of smoothing over it.\n\n## 3. Separate evidence from inference\n\nLabel the strongest support for each comparison:\n\n- **Observed:** matched before and after runtime evidence using the same setup.\n- **Tested:** a named test or command demonstrates the stated behavior.\n- **Source-derived:** behavior is inferred from the pinned base\u002Fhead source or\n  diff but was not executed.\n- **Stated:** intent comes only from a PR, issue, or user description.\n\nPassing current tests does not prove the before state. A source-derived claim is\nuseful, but it stays a proof gap until observed or tested at the relevant state.\nNever describe an inferred outcome as verified.\n\n## 4. Render only the behavioral comparison\n\nGroup closely related outcomes. Prefer one comparison; use more only when the\ndiff changes independently observable behaviors.\n\n```markdown\n## Before & After\n\n**Before**\n\u003CWhat the actor experienced with the concrete input or precondition.>\n\n**After**\n\u003CWhat that same actor experiences now.>\n\n**Impact**\n\u003CWhy the functional difference matters. Mark breaking behavior here.>\n\n**Unchanged**\n\u003COnly the relevant preserved behavior; omit when none is material.>\n\n**Evidence**\n- \u003CObserved or Tested evidence with the named command\u002Fartifact.>\n- Proof gap: \u003CSource-derived or Stated claim that was not demonstrated.>\n```\n\nDo not add a file inventory, diff stat, code walkthrough, architecture diagram,\nreview findings, screenshots, implementation plan, or next-step menu. Evidence\nmay cite the minimum exact path, test, command, or artifact needed to support a\nclaim; it must not turn into a changelog.\n\nApply the\n[`shared output style`](..\u002Fvs-internal-shared\u002Freferences\u002Foutput-style.md) to the\nrendered comparison.\n\n## Workflow\n\nDirect: emit **Next** only. Composed: return to caller.\n\n**Prev:** branch, PR, commit, or working-tree diff\n**Next:** done\n**Relevant:** `\u002Fvs-recap` for current status\n",{"name":5,"description":7},"master","72448991571c9e5f0e76cccf189b8522d442e6eb","skills\u002Fvs-before-after",1,"https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs","https:\u002F\u002Fgithub.com\u002Fvltansky","2026-11-06 18:47:54",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add vltansky\u002Fvs --skill vs-before-after",{"tool":37,"command":38},"bunx","bunx skills add vltansky\u002Fvs --skill vs-before-after",{"tool":40,"command":41},"pnpm","pnpm dlx skills add vltansky\u002Fvs --skill vs-before-after","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002FSKILL.md",true,[45,51,55,61],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"agents\u002Fopenai.yaml","REFERENCE","参考文档",89,"https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002Fagents\u002Fopenai.yaml",{"path":52,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":53,"sourceHtmlUrl":54},"README.md",503,"https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002FREADME.md",{"path":56,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":59,"sourceHtmlUrl":60},"test\u002Fbefore-after.eval.ts","SCRIPT","脚本",3165,"https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002Ftest\u002Fbefore-after.eval.ts",{"path":62,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":63,"sourceHtmlUrl":64},"test\u002Fbefore-after.static.eval.ts",1987,"https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-before-after\u002Ftest\u002Fbefore-after.static.eval.ts",[66,73,79,84,91,96],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"publishedAt":19},"01M77XSKWFMPKFXM0311QKEJHH","vs-write","Use when asked to write, rewrite, edit, tighten, simplify, or polish prose for clarity, or to put text in STE, ASD-STE100, or controlled language. Produces plain, direct, accessible copy without losing substance or precision.","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-write\u002FSKILL.md",[],[],{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":19},"01M77XSJNX2V560HSKQKQD67KP","vs-fake-verify","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-verify\u002Ftest\u002Ffixtures\u002Fpath-end-state\u002Fstub-rejector\u002FSKILL.md",[],[],{"skillNo":80,"name":75,"nameZh":6,"description":6,"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},"01M77XSHHBEMMYZ6B4PD384NZH","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-verify\u002Ftest\u002Ffixtures\u002Fpath-end-state\u002Fstructure-paste\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":19},"01M77XSE2Y7MW0KP3DTFNEE2E8","vs-verify","Use when asked to verify, prove it works, check completion, or before claiming done. Produces evidence-backed PASS\u002FWARN\u002FFAIL status.","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-verify\u002Ftest\u002Ffixtures\u002Fpath-end-state\u002Fpublished-pair\u002FSKILL.md",[],[],{"skillNo":92,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":19},"01M77XSAXFQXNE6VCRC7275Z0X","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-verify\u002Ftest\u002Ffixtures\u002Fpath-end-state\u002Fphrase-complete-beside\u002FSKILL.md",[],[],{"skillNo":97,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":19},"01M77XS6R0E9X1E5KKSS00WYSS","https:\u002F\u002Fgithub.com\u002Fvltansky\u002Fvs\u002Fblob\u002Fmaster\u002Fskills\u002Fvs-verify\u002FSKILL.md",[],[]]