Skip to content

Make Arbiter a native Spotlight API integration #61

Description

@tomvaillant

Goal

Make Arbiter a native Spotlight API integration so Spotlight no longer depends on the Data Navigator CLI or Data Navigator's global/arbiter/case-studies source, while preserving the existing browse/create/report workflow and evidence safeguards.

Source evidence

  • integrations/arbiter/manifest.json is currently type: cli, probes navigator data show, and declares no key.
  • integrations/arbiter/integration.md and skills/arbiter/SKILL.md route every call through navigator query and configure keys with navigator keys set arbiter.
  • docs/arbiter-api.md documents the direct https://arbiter.simppl.org/api/v1 contract: Bearer auth, 14 endpoints, stable error codes, credit costs, pagination, long-call and non-idempotent write safeguards, and the attributed signup URL.
  • Existing run_match.py, run_themes.py, run_report.py, run_appendix.py, and run_create.py provide offline matching, rendering, and reviewed creation/report scaffolding.

Acceptance criteria

  • The Arbiter manifest is a native API integration with explicit ARBITER_API_KEY configuration, optional deployment-matched ARBITER_API_BASE, direct OpenAPI smoke/preflight behavior, and no Navigator CLI probe.
  • The agent-facing integration contract uses direct HTTPS requests with file-backed JSON inputs/outputs, validates identifiers and request shapes, preserves raw upstream response fields, and never interpolates untrusted text into shell commands.
  • The skill keeps the attributed signup URL and tells users to create their own key and place it in the local approved secret store/environment; no shared key or credential value is requested, logged, or written to case material.
  • Browse, posts, entities, themes, report, post resolution, agent, usage, and reviewed create → search-plan → human review → finalize → progress flows retain their existing credit disclosures, confirmation gates, timeout/retry rules, sensitive-mode block, and evidence/provenance handling.
  • Existing offline helpers and deterministic report/appendix behavior remain compatible with native Arbiter response shapes; no-Arbiter cases remain byte-identical.
  • Spotlight's navigator and Arbiter docs no longer claim Arbiter or structured-data execution depends on Data Navigator; OSINT Navigator tool discovery remains separate.
  • Focused contract, hostile-input, renderer, and mocked HTTP/preflight checks pass; live smoke is run only when a configured member-owned key is available.

Non-goals

  • Do not create or finalize a real Arbiter case study during implementation or verification.
  • Do not store or request API keys in chat, repository files, case files, or logs.
  • Do not retire OSINT Navigator tool discovery, Navigator Skills, Navigator Workflows, or Spotlight's existing offline report scaffolding.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions