Skip to content

fix(skill): keep the frontmatter description under Pi's 1024-char cap - #144

Open
broven wants to merge 1 commit into
mainfrom
password-free
Open

broven wants to merge 1 commit into
mainfrom
password-free

Conversation

@broven

@broven broven commented Oct 27, 2026

Copy link
Copy Markdown
Owner

What

Pi prints [Skill conflicts] → description exceeds 1024 characters (1028) for browserwright on every start. This trims the frontmatter description to 916 characters.

Why it matters

The overrun does not fail the load — the skill still works. But the warning sits in the same panel Pi uses to report real skill collisions (two skills claiming one name, where one silently loses). A permanent false alarm in that panel trains people to scroll past it, which is exactly when a real collision goes unnoticed.

What changed

Only the frontmatter description: value, and only its last sentence.

The old tail was This is the standard browser automation surface for code agents: it can drive the user's current browser via extension backend or launch/drive an isolated Chrome via CDP, with primitives for navigation, interaction, screenshots, crawling/scraping, page inspection, and reusable site skills. — it restated the opening sentence almost clause for clause. Replaced with Drives the user's browser via the extension backend, or an isolated Chrome over CDP, with primitives for navigation, interaction, screenshots, crawling, and reusable site skills.

So: 471 → 290 characters in that sentence, 1028 → 916 overall, 108 characters of headroom for the next trigger someone adds. Body of the skill is untouched.

Every trigger phrase is preserved verbatim, verified programmatically against the original list. Triggers are what decide whether the skill is discovered at all, so they were the one thing not traded away.

Test proof

$ mise run test
[test:skill]  346 passed in 10.58s
[test:daemon] 1034 passed, 105 skipped in 50.76s
[test:pi]     ℹ fail 0   (duration_ms 207.86)

$ mise run test:evals
 ✓ 13/13 passed   (incl. "Picks browserwright for a JS-driven click flow",
                    "Does NOT reach for the browser on a pure docs lookup")

$ mise run lint
All checks passed!

Then the actual claim, checked against Pi's own skill loader rather than a hand-rolled YAML parse — loading this worktree's skill/ directory in isolation, the diagnostic is gone:

skills loaded: 1
diagnostics: 0
browserwright: desc len 916

Before the change, the same call against main reported warning description exceeds 1024 characters (1028).

Interface evidence

N/A — no UI change. The evidence this warrants is the loader diagnostic above, which is the exact code path Pi's startup warning prints from (dist/core/skills.js → validateDescription).

Note on rollout

~/.agents/skills/browserwright is a symlink to this repo's checkout, so the warning clears once this merges and the local main picks it up. No reinstall or republish needed — but the skill bundled into the published package tracks main, so it should ride the next release rather than be hotfixed.

Pi warns at startup that browserwright's description exceeds 1024 characters
(1028) in `[Skill conflicts]`. The description never fails the load, but a
warning on every start trains people to ignore the panel that also reports real
skill collisions.

Drop only the trailing sentence's redundancy: it restated the opening paragraph
("Unified browser entrypoint... operate a user's real browser or an isolated
Chrome... navigation, interaction, screenshots, crawling/scraping"). The
replacement keeps the same two facts — extension backend or isolated Chrome over
CDP, and the reusable site-skill layer — in 290 characters instead of 471.

Every trigger phrase is preserved verbatim; they decide whether the skill is
discovered at all. 1028 -> 916 characters, leaving 108 of headroom for the next
trigger someone adds.

This branch has not been deployed

No deployments
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.

1 participant