From 167c8ea09ef36e83e0e458c96436a32f06921df8 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Sun, 13 Sep 2026 19:56:54 +0000 Subject: [PATCH] ci: changeset release --- .changeset/bundle-dependencies.md | 5 -- .changeset/fast-dep-resolution.md | 5 -- .changeset/fewer-walk-syscalls.md | 5 -- .changeset/focused-skill-authoring.md | 15 ----- .changeset/guided-maintainer-adoption.md | 5 -- .changeset/hooks-local-cli.md | 5 -- .changeset/interactive-maintainer-review.md | 5 -- .changeset/lean-scan-startup.md | 5 -- .changeset/maintainer-authoring-commands.md | 5 -- .changeset/maintainer-ergonomics.md | 5 -- .changeset/maintainer-first-run.md | 7 -- .changeset/maintainer-release-hardening.md | 5 -- .changeset/maintainer-repair-patches.md | 5 -- .changeset/markdown-placeholder-collision.md | 5 -- .changeset/refresh-workspace-discovery.md | 7 -- .changeset/reusable-check-workflow.md | 9 --- .changeset/reuse-hook-parser.md | 5 -- .changeset/reuse-maintainer-reads.md | 5 -- .changeset/selected-skill-distribution.md | 7 -- .changeset/skill-code-block-checks.md | 5 -- .changeset/windows-markdown-escapes.md | 5 -- .changeset/workspace-root-intent-warning.md | 5 -- packages/intent/CHANGELOG.md | 70 ++++++++++++++++++++ packages/intent/package.json | 2 +- 24 files changed, 71 insertions(+), 131 deletions(-) delete mode 100644 .changeset/bundle-dependencies.md delete mode 100644 .changeset/fast-dep-resolution.md delete mode 100644 .changeset/fewer-walk-syscalls.md delete mode 100644 .changeset/focused-skill-authoring.md delete mode 100644 .changeset/guided-maintainer-adoption.md delete mode 100644 .changeset/hooks-local-cli.md delete mode 100644 .changeset/interactive-maintainer-review.md delete mode 100644 .changeset/lean-scan-startup.md delete mode 100644 .changeset/maintainer-authoring-commands.md delete mode 100644 .changeset/maintainer-ergonomics.md delete mode 100644 .changeset/maintainer-first-run.md delete mode 100644 .changeset/maintainer-release-hardening.md delete mode 100644 .changeset/maintainer-repair-patches.md delete mode 100644 .changeset/markdown-placeholder-collision.md delete mode 100644 .changeset/refresh-workspace-discovery.md delete mode 100644 .changeset/reusable-check-workflow.md delete mode 100644 .changeset/reuse-hook-parser.md delete mode 100644 .changeset/reuse-maintainer-reads.md delete mode 100644 .changeset/selected-skill-distribution.md delete mode 100644 .changeset/skill-code-block-checks.md delete mode 100644 .changeset/windows-markdown-escapes.md delete mode 100644 .changeset/workspace-root-intent-warning.md diff --git a/.changeset/bundle-dependencies.md b/.changeset/bundle-dependencies.md deleted file mode 100644 index 21b5c67e..00000000 --- a/.changeset/bundle-dependencies.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Ship `@tanstack/intent` with zero runtime dependencies. The libraries it uses (`yaml`, `semver`, `jsonc-parser`, `cac`, `std-env`, `@clack/prompts`) are now bundled and tree-shaken into `dist`, which cuts the install footprint from roughly 2.4 MB across 10 packages to under 1 MB in one, and makes every command start faster because Node loads a few chunks instead of ~150 files from `node_modules`. diff --git a/.changeset/fast-dep-resolution.md b/.changeset/fast-dep-resolution.md deleted file mode 100644 index 5f75e29f..00000000 --- a/.changeset/fast-dep-resolution.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Speed up dependency discovery. Resolve each dependency directory with a plain `node_modules` walk plus a single symlink collapse instead of Node's module resolver, which evaluated export maps and realpathed every path segment per lookup, and resolve each package's real root once per package instead of once per skill. `intent list` in a pnpm monorepo runs roughly 30% faster; discovered packages and paths are unchanged. diff --git a/.changeset/fewer-walk-syscalls.md b/.changeset/fewer-walk-syscalls.md deleted file mode 100644 index 63c106b9..00000000 --- a/.changeset/fewer-walk-syscalls.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Cut the filesystem work in dependency discovery. Each dependency edge now costs one `readlink` instead of a stat through the symlink plus an `lstat` and a `realpath`; symlink targets, candidate paths, and `node_modules` directories are memoized per scan; and directories the walk has already resolved skip their identity `lstat`. Workspace pattern sorting no longer initializes the ICU collator on every run. `intent list` in a pnpm monorepo runs about 35% faster and in an npm project about 25% faster, with identical results. diff --git a/.changeset/focused-skill-authoring.md b/.changeset/focused-skill-authoring.md deleted file mode 100644 index 3013e88a..00000000 --- a/.changeset/focused-skill-authoring.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -'@tanstack/intent': minor ---- - -Bring library skill authoring and maintenance into the normal coding-agent workflow. `intent install --maintainer` installs persistent guidance for agreed skill batches, source-grounded updates, representative executable task checks, and fresh-consumer verification when available. - -Add `intent review` to identify affected guidance and unmapped changes from Git, then record evidence-backed outcomes against source and skill content hashes. A skill or planning record with no recorded review is compared with the commit that introduced it. Repeated no-ops stay quiet until content changes; missing source evidence remains unresolved. The generated release workflow uses recorded reviews when present and retains the existing staleness fallback otherwise. - -Require every authoring batch to create and incrementally maintain `domain_map.yaml`, `skill_spec.md`, and `skill_tree.yaml`, preserving prior coverage, maintainer decisions, and remaining work. Track their review against source and skill contents and keep missing or invalid records unresolved. Keep focused authoring available through `maintainer setup`, `maintainer add`, `meta generate-skill`, and review reminders without mandatory full-library discovery. Add maintainer fixtures and protected task graders. - -Separate activation guidance in `description` from descriptive text in `metadata.purpose`, preserving original descriptions when migrating existing skills. Expose purpose separately in discovery and `list --json`; older skills remain supported. Group related features by developer task, use references for conditional detail, check discovery separately from task correctness, and bundle tested scripts only when useful. - -Keep the review-state lock held through atomic replacement, explain stale locks, and render repository-controlled review fields as untrusted data. Use the same command runner for reminder follow-up review commands. - -Replace `scaffold` with `intent maintainer setup|add|status|sync|review|check`. Initialize cumulative records and copy the `check-skills.yml` CI workflow when none exists, register package-owned skills, synchronize frontmatter and publishing metadata, and check authoring gaps and revision-bound reviews through deterministic commands. Preserve existing authored decisions and custom record locations. diff --git a/.changeset/guided-maintainer-adoption.md b/.changeset/guided-maintainer-adoption.md deleted file mode 100644 index 6dc26c02..00000000 --- a/.changeset/guided-maintainer-adoption.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': minor ---- - -`maintainer setup` replaces `maintainer adopt`, which is removed along with its JSON plan and `--apply`; update any script that called it. Setup registers existing package-owned skills found under `skills/` directories that the skill tree does not record yet. Skill contents are preserved; the domain comes from `metadata.domain`, the domain map, or the parent directory, and defaults to `uncategorized` for the maintainer to edit. Invalid or conflicting skills are reported and left unregistered. Agent skill directories, dependencies, and packages outside the workspace are not scanned. diff --git a/.changeset/hooks-local-cli.md b/.changeset/hooks-local-cli.md deleted file mode 100644 index 3fd7ad32..00000000 --- a/.changeset/hooks-local-cli.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Make agent hooks fast when `@tanstack/intent` is installed in the project. The session-start catalog previously ran `npx @tanstack/intent@latest list` (or the pnpm, yarn, or bun equivalent), which resolves the package against the npm registry on every session start and took one to four seconds; the runner now executes the locally installed CLI directly with the current Node binary, which takes about a tenth of a second, and falls back to the package-manager runner only when there is no local install. When that installation also has a `node_modules/.bin/intent` shim, the catalog suggests `node_modules/.bin/intent load #` for loads (otherwise it keeps suggesting the package-manager runner), and the edit gate recognizes that form. Reinstall hooks with `intent hooks install` to pick up the new runner. diff --git a/.changeset/interactive-maintainer-review.md b/.changeset/interactive-maintainer-review.md deleted file mode 100644 index 2d578bc3..00000000 --- a/.changeset/interactive-maintainer-review.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': minor ---- - -Add optional interactive maintainer review with guidance and source-diff inspection, per-item reasons and evidence, and confirmation before recording. Reuse existing fingerprints and evidence validation, retain JSON workflows, and prohibit interactive prompts in CI. Add `maintainer review --unchanged ` and `--updated ` to record one outcome for every pending item in a single command, with the reviewed revision and changed files as evidence. diff --git a/.changeset/lean-scan-startup.md b/.changeset/lean-scan-startup.md deleted file mode 100644 index 11c42b50..00000000 --- a/.changeset/lean-scan-startup.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Trim `intent list` and `intent load` startup. Discovery no longer loads the `semver` package on every run (a small built-in comparator picks between duplicate installed versions of a package, with identical results), and `intent install` loads its interactive prompt library only when it actually prompts. diff --git a/.changeset/maintainer-authoring-commands.md b/.changeset/maintainer-authoring-commands.md deleted file mode 100644 index 818cf240..00000000 --- a/.changeset/maintainer-authoring-commands.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Record developer tasks at registration with `maintainer add --task`, retire a registered skill with `maintainer remove ` without deleting its guidance, and include the recording contract (allowed outcomes and required fields) in `review --json` reports. Evidence may be a single string or a list, and the report points at `.intent/review.json`, which review ignores. diff --git a/.changeset/maintainer-ergonomics.md b/.changeset/maintainer-ergonomics.md deleted file mode 100644 index f436d8d7..00000000 --- a/.changeset/maintainer-ergonomics.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Print an ordered overview for `intent maintainer --help` and per-action options for `intent maintainer --help`. Name every file `maintainer add` and `maintainer sync` write, label consumer install commands, show changed files and missing reviews in `maintainer status` and `check`, validate each skills root once, report all missing repository-distribution inputs together, and print unsupported options in their kebab-case form. diff --git a/.changeset/maintainer-first-run.md b/.changeset/maintainer-first-run.md deleted file mode 100644 index fa7ba29d..00000000 --- a/.changeset/maintainer-first-run.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Stop reporting files Intent writes as unmapped source changes. Agent instruction files, generated plugin metadata, the CI workflow, package manifests, and lockfiles no longer need a recorded review unless a skill maps them; `review.ignore` in `skill_tree.yaml` adds repository-specific patterns. - -Register a skill with the workspace package that owns the current directory when `maintainer add` runs without `--package`. Reject a review record that annotates no outcomes and explain the required fields. Accept per-skill `files` entries written by `maintainer sync` during validation. Advise the current CI workflow version. diff --git a/.changeset/maintainer-release-hardening.md b/.changeset/maintainer-release-hardening.md deleted file mode 100644 index 44b643d7..00000000 --- a/.changeset/maintainer-release-hardening.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Generate commands for installed Intent, reject unsafe setup write paths before creating records, and validate distribution selections before writes. Check JavaScript library contracts and JSX examples across supported Markdown fences, and reuse validation results in maintainer reports to avoid compiling the same examples twice. diff --git a/.changeset/maintainer-repair-patches.md b/.changeset/maintainer-repair-patches.md deleted file mode 100644 index 41b3bfc8..00000000 --- a/.changeset/maintainer-repair-patches.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Add a lightweight `intent repair` command for unambiguous frontmatter migrations and reviewable before/after example patches. Preserve conflicting metadata and refuse alias edits that could change unrelated fields. Write mode applies only safe frontmatter changes; code-example suggestions require review and are emitted as patches without changing source files. diff --git a/.changeset/markdown-placeholder-collision.md b/.changeset/markdown-placeholder-collision.md deleted file mode 100644 index aa7bcf46..00000000 --- a/.changeset/markdown-placeholder-collision.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Keep Markdown link destinations that contain a private-use character (U+E000) intact when `intent load` and `intent meta` rewrite relative paths; the escape placeholder is now chosen so it never collides with the destination's own characters. diff --git a/.changeset/refresh-workspace-discovery.md b/.changeset/refresh-workspace-discovery.md deleted file mode 100644 index a25be0da..00000000 --- a/.changeset/refresh-workspace-discovery.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Refresh workspace roots, patterns, and members between core operations. Keep workspace discovery reuse within the existing operation-local filesystem cache so listing and loading observe changed membership and source kinds. - -Avoid enumerating unrelated workspace members and reading unused skill metadata during direct loads. Preserve fresh policy reads and final path checks. diff --git a/.changeset/reusable-check-workflow.md b/.changeset/reusable-check-workflow.md deleted file mode 100644 index 26051b8c..00000000 --- a/.changeset/reusable-check-workflow.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Run skill checks through reusable GitHub workflows pinned to the immutable commit packaged with the installed Intent release. Setup validates generated workflow inputs and write paths before copying files. Analysis uses the repository's locked CLI, disables dependency lifecycle scripts, and has read permissions. Optional review publication runs separately with bounded report validation. - -The PR workflow runs one combined validation check and can prepare mechanical repairs and suggested example patches for review. It retains the patches when validation fails and never publishes fixes or marks semantic reviews complete. `intent maintainer check --github-summary` reports authoring issues, stale generated files, and pending source reviews in the GitHub Actions step summary. - -Validation counts each skill once across overlapping custom roots and avoids duplicate packaging warnings for the same skill. diff --git a/.changeset/reuse-hook-parser.md b/.changeset/reuse-hook-parser.md deleted file mode 100644 index 64912973..00000000 --- a/.changeset/reuse-hook-parser.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Generate standalone hook command parsing from the tested policy parser. Preserve agent-specific output, install ownership, and fail-open catalog behavior. diff --git a/.changeset/reuse-maintainer-reads.md b/.changeset/reuse-maintainer-reads.md deleted file mode 100644 index 7e9450b9..00000000 --- a/.changeset/reuse-maintainer-reads.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Reuse parsed planning records, source hashes, and Git source matches within maintainer operations. Keep fresh checks for later reports and writes. diff --git a/.changeset/selected-skill-distribution.md b/.changeset/selected-skill-distribution.md deleted file mode 100644 index 1d6da732..00000000 --- a/.changeset/selected-skill-distribution.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'@tanstack/intent': minor ---- - -Add explicit repository skill distribution to the maintainer command workflow. Package-only distribution is the default and needs no record. Keep skills in their owning packages, record a selection or an explicit opt-out in `skill_tree.yaml`, and generate Claude/Cursor plugin metadata and consumer install commands for `npx skills add` and `gh skill add`. Preserve unrelated plugin fields, require explicit prerequisite selection, and check generated files for drift without publishing or installing anything on the maintainer's behalf. - -Find selected package skills even when root-level skills exist, and reject conflicting Claude marketplace-only definitions before writing generated files. diff --git a/.changeset/skill-code-block-checks.md b/.changeset/skill-code-block-checks.md deleted file mode 100644 index c0baa203..00000000 --- a/.changeset/skill-code-block-checks.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': minor ---- - -`validate` checks every fenced TypeScript and JavaScript block in a `SKILL.md` against the owning package's own types when TypeScript is available in the repository. A renamed export, a removed option, or a changed shape fails validation with the skill file and line. Imports of exports marked `@deprecated` produce warnings, and relative Markdown links must resolve. Names, modules, and globals a partial snippet leaves out are not reported. Repositories without TypeScript skip the code checks with a notice. Pending review items for skills report whether their examples still compile. diff --git a/.changeset/windows-markdown-escapes.md b/.changeset/windows-markdown-escapes.md deleted file mode 100644 index 728d569a..00000000 --- a/.changeset/windows-markdown-escapes.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Fix Windows path handling. Preserve backslash escapes in Markdown link destinations when `intent load` and `intent meta` rewrite relative paths (an escaped `\)` was normalized into a path separator). Normalize the Git repository root reported by `git rev-parse` so `intent maintainer add` no longer rejects every skill path with "must belong to the selected package", and print repository-relative paths in maintainer output and `maintainer status --json` with forward slashes on every platform. diff --git a/.changeset/workspace-root-intent-warning.md b/.changeset/workspace-root-intent-warning.md deleted file mode 100644 index 6d5e52cf..00000000 --- a/.changeset/workspace-root-intent-warning.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'@tanstack/intent': patch ---- - -Recognize Intent installed as a devDependency at the owning workspace root when validating package skills. diff --git a/packages/intent/CHANGELOG.md b/packages/intent/CHANGELOG.md index 100145c5..710aad63 100644 --- a/packages/intent/CHANGELOG.md +++ b/packages/intent/CHANGELOG.md @@ -1,5 +1,75 @@ # @tanstack/intent +## 0.5.0 + +### Minor Changes + +- [#258](https://github.com/TanStack/intent/pull/258) [`920a3d5`](https://github.com/TanStack/intent/commit/920a3d5c9871304379ddbe61b00ef417257a097c) - Bring library skill authoring and maintenance into the normal coding-agent workflow. `intent install --maintainer` installs persistent guidance for agreed skill batches, source-grounded updates, representative executable task checks, and fresh-consumer verification when available. + + Add `intent review` to identify affected guidance and unmapped changes from Git, then record evidence-backed outcomes against source and skill content hashes. A skill or planning record with no recorded review is compared with the commit that introduced it. Repeated no-ops stay quiet until content changes; missing source evidence remains unresolved. The generated release workflow uses recorded reviews when present and retains the existing staleness fallback otherwise. + + Require every authoring batch to create and incrementally maintain `domain_map.yaml`, `skill_spec.md`, and `skill_tree.yaml`, preserving prior coverage, maintainer decisions, and remaining work. Track their review against source and skill contents and keep missing or invalid records unresolved. Keep focused authoring available through `maintainer setup`, `maintainer add`, `meta generate-skill`, and review reminders without mandatory full-library discovery. Add maintainer fixtures and protected task graders. + + Separate activation guidance in `description` from descriptive text in `metadata.purpose`, preserving original descriptions when migrating existing skills. Expose purpose separately in discovery and `list --json`; older skills remain supported. Group related features by developer task, use references for conditional detail, check discovery separately from task correctness, and bundle tested scripts only when useful. + + Keep the review-state lock held through atomic replacement, explain stale locks, and render repository-controlled review fields as untrusted data. Use the same command runner for reminder follow-up review commands. + + Replace `scaffold` with `intent maintainer setup|add|status|sync|review|check`. Initialize cumulative records and copy the `check-skills.yml` CI workflow when none exists, register package-owned skills, synchronize frontmatter and publishing metadata, and check authoring gaps and revision-bound reviews through deterministic commands. Preserve existing authored decisions and custom record locations. + +- [#262](https://github.com/TanStack/intent/pull/262) [`e560b60`](https://github.com/TanStack/intent/commit/e560b60e59f5063606252513ceed687f7767e988) - `maintainer setup` replaces `maintainer adopt`, which is removed along with its JSON plan and `--apply`; update any script that called it. Setup registers existing package-owned skills found under `skills/` directories that the skill tree does not record yet. Skill contents are preserved; the domain comes from `metadata.domain`, the domain map, or the parent directory, and defaults to `uncategorized` for the maintainer to edit. Invalid or conflicting skills are reported and left unregistered. Agent skill directories, dependencies, and packages outside the workspace are not scanned. + +- [#263](https://github.com/TanStack/intent/pull/263) [`d4eca84`](https://github.com/TanStack/intent/commit/d4eca844556b34ed0f281f9f9c11052233ce949f) - Add optional interactive maintainer review with guidance and source-diff inspection, per-item reasons and evidence, and confirmation before recording. Reuse existing fingerprints and evidence validation, retain JSON workflows, and prohibit interactive prompts in CI. Add `maintainer review --unchanged ` and `--updated ` to record one outcome for every pending item in a single command, with the reviewed revision and changed files as evidence. + +- [#260](https://github.com/TanStack/intent/pull/260) [`3437a6c`](https://github.com/TanStack/intent/commit/3437a6c8a6d8d0365f41cd0834c6b17195158931) - Add explicit repository skill distribution to the maintainer command workflow. Package-only distribution is the default and needs no record. Keep skills in their owning packages, record a selection or an explicit opt-out in `skill_tree.yaml`, and generate Claude/Cursor plugin metadata and consumer install commands for `npx skills add` and `gh skill add`. Preserve unrelated plugin fields, require explicit prerequisite selection, and check generated files for drift without publishing or installing anything on the maintainer's behalf. + + Find selected package skills even when root-level skills exist, and reject conflicting Claude marketplace-only definitions before writing generated files. + +- [#289](https://github.com/TanStack/intent/pull/289) [`0a42b40`](https://github.com/TanStack/intent/commit/0a42b40fe264442e8e91bccb19099ed2dc34979d) - `validate` checks every fenced TypeScript and JavaScript block in a `SKILL.md` against the owning package's own types when TypeScript is available in the repository. A renamed export, a removed option, or a changed shape fails validation with the skill file and line. Imports of exports marked `@deprecated` produce warnings, and relative Markdown links must resolve. Names, modules, and globals a partial snippet leaves out are not reported. Repositories without TypeScript skip the code checks with a notice. Pending review items for skills report whether their examples still compile. + +### Patch Changes + +- [#279](https://github.com/TanStack/intent/pull/279) [`c642ba8`](https://github.com/TanStack/intent/commit/c642ba8f2a27af08624c1fb17727018dcd1254d6) - Ship `@tanstack/intent` with zero runtime dependencies. The libraries it uses (`yaml`, `semver`, `jsonc-parser`, `cac`, `std-env`, `@clack/prompts`) are now bundled and tree-shaken into `dist`, which cuts the install footprint from roughly 2.4 MB across 10 packages to under 1 MB in one, and makes every command start faster because Node loads a few chunks instead of ~150 files from `node_modules`. + +- [#276](https://github.com/TanStack/intent/pull/276) [`74d1b26`](https://github.com/TanStack/intent/commit/74d1b264c931880e2bfe13c518b1944e50a233d9) - Speed up dependency discovery. Resolve each dependency directory with a plain `node_modules` walk plus a single symlink collapse instead of Node's module resolver, which evaluated export maps and realpathed every path segment per lookup, and resolve each package's real root once per package instead of once per skill. `intent list` in a pnpm monorepo runs roughly 30% faster; discovered packages and paths are unchanged. + +- [#282](https://github.com/TanStack/intent/pull/282) [`fc5472a`](https://github.com/TanStack/intent/commit/fc5472a516a18c0068334e23326adb33c7038780) - Cut the filesystem work in dependency discovery. Each dependency edge now costs one `readlink` instead of a stat through the symlink plus an `lstat` and a `realpath`; symlink targets, candidate paths, and `node_modules` directories are memoized per scan; and directories the walk has already resolved skip their identity `lstat`. Workspace pattern sorting no longer initializes the ICU collator on every run. `intent list` in a pnpm monorepo runs about 35% faster and in an npm project about 25% faster, with identical results. + +- [#283](https://github.com/TanStack/intent/pull/283) [`0be3bc7`](https://github.com/TanStack/intent/commit/0be3bc7504376f64689b7f19e8345e10d4018188) - Make agent hooks fast when `@tanstack/intent` is installed in the project. The session-start catalog previously ran `npx @tanstack/intent@latest list` (or the pnpm, yarn, or bun equivalent), which resolves the package against the npm registry on every session start and took one to four seconds; the runner now executes the locally installed CLI directly with the current Node binary, which takes about a tenth of a second, and falls back to the package-manager runner only when there is no local install. When that installation also has a `node_modules/.bin/intent` shim, the catalog suggests `node_modules/.bin/intent load #` for loads (otherwise it keeps suggesting the package-manager runner), and the edit gate recognizes that form. Reinstall hooks with `intent hooks install` to pick up the new runner. + +- [#278](https://github.com/TanStack/intent/pull/278) [`0c074e3`](https://github.com/TanStack/intent/commit/0c074e3da6f2241475ae209b51ac1195ecafa716) - Trim `intent list` and `intent load` startup. Discovery no longer loads the `semver` package on every run (a small built-in comparator picks between duplicate installed versions of a package, with identical results), and `intent install` loads its interactive prompt library only when it actually prompts. + +- [#273](https://github.com/TanStack/intent/pull/273) [`36a1bf1`](https://github.com/TanStack/intent/commit/36a1bf1cd2a9fdab842f215ec1a8df7b04eee4a8) - Record developer tasks at registration with `maintainer add --task`, retire a registered skill with `maintainer remove ` without deleting its guidance, and include the recording contract (allowed outcomes and required fields) in `review --json` reports. Evidence may be a single string or a list, and the report points at `.intent/review.json`, which review ignores. + +- [#272](https://github.com/TanStack/intent/pull/272) [`33b5e8b`](https://github.com/TanStack/intent/commit/33b5e8b0a38877a121ef4f2b38c39c236b6ca383) - Print an ordered overview for `intent maintainer --help` and per-action options for `intent maintainer --help`. Name every file `maintainer add` and `maintainer sync` write, label consumer install commands, show changed files and missing reviews in `maintainer status` and `check`, validate each skills root once, report all missing repository-distribution inputs together, and print unsupported options in their kebab-case form. + +- [#271](https://github.com/TanStack/intent/pull/271) [`337f8f5`](https://github.com/TanStack/intent/commit/337f8f537ac63c89e9c557d19911fcbc2c739997) - Stop reporting files Intent writes as unmapped source changes. Agent instruction files, generated plugin metadata, the CI workflow, package manifests, and lockfiles no longer need a recorded review unless a skill maps them; `review.ignore` in `skill_tree.yaml` adds repository-specific patterns. + + Register a skill with the workspace package that owns the current directory when `maintainer add` runs without `--package`. Reject a review record that annotates no outcomes and explain the required fields. Accept per-skill `files` entries written by `maintainer sync` during validation. Advise the current CI workflow version. + +- [#291](https://github.com/TanStack/intent/pull/291) [`909f5fc`](https://github.com/TanStack/intent/commit/909f5fcb98c0c90489d939823e36bf0f562fd040) - Generate commands for installed Intent, reject unsafe setup write paths before creating records, and validate distribution selections before writes. Check JavaScript library contracts and JSX examples across supported Markdown fences, and reuse validation results in maintainer reports to avoid compiling the same examples twice. + +- [#292](https://github.com/TanStack/intent/pull/292) [`305ca7f`](https://github.com/TanStack/intent/commit/305ca7fbf6f199bc794dd2fe8a04d7f83d3fa62e) - Add a lightweight `intent repair` command for unambiguous frontmatter migrations and reviewable before/after example patches. Preserve conflicting metadata and refuse alias edits that could change unrelated fields. Write mode applies only safe frontmatter changes; code-example suggestions require review and are emitted as patches without changing source files. + +- [#284](https://github.com/TanStack/intent/pull/284) [`864562c`](https://github.com/TanStack/intent/commit/864562c4035c3382887973ac9e53decb1b436d08) - Keep Markdown link destinations that contain a private-use character (U+E000) intact when `intent load` and `intent meta` rewrite relative paths; the escape placeholder is now chosen so it never collides with the destination's own characters. + +- [#267](https://github.com/TanStack/intent/pull/267) [`54f7d97`](https://github.com/TanStack/intent/commit/54f7d97292afc22c9ce99995bd56c8103aa7c0f4) - Refresh workspace roots, patterns, and members between core operations. Keep workspace discovery reuse within the existing operation-local filesystem cache so listing and loading observe changed membership and source kinds. + + Avoid enumerating unrelated workspace members and reading unused skill metadata during direct loads. Preserve fresh policy reads and final path checks. + +- [#290](https://github.com/TanStack/intent/pull/290) [`ed6ca00`](https://github.com/TanStack/intent/commit/ed6ca00e031c249d0468d62248a387cd2a1543ca) - Run skill checks through reusable GitHub workflows pinned to the immutable commit packaged with the installed Intent release. Setup validates generated workflow inputs and write paths before copying files. Analysis uses the repository's locked CLI, disables dependency lifecycle scripts, and has read permissions. Optional review publication runs separately with bounded report validation. + + The PR workflow runs one combined validation check and can prepare mechanical repairs and suggested example patches for review. It retains the patches when validation fails and never publishes fixes or marks semantic reviews complete. `intent maintainer check --github-summary` reports authoring issues, stale generated files, and pending source reviews in the GitHub Actions step summary. + + Validation counts each skill once across overlapping custom roots and avoids duplicate packaging warnings for the same skill. + +- [#268](https://github.com/TanStack/intent/pull/268) [`fab9591`](https://github.com/TanStack/intent/commit/fab95914ab34bcdd3766c8d19991e86dae5c585b) - Generate standalone hook command parsing from the tested policy parser. Preserve agent-specific output, install ownership, and fail-open catalog behavior. + +- [#265](https://github.com/TanStack/intent/pull/265) [`5f56f22`](https://github.com/TanStack/intent/commit/5f56f22c035b8dd425e140ab51c6b41cb4e36a9a) - Reuse parsed planning records, source hashes, and Git source matches within maintainer operations. Keep fresh checks for later reports and writes. + +- [#275](https://github.com/TanStack/intent/pull/275) [`9e73959`](https://github.com/TanStack/intent/commit/9e7395929195f44c03b18caaffe0bb33966a389e) - Fix Windows path handling. Preserve backslash escapes in Markdown link destinations when `intent load` and `intent meta` rewrite relative paths (an escaped `\)` was normalized into a path separator). Normalize the Git repository root reported by `git rev-parse` so `intent maintainer add` no longer rejects every skill path with "must belong to the selected package", and print repository-relative paths in maintainer output and `maintainer status --json` with forward slashes on every platform. + +- [#266](https://github.com/TanStack/intent/pull/266) [`7a2a9e1`](https://github.com/TanStack/intent/commit/7a2a9e1fbc5baa43cb092a3dcf88e1e5a4cb5722) - Recognize Intent installed as a devDependency at the owning workspace root when validating package skills. + ## 0.4.0 ### Minor Changes diff --git a/packages/intent/package.json b/packages/intent/package.json index 78e9e5c1..94d5889c 100644 --- a/packages/intent/package.json +++ b/packages/intent/package.json @@ -1,6 +1,6 @@ { "name": "@tanstack/intent", - "version": "0.4.0", + "version": "0.5.0", "description": "Ship compositional knowledge for AI coding agents alongside your npm packages", "license": "MIT", "engines": {