[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CHWMQGDTH5303AP9M51V06":3,"skill-same:01M6CHWMQGDTH5303AP9M51V06":81},{"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":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":59,"commitSha":60,"skillDirectory":61,"forksCount":62,"repositoryHtmlUrl":63,"repositoryHomepageUrl":64,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":66,"install":67,"resources":80},"01M6CHWMQGDTH5303AP9M51V06","promote",null,"[ADD v0.11.0] Maturity promotion — gap analysis and level-up workflow","MountainUnicorn\u002Fadd","MountainUnicorn","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F199411549?v=4","01M6CHRAWFWD275ANP1S2A0HXC","01M6CHRB0QE1678D913B438SAR",11,"MIT","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Fplugins\u002Fadd\u002Fskills\u002Fpromote\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[5,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"check","task","up","poc","v0","execute","edit","write","read","workflow","grep","Rules","Bash","analysis","beta","alpha","telemetry","2026-11-10 10:12:30",false,"---\ndescription: \"[ADD v0.11.0] Maturity promotion — gap analysis and level-up workflow\"\nargument-hint: \"[--check | --execute] [--target poc|alpha|beta|ga]\"\nallowed-tools: [Read, Write, Edit, Glob, Grep, Bash, AskUserQuestion, Task, TodoWrite]\nreferences: [\"maturity-matrix.md\", \"skill-epilogue.md\", \"rules\u002Ftelemetry.md\"]\n---\n\n# ADD Promote Command v0.11.0\n\nAssess readiness and promote the project's maturity level. Maturity is the master control for all ADD behavior — promotion is intentional, evidence-based, and deliberate.\n\n- **`--check`** (default) — Gap analysis: scan evidence against next level's requirements\n- **`--execute`** — Gap analysis + promotion interview + apply level change\n\n---\n\n## Pre-Flight\n\n1. **Read `.add\u002Fconfig.json`** — extract `maturity.level`, `promoted_from`, `promoted_date`, `next_promotion_criteria`\n   - If not found: abort with \"No ADD project found. Run `\u002Fadd:init` first.\"\n2. **Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fmaturity-matrix.md`** — load cascade matrix + promotion process (source of truth for level requirements)\n3. **Read `docs\u002Fprd.md`** — project context, maturity references\n4. **Read `CLAUDE.md`** — check for maturity references\n\n### Edge Cases\n\n**Already at GA:**\n\"Project is at GA — the highest maturity level. No further promotion available. Run `\u002Fadd:verify` to check compliance.\"\n\n**`--target` below current level:** Trigger demotion flow (see below).\n\n**`--target` skips a level** (e.g., poc → beta):\n\"Cannot skip levels. Progression is sequential: poc → alpha → beta → ga. Next available: {next_level}.\"\n\n**No `--target`:** Default to next level in sequence.\n\n---\n\n## Command: \u002Fpromote --check (default)\n\nScan project evidence and present readiness report. No file modifications.\n\n### Step 1: Determine Target\n\n```\nCurrent maturity: {CURRENT}\nAssessing readiness for: {TARGET}\n```\n\n### Step 2: Evidence Scan\n\nUse Glob, Grep, Bash, Read to gather real data across these categories:\n\n| # | Category | How to Check |\n|---|----------|-------------|\n| 1 | Feature specs | Glob `specs\u002F*.md`, count files, check for acceptance criteria |\n| 2 | Test coverage | Run test command from config `quality.test.unit` with coverage flag. If no test command configured, score as MISSING. If command fails, score as PARTIAL and note the error. |\n| 3 | CI\u002FCD pipeline | Glob `.github\u002Fworkflows\u002F*.yml`, `.gitlab-ci.yml`, `Jenkinsfile` |\n| 4 | PR workflow | `git log --merges --oneline -20` — check for merge commits |\n| 5 | Environments | Read config `environments` — count tiers with non-null URLs |\n| 6 | Conventional commits | `git log --oneline -20` — check `feat:\u002Ffix:\u002Fdocs:` compliance % |\n| 7 | TDD evidence | Compare test vs implementation file timestamps |\n| 8 | Branch protection | Check `.github\u002Fsettings.yml` or `gh api` if available |\n| 9 | Release tags | `git tag -l 'v*'` — check for semver tags |\n| 10 | Quality gates | Check `.pre-commit-config.yaml`, `.husky\u002F`, CI check configs |\n| 11 | Milestones completed | Glob `docs\u002Fmilestones\u002F*.md` — count COMPLETE milestones |\n| 12 | Learnings captured | Read `.add\u002Flearnings.json` — count entries |\n| 13 | PRD depth | Read `docs\u002Fprd.md` — assess completeness for target level |\n| 14 | Stability | `git log --since=\"30 days ago\" --oneline` — check for hotfix-free stability |\n\n### Step 3: Score Readiness\n\nMap evidence to target level requirements. Each category gets a status:\n\n| Status | Icon | Meaning |\n|--------|------|---------|\n| READY | ✅ | Meets target requirement |\n| PARTIAL | ⚠️ | Some evidence, incomplete |\n| MISSING | ❌ | Required but not found |\n| N\u002FA | — | Not required at target level |\n\n**Thresholds:**\n- **POC → Alpha:** 3+ READY (specs for critical paths, some tests, basic quality gates)\n- **Alpha → Beta:** 6+ READY (specs, 50%+ coverage, CI, PR workflow, conventional commits, TDD)\n- **Beta → GA:** 9+ READY (80%+ coverage, protected branches, release tags, 3+ envs, 30-day stability)\n\n**Readiness %:** (READY count \u002F required count for target) × 100\n\n### Step 4: Present Report\n\n```\n╔══════════════════════════════════════════╗\n  MATURITY READINESS: {CURRENT} → {TARGET}\n╚══════════════════════════════════════════╝\n\nReadiness: {PCT}% ({READY}\u002F{REQUIRED} requirements met)\n\n| # | Requirement | Status | Detail |\n|---|-------------|--------|--------|\n| 1 | Feature specs | ✅ | 8 specs in specs\u002F |\n| 2 | Test coverage ≥ {THR}% | ⚠️ | Current: 47% |\n| 3 | CI\u002FCD pipeline | ✅ | GitHub Actions configured |\n| ... | ... | ... | ... |\n\n═══ CASCADE CHANGES AT {TARGET} ═══\n\n| Dimension | Current ({CURRENT}) | After ({TARGET}) |\n|-----------|--------------------|--------------------|\n| Specs Required | {current} | {new} |\n| TDD Enforced | {current} | {new} |\n| Quality Gates | {current} | {new} |\n| Parallel Agents | {current} | {new} |\n| ... | ... | ... |\n\n═══ RECOMMENDATION ═══\n\n{≥80%: \"READY TO PROMOTE — Run \u002Fadd:promote --execute\"}\n{50-79%: \"ADDRESS GAPS FIRST\" + list top gaps + remediation}\n{\u003C50%: \"NOT READY\" + list critical gaps}\n```\n\n---\n\n## Command: \u002Fpromote --execute\n\nFull promotion: gap analysis → gate → interview → apply.\n\n### Step 1: Run Gap Analysis\n\nExecute the full `--check` flow above. Present the report.\n\n### Step 2: Gate Decision\n\n**≥80% readiness:** Proceed to interview.\n\n**50-79% readiness:**\n```\nReadiness: {PCT}% — below recommended threshold (80%).\n\nGaps: {list}\n\nOptions:\n  1. Proceed anyway (gaps tracked as tech debt)\n  2. Cancel and address gaps first\n  3. Create a promotion milestone to close gaps systematically\n```\nAskUserQuestion. Option 1 proceeds with override flag. Option 2 exits. Option 3 suggests `\u002Fadd:milestone --create`.\n\n**\u003C50% readiness:** Block promotion.\n```\nReadiness: {PCT}% — significant gaps remain.\nAddress critical items first, then re-run \u002Fadd:promote --check.\n```\nExit. No override offered — premature promotion cascades strict requirements the project can't meet.\n\n### Step 3: Promotion Interview (3 questions)\n\n**Q1:** \"What drove this promotion? What evidence or milestone makes now the right time?\"\n→ Rationale for changelog and learnings\n\n**Q2:** \"Any areas to temporarily exempt from the new requirements? (e.g., specific quality checks)\"\n→ Default: \"No exemptions.\" If provided, note they should be time-boxed.\n\n**Q3 (if not promoting to GA):** \"What should the criteria be for the NEXT promotion ({next_next_level})?\"\n**Q3 (if promoting to GA):** \"What are your GA stability and SLA commitments?\"\n→ Stored as `next_promotion_criteria`\n\n### Step 4: Apply Promotion\n\n#### 4a. Update `.add\u002Fconfig.json`\n\n```json\n{\n  \"maturity\": {\n    \"level\": \"{TARGET}\",\n    \"promoted_from\": \"{CURRENT}\",\n    \"promoted_date\": \"{YYYY-MM-DD}\",\n    \"next_promotion_criteria\": \"{Q3 answer}\",\n    \"exemptions\": [\"{Q2 answers or empty}\"]\n  }\n}\n```\n\nAlso update maturity-dependent config:\n- `planning.wip_limit` — per cascade matrix\n- `planning.parallel_agents` — per cascade matrix\n- `quality.coverage_threshold` — if target requires higher\n- `quality.mode` — tighten for beta\u002Fga\n\n#### 4b. Update `docs\u002Fprd.md`\n\nSearch for maturity references (grep for current level name), update to new level. Update any \"Current Maturity:\" lines in Section 6.\n\n#### 4c. Update `CLAUDE.md`\n\nGrep for current level name in project CLAUDE.md, update references.\n\n#### 4d. Apply Cascade Changes\n\nThe cascade is mostly automatic via the maturity-loader rule reading the updated config. But explicitly update config thresholds that aren't purely rule-driven:\n\n| Transition | Key Config Changes |\n|-----------|-------------------|\n| POC → Alpha | Enable conventional commits, spec-driven quality |\n| Alpha → Beta | Stricter quality thresholds, TDD enforcement, PR review |\n| Beta → GA | All checks blocking, 2 reviewers, protected branches, release tags |\n\n#### 4e. Changelog Entry\n\nAppend to `CHANGELOG.md` under `[Unreleased]`:\n```markdown\n### Changed\n- Maturity promoted from {CURRENT} to {TARGET} ({DATE})\n  - Readiness: {PCT}%, Rationale: {Q1 summary}\n```\n\nIf `CHANGELOG.md` doesn't exist, create from `${CLAUDE_PLUGIN_ROOT}\u002Ftemplates\u002Fchangelog.md.template`.\n\n#### 4f. Learning Checkpoint\n\nWrite to `.add\u002Flearnings.json`:\n```json\n{\n  \"id\": \"L-{NNN}\",\n  \"date\": \"{YYYY-MM-DD}\",\n  \"checkpoint_type\": \"promotion\",\n  \"category\": \"process\",\n  \"scope\": \"project\",\n  \"title\": \"Maturity promoted: {CURRENT} → {TARGET}\",\n  \"body\": \"Promoted at {PCT}% readiness. Rationale: {Q1}. Exemptions: {Q2}. Next criteria: {Q3}.\",\n  \"tags\": [\"maturity\", \"promotion\", \"{TARGET}\"],\n  \"classified_by\": \"agent\"\n}\n```\n\nRegenerate `.add\u002Flearnings.md` from JSON.\n\n### Step 5: Present Summary\n\n```\n╔══════════════════════════════════════════╗\n  PROMOTED: {CURRENT} → {TARGET}\n╚══════════════════════════════════════════╝\n\nDate: {YYYY-MM-DD} | Readiness: {PCT}%\n\nFiles updated:\n  ✓ .add\u002Fconfig.json\n  ✓ docs\u002Fprd.md\n  ✓ CLAUDE.md\n  ✓ CHANGELOG.md\n  ✓ .add\u002Flearnings.json\n\nKey behavior changes now active:\n  {3-5 most impactful cascade changes}\n\nNext steps:\n  1. Run \u002Fadd:verify to confirm new quality gates pass\n  2. Review cascade changes — they take effect immediately\n  3. Next promotion: {NEXT_NEXT_LEVEL} — {Q3 criteria}\n```\n\n---\n\n## Demotion Flow\n\nTriggered when `--target` is below current level. Rare but valid — the maturity-lifecycle rule acknowledges demotion for pivots or new uncertainty.\n\n### Step 1: Confirm Intent\n\n```\nRequesting maturity DEMOTION: {CURRENT} → {TARGET}\n\nThis relaxes quality requirements. Typically used when:\n  - Major pivot introduces new uncertainty\n  - Project scope changed fundamentally\n\nAre you sure?\n```\n\n### Step 2: Brief Interview (2 questions)\n\n**Q1:** \"What changed that requires demotion?\"\n**Q2:** \"Temporary (re-promote after exploration) or permanent reset?\"\n\n### Step 3: Apply\n\nSame update process as promotion, but:\n- Config thresholds RELAXED to match target level\n- Changelog says \"Demoted\" not \"Promoted\"\n- Learning checkpoint uses `checkpoint_type: \"demotion\"`\n- If temporary: add `maturity.demotion_temporary: true`\n\n---\n\n## Integration\n\n| Skill | Relationship |\n|-------|-------------|\n| `\u002Fadd:cycle --complete` | Has its own promotion check — should reference `\u002Fadd:promote --check` for full analysis |\n| `\u002Fadd:retro` | Phase 11 does promotion assessment — should reference `\u002Fadd:promote` as canonical tool |\n| `\u002Fadd:verify` | Recommended post-promotion to validate new gates pass |\n| `\u002Fadd:init` | Sets initial maturity. Promote handles all subsequent changes. |\n\nEnd-of-skill epilogue: follow `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fskill-epilogue.md` (observation + learning checkpoint + progress tracking). Step 4f already writes the promotion learning entry — do not duplicate it; the epilogue's observation line still applies.\n","# ADD Promote Command v0.11.0\n\nAssess readiness and promote the project's maturity level. Maturity is the master control for all ADD behavior — promotion is intentional, evidence-based, and deliberate.\n\n- **`--check`** (default) — Gap analysis: scan evidence against next level's requirements\n- **`--execute`** — Gap analysis + promotion interview + apply level change\n\n---\n\n## Pre-Flight\n\n1. **Read `.add\u002Fconfig.json`** — extract `maturity.level`, `promoted_from`, `promoted_date`, `next_promotion_criteria`\n   - If not found: abort with \"No ADD project found. Run `\u002Fadd:init` first.\"\n2. **Read `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fmaturity-matrix.md`** — load cascade matrix + promotion process (source of truth for level requirements)\n3. **Read `docs\u002Fprd.md`** — project context, maturity references\n4. **Read `CLAUDE.md`** — check for maturity references\n\n### Edge Cases\n\n**Already at GA:**\n\"Project is at GA — the highest maturity level. No further promotion available. Run `\u002Fadd:verify` to check compliance.\"\n\n**`--target` below current level:** Trigger demotion flow (see below).\n\n**`--target` skips a level** (e.g., poc → beta):\n\"Cannot skip levels. Progression is sequential: poc → alpha → beta → ga. Next available: {next_level}.\"\n\n**No `--target`:** Default to next level in sequence.\n\n---\n\n## Command: \u002Fpromote --check (default)\n\nScan project evidence and present readiness report. No file modifications.\n\n### Step 1: Determine Target\n\n```\nCurrent maturity: {CURRENT}\nAssessing readiness for: {TARGET}\n```\n\n### Step 2: Evidence Scan\n\nUse Glob, Grep, Bash, Read to gather real data across these categories:\n\n| # | Category | How to Check |\n|---|----------|-------------|\n| 1 | Feature specs | Glob `specs\u002F*.md`, count files, check for acceptance criteria |\n| 2 | Test coverage | Run test command from config `quality.test.unit` with coverage flag. If no test command configured, score as MISSING. If command fails, score as PARTIAL and note the error. |\n| 3 | CI\u002FCD pipeline | Glob `.github\u002Fworkflows\u002F*.yml`, `.gitlab-ci.yml`, `Jenkinsfile` |\n| 4 | PR workflow | `git log --merges --oneline -20` — check for merge commits |\n| 5 | Environments | Read config `environments` — count tiers with non-null URLs |\n| 6 | Conventional commits | `git log --oneline -20` — check `feat:\u002Ffix:\u002Fdocs:` compliance % |\n| 7 | TDD evidence | Compare test vs implementation file timestamps |\n| 8 | Branch protection | Check `.github\u002Fsettings.yml` or `gh api` if available |\n| 9 | Release tags | `git tag -l 'v*'` — check for semver tags |\n| 10 | Quality gates | Check `.pre-commit-config.yaml`, `.husky\u002F`, CI check configs |\n| 11 | Milestones completed | Glob `docs\u002Fmilestones\u002F*.md` — count COMPLETE milestones |\n| 12 | Learnings captured | Read `.add\u002Flearnings.json` — count entries |\n| 13 | PRD depth | Read `docs\u002Fprd.md` — assess completeness for target level |\n| 14 | Stability | `git log --since=\"30 days ago\" --oneline` — check for hotfix-free stability |\n\n### Step 3: Score Readiness\n\nMap evidence to target level requirements. Each category gets a status:\n\n| Status | Icon | Meaning |\n|--------|------|---------|\n| READY | ✅ | Meets target requirement |\n| PARTIAL | ⚠️ | Some evidence, incomplete |\n| MISSING | ❌ | Required but not found |\n| N\u002FA | — | Not required at target level |\n\n**Thresholds:**\n- **POC → Alpha:** 3+ READY (specs for critical paths, some tests, basic quality gates)\n- **Alpha → Beta:** 6+ READY (specs, 50%+ coverage, CI, PR workflow, conventional commits, TDD)\n- **Beta → GA:** 9+ READY (80%+ coverage, protected branches, release tags, 3+ envs, 30-day stability)\n\n**Readiness %:** (READY count \u002F required count for target) × 100\n\n### Step 4: Present Report\n\n```\n╔══════════════════════════════════════════╗\n  MATURITY READINESS: {CURRENT} → {TARGET}\n╚══════════════════════════════════════════╝\n\nReadiness: {PCT}% ({READY}\u002F{REQUIRED} requirements met)\n\n| # | Requirement | Status | Detail |\n|---|-------------|--------|--------|\n| 1 | Feature specs | ✅ | 8 specs in specs\u002F |\n| 2 | Test coverage ≥ {THR}% | ⚠️ | Current: 47% |\n| 3 | CI\u002FCD pipeline | ✅ | GitHub Actions configured |\n| ... | ... | ... | ... |\n\n═══ CASCADE CHANGES AT {TARGET} ═══\n\n| Dimension | Current ({CURRENT}) | After ({TARGET}) |\n|-----------|--------------------|--------------------|\n| Specs Required | {current} | {new} |\n| TDD Enforced | {current} | {new} |\n| Quality Gates | {current} | {new} |\n| Parallel Agents | {current} | {new} |\n| ... | ... | ... |\n\n═══ RECOMMENDATION ═══\n\n{≥80%: \"READY TO PROMOTE — Run \u002Fadd:promote --execute\"}\n{50-79%: \"ADDRESS GAPS FIRST\" + list top gaps + remediation}\n{\u003C50%: \"NOT READY\" + list critical gaps}\n```\n\n---\n\n## Command: \u002Fpromote --execute\n\nFull promotion: gap analysis → gate → interview → apply.\n\n### Step 1: Run Gap Analysis\n\nExecute the full `--check` flow above. Present the report.\n\n### Step 2: Gate Decision\n\n**≥80% readiness:** Proceed to interview.\n\n**50-79% readiness:**\n```\nReadiness: {PCT}% — below recommended threshold (80%).\n\nGaps: {list}\n\nOptions:\n  1. Proceed anyway (gaps tracked as tech debt)\n  2. Cancel and address gaps first\n  3. Create a promotion milestone to close gaps systematically\n```\nAskUserQuestion. Option 1 proceeds with override flag. Option 2 exits. Option 3 suggests `\u002Fadd:milestone --create`.\n\n**\u003C50% readiness:** Block promotion.\n```\nReadiness: {PCT}% — significant gaps remain.\nAddress critical items first, then re-run \u002Fadd:promote --check.\n```\nExit. No override offered — premature promotion cascades strict requirements the project can't meet.\n\n### Step 3: Promotion Interview (3 questions)\n\n**Q1:** \"What drove this promotion? What evidence or milestone makes now the right time?\"\n→ Rationale for changelog and learnings\n\n**Q2:** \"Any areas to temporarily exempt from the new requirements? (e.g., specific quality checks)\"\n→ Default: \"No exemptions.\" If provided, note they should be time-boxed.\n\n**Q3 (if not promoting to GA):** \"What should the criteria be for the NEXT promotion ({next_next_level})?\"\n**Q3 (if promoting to GA):** \"What are your GA stability and SLA commitments?\"\n→ Stored as `next_promotion_criteria`\n\n### Step 4: Apply Promotion\n\n#### 4a. Update `.add\u002Fconfig.json`\n\n```json\n{\n  \"maturity\": {\n    \"level\": \"{TARGET}\",\n    \"promoted_from\": \"{CURRENT}\",\n    \"promoted_date\": \"{YYYY-MM-DD}\",\n    \"next_promotion_criteria\": \"{Q3 answer}\",\n    \"exemptions\": [\"{Q2 answers or empty}\"]\n  }\n}\n```\n\nAlso update maturity-dependent config:\n- `planning.wip_limit` — per cascade matrix\n- `planning.parallel_agents` — per cascade matrix\n- `quality.coverage_threshold` — if target requires higher\n- `quality.mode` — tighten for beta\u002Fga\n\n#### 4b. Update `docs\u002Fprd.md`\n\nSearch for maturity references (grep for current level name), update to new level. Update any \"Current Maturity:\" lines in Section 6.\n\n#### 4c. Update `CLAUDE.md`\n\nGrep for current level name in project CLAUDE.md, update references.\n\n#### 4d. Apply Cascade Changes\n\nThe cascade is mostly automatic via the maturity-loader rule reading the updated config. But explicitly update config thresholds that aren't purely rule-driven:\n\n| Transition | Key Config Changes |\n|-----------|-------------------|\n| POC → Alpha | Enable conventional commits, spec-driven quality |\n| Alpha → Beta | Stricter quality thresholds, TDD enforcement, PR review |\n| Beta → GA | All checks blocking, 2 reviewers, protected branches, release tags |\n\n#### 4e. Changelog Entry\n\nAppend to `CHANGELOG.md` under `[Unreleased]`:\n```markdown\n### Changed\n- Maturity promoted from {CURRENT} to {TARGET} ({DATE})\n  - Readiness: {PCT}%, Rationale: {Q1 summary}\n```\n\nIf `CHANGELOG.md` doesn't exist, create from `${CLAUDE_PLUGIN_ROOT}\u002Ftemplates\u002Fchangelog.md.template`.\n\n#### 4f. Learning Checkpoint\n\nWrite to `.add\u002Flearnings.json`:\n```json\n{\n  \"id\": \"L-{NNN}\",\n  \"date\": \"{YYYY-MM-DD}\",\n  \"checkpoint_type\": \"promotion\",\n  \"category\": \"process\",\n  \"scope\": \"project\",\n  \"title\": \"Maturity promoted: {CURRENT} → {TARGET}\",\n  \"body\": \"Promoted at {PCT}% readiness. Rationale: {Q1}. Exemptions: {Q2}. Next criteria: {Q3}.\",\n  \"tags\": [\"maturity\", \"promotion\", \"{TARGET}\"],\n  \"classified_by\": \"agent\"\n}\n```\n\nRegenerate `.add\u002Flearnings.md` from JSON.\n\n### Step 5: Present Summary\n\n```\n╔══════════════════════════════════════════╗\n  PROMOTED: {CURRENT} → {TARGET}\n╚══════════════════════════════════════════╝\n\nDate: {YYYY-MM-DD} | Readiness: {PCT}%\n\nFiles updated:\n  ✓ .add\u002Fconfig.json\n  ✓ docs\u002Fprd.md\n  ✓ CLAUDE.md\n  ✓ CHANGELOG.md\n  ✓ .add\u002Flearnings.json\n\nKey behavior changes now active:\n  {3-5 most impactful cascade changes}\n\nNext steps:\n  1. Run \u002Fadd:verify to confirm new quality gates pass\n  2. Review cascade changes — they take effect immediately\n  3. Next promotion: {NEXT_NEXT_LEVEL} — {Q3 criteria}\n```\n\n---\n\n## Demotion Flow\n\nTriggered when `--target` is below current level. Rare but valid — the maturity-lifecycle rule acknowledges demotion for pivots or new uncertainty.\n\n### Step 1: Confirm Intent\n\n```\nRequesting maturity DEMOTION: {CURRENT} → {TARGET}\n\nThis relaxes quality requirements. Typically used when:\n  - Major pivot introduces new uncertainty\n  - Project scope changed fundamentally\n\nAre you sure?\n```\n\n### Step 2: Brief Interview (2 questions)\n\n**Q1:** \"What changed that requires demotion?\"\n**Q2:** \"Temporary (re-promote after exploration) or permanent reset?\"\n\n### Step 3: Apply\n\nSame update process as promotion, but:\n- Config thresholds RELAXED to match target level\n- Changelog says \"Demoted\" not \"Promoted\"\n- Learning checkpoint uses `checkpoint_type: \"demotion\"`\n- If temporary: add `maturity.demotion_temporary: true`\n\n---\n\n## Integration\n\n| Skill | Relationship |\n|-------|-------------|\n| `\u002Fadd:cycle --complete` | Has its own promotion check — should reference `\u002Fadd:promote --check` for full analysis |\n| `\u002Fadd:retro` | Phase 11 does promotion assessment — should reference `\u002Fadd:promote` as canonical tool |\n| `\u002Fadd:verify` | Recommended post-promotion to validate new gates pass |\n| `\u002Fadd:init` | Sets initial maturity. Promote handles all subsequent changes. |\n\nEnd-of-skill epilogue: follow `${CLAUDE_PLUGIN_ROOT}\u002Freferences\u002Fskill-epilogue.md` (observation + learning checkpoint + progress tracking). Step 4f already writes the promotion learning entry — do not duplicate it; the epilogue's observation line still applies.\n",{"references":45,"description":7,"allowed-tools":49,"argument-hint":58},[46,47,48],"maturity-matrix.md","skill-epilogue.md","rules\u002Ftelemetry.md",[50,51,52,53,54,35,55,56,57],"Read","Write","Edit","Glob","Grep","AskUserQuestion","Task","TodoWrite","[--check | --execute] [--target poc|alpha|beta|ga]","main","e335248c85d50f73919320bc138766eb413c5ee3","plugins\u002Fadd\u002Fskills\u002Fpromote",6,"https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd","https:\u002F\u002Fgetadd.dev","https:\u002F\u002Fgithub.com\u002FMountainUnicorn","2026-10-31 22:03:50",{"source":8,"skillName":5,"commands":68,"prompt":78,"zipAvailable":79},[69,72,75],{"tool":70,"command":71},"npx","npx skills add MountainUnicorn\u002Fadd --skill promote",{"tool":73,"command":74},"bunx","bunx skills add MountainUnicorn\u002Fadd --skill promote",{"tool":76,"command":77},"pnpm","pnpm dlx skills add MountainUnicorn\u002Fadd --skill promote","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Fplugins\u002Fadd\u002Fskills\u002Fpromote\u002FSKILL.md",true,[],[82,90,95,100,109,137],{"skillNo":83,"name":84,"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":85,"categories":86,"keywords":87,"publishedAt":40},"01M6CHXN68ZCGNXE9Q0K2T2RKX","add-verify","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Ftests\u002Fhooks\u002Ffixtures\u002Fdoctor\u002Fmanifest-modified\u002Fskills\u002Fadd-verify\u002FSKILL.md",[],[88,89],"add verify","verify",{"skillNo":91,"name":84,"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":92,"categories":93,"keywords":94,"publishedAt":40},"01M6CHXJY4ZXKTNP0235A9KTNH","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Ftests\u002Fhooks\u002Ffixtures\u002Fdoctor\u002Fmanifest-missing\u002Fskills\u002Fadd-verify\u002FSKILL.md",[],[88,89],{"skillNo":96,"name":84,"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":97,"categories":98,"keywords":99,"publishedAt":40},"01M6CHXG6NV1DBMWT2N6XE5555","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Ftests\u002Fhooks\u002Ffixtures\u002Fdoctor\u002Fhealthy\u002Fskills\u002Fadd-verify\u002FSKILL.md",[],[88,89],{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":40},"01M6CHXDZFPEFBZ79GHP48S1BB","version","[ADD v0.11.0] Show installed version, project version, and upgrade status","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Fplugins\u002Fadd\u002Fskills\u002Fversion\u002FSKILL.md",[],[102,33,107,39,35,34,23,31,27,108],"status","show",{"skillNo":110,"name":89,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":123,"publishedAt":40},"01M6CHXB5XG415PP88E0GACHP8","[ADD v0.11.0] Run quality gates — lint, types, tests, coverage, spec compliance","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Fplugins\u002Fadd\u002Fskills\u002Fverify\u002FSKILL.md",[114,117,118],{"categoryNo":115,"categoryName":116,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000011","运维与部署",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":119,"categoryName":120,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[89,33,31,124,125,27,126,127,34,39,128,129,130,131,132,133,134,35,135,136],"coverage","fix","smoke","gate","spec","quality gates","run","lint","ci","compliance","secrets","learning","quality",{"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":150,"publishedAt":40},"01M6CHX8JF3M3J8BKTBW604D37","ux","[ADD v0.11.0] Iterate on UI\u002FUX design before implementation — wireframes, flow validation, and design sign-off","https:\u002F\u002Fgithub.com\u002FMountainUnicorn\u002Fadd\u002Fblob\u002Fmain\u002Fplugins\u002Fadd\u002Fskills\u002Fux\u002FSKILL.md",[143,146,147],{"categoryNo":144,"categoryName":145,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":148,"categoryName":149,"taxonomyType":121,"taxonomyTypeDesc":122},"01JBSEEDCAT000000000000032","设计师",[139,151,152,153,154,39,128,35,155,34,33,31,30,29,27,156,157,158,159],"ui","file","figma","validation","system","design-system","implementation","flow","design"]