{
  "version": 1,
  "repository": "Knuckles-Team/geniusbot",
  "revision": "65341f27b43abdbce0ce6d601d537143ee08a0c7",
  "captured_at": "2026-10-13T14:31:28.675147+00:00",
  "records": [
    {
      "id": "GENIUSBOT-CLIENT",
      "kind": "spec",
      "parent": null,
      "source": "specs/desktop-client/status.json",
      "title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "document": "specs/desktop-client/spec.md",
      "component": "Unassigned",
      "code_refs": [
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": ".github/spec-dashboard.json",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/.github/spec-dashboard.json"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/geniusbot.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/geniusbot.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/qt/colors.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/qt/colors.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/qt/finance_cockpit.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/qt/finance_cockpit.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/qt/fleet_cockpit.py:27",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/qt/fleet_cockpit.py#L27"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/qt/usage_cockpit.py:61",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/qt/usage_cockpit.py#L61"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/services/backend_adapter.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/services/backend_adapter.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/services/gateway_client.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/services/gateway_client.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/services/gateway_client.py:55",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/services/gateway_client.py#L55"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/services/operation_registry.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/services/operation_registry.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/utils/agent_bridge.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/utils/agent_bridge.py"
        },
        {
          "declared_in": "specs/desktop-client/plan.md",
          "evidence": "file exists; coverage not verified",
          "label": "geniusbot/utils/daemon.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/geniusbot/utils/daemon.py"
        },
        {
          "declared_in": "specs/desktop-client/spec.md",
          "evidence": "file exists; coverage not verified",
          "label": "`requirements.md`",
          "repository": "Knuckles-Team/geniusbot",
          "role": "documentation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/specs/desktop-client/requirements.md"
        },
        {
          "declared_in": "specs/desktop-client/spec.md",
          "evidence": "file exists; coverage not verified",
          "label": "`status.json`",
          "repository": "Knuckles-Team/geniusbot",
          "role": "implementation",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/specs/desktop-client/status.json"
        },
        {
          "declared_in": "specs/desktop-client/spec.md",
          "evidence": "file exists; coverage not verified",
          "label": "tests/test_operation_registry.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "test",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/tests/test_operation_registry.py"
        },
        {
          "declared_in": "specs/desktop-client/spec.md",
          "evidence": "file exists; coverage not verified",
          "label": "tests/test_packaging_manifest.py",
          "repository": "Knuckles-Team/geniusbot",
          "role": "test",
          "url": "https://github.com/Knuckles-Team/geniusbot/blob/65341f27b43abdbce0ce6d601d537143ee08a0c7/tests/test_packaging_manifest.py"
        }
      ],
      "relations": [],
      "plan_diagrams": [],
      "unparsed_references": []
    },
    {
      "id": "GENIUSBOT-CLIENT-R001",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "One backend-adapter import seam",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "f979d1e342d9"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**One backend-adapter import seam.** Every desktop panel and the main cockpit window route all Graph OS access through the shared gateway client facade and the single `BackendAdapter` seam; no other module imports the underlying engine package directly. | A source-tree scan test asserts only the gateway-client facade and the backend-adapter module import the engine package.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 11
    },
    {
      "id": "GENIUSBOT-CLIENT-R002.1",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Typed registry-entry model and validator",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "a443c69a2a0d"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Typed registry-entry model and validator.** A typed `OperationRegistryEntry`/`OperationRegistry` model validates operation name, sha256 digest shape, and HTTP method, and `build_registry` refuses a malformed or duplicate entry when the installed generated operation registry is loaded. | Unit tests assert each malformed-entry case (empty operation, bad digest, unsupported method, missing field, duplicate operation, digest mismatch) raises `OperationRegistryError` and a valid registry builds and resolves lookups.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 12
    },
    {
      "id": "GENIUSBOT-CLIENT-R002.2",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Operation validated against the installed generated registry at the call site",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "951f65308c5b"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Operation validated against the installed generated registry at the call site.** Before invoking a Graph OS operation, the gateway client wires the `.1` registry model into its pre-call path and rejects an unknown operation or a registry/digest mismatch before any network call, consistent with the ecosystem's shared Graph OS operation-client contract. | Unit tests assert an unknown or mismatched operation produces zero network effect and a typed `CLIENT_UNAVAILABLE`-equivalent result.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 13
    },
    {
      "id": "GENIUSBOT-CLIENT-R002",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Typed registry-entry model and validator (rollup of 1, 2)",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "951f65308c5b",
        "a443c69a2a0d"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Typed registry-entry model and validator (rollup of 1, 2).** Rollup requirement: delivered by its child rows; LANDED only once every child is. | Every child row is LANDED.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 14
    },
    {
      "id": "GENIUSBOT-CLIENT-R003",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Verified credential over TLS, bounded responses",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "f979d1e342d9"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Verified credential over TLS, bounded responses.** The gateway client refuses a malformed endpoint, refuses plaintext HTTP to a non-loopback host without explicit opt-in, resolves a TLS profile for the caller's verified credential, and caps every response body against a fixed size limit. | Endpoint-validation and bounded-body unit tests cover unsafe URLs, declared-oversize and streamed-oversize responses.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 15
    },
    {
      "id": "GENIUSBOT-CLIENT-R004",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Off-thread, non-blocking dispatch",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "6c100b813e85",
        "e2227928ace3"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Off-thread, non-blocking dispatch.** Every Graph OS or backend network call runs on a background thread pool and reports back to the UI only through typed signals; no blocking network or heavy-reasoning call executes on the Qt event-loop thread. | Characterization tests exercise the worker's started/finished/error/progress signal contract and confirm the main window remains responsive during a dispatched task.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 16
    },
    {
      "id": "GENIUSBOT-CLIENT-R005",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Fail-closed, typed errors",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "b68ffd2a3227"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Fail-closed, typed errors.** Every gateway facade method that fails (timeout, disconnect, malformed envelope, or an exception from the underlying SDK) returns a typed error/offline result to its caller instead of letting an exception escape into the Qt event loop or reporting a false success. | Unit tests drive timeout, disconnect and exception paths and assert a typed `\"result\"`/`\"error\"` payload is returned, never an uncaught exception.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 17
    },
    {
      "id": "GENIUSBOT-CLIENT-R006",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "No local approval authority",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "e2227928ace3"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**No local approval authority.** A governed or mutating action (an `ActionPolicy` approval, or a tool call behind the authorization dialog) is never authorized by the desktop process itself; the operator's explicit decision is always forwarded to Graph OS's server-side approval endpoint, which performs the authoritative check. | Contract tests assert the approval/grant code path issues a request to the gateway's approval endpoint and that no local code path marks an action authorized without that round trip.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 18
    },
    {
      "id": "GENIUSBOT-CLIENT-R007",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Embedded terminal sandbox",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "f979d1e342d9"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Embedded terminal sandbox.** The cockpit hosts an interactive terminal (`xterm.js` inside a `QWebEngineView`, bridged over `QWebChannel` to a native PTY/conpty backing process) and starts its backing shell lazily, only on first navigation to the terminal view. | Instantiation tests confirm the terminal widget and its bridge construct correctly, and a view-switch test confirms the shell starts exactly once on first navigation to that view.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 19
    },
    {
      "id": "GENIUSBOT-CLIENT-R008",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Lazy, on-demand cockpit panel loading",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "5e6e561f4dff"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Lazy, on-demand cockpit panel loading.** Every secondary cockpit view (graph explorer, telemetry, workflow builder, security policy, infrastructure, finance, service dashboard, fleet supervisor, usage/cost, extraction, temporal graph, ask-data, metrics, federated search, voice) is imported and instantiated only on first navigation to that view, shares one background worker, and the sidebar highlights exactly the active view. | A characterization test walks every view index, asserts each panel loads exactly once, the placeholder widget is replaced, and only the active sidebar button is styled active.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 20
    },
    {
      "id": "GENIUSBOT-CLIENT-R009",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Honest voice-dictation states",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "57eda603efd1"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Honest voice-dictation states.** The voice dictation panel distinguishes no capture device present, a recorder/permission failure, the backend route being unavailable, and a genuine transcription error, and renders each state distinctly rather than collapsing them into one generic message. | Unit tests cover each state (no device, each mapped recorder error, unavailable route, generic failure) and assert a distinct rendered message per case.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 21
    },
    {
      "id": "GENIUSBOT-CLIENT-R010",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Background tray residency",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "e2227928ace3"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Background tray residency.** A system-tray daemon keeps the cockpit resident with show/terminal/health-check/exit actions, and closing the main window minimizes it to the tray instead of exiting the process while the tray remains active. | Tray action and close-event tests assert each tray action triggers its bound window behavior and that closing the window with an active tray icon hides rather than exits.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 22
    },
    {
      "id": "GENIUSBOT-CLIENT-R011",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Dynamic specialist discovery and schema-driven execution deck",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "c21deec29cfb"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Dynamic specialist discovery and schema-driven execution deck.** On startup the cockpit asynchronously discovers available specialist agents from the Knowledge Graph via the gateway and renders one dynamically schema-driven control card per specialist, mapping its declared skills or capabilities to input fields, and executes each specialist off-thread through the shared backend seam. | Unit tests cover the discovery-to-deck population path and the control card's skill-list, comma-separated-capability, list-capability and no-capability fallback field generation.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 23
    },
    {
      "id": "GENIUSBOT-CLIENT-R012.1",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Typed packaging manifest model and validator",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "a443c69a2a0d"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Typed packaging manifest model and validator.** A typed `PackagingManifest`/`PackagingTarget` model and `build_manifest` refuse an incomplete manifest: a missing required target (`console_entry_point`, `onefile_executable`, `windows_installer`, `linux_desktop_entry`), a target missing its build tool or output path, or a target whose version does not match the source tree's declared version. No build tool is invoked. | Unit tests cover a complete manifest and each refusal case (missing target, missing field, version mismatch, duplicate target name, empty source version).",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 24
    },
    {
      "id": "GENIUSBOT-CLIENT-R012.2",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Cross-platform packaging and distribution",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "951f65308c5b"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Cross-platform packaging and distribution.** The desktop client is distributed as an installable Python package exposing a `geniusbot` console entry point, a single-file bundled executable, a Windows installer, and a Linux desktop-entry/package definition, each built from the same versioned source tree and described by a `.1`-validated manifest. | A packaging build (PyInstaller onefile, Inno Setup compile, and the Linux desktop-entry/control file lint) completes against a tagged revision and the resulting entry point launches the cockpit window.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 25
    },
    {
      "id": "GENIUSBOT-CLIENT-R012",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Typed packaging manifest model and validator (rollup of 1, 2)",
      "delivery_state": "LANDED",
      "state": "landed",
      "done": false,
      "landed_in": [
        "951f65308c5b",
        "a443c69a2a0d"
      ],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Typed packaging manifest model and validator (rollup of 1, 2).** Rollup requirement: delivered by its child rows; LANDED only once every child is. | Every child row is LANDED.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 26
    },
    {
      "id": "GENIUSBOT-CLIENT-R013",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Generated design-token colors",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Generated design-token colors.** `geniusbot/qt/colors.py` is generated from a tracked token source; a tracked generator script and source file exist and regenerating produces no diff. Touches `geniusbot/qt/colors.py`. | Test `tests/test_design_tokens.py::test_colors_match_generated_output`; negative: A hand-edited color constant fails the test.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 27
    },
    {
      "id": "GENIUSBOT-CLIENT-R014",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Finance cockpit panel contract",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Finance cockpit panel contract.** `FinanceCockpitPanel` in `geniusbot/qt/finance_cockpit.py` reaches Graph OS only through the gateway facade and renders an unavailable state when the route fails. Touches that file. | Test `tests/test_finance_cockpit.py::test_panel_unavailable_state`; negative: A raised gateway error never escapes the panel.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 28
    },
    {
      "id": "GENIUSBOT-CLIENT-R015",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Packaged `geniusbot-development` skill",
      "delivery_state": "VERIFIED",
      "state": "verified",
      "done": true,
      "landed_in": [
        "34e20c635c6d"
      ],
      "verified_by": [
        "tests/test_development_skill.py:8"
      ],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Packaged `geniusbot-development` skill.** A skill at `geniusbot/skills/geniusbot-development/SKILL.md` carries the rapid-delivery contract, commands, and gates, in the shape of `agent-webui-development`. Touches that file and `pyproject.toml` package data. | Test `tests/test_development_skill.py::test_skill_packaged_and_valid`; negative: A skill without front matter fails the test.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 29
    },
    {
      "id": "GENIUSBOT-CLIENT-R016",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Spec and docs hooks in pre-commit",
      "delivery_state": "VERIFIED",
      "state": "verified",
      "done": true,
      "landed_in": [
        "34e20c635c6d"
      ],
      "verified_by": [
        "tests/test_precommit_hooks.py:10"
      ],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Spec and docs hooks in pre-commit.** `.pre-commit-config.yaml` adds the `pipelines` hooks `public-surface`, `ste-staged`, `ste-staleness-staged`, `spec-standard` and `check-public-specs`, with `[tool.pipelines_hooks.public_surface]` and `[tool.pipelines_hooks.ste]` in `pyproject.toml`. Touches both files. | Test `tests/test_precommit_hooks.py::test_required_pipelines_hook_ids_present`; negative: Removing one hook id fails the test.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 30
    },
    {
      "id": "GENIUSBOT-CLIENT-R017",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Docs layout parity",
      "delivery_state": "VERIFIED",
      "state": "verified",
      "done": true,
      "landed_in": [
        "34e20c635c6d"
      ],
      "verified_by": [
        "tests/test_docs_layout.py:9"
      ],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Docs layout parity.** `docs/` gains `architecture.md`, `apps.md`, `design-system.md`, `deployment.md`, `features.md`, `start.md`, `status.md` and `agents.md`, listed in `mkdocs.yml` nav. Touches `docs/` and `mkdocs.yml`. | Test `tests/test_docs_layout.py::test_nav_lists_every_page`; negative: A page missing from nav fails the test.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 31
    },
    {
      "id": "GENIUSBOT-CLIENT-R018",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "AGENTS.md section parity",
      "delivery_state": "VERIFIED",
      "state": "verified",
      "done": true,
      "landed_in": [
        "34e20c635c6d"
      ],
      "verified_by": [
        "tests/test_agents_md_sections.py:16"
      ],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**AGENTS.md section parity.** `AGENTS.md` gains the sections \"What this repository owns\", \"Commands\", \"Quality gates\", \"Development rules\", \"Documentation\" and \"Branching & isolation\" in webui order. Touches `AGENTS.md`. | Test `tests/test_agents_md_sections.py::test_required_headings_present`; negative: A missing heading fails the test.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 32
    },
    {
      "id": "GENIUSBOT-CLIENT-R019",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Run harness surface is read-only and honest",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Run harness surface is read-only and honest.** The geniusbot client must show a run's current plan, context use against budget, applied harness configuration, cost and termination reason. The client reads only graph-os operations. | Children GENIUSBOT-CLIENT-R019.1 to GENIUSBOT-CLIENT-R019.6.",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 33
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.1",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Run view exists",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Run view exists.** geniusbot must add a run view of one `run_id`. The view reads `runs.get` and `runs.metrics` through `GatewayClient` (the `GRAPHOS-OPS` rows for run metrics). No run view exists today. An absent operation must read \"not available\" with no fabricated value. | `tests/test_run_view.py::test_run_view_loads_run`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 34
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.2",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Applied harness configuration is shown",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Applied harness configuration is shown.** The run view must show the run's `harness_config`: `context_policy`, `plan_scaffold` and `action_space`. A missing field must read \"not available\". | `tests/x::test_harness_config_shown`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 35
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.3",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Context use is shown against the budget",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Context use is shown against the budget.** The run view must show `peakContextTokens` against `contextBudgetTokens` and the cost `costUsd`. An absent field must read \"not available\", never zero. | `tests/x::test_context_and_cost_shown`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 36
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.4",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Current plan is shown read-only",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Current plan is shown read-only.** The run view must render the current plan from the run's plan state. The view must offer no edit control. | `tests/x::test_plan_read_only`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 37
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.5",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "Each termination reason has a distinct state",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**Each termination reason has a distinct state.** The run view must map each `terminationReason` (`final_answer`, `context_overflow`, `stuck`, `step_budget`, `error`) to its own label. `context_overflow` and `stuck` must not appear as a generic failure. | `tests/x::test_termination_reasons_distinct`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 38
    },
    {
      "id": "GENIUSBOT-CLIENT-R019.6",
      "kind": "requirement",
      "parent": "GENIUSBOT-CLIENT",
      "source": "specs/desktop-client/status.json",
      "title": "End-to-end proof on the hot path",
      "delivery_state": "SPECIFIED",
      "state": "specified",
      "done": false,
      "landed_in": [],
      "verified_by": [],
      "parent_title": "GENIUSBOT-CLIENT \u2014 Desktop GraphOS operation client",
      "definition": "**End-to-end proof on the hot path.** The run view must render all five items from one gateway fixture through the production entry point. | `tests/x::test_run_surface_end_to_end`",
      "definition_source": "specs/desktop-client/requirements.md",
      "definition_line": 39
    }
  ],
  "github": {
    "issues": {
      "available": true,
      "items": []
    },
    "pull_requests": {
      "available": true,
      "items": [
        {
          "number": 64,
          "title": "docs(spec): define desktop run observation contracts",
          "html_url": "https://github.com/Knuckles-Team/geniusbot/pull/64",
          "created_at": "2026-10-11T23:50:49Z",
          "updated_at": "2026-10-11T23:54:27Z"
        }
      ]
    }
  },
  "spec_edges": []
}
