Skip to content

Commit dffa662

Browse files
committed
align M2 trust and lockfile guidance
1 parent 648b5c2 commit dffa662

4 files changed

Lines changed: 24 additions & 26 deletions

File tree

docs/cli/intent-skills.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,29 @@ id: intent-skills
66
`intent skills` manages `intent.lock`, the committed record of which skill-bearing sources you've approved and what their content looked like when you approved it. Four subcommands: `scan`, `diff` (read-only), `approve`, and `update` (mutating).
77

88
```bash
9-
npx @tanstack/intent@latest skills <scan|diff|approve|update> [source] [--json] [--all] [--yes] [--frozen] [--no-frozen]
9+
npx intent skills <scan|diff|approve|update> [source] [--json] [--all] [--yes] [--frozen] [--no-frozen]
1010
```
1111

1212
See [Lockfile and frozen mode](../security/lockfile) for what `intent.lock` is and what frozen mode guarantees.
1313

1414
## `intent skills scan`
1515

1616
```bash
17-
npx @tanstack/intent@latest skills scan [--json] [--frozen] [--no-frozen]
17+
npx intent skills scan [--json] [--frozen] [--no-frozen]
1818
```
1919

2020
Read-only. Discovers current skill-bearing sources, computes each source's `contentHash`, and reports drift against `intent.lock`.
2121

2222
- No lock found: prints `No intent.lock found. Run \`intent skills approve --all\` to create one.`
2323
- Lock is clean: prints `intent.lock is up to date.`
2424
- Lock is stale: prints `intent.lock is out of date: N added, N removed, N changed.`
25-
- Discovered sources not in `intent.skills`: prints a count and points at `intent.skills`/`intent.exclude`
25+
- Discovered sources not in `intent.skills`: names each source with bounded dependency provenance when available, falls back to `provenance unknown`, and points at `intent.skills`/`intent.exclude`. Agent-mode output remains count-only.
2626
- `--json` prints `{ frozen, hiddenSourceCount, hasLockfile, added, removed, changed, isClean }`
2727

2828
## `intent skills diff`
2929

3030
```bash
31-
npx @tanstack/intent@latest skills diff [--json] [--frozen] [--no-frozen]
31+
npx intent skills diff [--json] [--frozen] [--no-frozen]
3232
```
3333

3434
Read-only. Same underlying computation as `scan`, but change-focused: prints only `Added:`/`Removed:`/`Changed:` sections with per-field diffs (`version`, `resolution`, `skills`, `contentHash`, `manifestHash`, `capabilities`). Unchanged sources are omitted.
@@ -44,7 +44,7 @@ Changed:
4444
## `intent skills approve [source]`
4545

4646
```bash
47-
npx @tanstack/intent@latest skills approve [source] [--all] [--yes]
47+
npx intent skills approve [source] [--all] [--yes]
4848
```
4949

5050
Writes `intent.lock`. This is the trust decision — approving means a human reviewed this exact change.
@@ -59,7 +59,7 @@ Writes `intent.lock`. This is the trust decision — approving means a human rev
5959
## `intent skills update [source]`
6060

6161
```bash
62-
npx @tanstack/intent@latest skills update [source] [--all] [--yes]
62+
npx intent skills update [source] [--all] [--yes]
6363
```
6464

6565
Writes `intent.lock`. It mechanically re-syncs version and resolution for matching **already-locked** entries. Changes to skills, content hashes, manifests, capabilities, declared secrets, or MCP metadata require `--yes` after reviewing `intent skills diff`.

docs/concepts/trust-model.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ Intent reads package data as files. It never imports, requires, or executes the
2121

2222
One exception is sanctioned: in Yarn Plug'n'Play projects, Intent loads Yarn's PnP runtime (`.pnp.cjs`) to map package identities to readable locations. It loads no package entry points, bins, lifecycle scripts, or other package-provided JavaScript. An ESLint rule enforces this invariant in the discovery code.
2323

24-
## What the allowlist does not cover yet
24+
## Source identity and remaining limits
2525

26-
Matching is currently by package name. A `workspace:foo` entry and a bare `foo` entry both authorize a discovered package named `foo`, because the scanner does not yet distinguish a workspace member from a published package of the same name. This errs toward permitting a same-named package, never toward denying one you listed. A future version tightens matching once the scanner carries that signal.
26+
Intent matches allowlist entries by `(kind, id)`. `workspace:foo` authorizes only the workspace member named `foo`; it does not authorize an installed `npm:foo`. A bare `foo` entry is normalized to the npm source kind. Same-named workspace and npm packages remain distinct sources throughout discovery, locking, and approval.
2727

