Skills

Skill manifest reference

Updated Sep 26, 2026

Every skill version ships a manifest — a JSON object describing how to run the skill and the SafeCore envelope it needs. MANUSH validates it when you save a version, again at review, and on the robot before installation.

Example

{
    "entrypoint": "skills/pallet_putaway/main.py:run",
    "os_min_version": "1.0.0",
    "required_sensors": ["rgb_camera", "depth_camera", "lidar"],
    "safecore_permissions": {
        "max_speed_mps": 1.2,
        "max_torque_nm": 80,
        "min_human_distance_m": 1.0,
        "tools": ["fork_attachment"],
        "restricted_zones": ["dock-door-edge"],
        "requires_human_supervision": false,
        "remote_shutdown": true
    },
    "supported_models": ["M1", "H2"],
    "os_modules": ["perception", "navigation", "motion", "safety", "skills"]
}

Required fields

FieldTypeRules
entrypointstringRelative module path with optional :function, e.g. skill/main.py:run. No ...
os_min_versionstringMinimum MANUSH OS version, semantic (1.0.0).
required_sensorsstring[]From: rgb_camera, depth_camera, stereo_camera, thermal_camera, lidar, imu, joint_encoders, force_torque, tactile, microphone_array, gas_sensor, environmental_sensors, ultrasonic, gps. No duplicates.
safecore_permissionsobjectSee below and SafeCore permissions.
supported_modelsstring[]Non-empty; MANUSH model codes (H1–H5, D1–D3, S1–S3, A1–A3, M1–M5) that are also in the skill's compatible models.

safecore_permissions

FieldTypeRules
max_speed_mpsnumberGreater than 0, at most 3.0 m/s
max_torque_nmnumberGreater than 0, at most 500 Nm
min_human_distance_mnumber0.3 – 5.0 m
toolsstring[]Lowercase identifiers of every tool the skill may actuate ([] if none)
restricted_zonesstring[]Optional named zones the skill must never enter
requires_human_supervisionbooleanOptional
remote_shutdownbooleanOptional; cannot be false

Optional fields

  • os_modules — MANUSH OS modules the skill uses: perception, navigation, motion, manipulation, voice, memory, safety, skills, agent. Declaring manipulation requires every supported model to have hands or an arm.
  • Any additional keys (name, parameters, policy, demonstration) are kept and shown to reviewers.

Versions and packages

Versions are semantic and must increase. Upload the package (.zip, .tar or .gz, up to 200 MB); MANUSH computes its SHA-256 checksum and, on approval, signs manush-skill:v1:{slug}@{version}:{sha256} with the MANUSH skill-signing key so robots can verify the package before installation. Approved versions are immutable — publish changes as a new version.