feat(intake): add human_review — the declaration-only work-type - #318
Merged
Conversation
A completed task sometimes needs a person to read it before it counts as
done. Nothing in the workflow held that: `complete/` means shipped, and a
prompt that shipped without anyone checking it is indistinguishable from one
that was checked.
`human_review/` is a work-type in the ordinary layout
(`draft/human_review/<target>/<slug>.md`, same light header) that is unlike
every other one in four ways, all of them following from "a human decided
this, no classifier could":
- **Never inferred.** It is filtered out of the classifier's signal sets
(`MANUAL_ONLY_WORK_TYPES`, sizing faculty), so only an explicit
`Type: human review` reaches it. Prose about reviewing shipped work still
classifies as ordinary work. Review is opt-in, not a lifecycle stage — no
close-out path files one.
- **Never demoted.** An unresolved target sends an ordinary prompt to
`triage/` ("nobody classified this"); here somebody did, and a review's
subject may only be named in a completion record, so it files flat.
- **Never drift.** A merged PR in the body, or a `Status:` saying shipped, is
the premise of a review rather than a stalled lifecycle.
- **Never backlog.** Kept out of `census()["records"]` entirely, which keeps
it out of the backlog count, the pick lists, the work-type sections, the
bundler and the epics in one move.
It renders as its own **Human review** section on both dashboard pages,
directly under *In flight* — both are live obligations, and a review sunk
below 140 backlog prompts would never be read. Its 📋 hands out a
read-and-report prompt rather than a `/start_dev` (there is nothing to
start) that names both exits, sign off or file the follow-up, because a
review that stops at "looks fine" leaves the row on the board forever.
`human_review` is also the first work-type whose name is two words, so the
declaration readers now normalise `human review` / `human-review` /
`human_review` to the folder key, and `strip_declarations` no longer strands
a leading declaration's punctuation in the derived title (`Type: human
review. Check the fit quality.` titled as `. Check the fit quality`).
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0139dGR6XPDoo4Wrq9eDevTw
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
A completed task sometimes needs a person to read it before it counts as done.
Nothing in the workflow held that:
complete/means shipped, and a prompt thatshipped without anyone checking it is indistinguishable from one that was
checked.
human_reviewis a work-type in the ordinary layout(
draft/human_review/<target>/<slug>.md, same light header) that is unlike everyother one in four ways, all of them following from a human decided this, no
classifier could:
(
MANUAL_ONLY_WORK_TYPES, sizing faculty), so only an explicitType: human reviewreaches it. Prose about reviewing shipped work stillclassifies as ordinary work. Review is opt-in, not a lifecycle stage — no
close-out path files one, and an empty section means nothing was flagged
rather than nothing shipped.
triage/("nobody classified this"); here somebody did, and a review's subject may only
be named in a completion record, so it files flat instead.
Status:saying shipped, is thepremise of a review rather than a stalled lifecycle.
census()["records"]entirely, which keeps itout of the backlog count, the pick lists, the work-type sections, the bundler
and the epics in one move.
It renders as its own Human review section on both dashboard pages, directly
under In flight — both are live obligations, and a review sunk below 140
backlog prompts would never be read. Its 📋 hands out a read-and-report prompt
rather than a
/start_dev(there is nothing to start) that names both exits,sign off or file the follow-up, because a review that stops at "looks fine"
leaves the row on the board forever.
human_reviewis also the first work-type whose name is two words, so thedeclaration readers now normalise
human review/human-review/human_reviewto the folder key, andstrip_declarationsno longer strands aleading declaration's punctuation in the derived title (
Type: human review. Check the fit quality.titled as. Check the fit quality)./start_devgained a note refusing adraft/human_review/…path: the work itnames already shipped, so the answer is the review, not a worktree.
Downstream
PyAutoMind carries the taxonomy side (the folder, the docs, the regenerated
dashboard). This PR must merge first:
dashboard_refresh.ymlrenders theMind's page with PyAutoBrain's
main, so the Mind PR's freshness check cannotpass until this renderer is on
main.Testing
python3 -m pytest -q -n auto— 644 passed, including 10 new contract testscovering the manual-only rule, the no-demotion rule, the drift exemption, the
dedicated dashboard section on both pages, the recent-feed event, and the
multi-word declaration spellings.
Generated by Claude Code