2828
The `git:` source kind is reserved. Intent parses and validates the shape, then rejects it until a future version can pin the resolved ref and content hash. A git entry never loads silently.

docs/security/lockfile.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ Run the frozen scan in the consumer repository after dependencies and `intent.lo
7373

7474
```yaml
7575
- name: Verify approved skill sources
76-
run: npx @tanstack/intent@latest skills scan --frozen
76+
run: npx intent skills scan --frozen
7777
```
7878
7979
The generated `Check Skills` workflow is for library-maintainer validation and review; it does not add this consumer lockfile gate automatically.

packages/intent/README.md

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -121,23 +121,21 @@ The real risk with any derived artifact is staleness. `npx @tanstack/intent@late
121121

122122
## CLI Commands
123123

124-
| Command | Description |
125-
| ------------------------------------------------------ | --------------------------------------------------- |
126-
| `npx @tanstack/intent@latest install` | Set up skill loading guidance in agent config files |
127-
| `npx @tanstack/intent@latest hooks install` | Install hook enforcement for supported agents |
128-
| `npx @tanstack/intent@latest list [--json]` | Discover local intent-enabled packages |
129-
| `npx @tanstack/intent@latest load <use>` | Load `<package>#<skill>` SKILL.md content |
130-
| `npx @tanstack/intent@latest meta` | List meta-skills for library maintainers |
131-
| `npx @tanstack/intent@latest scaffold` | Print the guided skill generation prompt |
132-
| `npx @tanstack/intent@latest validate [dir]` | Validate SKILL.md files |
133-
| `npx @tanstack/intent@latest setup` | Copy CI templates into your repo |
134-
| `npx @tanstack/intent@latest stale [dir] [--json]` | Check skills for version drift |
135-
| `npx @tanstack/intent@latest skills scan` | Discover sources and diff against `intent.lock` |
136-
| `npx @tanstack/intent@latest skills diff` | Show pending `intent.lock` changes |
137-
| `npx @tanstack/intent@latest skills approve` | Approve pending changes into `intent.lock` |
138-
| `npx @tanstack/intent@latest skills update` | Re-sync already-locked sources to installed state |
139-
| `npx @tanstack/intent@latest skills stale` | Check locked sources for content/version drift |
140-
| `npx @tanstack/intent@latest skills generate-manifest` | Write a package's `skills/intent.manifest.json` |
124+
| Command | Description |
125+
| -------------------------------------------------- | --------------------------------------------------- |
126+
| `npx @tanstack/intent@latest install` | Set up skill loading guidance in agent config files |
127+
| `npx @tanstack/intent@latest hooks install` | Install hook enforcement for supported agents |
128+
| `npx @tanstack/intent@latest list [--json]` | Discover local intent-enabled packages |
129+
| `npx @tanstack/intent@latest load <use>` | Load `<package>#<skill>` SKILL.md content |
130+
| `npx @tanstack/intent@latest meta` | List meta-skills for library maintainers |
131+
| `npx @tanstack/intent@latest scaffold` | Print the guided skill generation prompt |
132+
| `npx @tanstack/intent@latest validate [dir]` | Validate SKILL.md files |
133+
| `npx @tanstack/intent@latest setup` | Copy CI templates into your repo |
134+
| `npx @tanstack/intent@latest stale [dir] [--json]` | Check skills for version drift |
135+
| `npx @tanstack/intent@latest skills scan` | Discover sources and diff against `intent.lock` |
136+
| `npx @tanstack/intent@latest skills diff` | Show pending `intent.lock` changes |
137+
| `npx @tanstack/intent@latest skills approve` | Approve pending changes into `intent.lock` |
138+
| `npx @tanstack/intent@latest skills update` | Re-sync already-locked sources to installed state |
141139

142140
See [Lockfile and frozen mode](https://tanstack.com/intent/latest/docs/security/lockfile) and [`intent skills`](https://tanstack.com/intent/latest/docs/cli/intent-skills) for what `intent.lock` is and full command details.
143141

0 commit comments

Comments
 (0)