Skip to content

Comment types

A gaia_comment carries a Markdown body (format gaia_rich) and a free-text gaia_comment_type, default comment. The GAIA skills agree on the values below; the cockpit matches them exactly. The narrative is on Handoffs & comments.

TypeWritten atByRead byHolds
commentany timeanyonethe next step's agent, peoplefree text
qualificationqualification (or by the /gaia create skill at creation)the qualification stepthe entry guard of every work state; the spec/diagnose stepacceptance criteria, classification, work:* labels, reproduction (bugs), scenario_required, a provenance hash of the description, handoff_version
specspecthe spec stepthe coding step; people confirming the plandesign decisions, rejected alternatives, risks, acceptance mapping
planspecthe spec stepthe coding stepthe implementation plan as a checkbox list
testspecthe spec stepthe coding and review stepsthe test plan — which checks gate the change
debug_diagnosediagnosethe diagnose step (bugs)the coding stepthe reproduced defect, root cause, the regression test to write first
acceptancecodingthe coding stepthe review step; peopleeach acceptance criterion with PASS/FAIL and its command, observed result and commit
scenariocoding, when a browser walkthrough appliesthe coding stepthe review step; peoplethe concrete browser path: user, URL, actions, expected result
summarythe end of every stepthe step ownerpeople first — the cockpit's Overview leads with itoutcome, evidence, links, the one next action

Where the cockpit shows them

  • Overview leads with the newest summary, then the newest spec and plan when present, then the description. The match on the type is exact — a typo in the type means the comment is listed under Comments but not surfaced on Overview.
  • Comments lists every comment newest first, each under a — <type> · <author> · <created> marker.
  • gaia ui <id> | cat prints the same content in section order.

Writing one

The type is a plain attribute on the create envelope; the format must be named:

json
{
  "data": {
    "type": "gaia_comment--gaia_comment",
    "attributes": {
      "body": { "value": "…Markdown…", "format": "gaia_rich" },
      "gaia_comment_type": "comment"
    },
    "relationships": {
      "ticket_id": { "data": { "type": "gaia_ticket--gaia_ticket", "id": "<ticket uuid>" } }
    }
  }
}

gaia_rich strips raw HTML, so an HTML body renders as an empty comment. Handoff types are reserved by convention for the steps that own them — a hand-written qualification comment would be taken at face value by the guard that reads it.

Next