Skip to content

§9 (Action fields) vs §15 (Conformance) disagree on which action fields are required #2

Description

@benikigai

Inconsistency

SPEC.md §9 (Action fields table, lines 286-305) marks the following action fields as required:

Field Required
id yes
description yes
auth_required yes
inputs yes
outputs yes

But §15 Conformance (lines 425-435) only lists action description as SHOULD:

A conforming agent.json file SHOULD:

  • Declare error recovery for all expected failure states
  • Include description on every action
  • Declare sensitivity on destructive or irreversible actions

auth_required, inputs, outputs are not mentioned in §15 at all. So an implementer who reads §15 as authoritative will produce an action with only id + via + operation (since endpoint/method are conditional on via), and miss four "required" fields that §9 marks mandatory.

Example in the wild

laclawclaw.com/.well-known/agent.json (cited in v0.2 changelog as the reference implementation) shipped with skeletal actions for ~6 weeks. Just patched in LaClawClaw/laclawclaw#1. If the reference implementation can't get this right, the spec text is ambiguous.

Proposed resolution (v0.3)

Pick one of:

Option A — tighten §15. Add the §9-required action fields to the MUST list in conformance. Clear, strict, breaks any existing implementation that ships skeletal actions.

Option B — relax §9. Mark description, auth_required, inputs, outputs as recommended (not required), with a clear note that omitting them limits agent planning. Keep §15 SHOULD.

Option C — two-tier conformance. Define minimal vs full conformance levels. Minimal = top-level fields + bare actions (current §15). Full = all §9 fields populated. Implementations advertise which level they conform to via a top-level field.

Option B is most pragmatic for early adoption (low-friction onboarding). Option A is technically cleanest. Option C is most flexible but adds a new field.

Happy to draft a PR once direction is picked.

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