Skip to content

v0.5.9 — Manifest v2 Universal Taxonomy, telemetry_normalizer, AcroForm multi-action engine, and SPDX licensing standardization

Choose a tag to compare

@rosspeili rosspeili released this 20 Oct 09:11
· 9 commits to main since this release

Skillware 0.5.9 introduces the Manifest v2 Universal Taxonomy architecture for deterministic multi-agent skill routing and hardware execution safety; the air-gapped data_engineering/telemetry_normalizer for SI unit harmonization, sensor fault detection, and W3C SOSA/SSN semantic export across robotics, IoT, energy, and HVAC arrays; a completely re-engineered office/pdf_form_filler AcroForm engine featuring deterministic multi-action dispatch (inspect, validate, fill), dynamic XFA guards, radio group normalization, and PyMuPDF vector flattening; paginated ERC-20 (tokentx) and internal transfer forensic screening in finance/wallet_screening (v1.1.0); UK Companies House Document API download flow in finance/uk_companies_house_handler (v1.4.0); operator policy profiles in defi/token_security_scanner (v0.2.0); enriched CLI taxonomy discovery (skillware list --shape/--tier/--target/--tag, skillware info, skillware doctor schema integrity); and repository-wide SPDX-License-Identifier: MIT licensing standardization.

Install: pip install skillware==0.5.9 or pip install -U skillware or just pip install skillware

Update from earlier versions: pip install -U skillware


Added

Core / Taxonomy (Manifest v2 — Universal Taxonomy) (#440)

  • Universal Skill Taxonomy Specification: Established the formal Manifest v2 taxonomy core schema defining four foundational dimensions:
    • Shape (Execution Geometry): atomic (single-step deterministic execution), workflow (multi-step orchestrated flow with verification/preview gates), middleware (interceptor inspecting, sanitizing, or filtering inputs/outputs), and stream (continuous or chunked event processing).
    • Tier (Deployment Model): core (open-source offline local compute with zero paid cloud API dependencies), cloud (remote APIs or hosted models), and enterprise (infrastructure, specialized credentials, KMS).
    • Target (Execution Substrate): software (standard software runtime), hardware (physical actuators, robotics, IoT fleets, or sensor buses), and bioware (biosensors, neural telemetry, brain-computer interfaces).
    • Tags (Domain Keywords): Curated domain keywords (2 to 10 unique lowercase identifiers matching ^[a-z0-9_-]+$) with category-level governance.
  • Runtime Filtering & Physical Hardware Safety Gates: Integrated taxonomy filtering into SkillContext(allowed_shapes=..., allowed_tiers=..., allowed_targets=..., tags=...). Added hardware safety guards where executing skills targeting hardware without explicit SkillContext(allow_hardware_execution=True) raises SkillwareHardwareSafetyWarning.
  • Loader Normalization: SkillLoader transparently ingests legacy and v2 manifests, applying default normalization rules (shape: atomic, tier: core, target: software) with backward compatibility.

CLI / Discovery (#440)

  • Taxonomy Filtering Flags: Added --shape <s>, --tier <t>, --target <t>, and --tag <kw> discovery flags to skillware list, enabling operators and automation scripts to filter available skills by execution geometry and domain.
  • Skill Info Command: Added skillware info <skill_id> command providing deep inspection of manifest metadata, constitution constraints, parameter schemas, and a Rich taxonomy badge panel.
  • Doctor Diagnostic: Added manifest schema integrity verification to skillware doctor asserting that all installed and local skill manifests conform to Manifest v2 schema specifications.
  • Site Catalog Exporter: Created scripts/export_site_catalog.py to generate static catalog JSON exports and markdown indexes for external portals.

Catalog / Governance (#440, #446)

  • Registry Backfill: Backfilled all 27 bundled registry skills with curated Manifest v2 taxonomy metadata in manifest.yaml and on every catalog documentation page.
  • Library Index Shape Column: Upgraded the central skill library index (docs/skills/README.md) to a 6-column layout with explicit Shape tags for instant scanning across all 12 categories.
  • Automated Doc-Manifest Parity Test: Added test_catalog_pages_taxonomy_matches_manifests in tests/test_registry_docs.py to prevent future documentation drift.

data_engineering/telemetry_normalizer v0.1.0 (#47, #423)

  • Air-Gapped Sensor Telemetry Normalization: Local deterministic engine for standardizing noisy, heterogeneous sensor data across robotics kinematics (IMU), battery fleet energy storage, environmental air quality, and smart building HVAC arrays.
  • SI/UCUM Unit Harmonization: Converts legacy or customary engineering units (e.g., Fahrenheit to Celsius, psi to Pascals, rpm to rad/s) into canonical SI units deterministically.
  • Boundary Validation & Fault Detection: Detects sensor out-of-range anomalies, stuck-sensor values, physical limits, and temporal drift.
  • W3C SOSA/SSN Semantic Observations: Generates W3C SOSA/SSN compliant JSON-LD observation objects for knowledge graphs and downstream reasoning agents.
  • Examples: examples/telemetry_normalizer_demo.py.

Governance / Licensing (SPDX & Copyright Headers) (#416, #422)

  • Standardized Attribution & Headers: Added top-of-file SPDX-License-Identifier: MIT and explicit copyright notices across all core framework source files (skillware/**/*.py), CLI entry points, and authoring templates (templates/python_skill/).
  • Enforcement CI Gate: Added tests/test_spdx_headers.py enforcing header compliance across the codebase.

Changed

finance/wallet_screening v1.1.0 (#439)

  • Paginated Etherscan Ingestion: Ingests paginated tokentx (ERC-20) and txlistinternal transfer histories up to 10,000 rows per action.
  • Malicious & Mixer Risk Screening: Evaluates token transfers against the bundled sanctions and malicious contract risk index.
  • Operator Token Resolution: Resolves major stablecoin volumes (USDT, USDC, DAI, WETH) from operator evm.tokens.

office/pdf_form_filler v0.1.2 (#403, #441)

  • Deterministic AcroForm Engine: Complete refactoring into a host-agnostic multi-action engine (inspect, validate, fill).
  • Dynamic XFA Guard: Automatically detects dynamic XFA forms and emits structured unsupported_xfa_form findings before mutation attempts.
  • Radio Button Group Normalization: Normalizes export values, on-states, and extracts nearby visual labels.
  • Confirmation Gate & Flattening: Requires explicit confirmed: true safety gate for disk mutations and supports permanent vector page flattening via PyMuPDF doc.bake().

finance/uk_companies_house_handler v1.4.0 (#421, #434)

  • Document API Flow: Implemented list_downloadable_documents, get_document_metadata, and fetch_document actions with bounded in-memory base64 payloads (5 MB default, 10 MB ceiling) and security stripping of Authorization headers on external storage redirects.
  • Demo: examples/uk_companies_house_document_flow_demo.py.

defi/token_security_scanner v0.2.0 (#393, #425)

  • Operator Policy Profiles: Configurable security policy evaluation returning policy_action (allow, warn, block) on every scan.
  • Batch Scanning: Added scan_batch action (sequential, max 5 contracts) with rate-limit retry resilience.

CLI / Docs (#432, #433)

  • Interactive Menu Alignment: Aligned splash menu with evm and addressbook subcommands, expanded grouped --help topics to all 14 domains, and introduced the CLI provenance history table in docs/usage/cli.md.

finance/wallet_screening v1.0.2 (#287, #115)

  • OFAC SDN Refresh: Updated to 13 Oct 2026 OFAC publication with currency code ETH filtering to eliminate non-ETH false hits; deduplicated mixer rows and sanitized zero-width spaces in address files.

Typing & Code Hygiene (#415, #417)

  • Type Completeness: Fully typed skillware/core/ui_schema.py and skillware/version_policy.py, removing them from mypy override exclusions.

What's possible today

1. Taxonomy-Aware Skill Context & Hardware Execution Safety

from skillware import SkillContext, SkillwareHardwareSafetyWarning

# Restrict host agent to deterministic atomic skills and middleware
ctx = SkillContext(
    allowed_shapes=["atomic", "middleware"],
    allowed_tiers=["core"],
    allowed_targets=["software"],  # Prevents unauthorized physical hardware execution
    tags=["compliance", "privacy"],
)

# Load allowed skills
ctx.load_skill("compliance/pii_masker")

2. Sensor Telemetry Harmonization (data_engineering/telemetry_normalizer)

from skillware.core.loader import SkillLoader

bundle = SkillLoader.load_skill("data_engineering/telemetry_normalizer")
skill = bundle["class"]()

result = skill.execute({
    "action": "normalize",
    "schema_profile": "energy_battery_fleet",
    "raw_telemetry": {
        "pack_voltage_v": 680.0,
        "cell_temp_f": 115.0,  # Automatically converted to Celsius / Kelvin
        "charge_current_a": 45.0,
        "timestamp": "2026-10-20T08:30:00Z",
    },
})

print(result["status"])  # "valid"
print(result["normalized_observations"]["cell_temp_c"])  # 46.11

3. Deterministic AcroForm PDF Inspection & Flattening (office/pdf_form_filler)

from skillware.core.loader import SkillLoader

bundle = SkillLoader.load_skill("office/pdf_form_filler")
skill = bundle["class"]()

# 1. Inspect form structure
inspection = skill.execute({"action": "inspect", "pdf_path": "forms/w9.pdf"})
print(f"Discovered {len(inspection['fields'])} form fields")

# 2. Fill and permanently bake vectors
result = skill.execute({
    "action": "fill",
    "pdf_path": "forms/w9.pdf",
    "field_values": {"topmostSubform[0].Page1[0].f1_1[0]": "Acme Corp"},
    "flatten": True,
    "confirmed": True,
})

Upgrade notes

  • Version Bump: Run pip install -U skillware to upgrade to 0.5.9.
  • Supported-version policy: >= 0.5.9 supported and patched; 0.4.6 – 0.5.8 silent; < 0.4.6 unsupported advisory emitted.
  • Manifest v2: Existing custom skills continue working via backward-compatible normalizers. When creating new skills, include Manifest v2 fields (tier, shape, target, tags) per CONTRIBUTING.md.

Full changelog

CHANGELOG.md — 0.5.9


Contributors

Thanks to everyone who contributed to this release:

  • @rosspeili — Manifest v2 Universal Taxonomy architecture, schema, normalizer, and context filtering (#440, #444); CLI discovery flags, info command, doctor schema checks, and catalog exporter (#440, #444); office/pdf_form_filler v0.1.2 multi-action AcroForm engine, XFA guards, and radio groups (#403, #441); interactive CLI splash alignment & history (#432, #433); catalog Manifest v2 backfill & Shape column in library index (#446); release cut
  • @Hendobox — finance/wallet_screening v1.1.0 paginated tokentx and txlistinternal ingestion (#439, #442); defi/token_security_scanner v0.2.0 operator policy profiles and batch scanning (#393, #425); finance/wallet_screening v1.0.2 OFAC SDN snapshot refresh (#287, #424)
  • @rin-katsuragi — data_engineering/telemetry_normalizer v0.1.0 sensor telemetry harmonization engine (#47, #423)
  • @bd-c3 — Core SPDX license identifier and copyright header standardization (#416, #422)
  • @2409324124 — finance/uk_companies_house_handler v1.4.0 Document API discover and download flow (#421, #434)
  • @mashood-memon — Example refactoring to issue_resolver_common and grandfathered example removal (#358)
  • @uroojfatima-6789 — Static type annotation for ui_schema.py and version_policy.py (#415, #417)

Citation

Zenodo concept DOI: 10.5281/zenodo.21552745 — record Skillware v0.5.9 for reproducibility (CITATION.cff updated).