@przeprogramowani/10x-cli 1.24.0 → 1.25.1
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 +19 -17
- package/dist/index.mjs +104 -75
- package/package.json +1 -1
- package/skills/10x-cli-guide/SKILL.md +31 -20
- package/skills/10x-cli-guide/references/compatibility.md +27 -19
- package/skills/10x-cli-setup/SKILL.md +12 -4
- package/skills/10x-cli-setup/references/compatibility.md +27 -19
package/README.md
CHANGED
|
@@ -101,10 +101,10 @@ separate project from public copies, after setup/auth:
|
|
|
101
101
|
10x_cli() { npx --yes "@przeprogramowani/10x-cli@$CLI_VERSION" "$@"; }
|
|
102
102
|
10x_cli --version
|
|
103
103
|
10x_cli get --help
|
|
104
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
105
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
106
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
107
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
104
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl --dry-run
|
|
105
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl
|
|
106
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl --dry-run
|
|
107
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl
|
|
108
108
|
```
|
|
109
109
|
|
|
110
110
|
Source membership does not prove publication. Confirm skill-filter support and direct
|
|
@@ -123,27 +123,29 @@ per-skill unregister is promised. See the compatibility reference for details.
|
|
|
123
123
|
## Quick Start
|
|
124
124
|
|
|
125
125
|
Use an existing verified global/standalone `10x`, or the pinned `10x_cli` runner
|
|
126
|
-
above. Retain your v3 project and use a separate v4 exercise directory.
|
|
127
|
-
|
|
126
|
+
above. Retain your v3 project and use a separate v4 exercise directory. Leave
|
|
127
|
+
`--course` out: an unbound directory takes the highest edition your account can
|
|
128
|
+
reach, a bound one keeps its own, and `10x doctor` reports which edition this
|
|
129
|
+
project is on. After checking skill-filter capability and content availability. Sync later refreshes
|
|
128
130
|
whole downloaded lessons, so inspect its preview and accept any additional
|
|
129
131
|
artifacts/rules before applying; repeat a skill filter for a narrow update:
|
|
130
132
|
|
|
131
133
|
```bash
|
|
132
134
|
10x_cli auth --status
|
|
133
135
|
# If login is needed: 10x_cli auth (email or Circle); see auth commands below.
|
|
134
|
-
10x_cli list
|
|
135
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
136
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
137
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
138
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
139
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
140
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
141
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
142
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
136
|
+
10x_cli list
|
|
137
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
138
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
139
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
140
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
141
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
142
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
143
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
144
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
143
145
|
# Follow the guide: read each installed SKILL.md and references, then
|
|
144
146
|
# init → shape with the learner’s 10xCards inputs → PRD from approved notes.
|
|
145
|
-
10x_cli sync --
|
|
146
|
-
10x_cli sync --
|
|
147
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
148
|
+
10x_cli sync --tool claude-code --lang pl
|
|
147
149
|
10x_cli doctor
|
|
148
150
|
```
|
|
149
151
|
|
package/dist/index.mjs
CHANGED
|
@@ -3183,7 +3183,7 @@ var cac = (name = "") => new CAC(name);
|
|
|
3183
3183
|
// package.json
|
|
3184
3184
|
var package_default = {
|
|
3185
3185
|
name: "@przeprogramowani/10x-cli",
|
|
3186
|
-
version: "1.
|
|
3186
|
+
version: "1.25.1",
|
|
3187
3187
|
description: "Open-source CLI for 10xDevs course content",
|
|
3188
3188
|
repository: {
|
|
3189
3189
|
type: "git",
|
|
@@ -6299,11 +6299,10 @@ import {
|
|
|
6299
6299
|
} from "node:fs";
|
|
6300
6300
|
import { dirname as dirname4, join as join8 } from "node:path";
|
|
6301
6301
|
var CLI_VERSION = package_default.version;
|
|
6302
|
-
|
|
6303
|
-
async function applyBundle(bundle, projectRoot, options = {}) {
|
|
6302
|
+
async function applyBundle(bundle, projectRoot, options) {
|
|
6304
6303
|
const dryRun = options.dryRun === true;
|
|
6305
6304
|
const partial = options.partial === true;
|
|
6306
|
-
const course = options.course
|
|
6305
|
+
const course = options.course;
|
|
6307
6306
|
const profile = options.profile ?? PROFILES[DEFAULT_TOOL];
|
|
6308
6307
|
const applyCourseRules = options.applyCourseRules !== false;
|
|
6309
6308
|
const plan = planBundle(bundle, projectRoot, { course, profile, applyCourseRules });
|
|
@@ -6501,11 +6500,11 @@ async function applyBundle(bundle, projectRoot, options = {}) {
|
|
|
6501
6500
|
persist();
|
|
6502
6501
|
return result;
|
|
6503
6502
|
}
|
|
6504
|
-
function planBundle(bundle, projectRoot, options
|
|
6503
|
+
function planBundle(bundle, projectRoot, options) {
|
|
6505
6504
|
const profile = options.profile ?? PROFILES[DEFAULT_TOOL];
|
|
6506
6505
|
const applyCourseRules = options.applyCourseRules !== false;
|
|
6507
6506
|
validateBundlePayload(bundle);
|
|
6508
|
-
if (
|
|
6507
|
+
if (bundle.course !== undefined && bundle.course !== options.course)
|
|
6509
6508
|
throw new Error("Bundle course differs from selected project course");
|
|
6510
6509
|
for (const skill of bundle.skills) {
|
|
6511
6510
|
assertSafeName(skill.name, "skill");
|
|
@@ -7422,13 +7421,7 @@ function formatAction(action) {
|
|
|
7422
7421
|
return action;
|
|
7423
7422
|
}
|
|
7424
7423
|
}
|
|
7425
|
-
function renderGetResult(ctx, bundle, writeResult, dryRun, profile, langMeta
|
|
7426
|
-
course: "10xdevs3",
|
|
7427
|
-
selectionReason: "backend_recommendation",
|
|
7428
|
-
language: "en",
|
|
7429
|
-
languageFallback: false,
|
|
7430
|
-
applyCourseRules: true
|
|
7431
|
-
}) {
|
|
7424
|
+
function renderGetResult(ctx, bundle, writeResult, dryRun, profile, langMeta) {
|
|
7432
7425
|
const applyCourseRules = langMeta.applyCourseRules;
|
|
7433
7426
|
const totalRemovals = [...writeResult.removals.skills, ...writeResult.removals.prompts, ...writeResult.removals.configs].filter((entry) => entry.action === "removed").length;
|
|
7434
7427
|
if (ctx.json) {
|
|
@@ -7598,10 +7591,14 @@ a magic link sent by email or a Circle message (\`--method email\` /
|
|
|
7598
7591
|
on the user's behalf without their authorization. Never read out \`auth.json\`,
|
|
7599
7592
|
tokens, magic-link URLs or email contents. Summarize only session/access state.
|
|
7600
7593
|
|
|
7601
|
-
Then use the selected runner's \`list
|
|
7602
|
-
|
|
7594
|
+
Then use the selected runner's bare \`list\`: with no \`--course\` the CLI takes the
|
|
7595
|
+
edition from the project's \`.10x-cli.json\` binding, or, in a directory that is not
|
|
7596
|
+
bound yet, from the live API recommendation (the highest edition the account can
|
|
7597
|
+
reach). Add \`--course <slug>\` only to inspect another entitled edition on purpose.
|
|
7598
|
+
Distinguish no membership, unpublished course, locked module and network
|
|
7603
7599
|
failure. Reinstalling the CLI or selecting a different tool does not grant access.
|
|
7604
|
-
Keep \`--
|
|
7600
|
+
Keep \`--tool\` and \`--lang\` explicit in subsequent download/sync commands and leave
|
|
7601
|
+
\`--course\` out, so every download stays on the project's edition.
|
|
7605
7602
|
|
|
7606
7603
|
## 4. Diagnose readiness without manufacturing a tool directory
|
|
7607
7604
|
|
|
@@ -7609,7 +7606,11 @@ Run the selected runner's \`doctor --json\`; read all of \`data.checks\` and
|
|
|
7609
7606
|
\`data.overall\`, plus the exit status. The outer \`status: "ok"\` is an output envelope,
|
|
7610
7607
|
not a promise that every check passed. Doctor uses the configured profile (or its
|
|
7611
7608
|
default), so compare the reported tool with the intended one; it has no \`--tool\`
|
|
7612
|
-
flag in the inspected baseline.
|
|
7609
|
+
flag in the inspected baseline. Its auth check also reports the resolved edition
|
|
7610
|
+
and selection reason (\`details.course\`, \`details.selectionReason\`) — use that as
|
|
7611
|
+
the self-check before the first download. A project is bound to one edition on its
|
|
7612
|
+
first write; a later edition needs a new empty directory, because writing it into a
|
|
7613
|
+
bound project fails with \`course_mismatch\`.
|
|
7613
7614
|
|
|
7614
7615
|
In a new project before the first download, a missing \`.claude/\` (or the reported
|
|
7615
7616
|
profile directory) can be expected. If that is the only failure and this is the
|
|
@@ -7723,19 +7724,27 @@ substitute its exact executable for \`10x_cli\`; no reinstall is required.
|
|
|
7723
7724
|
10x_cli sync --help
|
|
7724
7725
|
10x_cli auth --help
|
|
7725
7726
|
10x_cli auth --status
|
|
7726
|
-
10x_cli list
|
|
7727
|
+
10x_cli list
|
|
7727
7728
|
\`\`\`
|
|
7728
7729
|
|
|
7729
7730
|
Run commands from the intended project root. The target guided context is
|
|
7730
|
-
\`--
|
|
7731
|
-
previews, updates and recovery
|
|
7731
|
+
\`--tool claude-code --lang pl\` with no \`--course\`; preserve those two flags in
|
|
7732
|
+
downloads, previews, updates and recovery and let the edition come from the
|
|
7733
|
+
project. Pass \`--course <slug>\` only for a deliberate look at another entitled
|
|
7734
|
+
edition (\`list\`, \`get --print\`); \`list\` takes \`--course\`, not tool/lang flags.
|
|
7732
7735
|
Use another context only when the user chose it. Record any language fallback
|
|
7733
7736
|
reported by the CLI rather than calling English output Polish.
|
|
7734
7737
|
|
|
7735
7738
|
The project edition is stored in \`.10x-cli.json\` after a validated write and shared
|
|
7736
7739
|
across profiles; existing supported manifests also carry edition information.
|
|
7737
|
-
Course selection is explicit flag → project edition → live API recommendation
|
|
7738
|
-
|
|
7740
|
+
Course selection is explicit flag → project edition → live API recommendation, so
|
|
7741
|
+
a bare command stays on the project's edition and a fresh directory gets the
|
|
7742
|
+
highest edition the account can reach. \`get\` prints the resolved pair
|
|
7743
|
+
(\`Course: 10xdevs4 (backend_recommendation)\`); \`doctor\`'s auth check reports the
|
|
7744
|
+
same one (\`details.course\` and \`details.selectionReason\` under \`--json\`). Read that
|
|
7745
|
+
instead of forcing a flag. An explicit course does not authorize changing a bound
|
|
7746
|
+
project's edition — writing another edition into a bound directory fails with
|
|
7747
|
+
\`course_mismatch\`, so a new edition belongs in a new empty directory. Retain
|
|
7739
7748
|
the v3 project and start a separate v4 directory for this journey. Preserve unknown,
|
|
7740
7749
|
corrupt or conflicting manifests; never delete a binding to force migration.
|
|
7741
7750
|
|
|
@@ -7827,10 +7836,10 @@ In a separate project from the public copies, or after the explicit takeover
|
|
|
7827
7836
|
below, use the same verified \`10x_cli\` runner:
|
|
7828
7837
|
|
|
7829
7838
|
\`\`\`bash
|
|
7830
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
7831
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
7832
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
7833
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
7839
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl --dry-run
|
|
7840
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl
|
|
7841
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl --dry-run
|
|
7842
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl
|
|
7834
7843
|
\`\`\`
|
|
7835
7844
|
|
|
7836
7845
|
Each successful filtered skill download should materialize
|
|
@@ -7867,14 +7876,14 @@ explicitly requested only a specific skill.
|
|
|
7867
7876
|
content checks for each name, inspect each preview before its corresponding write:
|
|
7868
7877
|
|
|
7869
7878
|
\`\`\`bash
|
|
7870
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
7871
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
7872
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
7873
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
7874
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
7875
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
7876
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
7877
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
7879
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
7880
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
7881
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
7882
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
7883
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
7884
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
7885
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
7886
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
7878
7887
|
\`\`\`
|
|
7879
7888
|
|
|
7880
7889
|
Require the complete four trees and inspect each installed entrypoint/reference.
|
|
@@ -7928,8 +7937,8 @@ when the user accepts that scope. For a narrow update, repeat the selected skill
|
|
|
7928
7937
|
filter instead. Never use sync to silently bypass a missing lesson-rule prerequisite.
|
|
7929
7938
|
|
|
7930
7939
|
\`\`\`bash
|
|
7931
|
-
10x_cli sync --
|
|
7932
|
-
10x_cli sync --
|
|
7940
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
7941
|
+
10x_cli sync --tool claude-code --lang pl
|
|
7933
7942
|
\`\`\`
|
|
7934
7943
|
|
|
7935
7944
|
Normal sync refreshes downloaded owners, including the full lessons that own previously downloaded skills. Avoid \`--all\` for this small journey. Inspect updated,
|
|
@@ -8024,9 +8033,17 @@ verified global/standalone executable:
|
|
|
8024
8033
|
10x_cli get --help
|
|
8025
8034
|
10x_cli sync --help
|
|
8026
8035
|
10x_cli auth --status
|
|
8027
|
-
10x_cli list
|
|
8036
|
+
10x_cli list
|
|
8028
8037
|
\`\`\`
|
|
8029
8038
|
|
|
8039
|
+
Leave \`--course\` out of these commands: the CLI reads the edition from
|
|
8040
|
+
\`.10x-cli.json\` when the directory is already bound, otherwise from the live API
|
|
8041
|
+
recommendation (the highest edition the account can reach). \`get\` prints
|
|
8042
|
+
\`Course: <slug> (<reason>)\`; check it once before the first write. Use
|
|
8043
|
+
\`--course <slug>\` only to inspect another entitled edition on purpose — a bound
|
|
8044
|
+
project cannot be rewritten to a different edition (\`course_mismatch\`), so v4
|
|
8045
|
+
starts in a new empty directory.
|
|
8046
|
+
|
|
8030
8047
|
Check source/release evidence for lesson reference, skill filter and lesson-scoped sync, then use the
|
|
8031
8048
|
filtered preview below to check the endpoint. Do not treat a successful help exit as
|
|
8032
8049
|
capability proof. Keep unsupported CLI syntax, unpublished/missing content, locked
|
|
@@ -8069,14 +8086,14 @@ narrower scope. After checking each name's capability and availability, download
|
|
|
8069
8086
|
four separate complete selected skill trees. Inspect each dry-run before its corresponding write:
|
|
8070
8087
|
|
|
8071
8088
|
\`\`\`bash
|
|
8072
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
8073
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
8074
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
8075
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
8076
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
8077
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
8078
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
8079
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
8089
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
8090
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
8091
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
8092
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
8093
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
8094
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
8095
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
8096
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
8080
8097
|
\`\`\`
|
|
8081
8098
|
|
|
8082
8099
|
Inspect each report and the complete supporting tree, not just SKILL.md. In the
|
|
@@ -8121,8 +8138,8 @@ missing prerequisite and obtain the supported route from the lesson/release owne
|
|
|
8121
8138
|
before that step. Do not invent a rule command or download a full lesson to bypass
|
|
8122
8139
|
it. Do not overwrite an existing project rule.
|
|
8123
8140
|
|
|
8124
|
-
For browsing use \`10x_cli list m1
|
|
8125
|
-
|
|
8141
|
+
For browsing use \`10x_cli list m1\`. The commands above filter one lesson by skill
|
|
8142
|
+
name; \`get 10x-init\` is not supported. \`--print\` is inspection:
|
|
8126
8143
|
TTY Markdown can contain only SKILL.md; non-TTY output is a JSON envelope. Never
|
|
8127
8144
|
redirect print output into SKILL.md as a package installation.
|
|
8128
8145
|
|
|
@@ -8163,16 +8180,17 @@ two canonical output filenames instead of forcing an overwrite.
|
|
|
8163
8180
|
|
|
8164
8181
|
## Update
|
|
8165
8182
|
|
|
8166
|
-
Use the same runner, directory,
|
|
8167
|
-
|
|
8183
|
+
Use the same runner, directory, tool and language; the edition stays the project's
|
|
8184
|
+
own, so \`sync\` needs no \`--course\` either. Sync updates entire downloaded lessons,
|
|
8185
|
+
including m1l1 after these filtered gets. Its preview may
|
|
8168
8186
|
include other skills, prompts, configs and course rules. Inspect that expanded
|
|
8169
8187
|
scope and apply only when the user accepts it; to update only one skill, repeat
|
|
8170
8188
|
its filtered preview/get instead. Do not use sync as a hidden rule prerequisite
|
|
8171
8189
|
workaround:
|
|
8172
8190
|
|
|
8173
8191
|
\`\`\`bash
|
|
8174
|
-
10x_cli sync --
|
|
8175
|
-
10x_cli sync --
|
|
8192
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
8193
|
+
10x_cli sync --tool claude-code --lang pl
|
|
8176
8194
|
\`\`\`
|
|
8177
8195
|
|
|
8178
8196
|
Normal sync refreshes the full lessons recorded in the manifest, not just the
|
|
@@ -8183,9 +8201,9 @@ resource counts even if exit is 0: skipped conflicts alone are not process error
|
|
|
8183
8201
|
Do not equate an unchanged remote digest with intact local files.
|
|
8184
8202
|
|
|
8185
8203
|
For one conflicting skill, inspect the diff and back up local work before retrying
|
|
8186
|
-
its filtered get in an interactive terminal
|
|
8187
|
-
the user's resolution choice. If a CLI hint omits context,
|
|
8188
|
-
your proposed command. Never run automatic \`--force\`; it can overwrite local
|
|
8204
|
+
its filtered get in an interactive terminal, from the same directory and with the
|
|
8205
|
+
same tool/lang. Preserve the user's resolution choice. If a CLI hint omits context,
|
|
8206
|
+
restore these flags in your proposed command. Never run automatic \`--force\`; it can overwrite local
|
|
8189
8207
|
skill/prompt edits and does not bypass protected rules or safe removal. Config
|
|
8190
8208
|
templates remain create-only. Cleanup preserves modified/untracked files and
|
|
8191
8209
|
files owned elsewhere; do not manually sweep a skill directory after sync.
|
|
@@ -8234,8 +8252,10 @@ other-agent walkthrough. Translate shell syntax to the user's actual shell.
|
|
|
8234
8252
|
|
|
8235
8253
|
Run \`10x_cli doctor --json\` when diagnosis is useful; inspect its complete
|
|
8236
8254
|
\`data.overall\` and \`data.checks\` as well as exit status. It checks the configured
|
|
8237
|
-
profile, not a \`--tool\` or \`--course\` argument.
|
|
8238
|
-
|
|
8255
|
+
profile, not a \`--tool\` or \`--course\` argument. Its auth check reports the resolved
|
|
8256
|
+
edition and selection reason (\`details.course\`, \`details.selectionReason\`) — that is
|
|
8257
|
+
the self-check for which edition this directory is on. Before first get, a missing
|
|
8258
|
+
tool directory can be expected; explain only that failure and keep other failures
|
|
8239
8259
|
visible. Doctor exit 78 can coexist with outer JSON \`status: "ok"\`.
|
|
8240
8260
|
|
|
8241
8261
|
| Symptom | Next step |
|
|
@@ -8329,19 +8349,27 @@ substitute its exact executable for \`10x_cli\`; no reinstall is required.
|
|
|
8329
8349
|
10x_cli sync --help
|
|
8330
8350
|
10x_cli auth --help
|
|
8331
8351
|
10x_cli auth --status
|
|
8332
|
-
10x_cli list
|
|
8352
|
+
10x_cli list
|
|
8333
8353
|
\`\`\`
|
|
8334
8354
|
|
|
8335
8355
|
Run commands from the intended project root. The target guided context is
|
|
8336
|
-
\`--
|
|
8337
|
-
previews, updates and recovery
|
|
8356
|
+
\`--tool claude-code --lang pl\` with no \`--course\`; preserve those two flags in
|
|
8357
|
+
downloads, previews, updates and recovery and let the edition come from the
|
|
8358
|
+
project. Pass \`--course <slug>\` only for a deliberate look at another entitled
|
|
8359
|
+
edition (\`list\`, \`get --print\`); \`list\` takes \`--course\`, not tool/lang flags.
|
|
8338
8360
|
Use another context only when the user chose it. Record any language fallback
|
|
8339
8361
|
reported by the CLI rather than calling English output Polish.
|
|
8340
8362
|
|
|
8341
8363
|
The project edition is stored in \`.10x-cli.json\` after a validated write and shared
|
|
8342
8364
|
across profiles; existing supported manifests also carry edition information.
|
|
8343
|
-
Course selection is explicit flag → project edition → live API recommendation
|
|
8344
|
-
|
|
8365
|
+
Course selection is explicit flag → project edition → live API recommendation, so
|
|
8366
|
+
a bare command stays on the project's edition and a fresh directory gets the
|
|
8367
|
+
highest edition the account can reach. \`get\` prints the resolved pair
|
|
8368
|
+
(\`Course: 10xdevs4 (backend_recommendation)\`); \`doctor\`'s auth check reports the
|
|
8369
|
+
same one (\`details.course\` and \`details.selectionReason\` under \`--json\`). Read that
|
|
8370
|
+
instead of forcing a flag. An explicit course does not authorize changing a bound
|
|
8371
|
+
project's edition — writing another edition into a bound directory fails with
|
|
8372
|
+
\`course_mismatch\`, so a new edition belongs in a new empty directory. Retain
|
|
8345
8373
|
the v3 project and start a separate v4 directory for this journey. Preserve unknown,
|
|
8346
8374
|
corrupt or conflicting manifests; never delete a binding to force migration.
|
|
8347
8375
|
|
|
@@ -8433,10 +8461,10 @@ In a separate project from the public copies, or after the explicit takeover
|
|
|
8433
8461
|
below, use the same verified \`10x_cli\` runner:
|
|
8434
8462
|
|
|
8435
8463
|
\`\`\`bash
|
|
8436
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
8437
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
8438
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
8439
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
8464
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl --dry-run
|
|
8465
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl
|
|
8466
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl --dry-run
|
|
8467
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl
|
|
8440
8468
|
\`\`\`
|
|
8441
8469
|
|
|
8442
8470
|
Each successful filtered skill download should materialize
|
|
@@ -8473,14 +8501,14 @@ explicitly requested only a specific skill.
|
|
|
8473
8501
|
content checks for each name, inspect each preview before its corresponding write:
|
|
8474
8502
|
|
|
8475
8503
|
\`\`\`bash
|
|
8476
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
8477
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
8478
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
8479
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
8480
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
8481
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
8482
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
8483
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
8504
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
8505
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
8506
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
8507
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
8508
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
8509
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
8510
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
8511
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
8484
8512
|
\`\`\`
|
|
8485
8513
|
|
|
8486
8514
|
Require the complete four trees and inspect each installed entrypoint/reference.
|
|
@@ -8534,8 +8562,8 @@ when the user accepts that scope. For a narrow update, repeat the selected skill
|
|
|
8534
8562
|
filter instead. Never use sync to silently bypass a missing lesson-rule prerequisite.
|
|
8535
8563
|
|
|
8536
8564
|
\`\`\`bash
|
|
8537
|
-
10x_cli sync --
|
|
8538
|
-
10x_cli sync --
|
|
8565
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
8566
|
+
10x_cli sync --tool claude-code --lang pl
|
|
8539
8567
|
\`\`\`
|
|
8540
8568
|
|
|
8541
8569
|
Normal sync refreshes downloaded owners, including the full lessons that own previously downloaded skills. Avoid \`--all\` for this small journey. Inspect updated,
|
|
@@ -8965,6 +8993,7 @@ async function syncLesson(ctx, lesson, opts) {
|
|
|
8965
8993
|
const bundle = result.data;
|
|
8966
8994
|
if (opts.dryRun) {
|
|
8967
8995
|
const plan = planBundle(bundle, process.cwd(), {
|
|
8996
|
+
course: opts.course,
|
|
8968
8997
|
profile: opts.profile,
|
|
8969
8998
|
applyCourseRules: opts.applyCourseRules
|
|
8970
8999
|
});
|
package/package.json
CHANGED
|
@@ -41,9 +41,17 @@ verified global/standalone executable:
|
|
|
41
41
|
10x_cli get --help
|
|
42
42
|
10x_cli sync --help
|
|
43
43
|
10x_cli auth --status
|
|
44
|
-
10x_cli list
|
|
44
|
+
10x_cli list
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
+
Leave `--course` out of these commands: the CLI reads the edition from
|
|
48
|
+
`.10x-cli.json` when the directory is already bound, otherwise from the live API
|
|
49
|
+
recommendation (the highest edition the account can reach). `get` prints
|
|
50
|
+
`Course: <slug> (<reason>)`; check it once before the first write. Use
|
|
51
|
+
`--course <slug>` only to inspect another entitled edition on purpose — a bound
|
|
52
|
+
project cannot be rewritten to a different edition (`course_mismatch`), so v4
|
|
53
|
+
starts in a new empty directory.
|
|
54
|
+
|
|
47
55
|
Check source/release evidence for lesson reference, skill filter and lesson-scoped sync, then use the
|
|
48
56
|
filtered preview below to check the endpoint. Do not treat a successful help exit as
|
|
49
57
|
capability proof. Keep unsupported CLI syntax, unpublished/missing content, locked
|
|
@@ -86,14 +94,14 @@ narrower scope. After checking each name's capability and availability, download
|
|
|
86
94
|
four separate complete selected skill trees. Inspect each dry-run before its corresponding write:
|
|
87
95
|
|
|
88
96
|
```bash
|
|
89
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
90
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
91
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
92
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
93
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
94
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
95
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
96
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
97
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
98
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
99
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
100
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
101
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
102
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
103
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
104
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
97
105
|
```
|
|
98
106
|
|
|
99
107
|
Inspect each report and the complete supporting tree, not just SKILL.md. In the
|
|
@@ -138,8 +146,8 @@ missing prerequisite and obtain the supported route from the lesson/release owne
|
|
|
138
146
|
before that step. Do not invent a rule command or download a full lesson to bypass
|
|
139
147
|
it. Do not overwrite an existing project rule.
|
|
140
148
|
|
|
141
|
-
For browsing use `10x_cli list m1
|
|
142
|
-
|
|
149
|
+
For browsing use `10x_cli list m1`. The commands above filter one lesson by skill
|
|
150
|
+
name; `get 10x-init` is not supported. `--print` is inspection:
|
|
143
151
|
TTY Markdown can contain only SKILL.md; non-TTY output is a JSON envelope. Never
|
|
144
152
|
redirect print output into SKILL.md as a package installation.
|
|
145
153
|
|
|
@@ -180,16 +188,17 @@ two canonical output filenames instead of forcing an overwrite.
|
|
|
180
188
|
|
|
181
189
|
## Update
|
|
182
190
|
|
|
183
|
-
Use the same runner, directory,
|
|
184
|
-
|
|
191
|
+
Use the same runner, directory, tool and language; the edition stays the project's
|
|
192
|
+
own, so `sync` needs no `--course` either. Sync updates entire downloaded lessons,
|
|
193
|
+
including m1l1 after these filtered gets. Its preview may
|
|
185
194
|
include other skills, prompts, configs and course rules. Inspect that expanded
|
|
186
195
|
scope and apply only when the user accepts it; to update only one skill, repeat
|
|
187
196
|
its filtered preview/get instead. Do not use sync as a hidden rule prerequisite
|
|
188
197
|
workaround:
|
|
189
198
|
|
|
190
199
|
```bash
|
|
191
|
-
10x_cli sync --
|
|
192
|
-
10x_cli sync --
|
|
200
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
201
|
+
10x_cli sync --tool claude-code --lang pl
|
|
193
202
|
```
|
|
194
203
|
|
|
195
204
|
Normal sync refreshes the full lessons recorded in the manifest, not just the
|
|
@@ -200,9 +209,9 @@ resource counts even if exit is 0: skipped conflicts alone are not process error
|
|
|
200
209
|
Do not equate an unchanged remote digest with intact local files.
|
|
201
210
|
|
|
202
211
|
For one conflicting skill, inspect the diff and back up local work before retrying
|
|
203
|
-
its filtered get in an interactive terminal
|
|
204
|
-
the user's resolution choice. If a CLI hint omits context,
|
|
205
|
-
your proposed command. Never run automatic `--force`; it can overwrite local
|
|
212
|
+
its filtered get in an interactive terminal, from the same directory and with the
|
|
213
|
+
same tool/lang. Preserve the user's resolution choice. If a CLI hint omits context,
|
|
214
|
+
restore these flags in your proposed command. Never run automatic `--force`; it can overwrite local
|
|
206
215
|
skill/prompt edits and does not bypass protected rules or safe removal. Config
|
|
207
216
|
templates remain create-only. Cleanup preserves modified/untracked files and
|
|
208
217
|
files owned elsewhere; do not manually sweep a skill directory after sync.
|
|
@@ -251,8 +260,10 @@ other-agent walkthrough. Translate shell syntax to the user's actual shell.
|
|
|
251
260
|
|
|
252
261
|
Run `10x_cli doctor --json` when diagnosis is useful; inspect its complete
|
|
253
262
|
`data.overall` and `data.checks` as well as exit status. It checks the configured
|
|
254
|
-
profile, not a `--tool` or `--course` argument.
|
|
255
|
-
|
|
263
|
+
profile, not a `--tool` or `--course` argument. Its auth check reports the resolved
|
|
264
|
+
edition and selection reason (`details.course`, `details.selectionReason`) — that is
|
|
265
|
+
the self-check for which edition this directory is on. Before first get, a missing
|
|
266
|
+
tool directory can be expected; explain only that failure and keep other failures
|
|
256
267
|
visible. Doctor exit 78 can coexist with outer JSON `status: "ok"`.
|
|
257
268
|
|
|
258
269
|
| Symptom | Next step |
|
|
@@ -66,19 +66,27 @@ substitute its exact executable for `10x_cli`; no reinstall is required.
|
|
|
66
66
|
10x_cli sync --help
|
|
67
67
|
10x_cli auth --help
|
|
68
68
|
10x_cli auth --status
|
|
69
|
-
10x_cli list
|
|
69
|
+
10x_cli list
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Run commands from the intended project root. The target guided context is
|
|
73
|
-
`--
|
|
74
|
-
previews, updates and recovery
|
|
73
|
+
`--tool claude-code --lang pl` with no `--course`; preserve those two flags in
|
|
74
|
+
downloads, previews, updates and recovery and let the edition come from the
|
|
75
|
+
project. Pass `--course <slug>` only for a deliberate look at another entitled
|
|
76
|
+
edition (`list`, `get --print`); `list` takes `--course`, not tool/lang flags.
|
|
75
77
|
Use another context only when the user chose it. Record any language fallback
|
|
76
78
|
reported by the CLI rather than calling English output Polish.
|
|
77
79
|
|
|
78
80
|
The project edition is stored in `.10x-cli.json` after a validated write and shared
|
|
79
81
|
across profiles; existing supported manifests also carry edition information.
|
|
80
|
-
Course selection is explicit flag → project edition → live API recommendation
|
|
81
|
-
|
|
82
|
+
Course selection is explicit flag → project edition → live API recommendation, so
|
|
83
|
+
a bare command stays on the project's edition and a fresh directory gets the
|
|
84
|
+
highest edition the account can reach. `get` prints the resolved pair
|
|
85
|
+
(`Course: 10xdevs4 (backend_recommendation)`); `doctor`'s auth check reports the
|
|
86
|
+
same one (`details.course` and `details.selectionReason` under `--json`). Read that
|
|
87
|
+
instead of forcing a flag. An explicit course does not authorize changing a bound
|
|
88
|
+
project's edition — writing another edition into a bound directory fails with
|
|
89
|
+
`course_mismatch`, so a new edition belongs in a new empty directory. Retain
|
|
82
90
|
the v3 project and start a separate v4 directory for this journey. Preserve unknown,
|
|
83
91
|
corrupt or conflicting manifests; never delete a binding to force migration.
|
|
84
92
|
|
|
@@ -170,10 +178,10 @@ In a separate project from the public copies, or after the explicit takeover
|
|
|
170
178
|
below, use the same verified `10x_cli` runner:
|
|
171
179
|
|
|
172
180
|
```bash
|
|
173
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
174
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
175
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
176
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
181
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl --dry-run
|
|
182
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl
|
|
183
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl --dry-run
|
|
184
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl
|
|
177
185
|
```
|
|
178
186
|
|
|
179
187
|
Each successful filtered skill download should materialize
|
|
@@ -210,14 +218,14 @@ explicitly requested only a specific skill.
|
|
|
210
218
|
content checks for each name, inspect each preview before its corresponding write:
|
|
211
219
|
|
|
212
220
|
```bash
|
|
213
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
214
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
215
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
216
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
217
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
218
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
219
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
220
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
221
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
222
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
223
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
224
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
225
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
226
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
227
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
228
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
221
229
|
```
|
|
222
230
|
|
|
223
231
|
Require the complete four trees and inspect each installed entrypoint/reference.
|
|
@@ -271,8 +279,8 @@ when the user accepts that scope. For a narrow update, repeat the selected skill
|
|
|
271
279
|
filter instead. Never use sync to silently bypass a missing lesson-rule prerequisite.
|
|
272
280
|
|
|
273
281
|
```bash
|
|
274
|
-
10x_cli sync --
|
|
275
|
-
10x_cli sync --
|
|
282
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
283
|
+
10x_cli sync --tool claude-code --lang pl
|
|
276
284
|
```
|
|
277
285
|
|
|
278
286
|
Normal sync refreshes downloaded owners, including the full lessons that own previously downloaded skills. Avoid `--all` for this small journey. Inspect updated,
|
|
@@ -83,10 +83,14 @@ a magic link sent by email or a Circle message (`--method email` /
|
|
|
83
83
|
on the user's behalf without their authorization. Never read out `auth.json`,
|
|
84
84
|
tokens, magic-link URLs or email contents. Summarize only session/access state.
|
|
85
85
|
|
|
86
|
-
Then use the selected runner's `list
|
|
87
|
-
|
|
86
|
+
Then use the selected runner's bare `list`: with no `--course` the CLI takes the
|
|
87
|
+
edition from the project's `.10x-cli.json` binding, or, in a directory that is not
|
|
88
|
+
bound yet, from the live API recommendation (the highest edition the account can
|
|
89
|
+
reach). Add `--course <slug>` only to inspect another entitled edition on purpose.
|
|
90
|
+
Distinguish no membership, unpublished course, locked module and network
|
|
88
91
|
failure. Reinstalling the CLI or selecting a different tool does not grant access.
|
|
89
|
-
Keep `--
|
|
92
|
+
Keep `--tool` and `--lang` explicit in subsequent download/sync commands and leave
|
|
93
|
+
`--course` out, so every download stays on the project's edition.
|
|
90
94
|
|
|
91
95
|
## 4. Diagnose readiness without manufacturing a tool directory
|
|
92
96
|
|
|
@@ -94,7 +98,11 @@ Run the selected runner's `doctor --json`; read all of `data.checks` and
|
|
|
94
98
|
`data.overall`, plus the exit status. The outer `status: "ok"` is an output envelope,
|
|
95
99
|
not a promise that every check passed. Doctor uses the configured profile (or its
|
|
96
100
|
default), so compare the reported tool with the intended one; it has no `--tool`
|
|
97
|
-
flag in the inspected baseline.
|
|
101
|
+
flag in the inspected baseline. Its auth check also reports the resolved edition
|
|
102
|
+
and selection reason (`details.course`, `details.selectionReason`) — use that as
|
|
103
|
+
the self-check before the first download. A project is bound to one edition on its
|
|
104
|
+
first write; a later edition needs a new empty directory, because writing it into a
|
|
105
|
+
bound project fails with `course_mismatch`.
|
|
98
106
|
|
|
99
107
|
In a new project before the first download, a missing `.claude/` (or the reported
|
|
100
108
|
profile directory) can be expected. If that is the only failure and this is the
|
|
@@ -66,19 +66,27 @@ substitute its exact executable for `10x_cli`; no reinstall is required.
|
|
|
66
66
|
10x_cli sync --help
|
|
67
67
|
10x_cli auth --help
|
|
68
68
|
10x_cli auth --status
|
|
69
|
-
10x_cli list
|
|
69
|
+
10x_cli list
|
|
70
70
|
```
|
|
71
71
|
|
|
72
72
|
Run commands from the intended project root. The target guided context is
|
|
73
|
-
`--
|
|
74
|
-
previews, updates and recovery
|
|
73
|
+
`--tool claude-code --lang pl` with no `--course`; preserve those two flags in
|
|
74
|
+
downloads, previews, updates and recovery and let the edition come from the
|
|
75
|
+
project. Pass `--course <slug>` only for a deliberate look at another entitled
|
|
76
|
+
edition (`list`, `get --print`); `list` takes `--course`, not tool/lang flags.
|
|
75
77
|
Use another context only when the user chose it. Record any language fallback
|
|
76
78
|
reported by the CLI rather than calling English output Polish.
|
|
77
79
|
|
|
78
80
|
The project edition is stored in `.10x-cli.json` after a validated write and shared
|
|
79
81
|
across profiles; existing supported manifests also carry edition information.
|
|
80
|
-
Course selection is explicit flag → project edition → live API recommendation
|
|
81
|
-
|
|
82
|
+
Course selection is explicit flag → project edition → live API recommendation, so
|
|
83
|
+
a bare command stays on the project's edition and a fresh directory gets the
|
|
84
|
+
highest edition the account can reach. `get` prints the resolved pair
|
|
85
|
+
(`Course: 10xdevs4 (backend_recommendation)`); `doctor`'s auth check reports the
|
|
86
|
+
same one (`details.course` and `details.selectionReason` under `--json`). Read that
|
|
87
|
+
instead of forcing a flag. An explicit course does not authorize changing a bound
|
|
88
|
+
project's edition — writing another edition into a bound directory fails with
|
|
89
|
+
`course_mismatch`, so a new edition belongs in a new empty directory. Retain
|
|
82
90
|
the v3 project and start a separate v4 directory for this journey. Preserve unknown,
|
|
83
91
|
corrupt or conflicting manifests; never delete a binding to force migration.
|
|
84
92
|
|
|
@@ -170,10 +178,10 @@ In a separate project from the public copies, or after the explicit takeover
|
|
|
170
178
|
below, use the same verified `10x_cli` runner:
|
|
171
179
|
|
|
172
180
|
```bash
|
|
173
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
174
|
-
10x_cli get m1l1 --type skills --name 10x-cli-setup --
|
|
175
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
176
|
-
10x_cli get m1l1 --type skills --name 10x-cli-guide --
|
|
181
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl --dry-run
|
|
182
|
+
10x_cli get m1l1 --type skills --name 10x-cli-setup --tool claude-code --lang pl
|
|
183
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl --dry-run
|
|
184
|
+
10x_cli get m1l1 --type skills --name 10x-cli-guide --tool claude-code --lang pl
|
|
177
185
|
```
|
|
178
186
|
|
|
179
187
|
Each successful filtered skill download should materialize
|
|
@@ -210,14 +218,14 @@ explicitly requested only a specific skill.
|
|
|
210
218
|
content checks for each name, inspect each preview before its corresponding write:
|
|
211
219
|
|
|
212
220
|
```bash
|
|
213
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
214
|
-
10x_cli get m1l1 --type skills --name 10x-idea-check --
|
|
215
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
216
|
-
10x_cli get m1l1 --type skills --name 10x-init --
|
|
217
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
218
|
-
10x_cli get m1l1 --type skills --name 10x-shape --
|
|
219
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
220
|
-
10x_cli get m1l1 --type skills --name 10x-prd --
|
|
221
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl --dry-run
|
|
222
|
+
10x_cli get m1l1 --type skills --name 10x-idea-check --tool claude-code --lang pl
|
|
223
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl --dry-run
|
|
224
|
+
10x_cli get m1l1 --type skills --name 10x-init --tool claude-code --lang pl
|
|
225
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl --dry-run
|
|
226
|
+
10x_cli get m1l1 --type skills --name 10x-shape --tool claude-code --lang pl
|
|
227
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl --dry-run
|
|
228
|
+
10x_cli get m1l1 --type skills --name 10x-prd --tool claude-code --lang pl
|
|
221
229
|
```
|
|
222
230
|
|
|
223
231
|
Require the complete four trees and inspect each installed entrypoint/reference.
|
|
@@ -271,8 +279,8 @@ when the user accepts that scope. For a narrow update, repeat the selected skill
|
|
|
271
279
|
filter instead. Never use sync to silently bypass a missing lesson-rule prerequisite.
|
|
272
280
|
|
|
273
281
|
```bash
|
|
274
|
-
10x_cli sync --
|
|
275
|
-
10x_cli sync --
|
|
282
|
+
10x_cli sync --tool claude-code --lang pl --dry-run
|
|
283
|
+
10x_cli sync --tool claude-code --lang pl
|
|
276
284
|
```
|
|
277
285
|
|
|
278
286
|
Normal sync refreshes downloaded owners, including the full lessons that own previously downloaded skills. Avoid `--all` for this small journey. Inspect updated,
|