Skip to content

feat: add Intent agent skills for TanStack DB#1330

Merged
KyleAMathews merged 10 commits intomainfrom
feat/intent-skills
Mar 6, 2026
Merged

feat: add Intent agent skills for TanStack DB#1330
KyleAMathews merged 10 commits intomainfrom
feat/intent-skills

Conversation

@KyleAMathews
Copy link
Collaborator

@KyleAMathews KyleAMathews commented Mar 5, 2026

Add 12 SKILL.md files across 7 packages that guide AI coding agents working with TanStack DB. Skills are published with npm packages so agents can reference them when generating code. Also fixes angular-db missing the export * from '@tanstack/db' re-export that all other framework packages have.

Approach

Skills were scaffolded using @tanstack/intent scaffold — a 3-phase process:

  1. Domain Discovery — interview-driven domain map identifying 7 domains, 39 failure modes, and cross-cutting tensions
  2. Tree Generator — decomposed domains into 12 skills across the monorepo (per-framework decomposition, composition skills for meta-framework and offline)
  3. Generate Skills — source-driven generation with cross-reference validation

Each SKILL.md contains YAML frontmatter (name, type, requires, sources) + structured body (Setup, Core Patterns, Common Mistakes with severity ratings). Reference files provide dense API details (adapter configs, operator signatures, transaction API).

Key invariants

  • Every requires field and "See also:" cross-reference resolves to an existing skill file
  • Every sources path in frontmatter points to an existing file in the repo
  • Code examples match actual API signatures (verified by automated review)
  • All framework packages re-export @tanstack/db (angular-db was missing this — fixed)

Non-goals

  • No SSR patterns (not implemented yet — documented as client-side only)
  • No changes to library source code beyond the angular-db re-export fix
  • Skills document current API (v0.5.30), not aspirational features

Skills inventory

Package Skill Type
@tanstack/db db-core (overview) core
@tanstack/db collection-setup + 7 adapter refs sub-skill
@tanstack/db live-queries + operators ref sub-skill
@tanstack/db mutations-optimistic + transaction ref sub-skill
@tanstack/db custom-adapter sub-skill
@tanstack/db meta-framework composition
@tanstack/react-db react-db framework
@tanstack/vue-db vue-db framework
@tanstack/svelte-db svelte-db framework
@tanstack/solid-db solid-db framework
@tanstack/angular-db angular-db framework
@tanstack/offline-transactions offline composition

Verification

# Verify frontmatter is valid YAML
for f in $(find packages -name 'SKILL.md'); do head -1 "$f" | grep -q '^---' && echo "OK: $f"; done

# Verify source references exist
grep -r 'TanStack/db:' packages/*/skills --include='*.md' -ho | sed 's/TanStack\/db://' | sort -u | while read f; do [ -f "$f" ] && echo "OK: $f" || echo "MISSING: $f"; done

# Build angular-db to verify re-export
pnpm --filter @tanstack/angular-db build

Files changed

  • packages/angular-db/src/index.ts — Add export * from '@tanstack/db' for consistency
  • packages/*/package.json (7 files) — Add "skills" to files arrays for npm publishing
  • packages/*/skills/**/*.md (21 files) — SKILL.md files and reference docs
  • _artifacts/skill_tree.yaml — Skill tree generation artifact
  • domain_map.yaml, skill_spec.md — Domain analysis artifacts
  • .changeset/add-intent-agent-skills.md — Changeset for versioning

🤖 Generated with Claude Code

Scaffold 12 SKILL.md files across 7 packages to guide AI coding agents.
Covers core DB concepts (collections, queries, mutations, custom adapters),
5 framework bindings (React, Vue, Svelte, Solid, Angular), meta-framework
integration (Start, Next, Remix, Nuxt, SvelteKit), and offline transactions.

Includes 9 reference files for adapter details, operators, and transaction
API. Updates package.json files arrays to publish skills with packages.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@changeset-bot
Copy link

changeset-bot bot commented Mar 5, 2026

🦋 Changeset detected

