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
I2399
Every session briefs itself on an interval, without being asked
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
- ACTIVE
- Wave
0- Waiting on
- none
- Holds back
- none
- Behind it in all
0- Evidence
2of2
Moves
plan.transitionWhat it is
- Objective
- Give every worker of a supervised repository one short, typed brief of what surrounds it (its own episode and task, the peers of every board, the mesh, the integration queue and the derive queue), projected to the command line, HTTP, MCP and the Cockpit, and have a Claude Code provider mod the policy switches keep that brief in front of the session on its own: as the status line, injected on an interval, and with the session told at its start how to keep itself awake.
- Why
- The owner ordered on 2026-10-11 that every Claude Code session working in this repository keeps itself alive and gives brief periodic reports without anyone asking. The facts already exist in five places (`peers.list`, `mesh.cooperation`, `mesh.state`, `majordomus prs brief`, the derive lock beside the primary checkout) and a session reads none of them unless it remembers to; the sessions of 2026-10-10 relayed board state to each other by hand, and a superseded server's board was silently missing from every gather. A session that is not told goes quiet, and a quiet session is indistinguishable from a dead one.
- Now
- No capability composes the brief: `prs brief` is a private function of the command line, `peers.list` run from the command line reads an empty board of its own process instead of the server's, and the mesh runtime answers only inside a server. The only provider mod is majordomus-handover (ADR 0123). Nothing refreshes a status line, nothing reminds a session of its surroundings on an interval, and the SessionStart briefing says nothing about staying awake.
- Wanted
- `brief.session` (CLI `majordomus brief`, `GET /api/v1/brief`, MCP `majordomus_brief`) answers one line and a multi-line form from the leaseholder's view: the command line asks the server its checkout's lease names and composes locally only when none answers, and a superseded server says that its own board is unreachable by the repository's gather. The Cockpit overview shows it. `session.brief_on_interval` switches a second provider mod, majordomus-brief, installed by `capture install` beside the handover mod: it renders the line as the status line on a clock, injects the multi-line brief into the conversation when the last one is older than the declared interval, and at session start tells the worker to schedule its own periodic self-report. ADR 0136 records the decision.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- `brief.session` answers a one-line and a multi-line brief with sections for the session, peers, mesh, integration and derive, each section saying when it could not be read rather than omitting itself
- Run from the command line beside a ready server, the brief carries the server's board, not the empty board of the command's own process
- A server that is not its checkout's leaseholder says its board is unreachable by the repository's gather
- The Cockpit overview renders the brief
- `capture install` writes .claude/skills/majordomus-brief when `session.brief_on_interval` is true and removes a copy it wrote when it is not
- The mod renders the status line, injects the multi-line brief once per interval, and prints the keep-awake instruction at session start (claude plugin test)
- ADR 0136 is proposed and docs/BRIEF.md documents the surface
- Validation
cargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --lib briefcargo test --locked --manifest-path apps/majordomus-cli/Cargo.toml --test briefbash test/run.sh 1065_a_session_briefs_itselfbin/majordomus plan validate- Evidence required
session_brief_casedecision_recorded- Evidence present
session_brief_casedecision_recorded
Scope
- Touches
.ai/repo/project/issues/I2399.yaml.ai/repo/adrs/0136-every-session-briefs-itself-on-an-interval.mdapps/majordomus-cli/src/capability/builtin/brief.rsapps/majordomus-cli/src/capability/builtin/mod.rsapps/majordomus-cli/src/capability/builtin/peers.rsapps/majordomus-cli/src/commands/prs.rsapps/majordomus-cli/src/commands/brief.rsapps/majordomus-cli/src/commands/mod.rsapps/majordomus-cli/src/cli.rsapps/majordomus-cli/src/lib.rsapps/majordomus-cli/src/policy.rsapps/majordomus-cli/src/cockpit/pages.rsapps/majordomus-cli/tests/brief.rsshare/mods/claude-code/majordomus-brief/hooks/register.tsshare/mods/claude-code/majordomus-brief/hooks/register.test.tsshare/mods/claude-code/majordomus-brief/hooks/hooks.jsonshare/mods/claude-code/majordomus-brief/README.mdshare/mods/claude-code/majordomus-brief/.claude-plugin/plugin.jsonshare/mods/claude-code/majordomus-brief/.gitignorelib/capture.shshare/allow/policy.txtshare/schemas/majordomus/policy/policy.v1.schema.jsonshare/skeleton/policy.yaml.ai/repo/policy.yamltest/cases/1065_a_session_briefs_itself.shdocs/BRIEF.mddocs/README.mddocs/generateddocs/PLAN_STATUS.mddocs/PAGES_STATUS.mdsite/contentsite/data- Not
Editing .claude/settings.json or any person's settings: installing the mod's folder is `capture install`'s; any settings change is the owner's decision.A brief for providers other than Claude Code: the capability is provider-neutral, the mod is Claude Code's alone until another provider exposes a status line and a timer.The mesh briefing of ADR 0128 (I2285, not on master): when it lands, the brief's mesh section may read it instead of mesh.state.- Depends on
- unknown: the record declares no `depends_on`
- Priority
- p1
- Profile
- implementation
- Parallel safe
- true
- Owner
- unknown: the record declares no `owner`
The work so far
- Branches
- none
- Merged
- none
- Commits
0- Trunk
- master
- Sessions
- none
- Created
- 2026-10-11
- Updated
- 2026-10-14T07:59:34Z
- Started
- 2026-10-14T07:59:26Z
- Verified
- unknown: the record declares no `verified_at`
- Completed
- 2026-10-14T07:59:34Z
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.