Skip to content

Extend Capabilities with System Requirements #2

@jbouder

Description

@jbouder

Tasks

  • Define and document the requirements block in the canonical capability manifest JSON Schema, including all field types, allowed enum values, and optionality rules
  • Implement a cross-platform requirement evaluator that resolves the host OS (normalized to windows / macos / linux), architecture, available memory, free disk, and installed runtime versions
  • Integrate requirement evaluation into the Launcher's capability load path
  • Emit a clear, actionable error message per failed requirement (e.g. "Requires macOS 13+, current version is 12.6") without crashing the Launcher
  • Update the capabilities authoring documentation with the new schema fields, valid values, and at least two worked examples

Acceptance Criteria

  • A capability manifest declaring requirements with valid OS, arch, and runtime fields passes schema validation without errors on Windows, macOS, and Linux
  • A capability whose requirements are satisfied by the host machine loads and executes normally — no regressions for capabilities without a requirements block
  • A capability whose requirements are not satisfied surfaces a human-readable error identifying each unmet constraint before execution is attempted
  • A manifest with an unrecognized OS identifier or unsupported field name produces a validation warning but does not prevent the capability from loading on a compatible host

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions