Skip to main content

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 constants
  • score.parser - .md to Skill (runtime dataclass) and SkillFile (Pydantic)
  • score.serialiser - Skill to .md with YAML frontmatter
  • score.validator - three-tier validation (errors, warnings, hints)
  • score.library_validator - cross-skill checks and fix proposal
  • score.context_api - request/response models for the Score Context API
  • score.recording - audit log entry models and hash chain utilities
  • score.cli - score command-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

score_core-0.1.5.tar.gz (29.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

score_core-0.1.5-py3-none-any.whl (34.3 kB view details)

Uploaded Python 3

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

Hashes for score_core-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b4ee41d88b87833dced64338696ac88d4dd102231ef78f609309f79f105f203f
MD5 9d61564740856963f3401de138a28d6f
BLAKE2b-256 76ece5274d5675932ccce9e18afeeca0e39c5f508ba50b089c4b2d299facdb83

See more details on using hashes here.

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

Hashes for score_core-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 16642e44f90c22960271c73d7771c33ae9a1d6e9a0ae80c130492c75baaa85af
MD5 0a0b4f2c2762609c60c38a5b1188f8af
BLAKE2b-256 575b4f9a07079757c47253dd7035b37dea4aa92caa84e31438157b2b74a610c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page