|
1 | | -# @tanstack/intent |
2 | | - |
3 | | -Ship compositional knowledge for AI coding agents alongside your npm packages. |
4 | | - |
5 | | -## The problem |
6 | | - |
7 | | -Your docs are good. Your types are solid. Your agent still gets it wrong. |
8 | | - |
9 | | -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. Once a breaking change ships, models contain _both_ versions forever with no way to disambiguate. |
10 | | - |
11 | | -The ecosystem already moves toward agent-readable knowledge — Cursor rules, CLAUDE.md files, skills directories. But delivery is stuck in copy-paste: hunt for a community-maintained rules file, paste it into your config, repeat for every tool. No versioning, no update path, no staleness signal. |
12 | | - |
13 | | -## Skills: the fourth artifact |
14 | | - |
15 | | -You ship code, docs, and types. Skills are the fourth artifact — knowledge encoded for the thing writing most of your code. |
16 | | - |
17 | | -Skills are npm packages of knowledge — encoding how tools compose, which patterns fit which goals, and what to avoid. When a library ships skills using `@tanstack/intent`, that knowledge travels with the tool via `npm update` — not the model's training cutoff. Versioned knowledge the maintainer owns, updated when the package updates. |
18 | | - |
19 | | -Each skill declares its source docs. When those docs change, the CLI flags the skill for review. One source of truth, one derived artifact that stays in sync. |
20 | | - |
21 | | -## Quick Start |
22 | | - |
23 | | -### For library consumers |
24 | | - |
25 | | -Set up skill-to-task mappings in your project's agent config files (CLAUDE.md, .cursorrules, etc.): |
26 | | - |
27 | | -```bash |
28 | | -npx @tanstack/intent install |
29 | | -``` |
30 | | - |
31 | | -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. |
32 | | - |
33 | | -List available skills from installed packages: |
34 | | - |
35 | | -```bash |
36 | | -npx @tanstack/intent list |
37 | | -``` |
38 | | - |
39 | | -### For library maintainers |
40 | | - |
41 | | -Generate skills for your library by telling your AI coding agent to run: |
42 | | - |
43 | | -```bash |
44 | | -npx @tanstack/intent scaffold |
45 | | -``` |
46 | | - |
47 | | -This prints a prompt that walks the agent through domain discovery, skill tree generation, and skill creation — one step at a time with your review at each stage. |
48 | | - |
49 | | -Validate your skill files: |
50 | | - |
51 | | -```bash |
52 | | -npx @tanstack/intent validate |
53 | | -``` |
54 | | - |
55 | | -Check for skills that have fallen behind their sources: |
56 | | - |
57 | | -```bash |
58 | | -npx @tanstack/intent stale |
59 | | -``` |
60 | | - |
61 | | -Copy CI workflow templates into your repo so validation and staleness checks run on every push: |
62 | | - |
63 | | -```bash |
64 | | -npx @tanstack/intent setup |
65 | | -``` |
66 | | - |
67 | | -## Keeping skills current |
68 | | - |
69 | | -The real risk with any derived artifact is staleness. `intent stale` flags skills whose source docs have changed, and CI templates catch drift before it ships. |
70 | | - |
71 | | -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 the maintainer, and the fix ships to everyone on the next `npm update`. |
72 | | - |
73 | | -## CLI Commands |
74 | | - |
75 | | -| Command | Description | |
76 | | -| ----------------------- | --------------------------------------------------- | |
77 | | -| `intent install` | Set up skill-to-task mappings in agent config files | |
78 | | -| `intent list [--json]` | Discover intent-enabled packages | |
79 | | -| `intent meta` | List meta-skills for library maintainers | |
80 | | -| `intent scaffold` | Print the guided skill generation prompt | |
81 | | -| `intent validate [dir]` | Validate SKILL.md files | |
82 | | -| `intent setup` | Copy CI templates, generate shim, create labels | |
83 | | -| `intent stale [--json]` | Check skills for version drift | |
84 | | -| `intent feedback` | Submit skill feedback | |
85 | | - |
86 | | -## License |
87 | | - |
88 | | -[MIT](./LICENSE) |
| 1 | +<div align="center"> |
| 2 | + <img src="./media/header_intent.png" > |
| 3 | +</div> |
| 4 | + |
| 5 | +<br /> |
| 6 | + |
| 7 | +<div align="center"> |
| 8 | + <a href="https://www.npmjs.com/package/@tanstack/intent" target="\_parent"> |
| 9 | + <img alt="" src="https://img.shields.io/npm/dm/@tanstack/intent.svg" alt="npm downloads" /> |
| 10 | + </a> |
| 11 | +- <a href="https://github.com/TanStack/intent" target="\_parent"> |
| 12 | + <img alt="" src="https://img.shields.io/github/stars/TanStack/intent.svg?style=social&label=Star" alt="GitHub stars" /> |
| 13 | + </a> |
| 14 | + <a href="https://bundlephobia.com/result?p=@tanstack/react-intent@latest" target="\_parent"> |
| 15 | + <img alt="" src="https://badgen.net/bundlephobia/minzip/@tanstack/react-intent@latest" alt="Bundle size" /> |
| 16 | +</a> |
| 17 | +</div> |
| 18 | + |
| 19 | +<div align="center"> |
| 20 | +<a href="#badge"> |
| 21 | + <img alt="semantic-release" src="https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg"> |
| 22 | +</a> |
| 23 | + <a href="#badge"> |
| 24 | + <img src="https://img.shields.io/github/v/release/tanstack/intent" alt="Release"/> |
| 25 | + </a> |
| 26 | + <a href="https://twitter.com/tan_stack"> |
| 27 | + <img src="https://img.shields.io/twitter/follow/tan_stack.svg?style=social" alt="Follow @TanStack"/> |
| 28 | + </a> |
| 29 | +</div> |
| 30 | + |
| 31 | +<div align="center"> |
| 32 | + |
| 33 | +### [Become a Sponsor!](https://github.com/sponsors/tannerlinsley/) |
| 34 | + |
| 35 | +</div> |
| 36 | + |
| 37 | +# TanStack Intent |
| 38 | + |
| 39 | +A CLI for library maintainers to generate, validate, and ship [Agent Skills](https://agentskills.io) alongside their npm packages. Auto-discovered, versioned with your code, and compatible with the open Agent Skills standard. |
| 40 | + |
| 41 | +### <a href="https://tanstack.com/intent">Read the docs →</b></a> |
| 42 | + |
| 43 | +## Get Involved |
| 44 | + |
| 45 | +- We welcome issues and pull requests! |
| 46 | +- Participate in [GitHub discussions](https://github.com/TanStack/intent/discussions) |
| 47 | +- Chat with the community on [Discord](https://discord.com/invite/WrRKjPJ) |
| 48 | +- See [CONTRIBUTING.md](./CONTRIBUTING.md) for setup instructions |
| 49 | + |
| 50 | +## Partners |
| 51 | + |
| 52 | +<div align="center"> |
| 53 | + |
| 54 | +<table align="center"> |
| 55 | + <tr> |
| 56 | + <td> |
| 57 | + <a href="https://www.coderabbit.ai/?via=tanstack&dub_id=aCcEEdAOqqutX6OS" > |
| 58 | + <picture> |
| 59 | + <source media="(prefers-color-scheme: dark)" srcset="https://tanstack.com/assets/coderabbit-dark-D643Zkrv.svg" height="40" /> |
| 60 | + <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/coderabbit-light-CIzGLYU_.svg" height="40" /> |
| 61 | + <img src=https://tanstack.com/assets/coderabbit-light-CIzGLYU_.svg" height="40" alt="CodeRabbit" /> |
| 62 | + </picture> |
| 63 | + </a> |
| 64 | + </td> |
| 65 | + <td> |
| 66 | + <a href="https://www.cloudflare.com?utm_source=tanstack"> |
| 67 | + <picture> |
| 68 | + <source media="(prefers-color-scheme: dark)" srcset=https://tanstack.com/assets/cloudflare-white-Co-Tyjbl.svg" height="60" /> |
| 69 | + <source media="(prefers-color-scheme: light)" srcset="https://tanstack.com/assets/cloudflare-black-6Ojsn8yh.svg" height="60" /> |
| 70 | + <img src="https://tanstack.com/assets/cloudflare-black-6Ojsn8yh.svg" height="60" alt="Cloudflare" /> |
| 71 | + </picture> |
| 72 | + </a> |
| 73 | + </td> |
| 74 | + </tr> |
| 75 | +</table> |
| 76 | + |
| 77 | +<div align="center"> |
| 78 | +<img src="./media/partner_logo.svg" alt="Intent & you?" height="65"> |
| 79 | +<p> |
| 80 | +We're looking for TanStack Intent Partners to join our mission! Partner with us to push the boundaries of TanStack intent and build amazing things together. |
| 81 | +</p> |
| 82 | +<a href="mailto:partners@tanstack.com?subject=TanStack Intent Partnership"><b>LET'S CHAT</b></a> |
| 83 | +</div> |
| 84 | + |
| 85 | +</div> |
| 86 | + |
| 87 | +## Explore the TanStack Ecosystem |
| 88 | + |
| 89 | +- <a href="https://github.com/tanstack/config"><b>TanStack Config</b></a> – Tooling for JS/TS packages |
| 90 | +- <a href="https://github.com/tanstack/db"><b>TanStack DB</b></a> – Reactive sync client store |
| 91 | +- <a href="https://github.com/tanstack/devtools"><b>TanStack DevTools</b></a> – Unified devtools panel |
| 92 | +- <a href="https://github.com/tanstack/form"><b>TanStack Form</b></a> – Type‑safe form state |
| 93 | +- <a href="https://github.com/tanstack/query"><b>TanStack Query</b></a> – Async state & caching |
| 94 | +- <a href="https://github.com/tanstack/ranger"><b>TanStack Ranger</b></a> – Range & slider primitives |
| 95 | +- <a href="https://github.com/tanstack/router"><b>TanStack Router</b></a> – Type‑safe routing, caching & URL state |
| 96 | +- <a href="https://github.com/tanstack/router"><b>TanStack Start</b></a> – Full‑stack SSR & streaming |
| 97 | +- <a href="https://github.com/tanstack/store"><b>TanStack Store</b></a> – Reactive data store |
| 98 | +- <a href="https://github.com/tanstack/table"><b>TanStack Table</b></a> – Headless datagrids |
| 99 | +- <a href="https://github.com/tanstack/virtual"><b>TanStack Virtual</b></a> – Virtualized rendering |
| 100 | + |
| 101 | +… and more at <a href="https://tanstack.com"><b>TanStack.com »</b></a> |
| 102 | + |
| 103 | +<!-- USE THE FORCE LUKE --> |
0 commit comments