Skip to content

Commit 7b2a326

Browse files
KyleAMathewsclaude
andcommitted
Restructure narrative: fix heading, move split-brain argument, flesh out intents, tighten closing
- Rename "Skills as side quests" → "The copy-paste era" to match section content - Move the training-data version-mixing argument up into the intro section where it hits harder, right after the core idea - Add audience transition sentence between maintainer and consumer sections - Add concrete YAML example to "From skills to intents" section - Cut redundant lifecycle summary sentence from closing — end on the strong "correct patterns absorbed in real work" line - Fix all CLI commands to use `npx @tanstack/intent <command>` form Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 9c5c0f4 commit 7b2a326

File tree

1 file changed

+41
-29
lines changed

1 file changed

+41
-29
lines changed

src/blog/from-docs-to-agents.md

Lines changed: 41 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Your docs are good. Your types are solid. Your agent still gets it wrong.
1010

1111
Not because it's dumb — because nothing connects what you know about your tool to what agents know. Docs target humans who browse. Types check individual API calls but can't encode intent. Training data snapshots the ecosystem as it *was*, mixing versions without flagging which applies. The gap isn't content. It's lifecycle.
1212

13-
## Skills as side quests
13+
## The copy-paste era
1414

1515
The ecosystem already moves toward agent-readable knowledge. Cursor rules, CLAUDE.md files, skills directories — everyone agrees agents need more than docs and types. But delivery hasn't caught up.
1616

@@ -34,6 +34,10 @@ pnpm add -D @tanstack/intent
3434

3535
The core idea: **intents are npm packages of skills.** They encode how tools compose, which patterns fit which goals, and what to avoid. Skills travel with the tool via `npm update` — not the model's training cutoff, not community-maintained rules files, not prompt snippets in READMEs. Versioned knowledge the maintainer owns, updated when the package updates.
3636

37+
This matters because the alternative — hoping model providers re-train on your latest docs — is not a strategy. Training data has a permanent version-mixing problem: once a breaking change ships, models contain *both* versions forever with no way to disambiguate. Skills bypass this. They're versioned with your package, and `npm update` brings the latest knowledge with the latest code.
38+
39+
![Model training data mixes versions permanently vs. skills pinned to your installed version](./diagram-split-brain.svg)
40+
3741
A skill is a focused projection of knowledge you already maintain: the critical constraint, the flagged anti-pattern, the composition rule stated once and clearly. Each declares its source docs:
3842