Latest commit: bc5a3f0

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
@tanstack/angular-db Patch
@tanstack/db Patch
@tanstack/react-db Patch
@tanstack/vue-db Patch
@tanstack/svelte-db Patch
@tanstack/solid-db Patch
@tanstack/offline-transactions Patch
@tanstack/electric-db-collection Patch
@tanstack/powersync-db-collection Patch
@tanstack/query-db-collection Patch
@tanstack/rxdb-db-collection Patch
@tanstack/trailbase-db-collection Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@pkg-pr-new
Copy link

pkg-pr-new bot commented Mar 5, 2026

More templates

@tanstack/angular-db

npm i https://pkg.pr.new/@tanstack/angular-db@1330

@tanstack/db

npm i https://pkg.pr.new/@tanstack/db@1330

@tanstack/db-ivm

npm i https://pkg.pr.new/@tanstack/db-ivm@1330

@tanstack/electric-db-collection

npm i https://pkg.pr.new/@tanstack/electric-db-collection@1330

@tanstack/offline-transactions

npm i https://pkg.pr.new/@tanstack/offline-transactions@1330

@tanstack/powersync-db-collection

npm i https://pkg.pr.new/@tanstack/powersync-db-collection@1330

@tanstack/query-db-collection

npm i https://pkg.pr.new/@tanstack/query-db-collection@1330

@tanstack/react-db

npm i https://pkg.pr.new/@tanstack/react-db@1330

@tanstack/rxdb-db-collection

npm i https://pkg.pr.new/@tanstack/rxdb-db-collection@1330

@tanstack/solid-db

npm i https://pkg.pr.new/@tanstack/solid-db@1330

@tanstack/svelte-db

npm i https://pkg.pr.new/@tanstack/svelte-db@1330

@tanstack/trailbase-db-collection

npm i https://pkg.pr.new/@tanstack/trailbase-db-collection@1330

@tanstack/vue-db

npm i https://pkg.pr.new/@tanstack/vue-db@1330

commit: 6fffeec

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

Size Change: 0 B

Total Size: 92.6 kB

ℹ️ View Unchanged
Filename Size
./packages/db/dist/esm/collection/change-events.js 1.39 kB
./packages/db/dist/esm/collection/changes.js 1.22 kB
./packages/db/dist/esm/collection/events.js 388 B
./packages/db/dist/esm/collection/index.js 3.32 kB
./packages/db/dist/esm/collection/indexes.js 1.1 kB
./packages/db/dist/esm/collection/lifecycle.js 1.75 kB
./packages/db/dist/esm/collection/mutations.js 2.34 kB
./packages/db/dist/esm/collection/state.js 3.49 kB
./packages/db/dist/esm/collection/subscription.js 3.71 kB
./packages/db/dist/esm/collection/sync.js 2.41 kB
./packages/db/dist/esm/deferred.js 207 B
./packages/db/dist/esm/errors.js 4.7 kB
./packages/db/dist/esm/event-emitter.js 748 B
./packages/db/dist/esm/index.js 2.7 kB
./packages/db/dist/esm/indexes/auto-index.js 742 B
./packages/db/dist/esm/indexes/base-index.js 766 B
./packages/db/dist/esm/indexes/btree-index.js 2.17 kB
./packages/db/dist/esm/indexes/lazy-index.js 1.1 kB
./packages/db/dist/esm/indexes/reverse-index.js 538 B
./packages/db/dist/esm/local-only.js 808 B
./packages/db/dist/esm/local-storage.js 2.1 kB
./packages/db/dist/esm/optimistic-action.js 359 B
./packages/db/dist/esm/paced-mutations.js 496 B
./packages/db/dist/esm/proxy.js 3.75 kB
./packages/db/dist/esm/query/builder/functions.js 733 B
./packages/db/dist/esm/query/builder/index.js 4.1 kB
./packages/db/dist/esm/query/builder/ref-proxy.js 1.05 kB
./packages/db/dist/esm/query/compiler/evaluators.js 1.43 kB
./packages/db/dist/esm/query/compiler/expressions.js 430 B
./packages/db/dist/esm/query/compiler/group-by.js 2.23 kB
./packages/db/dist/esm/query/compiler/index.js 2.04 kB
./packages/db/dist/esm/query/compiler/joins.js 2.11 kB
./packages/db/dist/esm/query/compiler/order-by.js 1.45 kB
./packages/db/dist/esm/query/compiler/select.js 1.09 kB
./packages/db/dist/esm/query/expression-helpers.js 1.43 kB
./packages/db/dist/esm/query/ir.js 673 B
./packages/db/dist/esm/query/live-query-collection.js 360 B
./packages/db/dist/esm/query/live/collection-config-builder.js 5.55 kB
./packages/db/dist/esm/query/live/collection-registry.js 264 B
./packages/db/dist/esm/query/live/collection-subscriber.js 2.42 kB
./packages/db/dist/esm/query/live/internal.js 145 B
./packages/db/dist/esm/query/optimizer.js 2.62 kB
./packages/db/dist/esm/query/predicate-utils.js 2.97 kB
./packages/db/dist/esm/query/subset-dedupe.js 921 B
./packages/db/dist/esm/scheduler.js 1.3 kB
./packages/db/dist/esm/SortedMap.js 1.3 kB
./packages/db/dist/esm/strategies/debounceStrategy.js 247 B
./packages/db/dist/esm/strategies/queueStrategy.js 428 B
./packages/db/dist/esm/strategies/throttleStrategy.js 246 B
./packages/db/dist/esm/transactions.js 2.9 kB
./packages/db/dist/esm/utils.js 924 B
./packages/db/dist/esm/utils/browser-polyfills.js 304 B
./packages/db/dist/esm/utils/btree.js 5.61 kB
./packages/db/dist/esm/utils/comparison.js 952 B
./packages/db/dist/esm/utils/cursor.js 457 B
./packages/db/dist/esm/utils/index-optimization.js 1.51 kB
./packages/db/dist/esm/utils/type-guards.js 157 B

