fix: Chief gets a face, Hunt Plan speaks tribe, finish the #798 rename - #804
Merged
Merged
Conversation
Three things the operator spotted in one screenshot. 1. CHIEF HAD NO PORTRAIT. Elder's inline review leads with its face; Chief's board section was the one persona talking without one. grug_chief.png verified live as a real image/png. Drum/Haunt/Totem/ Teller have NO asset - grug.lol returns the SPA index.html for those paths, so an <img> would render broken, not a portrait. Chief only. 2. #798 RENAMED THE CHECK TITLES AND STOPPED. Every persona kept saying its old name in the one place a human reads it: nudge.py 'Grug Pulse see this PR sleep...' -> Grug Drum nudge.py summary 'Pulse nudge - PR quiet' -> Drum nudge sentinel x2 'Grug Sentinel notice: ...' -> Grug Haunt warder x3 'Grug Warder count the marks' -> Grug Totem Markers and config keys deliberately unchanged - the nudge marker in particular is how the module finds its own prior comments, and renaming it would double-post. Display renames, key stays (ADR-0002). 3. THE PLAN GATE DID NOT READ THE PLAN. check_scope_fence tested only that '## Out of scope' EXISTED, so pasting the template and leaving it blank passed - the same 'unfilled template should NOT pass' defect already fixed for bullets in #20 and enforced by check_why's word floor. Scope-fence was the one check still testing presence. NON-EMPTY is the whole bar. A first pass required 3+ words and the existing suite rejected it: 'Deferred.' and 'Not now.' are real answers, and a gate that demands padding gets padding. Check rows also now read as tribe rather than jira - why hunt / what good look like / how big / where stop / which ticket / ticket done. DISPLAY only: CheckResult.name is load-bearing (_ADVISORY_CHECKS keys off it to decide blocking-vs-warn, and the issue-time remedy text keys off it), so renaming the values would silently make issue-link blocking. Pinned by a test. Claude-Session: https://claude.ai/code/session_01Weq76G5TQhR9ogo4zCK1Gd
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.
Size: S
Why
Three things visible in one screenshot of a grug email.
1. Chief had no face
Elder's inline review leads with its portrait. Chief's board section was the one
persona talking without one.
grug_chief.pngverified live as a realimage/png. Drum, Haunt, Totem andTeller have no asset - grug.lol returns the SPA
index.htmlfor those paths,so a 200 there is not proof and an
<img>would render a broken image ratherthan a portrait. Chief only, until those assets exist.
2. #798 renamed the check titles and stopped there
Every renamed persona kept saying its old name in the one place a human reads it:
nudge.pybodyGrug Pulse see this PR sleep...Grug Drum beat for this PRnudge.pysummaryPulse nudge - PR quietDrum nudgesentinelx2Grug Sentinel notice:Grug Haunt notice:warderx3Grug Warder count the marksGrug Totem count the marksMarkers and config keys deliberately unchanged. The nudge marker in particular
is how that module finds its own prior comments - renaming it would make it
blind to them and double-post. Display renames, key stays (ADR-0002).
3. The plan gate did not read the plan
check_scope_fencetested only that## Out of scopeexisted. Paste thetemplate, leave it blank, gate passes.
That is the same "an unfilled template should NOT pass" defect already fixed for
bullets in #20 and enforced by
check_why's word floor. Scope-fence was the onecheck in the module still testing presence rather than content. An empty fence
is worse than no fence - it reads as the author having considered scope and
found nothing to exclude.
Non-empty is the whole bar, deliberately. A first attempt required 3+ words
and the existing suite rejected it:
Deferred.andNot now.are real answers,and a gate that demands padding gets padding.
Check rows also now read as tribe rather than jira:
Display only.
CheckResult.nameis load-bearing -_ADVISORY_CHECKSkeysoff it to decide blocking-vs-warn, and Chief's issue-time remedy text keys off
it too. Renaming the values would silently make
issue-linkblocking. Pinned bya test.
Acceptance criteria
## Out of scopefails the gateDeferred.) still passesOut of scope
<img>tags would render broken images. Worth doing when the art exists.pulse/warder/sentinelmodule directories and config keys.Those are historical keys per ADR-0002 and changing them is a migration, not a
rename.
## Why's 5-word floor, or any other threshold. Only the empty-sectionhole is closed here.
Verification
1840 passed, 2 skippedcontent-type, not just status codePart of #791.