@captain_z/zsk 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +147 -0
  2. package/dist/bin.d.ts +2 -0
  3. package/dist/bin.js +155 -0
  4. package/dist/bin.js.map +1 -0
  5. package/dist/commands/add.d.ts +13 -0
  6. package/dist/commands/add.js +418 -0
  7. package/dist/commands/add.js.map +1 -0
  8. package/dist/commands/init.d.ts +1 -0
  9. package/dist/commands/init.js +127 -0
  10. package/dist/commands/init.js.map +1 -0
  11. package/dist/commands/install.d.ts +7 -0
  12. package/dist/commands/install.js +54 -0
  13. package/dist/commands/install.js.map +1 -0
  14. package/dist/commands/project-init.d.ts +6 -0
  15. package/dist/commands/project-init.js +63 -0
  16. package/dist/commands/project-init.js.map +1 -0
  17. package/dist/commands/remove.d.ts +11 -0
  18. package/dist/commands/remove.js +209 -0
  19. package/dist/commands/remove.js.map +1 -0
  20. package/dist/core/bundles.d.ts +7 -0
  21. package/dist/core/bundles.js +39 -0
  22. package/dist/core/bundles.js.map +1 -0
  23. package/dist/core/capabilities.d.ts +25 -0
  24. package/dist/core/capabilities.js +79 -0
  25. package/dist/core/capabilities.js.map +1 -0
  26. package/dist/core/installer.d.ts +18 -0
  27. package/dist/core/installer.js +114 -0
  28. package/dist/core/installer.js.map +1 -0
  29. package/dist/core/manifest.d.ts +39 -0
  30. package/dist/core/manifest.js +89 -0
  31. package/dist/core/manifest.js.map +1 -0
  32. package/dist/core/scaffolder.d.ts +14 -0
  33. package/dist/core/scaffolder.js +71 -0
  34. package/dist/core/scaffolder.js.map +1 -0
  35. package/dist/core/skills.d.ts +17 -0
  36. package/dist/core/skills.js +89 -0
  37. package/dist/core/skills.js.map +1 -0
  38. package/dist/core/targets.d.ts +9 -0
  39. package/dist/core/targets.js +50 -0
  40. package/dist/core/targets.js.map +1 -0
  41. package/dist/ui/prompts.d.ts +10 -0
  42. package/dist/ui/prompts.js +40 -0
  43. package/dist/ui/prompts.js.map +1 -0
  44. package/package.json +39 -0
  45. package/templates/project-init/.raws/FIGMA-INDEX.md +38 -0
  46. package/templates/project-init/.raws/README.md +37 -0
  47. package/templates/project-init/.raws/SRS.md +73 -0
  48. package/templates/project-init/CLAUDE.md +45 -0
  49. package/templates/project-init/project-config.md +296 -0