compressed-size-action::db-package-size

@github-actions
Copy link
Contributor

github-actions bot commented Mar 5, 2026

Size Change: 0 B

Total Size: 3.85 kB

ℹ️ View Unchanged
Filename Size
./packages/react-db/dist/esm/index.js 225 B
./packages/react-db/dist/esm/useLiveInfiniteQuery.js 1.32 kB
./packages/react-db/dist/esm/useLiveQuery.js 1.34 kB
./packages/react-db/dist/esm/useLiveSuspenseQuery.js 559 B
./packages/react-db/dist/esm/usePacedMutations.js 401 B

compressed-size-action::react-db-package-size

KyleAMathews and others added 3 commits March 5, 2026 16:41
- Fix incorrect offline transaction API usage (tx.mutate pattern)
- Remove phantom ne operator, document not(eq(...)) pattern
- Fix Vue template variable reference (data → todos)
- Add export * from @tanstack/db to angular-db source
- Remove nonexistent math functions from skill_tree.yaml
- Remove no-op !skills/_artifacts exclusion from db/package.json
- Add isIdle/isCleanedUp to Angular and React SKILL.md
- Document deprecated query.data in Solid SKILL.md
- Promote Svelte deps mistake severity to CRITICAL

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
KyleAMathews and others added 6 commits March 6, 2026 13:22
- Document schema-vs-parser dual path for Electric collections
- Add Postgres-to-Electric type mapping table
- Add TanStack Start createServerFn example for write path
- Document z.coerce.date() as Zod-specific simpler alternative
- Add duplicate @tanstack/db instance guidance with Vite alias fix
- Fix Nuxt template variable reference (data → todos)
- Update Electric complete example with schema-first + parser

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The TanStack Start server functions section duplicates what's already in
electric-adapter.md. The duplicate @tanstack/db instances section isn't
meta-framework specific.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add duplicate @tanstack/db troubleshooting to react-db skill (pnpm ls
  diagnostic, pnpm overrides fix, Vite alias fix)
- Reframe localOnlyCollectionOptions: use specified backend directly,
  only fall back to local-only when no backend exists
- Add schema to Electric example in collection-setup (without schema,
  collection types as Record<string, unknown>)
- Add server-side integration pointer to meta-framework skill
- Add Electric proxy route pattern to electric-adapter reference

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@KyleAMathews KyleAMathews merged commit bf1d078 into main Mar 6, 2026
6 checks passed
@KyleAMathews KyleAMathews deleted the feat/intent-skills branch March 6, 2026 21:27
@github-actions github-actions bot mentioned this pull request Mar 4, 2026
@github-actions
Copy link
Contributor

github-actions bot commented Mar 6, 2026

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants