mod: Ext 13 — SLA sweep over pending lifecycle cases, 307/307
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 6m28s
Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 6m28s
Composes lifecycle (Phase 3) with time (Ext 12): a timed-case pairs a case with its state-entry tick; mod/overdue? flags pending cases (open/triaged/appealed) past a deadline; mod/sla-sweep returns the breached report ids. Terminal states never breach. Pure overlay — lifecycle stays timeless, caller stamps entry. +15 tests. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,7 @@ federation extension.
|
||||
|
||||
## Status (rolling)
|
||||
|
||||
`bash lib/mod/conformance.sh` → **292/292** (roadmap + 12 extensions complete)
|
||||
`bash lib/mod/conformance.sh` → **307/307** (roadmap + 13 extensions complete)
|
||||
|
||||
## Ground rules
|
||||
|
||||
@@ -147,6 +147,11 @@ lib/mod/fed.sx
|
||||
derivation goal-by-goal with `[proved]`/`[unproved]` marks and unification
|
||||
bindings. E.g. `Report rc: escalate (rule: repeated-escalate)` … `[proved]
|
||||
report(rc, B, S), report_count(S, N), N >= 3 {B=ann, N=3, S=dave}`.
|
||||
- [x] **Ext 13 — SLA sweep over pending cases** (`lib/mod/sla.sx`, +15). Composes
|
||||
lifecycle (Phase 3) with time (Ext 12): a timed-case pairs a case with the tick
|
||||
it entered its state; `mod/overdue?` flags pending cases (open/triaged/appealed)
|
||||
past a deadline; `mod/sla-sweep` returns the breached report ids. Terminal states
|
||||
never breach. Pure overlay — lifecycle stays timeless, the caller stamps entry.
|
||||
- [x] **Ext 12 — temporal burst detection** (`lib/mod/temporal.sx`, +15). Reports
|
||||
gain an `:at` tick (deterministic, supplied — never clock-read).
|
||||
`mod/decide-temporal now window` counts reports about the subject within
|
||||
@@ -202,6 +207,11 @@ lib/mod/fed.sx
|
||||
|
||||
## Progress log
|
||||
|
||||
- **Ext 13 — SLA sweep, 307/307** (+15). Two subsystems compose cleanly: lifecycle
|
||||
states + temporal ticks → "which pending cases have sat too long". Kept lifecycle
|
||||
pure by having the SLA layer carry entry-time externally (timed-case wrapper)
|
||||
rather than stamping the case — same separation-of-concerns as keeping the state
|
||||
machine out of Prolog.
|
||||
- **Ext 12 — temporal burst detection, 292/292** (+15). Adds the time dimension:
|
||||
a windowed count distinguishes a burst from slow accumulation, where the plain
|
||||
count rule cannot. Time is a supplied tick (`:at`), keeping everything
|
||||
|
||||
Reference in New Issue
Block a user