@przeprogramowani/10x-cli 1.19.1 → 1.21.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.
- package/README.md +59 -14
- package/dist/index.mjs +1922 -1093
- package/package.json +1 -1
- package/skills/10x-cli-guide/SKILL.md +45 -8
package/README.md
CHANGED
|
@@ -44,7 +44,7 @@ Once installed, just tell your agent to **set up 10x-cli** and it will pick up t
|
|
|
44
44
|
## Quick Start
|
|
45
45
|
|
|
46
46
|
```bash
|
|
47
|
-
10x auth # Authenticate with your email
|
|
47
|
+
10x auth # Authenticate with your email (magic link or Circle message)
|
|
48
48
|
10x list # Browse available modules and lessons
|
|
49
49
|
10x get m1l1 # Fetch and apply lesson artifacts
|
|
50
50
|
10x sync # Update everything you've downloaded; show what changed
|
|
@@ -57,6 +57,7 @@ Once installed, just tell your agent to **set up 10x-cli** and it will pick up t
|
|
|
57
57
|
| Command | Description |
|
|
58
58
|
|---------|-------------|
|
|
59
59
|
| `10x auth` | Magic-link login with your Circle-registered email |
|
|
60
|
+
| `10x auth --method circle` | No email received? Get the approval link as a Circle message instead |
|
|
60
61
|
| `10x list` | Browse modules and lessons in your course |
|
|
61
62
|
| `10x get <ref>` | Fetch a lesson and apply artifacts to your workspace |
|
|
62
63
|
| `10x sync` | Bulk-download / refresh lessons and report what changed upstream |
|
|
@@ -68,13 +69,13 @@ Once installed, just tell your agent to **set up 10x-cli** and it will pick up t
|
|
|
68
69
|
|
|
69
70
|
| Flag | Description |
|
|
70
71
|
|------|-------------|
|
|
71
|
-
| `--tool <tool>` | AI coding tool: `claude-code`, `cursor`, `copilot`, `codex`, `
|
|
72
|
+
| `--tool <tool>` | AI coding tool: `claude-code`, `cursor`, `copilot`, `codex`, `devin-desktop`, `gemini`, `generic` |
|
|
72
73
|
| `--print` | Output artifact content to stdout instead of writing files |
|
|
73
74
|
| `--type <type>` | Filter by artifact type: `skills`, `prompts`, `rules`, `configs` |
|
|
74
75
|
| `--name <name>` | Filter by artifact name (requires `--type`) |
|
|
75
76
|
| `--dry-run` | Show what would be written without touching the filesystem |
|
|
76
|
-
| `--course <slug>` |
|
|
77
|
-
| `--no-course-rules` | Skip the course rules block in your rules file (`CLAUDE.md`/`AGENTS.md`);
|
|
77
|
+
| `--course <slug>` | Select an entitled course ID or slug; default is the project edition or API recommendation |
|
|
78
|
+
| `--no-course-rules` | Skip the course rules block in your rules file (`CLAUDE.md`/`AGENTS.md`); removes an unchanged block whose ownership and baseline are known. Use `--course-rules` to re-enable. |
|
|
78
79
|
|
|
79
80
|
#### Examples
|
|
80
81
|
|
|
@@ -96,7 +97,7 @@ Once installed, just tell your agent to **set up 10x-cli** and it will pick up t
|
|
|
96
97
|
10x get m1l1 --tool cursor
|
|
97
98
|
|
|
98
99
|
# Skip the course rules block (use only your rules). Persisted across runs;
|
|
99
|
-
#
|
|
100
|
+
# an unchanged block with a known baseline is removed. Re-enable later with --course-rules.
|
|
100
101
|
10x get m1l1 --no-course-rules
|
|
101
102
|
10x get m1l2 --course-rules
|
|
102
103
|
|
|
@@ -117,17 +118,17 @@ already downloaded; `--all` pulls every unlocked lesson at once.
|
|
|
117
118
|
|
|
118
119
|
Unchanged lessons are skipped **without a download** — the catalog advertises a
|
|
119
120
|
per-lesson `contentHash` that the CLI compares against what it last applied, so the
|
|
120
|
-
common "nothing changed" case
|
|
121
|
+
common "nothing changed" case avoids lesson downloads. Skipping also requires the same language/tool/rules representation and intact tracked local files; missing files are repaired and local edits still surface as conflicts.
|
|
121
122
|
|
|
122
123
|
| Flag | Description |
|
|
123
124
|
|------|-------------|
|
|
124
125
|
| `--all` | Sync every unlocked lesson, not just the ones you've downloaded |
|
|
125
126
|
| `--module <m>` | Limit to one module (e.g. `m2` or `2`) |
|
|
126
127
|
| `--dry-run` | Preview what would change without writing anything |
|
|
127
|
-
| `--force` |
|
|
128
|
+
| `--force` | Fetch again and overwrite local skill/prompt edits; protected rules and config templates remain guarded |
|
|
128
129
|
| `--tool <tool>` | AI coding tool (same set as `get`) |
|
|
129
130
|
| `--lang <lang>` | Content language: `en` (default) or `pl` |
|
|
130
|
-
| `--course <slug>` |
|
|
131
|
+
| `--course <slug>` | Select an entitled course ID or slug; default is the project edition or API recommendation |
|
|
131
132
|
| `--no-course-rules` | Skip the course rules block (same semantics as `get`) |
|
|
132
133
|
|
|
133
134
|
```bash
|
|
@@ -158,9 +159,7 @@ m2l3 — conflicts (1 skipped)
|
|
|
158
159
|
```
|
|
159
160
|
|
|
160
161
|
Run that `10x get …` to take a single update, or `10x sync --force` to take them
|
|
161
|
-
all
|
|
162
|
-
(never overwritten) and rules are sentinel-managed, so they aren't part of the
|
|
163
|
-
"what changed" report.
|
|
162
|
+
all for skills and prompts. Config templates are create-only. Course rules retain a separate upstream baseline: local edits or a missing baseline require explicit resolution, including when `--force` or `--no-course-rules` is used. Text outside the managed markers is preserved.
|
|
164
163
|
|
|
165
164
|
**Exit code is worst-outcome:** `0` when everything is clean/unchanged (a skipped
|
|
166
165
|
conflict is reported, not a failure), `1` if any lesson failed to fetch. The full
|
|
@@ -197,7 +196,7 @@ scoring live in the template and the instance.
|
|
|
197
196
|
| Flag | Description |
|
|
198
197
|
|------|-------------|
|
|
199
198
|
| `--template-version <tag>` | Template tag to install (default: latest) |
|
|
200
|
-
| `--tool <id>` | Agent tool for skill placement (`claude-code`, `cursor`, `copilot`, `codex`, `
|
|
199
|
+
| `--tool <id>` | Agent tool for skill placement (`claude-code`, `cursor`, `copilot`, `codex`, `devin-desktop`, `gemini`, `generic`) |
|
|
201
200
|
| `--yes` | Run non-interactively, accepting defaults |
|
|
202
201
|
|
|
203
202
|
```bash
|
|
@@ -239,11 +238,14 @@ On first run, the CLI prompts you to choose your AI coding tool. Artifacts are w
|
|
|
239
238
|
| Cursor | `.cursor/` | `.cursor/rules/10x-course.mdc` |
|
|
240
239
|
| GitHub Copilot | `.github/` | `.github/copilot-instructions.md` |
|
|
241
240
|
| Codex CLI | `.agents/` | `AGENTS.md` |
|
|
242
|
-
|
|
|
241
|
+
| Devin Desktop | `.devin/` | `AGENTS.md` |
|
|
243
242
|
| Gemini CLI | `.gemini/` | `GEMINI.md` |
|
|
244
243
|
| Generic | `.ai/` | `AGENTS.md` |
|
|
245
244
|
|
|
246
|
-
Override
|
|
245
|
+
Override with `--tool <name>`. Validated writing commands save your choice in `~/.config/10x-cli/config.json`. Previews leave it unchanged.
|
|
246
|
+
The former `windsurf` ID remains accepted as an alias and is upgraded to
|
|
247
|
+
`devin-desktop`; existing `.windsurf/` artifacts can be migrated by the normal
|
|
248
|
+
tool-switch prompt.
|
|
247
249
|
|
|
248
250
|
## Development
|
|
249
251
|
|
|
@@ -269,3 +271,46 @@ CI runs lint, typecheck, tests, and build checks on every PR. Releases are autom
|
|
|
269
271
|
## License
|
|
270
272
|
|
|
271
273
|
MIT
|
|
274
|
+
|
|
275
|
+
## Course selection and project edition
|
|
276
|
+
|
|
277
|
+
`get`, `list`, and `sync` select the explicit `--course` first, then the project's edition, then the live API recommendation. A new project with only v3 access selects v3, with only v4 selects v4, and with both selects published, available v4. An unpublished v4 can leave v3 as the recommendation; network or backend failures are reported instead of falling back. Output includes the course and selection reason.
|
|
278
|
+
|
|
279
|
+
The first validated write records `{ "version": 1, "course": "10xdevs4" }` (or `10xdevs3`) in the root `.10x-cli.json`, shared across AI tool profiles. Existing supported v2/v3 manifests preserve their recorded edition. All profiles, including legacy Windsurf, must agree. Corrupt, unknown-version, or conflicting manifests block writes and must be preserved for repair. Artifact names never infer an edition.
|
|
280
|
+
|
|
281
|
+
Ordinary `get` and `sync` cannot change a bound project's edition. Start v4 in a separate directory while retaining the v3 project. Read-only inspection of another entitled edition is allowed with `--course`. Do not delete the binding or manifests to bypass an edition conflict. Course edition and manifest schema version are separate concepts.
|
|
282
|
+
|
|
283
|
+
`list`, `get --print`, `get --dry-run`, `sync --dry-run`, and `doctor` preserve project files and tool/language preferences, including interactive tool choices. Auth token rotation may update only the credential store. Failed download, signature, course, or path validation leaves a new project unbound. Once writing starts, its binding remains even if an I/O operation fails, so retry stays on the same edition. `auth --status` and `doctor` distinguish token expiry from live course access.
|
|
284
|
+
|
|
285
|
+
|
|
286
|
+
## Candidate verification and v4 release
|
|
287
|
+
|
|
288
|
+
Using v4 requires a CLI version with course discovery and project edition binding.
|
|
289
|
+
Existing v3 projects remain usable without a new flag or an edition migration.
|
|
290
|
+
Start v4 in a separate project directory; this release includes no edition migration
|
|
291
|
+
command. Support files inside each skill directory are downloaded together with
|
|
292
|
+
`SKILL.md`, including selector and stack-assessment references.
|
|
293
|
+
|
|
294
|
+
Before publication, CI tests the exact CLI and Toolkit candidate commits together
|
|
295
|
+
on Linux and Windows using real local auth callback, polling and token refresh.
|
|
296
|
+
It also exercises the actual released npm 1.20.0 CLI against the candidate API and
|
|
297
|
+
this candidate against existing v2/v3-manifest projects. Automated fixtures send no
|
|
298
|
+
emails. npm latest or a different branch cannot stand in for the candidate binary.
|
|
299
|
+
|
|
300
|
+
The private Toolkit release runbook `docs/how-to/release-10xdevs4-cli.md` documents
|
|
301
|
+
the required full candidate SHA pair, vetted v3 fixture artifact, exact v4 stage
|
|
302
|
+
and secured preparation Worker/content revisions. Publication depends on the
|
|
303
|
+
coordinated gate plus normal Linux/Windows tests, builds and smoke checks. The
|
|
304
|
+
operator must still verify secured production access and final v4 content before
|
|
305
|
+
npm publication; passing a local test does not execute that rollout.
|
|
306
|
+
|
|
307
|
+
For deterministic contract checks, export `/openapi.json` from the exact local
|
|
308
|
+
candidate Worker, then run:
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
OPENAPI_SPEC_PATH=/absolute/candidate-openapi.json bun run generate-types --check
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
Check mode reads that file and compares the generated result without changing
|
|
315
|
+
`src/generated/api-types.ts`. To regenerate, omit `--check` while keeping the same
|
|
316
|
+
source file. Do not regenerate candidate contracts from the production API.
|