@wirecat/cli-template 0.1.1 → 0.1.3

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 (57) hide show
  1. package/.gitattributes +1 -0
  2. package/.github/workflows/changelog-guard.yml +1 -1
  3. package/.github/workflows/ci.yml +4 -4
  4. package/.github/workflows/monthly.yml +1 -1
  5. package/.github/workflows/release.yml +1 -1
  6. package/CHANGELOG.md +45 -0
  7. package/CLAUDE.md +3 -3
  8. package/README.md +14 -11
  9. package/SECURITY.md +4 -4
  10. package/config/parity-groups.json +20 -0
  11. package/contracts/help.snap +5 -5
  12. package/contracts/mcp-tools.json +5 -5
  13. package/contracts/plan.json +1 -1
  14. package/cspell.json +1 -1
  15. package/dist/bin/clidev.d.ts +3 -0
  16. package/dist/bin/clidev.d.ts.map +1 -0
  17. package/dist/bin/{app.js → clidev.js} +1 -1
  18. package/dist/bin/clidev.js.map +1 -0
  19. package/dist/identity.d.ts +1 -1
  20. package/dist/identity.d.ts.map +1 -1
  21. package/dist/identity.js +6 -6
  22. package/dist/identity.js.map +1 -1
  23. package/dist/version.d.ts +1 -1
  24. package/dist/version.js +1 -1
  25. package/docs/commands.md +38 -38
  26. package/docs/configuration.md +5 -5
  27. package/docs/dev/skills/release/SKILL.md +6 -3
  28. package/docs/dev/skills/release/fresh-audit.md +17 -0
  29. package/docs/dev/test-matrix.md +1 -1
  30. package/docs/index.md +2 -2
  31. package/docs/installation.md +4 -4
  32. package/docs/meta.json +1 -1
  33. package/docs/security.md +3 -3
  34. package/docs/troubleshooting.md +4 -4
  35. package/docs/usage.md +4 -4
  36. package/kit/README.md +18 -9
  37. package/kit/dist/manifest.js +2 -0
  38. package/kit/dist/new.js +20 -5
  39. package/kit/dist/rename.js +3 -3
  40. package/kit/dist/source.js +4 -3
  41. package/package.json +7 -6
  42. package/pnpm-workspace.yaml +5 -0
  43. package/scripts/audit.sh +2 -0
  44. package/scripts/smoke.ts +8 -8
  45. package/skills/clidev-cli/SKILL.md +21 -0
  46. package/src/identity.ts +6 -6
  47. package/src/mcp.test.ts +4 -4
  48. package/src/program.test.ts +2 -2
  49. package/src/roots.test.ts +2 -2
  50. package/src/testing/sandbox.ts +7 -7
  51. package/src/version.ts +1 -1
  52. package/template.json +7 -1
  53. package/dist/bin/app.d.ts +0 -3
  54. package/dist/bin/app.d.ts.map +0 -1
  55. package/dist/bin/app.js.map +0 -1
  56. package/skills/app-cli/SKILL.md +0 -21
  57. /package/src/bin/{app.ts → clidev.ts} +0 -0
package/.gitattributes ADDED
@@ -0,0 +1 @@
1
+ * text=auto eol=lf
@@ -9,4 +9,4 @@ permissions:
9
9
 
10
10
  jobs:
11
11
  changelog:
12
- uses: WireCatLabs/cli-base/.github/workflows/changelog-guard.yml@70449547973dd113806a6829f4591dce713b5b78 # v0.51.1
12
+ uses: WireCatLabs/cli-base/.github/workflows/changelog-guard.yml@b2d2418af0e23ecc816f3117ae2b0c627917fca5 # v0.55.0
@@ -19,16 +19,16 @@ permissions:
19
19
 
20
20
  jobs:
21
21
  ci:
22
- uses: WireCatLabs/cli-base/.github/workflows/node-ci.yml@70449547973dd113806a6829f4591dce713b5b78 # v0.51.1
22
+ uses: WireCatLabs/cli-base/.github/workflows/node-ci.yml@b2d2418af0e23ecc816f3117ae2b0c627917fca5 # v0.55.0
23
23
  with:
24
24
  pack: ${{ inputs.pack || false }}
25
25
  bun-run: pnpm build && pnpm smoke:bun
26
26
  cli: true
27
- bin: app
27
+ bin: clidev
28
28
  platforms: ${{ inputs.pack || inputs.platforms || github.event_name == 'workflow_dispatch' }}
