Repository navigation
Conversation
CIRCADIAN-SPEC WP1 with the Revisions applied (R2, R3, R5, R7, R11): - z0int.human_posture: pure evaluate_human_state / policy / route / gate. Owner-day anchors from activity (proxy), the wearable (measured, only when fresh) or the clock (default). Real-time sleep rule and owner-day rollover after a night with no gap. Phases follow absolute instants, so a DST night is continuous (C17). Readiness always selects the normal row (R5). Canonical JSON (C4). Defaults are SYNTHETIC; real anchors are private host config only (R4). - bend/circadian: the notice gate in Bend 2 with 8 laws (C2, C3, C5+R2, C10, C14, day decisions) proven by generated case analysis; the compiled truth table equals the Python gate on all 1024 inputs. - z0int.circadian: read-only adapters (ActivityWatch, phone usagestats, NOOP DB copy), circadiand tick loop + loopback GET /posture, the `circadian` CLI (route/done/undone/release/replay/show), and the R2 release rule. Only quiet-phase holding is enforced; day batching and capture are shadow (C12, R2b). Owner days in shadowDates enforce nothing. - deploy/circadian: user unit, installer with previous-release rollback and a fail-open guard for host notify scripts. - SYNTHETIC golden fixtures shared with the dash TypeScript twin, red/green law tests, a hypothesis property test, an AST purity lint and an AST mutation runner (target >= 85). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…313/313 killed Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Mutation receipt ( 🤖 Generated with Claude Code |
|
N27-REV-Z0I-244 Review scope: Acceptance map (source:line)
Correctness findings / minimal fixes
Missing targeted regression tests (exact proposed names)
Cross-PR / exact-head evidence
Reproduce (NOT RUN — ChatGPT cannot execute code here): uv run --no-project --with pytest --with hypothesis python -m pytest -q tests/test_human_posture.py tests/test_circadian_service.py
(cd bend/circadian && bend PROOF.bend)
pytest -q tests/test_human_posture.py -k bend
python3 scripts/circadian_mutation.py --jobs 4
python3 scripts/gen_circadian_proof.py
python3 scripts/gen_human_posture_fixtures.py
pytest -q tests/test_circadian_service.py tests/test_human_posture.pyThe proposed new test names must be implemented before running them; installer/guard integration checks require isolated synthetic scripts, not live notification services. Verdict: NEEDS-FIX — fail-open notification and duplicate-release risks plus missing shadow-before-enforcement gate are blocking, independent of the current failing exact-head CI. No approval, merge, new branch or code change performed. |
What
CIRCADIAN-SPEC WP1 (Python twin + host service) with the Revisions applied.
src/z0int/human_posture.py: pureevaluate_human_state,policy,route,gate. Fallback ladder wearable (measured, only when fresh) -> activity (proxy) -> clock (default); a no-data night is never scored (R3). Real-time sleep rule and owner-day rollover after a night with no gap (R2). Phases use absolute instants, so a DST night is continuous (C17). Readiness always the normal row (R5). Canonical JSON (C4). Defaults are SYNTHETIC; real anchors live only in private host config (R4).bend/circadian/: the notice gate in Bend 2 with 8 laws (C2, C3, C5 + R2 opt-in, C10, C14, day decisions).PROOF.bendis generated full case analysis;bend PROOF.bend-> ALL PROOFS CHECK. The compiled truth table equals the Python gate on all 1024 inputs.src/z0int/circadian/: read-only adapters (ActivityWatch, phonedumpsys usagestatsscreen on/off, NOOP DB copy),circadiandtick loop + loopbackGET /posture,circadianCLI (route,done,undone,release,replay,show). Only quiet-phase holding is enforced; day batching and capture are shadow (C12, R2b). Owner days inshadowDatesenforce nothing.deploy/circadian/: user unit (MemoryMax 128M, CPUQuota 10%), installer that keeps the previous release and writescircadian-rollback, and the fail-open guard for host notify scripts.Tests
The SYNTHETIC golden fixtures are shared with the dash TypeScript twin (kvnloo/dash
turbo/circadian-wp1); both compare canonical JSON byte for byte. A 30-day shadow replay ran on the host before enforcement (R11); its receipt stays private.🤖 Generated with Claude Code