Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 0 additions & 30 deletions .changeset/agent-skills-token-based-length.md

This file was deleted.

28 changes: 0 additions & 28 deletions .changeset/root-deploy-skills-task.md

This file was deleted.

29 changes: 29 additions & 0 deletions packages/cli/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,34 @@
# @gtbuchanan/cli

## 0.7.1

### Patch Changes

- 23ae7e2: Generate `deploy:skills` for skills at the workspace root

A monorepo whose `skills/` sits at the root got no `deploy:skills` task
at all: the capability was read from the packages alone, so the root's
copy — which `capabilitiesFor` already detects — went unused. The task
disappeared the moment `packages:` globs were added to
`pnpm-workspace.yaml` and the root stopped being the lone package.

`gtb sync` now emits a `//#deploy:skills` root task and the root
`deploy:skills` script backing it whenever a monorepo root carries its
own `skills/`, with `build` depending on it — the shape
`//#lint:eslint` already uses. `gtb verify` covers it for free, since a
generated task is one it can report as missing.

Root skills are not a fallback for per-package ones: both are emitted
when both exist. They are the case a package can't serve — skills
consumed as `<root>/skills/<name>/SKILL.md` are invisible inside a
package, and a private workspace package reaches no consumer at all.

Because turbo dispatches `//#deploy:skills` through the root script of
that name, such a root no longer gets the `gtb turbo run deploy:skills`
alias — it would re-enter turbo and trip the
`recursive_turbo_invocations` guard. Reach every package's copy through
`pnpm build` or `gtb turbo run deploy:skills`.

## 0.7.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/cli/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gtbuchanan/cli",
"version": "0.7.0",
"version": "0.7.1",
"description": "Shared build CLI",
"type": "module",
"imports": {
Expand Down
7 changes: 7 additions & 0 deletions packages/eslint-config/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,12 @@
# @gtbuchanan/eslint-config

## 0.5.2

### Patch Changes

- Updated dependencies [79c96d0]
- @gtbuchanan/eslint-plugin-agent-skills@1.0.0

## 0.5.1

### Patch Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-config/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gtbuchanan/eslint-config",
"version": "0.5.1",
"version": "0.5.2",
"description": "Shared ESLint configuration",
"type": "module",
"imports": {
Expand Down
31 changes: 31 additions & 0 deletions packages/eslint-plugin-agent-skills/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,36 @@
# @gtbuchanan/eslint-plugin-agent-skills

## 1.0.0

### Major Changes

- 79c96d0: Gate skill length on tokens rather than lines

`configs.recommended` now caps both `SKILL.md` and
`**/skills/*/references/**/*.md` with `agent-skills/max-tokens` at 5000,
and applies `agent-skills/max-lines` to neither. The rule still ships, so
a repo wanting the spec's 500-line figure can wire it explicitly:

```js
{
files: ['**/skills/*/SKILL.md'],
rules: { 'agent-skills/max-lines': ['warn', { max: 500 }] },
}
```

Both rules proxy for how much context a skill costs to load, and tokens
measure it directly. At the ~10-14 tokens per line typical of prose
skills, 500 lines works out to 5200-7000 tokens, so the token cap is the
one that fires. The line cap leads only below ~10 tokens per line, where
it reports formatting — semantic line breaks and dense lists raise a line
count without changing what the agent loads.

The 300-line cap on `references/` had no upstream basis: the spec's third
tier is "Resources (as needed)" and `skill-creator` calls bundled
resources "unlimited, loaded as needed". The 5000 there is a backstop for
a reference file costing more to load than the instructions tier it was
split out of.

## 0.3.0

### Minor Changes
Expand Down
2 changes: 1 addition & 1 deletion packages/eslint-plugin-agent-skills/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@gtbuchanan/eslint-plugin-agent-skills",
"version": "0.3.0",
"version": "1.0.0",
"description": "ESLint plugin and JSON Schema for Agent Skills",
"type": "module",
"imports": {
Expand Down