Skip to content

v3.7.4

Choose a tag to compare

@cursor cursor released this 10 Nov 00:09
7241355

Install this before the next python bsc.py package or the next grade. v3.7.3 can approve a skill that package then rewrites or strips, and it can score work a judge never saw. Commands and flags are unchanged.

License included in this release

Both downloads and the source archive for this tag include the Better Skill Creator License. LICENSE is at the root of the plugin zip and the source archive. LICENSE.txt is inside skill-creator-3.7.4.skill and at skills/skill-creator/LICENSE.txt in the plugin zip. .claude-plugin/plugin.json declares LicenseRef-BSC-No-Resale-1.0.

You may use it yourself. You may sell a skill you write with it when that skill fails every test below. You may not sell this release or post it for anyone else to download.

A copy is the same product when any one of these is true:

  • It contains skill-creator-3.7.4.skill, better-skill-creator-plugin-3.7.4.zip, or a later release download, including after you unzip it and zip it again.
  • It contains a checkout of rolling-codes/better-skill-creator, including with .git removed, or that tree with up to 10 files deleted or renamed.
  • The name shown to a buyer is Better Skill Creator, better-skill-creator, or skill-creator-local. The folder name skill-creator counts when SKILL.md calls it the RollingCodes fork, or when plugin.json names this repository.
  • Forty or more words in a row from README.md, CHANGELOG.md, SKILL.md, docs/, agents/, or references/ appear in the same order. A quotation of 15 words or fewer, with the name RollingCodes and the repository URL, does not count.
  • Twenty or more non-blank source lines in a row from bsc.py or skills/skill-creator/scripts/ match after comments are removed and repeated whitespace is collapsed. Renaming variables still counts when the other tokens match.
  • The work started from this repository. That includes a fork, a branch, a translation, a formatting pass, and a tree that still shares 70 percent of the non-blank lines in SKILL.md and in 5 or more files under scripts/.
  • An installer, container, or paid download extracts or clones that tree.

A renamed zip of this release, a translation of SKILL.md, a container that clones the repository, a fork that changes the version and up to 10 files, and the scripts with the comments removed are the same product.

A product may be sold when it fails every test above, its source files are new, and its name is none of those names. The ideas you may reuse are a skill folder with SKILL.md, a checker, a local grader, an archive packager, and description edits from trigger results.

Files

  • skill-creator-3.7.4.skill is the skill. It contains LICENSE.txt and has no plugin manifest. Use it where a host asks for a skill file.
  • better-skill-creator-plugin-3.7.4.zip is the Claude Code plugin. It contains LICENSE and skills/skill-creator/LICENSE.txt. It does not contain the .skill archive. Use it when you install the plugin.

references/secrets.md passes check and fails package

On v3.7.3, python bsc.py check passes a skill that names references/secrets.md, credentials, or a *.key sample, because the file is on disk. python bsc.py package then deletes that name and reports it missing.

v3.7.4 fails both commands and names the pattern. Rename the file if you mean to ship it. The package report lists every skipped path.

Issue #105. Pull request #111.

python bsc.py package nope prints a traceback

A missing path, or a file such as path/to/SKILL.md instead of a skill directory, raised FileNotFoundError or NotADirectoryError and then said to run doctor.

v3.7.4 uses the same input error as check: the target must be a directory that contains SKILL.md.

Issue #108. Pull requests #112 and #113.

A note-only skill exits 2

A skill whose only findings were notes such as unused-tool exited 2 from static_analysis, semantic_analysis, and validate. repair printed those notes as warnings.

v3.7.4 exits 0 when the only findings are info. Exit 2 still means warnings. Exit 1 still means errors.

Issue #107. Pull request #113.

A fresh scaffold packages

python -m generators produced a skill whose description was the TODO template and whose section bodies were HTML comments. It passed check, scored 82, and packaged.

v3.7.4 fails check when the description starts with TODO. A section whose only body is an HTML comment is empty.

Issue #106. Pull request #113.

style-guide.md hides guide.md

Naming references/style-guide.md made the orphan check treat references/guide.md as referenced, because the shorter name was a substring. The same miss hid utils.py beside test_utils.py, and scripts.lint inside scripts.lint_stage.

v3.7.4 matches a path only on a whole token.

Issue #104. Pull request #113.

Example headings were deleted

Two fenced examples that both contained ## Summary were repaired by deleting the second heading inside the fence. A later duplicate was deleted at a stale line, so ### Keep me disappeared and ## Notes stayed duplicated. Package could still report success.

v3.7.4 ignores headings inside fences. Outside fences it deletes the later duplicate only when that line is still the heading.

Issue #103. Pull request #113.

A review skip stayed valid after edits

activation.required: false in review.yaml stayed valid after later edits, including edits under scripts/. The gate, the tests, and packaging passed.

v3.7.4 binds that skip to the source manifest stored with it. The next edit needs a new skip or a review.

Issue #102. Pull request #113.

Grades scored work the judge did not see

Pull request #99 has no separate issue. On the blind-judging path:

  • The skill name was on the identity screen. A real Skill tool call contains that name, so every expectation became UNDETERMINED and the judge was never called. The words baseline and candidate, and a bare model alias, did the same to ordinary task text.
  • Files under dist/ or runs/, and files named metrics.json or timing.json, could be dropped before the judge saw them.
  • An empty rubric could be scored.
  • CallBudget.record_usage raised KeyError on a producer that was not listed.
  • Paired grading and saved-transcript grading were one step in SKILL.md.

v3.7.4 screens identity-bearing evidence before a judge call, requires a nonempty rubric, grades one exact UTF-8 line locally with text_line, and lists the two grading steps separately. Re-grade any paired run or transcript you scored on that earlier path. A score from an empty rubric, or from a judge that did not see the skill call or the output files, is not a result.

Also in these files

  • Model notes for Claude Fable 5.2 (claude-fable-5-2), including the request patterns that return 400, are in this release. Pull request #109.
  • A pull request that touches the packager builds skill-creator.skill as an offline preview. Pull request #101.
  • GitHub Actions pins were bumped. Pull request #110.