Python reference implementation of the Score specification for AI skills
Project description
score-core
Python reference implementation of the Score specification for AI skills.
Score is a vendor-independent specification format for AI skills - skill files describe what an AI system should know, what it is allowed to do, and what governance applies, in a format that compiles to runtime targets like Anthropic Skills, MCP server configurations, and OpenAI tools. score-core provides the schema, parser, serialiser, validator, library validator, Context API models, and Recording models that any Score-compatible tool needs.
Full format specification: score_spec.md Writing skills: WRITING_SKILLS.md Broader architecture: multipleworks.com.hk/briefings
Install
pip install score-core
Quickstart
Validate a skill file
score validate path/to/my-skill.md
score validate path/to/skills/ --strict
Validate programmatically
from score import parse_skill_file, validate_skill
skill = parse_skill_file("path/to/my-skill.md")
payload = {
"name": skill.name,
"description": skill.description,
"version": skill.version,
"owner": skill.owner,
"triggers": list(skill.triggers),
"tags": list(skill.tags),
"active": skill.active,
"created": skill.created,
"updated": skill.updated,
"body": skill.body,
}
result = validate_skill(payload)
if not result["valid"]:
for error in result["errors"]:
print(f"error: {error['field']} - {error['message']}")
for warning in result["warnings"]:
print(f"warning: {warning['field']} - {warning['message']}")
Work with the Pydantic model
from score import parse_skill_file_pydantic, validate_skill_file
skill_file = parse_skill_file_pydantic("path/to/my-skill.md")
result = validate_skill_file(skill_file)
print(result) # ValidationResult(valid=True, errors=[], warnings=[...], ...)
Library validation
from score import validate_library
skills = [...] # list of full skill dicts
report = validate_library(skills)
print(report["summary"]["overall_health"]) # "good" | "warning" | "critical"
Migrate existing skills to the latest spec revision
score migrate path/to/skills/ --to 0.1.4 # dry run
score migrate path/to/skills/ --to 0.1.4 --apply # write changes
The --to 0.1.4 target adds the governance metadata fields (approved_by, approved_at, review_due, classification) introduced in spec revision 0.1.4 with safe defaults.
CLI commands
| Command | Purpose |
|---|---|
score validate <path> |
Validate a single file or directory |
score library-check <dir> |
Full library report (overlaps, coverage) |
score governance-init <dir> |
Report skills missing v0.1.4 governance fields |
score verify-recording <file> |
Verify Recording hash chain integrity |
score migrate <dir> --to 0.1.4 |
Add safe defaults for new spec fields |
What's in the package
score.schema- Pydantic models (SkillFile,UITheme,ExecutionHints) and field constantsscore.parser-.mdtoSkill(runtime dataclass) andSkillFile(Pydantic)score.serialiser-Skillto.mdwith YAML frontmatterscore.validator- three-tier validation (errors, warnings, hints)score.library_validator- cross-skill checks and fix proposalscore.context_api- request/response models for the Score Context APIscore.recording- audit log entry models and hash chain utilitiesscore.cli-scorecommand-line interface
Relationship to Score and Maestro
Score is the specification format. score-core is the Python reference implementation - the parser, validator, and supporting models that any Score-compatible tool can use.
Maestro is the commercial skill management product built on the Score format. Maestro uses score-core internally as a library; score-core itself has no dependency on Maestro and runs standalone.
Version
Current: 0.1.4 - supports Score format spec revision 0.1.4 including governance metadata fields.
Licence
MIT. See LICENCE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file score_core-0.1.5.tar.gz.
File metadata
- Download URL: score_core-0.1.5.tar.gz
- Upload date:
- Size: 29.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4ee41d88b87833dced64338696ac88d4dd102231ef78f609309f79f105f203f
|
|
| MD5 |
9d61564740856963f3401de138a28d6f
|
|
| BLAKE2b-256 |
76ece5274d5675932ccce9e18afeeca0e39c5f508ba50b089c4b2d299facdb83
|
File details
Details for the file score_core-0.1.5-py3-none-any.whl.
File metadata
- Download URL: score_core-0.1.5-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16642e44f90c22960271c73d7771c33ae9a1d6e9a0ae80c130492c75baaa85af
|
|
| MD5 |
0a0b4f2c2762609c60c38a5b1188f8af
|
|
| BLAKE2b-256 |
575b4f9a07079757c47253dd7035b37dea4aa92caa84e31438157b2b74a610c2
|