Context
Sub of Epic #11796 (active-peer quorum rule). Covers AC6 — the Tier-2 revalidation mechanism deferred from Discussion #11793 OQ5. The rule (Tier-2 substrate gets a revalidationTrigger when graduating under benched-family liveness gap) is locked in by Epic #11796 AC1; this sub picks + implements the mechanism.
Scope
Design + implement the mechanism that re-opens Tier-2 substrate changes for retroactive signal review when a benched family reactivates.
Option Space (from Discussion #11793 OQ5)
Pick one (or hybrid) and implement:
- (a) Retroactive-signal posting. When a benched family reactivates (
participationStatus flips operator_benched → active), that family scans Tier-2 graduations that proceeded during their bench and posts retroactive signals (APPROVED / DEFERRED / ABSTAIN) against each. Substrate impact: convention-only — no automated re-opening; depends on reactivated family's discipline.
- (b) Automated substrate re-open. A sweep-script identifies Tier-2 substrate changes that landed during a bench window + auto-re-opens them for a fresh signal cycle. Substrate impact: high — needs a workflow / scheduler / re-validation issue-state.
- (c) Sweep-script-notifies-only. A sweep-script identifies Tier-2 graduations during the bench + posts a notification (A2A or issue-comment) to the reactivated family; family then picks up via normal review discipline. Substrate impact: medium — needs the sweep script but no auto-re-open.
Recommended starting hypothesis
Option (c). Reasons:
- (a) is convention-only — too weak; the substrate doesn't enforce anything; relies on memory.
- (b) is too strong — auto-re-opening landed substrate can cause churn even when the reactivated family would have approved anyway; high-blast.
- (c) hits the middle: substrate provides a discoverable notification, but the actual re-validation work is human/peer-judgment-driven.
To be challenged in the implementation discussion.
Prescription (option-c-conditional)
- Sweep query: SQL/Memory-Core query that finds graduated Tier-2 issues (label / body marker +
Unresolved Liveness entry naming the now-reactivated family) within the bench since→reactivation_date window.
- Notification primitive: A2A broadcast OR comment-on-issue OR
manage_database write — pick the loudest-but-non-destructive surface. Recommendation: comment on each graduated issue with @<reactivated-family-identity> mention + cross-reference back to the graduation Discussion.
- Trigger: Hook into
participationStatus transition. Where? Options: (i) a participationStatus-watcher daemon lane (new), (ii) manual npm run script invoked by the operator when the field is updated, (iii) seedAgentIdentities post-transition hook.
- AC
revalidationTrigger reconciliation: When the reactivated family responds to the notification (APPROVED / DEFERRED / ABSTAIN posted), the graduated artifact's ## Unresolved Liveness entry transitions to "resolved" + the original revalidationTrigger AC is marked complete.
Acceptance Criteria
Out of Scope
- The §6 rule itself (sibling sub #11799).
identityRoots.mjs structured field (sibling sub).
- Automated
participationStatus-watcher daemon (deferred unless explicitly chosen in option-b / hybrid).
- Multi-family revalidation (only one family-reactivation at a time in MVP).
Sequencing
- Depends on sibling sub for
identityRoots.mjs structured field (need participationStatus to query).
- Independent of #11799 prose changes; can land in parallel after the structured-field sub.
Related
Context
Sub of Epic #11796 (active-peer quorum rule). Covers AC6 — the Tier-2 revalidation mechanism deferred from Discussion #11793 OQ5. The rule (Tier-2 substrate gets a
revalidationTriggerwhen graduating under benched-family liveness gap) is locked in by Epic #11796 AC1; this sub picks + implements the mechanism.Scope
Design + implement the mechanism that re-opens Tier-2 substrate changes for retroactive signal review when a benched family reactivates.
Option Space (from Discussion #11793 OQ5)
Pick one (or hybrid) and implement:
participationStatusflipsoperator_benched→active), that family scans Tier-2 graduations that proceeded during their bench and posts retroactive signals (APPROVED / DEFERRED / ABSTAIN) against each. Substrate impact: convention-only — no automated re-opening; depends on reactivated family's discipline.Recommended starting hypothesis
Option (c). Reasons:
To be challenged in the implementation discussion.
Prescription (option-c-conditional)
Unresolved Livenessentry naming the now-reactivated family) within the benchsince→reactivation_datewindow.manage_databasewrite — pick the loudest-but-non-destructive surface. Recommendation: comment on each graduated issue with@<reactivated-family-identity>mention + cross-reference back to the graduation Discussion.participationStatustransition. Where? Options: (i) aparticipationStatus-watcher daemon lane (new), (ii) manualnpm runscript invoked by the operator when the field is updated, (iii)seedAgentIdentitiespost-transition hook.revalidationTriggerreconciliation: When the reactivated family responds to the notification (APPROVED / DEFERRED / ABSTAIN posted), the graduated artifact's## Unresolved Livenessentry transitions to "resolved" + the originalrevalidationTriggerAC is marked complete.Acceptance Criteria
participationStatustransitionoperator_benched/temporarily_unreachable→activeinvokes the sweep (manually-invoked CLI script acceptable as MVP).learn/agentos/documenting how to invoke the revalidation sweep when a family reactivates.ideation-sandbox-workflow.md §6.5updated with the chosen mechanism's name + invocation path so future Tier-2 graduations know what to expect.Out of Scope
identityRoots.mjsstructured field (sibling sub).participationStatus-watcher daemon (deferred unless explicitly chosen in option-b / hybrid).Sequencing
identityRoots.mjsstructured field (needparticipationStatusto query).Related
[DEFERRED_WITH_TIMELINE]].reactivationTriggershape): discussioncomment-17027159.