[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FNTC4S4PEQPR5XD0FDMGT9":3,"skill-same:01M6FNTC4S4PEQPR5XD0FDMGT9":61},{"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":17,"publishedAt":33,"linkOnly":34,"markdownContent":35,"markdownBody":36,"frontMatter":37,"refName":41,"commitSha":42,"skillDirectory":43,"forksCount":44,"repositoryHtmlUrl":45,"repositoryHomepageUrl":6,"ownerHtmlUrl":46,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":47,"install":48,"resources":60},"01M6FNTC4S4PEQPR5XD0FDMGT9","pp-progress",null,"Use when checking specification progress, review scores, translation sync status, or determining the next pipeline step.","ohmyhotelco\u002Fhare-cc-plugins","ohmyhotelco","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F258133233?v=4","01M6CR4HP2N9F9ZWNX1KRHQ2W1","01M6CR4HSJC5J80RVQMD5K9QRN",2,"MIT","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-progress\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32],"progress","pp","pp progress","review","sync","status","pipeline","grep","read","use","specification","translation","next","feature","name","2026-11-10 10:12:30",false,"---\nname: pp-progress\ndescription: Use when checking specification progress, review scores, translation sync status, or determining the next pipeline step.\nargument-hint: \"[feature-name]\"\nuser-invocable: true\nallowed-tools: Read, Glob, Grep\n---\n\n# Specification Status\n\nShow status for: **$ARGUMENTS**\n\n## Instructions\n\n### Step 0: Read Configuration\n\n1. Read `.claude\u002Fplanning-plugin.json` from the current project directory\n2. If the file does not exist, stop with a guidance message:\n   > \"Planning Plugin is not configured for this project. Run `\u002Fplanning-plugin:pp-init` to set up.\"\n3. Extract `workingLanguage` (default: `\"en\"` if field is absent)\n4. Extract `supportedLanguages` (default: `[\"en\", \"ko\", \"vi\"]`)\n5. Language name mapping: `en` = English, `ko` = Korean, `vi` = Vietnamese\n\n**Communication language**: All user-facing output in this skill (summaries, questions, feedback presentations, next-step guidance) must be in {workingLanguage_name}.\n\n### If a feature name is provided:\n\n1. Read the progress file at `docs\u002Fspecs\u002F{feature}\u002F.progress\u002F{feature}.json`\n2. If the progress file contains `workingLanguage`, use that value (ignore `planning-plugin.json` for existing specs)\n3. Determine target languages: `supportedLanguages` minus the spec's `workingLanguage`\n4. Display:\n\n```\nFeature: {feature}\nStatus: {status}\nWorking Language: {workingLanguage_name}\nCurrent Round: {currentRound} (if reviewCycleStart > 0, append: \" — cycle started at round {reviewCycleStart + 1}\")\n\nReview History:\n┌───────┬─────────────────┬──────────────────┬──────────────────┐\n│ Round │ Planner Score   │ Tester Score     │ Key Decisions    │\n├───────┼─────────────────┼──────────────────┼──────────────────┤\n│   1   │ {score}\u002F10      │ {score}\u002F10       │ {decisions}      │\n└───────┴─────────────────┴──────────────────┴──────────────────┘\n\nTranslation Status:\n  {target_lang_1_name} ({target_lang_1}):  {synced ? \"Synced\" : \"Out of sync\"} — Last synced: {timestamp}\n  {target_lang_2_name} ({target_lang_2}):  {synced ? \"Synced\" : \"Out of sync\"} — Last synced: {timestamp}\n\nDesign Status: (only display this section if a `design` field exists in the progress file)\n  DSL:       {status} — {screenCount} screens — {generatedAt}\n  Stitch:    {status} — {screenCount} screens (if screenCount exists) — {generatedAt}\n  Prototype: {status} — {path} — Bundle: {bundleStatus: \"current\" → \"up to date\", \"stale\" → \"STALE\", absent → omit} — {generatedAt}\n\nStitch status display mapping:\n  \"completed\"   → \"completed\"\n  \"stale\"       → \"STALE (run \u002Fplanning-plugin:pp-sync-stitch or \u002Fplanning-plugin:pp-design --stage=stitch)\"\n  \"skipped\"     → \"skipped\"\n  \"pending\"     → omit entire Stitch line\n  \"in_progress\" → \"in progress\"\n\nDesign System: (only display this section if a `designSystem` field exists in the progress file)\n  Status: {status} — Domain: {domain} — {generatedAt}\n\nNotion Sync: (only display this section if a `notion` field exists in the progress file)\n  {lang_name} ({lang}): {syncStatus_display} — {parentPageUrl} — Last synced: {lastSyncedAt}\n  syncStatus display mapping:\n    \"synced\"  → \"✓ Synced\"\n    \"syncing\" → \"⚠ INTERRUPTED\"\n    \"stale\"   → \"⚠ STALE\"\n\nImplementation: (only display this section if an `implementation` field exists in the progress file)\n  Status: {status}\n  Verification: {pass\u002Ffail\u002F—}\n  Review: {pass\u002Ffail\u002F—}\n\nOpen Questions: {count from {feature}-spec.md's Open Questions section}\n```\n\n5. If there are unresolved issues from the latest review round, list them\n\n### If no feature name is provided:\n\n1. Scan `docs\u002Fspecs\u002F*\u002F` for all feature directories. **Skip `_shared`** — it is a pseudo-feature for shared layouts and has no progress file.\n2. Read each progress file\n3. For each spec, determine its target languages from its `workingLanguage`\n4. Display a summary table with dynamic translation columns based on target languages:\n\n```\nSpecifications Overview:\n┌──────────────────┬────────────┬───────┬─────────┬─────────┬────────────────────┬───────────┬───────────┐\n│ Feature          │ Status     │ Round │ Planner │ Tester  │ Translated         │ Design    │ Notion    │\n├──────────────────┼────────────┼───────┼─────────┼─────────┼────────────────────┼───────────┼───────────┤\n│ social-login     │ reviewing  │   2   │  7\u002F10   │  6\u002F10   │ ko✓ vi✓            │ —         │ en✓ ko✓   │\n│ user-profile     │ finalized  │   3   │  9\u002F10   │  8\u002F10   │ en✓ vi✓            │ ✓ DSL+Pro │ en⚠ ko✓  │\n│ notifications    │ drafting   │   0   │   —     │   —     │ ko✗ vi✗            │ —         │ —         │\n└──────────────────┴────────────┴───────┴─────────┴─────────┴────────────────────┴───────────┴───────────┘\n```\n\nNotion column uses per-language status symbols:\n- `✓` = synced\n- `⚠` = stale or interrupted (needs re-sync)\n- `—` = no Notion sync configured\n\n5. If no specs exist yet, display:\n   > No specifications found. Run `\u002Fplanning-plugin:pp-spec \"feature description\"` to create one.\n","# Specification Status\n\nShow status for: **$ARGUMENTS**\n\n## Instructions\n\n### Step 0: Read Configuration\n\n1. Read `.claude\u002Fplanning-plugin.json` from the current project directory\n2. If the file does not exist, stop with a guidance message:\n   > \"Planning Plugin is not configured for this project. Run `\u002Fplanning-plugin:pp-init` to set up.\"\n3. Extract `workingLanguage` (default: `\"en\"` if field is absent)\n4. Extract `supportedLanguages` (default: `[\"en\", \"ko\", \"vi\"]`)\n5. Language name mapping: `en` = English, `ko` = Korean, `vi` = Vietnamese\n\n**Communication language**: All user-facing output in this skill (summaries, questions, feedback presentations, next-step guidance) must be in {workingLanguage_name}.\n\n### If a feature name is provided:\n\n1. Read the progress file at `docs\u002Fspecs\u002F{feature}\u002F.progress\u002F{feature}.json`\n2. If the progress file contains `workingLanguage`, use that value (ignore `planning-plugin.json` for existing specs)\n3. Determine target languages: `supportedLanguages` minus the spec's `workingLanguage`\n4. Display:\n\n```\nFeature: {feature}\nStatus: {status}\nWorking Language: {workingLanguage_name}\nCurrent Round: {currentRound} (if reviewCycleStart > 0, append: \" — cycle started at round {reviewCycleStart + 1}\")\n\nReview History:\n┌───────┬─────────────────┬──────────────────┬──────────────────┐\n│ Round │ Planner Score   │ Tester Score     │ Key Decisions    │\n├───────┼─────────────────┼──────────────────┼──────────────────┤\n│   1   │ {score}\u002F10      │ {score}\u002F10       │ {decisions}      │\n└───────┴─────────────────┴──────────────────┴──────────────────┘\n\nTranslation Status:\n  {target_lang_1_name} ({target_lang_1}):  {synced ? \"Synced\" : \"Out of sync\"} — Last synced: {timestamp}\n  {target_lang_2_name} ({target_lang_2}):  {synced ? \"Synced\" : \"Out of sync\"} — Last synced: {timestamp}\n\nDesign Status: (only display this section if a `design` field exists in the progress file)\n  DSL:       {status} — {screenCount} screens — {generatedAt}\n  Stitch:    {status} — {screenCount} screens (if screenCount exists) — {generatedAt}\n  Prototype: {status} — {path} — Bundle: {bundleStatus: \"current\" → \"up to date\", \"stale\" → \"STALE\", absent → omit} — {generatedAt}\n\nStitch status display mapping:\n  \"completed\"   → \"completed\"\n  \"stale\"       → \"STALE (run \u002Fplanning-plugin:pp-sync-stitch or \u002Fplanning-plugin:pp-design --stage=stitch)\"\n  \"skipped\"     → \"skipped\"\n  \"pending\"     → omit entire Stitch line\n  \"in_progress\" → \"in progress\"\n\nDesign System: (only display this section if a `designSystem` field exists in the progress file)\n  Status: {status} — Domain: {domain} — {generatedAt}\n\nNotion Sync: (only display this section if a `notion` field exists in the progress file)\n  {lang_name} ({lang}): {syncStatus_display} — {parentPageUrl} — Last synced: {lastSyncedAt}\n  syncStatus display mapping:\n    \"synced\"  → \"✓ Synced\"\n    \"syncing\" → \"⚠ INTERRUPTED\"\n    \"stale\"   → \"⚠ STALE\"\n\nImplementation: (only display this section if an `implementation` field exists in the progress file)\n  Status: {status}\n  Verification: {pass\u002Ffail\u002F—}\n  Review: {pass\u002Ffail\u002F—}\n\nOpen Questions: {count from {feature}-spec.md's Open Questions section}\n```\n\n5. If there are unresolved issues from the latest review round, list them\n\n### If no feature name is provided:\n\n1. Scan `docs\u002Fspecs\u002F*\u002F` for all feature directories. **Skip `_shared`** — it is a pseudo-feature for shared layouts and has no progress file.\n2. Read each progress file\n3. For each spec, determine its target languages from its `workingLanguage`\n4. Display a summary table with dynamic translation columns based on target languages:\n\n```\nSpecifications Overview:\n┌──────────────────┬────────────┬───────┬─────────┬─────────┬────────────────────┬───────────┬───────────┐\n│ Feature          │ Status     │ Round │ Planner │ Tester  │ Translated         │ Design    │ Notion    │\n├──────────────────┼────────────┼───────┼─────────┼─────────┼────────────────────┼───────────┼───────────┤\n│ social-login     │ reviewing  │   2   │  7\u002F10   │  6\u002F10   │ ko✓ vi✓            │ —         │ en✓ ko✓   │\n│ user-profile     │ finalized  │   3   │  9\u002F10   │  8\u002F10   │ en✓ vi✓            │ ✓ DSL+Pro │ en⚠ ko✓  │\n│ notifications    │ drafting   │   0   │   —     │   —     │ ko✗ vi✗            │ —         │ —         │\n└──────────────────┴────────────┴───────┴─────────┴─────────┴────────────────────┴───────────┴───────────┘\n```\n\nNotion column uses per-language status symbols:\n- `✓` = synced\n- `⚠` = stale or interrupted (needs re-sync)\n- `—` = no Notion sync configured\n\n5. If no specs exist yet, display:\n   > No specifications found. Run `\u002Fplanning-plugin:pp-spec \"feature description\"` to create one.\n",{"name":5,"description":7,"allowed-tools":38,"argument-hint":39,"user-invocable":40},"Read, Glob, Grep","[feature-name]",true,"main","99f07e592261c66756a2927d0440fc5fef950507","planning-plugin\u002Fskills\u002Fpp-progress",0,"https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins","https:\u002F\u002Fgithub.com\u002Fohmyhotelco","2026-11-11 08:26:27",{"source":8,"skillName":5,"commands":49,"prompt":59,"zipAvailable":40},[50,53,56],{"tool":51,"command":52},"npx","npx skills add ohmyhotelco\u002Fhare-cc-plugins --skill pp-progress",{"tool":54,"command":55},"bunx","bunx skills add ohmyhotelco\u002Fhare-cc-plugins --skill pp-progress",{"tool":57,"command":58},"pnpm","pnpm dlx skills add ohmyhotelco\u002Fhare-cc-plugins --skill pp-progress","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-progress\u002FSKILL.md",[],[62,87,113,137,153,174],{"skillNo":63,"name":64,"nameZh":6,"description":65,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":68,"publishedAt":33},"01M6M5QVXQNQMJBP1JZP9T440T","hp-shared","Shared conventions for every homepage-plugin agent and skill — stack, code conventions, state-file writes, check commands and how to report them. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fhomepage-plugin\u002Fskills\u002Fhp-shared\u002FSKILL.md",[],[69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86],"shared","hp shared","state","stack","plugin","how","for","report","code conventions","commands","how to","conventions","false","frontmatter","file","code","hand","check",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":101,"publishedAt":33},"01M6M5PZTN1M0G4AHJV08VF1HV","fe-shared","Shared conventions for every frontend-react-plugin agent and skill — code conventions, state files and locks, accepted deviations, design principles, build working directory, router-mode command matrix, TypeScript check. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Ffrontend-react-plugin\u002Fskills\u002Ffe-shared\u002FSKILL.md",[93,98],{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":99,"categoryName":100,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000015","视觉设计",[69,102,75,103,77,104,105,106,107,81,84,85,108,86,109,71,73,110,111,112],"fe shared","mode","frontend","design","design principles","files","react","router","principles","command","build",{"skillNo":114,"name":115,"nameZh":6,"description":116,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":117,"categories":118,"keywords":125,"publishedAt":33},"01M6M5GAW7ZZ3580DVCMH51SFQ","be-spring-shared","Shared conventions for every backend-springboot-plugin agent and skill — tech stack, CQRS architecture, naming, coding standards, TDD, commit and build rules, state files. Preloaded into agents through their `skills:` frontmatter; not meant to be invoked by hand.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fbackend-springboot-plugin\u002Fskills\u002Fbe-spring-shared\u002FSKILL.md",[119,122],{"categoryNo":120,"categoryName":121,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":123,"categoryName":124,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000023","Skill与智能体开发",[69,126,127,107,81,128,129,85,72,130,82,131,132,133,75,134,135,71,73,136],"spring","be spring shared","commit","architecture","coding standards","coding","standards","tech","Rules","cqrs","naming",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":143,"publishedAt":33},"01M6FNV58QMW8K71SA9FGTXMF4","pp-translate","Use after directly editing the working language spec to sync changes to other supported languages.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-translate\u002FSKILL.md",[],[19,144,145,31,32,146,26,147,148,149,22,27,83,150,151,152],"pp translate","translate","editing","spec","write","edit","language","true","changes",{"skillNo":154,"name":155,"nameZh":6,"description":156,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":157,"categories":158,"keywords":160,"publishedAt":33},"01M6FNV0PGRKR2MW0AEPS6XP0Q","pp-sync-stitch","Use when wireframes were manually edited on the Stitch website and need to be re-fetched to the local project.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-sync-stitch\u002FSKILL.md",[159],{"categoryNo":123,"categoryName":124,"taxonomyType":96,"taxonomyTypeDesc":97},[161,19,162,22,163,164,31,165,166,167,168,27,169,170,171,172,173,32,26,151],"pp sync stitch","stitch","projects","get","project","re","local","MCP","Bash","id","wireframes","website","screen",{"skillNo":175,"name":176,"nameZh":6,"description":177,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":178,"categories":179,"keywords":181,"publishedAt":33},"01M6FNTWW2KHS9XRAR72X33G0B","pp-sync-notion","Use when a specification needs to be published or re-synced to Notion after finalization or manual edits.","https:\u002F\u002Fgithub.com\u002Fohmyhotelco\u002Fhare-cc-plugins\u002Fblob\u002Fmain\u002Fplanning-plugin\u002Fskills\u002Fpp-sync-notion\u002FSKILL.md",[180],{"categoryNo":123,"categoryName":124,"taxonomyType":96,"taxonomyTypeDesc":97},[19,182,22,183,31,166,184,185,168,27,28,32,26,148,149,25,151],"notion","pp sync notion","search","manual"]