[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M754XEE71RT8T8G4BVJYC6YV":3,"skill-same:01M754XEE71RT8T8G4BVJYC6YV":53},{"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":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":37,"ownerDescription":38,"updatedAt":39,"install":40,"resources":52},"01M754XEE71RT8T8G4BVJYC6YV","x-migrate-templates",null,"Assists migration of a v1 epic document to the v2 value-driven template (EPIC-0070). Parses v1 technical blocks (Packages, Contratos, SOLID, Observabilidade), classifies each block with a safe default heuristic, and optionally asks the operator for confirmation per block (--interactive). Side-effects: writes epic.md in v2 format atomically, creates ADRs for 'virar ADR' decisions, updates system.md via x-update-system-architecture. Supports --dry-run and recovery from interrupted sessions.","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-migrate-templates\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: x-migrate-templates\ndescription: \"Assists migration of a v1 epic document to the v2 value-driven template (EPIC-0070). Parses v1 technical blocks (Packages, Contratos, SOLID, Observabilidade), classifies each block with a safe default heuristic, and optionally asks the operator for confirmation per block (--interactive). Side-effects: writes epic.md in v2 format atomically, creates ADRs for 'virar ADR' decisions, updates system.md via x-update-system-architecture. Supports --dry-run and recovery from interrupted sessions.\"\nuser-invocable: true\nmodel: sonnet\nallowed-tools: Read, Edit, Write, Skill, AskUserQuestion, Bash\nargument-hint: \"\u003Cepic-id>\"\ncontext-budget: light\nrequires-capabilities: [governance.value-driven-templates]\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# Skill: x-migrate-templates\n\n## Purpose\n\nAssists the migration of a v1 epic document (`ai\u002Fepics\u002F\u003Cepic-id>\u002Fepic-\u003Cepic-id>.md` or `ai\u002Fepics\u002F\u003Cepic-id>-*\u002Fepic-\u003Cepic-id>.md`) to the v2 value-driven template introduced in EPIC-0070. The migration is **information-preserving** — no technical decision from v1 is silently discarded.\n\n## Triggers\n\n- `\u002Fx-migrate-templates \u003Cepic-id>` — migrate the epic to v2 (non-interactive by default — applies safe heuristics automatically)\n- `\u002Fx-migrate-templates \u003Cepic-id> --interactive` — migrate with per-block confirmation prompts\n- `\u002Fx-migrate-templates \u003Cepic-id> --dry-run` — preview diff and classification without writing\n\n## Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `EPIC-ID` | String | Yes | — | 4-digit zero-padded epic identifier (e.g., `0050`). Also accepts full form `epic-0050`. |\n| `--interactive` | Boolean | No | false | Show per-block confirmation prompts (`AskUserQuestion`). Default is non-interactive (Rule 20 — EPIC-0061). |\n| `--dry-run` | Boolean | No | false | Show diff + simulated answers (default: \"manter\") without writing any files. |\n| `--non-interactive` | Boolean | No | **DEPRECATED** | Emits WARN; equals default behavior. Removed in 2 releases. |\n| `--resume` | Boolean | No | false | Resume from a previous interrupted session state-file at `.claude\u002Fstate\u002Ftemplate-migrate-\u003Cepic-id>.json`. |\n\n## Workflow\n\n### Step 1 — Validate & Detect\n\n1. Resolve `EPIC-ID` from argv (strip `epic-` prefix if present, zero-pad to 4 digits).\n2. Locate epic folder via glob: `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002F`. If not found, abort with `EPIC_DIR_MISSING`.\n3. Read `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002Fepic-\u003CEPIC-ID>.md`.\n4. **Detect template version:**\n   - If document contains `## 3. Hipótese & OKRs` or `## Refinement Verdict` block → already v2. Exit 0 with: `INFO: epic already in v2 — nothing to do.`\n   - Otherwise → treat as v1.\n5. If `--resume` flag is set, load state from `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json`:\n   - Verify `originalHash` matches SHA-256 of current epic.md content. Mismatch → abort with `EXTERNAL_EDIT_DETECTED`.\n   - Restore `decisions[]` (blocks already processed), set resume point.\n\n### Step 2 — Parse v1 Blocks\n\nParse the v1 epic markdown and extract the following technical block types:\n\n| v1 Block Pattern | Detected By |\n|------------------|-------------|\n| Packages \u002F Hexagonal | `## Packages`, `## Arquitetura`, section containing package paths |\n| Contratos \u002F Endpoints | `## Contratos`, `## API`, `## Endpoints` |\n| SOLID principles | `## SOLID`, `## Princípios`, section referencing SRP\u002FOCP\u002FLSP\u002FISP\u002FDIP |\n| Observabilidade | `## Observabilidade`, `## Métricas`, `## Logs` |\n| Segurança técnica | `## Segurança`, `## Security`, `## PCI` |\n| Decisões inline | Any section containing `**Decisão:**`, `**ADR:**`, `decisão arquitetural` |\n| Outros blocos | Any remaining section not mapped to v2 structure |\n\nIf a section fails to parse (e.g., malformed markdown, unclosed code fence), abort with:\n```\nERROR PARSER_ERROR: section \"\u003Cheading>\" at line \u003CN> could not be parsed.\nEpic.md NOT modified — state preserved.\n```\n\n### Step 3 — Classify Blocks (Auto-Heuristics)\n\nFor each extracted block, apply classification heuristics:\n\n| Block Type | Default Classification | Reasoning |\n|------------|----------------------|-----------|\n| Packages \u002F Hexagonal | `move-to-system-md` → §1-3 (Stack\u002FPersistência\u002FComunicação) | Architectural topology belongs in system.md |\n| Contratos \u002F Endpoints | `move-to-system-md` → §3 (Integrações) | Interface contracts persist beyond a single epic |\n| SOLID | `discard` | Governed by Rule 03\u002F04 — always applicable, no per-epic value |\n| Observabilidade | `move-to-system-md` → §4 (Decisões de Observabilidade) | SLO\u002Falert decisions are cross-epic |\n| Segurança técnica | `move-to-system-md` → §2 (Segurança) or `create-adr` | Security decisions warrant ADR when novel |\n| Decisões inline | `create-adr` | Inline decisions are best canonicalized as formal ADRs |\n| Outros blocos | `keep-in-epic` | Unknown content defaults to preservation |\n\nClassification result for each block includes: `{ type, content, classification, targetSection, rationale }`.\n\n### Step 4 — Interactive Confirmation (Conditional on `--interactive`)\n\nWhen `--interactive` is active, for each classified block:\n\n    AskUserQuestion(question: \"Block: \u003Cheading>\\nContent preview: \u003Cfirst 3 lines>\\nProposed: \u003Cclassification> → \u003CtargetSection>\\n[1] Accept  [2] Override: move-to-system-md  [3] Override: create-adr  [4] Override: keep-in-epic  [5] Discard\")\n\nPersist each confirmed decision to the state-file immediately after confirmation.\n\nWhen **not** `--interactive` (default): apply heuristics without prompting. Print a summary table of classifications at the end.\n\n### Step 5 — Atomic Write of Epic v2\n\n1. Compose the v2 epic document by mapping preserved\u002Fclassified blocks into the v2 9-section structure:\n   - Section 1: Visão (from original epic title\u002Fproblem statement)\n   - Section 2: Persona & Stakeholders (from original persona)\n   - Section 3: Hipótese & OKRs (from original OKRs or synthesized from value statement)\n   - Section 4: Alternativas Consideradas (from original alternatives)\n   - Section 5: Escopo (preserved scope section)\n   - Section 6: Riscos (from original risks)\n   - Section 7: Índice de Histórias (from story list)\n   - Section 8: Quality Gates (from v1 quality criteria)\n   - Refinement Verdict: `Status: tbd` (placeholder — run `\u002Fx-refine-epic` to refine)\n2. Write to temp path `epic-\u003CEPIC-ID>.md.tmp`.\n3. Move temp to final path (atomic replace).\n4. Write migration log to `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002Freports\u002Fmigration-log-epic-\u003CEPIC-ID>.md`.\n\nIf `--dry-run`: print the composed v2 document as a diff preview. Skip all writes. Exit 0.\n\n### Step 6 — Side-Effects (Conditional)\n\nExecute side-effects for blocks classified as `move-to-system-md` or `create-adr`:\n\n**`move-to-system-md` blocks:**\n\n    Skill(skill: \"x-update-system-architecture\", model: \"sonnet\", args: \"\u003CEPIC-ID>\")  [conditional: not flag.dry_run]\n\n**`create-adr` blocks:** Write a new ADR file at `docs\u002Fadr\u002FADR-NNNN-\u003Cslug>.md` (next available ADR number) with the extracted decision content. ADR number is determined by scanning existing `docs\u002Fadr\u002FADR-*.md` files.\n\nIf any side-effect fails, log a WARNING but **do not roll back** the already-written epic v2 (atomicity scoped to epic.md only; side-effects are idempotent and re-runnable).\n\n### Step 7 — Session Cleanup\n\nRemove `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json` on successful completion (session no longer needed). On failure, preserve state-file for `--resume`.\n\n## Recovery Contract\n\nState-file schema at `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json`:\n\n```json\n{\n  \"epicId\": \"epic-\u003CEPIC-ID>\",\n  \"originalHash\": \"\u003Csha256-of-v1-epic-md>\",\n  \"startedAt\": \"\u003CISO-8601>\",\n  \"decisions\": [\n    { \"block\": \"\u003Cheading>\", \"classification\": \"\u003Ctype>\", \"targetSection\": \"\u003Copt>\", \"confirmedAt\": \"\u003CISO-8601>\" }\n  ],\n  \"resumePoint\": \"\u003Cheading-of-next-unprocessed-block>\"\n}\n```\n\nRe-invocation with `--resume` loads this state, verifies `originalHash`, and continues from `resumePoint`.\n\n## Error Codes\n\n| Code | Condition |\n|------|-----------|\n| `EPIC_DIR_MISSING` | `ai\u002Fepics\u002Fepic-\u003CID>*\u002F` not found |\n| `PARSER_ERROR` | v1 section is malformed; file not written |\n| `EXTERNAL_EDIT_DETECTED` | epic.md changed since session started (hash mismatch) |\n\n## Examples\n\n```bash\n# Default non-interactive migration (apply heuristics, no prompts)\n\u002Fx-migrate-templates 0050\n\n# Interactive migration with per-block confirmation\n\u002Fx-migrate-templates 0050 --interactive\n\n# Dry-run — preview diff without writing\n\u002Fx-migrate-templates 0050 --dry-run\n\n# Resume an interrupted session\n\u002Fx-migrate-templates 0050 --resume\n\n# Full epic-id form also accepted\n\u002Fx-migrate-templates epic-0036 --interactive\n```\n\n## Integration Notes\n\n- Invokes `x-update-system-architecture` (story-0070-0006) for `move-to-system-md` side-effects — Rule 13 INLINE-SKILL.\n- State-file mirrors `pr-watch-*.json` pattern (Rule 45) for session persistence.\n- Rule 20 (EPIC-0061): `--non-interactive` is deprecated; non-interactive is the default.\n- Rule 45 (CI-Watch): **not applicable** — this skill does not create PRs.\n- Rule 22 (Skill Visibility): **public** — user-invocable, appears in `\u002Fhelp`.\n- After migration, run `\u002Fx-refine-epic epic-\u003CID>` to obtain `refinementVerdict.status = approved` for the migrated epic.\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# Skill: x-migrate-templates\n\n## Purpose\n\nAssists the migration of a v1 epic document (`ai\u002Fepics\u002F\u003Cepic-id>\u002Fepic-\u003Cepic-id>.md` or `ai\u002Fepics\u002F\u003Cepic-id>-*\u002Fepic-\u003Cepic-id>.md`) to the v2 value-driven template introduced in EPIC-0070. The migration is **information-preserving** — no technical decision from v1 is silently discarded.\n\n## Triggers\n\n- `\u002Fx-migrate-templates \u003Cepic-id>` — migrate the epic to v2 (non-interactive by default — applies safe heuristics automatically)\n- `\u002Fx-migrate-templates \u003Cepic-id> --interactive` — migrate with per-block confirmation prompts\n- `\u002Fx-migrate-templates \u003Cepic-id> --dry-run` — preview diff and classification without writing\n\n## Parameters\n\n| Parameter | Type | Required | Default | Description |\n|-----------|------|----------|---------|-------------|\n| `EPIC-ID` | String | Yes | — | 4-digit zero-padded epic identifier (e.g., `0050`). Also accepts full form `epic-0050`. |\n| `--interactive` | Boolean | No | false | Show per-block confirmation prompts (`AskUserQuestion`). Default is non-interactive (Rule 20 — EPIC-0061). |\n| `--dry-run` | Boolean | No | false | Show diff + simulated answers (default: \"manter\") without writing any files. |\n| `--non-interactive` | Boolean | No | **DEPRECATED** | Emits WARN; equals default behavior. Removed in 2 releases. |\n| `--resume` | Boolean | No | false | Resume from a previous interrupted session state-file at `.claude\u002Fstate\u002Ftemplate-migrate-\u003Cepic-id>.json`. |\n\n## Workflow\n\n### Step 1 — Validate & Detect\n\n1. Resolve `EPIC-ID` from argv (strip `epic-` prefix if present, zero-pad to 4 digits).\n2. Locate epic folder via glob: `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002F`. If not found, abort with `EPIC_DIR_MISSING`.\n3. Read `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002Fepic-\u003CEPIC-ID>.md`.\n4. **Detect template version:**\n   - If document contains `## 3. Hipótese & OKRs` or `## Refinement Verdict` block → already v2. Exit 0 with: `INFO: epic already in v2 — nothing to do.`\n   - Otherwise → treat as v1.\n5. If `--resume` flag is set, load state from `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json`:\n   - Verify `originalHash` matches SHA-256 of current epic.md content. Mismatch → abort with `EXTERNAL_EDIT_DETECTED`.\n   - Restore `decisions[]` (blocks already processed), set resume point.\n\n### Step 2 — Parse v1 Blocks\n\nParse the v1 epic markdown and extract the following technical block types:\n\n| v1 Block Pattern | Detected By |\n|------------------|-------------|\n| Packages \u002F Hexagonal | `## Packages`, `## Arquitetura`, section containing package paths |\n| Contratos \u002F Endpoints | `## Contratos`, `## API`, `## Endpoints` |\n| SOLID principles | `## SOLID`, `## Princípios`, section referencing SRP\u002FOCP\u002FLSP\u002FISP\u002FDIP |\n| Observabilidade | `## Observabilidade`, `## Métricas`, `## Logs` |\n| Segurança técnica | `## Segurança`, `## Security`, `## PCI` |\n| Decisões inline | Any section containing `**Decisão:**`, `**ADR:**`, `decisão arquitetural` |\n| Outros blocos | Any remaining section not mapped to v2 structure |\n\nIf a section fails to parse (e.g., malformed markdown, unclosed code fence), abort with:\n```\nERROR PARSER_ERROR: section \"\u003Cheading>\" at line \u003CN> could not be parsed.\nEpic.md NOT modified — state preserved.\n```\n\n### Step 3 — Classify Blocks (Auto-Heuristics)\n\nFor each extracted block, apply classification heuristics:\n\n| Block Type | Default Classification | Reasoning |\n|------------|----------------------|-----------|\n| Packages \u002F Hexagonal | `move-to-system-md` → §1-3 (Stack\u002FPersistência\u002FComunicação) | Architectural topology belongs in system.md |\n| Contratos \u002F Endpoints | `move-to-system-md` → §3 (Integrações) | Interface contracts persist beyond a single epic |\n| SOLID | `discard` | Governed by Rule 03\u002F04 — always applicable, no per-epic value |\n| Observabilidade | `move-to-system-md` → §4 (Decisões de Observabilidade) | SLO\u002Falert decisions are cross-epic |\n| Segurança técnica | `move-to-system-md` → §2 (Segurança) or `create-adr` | Security decisions warrant ADR when novel |\n| Decisões inline | `create-adr` | Inline decisions are best canonicalized as formal ADRs |\n| Outros blocos | `keep-in-epic` | Unknown content defaults to preservation |\n\nClassification result for each block includes: `{ type, content, classification, targetSection, rationale }`.\n\n### Step 4 — Interactive Confirmation (Conditional on `--interactive`)\n\nWhen `--interactive` is active, for each classified block:\n\n    AskUserQuestion(question: \"Block: \u003Cheading>\\nContent preview: \u003Cfirst 3 lines>\\nProposed: \u003Cclassification> → \u003CtargetSection>\\n[1] Accept  [2] Override: move-to-system-md  [3] Override: create-adr  [4] Override: keep-in-epic  [5] Discard\")\n\nPersist each confirmed decision to the state-file immediately after confirmation.\n\nWhen **not** `--interactive` (default): apply heuristics without prompting. Print a summary table of classifications at the end.\n\n### Step 5 — Atomic Write of Epic v2\n\n1. Compose the v2 epic document by mapping preserved\u002Fclassified blocks into the v2 9-section structure:\n   - Section 1: Visão (from original epic title\u002Fproblem statement)\n   - Section 2: Persona & Stakeholders (from original persona)\n   - Section 3: Hipótese & OKRs (from original OKRs or synthesized from value statement)\n   - Section 4: Alternativas Consideradas (from original alternatives)\n   - Section 5: Escopo (preserved scope section)\n   - Section 6: Riscos (from original risks)\n   - Section 7: Índice de Histórias (from story list)\n   - Section 8: Quality Gates (from v1 quality criteria)\n   - Refinement Verdict: `Status: tbd` (placeholder — run `\u002Fx-refine-epic` to refine)\n2. Write to temp path `epic-\u003CEPIC-ID>.md.tmp`.\n3. Move temp to final path (atomic replace).\n4. Write migration log to `ai\u002Fepics\u002Fepic-\u003CEPIC-ID>*\u002Freports\u002Fmigration-log-epic-\u003CEPIC-ID>.md`.\n\nIf `--dry-run`: print the composed v2 document as a diff preview. Skip all writes. Exit 0.\n\n### Step 6 — Side-Effects (Conditional)\n\nExecute side-effects for blocks classified as `move-to-system-md` or `create-adr`:\n\n**`move-to-system-md` blocks:**\n\n    Skill(skill: \"x-update-system-architecture\", model: \"sonnet\", args: \"\u003CEPIC-ID>\")  [conditional: not flag.dry_run]\n\n**`create-adr` blocks:** Write a new ADR file at `docs\u002Fadr\u002FADR-NNNN-\u003Cslug>.md` (next available ADR number) with the extracted decision content. ADR number is determined by scanning existing `docs\u002Fadr\u002FADR-*.md` files.\n\nIf any side-effect fails, log a WARNING but **do not roll back** the already-written epic v2 (atomicity scoped to epic.md only; side-effects are idempotent and re-runnable).\n\n### Step 7 — Session Cleanup\n\nRemove `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json` on successful completion (session no longer needed). On failure, preserve state-file for `--resume`.\n\n## Recovery Contract\n\nState-file schema at `.claude\u002Fstate\u002Ftemplate-migrate-\u003CEPIC-ID>.json`:\n\n```json\n{\n  \"epicId\": \"epic-\u003CEPIC-ID>\",\n  \"originalHash\": \"\u003Csha256-of-v1-epic-md>\",\n  \"startedAt\": \"\u003CISO-8601>\",\n  \"decisions\": [\n    { \"block\": \"\u003Cheading>\", \"classification\": \"\u003Ctype>\", \"targetSection\": \"\u003Copt>\", \"confirmedAt\": \"\u003CISO-8601>\" }\n  ],\n  \"resumePoint\": \"\u003Cheading-of-next-unprocessed-block>\"\n}\n```\n\nRe-invocation with `--resume` loads this state, verifies `originalHash`, and continues from `resumePoint`.\n\n## Error Codes\n\n| Code | Condition |\n|------|-----------|\n| `EPIC_DIR_MISSING` | `ai\u002Fepics\u002Fepic-\u003CID>*\u002F` not found |\n| `PARSER_ERROR` | v1 section is malformed; file not written |\n| `EXTERNAL_EDIT_DETECTED` | epic.md changed since session started (hash mismatch) |\n\n## Examples\n\n```bash\n# Default non-interactive migration (apply heuristics, no prompts)\n\u002Fx-migrate-templates 0050\n\n# Interactive migration with per-block confirmation\n\u002Fx-migrate-templates 0050 --interactive\n\n# Dry-run — preview diff without writing\n\u002Fx-migrate-templates 0050 --dry-run\n\n# Resume an interrupted session\n\u002Fx-migrate-templates 0050 --resume\n\n# Full epic-id form also accepted\n\u002Fx-migrate-templates epic-0036 --interactive\n```\n\n## Integration Notes\n\n- Invokes `x-update-system-architecture` (story-0070-0006) for `move-to-system-md` side-effects — Rule 13 INLINE-SKILL.\n- State-file mirrors `pr-watch-*.json` pattern (Rule 45) for session persistence.\n- Rule 20 (EPIC-0061): `--non-interactive` is deprecated; non-interactive is the default.\n- Rule 45 (CI-Watch): **not applicable** — this skill does not create PRs.\n- Rule 22 (Skill Visibility): **public** — user-invocable, appears in `\u002Fhelp`.\n- After migration, run `\u002Fx-refine-epic epic-\u003CID>` to obtain `refinementVerdict.status = approved` for the migrated epic.\n",{"name":5,"model":24,"description":7,"allowed-tools":25,"argument-hint":26,"context-budget":27,"user-invocable":28,"requires-capabilities":29},"sonnet","Read, Edit, Write, Skill, AskUserQuestion, Bash","\u003Cepic-id>","light",true,[30],"governance.value-driven-templates","main","952a630c6f38d193a349d86fa18db1de8843e837","src\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-migrate-templates",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":41,"prompt":51,"zipAvailable":28},[42,45,48],{"tool":43,"command":44},"npx","npx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-migrate-templates",{"tool":46,"command":47},"bunx","bunx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-migrate-templates",{"tool":49,"command":50},"pnpm","pnpm dlx skills add review-bench\u002Federcnj_ia-dev-environment --skill x-migrate-templates","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-spring-fintech-pci\u002F.claude\u002Fskills\u002Fx-migrate-templates\u002FSKILL.md",[],[54,61,68,75,82,89],{"skillNo":55,"name":56,"nameZh":6,"description":57,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":60,"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":62,"name":63,"nameZh":6,"description":64,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":65,"categories":66,"keywords":67,"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":69,"name":70,"nameZh":6,"description":71,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":74,"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":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"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":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"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":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"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",[],[]]