From c9b365e27221e67d67d4889593932bf0e4bd13fa Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Thu, 12 Nov 2026 05:25:01 +0000 Subject: [PATCH] chore: version packages --- .changeset/agent-topics-toc.md | 5 ----- .changeset/ast-command.md | 5 ----- .changeset/check-json-summary.md | 7 ------ .changeset/detect-dart-roslyn-projects.md | 5 ----- .changeset/node-version-message.md | 5 ----- .changeset/onboard-review-mining.md | 5 ----- .../route-defers-onboarding-questions.md | 5 ----- .changeset/sg-regex-needs-kind-schema.md | 7 ------ .changeset/show-scope-exclusion-fixture.md | 5 ----- .claude-plugin/plugin.json | 2 +- package.json | 2 +- packages/cli/CHANGELOG.md | 22 +++++++++++++++++++ packages/cli/package.json | 2 +- skills/taskless/SKILL.md | 2 +- 14 files changed, 26 insertions(+), 53 deletions(-) delete mode 100644 .changeset/agent-topics-toc.md delete mode 100644 .changeset/ast-command.md delete mode 100644 .changeset/check-json-summary.md delete mode 100644 .changeset/detect-dart-roslyn-projects.md delete mode 100644 .changeset/node-version-message.md delete mode 100644 .changeset/onboard-review-mining.md delete mode 100644 .changeset/route-defers-onboarding-questions.md delete mode 100644 .changeset/sg-regex-needs-kind-schema.md delete mode 100644 .changeset/show-scope-exclusion-fixture.md diff --git a/.changeset/agent-topics-toc.md b/.changeset/agent-topics-toc.md deleted file mode 100644 index 90bbb3d6..00000000 --- a/.changeset/agent-topics-toc.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -`taskless agent ` now prints a long topic as an outline that fits one agent tool call: its steps, then a list of sections it serves on request. Print one with `taskless agent --section `, or the whole recipe with `--full`. Reference material such as quirk tables, engine reach lists, input schemas and the `update` ledger entries moved into those sections, so an agent harness that cuts long output no longer drops the middle of a recipe. `taskless onboard` and `taskless update` print the same outline. `@taskless/cli/prompts` still renders whole recipes. diff --git a/.changeset/ast-command.md b/.changeset/ast-command.md deleted file mode 100644 index 4b01b73a..00000000 --- a/.changeset/ast-command.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -New `taskless ast ` prints a file's named-node AST, parsed by the bundled ast-grep as the language the file's extension resolves to, so every kind it shows is one a rule's `kind:` accepts. `--range [:]` cuts the tree to the nodes on those lines, `--lang` overrides the language, and `--json` emits the tree as data. `create-sg-rule` now sends authors to it for kinds instead of to ast-grep's `--debug-query`, which left agents hunting for an ast-grep binary. diff --git a/.changeset/check-json-summary.md b/.changeset/check-json-summary.md deleted file mode 100644 index 22e7fca1..00000000 --- a/.changeset/check-json-summary.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@taskless/cli": patch ---- - -`check --json` now carries a `summary`: total findings, distinct files, counts by severity, and one entry per rule that fired, keyed by `engine` and `ruleId`. The new `--summary` flag returns only that summary (under `--json` it omits `results`), so an agent can measure a whole repository in one call whose output stays small; without `--json` it prints per-rule counts. Findings from `check --json` and `verify --json` now share one schema, published as `findingSchema` from `@taskless/cli/schemas` alongside `checkOutputSchema`. - -Patch: the package is 0.y.z and the change is additive. `results` and every existing key are unchanged unless you pass the new `--summary` flag, so no existing consumer has to react. diff --git a/.changeset/detect-dart-roslyn-projects.md b/.changeset/detect-dart-roslyn-projects.md deleted file mode 100644 index e08dff8f..00000000 --- a/.changeset/detect-dart-roslyn-projects.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -`taskless detect` now recognizes Dart and Flutter repositories and a C# repository's own Roslyn analyzers. Dart comes from a `pubspec.yaml`, and the new `dart-analyzer` linter from an `analysis_options.yaml`, a `lints`, `flutter_lints` or `very_good_analysis` package, or a CI or hook command that runs `dart analyze` or `flutter analyze`. The new `custom-analyzer` linter comes from a `ProjectReference` with `OutputItemType="Analyzer"` in a project file, `.props` or `.targets`; its evidence names the referenced project, and its `customRules` counts the `[DiagnosticAnalyzer]` classes in it. diff --git a/.changeset/node-version-message.md b/.changeset/node-version-message.md deleted file mode 100644 index 3d8bacd0..00000000 --- a/.changeset/node-version-message.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -On a Node older than the CLI needs (`>=22.22.0`), Taskless now stops with `Taskless needs Node >=22.22.0, you have 20.19.0. Install a newer Node and run it again.` and exits 1, instead of crashing with an unrelated `SyntaxError` about `globSync`. This holds for `npx @taskless/cli` and `pnpm dlx`, whose `bin` is now a small shim that checks the version before loading the CLI, and for the project launcher (`.taskless/bin/cli.mjs`), which checks before installing a version and before running one. Launchers pick this up when `init` rewrites them. The `ci` recipe now says the job needs Node 22.22 or later. diff --git a/.changeset/onboard-review-mining.md b/.changeset/onboard-review-mining.md deleted file mode 100644 index c39b179b..00000000 --- a/.changeset/onboard-review-mining.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -Onboarding now covers a busy repository's whole review window. The review-comment source names the 1000-result cap of `gh pr list` and `gh search`, gives ready commands to count the window, list it by date range, and fetch every inline review comment since the window opened through `gh api --paginate`, and says to sample evenly across the window rather than read the newest pull requests. GitLab gets the same whole-window guidance through `glab api --paginate`. The scan step now has the agent record each counted comment under its candidate while mining, so `surfaced` comes from that record instead of a second read. diff --git a/.changeset/route-defers-onboarding-questions.md b/.changeset/route-defers-onboarding-questions.md deleted file mode 100644 index e3f074ef..00000000 --- a/.changeset/route-defers-onboarding-questions.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -`route` (topic v11) and `onboard` (topic v12) now give one answer to "may I ask the user here?". `route` says that a recipe which limits questions, such as `onboard`, overrides its step 7 choice between a local rule and a generation, its clarifying question when two destinations fit, and its failure fallback's confirmation. `onboard` says what to do at each of those points instead: write the local rule, or skip the candidate and name it beside the report summary. Previously an onboarding agent could read `route` as permission to ask questions that `onboard` forbids. diff --git a/.changeset/sg-regex-needs-kind-schema.md b/.changeset/sg-regex-needs-kind-schema.md deleted file mode 100644 index 4201da2b..00000000 --- a/.changeset/sg-regex-needs-kind-schema.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -"@taskless/cli": patch ---- - -`sg-regex-needs-kind` now lives in the ast-grep rule schema. The schema the CLI publishes states the pairing as `if`/`then` on every rule definition, and `validate` reports it from the schema layer with the same paths, so a schema-aware tool flags exactly what `validate` refuses. Every `regex`, at any depth, is covered: `rule`, `constraints`, `utils`, every `any`/`all`/`not`/`has`/`inside`/`precedes`/`follows` sub-rule, and the rarer positions (`stopBy`, `nthChild.ofRule`, utility arguments, `fix.expandStart`/`expandEnd`, rewriters). A sibling `any:` whose every branch sets a `kind` now anchors the regex, so a constraint no longer has to be split into one branch per kind, and an `all:` with one branch that sets a `kind` counts too. The message says how to find the kind, and it is reported even when another field also fails the schema. The `create-sg-rule` recipe (topic v15) lists the rule under Quirks. - -`validate` now notices a `has` or `inside` that declares no `stopBy`, as it already did for `follows` and `precedes`. Both default to looking one level (direct children, direct parent), so an exclusion such as `not: { inside: { kind: try_statement } }` silently stops excluding anything nested deeper. A relation that names a `field` is left alone, and `stopBy: neighbor` silences the notice where one level is what you mean. The `create-sg-rule` Quirks list has the matching entry. diff --git a/.changeset/show-scope-exclusion-fixture.md b/.changeset/show-scope-exclusion-fixture.md deleted file mode 100644 index 5f7834d2..00000000 --- a/.changeset/show-scope-exclusion-fixture.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -"@taskless/cli": patch ---- - -Say how to show that a rule's scope excludes a path. The fixture layout in every authoring recipe, and `create-sg-rule`, now explain the working pattern: put the excluded file in a `pass/` case beside a clean file the scope admits. When `verify` rejects a `pass/` case because the scope excluded every file in it, the error now suggests the same thing alongside moving the fixture. diff --git a/.claude-plugin/plugin.json b/.claude-plugin/plugin.json index da7212d5..7919fcd2 100644 --- a/.claude-plugin/plugin.json +++ b/.claude-plugin/plugin.json @@ -1,7 +1,7 @@ { "name": "taskless", "description": "Taskless skills for code quality rules, authentication, and project management", - "version": "0.13.7", + "version": "0.13.8", "author": { "name": "Taskless" }, diff --git a/package.json b/package.json index ed716990..b5a5beda 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "@taskless/skills", - "version": "0.13.7", + "version": "0.13.8", "license": "MIT", "repository": "taskless/cli.git", "scripts": { diff --git a/packages/cli/CHANGELOG.md b/packages/cli/CHANGELOG.md index d62194a4..b4c990e6 100644 --- a/packages/cli/CHANGELOG.md +++ b/packages/cli/CHANGELOG.md @@ -1,5 +1,27 @@ # @taskless/cli +## 0.13.8 + +[Compare with v0.13.7](https://github.com/taskless/cli/compare/v0.13.7...v0.13.8) + +### Patch Changes + +- 56606a1: `taskless agent ` now prints a long topic as an outline that fits one agent tool call: its steps, then a list of sections it serves on request. Print one with `taskless agent --section `, or the whole recipe with `--full`. Reference material such as quirk tables, engine reach lists, input schemas and the `update` ledger entries moved into those sections, so an agent harness that cuts long output no longer drops the middle of a recipe. `taskless onboard` and `taskless update` print the same outline. `@taskless/cli/prompts` still renders whole recipes. +- cbc4187: New `taskless ast ` prints a file's named-node AST, parsed by the bundled ast-grep as the language the file's extension resolves to, so every kind it shows is one a rule's `kind:` accepts. `--range [:]` cuts the tree to the nodes on those lines, `--lang` overrides the language, and `--json` emits the tree as data. `create-sg-rule` now sends authors to it for kinds instead of to ast-grep's `--debug-query`, which left agents hunting for an ast-grep binary. +- ac64849: `check --json` now carries a `summary`: total findings, distinct files, counts by severity, and one entry per rule that fired, keyed by `engine` and `ruleId`. The new `--summary` flag returns only that summary (under `--json` it omits `results`), so an agent can measure a whole repository in one call whose output stays small; without `--json` it prints per-rule counts. Findings from `check --json` and `verify --json` now share one schema, published as `findingSchema` from `@taskless/cli/schemas` alongside `checkOutputSchema`. + + Patch: the package is 0.y.z and the change is additive. `results` and every existing key are unchanged unless you pass the new `--summary` flag, so no existing consumer has to react. + +- 5c037f7: `taskless detect` now recognizes Dart and Flutter repositories and a C# repository's own Roslyn analyzers. Dart comes from a `pubspec.yaml`, and the new `dart-analyzer` linter from an `analysis_options.yaml`, a `lints`, `flutter_lints` or `very_good_analysis` package, or a CI or hook command that runs `dart analyze` or `flutter analyze`. The new `custom-analyzer` linter comes from a `ProjectReference` with `OutputItemType="Analyzer"` in a project file, `.props` or `.targets`; its evidence names the referenced project, and its `customRules` counts the `[DiagnosticAnalyzer]` classes in it. +- 3b6141a: On a Node older than the CLI needs (`>=22.22.0`), Taskless now stops with `Taskless needs Node >=22.22.0, you have 20.19.0. Install a newer Node and run it again.` and exits 1, instead of crashing with an unrelated `SyntaxError` about `globSync`. This holds for `npx @taskless/cli` and `pnpm dlx`, whose `bin` is now a small shim that checks the version before loading the CLI, and for the project launcher (`.taskless/bin/cli.mjs`), which checks before installing a version and before running one. Launchers pick this up when `init` rewrites them. The `ci` recipe now says the job needs Node 22.22 or later. +- 05b7fd4: Onboarding now covers a busy repository's whole review window. The review-comment source names the 1000-result cap of `gh pr list` and `gh search`, gives ready commands to count the window, list it by date range, and fetch every inline review comment since the window opened through `gh api --paginate`, and says to sample evenly across the window rather than read the newest pull requests. GitLab gets the same whole-window guidance through `glab api --paginate`. The scan step now has the agent record each counted comment under its candidate while mining, so `surfaced` comes from that record instead of a second read. +- a64ff5c: `route` (topic v11) and `onboard` (topic v12) now give one answer to "may I ask the user here?". `route` says that a recipe which limits questions, such as `onboard`, overrides its step 7 choice between a local rule and a generation, its clarifying question when two destinations fit, and its failure fallback's confirmation. `onboard` says what to do at each of those points instead: write the local rule, or skip the candidate and name it beside the report summary. Previously an onboarding agent could read `route` as permission to ask questions that `onboard` forbids. +- 0ca2af8: `sg-regex-needs-kind` now lives in the ast-grep rule schema. The schema the CLI publishes states the pairing as `if`/`then` on every rule definition, and `validate` reports it from the schema layer with the same paths, so a schema-aware tool flags exactly what `validate` refuses. Every `regex`, at any depth, is covered: `rule`, `constraints`, `utils`, every `any`/`all`/`not`/`has`/`inside`/`precedes`/`follows` sub-rule, and the rarer positions (`stopBy`, `nthChild.ofRule`, utility arguments, `fix.expandStart`/`expandEnd`, rewriters). A sibling `any:` whose every branch sets a `kind` now anchors the regex, so a constraint no longer has to be split into one branch per kind, and an `all:` with one branch that sets a `kind` counts too. The message says how to find the kind, and it is reported even when another field also fails the schema. The `create-sg-rule` recipe (topic v15) lists the rule under Quirks. + + `validate` now notices a `has` or `inside` that declares no `stopBy`, as it already did for `follows` and `precedes`. Both default to looking one level (direct children, direct parent), so an exclusion such as `not: { inside: { kind: try_statement } }` silently stops excluding anything nested deeper. A relation that names a `field` is left alone, and `stopBy: neighbor` silences the notice where one level is what you mean. The `create-sg-rule` Quirks list has the matching entry. + +- e30890c: Say how to show that a rule's scope excludes a path. The fixture layout in every authoring recipe, and `create-sg-rule`, now explain the working pattern: put the excluded file in a `pass/` case beside a clean file the scope admits. When `verify` rejects a `pass/` case because the scope excluded every file in it, the error now suggests the same thing alongside moving the fixture. + ## 0.13.7 [Compare with v0.13.6](https://github.com/taskless/cli/compare/v0.13.6...v0.13.7) diff --git a/packages/cli/package.json b/packages/cli/package.json index 95d68631..7d640252 100644 --- a/packages/cli/package.json +++ b/packages/cli/package.json @@ -1,6 +1,6 @@ { "name": "@taskless/cli", - "version": "0.13.7", + "version": "0.13.8", "license": "MIT", "repository": { "type": "git", diff --git a/skills/taskless/SKILL.md b/skills/taskless/SKILL.md index f2d23b80..d7c9d64e 100644 --- a/skills/taskless/SKILL.md +++ b/skills/taskless/SKILL.md @@ -22,7 +22,7 @@ description: | `agent route`; it does NOT suppress the skill. metadata: author: taskless - version: 0.13.7 + version: 0.13.8 compatibility: Designed for Agents implementing the Agent Skills specification. ---