Skip to content

v0.25.0 — Sentinel field-feedback release #3

Latest

Choose a tag to compare

@pedrofuentes pedrofuentes released this 17 Jul 01:15
f5fbbe3

Sentinel field-feedback release #3 — proposals from a downstream operator (~30 reviews over 7 rounds, incl. a 5-cycle reject/fix saga), each verified against the cited contract text before acceptance (per AGENTS.md §Evaluating Downstream Agent Feedback); one accepted item was codified tighter than asked. Ruleset stays v1, rubric stays v1 — the report protocol (Status: line, Required action mapping, verdict semantics, severity tiers) is unchanged; the Recurrence: header line is additive. SENTINEL.md budget raised 180 → 182 non-blank lines (182/182 used; §Compression's raise-don't-compress rule). template/AGENTS.md unchanged at 135/135 (REJECTED row extended in place).

Added

  • Turn-completion gate + synchronous re-dispatch (SENTINEL.md §On failure + closing block + a reminder in the Phase 2 dispatch step itself, where attention actually is mid-review): a Sentinel turn may end ONLY with the full report (first line Status:) — never a progress note or "waiting on dimension X"; a background sub-agent result that hasn't arrived / can't be collected at finalization IS a dispatch failure → re-dispatch that dimension synchronously once, then the existing retry → ❌ → degraded-with-proof ladder. The dispatch-step reminder and a synchronous-dispatch fallback ("if the platform cannot guarantee in-turn collection of background results, issue the same single-message dispatch synchronously") were added after this release's own eval runs reproduced the progress-note ending with the gate present only in the closing block — on turn-scheduled platforms, parallel synchronous dispatch keeps the wall-clock parallelism and never strands a review mid-turn. Codified deliberately tighter than the operator's "re-derive the dimension yourself" (self-derivation is degraded mode requiring user approval; synchronous re-dispatch preserves the sub-agent requirement). Field evidence: sessions routinely ended on progress notes (1–3 nudges per review) and stalled on background results that had landed in the wrong context.
  • Finding-class recurrence flag (SENTINEL.md §Re-review): a re-review 🔴 of the same mechanism family as a prior-cycle 🔴 (2nd+ occurrence across Report IDs) forces a Recurrence: <class> × cycle <N> line under Required action, recommending a change of approach over another instance patch. Invoker side (template AGENTS.md §After Sentinel, REJECTED row): a Recurrence: line = "same problem, 2+ failed attempts" → spawn the §When Stuck research sub-agent instead of retrying a variant fix. Field evidence: a logger-sanitizer saga took ~5 cycles of correct instance-level rejections with no class-level signal.
  • Eval fixture 15-recurrence-flag.md (Lane-2 re-review: two prior same-class A2 🔴s + a third separator-blocklist bypass → REJECTED with the Recurrence: line; also extends A2 coverage) + RUNNER.md Lane-2 note that a progress-note turn ending is a protocol failure (the turn gate's observable half — background-dispatch latency itself is not simulatable in the static harness).

Changed

  • Phase 3 🟡 exclusion widened from "missing CHANGELOG" to CHANGELOG defects generally (missing / malformed / garbled entries — always 🟢, never 🟡, unless the entry misdocuments security-relevant behavior); SEVERITY-RUBRIC golden row and fixture 08's citation aligned. Field evidence: a full CONDITIONAL file-issues ceremony over a 2-line garbled CHANGELOG entry. (dim-f-documentation.md intentionally untouched — F is an uncovered dimension and the orchestrator's Phase 3 exclusion is the operative calibration layer, per fixture 08's own note.)

Rejected (with reasoning, per §Evaluating Downstream Agent Feedback)

  • Tier-2 security-path trigger narrowed to "diff changes a security codepath": same content-based security-skip class already deferred in issue #14 — comment-only changes to security files can still alter security tooling (e.g., adding a lint-suppression comment), and commit-type selective dispatch already gives the relief (docs→F only). Second field report recorded on #14; stays deferred.
  • "Re-derive the dimension yourself" for lost background results: adopted as synchronous re-dispatch instead (see Added) — self-derivation is degraded mode and would quietly waive the sub-agent requirement.
  • Raising the materiality floor for non-security polish: corroborates deferred issue #37 (🟡/🟢 inflow volume), which stays deferred pending backlog-hygiene sweep data; the CHANGELOG-defect exclusion above removes the one observed spurious-CONDITIONAL source. Second field report recorded on #37.
  • Sub-agent result misrouting / session deaths as ruleset defects: platform issues, as the operator noted; the turn-completion gate is the ruleset-side mitigation (a stall becomes a dispatch failure with a defined ladder instead of a hung turn).