Skip to content

Seam: contract hygiene — dangling ADR 0022, version handshake, label-default SSOT #2942

Description

@kyle-sexton

Parent

Refs #2933. Source: topic pocock-shipping-breakdown (PR backfilled when opened). Evidence: topic memory slice seam-scrutiny-findings.md (F3.5, F3.6, F3.7) plus one session finding.

What to build

  • F3.5: CONTRACT.md cites "ADR 0022" but docs/adr/ holds only 0001–0013 — the seam's direction-locking rationale is uncitable in-tree. Locate or write the ADR (or correct the citation).
  • F3.6: no contract-version handshake at the adapter seam — the dispatcher reads only .verbs from a manifest and never compares the adapter's schema_version to the core's, so a consumer-local/shadowing/generated adapter skews silently. Add a directional tolerant-reader handshake (standards-contract precedent). Prerequisite for the adapter-onboarding skill.
  • F3.7: role-label defaults are triple-defined (binding.sh, frontier.sh parameter default, dispatcher inline fallback) — consolidate to one definition source. Also record (or leave deferred with a recorded posture) the [Maintenance] title prefix + recurring-schedule path fixed strings.
  • Session finding (2026-08-17): the seam has no degradation path when gh is absent — cloud sessions (no gh CLI, MCP-only GitHub access) cannot run the github adapter at all; this topic's own board had to be published via MCP with body-text blocker edges. Document the limitation honestly in CONTRACT.md and evaluate an API/MCP fallback or a documented backfill ritual for native edges.

Acceptance criteria

  • ADR citation resolves in-tree
  • Version handshake implemented with conformance coverage; skew behavior documented both directions
  • Label defaults single-sourced; fixed-string postures recorded
  • gh-absent degradation documented (and fallback decided or explicitly deferred)

Blocked by

None — can start immediately.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-readyFully specified and briefed; eligible for autonomous pickup from the frontier.priority: needs-triageDefault until a priority tier is assigned.work-class: scopedA briefed fix or small feature; blast radius bounded by the brief, tests exist.

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions