Skip to content

v6.8 Part 4: umbrella keep_running until reviewers spawn (#79)#19

Merged
jarvis-stark-ops merged 2 commits into
mainfrom
kaipo/v6.8-umbrella-keep-running
Jun 11, 2026
Merged

v6.8 Part 4: umbrella keep_running until reviewers spawn (#79)#19
jarvis-stark-ops merged 2 commits into
mainfrom
kaipo/v6.8-umbrella-keep-running

Conversation

@jarvis-stark-ops

Copy link
Copy Markdown
Collaborator

Summary

Final v6.8 issue. The 2026-06-10 v6.7 validation chain caught this orchestration bug: JARVIS umbrella spawned Pepper + Friday from the umbrella, then called `kanban_complete` on itself before any reviewer was queued. The umbrella showed as done with build-only descendants; Kaipo had to manually spawn Tony / Tchalla / Vision to continue the chain.

Closes hermes-jarvis#79.

What this PR adds

New gate `verify_umbrella_review_coverage` fires when a goal_mode umbrella calls `kanban_complete`. Walks transitive descendants (reusing `_v6_7_walk_descendants` from NousResearch#73 so chained shapes count). If no review-role descendant exists anywhere in the subtree, rejects.

Two violation messages:

  • No descendants at all — pathological goal-mode umbrella that never decomposed
  • Build-only — the exact 2026-06-10 case; message points to `kanban_create --parent --assignee tony/tchalla/vision`

Opt-out: `metadata={"x_no_review_needed": "<≥20-char reason>"}` for legitimate cases. Standard opt-out conventions (audit event, bool/short rejected).

Relationship to v6.7 NousResearch#30

Together they catch the empty-chain failure mode at both ends of the umbrella lifecycle.

Test plan

  • 12 new tests (7 unit, 5 integration via complete_task)
  • 135/135 in test_kanban_completion_gates.py
  • 231/231 across full v6.7+v6.8 regression set, zero failures
  • After merge: re-run a fresh swarm validation chain; verify JARVIS can no longer self-complete an umbrella with only build descendants

🤖 Generated with Claude Code

Jarvis and others added 2 commits June 11, 2026 13:04
…wn (NousResearch#79)

The 2026-06-10 v6.7 validation chain caught this orchestration bug:
JARVIS umbrella spawned Pepper + Friday from the umbrella, then
called kanban_complete on itself before any reviewer was queued. The
umbrella showed as done with build-only descendants; Kaipo had to
manually spawn Tony / Tchalla / Vision to continue the chain.

Closes hermes-jarvis#79.

## What this PR adds

New gate ``verify_umbrella_review_coverage`` that fires when a
goal_mode umbrella calls kanban_complete. The gate walks the
umbrella's transitive descendants (reusing _v6_7_walk_descendants
from NousResearch#73 so chained shapes count). If no review-role descendant
exists anywhere in the subtree, the gate rejects.

Two violation messages:

1. ``no descendants at all`` — pathological goal-mode umbrella that
   never decomposed. The orchestrator misfired.
2. ``build-role descendants but NO review-role descendants`` — the
   exact 2026-06-10 case. Message points the operator to spawn
   tony/tchalla/vision now via kanban_create --parent <build-id>.

Opt-out: ``metadata={"x_no_review_needed": "<≥20-char reason>"}``
for legitimate cases (e.g. pure status-ack umbrellas). Standard
v6.7/v6.8 opt-out conventions — emits completion_opt_out_used
audit event with verbatim reason; bool/short strings rejected.

## Relationship to v6.7 NousResearch#30

- NousResearch#30 (integrative review at archive): fires at ARCHIVE time, spawns
  Tchalla after a chain settles.
- NousResearch#79 (this PR): fires at COMPLETE time, forces JARVIS to spawn
  reviewers BEFORE marking itself done.

Together they catch the empty-chain failure mode at both ends of the
lifecycle.

## Tests

12 new tests:

TestUmbrellaReviewCoverage (7) — non_goal skips, review descendant
passes, only-build rejects with helpful message, no-descendants
rejects with different message, tchalla/vision also satisfy, opt-out
bypasses.

TestUmbrellaReviewCoverageIntegration (5) — end-to-end via
complete_task: build-only blocks, adding chained tony unblocks
(closes NousResearch#73 + NousResearch#79 together), x_no_review_needed passes, short opt-out
rejected, non-goal_mode tasks unaffected.

135 in test_kanban_completion_gates.py pass. 231/231 across full
v6.7+v6.8 + adjacent regression set, zero failures.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…earch#79)

Three findings from the independent code review on PR #19:

1. Scope tightening: verify_umbrella_review_coverage now requires
   umbrella_assignee in ORCHESTRATION_ROLES (jarvis/pepper/banner).
   A goal-mode worker like Friday is out of scope — only orchestrators
   own umbrella-decomposition discipline. Was over-applying.

2. Empty-assignee message correctness: has_non_review_descendant is
   now bool(descendants), not the unset has_non_review flag. Prevents
   the "no descendants at all" message lying when descendants exist
   but all have empty assignees. Also added break after first review
   match for early termination.

3. Opt-out rename: x_no_review_needed → x_umbrella_no_review across
   gate messages, kanban_db opt-out validation, accepted_opt_outs
   audit entry, and tests. Avoids future collision with
   x_no_reviewer_fields (reviewer-field opt-out).

Plus 8 new unit tests covering the scope tightening (friday/tony
skipped, empty-assignee skipped, pepper/banner in scope, case-
insensitive matching) and edge cases the reviewer flagged
(blocked-status review counts, deep transitive review, multi-children
multi-reviews).

Module docstring updated: was "Three gates ship today (Tranche 1
of v6.7)" — now reflects the v6.7+v6.8 gate roster (5 gates,
closing 7 issues).

All 144 gate tests pass.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@jarvis-stark-ops jarvis-stark-ops merged commit 84ba8f6 into main Jun 11, 2026
@jarvis-stark-ops jarvis-stark-ops deleted the kaipo/v6.8-umbrella-keep-running branch June 11, 2026 20:19
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant