[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NNHPAH97FCAPR7G0PYXP0D":3,"skill-same:01M6NNHPAH97FCAPR7G0PYXP0D":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":43,"linkOnly":44,"markdownContent":45,"markdownBody":46,"frontMatter":47,"refName":58,"commitSha":59,"skillDirectory":60,"forksCount":61,"repositoryHtmlUrl":62,"repositoryHomepageUrl":6,"ownerHtmlUrl":63,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":64,"install":65,"resources":78},"01M6NNHPAH97FCAPR7G0PYXP0D","revealui-rollup",null,"One-off MASTER_HANDOFF regen. Alias \u002Frollup. Runs the GAP-314 master-handoff-regen workflow (report-first sweep + regen brief; agent reviews then commits). Use when MASTER_HANDOFF is STALE or EXPIRED, or the user asks to roll up handoffs. Never auto-run from \u002Fcheckpoint. Not \u002Fcheckpoint. Not \u002Fcleanup.","revealui-studio\u002Frevskills","revealui-studio","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F338824821?v=4","01M6NNBRBPN7P6MK70FZQZ5RAQ","01M6NNBRG527YFDFHNYKTCDA4Y",2,"MIT","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Fskills\u002Frevealui-rollup\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42],"revealui rollup","revealui","rollup","auto","studio","reviews","gap","alias","up","never","workflow","use","ops","sweep","Bash","commits","checkpoint","first","brief","cleanup","2026-11-10 10:12:30",false,"---\nname: revealui-rollup\ndescription: >\n  One-off MASTER_HANDOFF regen. Alias \u002Frollup. Runs the GAP-314\n  master-handoff-regen workflow (report-first sweep + regen brief; agent\n  reviews then commits). Use when MASTER_HANDOFF is STALE or EXPIRED, or\n  the user asks to roll up handoffs. Never auto-run from \u002Fcheckpoint.\n  Not \u002Fcheckpoint. Not \u002Fcleanup.\nlicense: MIT\nallowed-tools: Bash, Read\nmetadata:\n  author: RevealUI Studio\n  version: \"0.1.0\"\n  website: https:\u002F\u002Frevealui.com\n  related:\n    - revealui-ops\n    - revealui-checkpoint\n    - revealui-cleanup\n---\n\n# Rollup (`\u002Frollup`) — MASTER_HANDOFF regen\n\nThin one-off onto the registered workflow `master-handoff-regen` (`$JV_REPO\u002Fworkflows\u002Fmaster-handoff-regen.yml`). Delegates to `workflow-run.js`. Report-first: the script may sweep aged dated handoffs and print a regen brief; it does not silently rewrite the master body. Agent reviews, then commits on a `.jv` feature branch if a delta landed.\n\nLoad helpers:\n```bash\n. \"$REVEALFLEET_ROOT\u002Frevskills\u002Fscripts\u002Flib\u002Fsession-state.sh\"\n```\n\n## Run\n\n```bash\nnode \"$JV_REPO\u002Fscripts\u002Fworkflow-run.js\" master-handoff-regen\n```\n\n`--dry-run` on the runner prints the plan. The underlying script also accepts `--dry-run` \u002F `--sweep-only` \u002F `--apply-frontmatter` via its own CLI (Tier 2 escape hatch) — this skill stays on the named workflow.\n\n## After the brief\n\n1. Read the printed consolidation brief.\n2. If a sweep moved files or a regen is required, commit **only** what the script changed, on a `chore\u002F` branch from `origin\u002Ftest`, fragments\u002Fderived per `.jv` coord rules.\n3. `gh pr create --base test` with label `merge:merge-commit`. Do not self-merge.\n\n## Where this is wired\n\n| Surface | How |\n|---------|-----|\n| `\u002Fcheckpoint` Step 2c | If staleness is STALE or EXPIRED, list `\u002Frollup` under OUTSTANDING. Do **not** run it inside checkpoint. |\n| `\u002Fops master-handoff-regen` | Same workflow by name |\n\n## Do not\n\n- Do not run this from `\u002Fcheckpoint` (expensive, owner-attended).\n- Do not call `master-handoff-regen.js` from a hook.\n- Do not commit `CURRENT-HANDOFF.md` as part of a rollup unless the script's own contract says so (it does not — rolling fragments stay the write surface).\n- Do not treat this as `\u002Fcleanup` (session residue) or `\u002Fcheckpoint` (session handoff).\n","# Rollup (`\u002Frollup`) — MASTER_HANDOFF regen\n\nThin one-off onto the registered workflow `master-handoff-regen` (`$JV_REPO\u002Fworkflows\u002Fmaster-handoff-regen.yml`). Delegates to `workflow-run.js`. Report-first: the script may sweep aged dated handoffs and print a regen brief; it does not silently rewrite the master body. Agent reviews, then commits on a `.jv` feature branch if a delta landed.\n\nLoad helpers:\n```bash\n. \"$REVEALFLEET_ROOT\u002Frevskills\u002Fscripts\u002Flib\u002Fsession-state.sh\"\n```\n\n## Run\n\n```bash\nnode \"$JV_REPO\u002Fscripts\u002Fworkflow-run.js\" master-handoff-regen\n```\n\n`--dry-run` on the runner prints the plan. The underlying script also accepts `--dry-run` \u002F `--sweep-only` \u002F `--apply-frontmatter` via its own CLI (Tier 2 escape hatch) — this skill stays on the named workflow.\n\n## After the brief\n\n1. Read the printed consolidation brief.\n2. If a sweep moved files or a regen is required, commit **only** what the script changed, on a `chore\u002F` branch from `origin\u002Ftest`, fragments\u002Fderived per `.jv` coord rules.\n3. `gh pr create --base test` with label `merge:merge-commit`. Do not self-merge.\n\n## Where this is wired\n\n| Surface | How |\n|---------|-----|\n| `\u002Fcheckpoint` Step 2c | If staleness is STALE or EXPIRED, list `\u002Frollup` under OUTSTANDING. Do **not** run it inside checkpoint. |\n| `\u002Fops master-handoff-regen` | Same workflow by name |\n\n## Do not\n\n- Do not run this from `\u002Fcheckpoint` (expensive, owner-attended).\n- Do not call `master-handoff-regen.js` from a hook.\n- Do not commit `CURRENT-HANDOFF.md` as part of a rollup unless the script's own contract says so (it does not — rolling fragments stay the write surface).\n- Do not treat this as `\u002Fcleanup` (session residue) or `\u002Fcheckpoint` (session handoff).\n",{"name":5,"license":14,"metadata":48,"description":56,"allowed-tools":57},{"author":49,"related":50,"version":54,"website":55},"RevealUI Studio",[51,52,53],"revealui-ops","revealui-checkpoint","revealui-cleanup","0.1.0","https:\u002F\u002Frevealui.com","One-off MASTER_HANDOFF regen. Alias \u002Frollup. Runs the GAP-314 master-handoff-regen workflow (report-first sweep + regen brief; agent reviews then commits). Use when MASTER_HANDOFF is STALE or EXPIRED, or the user asks to roll up handoffs. Never auto-run from \u002Fcheckpoint. Not \u002Fcheckpoint. Not \u002Fcleanup.\n","Bash, Read","test","2b46ce0cfb27f77a7b78cfb49b0b004e2072b7ba","skills\u002Frevealui-rollup",0,"https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills","https:\u002F\u002Fgithub.com\u002Frevealui-studio","2026-11-11 23:29:48",{"source":8,"skillName":5,"commands":66,"prompt":76,"zipAvailable":77},[67,70,73],{"tool":68,"command":69},"npx","npx skills add revealui-studio\u002Frevskills --skill revealui-rollup",{"tool":71,"command":72},"bunx","bunx skills add revealui-studio\u002Frevskills --skill revealui-rollup",{"tool":74,"command":75},"pnpm","pnpm dlx skills add revealui-studio\u002Frevskills --skill revealui-rollup","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Fskills\u002Frevealui-rollup\u002FSKILL.md",true,[],[80,102,114,128,157,192],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":43},"01M6NNN0QCBBPEW3V3C4SBETRZ","good-skill","A minimal valid skill fixture used to prove the skills-lint and plugin-lint validators accept well formed input. Covers frontmatter shape only.","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Ftest\u002Ffixtures\u002Fskills\u002Fgood-skill\u002FSKILL.md",[86],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[88,89,90,91,92,93,94,95,96,97,98,99,100,101],"good","good skill","valid skill","valid","plugin","lint","only","shape","minimal","fixture","input","well formed","frontmatter","skill fixture",{"skillNo":103,"name":104,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":108,"publishedAt":43},"01M6NNMY4GWFD65V1Q2W5YC465","bad-skill-missing-field","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Ftest\u002Ffixtures\u002Fskills\u002Fbad-skill-missing-field\u002FSKILL.md",[107],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[109,110,111,112,113],"bad","missing","missing field","bad skill missing field","bad skill",{"skillNo":115,"name":116,"nameZh":6,"description":117,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":118,"categories":119,"keywords":121,"publishedAt":43},"01M6NNMF7WN6C308H8CGJVRBCB","bad-skill-awk","Fixture skill whose fenced shell block violates lint-skill.awk. skills-lint must reject it.","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Ftest\u002Ffixtures\u002Fskills\u002Fbad-skill-awk\u002FSKILL.md",[120],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},[122,123,109,113,93,124,125,126,97,127],"bad skill awk","awk","shell","block","fixture skill","it",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":43},"01M6NNMB2BYCM9J8GVW3TJ8YA7","yjs-collaboration","Yjs CRDT collaboration patterns for real-time and offline-first editing. Use when building collaborative documents, shared scratchpads, or multi-user editing. Covers Y.Doc, Y.Map, Y.Array, Y.Text, state encoding, structured patches, server-side document manipulation, and conflict-free merge semantics.","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Fskills\u002Fyjs-collaboration\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",[138,139,140,141,27,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156],"yjs","yjs collaboration","collaboration","for","free","server-side","conflict","shared","time","map","patterns","read","server","doc","real-time","offline","documents","merge","text",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":174,"publishedAt":43},"01M6NNM6VE7WE8ZAWQFS4AZE1P","vitest-testing","Vitest testing patterns for production TypeScript projects. Use when writing tests, fixing test failures, configuring coverage, mocking modules, debugging flaky tests, or setting up Vitest in a monorepo. Covers Vitest 3+, vi.mock, vi.fn, React Testing Library, PGlite in-memory PostgreSQL, pool forks, maxWorkers, and hookTimeout.","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Fskills\u002Fvitest-testing\u002FSKILL.md",[163,166,169],{"categoryNo":164,"categoryName":165,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":167,"categoryName":168,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":170,"categoryName":171,"taxonomyType":172,"taxonomyTypeDesc":173},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[175,176,177,178,179,180,181,182,141,183,184,185,186,187,31,34,188,189,190,191],"vitest testing","testing","vitest","debugging","memory","writing","testing library","mock","react testing library","mocking","tests","react testing","modules","coverage","monorepo","projects","testing patterns",{"skillNo":193,"name":194,"nameZh":6,"description":195,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":196,"categories":197,"keywords":198,"publishedAt":43},"01M6NNKSJ6TJBVPDN3YJHK5B70","tailwind-v4","Tailwind CSS v4 patterns, CSS-first configuration, and v3 migration guide. Use when writing styles, configuring @theme variables, creating components with CVA, migrating from tailwind.config.js, or using container queries, dark mode, and new v4 utility syntax. Covers @import tailwindcss, custom properties, oklch colors, and clsx.","https:\u002F\u002Fgithub.com\u002Frevealui-studio\u002Frevskills\u002Fblob\u002Ftest\u002Fskills\u002Ftailwind-v4\u002FSKILL.md",[],[199,200,201,202,203,204,27,205,206,207,208,209,210,211,212,34,213,214,215,180],"tailwind v4","Tailwind","utility","dark","custom","mode","Variables","with","theme","import","dark mode","v3","queries","container","components","tailwindcss","css"]