Skip to content

The start briefing names the candidates awaiting review on this branch, count and ids, bounded and within the briefing budget, and prints their absence rather than omitting it

The briefing a new episode is handed (ADR 0017) gains one bounded section. It names the candidate records whose episode was on this branch, the count on one line and the ids beneath it, bounded the way the open-questions block is and within session.briefing_budget_lines. A candidate whose episode this checkout cannot place is named on its own line as unattributed rather than hidden. When there is nothing, the section says so in one sentence, because absence printed is an answer and absence omitted is a gap.

declared statusdeclared status: guaranteed Declared deterministic and blocking, implemented, and naming the behavioural test that is to prove it. Whether a recorded run supports it is the evidence verdict, shown beside it.

recorded evidencerecorded evidence: not run Declared guaranteed, and not supported by a recorded run: the test is named, and no passing run of the current inputs is recorded. how evidence is recorded

The section sits after the open questions and before the handover in the derived briefing, bounded the way the open-questions block is. A candidate's branch is the branch of the episode its derived_from names, read from the tracked session record or, while that record is not yet written, from the ledger; a candidate whose episode this checkout cannot resolve is named on its own line as unattributed rather than hidden.

What it means

The briefing a new episode is handed (ADR 0017) gains one bounded section. It names the candidate records whose episode was on this branch, the count on one line and the ids beneath it, bounded the way the open-questions block is and within session.briefing_budget_lines. A candidate whose episode this checkout cannot place is named on its own line as unattributed rather than hidden. When there is nothing, the section says so in one sentence, because absence printed is an answer and absence omitted is a gap.

How it works

mj_derive_briefing_body in lib/derive.sh calls mj_knowledge_briefing_lines with the current branch after the open-questions block and before the handover block. A candidate's branch is the branch of the episode its derived_from names, read from the tracked session record under .ai/repo/sessions/ or, while that record is not yet written, from the ledger's session.started line; a candidate whose episode neither source knows is listed under a distinct line naming how many are unattributed. The ids are bounded through mj_derive_bounded, which prints the first few and a count of the rest. The same section reaches majordomus context, and majordomus knowledge candidates --json carries branch: null for an unattributed candidate.

How to see it

printf '{"session_id":"e1","source":"startup"}' | .claude/hooks/majordomus-session-start
                                                        # No knowledge candidates await review on this branch. ...
majordomus decision add "Something decided" --why "because"
printf '{"session_id":"e1","reason":"other"}' | .claude/hooks/majordomus-session-end
printf '{"session_id":"e2","source":"startup"}' | .claude/hooks/majordomus-session-start
                                                        # Knowledge candidates awaiting review on this branch: 1
                                                        # - e1-<digest>  Something decided
majordomus context | grep -A3 'Knowledge candidates'

What it does not cover

It does not print the records' bodies; a briefing carries references and never a conversation, and a candidate's title is the assertion, not an excerpt. It does not list candidates of other branches; majordomus knowledge candidates lists every branch. It is subject to the budget like every other section, and is dropped after history and files when the budget is exceeded.

Why it exists

A record nothing loads is a record nobody reads. The start briefing is the one moment at which a continuation record reaches a worker without the worker remembering to ask, and a review queue that is visible only to a person who runs a command is a queue that grows. .ai/repo/adrs/0091-knowledge-is-derived-at-the-episode-boundary-and-a-person-promotes-it.md fixes the section, its position and its bound.

Detail rendered from docs/claims/briefing-names-candidates.md.

From the statement to the proof

  1. 1 · the public statement

    The start briefing names the candidates awaiting review on this branch, count and ids, bounded and within the briefing budget, and prints their absence rather than omitting it

    Made on Handover.

  2. 2 · the canonical claim

    briefing-names-candidatesdeclared status: guaranteed in docs/CLAIMS.yaml

    Defined in read it on this site · docs/KNOWLEDGE.md

  3. 3 · the implementation

    lib/derive.sh

  4. 4 · the test and the scenarios

    Test: test/cases/710_briefing_names_the_candidates.sh

  5. 5 · the recorded runs

    recorded evidence: not run how evidence is recorded

Verify it yourself

The test runs in a disposable temporary repository and asserts the behaviour, not a string in the source.

from a clone of the repository
bash test/run.sh 710_briefing_names_the_candidates

Where this claim is used

responsibilities it covers

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