3943
```
@@ -54,80 +58,90 @@ That `metadata.sources` field is load-bearing. When those docs change, the CLI f
5458

5559
## Generating and validating skills
5660

57-
You don't author skills from scratch. `intent scaffold` generates them from your library:
61+
You don't author skills from scratch. `@tanstack/intent scaffold` generates them from your library:
5862

5963
```bash
60-
npx intent scaffold
64+
npx @tanstack/intent scaffold
6165
```
6266

63-
The scaffold produces drafts you review, refine, and commit. Once committed, `intent validate` checks that they're well-formed:
67+
The scaffold produces drafts you review, refine, and commit. Once committed, `@tanstack/intent validate` checks that they're well-formed:
6468

6569
```bash
66-
npx intent validate
70+
npx @tanstack/intent validate
6771
```
6872

69-
`intent setup` copies CI workflow templates into your repo so validation runs on every push:
73+
`@tanstack/intent setup` copies CI workflow templates into your repo so validation runs on every push:
7074

7175
```bash
72-
npx intent setup
76+
npx @tanstack/intent setup
7377
```
7478

75-
The alternative — hoping model providers re-train on your latest docs — is not a strategy. Training data has a permanent version-mixing problem: once a breaking change ships, models contain *both* versions forever with no way to disambiguate. Skills bypass this. They're versioned with your package, and `npm update` brings the latest knowledge with the latest code.
76-
77-
![Model training data mixes versions permanently vs. skills pinned to your installed version](./diagram-split-brain.svg)
78-
7979
## The dependency graph does the discovery
8080

81-
When a developer runs `intent install`, the CLI discovers every intent-enabled package and wires skills into the agent configuration — CLAUDE.md, .cursorrules, whatever the tooling expects.
81+
That's the maintainer side. For developers using those libraries, the experience is simpler.
82+
83+
When a developer runs `@tanstack/intent install`, the CLI discovers every intent-enabled package and wires skills into the agent configuration — CLAUDE.md, .cursorrules, whatever the tooling expects.
8284

8385
```bash
84-
npx intent install
86+
npx @tanstack/intent install
8587
```
8688

8789
![intent install discovers intent-enabled packages in node_modules and wires skills into agent config](./diagram-discovery.svg)
8890

89-
No per-library setup. No hunting for rules files. Install the package, run `intent install`, and the agent understands the tool. Update the package, and skills update too. Knowledge travels the same channel as code.
91+
No per-library setup. No hunting for rules files. Install the package, run `@tanstack/intent install`, and the agent understands the tool. Update the package, and skills update too. Knowledge travels the same channel as code.
9092

91-
`intent list` shows you what's available:
93+
`@tanstack/intent list` shows you what's available:
9294

9395
```bash
94-
npx intent list # See what's intent-enabled in your deps
95-
npx intent list --json # Machine-readable output
96+
npx @tanstack/intent list # See what's intent-enabled in your deps
97+
npx @tanstack/intent list --json # Machine-readable output
9698
```
9799

98-
For library maintainers, `intent meta` surfaces meta-skills — higher-level guidance on authoring and maintaining skills:
100+
For library maintainers, `@tanstack/intent meta` surfaces meta-skills — higher-level guidance on authoring and maintaining skills:
99101

100102
```bash
101-
npx intent meta
103+
npx @tanstack/intent meta
102104
```
103105

104106
## From skills to intents
105107

106108
A single skill helps an agent use one tool correctly. Real development demands composition — routing *with* server state *with* a data grid *with* client-side storage. No single skill covers how they fit together.
107109

108-
Intents orchestrate. A developer says "build a paginated data table with URL-synced filters" and the intent loads the right skills in the right order — search params, loader/query integration, table columnDefs. Goals map to skill combinations.
110+
Intents are the orchestration layer. A developer says "build a paginated data table with URL-synced filters" and the intent loads the right skills in the right order:
109111

110-
The more libraries that ship skills, the richer composition becomes.
112+
```
113+
---
114+
name: paginated-data-table
115+
description: URL-synced paginated data table with TanStack Router, Query, and Table
116+
skills:
117+
- tanstack-router-search-params
118+
- tanstack-query-loader-integration
119+
- tanstack-table-column-defs
120+
- tanstack-table-pagination
121+
---
122+
```
123+
124+
Developer goals map to skill combinations. The more libraries in your stack that ship skills, the richer composition becomes.
111125

112126
## Keeping it current
113127

114128
The real risk with any derived artifact is staleness. You update your docs, ship a new API, and skills silently drift. `@tanstack/intent` treats staleness as a first-class problem.
115129

116-
`intent stale` checks for version drift, flagging skills that have fallen behind their sources:
130+
`@tanstack/intent stale` checks for version drift, flagging skills that have fallen behind their sources:
117131

118132
```bash
119-
npx intent stale # Human-readable report
120-
npx intent stale --json # Machine-readable for CI
133+
npx @tanstack/intent stale # Human-readable report
134+
npx @tanstack/intent stale --json # Machine-readable for CI
121135
```
122136

123137
Run it in CI and you get a failing check when sources change. Skills become part of your release checklist — not something you remember to update, but something your pipeline catches.
124138

125139
![The intent lifecycle: docs to skills to npm to agent config, with staleness checks and feedback loops](./diagram-lifecycle.svg)
126140

127-
The feedback loop runs both directions. `intent feedback` lets users submit structured reports when a skill produces wrong output — which skill, which version, what broke. That context flows back to you, and the fix ships to everyone on the next `npm update`.
141+
The feedback loop runs both directions. `@tanstack/intent feedback` lets users submit structured reports when a skill produces wrong output — which skill, which version, what broke. That context flows back to you, and the fix ships to everyone on the next `npm update`.
128142

129143
```bash
130-
npx intent feedback
144+
npx @tanstack/intent feedback
131145
```
132146

133147
Skills that keep needing the same workaround signal a deeper problem. Sometimes the fix is a better skill. Sometimes it's a better API. A skill that dissolves because the tool absorbed its lesson is the system working.
@@ -136,6 +150,4 @@ Skills that keep needing the same workaround signal a deeper problem. Sometimes
136150

137151
Devtool makers have a new surface to maintain. You shipped code, docs, and types. Now there's a fourth artifact: skills — knowledge encoded for the thing writing most of your code.
138152

139-
Tools that invest here produce developers who build confidently from day one — not through tutorials or toy projects, but through correct patterns absorbed in real work.
140-
141-
The lifecycle is: write your docs, generate skills, ship them with your package, validate and keep them current, learn from how they're used, make your tool better. Repeat.
153+
Tools that invest here produce developers who build confidently from day one — not through tutorials or toy projects, but through correct patterns absorbed in real work.

0 commit comments

Comments
 (0)