package/README.md ADDED
@@ -0,0 +1,147 @@
1
+ # @captain_z/zsk
2
+
3
+ ZNorth Standard Kit CLI — `npx zsk` 一个命令装 / 刷新 / 移除一套 skill。
4
+
5
+ ## 入口
6
+
7
+ ```bash
8
+ # 装(默认命令):向导自适应新装 / 刷新 / 追加
9
+ npx @captain_z/zsk # 等同 `zsk add`
10
+ npx @captain_z/zsk add
11
+
12
+ # 移除
13
+ npx @captain_z/zsk remove
14
+
15
+ # 浏览
16
+ npx @captain_z/zsk list
17
+ npx @captain_z/zsk list --json
18
+
19
+ # 项目脚手架(非破坏性)
20
+ npx @captain_z/zsk project-init
21
+ ```
22
+
23
+ ## 命令一览
24
+
25
+ | 命令 | 作用 | 默认 UX |
26
+ | --- | --- | --- |
27
+ | `add [<pattern>...]` | 装 / 刷新 / 追加。target 空 → 新装;有 manifest → 自动进刷新岔路 | 自适应 clack 向导,两级多选 |
28
+ | `remove [<pattern>...]` \| `rm` | 从有 `zsk-manifest.json` 的目录移除;手改文件自动备份 | 多选 + 强确认 |
29
+ | `list [--bundle=<n>] [--json]` | 浏览 bundle / skill 清单 | 非交互 |
30
+ | `project-init` | 脚手架 `project-config.md` + `.raws/` + `CLAUDE.md` | 非破坏性,默认跳过已存在文件 |
31
+ | `doctor` / `lint` | 校验(Phase 4 实现) | stub |
32
+
33
+ ## `zsk add` 向导分支
34
+
35
+ ```
36
+ target-first → 预检 manifest
37
+ ├─ 有 manifest → 刷新 / 追加 / 退出
38
+ │ ↳ 刷新:全部官方变更(跳过手改) / 含手改强刷(备份)
39
+ └─ 空 target → 套件 vs 自选(两级多选)
40
+ ↳ groupMultiselect 按领域分组;套件预勾选
41
+ ```
42
+
43
+ 完整 UX 见 [ARCHITECTURE.md §6.4](../../ARCHITECTURE.md#64-zsk-add-自适应-clack-向导)。
44
+
45
+ ## flag 参考
46
+
47
+ ### 公共(`add` / `remove`)
48
+
49
+ | Flag | 作用 |
50
+ | --- | --- |
51
+ | `--target <path>` | 目标目录(支持 `~` / 绝对 / 相对);非 TTY 必填 |
52
+ | `--skill <pattern>` | skill 过滤器,可重复;`'*'` = 全部,支持 glob(`zsk:a11y-*`) |
53
+ | `--command <pattern>` / `--agent <pattern>` / `--hook <pattern>` / `--mcp-server <pattern>` / `--prompt <pattern>` | 其他能力类型(语法就位,MVP 空集) |
54
+ | `--yes` | 跳过所有 confirm;非 TTY 必填 |
55
+
56
+ ### `add` 独有
57
+
58
+ | Flag | 作用 |
59
+ | --- | --- |
60
+ | `[<pattern>...]` 位置参 | bundle 名(跳套件选择)/ `zsk:<slug>` / glob(跳两屏) |
61
+ | `--on-conflict <mode>` | `skip` / `overwrite` / `backup`(默认 `backup`) |
62
+ | `--dry-run` | 打印计划,不落盘 |
63
+
64
+ ### flag 预填对应步骤
65
+
66
+ | Flag 给了 | 跳过哪一步 |
67
+ | --- | --- |
68
+ | `--target` | "装到哪里?" |
69
+ | `<pattern>` = bundle 名 | 第 1 屏(直接进 groupMultiselect,预勾选) |
70
+ | `<pattern>` = `zsk:...` / glob | 两屏都跳过,pattern 匹配即装 |
71
+ | `--skill='*'` | 整个"装什么"两屏跳过(= 该类型全装) |
72
+ | `--on-conflict` | "冲突策略" |
73
+ | `--yes` | 所有 confirm;岔路 A 默认选"刷新" |
74
+ | `--dry-run` | 执行步骤换成 diff 预览 |
75
+
76
+ ## 典型场景
77
+
78
+ ```bash
79
+ # 新装推荐套件(完全交互)
80
+ npx @captain_z/zsk add
81
+
82
+ # CI:新装 sdlc-only 到全局
83
+ npx @captain_z/zsk add sdlc-only --target=~/.claude/skills --on-conflict=backup --yes
84
+
85
+ # CI:全量刷新
86
+ npx @captain_z/zsk add --skill='*' --target=~/.claude/skills --on-conflict=backup --yes
87
+
88
+ # 追加单颗
89
+ npx @captain_z/zsk add zsk:a11y-web --target=~/.claude/skills
90
+
91
+ # glob 装一组
92
+ npx @captain_z/zsk add 'zsk:a11y-*' --target=~/.claude/skills
93
+
94
+ # 预览
95
+ npx @captain_z/zsk add frontend-project --target=~/.claude/skills --dry-run
96
+
97
+ # 刷新(已装目录,--yes 默认走 refresh)
98
+ npx @captain_z/zsk add --target=~/.claude/skills --yes
99
+
100
+ # 移除两颗
101
+ npx @captain_z/zsk remove --target=~/.claude/skills --skill='zsk:i18n' --skill='zsk:typescript' --yes
102
+
103
+ # 按 glob 移除
104
+ npx @captain_z/zsk remove --target=~/.claude/skills 'zsk:react-*'
105
+ ```
106
+
107
+ ## `zsk-manifest.json` 契约
108
+
109
+ 装机目录会生成一份 manifest,驱动后续 add/remove/doctor:
110
+
111
+ ```json
112
+ {
113
+ "$schema": "https://zsk.codeshareman.dev/manifest.v1.json",
114
+ "version": 1,
115
+ "zskVersion": "0.2.0",
116
+ "installedAt": "2026-04-19T15:30:12Z",
117
+ "bundle": "frontend-project",
118
+ "skills": [
119
+ { "name": "zsk:spec", "version": "0.2.0", "sha256": "…", "relPath": "zsk-spec/SKILL.md" }
120
+ ]
121
+ }
122
+ ```
123
+
124
+ - `sha256` → 用户手改检测(刷新/移除前提示 + 备份)
125
+ - `bundle` → 下次刷新默认按同 bundle 重算
126
+ - schema v1 向后兼容
127
+
128
+ ## 非 TTY / CI 规则
129
+
130
+ | 环境 | 要求 |
131
+ | --- | --- |
132
+ | 非 TTY · 新装 | `--yes` + `--target` + (pattern 位置参 或 `--skill=<p>`) |
133
+ | 非 TTY · 刷新(target 有 manifest) | `--yes` + `--target` 即可,自动识别 |
134
+ | 非 TTY · 移除 | `--yes` + `--target` + pattern / `--skill=<p>` |
135
+ | TTY + 完整 flags | 跳过所有 clack |
136
+ | TTY + 部分 flags | 已给的预填跳步,未给的进 clack |
137
+
138
+ ## 开发
139
+
140
+ ```bash
141
+ pnpm -F @captain_z/zsk dev --help
142
+ pnpm -F @captain_z/zsk dev add sdlc-only --target=/tmp/t --on-conflict=backup --yes --dry-run
143
+ pnpm -F @captain_z/zsk typecheck
144
+ pnpm -F @captain_z/zsk build # 编译到 dist/
145
+ ```
146
+
147
+ 设计文档:[ARCHITECTURE.md §6](../../ARCHITECTURE.md#6-cliclackprompts)。
package/dist/bin.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ #!/usr/bin/env node
2
+ export {};
package/dist/bin.js ADDED
@@ -0,0 +1,155 @@
1
+ #!/usr/bin/env node
2
+ //
3
+ // @captain_z/zsk · CLI entry
4
+ //
5
+ // Command dispatch: commander
6
+ // UX primitives: @clack/prompts
7
+ //
8
+ // Commands (see ARCHITECTURE.md §6):
9
+ // add [pattern...] adaptive install wizard (replaces init + install)
10
+ // remove [pattern...] multi-select removal (replaces uninstall)
11
+ // list browse bundles / installed skills
12
+ // project-init scaffold project-config.md + .raws/ + CLAUDE.md
13
+ // doctor, lint scaffold stubs
14
+ import { Command, Option } from "commander";
15
+ import { intro, outro, log } from "@clack/prompts";
16
+ import pc from "picocolors";
17
+ import { loadBundles } from "./core/bundles.js";
18
+ const VERSION = "0.0.0";
19
+ const program = new Command();
20
+ program
21
+ .name("zsk")
22
+ .description("ZNorth Standard Kit — skill installer")
23
+ .version(VERSION, "-v, --version");
24
+ // ---- add --------------------------------------------------------------------
25
+ program
26
+ .command("add", { isDefault: true })
27
+ .description("install / refresh / append skills (adaptive wizard, target state drives branches)")
28
+ .argument("[pattern...]", "bundle name, zsk:<slug>, or glob")
29
+ .option("--target <path>", "install target directory")
30
+ .option("--yes", "non-interactive; defaults to refresh when already installed")
31
+ .addOption(new Option("--on-conflict <mode>", "skip | overwrite | backup").choices([
32
+ "skip",
33
+ "overwrite",
34
+ "backup",
35
+ ]))
36
+ .option("--dry-run", "preview without writing")
37
+ .option("--skill <pattern>", "skill filter (repeatable; '*' for all, supports glob)", collect)
38
+ .option("--command <pattern>", "command filter (repeatable)", collect)
39
+ .option("--agent <pattern>", "agent filter (repeatable)", collect)
40
+ .option("--hook <pattern>", "hook filter (repeatable)", collect)
41
+ .option("--mcp-server <pattern>", "mcp server filter (repeatable)", collect)
42
+ .option("--prompt <pattern>", "prompt filter (repeatable)", collect)
43
+ .action(async (patterns, opts) => {
44
+ const { run } = await import("./commands/add.js");
45
+ await run(patterns, opts, VERSION);
46
+ });
47
+ // ---- remove -----------------------------------------------------------------
48
+ program
49
+ .command("remove")
50
+ .alias("rm")
51
+ .description("remove zsk-installed skills (hand-modified files are backed up)")
52
+ .argument("[pattern...]", "zsk:<slug> or glob")
53
+ .option("--target <path>", "target directory (default: prompt among managed)")
54
+ .option("--yes", "skip hard confirm (destructive; CI only)")
55
+ .option("--skill <pattern>", "skill filter (repeatable)", collect)
56
+ .option("--command <pattern>", "command filter (repeatable)", collect)
57
+ .option("--agent <pattern>", "agent filter (repeatable)", collect)
58
+ .option("--hook <pattern>", "hook filter (repeatable)", collect)
59
+ .option("--mcp-server <pattern>", "mcp server filter (repeatable)", collect)
60
+ .option("--prompt <pattern>", "prompt filter (repeatable)", collect)
61
+ .action(async (patterns, opts) => {
62
+ const { run } = await import("./commands/remove.js");
63
+ await run(patterns, opts, VERSION);
64
+ });
65
+ // ---- project-init -----------------------------------------------------------
66
+ program
67
+ .command("project-init")
68
+ .description("scaffold project-config.md + .raws/ + CLAUDE.md into the current project (non-destructive)")
69
+ .option("--target <path>", "project directory (default: cwd)")
70
+ .option("--yes", "non-interactive mode")
71
+ .option("--overwrite", "overwrite existing files (destructive)")
72
+ .action(async (opts) => {
73
+ const { run } = await import("./commands/project-init.js");
74
+ await run(opts);
75
+ });
76
+ // ---- list -------------------------------------------------------------------
77
+ program
78
+ .command("list")
79
+ .description("list available bundles / skills")
80
+ .option("-b, --bundle <name>", "filter to a specific bundle")
81
+ .option("--json", "JSON output (for scripts)")
82
+ .action(async (opts) => {
83
+ await runList(opts);
84
+ });
85
+ // ---- stubs (doctor / lint) -------------------------------------------------
86
+ program
87
+ .command("doctor")
88
+ .description("validate installed skills (frontmatter / manifest drift)")
89
+ .option("--target <path>", "target directory to check")
90
+ .action(async () => {
91
+ await stub("doctor");
92
+ });
93
+ program
94
+ .command("lint")
95
+ .description("lint .best-practices/ frontmatter (delegates to tools/lint-frontmatter.ts)")
96
+ .action(async () => {
97
+ await stub("lint");
98
+ });
99
+ // ---- list implementation ----------------------------------------------------
100
+ async function runList(opts) {
101
+ const bundles = await loadBundles();
102
+ const pick = opts.bundle;
103
+ const asJson = Boolean(opts.json);
104
+ if (pick) {
105
+ const b = bundles[pick];
106
+ if (!b) {
107
+ console.error(`Unknown bundle: "${pick}"`);
108
+ console.error(`Available: ${Object.keys(bundles).join(", ")}`);
109
+ process.exit(1);
110
+ }
111
+ if (asJson) {
112
+ console.log(JSON.stringify({ [pick]: b }, null, 2));
113
+ }
114
+ else {
115
+ printBundle(pick, b);
116
+ }
117
+ return;
118
+ }
119
+ if (asJson) {
120
+ console.log(JSON.stringify(bundles, null, 2));
121
+ return;
122
+ }
123
+ console.log(`\n${pc.bold("Available bundles:")}\n`);
124
+ for (const [name, b] of Object.entries(bundles)) {
125
+ const count = b.skills.length === 0 ? "interactive" : `${b.skills.length} skills`;
126
+ console.log(` ${pc.cyan(name.padEnd(32))} ${pc.dim(count.padEnd(15))} ${b.hint}`);
127
+ }
128
+ console.log();
129
+ }
130
+ function printBundle(name, b) {
131
+ console.log(`\n${pc.bold(name)} · ${b.label}`);
132
+ console.log(` ${pc.dim(b.hint)}`);
133
+ if (b.skills.length === 0) {
134
+ console.log(` ${pc.italic("interactive bundle — skills chosen at add")}`);
135
+ return;
136
+ }
137
+ console.log(` ${pc.dim(`${b.skills.length} skills:`)}`);
138
+ for (const s of b.skills)
139
+ console.log(` - ${s}`);
140
+ }
141
+ // ---- utilities --------------------------------------------------------------
142
+ function collect(value, previous) {
143
+ return previous ? [...previous, value] : [value];
144
+ }
145
+ async function stub(cmd) {
146
+ intro(pc.bold("zsk") + " · ZNorth Standard Kit");
147
+ log.warn(`"${cmd}" is scaffolded but not yet implemented.`);
148
+ log.info(`See ARCHITECTURE.md §6 for the planned UX.`);
149
+ outro(`For now, run ${pc.cyan("zsk list")} or ${pc.cyan("zsk --help")}.`);
150
+ }
151
+ program.parseAsync(process.argv).catch((err) => {
152
+ console.error(err instanceof Error ? err.message : String(err));
153
+ process.exit(1);
154
+ });
155
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../src/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export type AddOptions = {
2
+ target?: string;
3
+ yes?: boolean;
4
+ onConflict?: string;
5
+ dryRun?: boolean;
6
+ skill?: string[];
7
+ command?: string[];
8
+ agent?: string[];
9
+ hook?: string[];
10
+ mcpServer?: string[];
11
+ prompt?: string[];
12
+ };
13
+ export declare function run(positional: string[], opts: AddOptions, zskVersion: string): Promise<void>;