Skip to content

feat(agent-kits): add built-in agent kit metadata and inference #479

Closed

Description

@mogul

Intent

Implement the first acq-side increment from ADR-0030: make agent kits first-class enough that acq run <agent> <workspace> can resolve an agent kit by built-in-bundle name and attach through that kit's declared entrypoint.

Parent: #473
ADR: #474

Scope

  • Define the minimal agent-kit metadata needed for create/run: agent name, install/start ownership, and entrypoint command.
  • Resolve implicit agent kits from the built-in bundle only.
  • Never resolve implicit agent kits from ACQ_EXTRA_KITS.
  • Print the selected agent kit during create/run, or expose equivalent inspection via acq kit ls.
  • Preserve shell as the no-agent-kit case.
  • Keep explicit --kit behavior higher precedence than inference.

Deferred Decisions

  • Exact merge semantics for non-egress kit conflicts remain deferred until a later increment needs them.
  • Provider config rendering remains out of scope for this increment.
  • Moving OpenCode itself into a kit is tracked separately.

Acceptance Criteria

  • Existing acq run opencode . behavior remains stable from the user's perspective.
  • A built-in agent kit can be selected implicitly and visibly.
  • A same-named team or personal kit cannot silently become the selected agent kit.
  • Tests cover built-in inference, extra-kit non-inference, explicit override, and shell.

Orchestration Notes

Implementation should be done by an authoring sub-agent and reviewed by an independent adversarial review sub-agent. Review findings must be addressed before the increment is accepted.

Activity

  1. mogul commented on Oct 6, 2026

    @mogul
    ContributorAuthor

    Implemented and shipped in v4.0.0 via #474 (with corrective #549). Built-in agent-kit metadata and inference land in acq.backends/agents.sh (acq_agent_builtin_kit_name / acq_agent_builtin_kit_enabled). The PR's Closes: footer did not auto-close this because the collapsed-stack squash merge dropped the closing keyword references; closing manually now that the work is on main and released.

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions