Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I2074

An observation becomes a candidate that says what it is about, and reading groups recurrence

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
DONE
Wave
1
Waiting on
none
Holds back
Behind it in all
1
Evidence
1 of 1
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I2074

majordomus plan verify I2074

majordomus plan done I2074

What it is

Objective
Add the observation.recorded row to mj_knowledge_evidence with ADR 0091's per-episode id over kind, subject and statement; add optional about and route to knowledge/v1 (proto, generate); have knowledge candidates and the Rust knowledge_base.candidates group by about, listing each record and its episodes.
Why
The same defect seen by several sessions must read as one thing without any episode writing another's file.
Now
Four events map to candidates; no record says what it is about; candidates is a flat list.
Wanted
Observation candidates carry about; both readers group by it; a second derivation is byte-identical; an empty episode still records knowledge.derived with written 0.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • An episode with two observations derives two candidates, each with about set to its subject
  • Two episodes observing one subject write two files and candidates lists one group naming both episodes, the shell and the Rust reader alike
  • A rejected candidate stays superseded after the second episode, which adds a new candidate to the same group
  • An episode with no observation writes no candidate and still appends knowledge.derived with written 0
  • Cases 563, 564, 565, 707, 709, 710 and 711 still pass
Validation
bash test/run.sh 981_an_observation_becomes_a_grouped_candidatebash test/run.sh 563_knowledge_is_derived_at_the_boundarybash test/run.sh 564_knowledge_derivation_is_idempotentcargo test --test knowledge_base
Evidence required
observation_becomes_grouped_candidate
Evidence present
observation_becomes_grouped_candidate

Scope

Touches
lib/knowledge.shshare/schemas/majordomus/knowledgeshare/allowshare/sections.ai/repo/knowledge/candidates/README.mdshare/skeleton/ai/repo/knowledgeapps/majordomus-cli/src/capability/builtin/knowledge_base.rsapps/majordomus-cli/tests/knowledge_base.rsdocs/KNOWLEDGE.mdtest/cases/981_an_observation_becomes_a_grouped_candidate.sh
Not
unknown: the record declares no `non_scope`
Depends on
Priority
p1
Profile
implementation
Parallel safe
false
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-10-09
Updated
2026-10-14T23:33:06Z
Started
2026-10-14T23:32:49Z
Verified
2026-10-14T23:32:56Z
Completed
2026-10-14T23:33:06Z

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.