mirror of
https://github.com/olehomelchenko/astrolabe.git
synced 2026-08-08 02:02:33 +00:00
Process: session wrap-up protocol — doc-update, then clean-context review subagents
This commit is contained in:
@@ -9,6 +9,13 @@ disable-model-invocation: true
|
|||||||
Review staged or uncommitted code to ensure quality, test coverage, and alignment with the
|
Review staged or uncommitted code to ensure quality, test coverage, and alignment with the
|
||||||
project's spec (`docs/spec/`) and architecture playbook (`docs/architecture/`).
|
project's spec (`docs/spec/`) and architecture playbook (`docs/architecture/`).
|
||||||
|
|
||||||
|
This skill is also executed by a **clean-context subagent** at session wrap-up (see
|
||||||
|
CLAUDE.md → Session wrap-up protocol). When running as that subagent: you deliberately
|
||||||
|
have no session context — judge the diff against the written contracts only, and return
|
||||||
|
the summary (rule #15) as your final message so the session agent can relay it. If a
|
||||||
|
change looks deliberate but its rationale is recorded nowhere, that absence is itself a
|
||||||
|
finding.
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
Determine the review scope using `git diff` (unstaged) and `git diff --staged` (staged).
|
Determine the review scope using `git diff` (unstaged) and `git diff --staged` (staged).
|
||||||
|
|||||||
@@ -55,6 +55,13 @@ unavailable, the seat still sits — grep is the fallback evidence.
|
|||||||
|
|
||||||
Pick the mode from what's in front of you; say which mode is running.
|
Pick the mode from what's in front of you; say which mode is running.
|
||||||
|
|
||||||
|
The two review modes are also executed by a **clean-context subagent** at session
|
||||||
|
wrap-up, after `/doc-update` and the alignment pass (see CLAUDE.md → Session wrap-up
|
||||||
|
protocol). When running as that subagent: you deliberately have no session context —
|
||||||
|
judge the diff against the codebase's own population of shapes, and return the report as
|
||||||
|
your final message so the session agent can relay and arbitrate it. A deliberate-looking
|
||||||
|
divergence whose rationale is recorded nowhere is itself a finding.
|
||||||
|
|
||||||
### Sweep — whole codebase
|
### Sweep — whole codebase
|
||||||
|
|
||||||
For: milestone boundaries, the one-off backfill, "how healthy are we?" on demand.
|
For: milestone boundaries, the one-off backfill, "how healthy are we?" on demand.
|
||||||
|
|||||||
@@ -105,6 +105,10 @@ npm run format # Prettier
|
|||||||
- **Spec is the contract** — when in doubt, read `docs/spec/`. If the spec is wrong or
|
- **Spec is the contract** — when in doubt, read `docs/spec/`. If the spec is wrong or
|
||||||
silent, raise it; change the spec deliberately rather than drifting from it.
|
silent, raise it; change the spec deliberately rather than drifting from it.
|
||||||
- **Core-first** — for each feature, build the pure `src/core/` logic with tests before UI.
|
- **Core-first** — for each feature, build the pure `src/core/` logic with tests before UI.
|
||||||
|
- **Session wrap-up** — when the user signals the session is wrapping, run the review
|
||||||
|
pass before any commit: `/doc-update` in-session first (flush unrecorded rationale),
|
||||||
|
then `/alignment` — and `/eng-council` review when the diff is structural — each as a
|
||||||
|
**clean-context subagent** that reports back. Full protocol in CLAUDE.md.
|
||||||
|
|
||||||
### Project skills
|
### Project skills
|
||||||
|
|
||||||
|
|||||||
@@ -43,3 +43,33 @@ See @AGENTS.md for project overview, architecture rules, and the AI developer pr
|
|||||||
- No git actions unless explicitly invited.
|
- No git actions unless explicitly invited.
|
||||||
- Run `npm run typecheck` and `npm test` after changes.
|
- Run `npm run typecheck` and `npm test` after changes.
|
||||||
- Single-line commit subjects; no Co-Authored-By trailers.
|
- Single-line commit subjects; no Co-Authored-By trailers.
|
||||||
|
|
||||||
|
## Session wrap-up protocol
|
||||||
|
|
||||||
|
When the user signals the session is wrapping (asks to commit, says it's done/wrapped),
|
||||||
|
run the review pass **before** anything is committed:
|
||||||
|
|
||||||
|
1. **Flush knowledge first — `/doc-update`, in-session.** Capture what this session
|
||||||
|
decided or discovered: rationale for non-obvious choices (to `docs/` or a code
|
||||||
|
comment at the site, whichever is the right home), spec/architecture gaps, decisions
|
||||||
|
made in conversation that never landed in writing. This step cannot be delegated —
|
||||||
|
only the session knows what was decided — and it runs first so the clean-context
|
||||||
|
reviewers below judge against recorded rationale instead of flagging deliberate
|
||||||
|
choices as oversights.
|
||||||
|
2. **Alignment — clean-context subagent.** Spawn an agent with no session context
|
||||||
|
beyond this prompt: "Read `.claude/skills/alignment/SKILL.md` and execute it against
|
||||||
|
the current uncommitted/staged diff. Fix directly per the skill, run typecheck and
|
||||||
|
tests, and return the skill's summary as your final message." The clean slate is the
|
||||||
|
point — the reviewer simulates the future maintainer and must not inherit the
|
||||||
|
session's rationalizations.
|
||||||
|
3. **Eng-council review — clean-context subagent, conditional.** Only when the session's
|
||||||
|
diff is structural (a new module or kind-instance, a refactor, a new dependency):
|
||||||
|
spawn an agent the same way to execute `.claude/skills/eng-council/SKILL.md` in the
|
||||||
|
matching review mode (refactor review / new-functionality review — never the sweep;
|
||||||
|
sweeps stay a deliberate act).
|
||||||
|
|
||||||
|
Run the subagents **sequentially**, not in parallel — both may edit the working tree.
|
||||||
|
Relay each report back to the user. Arbitrate findings that needed session context:
|
||||||
|
either accept them, or overrule them **and** record the missing rationale where the
|
||||||
|
reviewer looked for it — an overruled finding without a writing-down will recur. Then
|
||||||
|
commit only when invited.
|
||||||
|
|||||||
Reference in New Issue
Block a user