[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M751YP53S44RTB8MDRWN2J66":3,"skill-same:01M751YP53S44RTB8MDRWN2J66":58},{"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":35,"commitSha":36,"skillDirectory":37,"forksCount":38,"repositoryHtmlUrl":39,"repositoryHomepageUrl":6,"ownerHtmlUrl":40,"ownerBlogUrl":41,"ownerDescription":42,"updatedAt":43,"install":44,"resources":57},"01M751YP53S44RTB8MDRWN2J66","picocli-command",null,"Generate a Picocli @Command with subcommands, @Option\u002F@Parameters, type converters, exit code constants, and unit tests.","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-quarkus\u002F.claude\u002Fskills\u002Fpicocli-command\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: picocli-command\ndescription: \"Generate a Picocli @Command with subcommands, @Option\u002F@Parameters, type converters, exit code constants, and unit tests.\"\nvisibility: public\nmodel: sonnet\nrequires-capabilities: [cli.picocli.framework]\nallowed-tools: [Read, Write, Edit, Bash, Skill]\ncontext-budget: light\n---\n\n# Skill: Picocli Command Generator\n\n## Purpose\n\nGenerates a complete Picocli CLI command (or subcommand) following the hexagonal architecture pattern. Produces:\n\n1. `@Command` class implementing `Callable\u003CInteger>`\n2. `@Option` and `@Parameters` declarations with type converters\n3. Exit code constants\n4. Unit tests with `CommandLine.execute()` assertions\n\n## Triggers\n\n- `\u002Fpicocli-command \u003CCommandName> [--subcommand]` — generate a top-level or subcommand\n- `\u002Fpicocli-command \u003CCommandName> --root` — generate root command with standard options\n- `\u002Fpicocli-command \u003CCommandName> --crud` — generate subcommands for create\u002Flist\u002Fdelete operations\n\n## Parameters\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `CommandName` | Yes | PascalCase command class name (e.g., `GenerateCommand`, `ValidateCommand`) |\n| `--subcommand` | No | Generate as subcommand (registers with parent via `subcommands =`) |\n| `--root` | No | Generate as root command with `mixinStandardHelpOptions = true` |\n| `--crud` | No | Generate create\u002Flist\u002Fdelete subcommands |\n\n## Workflow\n\n### Step 1 — Read Project Context\n\nRead existing conventions:\n- `knowledge\u002Fstack-patterns\u002Fpicocli\u002Findex.md` — Picocli patterns\n- `knowledge\u002Flayer-templates.md` — Layer template patterns\n- Existing commands in `src\u002Fmain\u002Fjava\u002F**\u002Fadapter\u002Finbound\u002Fcli\u002F` for naming conventions\n\n### Step 2 — Generate Command Class\n\n```java\n\u002F\u002F src\u002Fmain\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002F{CommandName}.java\n@Command(\n    name = \"{command-name}\",\n    description = \"{description}\",\n    mixinStandardHelpOptions = true\n)\npublic class {CommandName} implements Callable\u003CInteger> {\n\n    @Option(names = {\"-c\", \"--config\"}, required = true,\n            description = \"Config file path.\")\n    private Path configFile;\n\n    private final {Port} port;\n\n    public {CommandName}({Port} port) {\n        this.port = port;\n    }\n\n    @Override\n    public Integer call() {\n        try {\n            \u002F\u002F Delegate to application port\n            var result = port.execute(...);\n            System.out.printf(\"Success: %s%n\", result);\n            return ExitCode.OK;\n        } catch (DomainException e) {\n            System.err.println(\"Error: \" + e.getMessage());\n            return ExitCode.ERROR;\n        }\n    }\n}\n```\n\n### Step 3 — Generate Exit Codes (if not exists)\n\n```java\n\u002F\u002F src\u002Fmain\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002FExitCode.java\npublic final class ExitCode {\n    public static final int OK = 0;\n    public static final int ERROR = 1;\n    public static final int USAGE = 2;\n\n    private ExitCode() {}\n}\n```\n\n### Step 4 — Generate Tests\n\n```java\n\u002F\u002F src\u002Ftest\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002F{CommandName}Test.java\nclass {CommandName}Test {\n    private final {Port} port = mock({Port}.class);\n    private final CommandLine cmd = new CommandLine(new {CommandName}(port));\n\n    @Test\n    void call_validInput_returnsZero() {\n        \u002F\u002F Arrange\n        when(port.execute(any())).thenReturn(expectedResult);\n\n        \u002F\u002F Act\n        int exitCode = cmd.execute(\"--config\", \"test.yaml\");\n\n        \u002F\u002F Assert\n        assertThat(exitCode).isEqualTo(ExitCode.OK);\n    }\n\n    @Test\n    void call_missingRequiredOption_returnsUsageError() {\n        int exitCode = cmd.execute();\n        assertThat(exitCode).isEqualTo(ExitCode.USAGE);\n    }\n}\n```\n\n## Output Checklist\n\n- [ ] Command implements `Callable\u003CInteger>` (not `Runnable`)\n- [ ] Constructor injection of port (no static dependencies)\n- [ ] `ExitCode` constants used (not magic numbers)\n- [ ] `System.err` for errors, `System.out` for success output\n- [ ] `mixinStandardHelpOptions = true` on root command\n- [ ] Tests use `CommandLine.execute()` (not direct `call()`)\n- [ ] No `System.exit()` inside command logic\n\n## Knowledge Pack References\n\n- `knowledge\u002Fstack-patterns\u002Fpicocli\u002Findex.md` — Picocli patterns\n- `knowledge\u002Flayer-templates.md` — Layer template patterns\n- `knowledge\u002Farchitecture-hexagonal.md` — Hexagonal architecture\n","# Skill: Picocli Command Generator\n\n## Purpose\n\nGenerates a complete Picocli CLI command (or subcommand) following the hexagonal architecture pattern. Produces:\n\n1. `@Command` class implementing `Callable\u003CInteger>`\n2. `@Option` and `@Parameters` declarations with type converters\n3. Exit code constants\n4. Unit tests with `CommandLine.execute()` assertions\n\n## Triggers\n\n- `\u002Fpicocli-command \u003CCommandName> [--subcommand]` — generate a top-level or subcommand\n- `\u002Fpicocli-command \u003CCommandName> --root` — generate root command with standard options\n- `\u002Fpicocli-command \u003CCommandName> --crud` — generate subcommands for create\u002Flist\u002Fdelete operations\n\n## Parameters\n\n| Parameter | Required | Description |\n|-----------|----------|-------------|\n| `CommandName` | Yes | PascalCase command class name (e.g., `GenerateCommand`, `ValidateCommand`) |\n| `--subcommand` | No | Generate as subcommand (registers with parent via `subcommands =`) |\n| `--root` | No | Generate as root command with `mixinStandardHelpOptions = true` |\n| `--crud` | No | Generate create\u002Flist\u002Fdelete subcommands |\n\n## Workflow\n\n### Step 1 — Read Project Context\n\nRead existing conventions:\n- `knowledge\u002Fstack-patterns\u002Fpicocli\u002Findex.md` — Picocli patterns\n- `knowledge\u002Flayer-templates.md` — Layer template patterns\n- Existing commands in `src\u002Fmain\u002Fjava\u002F**\u002Fadapter\u002Finbound\u002Fcli\u002F` for naming conventions\n\n### Step 2 — Generate Command Class\n\n```java\n\u002F\u002F src\u002Fmain\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002F{CommandName}.java\n@Command(\n    name = \"{command-name}\",\n    description = \"{description}\",\n    mixinStandardHelpOptions = true\n)\npublic class {CommandName} implements Callable\u003CInteger> {\n\n    @Option(names = {\"-c\", \"--config\"}, required = true,\n            description = \"Config file path.\")\n    private Path configFile;\n\n    private final {Port} port;\n\n    public {CommandName}({Port} port) {\n        this.port = port;\n    }\n\n    @Override\n    public Integer call() {\n        try {\n            \u002F\u002F Delegate to application port\n            var result = port.execute(...);\n            System.out.printf(\"Success: %s%n\", result);\n            return ExitCode.OK;\n        } catch (DomainException e) {\n            System.err.println(\"Error: \" + e.getMessage());\n            return ExitCode.ERROR;\n        }\n    }\n}\n```\n\n### Step 3 — Generate Exit Codes (if not exists)\n\n```java\n\u002F\u002F src\u002Fmain\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002FExitCode.java\npublic final class ExitCode {\n    public static final int OK = 0;\n    public static final int ERROR = 1;\n    public static final int USAGE = 2;\n\n    private ExitCode() {}\n}\n```\n\n### Step 4 — Generate Tests\n\n```java\n\u002F\u002F src\u002Ftest\u002Fjava\u002F{package}\u002Fadapter\u002Finbound\u002Fcli\u002F{CommandName}Test.java\nclass {CommandName}Test {\n    private final {Port} port = mock({Port}.class);\n    private final CommandLine cmd = new CommandLine(new {CommandName}(port));\n\n    @Test\n    void call_validInput_returnsZero() {\n        \u002F\u002F Arrange\n        when(port.execute(any())).thenReturn(expectedResult);\n\n        \u002F\u002F Act\n        int exitCode = cmd.execute(\"--config\", \"test.yaml\");\n\n        \u002F\u002F Assert\n        assertThat(exitCode).isEqualTo(ExitCode.OK);\n    }\n\n    @Test\n    void call_missingRequiredOption_returnsUsageError() {\n        int exitCode = cmd.execute();\n        assertThat(exitCode).isEqualTo(ExitCode.USAGE);\n    }\n}\n```\n\n## Output Checklist\n\n- [ ] Command implements `Callable\u003CInteger>` (not `Runnable`)\n- [ ] Constructor injection of port (no static dependencies)\n- [ ] `ExitCode` constants used (not magic numbers)\n- [ ] `System.err` for errors, `System.out` for success output\n- [ ] `mixinStandardHelpOptions = true` on root command\n- [ ] Tests use `CommandLine.execute()` (not direct `call()`)\n- [ ] No `System.exit()` inside command logic\n\n## Knowledge Pack References\n\n- `knowledge\u002Fstack-patterns\u002Fpicocli\u002Findex.md` — Picocli patterns\n- `knowledge\u002Flayer-templates.md` — Layer template patterns\n- `knowledge\u002Farchitecture-hexagonal.md` — Hexagonal architecture\n",{"name":5,"model":24,"visibility":25,"description":7,"allowed-tools":26,"context-budget":32,"requires-capabilities":33},"sonnet","public",[27,28,29,30,31],"Read","Write","Edit","Bash","Skill","light",[34],"cli.picocli.framework","main","952a630c6f38d193a349d86fa18db1de8843e837","src\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fpicocli-command",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":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add review-bench\u002Federcnj_ia-dev-environment --skill picocli-command",{"tool":50,"command":51},"bunx","bunx skills add review-bench\u002Federcnj_ia-dev-environment --skill picocli-command",{"tool":53,"command":54},"pnpm","pnpm dlx skills add review-bench\u002Federcnj_ia-dev-environment --skill picocli-command","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Freview-bench\u002Federcnj_ia-dev-environment\u002Fblob\u002Fmain\u002Fsrc\u002Ftest\u002Fresources\u002Fgolden\u002Fjava-quarkus\u002F.claude\u002Fskills\u002Fpicocli-command\u002FSKILL.md",true,[],[59,66,73,80,87,94],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":65,"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":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":72,"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":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":79,"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":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":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":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"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":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"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",[],[]]