Skip to content

I2073 — A worker records an observation in one command

Register observation.recorded in share/events.yaml (emitted_by knowledge; requires task_id, kind, subject, statement, evidence) and add `knowledge observe --kind <friction|workaround|defect|drift|repetition> --subject <ref> [--evidence <ref>]... <statement>` to lib/knowledge.sh, writing one ledger line, refusing malformed input without writing, inside or outside a task, and only inside an open episode; write ADR 0118.

DONE wave 0 · p1 · implementation profile · runs alone

Part of a-session-leaves-what-it-observed — A session leaves what it observed, and the repository routes it.

Objective

Register observation.recorded in share/events.yaml (emitted_by knowledge; requires task_id, kind, subject, statement, evidence) and add `knowledge observe --kind <friction|workaround|defect|drift|repetition> --subject <ref> [--evidence <ref>]... <statement>` to lib/knowledge.sh, writing one ledger line, refusing malformed input without writing, inside or outside a task, and only inside an open episode; write ADR 0118.

Why

Friction is noticed by workers and written nowhere the repository reads; decision add is the precedent for one typed line per act.

Current state

No observation event or command exists; workers keep friction in private memory files.

Desired state

One command any provider can run inside an episode; one typed ledger line per observation.

Scope

  • lib/knowledge.sh
  • share/events.yaml
  • share/commands.yaml
  • docs/CLI.md
  • docs/KNOWLEDGE.md
  • docs/SCHEMAS.md
  • docs/CLAIMS.yaml
  • docs/claims
  • docs/CONCEPTS.md
  • .ai/repo/adrs
  • test/cases/980_a_session_records_what_it_observed.sh

Dependencies

None. This issue is a root of the graph.

What waits on this

Acceptance criteria

  • An observation inside an episode writes one line with kind, subject, statement, each evidence reference and the active task or none
  • An unknown kind, a malformed subject or evidence reference, a multi-line statement or a transcript marker is refused with exit 2 and no line
  • A subject is a repository path or capability:, rule:, command:, gate: followed by an identifier, and anything else is refused
  • With no open episode the observation is refused with exit 10 naming session start, and nothing is written

Validation

  • bash test/run.sh 980_a_session_records_what_it_observed
  • bash test/run.sh 33_event_registry

Evidence required

  • observation_recorded

Evidence

coverstypecommandresultat commit
observation_recordedtestMJ_TEST_JOBS=2 bash test/run.sh 980_a_session_records_what_it_observed 33_event_registrytests: 2 passed, 0 failed, 0 skipped (run 2026-10-14 between 07:40Z and 07:58Z on master ce5959db59)ce5959d

Timeline

started
2026-10-14T08:01:27Z
verified
—
completed
2026-10-14T08:01:33Z

Those three fields, the evidence above and the state of the dependencies are all the status is made of. There is no status field to disagree with them.

Canonical record: .ai/repo/project/issues/I2073.yaml. Read it back with majordomus plan show I2073.

Searches the titles and descriptions of every page this site publishes.