a-session-leaves-what-it-observed — Relace zanechá, co pozorovala, a repozitář to nasměruje
Libovolný worker zaznamená pozorování jedním příkazem; hranice epizody odvodí kandidáta, který říká, o čem je a kdo by se měl podívat; čtení seskupuje opakování podle předmětu; epizoda, která nemá co říct, zaznamená, že nic nenašla.
HOTOVO 3 z 3 úkolů hotovo
- připraveno
- 0
- blokováno
- 0
- aktivní
- 0
- verify
- 0
- hotovo
- 3
- zrušeno
- 0
Problém
To, co se relace o nástroji dozví, se do repozitáře dostane, jen když to člověk sepíše ručně: dne 2026-10-08 vytvořily čtyři relace třicet šest pozorování tření (fast-forward spouštějící kontrolu rozsahu, zastaralý povrch rustdoc, kontrola procházející na nulové podpoře, číslo převzaté v necommitnutém worktree) a každé žije v soukromé paměti agenta nebo ve zprávě chatu. Pipeline znalostí ADR 0091 už odvozuje kandidáty na hranici epizody bez modelu, ale jen ze čtyř aktů (rozhodnutí, vyřešená otázka, dokončená úloha), klíčovaných epizodou, takže stejná vada viděná dvakrát jsou dva soubory, a bez cesty k vlastníkovi, který by měl jednat. Tření, které účetní kniha zaznamenává — task.refused, selhávající task.gate — se zapisuje a nikdy nečte.
Výsledek
Libovolný worker zaznamená pozorování jedním příkazem; hranice epizody odvodí kandidáta, který říká, o čem je a kdo by se měl podívat; čtení seskupuje opakování podle předmětu; epizoda, která nemá co říct, zaznamená, že nic nenašla.
Aktuální stav
share/events.yaml nemá událost pozorování. mj_knowledge_evidence mapuje čtyři události. Id kandidátů jsou <episode>-<digest>. Žádný kandidát nenese trasu.
Cílový stav
observation.recorded je registrováno a zapisováno příkazem knowledge observe; deriver ho mapuje na kandidáta na epizodu nesoucího about a route; candidates seskupuje podle about na každém rozhraní; ADR 0118 nahrazuje dvě věty ADR 0091.
Rozsah
- lib/knowledge.sh
- share/events.yaml
- share/commands.yaml
- share/schemas/majordomus/knowledge
- share/allow
- share/skeleton/ai/repo/knowledge
- share/sections
- apps/majordomus-cli/src/capability/builtin/knowledge_base.rs
- apps/majordomus-cli/tests/knowledge_base.rs
- docs/CONCEPTS.md
- docs/SCHEMAS.md
- docs/CLAIMS.yaml
- docs/claims
- .ai/repo/adrs
- .ai/repo/project
- docs/KNOWLEDGE.md
- docs/CLI.md
- test/cases
Mimo rozsah
- Automatické jednání podle routy
- Upstream transport
Kritéria přijetí
- knowledge observe zapíše jeden typovaný řádek uvnitř epizody a zkomolený vstup odmítne bez zápisu
- Hranice odvodí jednoho kandidáta na epizodu pro každé pozorování s about a route, bez modelu
- candidates seskupuje podle about na příkazové řádce i ve čtečce v Rustu
- Každý kandidát pozorování nese strukturální route, správnou pro adoptujícího
Validace
- majordomus intent validate
- bash test/run.sh 980_a_session_records_what_it_observed
- bash test/run.sh 981_an_observation_becomes_a_grouped_candidate
- bash test/run.sh 982_a_candidate_is_routed_by_what_it_is_about
- bash test/run.sh 564_knowledge_derivation_is_idempotent
Rizika
- Kandidáti na trunku pouze přes PR (I1984): pozorování přidávají kandidáty tam, kde je worker uvede, ne při každém odmítnutí nebo běhu kontroly; seskupení při čtení platí bez ohledu na to, zda kandidáti skončí ve verzování, nebo pod .ai/local.
- share/events.yaml se dotýká opoziční větev (#807); nová událost přistane jako textový soused a potřebuje jeden merge.
Úkoly
Každý z nich je prováděcí kontrakt s vlastními kritérii přijetí, validačním příkazem a požadovanými důkazy. Sloupec wave je vrstva grafu závislostí, v níž úkol leží.
| issue | status | vlna | závisí na | název |
|---|---|---|---|---|
| I2073 | HOTOVO | 0 | — | Worker zaznamená pozorování jedním příkazem |
| I2074 | HOTOVO | 1 | I2073 | Pozorování se stane kandidátem, který říká, čeho se týká, a čtení seskupuje opakování |
| I2075 | HOTOVO | 2 | I2074 | Kandidát se směruje podle toho, čeho se týká |
Graf
flowchart LR
I2073["I2073<br/>A worker records an observation in one command"]:::done
I2074["I2074<br/>An observation becomes a candidate that says what it is about, and reading groups recurrence"]:::done
I2075["I2075<br/>A candidate is routed by what it is about"]:::done
I2073 --> I2074
I2074 --> I2075
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxKanonický záznam: .ai/repo/project/milestones/a-session-leaves-what-it-observed.yaml. Přečtěte jej zpět přes majordomus plan show a-session-leaves-what-it-observed.