[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754PCVJ734ARQ8MZRGDRF9K":3,"skill-same:01M754PCVJ734ARQ8MZRGDRF9K":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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":33,"repositoryHtmlUrl":34,"repositoryHomepageUrl":6,"ownerHtmlUrl":35,"ownerBlogUrl":36,"ownerDescription":37,"updatedAt":38,"install":39,"resources":51},"01M754PCVJ734ARQ8MZRGDRF9K","x-implement-epic",null,"Thin orchestrator (~460 lines — story-0049-0018 refactor) that drives an epic end-to-end via 6 delegated phases: Phase 0 (args via x-internal-normalize-args), Phase 1 (load+plan via x-internal-build-epic-plan), Phase 2 (epic branch via x-internal-ensure-epic-branch), Phase 3 (sequential-by-default story loop via x-implement-story), Phase 4 (integrity gate + report via x-internal-verify-epic-integrity + x-internal-write-report), Phase 5 (final PR epic\u002FXXXX → develop via x-merge-branches + x-create-pr). Defaults flipped by EPIC-0049: sequential execution (opt-in parallel via --parallel), auto-merge of story PRs into epic\u002FXXXX (target changed from develop). Legacy EPIC-0042 behavior preserved under --legacy-flow (auto-detected via execution-state.json flowVersion=1). Zero inline git\u002Fgh\u002Fjq\u002Fmvn calls — orchestrator uses only Read\u002FGlob + Skill.","review-bench\u002Federcnj_ia-dev-environment","review-bench","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F286778065?v=4","01M7517F9NTEPDZDAXJBR30FWT","ReviewBench","01M7517FAC9F4P7TGWCNJ8VYVW",0,"MIT","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: x-implement-epic\nmodel: sonnet\ndescription: \"Thin orchestrator (~460 lines — story-0049-0018 refactor) that drives an epic end-to-end via 6 delegated phases: Phase 0 (args via x-internal-normalize-args), Phase 1 (load+plan via x-internal-build-epic-plan), Phase 2 (epic branch via x-internal-ensure-epic-branch), Phase 3 (sequential-by-default story loop via x-implement-story), Phase 4 (integrity gate + report via x-internal-verify-epic-integrity + x-internal-write-report), Phase 5 (final PR epic\u002FXXXX → develop via x-merge-branches + x-create-pr). Defaults flipped by EPIC-0049: sequential execution (opt-in parallel via --parallel), auto-merge of story PRs into epic\u002FXXXX (target changed from develop). Legacy EPIC-0042 behavior preserved under --legacy-flow (auto-detected via execution-state.json flowVersion=1). Zero inline git\u002Fgh\u002Fjq\u002Fmvn calls — orchestrator uses only Read\u002FGlob + Skill.\"\nuser-invocable: true\nallowed-tools: Read, Write, Glob, Skill, Agent, AskUserQuestion, TaskCreate, TaskUpdate\nargument-hint: \"[EPIC-ID] [--parallel] [--legacy-flow] [--phase N] [--story story-XXXX-YYYY] [--resume] [--dry-run] [--skip-review] [--auto-merge-strategy merge|squash|rebase] [--strict-overlap] [--non-interactive] [--skip-pr-comments] [--revert-on-failure] [--skip-smoke]\"\ncontext-budget: medium\nrequires-capabilities: []\n---\n\n## Global Output Policy\n\n- **Language**: English ONLY.\n- **Tone**: Technical, Direct, and Concise.\n- **Efficiency**: Remove all conversational fillers and greetings to save tokens.\n\n## Triggers\n\n```\n\u002Fx-implement-epic 0049                  — full run (sequential + auto-merge into epic\u002F0049)\n\u002Fx-implement-epic 0049 --parallel       — parallel story execution via worktrees\n\u002Fx-implement-epic 0049 --legacy-flow    — EPIC-0042 behavior (stories → develop, no final PR)\n\u002Fx-implement-epic 0049 --resume         — continue from execution-state.json\n\u002Fx-implement-epic 0049 --story story-0049-0007  — single story in isolation\n\u002Fx-implement-epic 0049 --dry-run        — generate execution plan only, no dispatch\n```\n\n## Parameters\n\n| Flag | Type | Default | Description |\n|------|------|---------|-------------|\n| `EPIC-ID` | String (4-digit) | — | Positional, required. |\n| `--parallel` | Boolean | `false` | Opt-in parallel via worktrees. Mutually exclusive with `--legacy-flow`. |\n| `--legacy-flow` | Boolean | `false` | Force EPIC-0042: stories → develop; Phase 2 and Phase 5 become no-ops. Auto-set when `flowVersion=1`. |\n| `--phase N` | Integer | — | Execute only phase N stories. Mutually exclusive with `--story`. |\n| `--story ID` | String | — | Execute a single story. Mutually exclusive with `--phase`. |\n| `--resume` | Boolean | `false` | Continue from checkpoint. Auto-detects `flowVersion`. |\n| `--dry-run` | Boolean | `false` | Generate execution plan; exit after Phase 1. |\n| `--skip-review` | Boolean | `false` | Propagated to `x-implement-story` — skips specialist\u002FTL reviews. |\n| `--auto-merge-strategy` | Enum | `merge` | Story-PR auto-merge strategy: `merge\\|squash\\|rebase`. |\n| `--interactive` | Boolean | `false` | Opt-in to 3-option menus (PROCEED\u002FFIX-PR\u002FABORT) at each gate. Default: non-interactive (Rule 20 EPIC-0061). |\n| `--non-interactive` | Boolean | **DEPRECATED** | Was opt-in; now equals default. Emits deprecation WARN. Removed in 2 releases. |\n| `--skip-pr-comments` | Boolean | `false` | Skip Phase 4b post-gate PR-comment remediation pass. |\n| `--revert-on-failure` | Boolean | `false` | On integrity-gate failure, revert last story merge instead of remediation agent. |\n| `--skip-smoke` | Boolean | `false` | Bypass epic smoke gate (advisory; emergency only). |\n\nDeprecated (still parsed, warn-once): `--sequential`, `--auto-merge`, `--interactive-merge`, `--manual-batch-approval`, `--single-pr`, `--task-tracking`, `--dry-run-only-comments`, `--auto-approve-pr` (propagated as-is).\n\n## Output Contract\n\n| Field | Description |\n|-------|-------------|\n| `epicId` | 4-digit zero-padded epic identifier |\n| `epicBranch` | `epic\u002FXXXX` (v2) or `develop` (legacy) |\n| `flowVersion` | `\"2\"` (default) or `\"1\"` (legacy) |\n| `phasesExecuted` | List of `{name, durationSec, status}` per phase |\n| `storiesExecuted` | List of `{id, status, prNumber, prUrl}` per dispatched story |\n| `finalPrUrl\u002FNumber` | Final PR `epic\u002FXXXX → develop`; null when legacy |\n| `integrityGatePassed` | Phase 4 gate `passed` value |\n| `coverageLine\u002FBranch` | Filtered coverage from integrity gate envelope |\n| `reportsDir` | `ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002F` |\n\n**Delegation Map (RULE-005 — zero inline shell invocations):**\n\n| Concern | Skill | Phase |\n|---------|-------|-------|\n| Args parsing | `x-internal-normalize-args` | 0 |\n| DAG + execution plan | `x-internal-build-epic-plan` | 1 |\n| `epic\u002F\u003CID>` branch | `x-internal-ensure-epic-branch` | 2 |\n| Per-story TDD + PR | `x-implement-story` | 3 |\n| Integrity gate + report | `x-internal-verify-epic-integrity` + `x-internal-write-report` | 4 |\n| Develop sync + final PR | `x-merge-branches` + `x-create-pr` | 5 |\n| Status mutations | `x-internal-update-status` | all |\n| Post-gate remediation | `x-fix-epic-pr` | 4b (optional) |\n\n**Workflow:** Phase 0 (Args) → Phase 1 (Load & Plan) → Phase 2 (Branch Setup, skipped for legacy) → Phase 3 (Story Loop) → Phase 4 (Integrity Gate) → Phase 5 (Final PR, skipped for legacy).\n\n## Phase 0 — Args\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-0-Args`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-0-Args\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase0TaskId, status: \"completed\")` after args normalization):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 0 - Args\", activeForm: \"Normalizing args and detecting flow version\")\n\nInvoke args normalizer and resolve epicId, flowVersion, flags:\n\n    Skill(skill: \"x-internal-normalize-args\", args: \"--schema @references\u002Fargs-schema.json --argv \\\"{raw argv}\\\"\")\n\nPersist interactiveMode to execution-state.json (EPIC-0068 — consumed by Stop hook `enforce-continuous-flow.sh`):\n\n    Skill(skill: \"x-internal-update-status\", args: \"--file ai\u002Fepics\u002Fepic-XXXX\u002Fexecution-state.json --type epic --id \u003CEPIC-ID> --field interactiveMode --value \u003Cinteractive|non-interactive>\")\n\nValue: `\"interactive\"` when `--interactive` passed or `CLAUDE_LEGACY_INTERACTIVE=1`; otherwise `\"non-interactive\"` (Rule 20 default, EPIC-0061).\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-0-Args\")\n\nTaskUpdate(id: phase0TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-0-Args ok`\n\n## Phase 1 — Load and Plan\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-1-Plan`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-1-Plan\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase1TaskId, status: \"completed\")` after plan build):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 1 - Plan\", activeForm: \"Building epic execution plan\")\n\nBuild DAG + execution plan:\n\n    Skill(skill: \"x-internal-build-epic-plan\", args: \"--epic-id \u003CID> --mode \u003Csequential|parallel> --output ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002Fepic-execution-plan-XXXX.md [--strict-overlap]\")\n\nConsume `{phases, criticalPath, planPath}`. If `--dry-run=true` → print plan path and stop.\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-1-Plan --expected-artifacts ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002Fepic-execution-plan-XXXX.md\")\n\nTaskUpdate(id: phase1TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-1-Plan ok`\n\n\u003C!-- phase-no-gate: Phase 2 is skipped for legacy flow; gate lives inside the conditional block -->\n## Phase 2 — Branch Setup (skipped for legacy)\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-2-Branch`\n\nOpen phase tracker (close after branch ensure):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 2 - Branch\", activeForm: \"Ensuring epic branch exists\")\n\nEnsure `epic\u002F\u003CID>` branch exists:\n\n    Skill(skill: \"x-internal-ensure-epic-branch\", args: \"--epic-id \u003CID> --base develop --push true\")\n\nOn non-zero exit → `BRANCH_ENSURE_FAILED`.\n\n    TaskUpdate(id: phase2TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-2-Branch ok`\n\n## Phase 3 — Story Loop\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-3-Execute`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-3-Stories\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase3TaskId, status: \"completed\")` after all stories complete):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 3 - Stories\", activeForm: \"Executing story loop\")\n\n> 🔒 **EXECUTION INTEGRITY (Rule 24):** Each `x-implement-story` call below is a **MANDATORY TOOL CALL**.\n\n**Per-story tracking (sequential, chained via `addBlockedBy`):**\n\n    currentStoryId = TaskCreate(subject: \"EPIC-XXXX › Phase 3 › story-XXXX-YYYY\", activeForm: \"Implementing story-XXXX-YYYY\")\n    [if previous story exists]: TaskUpdate(id: previousStoryId, addBlockedBy: [currentStoryId])\n\n    Skill(skill: \"x-implement-story\", model: \"sonnet\", args: \"\u003CSTORY-ID> --target-branch \u003CepicBranch> --auto-merge \u003Cstrategy> [--skip-review] [--non-interactive] [--auto-approve-pr]\")\n\n    TaskUpdate(id: currentStoryId, status: \"completed\")\n\nPhase gate: all stories in phase N must be `status=SUCCESS` AND `prMergeStatus=MERGED` before phase N+1. Failed story → block-propagation → `STORY_FAILED` (unless `--revert-on-failure`). Resume: Phase 1 envelope `resumeProjection` provides reclassified story statuses.\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-3-Stories\")\n\nTaskUpdate(id: phase3TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-3-Execute ok`\n\n## Phase 4 — Integrity Gate\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-4-Gate`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-4-Gate\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase4TaskId, status: \"completed\")` after report):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 4 - Gate\", activeForm: \"Running integrity gate and report\")\n\nRun integrity gate:\n\n    Skill(skill: \"x-internal-verify-epic-integrity\", args: \"--epic-id \u003CID> --branch \u003CepicBranch>\")\n\nOn `passed=false`: remediation agent (or `--revert-on-failure` revert) + one retry → `INTEGRITY_GATE_FAILED`. Then write report:\n\n    Skill(skill: \"x-internal-write-report\", args: \"...\")\n\nPost-gate PR-comment remediation (unless `--skip-pr-comments`). **MANDATORY TOOL CALL — NON-NEGOTIABLE (Rule 24):** Invoke the `x-fix-epic-pr` skill via the Skill tool whenever the gate would otherwise leave actionable Copilot comments unaddressed:\n\n    Skill(skill: \"x-fix-epic-pr\", model: \"sonnet\", args: \"\u003CEPIC-ID>\")\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-4-Gate\")\n\nTaskUpdate(id: phase4TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-4-Gate ok`\n\n\u003C!-- phase-no-gate: Phase 5 is skipped for legacy flow; gate lives inside the conditional block -->\n## Phase 5 — Final PR (skipped for legacy)\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-5-Final-PR`\n\nOpen phase tracker (close after PR creation):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 5 - Final PR\", activeForm: \"Creating final PR epic\u002FXXXX to develop\")\n\nSync develop into epic branch:\n\n    Skill(skill: \"x-merge-branches\", model: \"haiku\", args: \"--source develop --target epic\u002F\u003CID> --strategy merge\")\n\nOn conflict → `FINAL_PR_CONFLICTS`. Then create final PR:\n\n    Skill(skill: \"x-create-pr\", model: \"haiku\", args: \"--epic-id \u003CID> --head epic\u002F\u003CID> --target-branch develop --auto-merge none --label epic-integration\")\n\nInteractive menu (only when `--interactive`): PROCEED \u002F FIX-PR \u002F ABORT. Default is non-interactive (Rule 20, EPIC-0061).\n\n**MANDATORY TOOL CALL — NON-NEGOTIABLE (Rule 24 + Rule 33):** Generate epic memory summary when `governance.ai-memory` capability is active:\n\n    Skill(skill: \"x-internal-summarize-epic\", model: \"haiku\", args: \"--epic-id \u003CID>\")\n    [conditional: flag.ai_memory_enabled]\n\nExit code handling: 0 = proceed; 7 `MANUAL_REFINEMENT_PRESENT` = proceed (human override preserved); any other non-zero → log warning, proceed (memory is best-effort; does not block PR creation).\n\n    TaskUpdate(id: phase5TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-5-Final-PR ok`\n\n## Recovery\n\nWhen resuming an epic that partially executed (e.g., some stories completed, CI watch failed mid-run), skip flags may be needed to bypass already-completed steps. Use `CLAUDE_RECOVERY_MODE=1`:\n\n```bash\nexport CLAUDE_RECOVERY_MODE=1\n\u002Fx-implement-epic EPIC-XXXX --resume --skip-review\n```\n\n### `CLAUDE_RECOVERY_MODE=1`\n\nWhen this variable is set, the PreToolUse hook `enforce-no-bypass-flags.sh` (EPIC-0059, Rule 45) allows `--skip-review` and `--no-ci-watch` flags on this skill without blocking. A WARNING is emitted to stderr for audit trail. The variable is propagated automatically by `x-internal-resume-story` when `staleWarnings != []`.\n\n**RULE-059-07:** `CLAUDE_RECOVERY_MODE=1` is the only accepted bypass variable. No other env var bypasses the enforcement hook.\n\n### Permitted bypass flags (recovery only)\n\n| Flag | Skips |\n| :--- | :--- |\n| `--skip-review` | Specialist + tech-lead reviews per story |\n| `--no-ci-watch` | CI-watch polling per story PR |\n\n## Error Envelope\n\n| Exit | Code | Condition |\n|------|------|-----------|\n| 1 | `ARGS_INVALID` | Args normalizer exit 1 |\n| 2 | `EPIC_DIR_MISSING` | `ai\u002Fepics\u002Fepic-XXXX\u002F` absent |\n| 3 | `STORY_FAILED` | Story returned `status=FAILED` |\n| 4 | `INTEGRITY_GATE_FAILED` | Phase 4 `passed=false` after recovery |\n| 5 | `FINAL_PR_CONFLICTS` | Phase 5 develop-sync conflict |\n| 6 | `BRANCH_ENSURE_FAILED` | Phase 2 non-zero exit |\n| 7 | `PLAN_BUILD_FAILED` | Phase 1 non-zero (non-cyclic) |\n| 8 | `CYCLIC_DEPENDENCY` | Phase 1 exit 3 |\n\n## Full Protocol\n\n> Per-phase detail (Phase 0 flow-version detection, Phase 3 retry\u002Fbackoff\u002Fcircuit-breaker, Phase 4 integrity-gate recovery algorithm + remediation-agent prompt, Phase 5 TTY-detection + gate menu), legacy-flow phase-by-phase diff (§6), resume workflow for v1\u002Fv2 (§7), `SubagentResult` error shape (§8), `--auto-approve-pr` propagation (§9), and `args-schema.json` reference (§1) in [`references\u002Ffull-protocol.md`](references\u002Ffull-protocol.md). Idempotency contract and integration notes also in references.\n","## Global Output Policy\n\n- **Language**: English ONLY.\n- **Tone**: Technical, Direct, and Concise.\n- **Efficiency**: Remove all conversational fillers and greetings to save tokens.\n\n## Triggers\n\n```\n\u002Fx-implement-epic 0049                  — full run (sequential + auto-merge into epic\u002F0049)\n\u002Fx-implement-epic 0049 --parallel       — parallel story execution via worktrees\n\u002Fx-implement-epic 0049 --legacy-flow    — EPIC-0042 behavior (stories → develop, no final PR)\n\u002Fx-implement-epic 0049 --resume         — continue from execution-state.json\n\u002Fx-implement-epic 0049 --story story-0049-0007  — single story in isolation\n\u002Fx-implement-epic 0049 --dry-run        — generate execution plan only, no dispatch\n```\n\n## Parameters\n\n| Flag | Type | Default | Description |\n|------|------|---------|-------------|\n| `EPIC-ID` | String (4-digit) | — | Positional, required. |\n| `--parallel` | Boolean | `false` | Opt-in parallel via worktrees. Mutually exclusive with `--legacy-flow`. |\n| `--legacy-flow` | Boolean | `false` | Force EPIC-0042: stories → develop; Phase 2 and Phase 5 become no-ops. Auto-set when `flowVersion=1`. |\n| `--phase N` | Integer | — | Execute only phase N stories. Mutually exclusive with `--story`. |\n| `--story ID` | String | — | Execute a single story. Mutually exclusive with `--phase`. |\n| `--resume` | Boolean | `false` | Continue from checkpoint. Auto-detects `flowVersion`. |\n| `--dry-run` | Boolean | `false` | Generate execution plan; exit after Phase 1. |\n| `--skip-review` | Boolean | `false` | Propagated to `x-implement-story` — skips specialist\u002FTL reviews. |\n| `--auto-merge-strategy` | Enum | `merge` | Story-PR auto-merge strategy: `merge\\|squash\\|rebase`. |\n| `--interactive` | Boolean | `false` | Opt-in to 3-option menus (PROCEED\u002FFIX-PR\u002FABORT) at each gate. Default: non-interactive (Rule 20 EPIC-0061). |\n| `--non-interactive` | Boolean | **DEPRECATED** | Was opt-in; now equals default. Emits deprecation WARN. Removed in 2 releases. |\n| `--skip-pr-comments` | Boolean | `false` | Skip Phase 4b post-gate PR-comment remediation pass. |\n| `--revert-on-failure` | Boolean | `false` | On integrity-gate failure, revert last story merge instead of remediation agent. |\n| `--skip-smoke` | Boolean | `false` | Bypass epic smoke gate (advisory; emergency only). |\n\nDeprecated (still parsed, warn-once): `--sequential`, `--auto-merge`, `--interactive-merge`, `--manual-batch-approval`, `--single-pr`, `--task-tracking`, `--dry-run-only-comments`, `--auto-approve-pr` (propagated as-is).\n\n## Output Contract\n\n| Field | Description |\n|-------|-------------|\n| `epicId` | 4-digit zero-padded epic identifier |\n| `epicBranch` | `epic\u002FXXXX` (v2) or `develop` (legacy) |\n| `flowVersion` | `\"2\"` (default) or `\"1\"` (legacy) |\n| `phasesExecuted` | List of `{name, durationSec, status}` per phase |\n| `storiesExecuted` | List of `{id, status, prNumber, prUrl}` per dispatched story |\n| `finalPrUrl\u002FNumber` | Final PR `epic\u002FXXXX → develop`; null when legacy |\n| `integrityGatePassed` | Phase 4 gate `passed` value |\n| `coverageLine\u002FBranch` | Filtered coverage from integrity gate envelope |\n| `reportsDir` | `ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002F` |\n\n**Delegation Map (RULE-005 — zero inline shell invocations):**\n\n| Concern | Skill | Phase |\n|---------|-------|-------|\n| Args parsing | `x-internal-normalize-args` | 0 |\n| DAG + execution plan | `x-internal-build-epic-plan` | 1 |\n| `epic\u002F\u003CID>` branch | `x-internal-ensure-epic-branch` | 2 |\n| Per-story TDD + PR | `x-implement-story` | 3 |\n| Integrity gate + report | `x-internal-verify-epic-integrity` + `x-internal-write-report` | 4 |\n| Develop sync + final PR | `x-merge-branches` + `x-create-pr` | 5 |\n| Status mutations | `x-internal-update-status` | all |\n| Post-gate remediation | `x-fix-epic-pr` | 4b (optional) |\n\n**Workflow:** Phase 0 (Args) → Phase 1 (Load & Plan) → Phase 2 (Branch Setup, skipped for legacy) → Phase 3 (Story Loop) → Phase 4 (Integrity Gate) → Phase 5 (Final PR, skipped for legacy).\n\n## Phase 0 — Args\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-0-Args`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-0-Args\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase0TaskId, status: \"completed\")` after args normalization):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 0 - Args\", activeForm: \"Normalizing args and detecting flow version\")\n\nInvoke args normalizer and resolve epicId, flowVersion, flags:\n\n    Skill(skill: \"x-internal-normalize-args\", args: \"--schema @references\u002Fargs-schema.json --argv \\\"{raw argv}\\\"\")\n\nPersist interactiveMode to execution-state.json (EPIC-0068 — consumed by Stop hook `enforce-continuous-flow.sh`):\n\n    Skill(skill: \"x-internal-update-status\", args: \"--file ai\u002Fepics\u002Fepic-XXXX\u002Fexecution-state.json --type epic --id \u003CEPIC-ID> --field interactiveMode --value \u003Cinteractive|non-interactive>\")\n\nValue: `\"interactive\"` when `--interactive` passed or `CLAUDE_LEGACY_INTERACTIVE=1`; otherwise `\"non-interactive\"` (Rule 20 default, EPIC-0061).\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-0-Args\")\n\nTaskUpdate(id: phase0TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-0-Args ok`\n\n## Phase 1 — Load and Plan\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-1-Plan`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-1-Plan\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase1TaskId, status: \"completed\")` after plan build):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 1 - Plan\", activeForm: \"Building epic execution plan\")\n\nBuild DAG + execution plan:\n\n    Skill(skill: \"x-internal-build-epic-plan\", args: \"--epic-id \u003CID> --mode \u003Csequential|parallel> --output ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002Fepic-execution-plan-XXXX.md [--strict-overlap]\")\n\nConsume `{phases, criticalPath, planPath}`. If `--dry-run=true` → print plan path and stop.\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-1-Plan --expected-artifacts ai\u002Fepics\u002Fepic-XXXX\u002Freports\u002Fepic-execution-plan-XXXX.md\")\n\nTaskUpdate(id: phase1TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-1-Plan ok`\n\n\u003C!-- phase-no-gate: Phase 2 is skipped for legacy flow; gate lives inside the conditional block -->\n## Phase 2 — Branch Setup (skipped for legacy)\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-2-Branch`\n\nOpen phase tracker (close after branch ensure):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 2 - Branch\", activeForm: \"Ensuring epic branch exists\")\n\nEnsure `epic\u002F\u003CID>` branch exists:\n\n    Skill(skill: \"x-internal-ensure-epic-branch\", args: \"--epic-id \u003CID> --base develop --push true\")\n\nOn non-zero exit → `BRANCH_ENSURE_FAILED`.\n\n    TaskUpdate(id: phase2TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-2-Branch ok`\n\n## Phase 3 — Story Loop\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-3-Execute`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-3-Stories\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase3TaskId, status: \"completed\")` after all stories complete):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 3 - Stories\", activeForm: \"Executing story loop\")\n\n> 🔒 **EXECUTION INTEGRITY (Rule 24):** Each `x-implement-story` call below is a **MANDATORY TOOL CALL**.\n\n**Per-story tracking (sequential, chained via `addBlockedBy`):**\n\n    currentStoryId = TaskCreate(subject: \"EPIC-XXXX › Phase 3 › story-XXXX-YYYY\", activeForm: \"Implementing story-XXXX-YYYY\")\n    [if previous story exists]: TaskUpdate(id: previousStoryId, addBlockedBy: [currentStoryId])\n\n    Skill(skill: \"x-implement-story\", model: \"sonnet\", args: \"\u003CSTORY-ID> --target-branch \u003CepicBranch> --auto-merge \u003Cstrategy> [--skip-review] [--non-interactive] [--auto-approve-pr]\")\n\n    TaskUpdate(id: currentStoryId, status: \"completed\")\n\nPhase gate: all stories in phase N must be `status=SUCCESS` AND `prMergeStatus=MERGED` before phase N+1. Failed story → block-propagation → `STORY_FAILED` (unless `--revert-on-failure`). Resume: Phase 1 envelope `resumeProjection` provides reclassified story statuses.\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-3-Stories\")\n\nTaskUpdate(id: phase3TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-3-Execute ok`\n\n## Phase 4 — Integrity Gate\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-4-Gate`\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode pre --skill x-implement-epic --phase Phase-4-Gate\")\n\nOpen phase tracker (close with `TaskUpdate(id: phase4TaskId, status: \"completed\")` after report):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 4 - Gate\", activeForm: \"Running integrity gate and report\")\n\nRun integrity gate:\n\n    Skill(skill: \"x-internal-verify-epic-integrity\", args: \"--epic-id \u003CID> --branch \u003CepicBranch>\")\n\nOn `passed=false`: remediation agent (or `--revert-on-failure` revert) + one retry → `INTEGRITY_GATE_FAILED`. Then write report:\n\n    Skill(skill: \"x-internal-write-report\", args: \"...\")\n\nPost-gate PR-comment remediation (unless `--skip-pr-comments`). **MANDATORY TOOL CALL — NON-NEGOTIABLE (Rule 24):** Invoke the `x-fix-epic-pr` skill via the Skill tool whenever the gate would otherwise leave actionable Copilot comments unaddressed:\n\n    Skill(skill: \"x-fix-epic-pr\", model: \"sonnet\", args: \"\u003CEPIC-ID>\")\n\nSkill(skill: \"x-internal-verify-phase-gates\", model: \"haiku\", args: \"--mode post --skill x-implement-epic --phase Phase-4-Gate\")\n\nTaskUpdate(id: phase4TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-4-Gate ok`\n\n\u003C!-- phase-no-gate: Phase 5 is skipped for legacy flow; gate lives inside the conditional block -->\n## Phase 5 — Final PR (skipped for legacy)\n\n\u003C!-- TELEMETRY: phase.start -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh start x-implement-epic Phase-5-Final-PR`\n\nOpen phase tracker (close after PR creation):\n\n    TaskCreate(subject: \"EPIC-XXXX › Phase 5 - Final PR\", activeForm: \"Creating final PR epic\u002FXXXX to develop\")\n\nSync develop into epic branch:\n\n    Skill(skill: \"x-merge-branches\", model: \"haiku\", args: \"--source develop --target epic\u002F\u003CID> --strategy merge\")\n\nOn conflict → `FINAL_PR_CONFLICTS`. Then create final PR:\n\n    Skill(skill: \"x-create-pr\", model: \"haiku\", args: \"--epic-id \u003CID> --head epic\u002F\u003CID> --target-branch develop --auto-merge none --label epic-integration\")\n\nInteractive menu (only when `--interactive`): PROCEED \u002F FIX-PR \u002F ABORT. Default is non-interactive (Rule 20, EPIC-0061).\n\n**MANDATORY TOOL CALL — NON-NEGOTIABLE (Rule 24 + Rule 33):** Generate epic memory summary when `governance.ai-memory` capability is active:\n\n    Skill(skill: \"x-internal-summarize-epic\", model: \"haiku\", args: \"--epic-id \u003CID>\")\n    [conditional: flag.ai_memory_enabled]\n\nExit code handling: 0 = proceed; 7 `MANUAL_REFINEMENT_PRESENT` = proceed (human override preserved); any other non-zero → log warning, proceed (memory is best-effort; does not block PR creation).\n\n    TaskUpdate(id: phase5TaskId, status: \"completed\")\n\n\u003C!-- TELEMETRY: phase.end -->\nBash command: `$CLAUDE_PROJECT_DIR\u002F.claude\u002Fhooks\u002Ftelemetry-phase.sh end x-implement-epic Phase-5-Final-PR ok`\n\n## Recovery\n\nWhen resuming an epic that partially executed (e.g., some stories completed, CI watch failed mid-run), skip flags may be needed to bypass already-completed steps. Use `CLAUDE_RECOVERY_MODE=1`:\n\n```bash\nexport CLAUDE_RECOVERY_MODE=1\n\u002Fx-implement-epic EPIC-XXXX --resume --skip-review\n```\n\n### `CLAUDE_RECOVERY_MODE=1`\n\nWhen this variable is set, the PreToolUse hook `enforce-no-bypass-flags.sh` (EPIC-0059, Rule 45) allows `--skip-review` and `--no-ci-watch` flags on this skill without blocking. A WARNING is emitted to stderr for audit trail. The variable is propagated automatically by `x-internal-resume-story` when `staleWarnings != []`.\n\n**RULE-059-07:** `CLAUDE_RECOVERY_MODE=1` is the only accepted bypass variable. No other env var bypasses the enforcement hook.\n\n### Permitted bypass flags (recovery only)\n\n| Flag | Skips |\n| :--- | :--- |\n| `--skip-review` | Specialist + tech-lead reviews per story |\n| `--no-ci-watch` | CI-watch polling per story PR |\n\n## Error Envelope\n\n| Exit | Code | Condition |\n|------|------|-----------|\n| 1 | `ARGS_INVALID` | Args normalizer exit 1 |\n| 2 | `EPIC_DIR_MISSING` | `ai\u002Fepics\u002Fepic-XXXX\u002F` absent |\n| 3 | `STORY_FAILED` | Story returned `status=FAILED` |\n| 4 | `INTEGRITY_GATE_FAILED` | Phase 4 `passed=false` after recovery |\n| 5 | `FINAL_PR_CONFLICTS` | Phase 5 develop-sync conflict |\n| 6 | `BRANCH_ENSURE_FAILED` | Phase 2 non-zero exit |\n| 7 | `PLAN_BUILD_FAILED` | Phase 1 non-zero (non-cyclic) |\n| 8 | `CYCLIC_DEPENDENCY` | Phase 1 exit 3 |\n\n## Full Protocol\n\n> Per-phase detail (Phase 0 flow-version detection, Phase 3 retry\u002Fbackoff\u002Fcircuit-breaker, Phase 4 integrity-gate recovery algorithm + remediation-agent prompt, Phase 5 TTY-detection + gate menu), legacy-flow phase-by-phase diff (§6), resume workflow for v1\u002Fv2 (§7), `SubagentResult` error shape (§8), `--auto-approve-pr` propagation (§9), and `args-schema.json` reference (§1) in [`references\u002Ffull-protocol.md`](references\u002Ffull-protocol.md). Idempotency contract and integration notes also in references.\n",{"name":5,"model":24,"description":7,"allowed-tools":25,"argument-hint":26,"context-budget":27,"user-invocable":28,"requires-capabilities":29},"sonnet","Read, Write, Glob, Skill, Agent, AskUserQuestion, TaskCreate, TaskUpdate","[EPIC-ID] [--parallel] [--legacy-flow] [--phase N] [--story story-XXXX-YYYY] [--resume] [--dry-run] [--skip-review] [--auto-merge-strategy merge|squash|rebase] [--strict-overlap] [--non-interactive] [--skip-pr-comments] [--revert-on-failure] [--skip-smoke]","medium",true,[],"main","952a630c6f38d193a349d86fa18db1de8843e837","src\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic",1,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment","https:\u002F\u002Fgithub.com\u002Freview-bench","https:\u002F\u002Freview-bench.ai","An open benchmark for AI code review.","2026-10-27 06:56:37",{"source":8,"skillName":5,"commands":40,"prompt":50,"zipAvailable":28},[41,44,47],{"tool":42,"command":43},"npx","npx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-implement-epic",{"tool":45,"command":46},"bunx","bunx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-implement-epic",{"tool":48,"command":49},"pnpm","pnpm dlx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-implement-epic","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic\u002FSKILL.md",[52,58,62],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"README.md","REFERENCE","参考文档",6145,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic\u002FREADME.md",{"path":59,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":60,"sourceHtmlUrl":61},"references\u002Fargs-schema.json",5152,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic\u002Freferences\u002Fargs-schema.json",{"path":63,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":64,"sourceHtmlUrl":65},"references\u002Ffull-protocol.md",11927,"https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-implement-epic\u002Freferences\u002Ffull-protocol.md",[67,74,81,88,95,102],{"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":19},"01M757M8J48TQ1Y3X25GSJBXAS","x-parallel-eval","Detects and classifies file-collision risks between work units (tasks, stories, or epic phases) before parallel execution. Reads ## File Footprint blocks produced by x-task-plan \u002F x-story-plan, applies the parallelism-heuristics knowledge pack (hard \u002F regen \u002F soft categories + hotspot overrides), and emits a collision matrix + serialization recommendation in Markdown (default) or JSON.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fx-parallel-eval\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":19},"01M757M57XMR9546S69466HDWT","parallelism-heuristics","Canonical catalog of file-collision heuristics for parallel task, story, and epic execution. Defines the File Footprint block format, the three Conflict Categories (hard \u002F regen \u002F soft), a hotspot list of high-contention paths, and the degrade-with-warning policy. Consumed by x-task-plan, x-story-plan, x-epic-map, x-parallel-eval, and x-dev-*-implement.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fparallelism-heuristics\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":19},"01M757M11SZ8P1VCQABT08QVYA","x-watch-pr-ci","Polls a PR's CI checks and Copilot review status, blocking until checks complete or timeout. Returns one of 8 stable exit codes (SUCCESS=0, CI_PENDING_PROCEED=10, CI_FAILED=20, TIMEOUT=30, PR_ALREADY_MERGED=40, NO_CI_CONFIGURED=50, PR_CLOSED=60, PR_NOT_FOUND=70). Writes a versioned state-file for session resume.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-watch-pr-ci\u002FSKILL.md",[],[],{"skillNo":89,"name":90,"nameZh":6,"description":91,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M757KW53K8KFPGADFB4PH949","x-validate-docs","Documentation freshness gate: validates 6 dimensions (readme, api-specs, grpc-proto, adr, skill-docs, system-architecture) against code changes in a PR. Stack-aware — only validates targets declared\u002Fauto-detected from ProjectConfig.documentation.targets. Returns exit non-zero on staleness; produces structured report.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-validate-docs\u002FSKILL.md",[],[],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":19},"01M757KQZHSA10MKC0CR571D60","x-update-system-architecture","Incrementally updates docs\u002Farchitecture\u002Fsystem.md after an epic completes. Appends new entries to the Decision Log (§11) using x-internal-write-report --append (dedup by ## ID: marker) and surgically inserts component\u002Fintegration changes into sections 1-10 via Edit. Idempotent: re-running with the same epic produces a byte-identical system.md.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-update-system-architecture\u002FSKILL.md",[],[],{"skillNo":103,"name":104,"nameZh":6,"description":105,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":108,"publishedAt":19},"01M757KKBT5Q1SVF8DMJBVF46M","x-update-architecture","Incrementally updates the service architecture document with changes from architecture plans. Adds new components, integrations, flows, and ADR references without rewriting existing content. Use after implementation to keep architecture documentation current.","https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring\u002Fplatform-claude-code\u002F.claude\u002Fskills\u002Fx-update-architecture\u002FSKILL.md",[],[]]