{
  "schema_version": "1.0",
  "product": {
    "name": "Harnessie",
    "version": "1.5.0",
    "type": "local Python library and CLI",
    "description": "A brain-agnostic multi-agent harness whose Golden Rule, read together and write only what you own, is enforced through consent, per-agent file ownership, workspace confinement, independent verification, human-only arbitration, and tamper-evident audit records.",
    "url": "https://harnessie.com/",
    "repository": "https://github.com/snapsynapse/harnessie",
    "publisher": {
      "name": "Snap Synapse LLC",
      "url": "https://snapsynapse.com/"
    }
  },
  "release_context": {
    "source_version": "1.5.0",
    "stable_release": "1.5.0",
    "publication_status": "published",
    "describes": "Published Harnessie 1.5.0 core",
    "unreleased_changes_since_stable": false,
    "note": "Core 1.5.0 is published and verified on GitHub and PyPI. Verify Action 0.2.2 and stable v0 still pin core 1.4.1 and Homebrew still serves 1.4.1; the Verify Action 0.2.3 and Homebrew 1.5.0 bumps are in progress and pinning follows their own releases. Engine wrappers remain independently released at 0.1.0."
  },
  "capabilities": [
    {
      "id": "review-checkout",
      "name": "Review a Harnessie checkout",
      "type": "assistant-guided review",
      "status": "live",
      "entrypoint": "https://harnessie.com/.well-known/assistant-guide.txt",
      "description": "A bounded GuideCheck guide for inspecting a checkout and reporting evidence before a human authorizes any action.",
      "human_approval_required": true,
      "side_effects": "The guide authorizes read-only inspection only. Installation, code execution, and mutation require a separate human-approved task.",
      "integrity_status": {
        "served_copy": "1.5.0 source and served guide bytes match the pinned sidecar and signed release tag",
        "external_anchor": "DNS TXT matches final guide SHA-256; hosted profile-2.0.0 verification completed on 2026-10-06",
        "current_end_to_end_level": "Level 4 under profile 2.0.0; zero blocking findings",
        "current_receipt": "https://github.com/snapsynapse/harnessie/blob/main/audits/release-1.5.0/guidecheck-prepublication.json",
        "historical_receipt": "https://github.com/snapsynapse/harnessie/blob/main/audits/release-1.3.1/guidecheck-prepublication.json",
        "historical_receipt_1_4_1": "https://github.com/snapsynapse/harnessie/blob/main/audits/release-1.4.1/guidecheck-prepublication.json"
      }
    },
    {
      "id": "verify-claims",
      "name": "Verify claims about a local artifact",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie verify",
      "description": "Runs deterministic checks before an independent fresh-context verifier and exits fail-closed when a verdict cannot be earned.",
      "stable_1_2_contract": "Raw criteria or a v1 evidence bundle, deterministic checks, an optional independent verifier, structured required-claim coverage, and fail-closed exit codes 0, 1, and 2.",
      "network_default": "denied",
      "exit_codes": {
        "0": "verified",
        "1": "failed",
        "2": "could not verify"
      }
    },
    {
      "id": "validate-project",
      "name": "Validate Harnessie authoring contracts",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie validate",
      "description": "Validates stable v1 configuration and workflow schemas plus cross-document references without starting a run.",
      "network_default": "not used",
      "side_effects": "read-only"
    },
    {
      "id": "inspect-ownership",
      "name": "Explain one ownership decision",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie ownership PATH --agent AGENT [--json]",
      "description": "Evaluates the exact ownership-ledger decision for one workspace path and agent without claiming or modifying the path.",
      "network_default": "not used",
      "side_effects": "read-only"
    },
    {
      "id": "run-workflow",
      "name": "Run a governed local workflow",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie run",
      "description": "Runs consented task packets under Harnessie's Golden Rule for agent work: read together, write only what you own. Ownership lanes, OS-sandboxed shell work, verification gates, audited stop conditions, and explicitly selected operator-trusted tool plugins enforce the shipped boundary.",
      "operator_consent_required": true,
      "human_arbitration_required": true,
      "network_default": "denied",
      "plugin_boundary": "Installed harnessie.tools.v1 plugins never auto-load. Each --plugin selection imports operator-trusted in-process code; registry mediation is not a sandbox."
    },
    {
      "id": "observe-run",
      "name": "Observe an existing run",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie observe RUN_ID",
      "description": "Verifies a local journal snapshot and produces cited JSON and Markdown summaries. Exit 0 means observation succeeded, not that the run passed.",
      "network_default": "not used",
      "side_effects": "Writes derived observer artifacts; leaves the source journal unchanged. No model calls, runner integration, approval, or routing changes."
    },
    {
      "id": "export-open-aidr",
      "name": "Export one open AIDR record",
      "type": "local CLI",
      "status": "live",
      "command": "harnessie export-aidr RUN_ID PHASE --output decisions/AIDR-NNNN-slug.md --arbiter HANDLE",
      "description": "Maps one strict canonical open Harnessie record to AIDR 0.1.0 with preserved recorded dissent and export-time source/journal hashes. Refuses arbitration content and unsafe destinations.",
      "network_default": "not used",
      "side_effects": "Writes one new operator-selected decision file outside the runner tool registry. Leaves source, journal and original halted run unchanged; does not author human arbitration.",
      "exit_codes": {
        "0": "exported",
        "2": "refused"
      }
    }
  ],
  "discovery": {
    "assistant_guide": "https://harnessie.com/.well-known/assistant-guide.txt",
    "llms_txt": "https://harnessie.com/llms.txt",
    "cli_manifest": "https://harnessie.com/api/v1/index.json",
    "changelog": "https://harnessie.com/changelog.json",
    "security": "https://harnessie.com/.well-known/security.txt",
    "documentation": "https://harnessie.com/guide.html",
    "agent_file_ownership": "https://harnessie.com/agent-file-ownership.html",
    "workflow_schema": "https://harnessie.com/schemas/v1/workflow.schema.json",
    "verify_evidence_schema": "https://harnessie.com/schemas/v1/verify-evidence.schema.json",
    "schema_compatibility": "https://github.com/snapsynapse/harnessie/blob/main/SCHEMA_COMPATIBILITY.md",
    "plugin_contract": "https://github.com/snapsynapse/harnessie/blob/main/PLUGIN_CONTRACT.md",
    "quickstart": "https://harnessie.com/quickstart.html",
    "ringer": "https://harnessie.com/ringer.html",
    "aidr_export": "https://github.com/snapsynapse/harnessie/blob/main/AIDR_EXPORT.md",
    "aidr_export_example": "https://github.com/snapsynapse/harnessie/tree/main/examples/aidr-export",
    "atif_export_acceptance": "https://github.com/snapsynapse/harnessie/blob/main/audits/atif-export-acceptance-2026-10-05.md",
    "harbor_verifier_example": "https://github.com/snapsynapse/harnessie/tree/main/examples/harbor-verifier",
    "harbor_agent_example": "https://github.com/snapsynapse/harnessie/tree/main/examples/harbor-agent"
  },
  "support": {
    "issues": "https://github.com/snapsynapse/harnessie/issues",
    "security_reports": "https://github.com/snapsynapse/harnessie/security/advisories/new",
    "security_policy": "https://github.com/snapsynapse/harnessie/blob/main/SECURITY.md"
  },
  "boundaries": {
    "hosted_api": false,
    "hosted_service": false,
    "mcp_server": false,
    "autonomous_remote_agent": false,
    "note": "Harnessie is installed and run locally. These declarations describe published 1.5.0 core, not a hosted agent, API, or MCP server."
  },
  "last_updated": "2026-10-06"
}
