[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GC99B4VWN8W8WDXY3DCVN":3,"skill-same:01M71GC99B4VWN8W8WDXY3DCVN":66},{"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":23,"publishedAt":41,"linkOnly":42,"markdownContent":43,"markdownBody":44,"frontMatter":45,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M71GC99B4VWN8W8WDXY3DCVN","vault-resync",null,"Use when \u002Fvault-resync is invoked in ProjectVault, or when the user asks to resync, repair, or update the vault harness after workflow changes. Audits CLAUDE.md, skill files, README.md, and idea folder structures for drift, then proposes and applies fixes.","Junqing\u002Fproject-vault","Junqing","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F3631684?v=4","01M71GBSJSHPHYN153VT0D6PXX","Jin","01M71GBSKJERAK4MHPGBV75PXS",0,"MIT","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvault-resync\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40],"vault","vault resync","idea","user","update","folder","changes","drift","workflow","when","use","files","README","for","fixes","repair","harness","2026-11-10 10:12:30",false,"---\nname: vault-resync\ndescription: >\n  Use when \u002Fvault-resync is invoked in ProjectVault, or when the user asks to\n  resync, repair, or update the vault harness after workflow changes. Audits\n  CLAUDE.md, skill files, README.md, and idea folder structures for drift, then\n  proposes and applies fixes.\n---\n\n# ProjectVault: Vault Resync Skill\n\nYou are auditing and repairing the ProjectVault harness — CLAUDE.md, skills, README.md, and idea folders — for drift caused by incremental workflow changes.\n\n---\n\n## What \"drift\" means\n\nDrift is any mismatch between:\n- What CLAUDE.md says should exist (triggers, skill names, folder rules, status keys) vs. what actually exists on disk\n- What README.md says about an idea vs. what that idea's `Overview.md` frontmatter says\n- What a skill's frontmatter claims vs. what it does\n- What CLAUDE.md's trigger table references vs. which skill files actually exist\n\n---\n\n## Audit Steps\n\nRun all four audits, then present a single consolidated report before touching anything.\n\n### Audit 1: Skill inventory\n\n1. List all directories under `.claude\u002Fskills\u002F`\n2. For each, check that `SKILL.md` exists and has valid frontmatter (`name`, `description`)\n3. Cross-reference against every skill name mentioned in CLAUDE.md (trigger table, Skill Overrides section, slash command table)\n4. Flag:\n   - Skills referenced in CLAUDE.md that have no matching directory\n   - Skill directories that are not referenced anywhere in CLAUDE.md\n   - Skill `name` fields that don't match their directory name\n\n### Audit 2: README.md vs Overview.md status sync\n\n1. Read `README.md` — parse every row in the Ideas table (slug, status, stack, description)\n2. For each slug, read `ideas\u002F[slug]\u002FOverview.md` frontmatter\n3. Flag any mismatch between the `status` field in README.md and the `status:` frontmatter in Overview.md\n4. Flag any slug in README.md that has no matching folder under `ideas\u002F`\n5. Flag any folder under `ideas\u002F` that has no row in README.md\n\n### Audit 3: Idea folder completeness\n\nFor each idea folder under `ideas\u002F`:\n1. Check which files are present: Overview.md, Stack.md, Architecture.md, Phases.md, Design-Spec.md\n2. Compare against the idea's status — use this matrix to determine what's expected:\n\n| Status | Required | Expected (warn if missing) |\n|--------|----------|----------------------------|\n| Seed | Overview.md | — |\n| Exploring | Overview.md | Stack.md |\n| Designing | Overview.md, Stack.md | Architecture.md, Phases.md |\n| Building | Overview.md, Stack.md, Architecture.md, Phases.md, Design-Spec.md, ProjectInitialize.md | — |\n| Parked \u002F Shipped | Overview.md | — |\n\nFlag missing **required** files as errors. Flag missing **expected** files as warnings.\n\n### Audit 4: CLAUDE.md self-consistency\n\n1. Read CLAUDE.md — check the \"Trigger Phrases\" table and \"Skill Overrides\" section\n2. For each skill name referenced, confirm the skill directory exists\n3. Check that the Status Key in README.md matches the status values used in CLAUDE.md and idea Overview.md files\n4. Flag any trigger phrases pointing to nonexistent skills\n\n---\n\n## Report Format\n\nPresent findings as a structured diff before doing anything. Group by severity:\n\n```\n## Vault Resync Report\n\n### Errors (must fix)\n- [SKILL-MISSING] CLAUDE.md references skill `foo-bar` but .claude\u002Fskills\u002Ffoo-bar\u002F does not exist\n- [STATUS-MISMATCH] README.md says hobby-learning-webapp=Exploring, Overview.md says Designing\n- [FILE-MISSING] ideas\u002Fmy-idea\u002F has status Building but is missing Design-Spec.md\n\n### Warnings (worth reviewing)\n- [SKILL-ORPHAN] .claude\u002Fskills\u002Fold-skill\u002F exists but is not referenced in CLAUDE.md\n- [FILE-MISSING] ideas\u002Fmy-idea\u002F has status Exploring but Stack.md is missing\n\n### OK\n- All trigger phrases resolve to existing skill files\n- README.md row count matches ideas\u002F folder count\n```\n\nAfter presenting the report, ask:\n> \"Which of these do you want me to fix? (all \u002F errors-only \u002F specific items \u002F none)\"\n\nWait for confirmation before making any changes.\n\n---\n\n## Fix Behaviors\n\nOnly apply fixes that were explicitly approved.\n\n| Issue type | Fix action |\n|------------|------------|\n| STATUS-MISMATCH | Ask which is correct (README or Overview), then update the other to match |\n| SKILL-MISSING (referenced but absent) | Ask what the skill should do — do not create it silently |\n| SKILL-ORPHAN (exists but unreferenced) | Ask whether to add a trigger to CLAUDE.md or delete the skill |\n| FILE-MISSING (required) | Warn that the idea folder is in an inconsistent state — do not auto-create files |\n| FILE-MISSING (expected\u002Fwarning) | Note it but do not auto-create |\n| README-MISSING (idea folder has no row) | Offer to add a row from the Overview.md content |\n| README-ROW-DANGLING (row with no folder) | Offer to remove the row |\n\n**Never silently create, delete, or overwrite files.** Always describe what you're about to do and wait for confirmation per fix.\n\n---\n\n## Applying Workflow Changes\n\nIf the user is running vault-resync because they have a new convention or workflow change (not just drift), do this first:\n\n1. Ask: \"What changed? (new skill, new folder rule, new status, trigger phrase update, other)\"\n2. Based on the answer, identify which files need updating:\n   - New skill → create `.claude\u002Fskills\u002F[name]\u002FSKILL.md`, add trigger to CLAUDE.md\n   - New folder rule → update CLAUDE.md's \"Per-Idea Folder Rules\" section\n   - New status → update CLAUDE.md's status key AND README.md's Status Key section\n   - Trigger phrase change → update CLAUDE.md's Trigger Phrases table\n   - Skill rename → update skill directory name, skill `name` frontmatter, and all CLAUDE.md references\n3. Then run the full audit to catch any secondary drift.\n\n---\n\n## End State\n\nAfter all approved fixes are applied:\n> \"Resync complete. [N errors fixed, M warnings noted]. Run \u002Fvault-status to confirm the current state.\"\n","# ProjectVault: Vault Resync Skill\n\nYou are auditing and repairing the ProjectVault harness — CLAUDE.md, skills, README.md, and idea folders — for drift caused by incremental workflow changes.\n\n---\n\n## What \"drift\" means\n\nDrift is any mismatch between:\n- What CLAUDE.md says should exist (triggers, skill names, folder rules, status keys) vs. what actually exists on disk\n- What README.md says about an idea vs. what that idea's `Overview.md` frontmatter says\n- What a skill's frontmatter claims vs. what it does\n- What CLAUDE.md's trigger table references vs. which skill files actually exist\n\n---\n\n## Audit Steps\n\nRun all four audits, then present a single consolidated report before touching anything.\n\n### Audit 1: Skill inventory\n\n1. List all directories under `.claude\u002Fskills\u002F`\n2. For each, check that `SKILL.md` exists and has valid frontmatter (`name`, `description`)\n3. Cross-reference against every skill name mentioned in CLAUDE.md (trigger table, Skill Overrides section, slash command table)\n4. Flag:\n   - Skills referenced in CLAUDE.md that have no matching directory\n   - Skill directories that are not referenced anywhere in CLAUDE.md\n   - Skill `name` fields that don't match their directory name\n\n### Audit 2: README.md vs Overview.md status sync\n\n1. Read `README.md` — parse every row in the Ideas table (slug, status, stack, description)\n2. For each slug, read `ideas\u002F[slug]\u002FOverview.md` frontmatter\n3. Flag any mismatch between the `status` field in README.md and the `status:` frontmatter in Overview.md\n4. Flag any slug in README.md that has no matching folder under `ideas\u002F`\n5. Flag any folder under `ideas\u002F` that has no row in README.md\n\n### Audit 3: Idea folder completeness\n\nFor each idea folder under `ideas\u002F`:\n1. Check which files are present: Overview.md, Stack.md, Architecture.md, Phases.md, Design-Spec.md\n2. Compare against the idea's status — use this matrix to determine what's expected:\n\n| Status | Required | Expected (warn if missing) |\n|--------|----------|----------------------------|\n| Seed | Overview.md | — |\n| Exploring | Overview.md | Stack.md |\n| Designing | Overview.md, Stack.md | Architecture.md, Phases.md |\n| Building | Overview.md, Stack.md, Architecture.md, Phases.md, Design-Spec.md, ProjectInitialize.md | — |\n| Parked \u002F Shipped | Overview.md | — |\n\nFlag missing **required** files as errors. Flag missing **expected** files as warnings.\n\n### Audit 4: CLAUDE.md self-consistency\n\n1. Read CLAUDE.md — check the \"Trigger Phrases\" table and \"Skill Overrides\" section\n2. For each skill name referenced, confirm the skill directory exists\n3. Check that the Status Key in README.md matches the status values used in CLAUDE.md and idea Overview.md files\n4. Flag any trigger phrases pointing to nonexistent skills\n\n---\n\n## Report Format\n\nPresent findings as a structured diff before doing anything. Group by severity:\n\n```\n## Vault Resync Report\n\n### Errors (must fix)\n- [SKILL-MISSING] CLAUDE.md references skill `foo-bar` but .claude\u002Fskills\u002Ffoo-bar\u002F does not exist\n- [STATUS-MISMATCH] README.md says hobby-learning-webapp=Exploring, Overview.md says Designing\n- [FILE-MISSING] ideas\u002Fmy-idea\u002F has status Building but is missing Design-Spec.md\n\n### Warnings (worth reviewing)\n- [SKILL-ORPHAN] .claude\u002Fskills\u002Fold-skill\u002F exists but is not referenced in CLAUDE.md\n- [FILE-MISSING] ideas\u002Fmy-idea\u002F has status Exploring but Stack.md is missing\n\n### OK\n- All trigger phrases resolve to existing skill files\n- README.md row count matches ideas\u002F folder count\n```\n\nAfter presenting the report, ask:\n> \"Which of these do you want me to fix? (all \u002F errors-only \u002F specific items \u002F none)\"\n\nWait for confirmation before making any changes.\n\n---\n\n## Fix Behaviors\n\nOnly apply fixes that were explicitly approved.\n\n| Issue type | Fix action |\n|------------|------------|\n| STATUS-MISMATCH | Ask which is correct (README or Overview), then update the other to match |\n| SKILL-MISSING (referenced but absent) | Ask what the skill should do — do not create it silently |\n| SKILL-ORPHAN (exists but unreferenced) | Ask whether to add a trigger to CLAUDE.md or delete the skill |\n| FILE-MISSING (required) | Warn that the idea folder is in an inconsistent state — do not auto-create files |\n| FILE-MISSING (expected\u002Fwarning) | Note it but do not auto-create |\n| README-MISSING (idea folder has no row) | Offer to add a row from the Overview.md content |\n| README-ROW-DANGLING (row with no folder) | Offer to remove the row |\n\n**Never silently create, delete, or overwrite files.** Always describe what you're about to do and wait for confirmation per fix.\n\n---\n\n## Applying Workflow Changes\n\nIf the user is running vault-resync because they have a new convention or workflow change (not just drift), do this first:\n\n1. Ask: \"What changed? (new skill, new folder rule, new status, trigger phrase update, other)\"\n2. Based on the answer, identify which files need updating:\n   - New skill → create `.claude\u002Fskills\u002F[name]\u002FSKILL.md`, add trigger to CLAUDE.md\n   - New folder rule → update CLAUDE.md's \"Per-Idea Folder Rules\" section\n   - New status → update CLAUDE.md's status key AND README.md's Status Key section\n   - Trigger phrase change → update CLAUDE.md's Trigger Phrases table\n   - Skill rename → update skill directory name, skill `name` frontmatter, and all CLAUDE.md references\n3. Then run the full audit to catch any secondary drift.\n\n---\n\n## End State\n\nAfter all approved fixes are applied:\n> \"Resync complete. [N errors fixed, M warnings noted]. Run \u002Fvault-status to confirm the current state.\"\n",{"name":5,"description":7},"main","c5cfc6189ab5d14e0d8a5ce392f939cdcec18be1",".claude\u002Fskills\u002Fvault-resync","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault","https:\u002F\u002Fgithub.com\u002FJunqing","2026-04-24 04:35:46",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add Junqing\u002Fproject-vault --skill vault-resync",{"tool":58,"command":59},"bunx","bunx skills add Junqing\u002Fproject-vault --skill vault-resync",{"tool":61,"command":62},"pnpm","pnpm dlx skills add Junqing\u002Fproject-vault --skill vault-resync","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvault-resync\u002FSKILL.md",true,[],[67,80,92,111,130,140],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":41},"01M71GCC1NC8BEDF502J5XKN1Z","vault-status","Use when \u002Fvault-status is invoked in ProjectVault. Reads README.md and renders a formatted table of all ideas with their status, stack, and description.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvault-status\u002FSKILL.md",[],[74,24,75,76,77,34,33,78,36,79],"status","vault status","with","stack","ideas","table",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":41},"01M71GC7DJ3K21GWG6BSNW91DW","vault-init","Use when \u002Fvault-init is invoked in ProjectVault. Delegates to the projectvault-init-repo skill with the provided slug argument.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fvault-init\u002FSKILL.md",[],[24,87,88,76,34,89,33,90,91],"vault init","init","argument","delegates","repo",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":41},"01M71GC46S2GW6M3EF4NFJBHQ7","projectvault-rapid-intake","Use when working in ProjectVault and the prompter lists multiple project ideas at once, or uses \u002Fintake. Creates Overview.md stubs (status: Seed) for each idea. Never creates Stack.md, Architecture.md, Phases.md, or Design-Spec.md — only Overview stubs.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fprojectvault-rapid-intake\u002FSKILL.md",[],[99,100,101,102,77,103,104,105,33,34,106,107,78,108,37,109,74,26,110],"intake","projectvault rapid intake","RAPID","overview","at","spec","architecture","only","design","project","seed","never",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":41},"01M71GC1CV7F7RZBH264VP9WB2","projectvault-new-idea","Use when working in ProjectVault and a new project idea is being described or explored. Handles the full brainstorm-to-spec workflow using vault conventions, Stack-Preferences, and Prompter-Profile. Do NOT invoke superpowers:brainstorming in this context.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fprojectvault-new-idea\u002FSKILL.md",[],[118,119,26,120,121,122,104,123,124,24,77,32,33,34,125,126,127,128,108,129],"projectvault new idea","new","conventions","invoke","full","spec workflow","brainstorming","preferences","superpowers","vault conventions","brainstorm","do",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":41},"01M71GBYQ5HWJ3S9T6BNFVB09T","projectvault-init-repo","Use when working in ProjectVault and the prompter uses \u002Fvault-init [slug] or asks to move an idea to a real repo. Reads the idea's design files, generates ProjectInitialize.md, and updates the idea's status to Building.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fprojectvault-init-repo\u002FSKILL.md",[],[91,88,137,138,33,34,35,107,74,139,24,26],"projectvault init repo","updates","move",{"skillNo":141,"name":99,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":41},"01M71GBWS7NR9KRMZGEC3SQYWN","Use when \u002Fintake is invoked in ProjectVault. Delegates to the projectvault-rapid-intake skill for batch idea capture.","https:\u002F\u002Fgithub.com\u002FJunqing\u002Fproject-vault\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fintake\u002FSKILL.md",[],[99,146,26,37,90,33,147,34,101],"batch","capture"]