29
29
  platform-run: |
30
- node dist/bin/app.js commands --json >/dev/null
31
- node dist/bin/app.js doctor --json >/dev/null
30
+ node dist/bin/clidev.js commands --json >/dev/null
31
+ node dist/bin/clidev.js doctor --json >/dev/null
32
32
  # No version is on npm before the first release, so there is no earlier package to upgrade from.
33
33
  skip: |
34
34
  contracts:upgrade
@@ -22,7 +22,7 @@ jobs:
22
22
  contents: read
23
23
  actions: read
24
24
  security-events: write
25
- uses: WireCatLabs/cli-base/.github/workflows/release-checks.yml@70449547973dd113806a6829f4591dce713b5b78 # v0.51.1
25
+ uses: WireCatLabs/cli-base/.github/workflows/release-checks.yml@b2d2418af0e23ecc816f3117ae2b0c627917fca5 # v0.55.0
26
26
  with:
27
27
  dependencies: true
28
28
  languages: '["actions","javascript-typescript"]'
@@ -56,7 +56,7 @@ jobs:
56
56
  contents: read
57
57
  actions: read
58
58
  security-events: write
59
- uses: WireCatLabs/cli-base/.github/workflows/release-checks.yml@70449547973dd113806a6829f4591dce713b5b78 # v0.51.1
59
+ uses: WireCatLabs/cli-base/.github/workflows/release-checks.yml@b2d2418af0e23ecc816f3117ae2b0c627917fca5 # v0.55.0
60
60
 
61
61
  build:
62
62
  needs: [checks, validation]
package/CHANGELOG.md CHANGED
@@ -3,6 +3,51 @@
3
3
  Notable changes to `@wirecat/cli-template`. One section per version, newest first; versions follow
