Repository navigation
1.0.0
First release after a full audit of the 0.1.0 package. The audit is published in
references/audit-2026-10-29.md; the summary is
below.
Fixed
validate_skill.pyparsed YAML with regular expressions. A folded
description (description: >) was read as the single character>, so the length
check measured the wrong value. ASKILL.mdwith a 2058-character description was
approved against a 1024-character limit. Frontmatter is now parsed with PyYAML
when available, and otherwise by a narrow reader that fails closed on anything
it cannot classify.---inside a frontmatter value truncated the document, because the file was
split on the first two occurrences of the substring. Delimiters are now matched as
lines.os.walkswallowedPermissionError, so an unreadable directory silently
disappeared while the report claimedCOMPLETE. Unreadable paths are now collected
inscan_errorsand forcescan_complete: false.- A file named
descriptionwas classified as an R package manifest. - FIFOs and sockets were counted in
files_scanned. - The absolute project path was embedded in the report even when the caller passed a
relative one.
Added
- Version resolution (
--package NAME, repeatable). Reads allowlisted manifests
and lockfiles only — never source files — and reportsauthority
(resolved/declared),confidence(exact/best_effort/declared), source
path and line. Sixteen formats. This closes the gap between the skill's rule 2
("distinguish declared from resolved") and the tooling behind it. runtime_markers—.python-version,.nvmrc,.node-version,
.ruby-version,.tool-versions,rust-toolchain.toml,global.jsonand
friends. The runtime version is half of every compatibility question.authorityandis_lockfileon every manifest record, so a consumer no
longer has to substring-match English prose.- agentskills.io conformance checks in
validate_skill.py: angle brackets in
frontmatter, reserved words in the name, non-standard key reporting, script
compilation, symlink containment. --jsonon the validator, for machine consumption.- CI on Linux, macOS and Windows across Python 3.9, 3.11 and 3.13, including a
job that fails if regular-expression frontmatter parsing is reintroduced. - 52 additional tests (58 total), covering exit-code contracts, malformed lockfiles,
oversized metadata, PEP 503 name normalisation and the folded-description
regression.
Changed
- BREAKING:
schema_versionis now2. New top-level fields:tool,
tool_version,scan_complete,scan_errors,runtime_markers,resolution,
resolution_errors,resolution_supported_formats,toml_parser_available.
manifests[].kindkeeps its human-readable value;authorityandis_lockfile
are new. - BREAKING:
inspect_project.pyexit codes are now a documented contract —
0complete,1incomplete,2error. SKILL.mdrestructured into six explicit gates (0–5) with a stop condition at
gate 4, so "I could not verify this" is a named outcome rather than a failure to
finish.SKILL.mdnow states what the skill does not do, in its own section.
Not changed
The ten non-negotiable rules, the evidence hierarchy and the refusal to invent
evidence are the product. They were preserved.