4
4
  [semantic versioning](https://semver.org), so before `1.0.0` the skeleton may still change.
5
5
 
6
+ ## 0.1.3 — 25.10.2026
7
+
8
+ ### Added
9
+
10
+ - **`new` writes the content languages into the CLI's identity.** The `--content-lang` codes go into
11
+ `contentLanguages` in `src/identity.ts`, so the CLI's first run ticks them in advance in the search-language question.
12
+ `docs/dev/DESIGN.md` still records them with the speech-model order.
13
+ - **`scripts/audit.sh` reads `config/parity-groups.json` when the repository has one.** That file replaces
14
+ cli-base's parity groups for the audit. The template uses it to compare itself with the published CLIs.
15
+ - **The release skill ends with a fresh-agent audit.** Before the version is raised, a new subagent audits the
16
+ repository against the handbook alone, with the prompt in `docs/dev/skills/release/fresh-audit.md`, and its report
17
+ goes into the release pull request.
18
+
19
+ ### Changed — may break callers
20
+
21
+ - **The skeleton runs on cli-core 0.421.0 and cli-base 0.53.0.** A new CLI gets cli-core's changes since 0.412.0,
22
+ including the `contentLanguages` field on its identity. cli-base stays on 0.53, because cli-core 0.421.0 accepts
23
+ only cli-base 0.53.
24
+
25
+ ### Fixed
26
+
27
+ - **`new`'s next steps run in Windows PowerShell 5.1.** It printed `cd <name> && pnpm install && pnpm ci:quick`, and
28
+ PowerShell 5.1 has no `&&`. Each step is now on its own line.
29
+ - **A CLI's files keep LF line endings on Windows.** A new template-owned `.gitattributes` (`* text=auto eol=lf`)
30
+ stops git from checking files out with CRLF, which Biome's format check rejects.
31
+
32
+ ### Security
33
+
34
+ - **markdownlint-cli2's markdown-it, katex and smol-toml move past their advisories.** `pnpm-workspace.yaml` raises
35
+ them to markdown-it 15.0.3, katex 0.18.2 and smol-toml 1.9.1 while markdownlint-cli2 stays at the shared version.
36
+
37
+ ## 0.1.2 — 25.10.2026
38
+
39
+ ### Changed — may break callers
40
+
41
+ - **The template's placeholder is `clidev`, not `app`.** Readers took `app` for a real command. The template's files
42
+ now say `clidev`, `clidev-cli`, `@wirecat/clidev-cli` and `WireCatLabs/clidev-cli`, and `new` replaces them with
43
+ your CLI's names as before. `clidev` is not cli-base's `cli-dev` tool, which `new` leaves alone. A CLI made from
44
+ 0.1.0 or 0.1.1 upgrades cleanly: `upgrade` renames each template version with its own placeholders.
45
+
46
+ ### Fixed
47
+
48
+ - **A CLI made by `new` has its command.** Its `package.json` had `"bin": {}`, so `npm install -g` installed nothing to
49
+ run. `new` now writes `"bin": { "<command>": "dist/bin/<command>.js" }`.
50
+
6
51
  ## 0.1.1 — 25.10.2026
7
52
 
8
53
  ### Fixed
package/CLAUDE.md CHANGED
@@ -1,14 +1,14 @@
1
- # app — working rules
1
+ # clidev — working rules
2
2
 
3
3
  The [WireCat CLI standards](node_modules/@wirecat/cli-base/docs/standards/README.md) apply here and win over this
4
- file; it keeps only the rules of `app` itself. Start with [AGENTS.md](AGENTS.md).
4
+ file; it keeps only the rules of `clidev` itself. Start with [AGENTS.md](AGENTS.md).
5
5
 
6
6
  **What cli-core already does, this repository does not do again** — commands, the store, search, MCP and the
7
7
  permissions. A gap in cli-core is fixed in cli-core.
8
8
 
9
9
  ## Local rules
10
10
 
11
- None yet. Add a rule here only when it holds for `app` alone, and link the handbook rule it narrows.
11
+ None yet. Add a rule here only when it holds for `clidev` alone, and link the handbook rule it narrows.
12
12
 
13
13
  ## Private working folder
14
14
 
package/README.md CHANGED
@@ -1,6 +1,9 @@
1
- # app
1
+ # clidev
2
2
 
3
- `app` is a command-line tool started from [cli-template](https://github.com/WireCatLabs/cli-template), the kit for
3
+ `clidev` is a placeholder. `npx @wirecat/cli-template new` replaces it with your CLI's command word, and
4
+ `clidev-cli` with your CLI's name. It is not `cli-dev`, the developer tool in cli-base.
5
+
6
+ `clidev` is a command-line tool started from [cli-template](https://github.com/WireCatLabs/cli-template), the kit for
4
7
  new WireCat CLIs. It is a working skeleton: the shared root commands, the settings, the agent skill and the MCP
5
8
  server run, and every check of the WireCat standards passes. It does not connect to a service yet. Replace this page
6
9
  with the tool's own introduction once it does.
@@ -16,26 +19,26 @@ npx @wirecat/cli-template new cal-cli --command cal --package @wirecat/cal-cli -
16
19
  ```sh
17
20
  pnpm install
18
21
  pnpm build
19
- node dist/bin/app.js personal doctor
22
+ node dist/bin/clidev.js personal doctor
20
23
  ```
21
24
 
22
25
  `personal` is the profile: a name you choose for one account. Every command that uses an account starts with it, and
23
- none is ever assumed. `APP_PROFILE=personal` does the same for a whole shell session.
26
+ none is ever assumed. `CLIDEV_PROFILE=personal` does the same for a whole shell session.
24
27
 
25
28
  ## What you can do
26
29
 
27
30
  | Command | What it does |
28
31
  | --- | --- |
29
- | `app personal doctor` | Checks this installation: version, paths, settings and profiles, without the network |
30
- | `app commands --json` | Prints every command as JSON, for agents and scripts |
31
- | `app personal config show` | Shows each setting and where it came from |
32
- | `app skill install` | Installs the agent skill for Claude Code, Codex and Gemini CLI |
33
- | `app personal mcp` | Serves the profile's commands to an AI agent over MCP |
34
- | `app upgrade --check` | Says whether a newer version is on npm |
32
+ | `clidev personal doctor` | Checks this installation: version, paths, settings and profiles, without the network |
33
+ | `clidev commands --json` | Prints every command as JSON, for agents and scripts |
34
+ | `clidev personal config show` | Shows each setting and where it came from |
35
+ | `clidev skill install` | Installs the agent skill for Claude Code, Codex and Gemini CLI |
36
+ | `clidev personal mcp` | Serves the profile's commands to an AI agent over MCP |
37
+ | `clidev upgrade --check` | Says whether a newer version is on npm |
35
38
 
36
39
  ## For AI agents
37
40
 
38
- `app skill show` prints the rules an agent follows with this tool. `app personal mcp` serves every command to an
41
+ `clidev skill show` prints the rules an agent follows with this tool. `clidev personal mcp` serves every command to an
39
42
  agent, writes included: the profile's permissions decide what runs. See [MCP and permissions](docs/usage.md#agents).
40
43
 
41
44
  ## Documentation
package/SECURITY.md CHANGED
@@ -3,13 +3,13 @@
3
3
  Please report a security problem privately — never in a public issue:
4
4
 
5
5
  - by email: [hello@wirecat.dev](mailto:hello@wirecat.dev);
6
- - or through [GitHub's private vulnerability reporting](https://github.com/WireCatLabs/app-cli/security/advisories/new).
6
+ - or through [GitHub's private vulnerability reporting](https://github.com/WireCatLabs/clidev-cli/security/advisories/new).
7
7
 
8
- Say what you saw, how to repeat it, and the version (`app --version`). Never send a token, a password or anyone's
8
+ Say what you saw, how to repeat it, and the version (`clidev --version`). Never send a token, a password or anyone's
9
9
  private content.
10
10
 
11
- What `app` keeps on your computer: the [shared security page](https://wirecat.dev/en/docs/security) and
11
+ What `clidev` keeps on your computer: the [shared security page](https://wirecat.dev/en/docs/security) and
12
12
  [docs/security.md](docs/security.md).
13
13
 
14
- Security audits of `app` follow the shared
14
+ Security audits of `clidev` follow the shared
15
15
  [security method](https://github.com/WireCatLabs/cli-testing/tree/main/docs/security) in cli-testing.
@@ -0,0 +1,20 @@
1
+ [
2
+ {
3
+ "name": "template",
4
+ "members": ["clidev", "tg", "max", "memo", "drive", "zm", "wa"],
5
+ "covers": ["commands", "upgrade"],
6
+ "differences": []
7
+ },
8
+ {
9
+ "name": "template-config",
10
+ "members": ["clidev", "tg", "max", "wa"],
11
+ "covers": ["config"],
12
+ "differences": []
13
+ },
14
+ {
15
+ "name": "template-skill",
16
+ "members": ["clidev", "tg", "max", "memo", "zm", "wa"],
17
+ "covers": ["skill"],
18
+ "differences": []
19
+ }
20
+ ]
@@ -1,6 +1,6 @@
1
- app — a new WireCat CLI, started from cli-template
1
+ clidev — a new WireCat CLI, started from cli-template
2
2
 
3
- Usage: app <profile> <command> [options]
3
+ Usage: clidev <profile> <command> [options]
4
4
  Account commands start with your profile, a name you choose; none is ever assumed.
5
5
 
6
6
  Works with:
@@ -11,6 +11,6 @@ Works with:
11
11
  drive Google Drive and Docs as local text, searchable with your messages
12
12
  memo context <person> one person across messengers, mail, notes and meetings
13
13
 
14
- Next: app commands every command, by section
15
- app help options output, offline, timeouts, dry run
16
- For agents: app skill show rules and the discovery loop
14
+ Next: clidev commands every command, by section
15
+ clidev help options output, offline, timeouts, dry run
16
+ For agents: clidev skill show rules and the discovery loop
@@ -18,7 +18,7 @@
18
18
  "type": "object"
19
19
  },
20
20
  "command": {
21
- "description": "a command app_tools_search returned: \"messages list\"",
21
+ "description": "a command clidev_tools_search returned: \"messages list\"",
22
22
  "minLength": 1,
23
23
  "type": "string"
24
24
  }
@@ -26,7 +26,7 @@
26
26
  "required": ["command"],
27
27
  "type": "object"
28
28
  },
29
- "name": "app_read",
29
+ "name": "clidev_read",
30
30
  "outputSchema": {
31
31
  "$schema": "https://json-schema.org/draft/2020-12/schema",
32
32
  "anyOf": [
@@ -464,7 +464,7 @@
464
464
  "required": [],
465
465
  "type": "object"
466
466
  },
467
- "name": "app_tools_search",
467
+ "name": "clidev_tools_search",
468
468
  "outputSchema": {
469
469
  "$schema": "https://json-schema.org/draft/2020-12/schema",
470
470
  "properties": {},
@@ -492,7 +492,7 @@
492
492
  "type": "object"
493
493
  },
494
494
  "command": {
495
- "description": "a command app_tools_search returned: \"messages list\"",
495
+ "description": "a command clidev_tools_search returned: \"messages list\"",
496
496
  "minLength": 1,
497
497
  "type": "string"
498
498
  }
@@ -500,7 +500,7 @@
500
500
  "required": ["command"],
501
501
  "type": "object"
502
502
  },
503
- "name": "app_write",
503
+ "name": "clidev_write",
504
504
  "outputSchema": {
505
505
  "$schema": "https://json-schema.org/draft/2020-12/schema",
506
506
  "anyOf": [
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "command": "node",
3
- "args": ["../dist/bin/app.js"],
3
+ "args": ["../dist/bin/clidev.js"],
4
4
  "cases": [
5
5
  {
6
6
  "id": "help",
package/cspell.json CHANGED
@@ -6,5 +6,5 @@
6
6
  "@cspell/dict-ru_ru/cspell-ext.json"
7
7
  ],
8
8
  "ignorePaths": ["docs/dev/**", "CHANGELOG.md"],
9
- "words": ["cyrillic", "latin", "wirecat"]
9
+ "words": ["clidev", "cyrillic", "latin", "wirecat"]
10
10
  }
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=clidev.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clidev.d.ts","sourceRoot":"","sources":["../../src/bin/clidev.ts"],"names":[],"mappings":""}
@@ -11,4 +11,4 @@ try {
11
11
  finally {
12
12
  stopCatching();
13
13
  }
14
- //# sourceMappingURL=app.js.map
14
+ //# sourceMappingURL=clidev.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clidev.js","sourceRoot":"","sources":["../../src/bin/clidev.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,kBAAkB,EAAE,CAAA;AACpB,MAAM,YAAY,GAAG,YAAY,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,KAAK,IAAI,EAAE,CAAC,CAAA;AACxG,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAA;AAC7C,IAAI,CAAC;IACH,OAAO,CAAC,QAAQ,GAAG,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AACrD,CAAC;QAAS,CAAC;IACT,YAAY,EAAE,CAAA;AAChB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import type { AppIdentity } from "@wirecat/cli-core/cli";
2
- export declare const PACKAGE = "@wirecat/app-cli";
2
+ export declare const PACKAGE = "@wirecat/clidev-cli";
3
3
  export declare const IDENTITY: AppIdentity;
4
4
  export declare const SKILL: import("url").URL;
5
5
  //# sourceMappingURL=identity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,eAAO,MAAM,OAAO,qBAAqB,CAAA;AAEzC,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,KAAK,mBAAyD,CAAA"}
1
+ {"version":3,"file":"identity.d.ts","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AAGxD,eAAO,MAAM,OAAO,wBAAwB,CAAA;AAE5C,eAAO,MAAM,QAAQ,EAAE,WAOtB,CAAA;AAED,eAAO,MAAM,KAAK,mBAA4D,CAAA"}
package/dist/identity.js CHANGED
@@ -1,12 +1,12 @@
1
1
  import { VERSION } from "./version.js";
2
- export const PACKAGE = "@wirecat/app-cli";
2
+ export const PACKAGE = "@wirecat/clidev-cli";
3
3
  export const IDENTITY = {
4
- command: "app",
5
- appName: "app-cli",
6
- envPrefix: "APP",
4
+ command: "clidev",
5
+ appName: "clidev-cli",
6
+ envPrefix: "CLIDEV",
7
7
  description: "a new WireCat CLI, started from cli-template",
8
8
  version: VERSION,
9
- issues: "https://github.com/WireCatLabs/app-cli/issues/new",
9
+ issues: "https://github.com/WireCatLabs/clidev-cli/issues/new",
10
10
  };
11
- export const SKILL = new URL("../skills/app-cli/SKILL.md", import.meta.url);
11
+ export const SKILL = new URL("../skills/clidev-cli/SKILL.md", import.meta.url);
12
12
  //# sourceMappingURL=identity.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,kBAAkB,CAAA;AAEzC,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,OAAO,EAAE,KAAK;IACd,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,KAAK;IAChB,WAAW,EAAE,8CAA8C;IAC3D,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,mDAAmD;CAC5D,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,4BAA4B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA"}
1
+ {"version":3,"file":"identity.js","sourceRoot":"","sources":["../src/identity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AAEtC,MAAM,CAAC,MAAM,OAAO,GAAG,qBAAqB,CAAA;AAE5C,MAAM,CAAC,MAAM,QAAQ,GAAgB;IACnC,OAAO,EAAE,QAAQ;IACjB,OAAO,EAAE,YAAY;IACrB,SAAS,EAAE,QAAQ;IACnB,WAAW,EAAE,8CAA8C;IAC3D,OAAO,EAAE,OAAO;IAChB,MAAM,EAAE,sDAAsD;CAC/D,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,+BAA+B,EAAE,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA"}
package/dist/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.1.1";
1
+ export declare const VERSION = "0.1.3";
2
2
  //# sourceMappingURL=version.d.ts.map
package/dist/version.js CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = "0.1.1";
1
+ export const VERSION = "0.1.3";
2
2
  //# sourceMappingURL=version.js.map
package/docs/commands.md CHANGED
@@ -3,9 +3,9 @@
3
3
  # Commands
4
4
 
5
5
  Every command, option and exit code, generated from the program itself. For the same list as JSON, run
6
- `app commands --json`.
6
+ `clidev commands --json`.
7
7
 
8
- **The first word is the profile**, a name you choose: `app personal doctor`. `APP_PROFILE`
8
+ **The first word is the profile**, a name you choose: `clidev personal doctor`. `CLIDEV_PROFILE`
9
9
  does the same for a whole shell session. No profile is assumed: a command that uses an account stops without one and
10
10
  lists the profiles on this computer.
11
11
 
@@ -32,16 +32,16 @@ lists the profiles on this computer.
32
32
  | `--record` | keep this run — ids and timings, never message content. |
33
33
  | `--no-record` | do not keep it, whatever the configuration says. |
34
34
 
35
- ## `app commands`
35
+ ## `clidev commands`
36
36
 
37
37
  every command by section; --json prints its contract, one path per call
38
38
 
39
- ### `app commands info`
39
+ ### `clidev commands info`
40
40
 
41
41
  one command contract, or all schemas, error reasons and explicit overrides
42
42
 
43
43
  ```sh
44
- app commands info [path]
44
+ clidev commands info [path]
45
45
  ```
46
46
 
47
47
  | Argument | | What it is |
@@ -50,30 +50,30 @@ app commands info [path]
50
50
 
51
51
  **Returns:** one command contract, or all schemas, error reasons and explicit overrides
52
52
 
53
- **Example:** `app commands info messages list`
53
+ **Example:** `clidev commands info messages list`
54
54
 
55
- ## `app doctor`
55
+ ## `clidev doctor`
56
56
 
57
57
  check this installation: version, paths, config, profiles; no keyring or network
58
58
 
59
59
  ```sh
60
- app doctor
60
+ clidev doctor
61
61
  ```
62
62
 
63
63
  **Returns:** check this installation: version, paths, config, profiles; no keyring or network
64
64
 
65
- **Example:** `app personal doctor`, `app personal doctor --json`
65
+ **Example:** `clidev personal doctor`, `clidev personal doctor --json`
66
66
 
67
- ## `app skill`
67
+ ## `clidev skill`
68
68
 
69
69
  the instructions an agent is given for this tool
70
70
 
71
- ### `app skill show`
71
+ ### `clidev skill show`
72
72
 
73
- print SKILL.md — `app skill install` puts it where Claude Code, Codex and Gemini CLI look for it
73
+ print SKILL.md — `clidev skill install` puts it where Claude Code, Codex and Gemini CLI look for it
74
74
 
75
75
  ```sh
76
- app skill show [name]
76
+ clidev skill show [name]
77
77
  ```
78
78
 
79
79
  | Argument | | What it is |
@@ -82,16 +82,16 @@ app skill show [name]
82
82
 
83
83
  **Returns:** print the tool's instructions for AI agents
84
84
 
85
- **Example:** `app skill show`, `app skill show follow-ups`
85
+ **Example:** `clidev skill show`, `clidev skill show follow-ups`
86
86
 
87
- ### `app skill install`
87
+ ### `clidev skill install`
88
88
 
89
- write SKILL.md to \~/.claude/skills/app-cli/ (Claude Code) and \~/.agents/skills/app-cli/ (Codex, Gemini CLI)
89
+ write SKILL.md to \~/.claude/skills/clidev-cli/ (Claude Code) and \~/.agents/skills/clidev-cli/ (Codex, Gemini CLI)
90
90
 
91
91
  **Changes something on this computer only.**
92
92
 
93
93
  ```sh
94
- app skill install [options]
94
+ clidev skill install [options]
95
95
  ```
96
96
 
97
97
  | Option | What it does |
@@ -100,50 +100,50 @@ app skill install [options]
100
100
 
101
101
  **Returns:** install the tool's instructions for AI agents
102
102
 
103
- **Example:** `app skill install --for agents`
103
+ **Example:** `clidev skill install --for agents`
104
104
 
105
- ## `app mcp`
105
+ ## `clidev mcp`
106
106
 
107
- serve this profile's commands to an agent over MCP, on stdin and stdout, writes included; the profile's permissions decide — `claude mcp add app -- app personal mcp`
107
+ serve this profile's commands to an agent over MCP, on stdin and stdout, writes included; the profile's permissions decide — `claude mcp add clidev -- clidev personal mcp`
108
108
 
109
109
  **Changes something in the service.**
110
110
 
111
111
  ```sh
112
- app mcp
112
+ clidev mcp
113
113
  ```
114
114
 
115
115
  **Returns:** serve this profile's commands to an AI agent
116
116
 
117
- **Example:** `app personal mcp`
117
+ **Example:** `clidev personal mcp`
118
118
 
119
- ## `app upgrade`
119
+ ## `clidev upgrade`
120
120
 
121
- upgrade app with the package manager that installed it; --check only looks
121
+ upgrade clidev with the package manager that installed it; --check only looks
122
122
 
123
123
  **Changes something on this computer only.**
124
124
 
125
125
  ```sh
126
- app upgrade [options]
126
+ clidev upgrade [options]
127
127
  ```
128
128
 
129
129
  | Option | What it does |
130
130
  |---|---|
131
131
  | `--check` | say whether a newer version exists, and install nothing. |
132
132
 
133
- **Returns:** upgrade app with the package manager that installed it; --check only looks
133
+ **Returns:** upgrade clidev with the package manager that installed it; --check only looks
134
134
 
135
- **Example:** `app upgrade --check`, `app upgrade`
135
+ **Example:** `clidev upgrade --check`, `clidev upgrade`
136
136
 
137
- ## `app config`
137
+ ## `clidev config`
138
138
 
139
139
  the settings in force, and where each one came from
140
140
 
141
- ### `app config show`
141
+ ### `clidev config show`
142
142
 
143
143
  the profile, the profiles that exist, and each setting with where it came from
144
144
 
145
145
  ```sh
146
- app config show [options]
146
+ clidev config show [options]
147
147
  ```
148
148
 
149
149
  | Option | What it does |
@@ -152,22 +152,22 @@ app config show [options]
152
152
 
153
153
  **Returns:** the profile, the profiles that exist, and each setting with where it came from
154
154
 
155
- **Example:** `app personal config show`
155
+ **Example:** `clidev personal config show`
156
156
 
157
- ### `app config set`
157
+ ### `clidev config set`
158
158
 
159
159
  save a setting to the configuration file
160
160
 
161
161
  **Changes something on this computer only.**
162
162
 
163
163
  ```sh
164
- app config set <setting> <value> [options]
164
+ clidev config set <setting> <value> [options]
165
165
  ```
166
166
 
167
167
  | Argument | | What it is |
168
168
  |---|---|---|
169
169
  | `setting` | required | one of: limit, timeout_ms, color, sender_colors, record, keep_runs_for_days, permissions, sends_per_hour, requests_per_minute, transcribe_with, speech_model, search_catch_up, picture_search, embedding_provider, embedding_model, embedding_base_url, embedding_dims, analysis_provider, analysis_model, analysis_base_url, models, read_other_bots, update_check, skill_hint, search_stemmers.cyrillic, search_stemmers.latin, phone_countries, task_categories.<name>, task_agent_close, task_agent_close_min, task_first_pass_per_chat, account_groups.<name>. |
170
- | `value` | required | a number, true or false, or for allow a list like send,reaction; for a group tg:work,max:Alice,email:me@x. |
170
+ | `value` | required | a number, true or false; for a group tg:work,max:Alice,email:me@x. |
171
171
 
172
172
  | Option | What it does |
173
173
  |---|---|
@@ -177,16 +177,16 @@ app config set <setting> <value> [options]
177
177
 
178
178
  **Returns:** save a setting to the configuration file
179
179
 
180
- **Example:** `app personal config set limit 20`
180
+ **Example:** `clidev personal config set limit 20`
181
181
 
182
- ### `app config unset`
182
+ ### `clidev config unset`
183
183
 
184
184
  remove a setting from the configuration file
185
185
 
186
186
  **Changes something on this computer only.**
187
187
 
188
188
  ```sh
189
- app config unset <setting> [options]
189
+ clidev config unset <setting> [options]
190
190
  ```
191
191
 
192
192
  | Argument | | What it is |
@@ -201,7 +201,7 @@ app config unset <setting> [options]
201
201
 
202
202
  **Returns:** remove a setting from the configuration file
203
203
 
204
- **Example:** `app personal config unset limit`
204
+ **Example:** `clidev personal config unset limit`
205
205
 
206
206
  ## Exit codes
207
207
 
@@ -1,12 +1,12 @@
1
1
  # Settings
2
2
 
3
- Settings live in one file, `config.json`, in the folder `app personal doctor` shows. Each profile has its own part,
3
+ Settings live in one file, `config.json`, in the folder `clidev personal doctor` shows. Each profile has its own part,
4
4
  and `defaults` apply to every profile. This page lists how to see and change them.
5
5
 
6
6
  ```sh
7
- app personal config show
8
- app personal config set limit 50
9
- app personal config unset limit
7
+ clidev personal config show
8
+ clidev personal config set limit 50
9
+ clidev personal config unset limit
10
10
  ```
11
11
 
12
12
  `config show` lists each setting and where it came from: the file, a variable or the default.
@@ -14,5 +14,5 @@ app personal config unset limit
14
14
  ## Permissions
15
15
 
16
16
  `permissions` decides what a command may do for this profile: `allow`, `ask`, `readonly` or `deny`, per permission
17
- key. Over MCP there is no one to ask, so `ask` lets the command run. `APP_READ_ONLY=1` refuses every write, whatever
17
+ key. Over MCP there is no one to ask, so `ask` lets the command run. `CLIDEV_READ_ONLY=1` refuses every write, whatever
18
18
  the permissions say.
@@ -15,10 +15,13 @@ and runs `bin/release`.
15
15
  left; report anything else and fix it in the release pull request.
16
16
  3. **The changelog.** Write `## Unreleased` under the handbook's headings, each at most once: `Added`,
17
17
  `Changed — may break callers`, `Fixed`, `Security`, `Removed` (`WC-DOC-14` to `WC-DOC-18`). No internal ids.
18
- 4. **The docs.** `README.md`, `docs/*.md` and `skills/app-cli/SKILL.md` state what the code does now (`WC-DOC-3`).
18
+ 4. **The docs.** `README.md`, `docs/*.md` and `skills/clidev-cli/SKILL.md` state what the code does now (`WC-DOC-3`).
19
19
  `pnpm generate` and `pnpm test:matrix` rewrite the generated pages (`WC-DOC-4`).
20
- 5. **The version.** `npm view @wirecat/app-cli version` is what is published. Set the next version in
20
+ 5. **The fresh audit.** Start a new subagent that has none of your context, and give it the prompt in
21
+ [fresh-audit.md](fresh-audit.md) as written. Put its report in the release pull request. Fix each gap in this
22
+ repository there, or list it as a follow-up; take a gap in the handbook to cli-base.
23
+ 6. **The version.** `npm view @wirecat/clidev-cli version` is what is published. Set the next version in
21
24
  `package.json`, run `pnpm version:sync`, date the section as `## <version> — DD.MM.YYYY`, run
22
25
  `pnpm release:check` again, and open the pull request `chore(release): <version>`.
23
- 6. **The owner** merges it and runs `bin/release` on a clean `main`. `bin/release --local` publishes from this
26
+ 7. **The owner** merges it and runs `bin/release` on a clean `main`. `bin/release --local` publishes from this
24
27
  computer when GitHub Actions cannot, with the owner's own npm login or `NPM_TOKEN`.
@@ -0,0 +1,17 @@
1
+ # Fresh-agent audit
2
+
3
+ Step 5 of the [release skill](SKILL.md) gives the prompt below to a new subagent that has none of the releasing
4
+ agent's context. Give it as written.
5
+
6
+ ## Prompt
7
+
8
+ You audit a WireCat CLI repository, in the current folder. Use only two sources: the handbook, starting at
9
+ `node_modules/@wirecat/cli-base/docs/standards/README.md`, and the repository itself. Do not read plans, journals
10
+ or earlier reviews. Run `pnpm install` first if `node_modules` is missing.
11
+
12
+ Check the repository against every handbook page that applies to it: the code, the docs, the configs and the
13
+ workflows. You may run the package scripts. Change nothing.
14
+
15
+ Report each gap on one line: the rule id or handbook page, the file, what is wrong, and where the fix belongs: in
16
+ this repository, or in the handbook, when a rule is unclear, missing or contradicts another. End with the number
17
+ of gaps of each kind. If you find none, say so.