Public update notes
What changed, what is still open, and where reviewers should look next.
This page is the public change narrative for the DBaD ethics-engine review surface.
Use it with the current-state page, fixture suite, trace pages, and API docs. Older prompts and screenshots remain archive history, not the current proof surface.
Validation artifacts are point-in-time evidence only; they are not authorization for trust-positive use.
Latest public baseline
Latest update
2026-06-01 - Post-Round 56 local hardening and public-page projection guard
Current public state in one place: DBaD proof artifacts remain evidence only, not authorization; red-team harnesses now cover proof-bundle scope, token integrity, evidence-code correlation, checked-rule evidence binding, stored-state evidence binding, structured-reliance evidence binding, linked trace-fleet and explanatory-page cross-client projection drift, API/OpenAPI drift, canonical OpenAPI freshness headers, and DBaD OpenAPI contract depth; and the review pages have been cleaned up so humans can verify the current baseline without fighting the layout.
What changed
Short version first. The dated archive below keeps the longer history.
- DBAD-PUB-844 expanded the projection guard beyond trace pages into older public explanatory/demo pages. The fuzzer now checks
/examples,/v2-2-demo,/decencymeter/demo,/faq,/glossary,/methodology,/whitepaper,/explained,/why-dbad-exists, and/trust-flowfor cropable raw proof language such asis_valid = true,Allowed actions =, raw continuation-machine enum text, and old standalone valid/allowed/approved framing. The cleaned pages now render those concepts as structural evidence, submitted machine inputs, or non-authorization examples; the final live run coveredchecked=15566 failures=0. - DBAD-PUB-845 incorporated the strongest Round56 follow-up ideas. Visible positive checked-rule rows now start with
NOT AUTHORIZATIONinstead of putting the non-authority boundary after the pass-shaped word, and composite proof bundles now sign compact OpenAPI contract samples for both canonical DBaD/DecencyMeter OpenAPI hosts, including response headers and body digests. - DBAD-PUB-846 hardened peer freshness at the discovery layer. Ethics-host API-doc discovery JSON now emits the same proof freshness headers as other DBaD evidence routes, and
audit_public_api_docs_discovery_schema.pyfails if/api/docs/index.json,/api/docs/ethics.json, or/api/docs/ethics?format=jsonloseX-DBaD-Cache-Status: freshor the no-store cache contract. - DBAD-PUB-843 expanded the cross-client projection guard from a few representative traces to the linked public trace fleet. The fuzzer now discovers trace links from
/dbad/tracesand/dbad-ethics-817, scans up to 80 linked trace pages, and the latest live run covered 71 trace detail pages withchecked=14831 failures=0. Trace detail pages now render runtime-validation-overlaid content, compute operator guidance from that overlay, display trace IDs/refs as non-authorization trace-reference evidence labels, and sanitize historical stored guidance phrases that previously contained standalone allowed/approved/valid-shaped words. - DBAD-PUB-842 closed the first findings from the stronger cross-client display fuzzer. The canonical trace no longer shows cropable "approved continuation" advisory text, the reset fixture scenario uses reset-boundary evidence wording, and operator form status lines no longer print trace-specific mutation URLs that can carry approval-shaped fixture IDs.
- DBAD-PUB-841 made the latest trace-detail display cleanup executable. The cross-client projection fuzzer now checks the canonical broken trace and reset-boundary fixture in addition to the requested trace for raw visible boolean rows, raw continuation enum text, reset-boundary raw snippets, and stale pass/allowed trace phrases.
- DBAD-PUB-840 closed a trace-detail visible-boolean crop gap. The server-rendered validation block and the client-side "Validate this trace" refresh path no longer print raw
true/falserows for authority, reset, reliance, coverage, or trust-positive-use metadata; visible rows use non-authorization evidence wording instead. - DBAD-PUB-839 closed the next public-surface enum/example hygiene gap. Public docs and fixture proof tables no longer show reset-boundary or continue-after-review machine enum values as clean standalone evidence; they describe those values as submitted machine inputs or reset-boundary evidence, while served API/copy outputs remain value-bound as
NOT_AUTH::not_authorization_...evidence. - DBAD-PUB-838 closed the next local extraction gap in nested validation summaries.
trust_continuity_confidenceandescalation_closure_dispositionnow bind as non-authorization status evidence instead of exposing reset-restoration or escalation-approval words as standalone values; the status audit and cross-client projection fuzzer now check those paths. - DBAD-PUB-837 tightened public example hygiene after a local grep pass. Public proof pages and the staged Round56 prompt no longer present legacy raw-positive examples such as validation booleans or root transport success as clean standalone snippets; old shapes are described as formerly raw/non-compliant, and current examples use the
NOT_AUTH::not_authorization_...evidence shape. - Public-page readability pass: this update page now leads with a concise latest summary, while the full dated archive remains below. The ethics API docs now use contained, horizontally scrollable code blocks instead of page-breaking snippets.
- DBAD-PUB-836 closed a second local extraction gap in invariant/reset evidence. Public trace API/copy payloads now value-bind
status_field_invariant_verified,prose_reliance_not_machine_verified, andzero_trust_reset_stateas non-authorization evidence instead of baretrueor rawapproved. The status, boolean, and cross-client fuzzers now check these paths, and an extra peer-style JSON extractor found zero permission-shaped values across representative trace APIs and the compliance snapshot. - DBAD-PUB-835 closed a companion extraction gap in structured reliance evidence. Public trace API/copy payloads and composite proof-bundle samples now value-bind
reliance_declaration_mode,reliance_mode,reliance_scope,reliance_contribution_to_outcome,reliance_declaration_complete,reliance_set_integrity,trace_reliance_integrity, and reset-boundary booleans as non-authorization evidence instead of rawcomplete,machine_bound, or baretrue. The status, boolean, and cross-client fuzzers now check these paths. - DBAD-PUB-834 closed the next local extraction gap in stored trace state. Public trace API/copy payloads now value-bind stored state fields such as
state.effective_state,state.local_state,state_history[].effective_state, andhistorical_contamination.current_effective_stateasNOT_AUTH::not_authorization_status_evidence_for_...instead of rawallow/Allow. The status-field audit and cross-client fuzzers now check these paths. - DBAD-PUB-833 closed a crop/extraction gap in validation rule maps. Successful
current_validation.checked_rules.*values now project asNOT_AUTH::not_authorization_boolean_evidence_for_...instead of baretrue, while failed rules remainfalse. The status-field compliance audit now checks this explicitly. - DBAD-PUB-832 hardened the canonical OpenAPI proof surface.
https://decencymeter.com/api/v1/openapi.json,https://ethics.decencymeter.com/api/v1/openapi.json, and the compatibility Church OpenAPI URL now emitCache-Control: no-store, max-age=0, must-revalidate,Surrogate-Control: no-store,Pragma: no-cache,Expires: 0, andX-DBaD-Cache-Status: fresh.audit_dbad_openapi_host_canonical.pynow fails if those freshness headers disappear. - DBAD-PUB-830 expanded the standard public contract runner again.
run_ethics_public_contract_audit.pynow also runs API-doc live-route checks, targeted HTML/static health for the four main DBaD proof pages, and the template accessibility audit, so link, asset, and accessibility regressions fail the same pre-peer gate instead of living as separate manual checks. - DBAD-PUB-829 made the OpenAPI host checks part of the standard public contract runner.
run_ethics_public_contract_audit.pynow executes the API-doc discovery schema audit and the canonical OpenAPI host audit, so a pre-peer public contract pass fails if the docs discovery payload dropsopenapi_json=https://decencymeter.com/api/v1/openapi.jsonor drifts back toward the Church OpenAPI URL as canonical. - DBAD-PUB-828 made the OpenAPI host correction executable rather than just documented.
audit_dbad_openapi_host_canonical.pyverifies DecencyMeter and ethics OpenAPI URLs return tenant-correct DBaD/DecencyMeter contracts, the Church URL remains Church-labeled compatibility, and public DBaD pages do not point reviewers to the Church OpenAPI URL as canonical. The public docs JSON discovery payload now exposesopenapi_json=https://decencymeter.com/api/v1/openapi.json. - DBAD-PUB-827 moved the DBaD/DecencyMeter OpenAPI review surface off the Church FQDN.
https://decencymeter.com/api/v1/openapi.jsonandhttps://ethics.decencymeter.com/api/v1/openapi.jsonnow serve the API v1 OpenAPI contract, while the Church host remains compatibility-only for Church-specific clients while that scope remains active. DBaD contract-depth audits and docs now point to the DecencyMeter URL by default. - DBAD-PUB-826 closed the next API-depth gap: the served OpenAPI contract now carries DBaD-specific non-authorization envelope, trust-continuation, verifier, composite proof-bundle, and mutation schemas/examples. Critical DBaD operations are marked with
x-dbad-non-authorization-contract, document DBaD no-store response headers, avoid rootokexamples, and are checked byaudit_api_v1_dbad_openapi_contract.py. The composite red-team runner now includes this contract-depth audit. - API hardening pass: the strict
/api/v1OpenAPI coverage/drift audit is now enrichment-aware and passes withmissing_paths=0,missing_operations=0,path_coverage=100.00%, andoperation_coverage=100.00%. The enriched OpenAPI contract now documents the DBaD proof/validation/trust-continuation endpoints, public ethics intake/calculator/subscription endpoints, open-data sample, Church public lesson/hymn endpoints, member audio-library endpoints, and the remaining admin report exports. - Post-Round 54 local self-audit added explicit evidence companion names to trust-continuation responses.
/trust-continuation/checknow exposesallowed_evidenceandtrust_continuation_token_issued_evidencewith local authority/display/machine/human-readable companions;/trust-continuation/token/verifynow exposesallowed_evidence,token_valid_evidence, andhistorical_verification_attestation_available_evidence. These fields are still non-authorization evidence; the short-lived trust-continuation token remains the credential. - Round 55 response digestion preserved Copilot's useful hardening ideas as executable work rather than treating them as confirmed defects. The composite red-team runner now includes
fuzz_dbad_composite_proof_bundle_scope.pyfor signed-field and unsigned-shadow-field mutation, copied/delayed bundle replay, token-redaction, no-root-ok, and verifier failure echo-suppression checks; it also includesfuzz_dbad_trust_token_integrity.pyfor fresh token issuance, valid verification, immediate replay as evidence-only behavior, wrong intended use, tampered token, wrong trace context, wrong receipt, and historical-attestation-as-permission rejection. - The composite red-team runner now appends compact internal history to
/home/dbad/logs/dbad_redteam_history.jsonl, classifies failures by leakage class, and reports an explicitly internal-only regression posture score. That score is operational triage only; it is not DBaD authorization and not public proof of safety. - A working Authorization Non-Recoverability report package now exists at
/home/dbad/docs/DBaD_Authorization_Non_Recoverability_Report_2026-05-31.md. It frames the current implementation as adversarially tested evidence/authorization separation, not a formal proof and not an ethics/safety claim. - Additional local self-audit now covers evidence-code correlation and cross-client projection drift.
audit_dbad_evidence_code_correlation.pyrecords repeated/mixed-kind structural evidence-code groups as advisory exposure and fails on public decode hints or approval-shaped meaning near evidence codes.fuzz_dbad_cross_client_projection.pyprojects trace API JSON and trace-detail HTML into lossy extracted-value/text views and fails if approval-shaped terms appear without the non-authorization boundary. - Post-Round 54 local self-audit added
audit_dbad_shared_mutation_guards.pyand wired it intodbad_redteam_runner.py. The check snapshots the public ethics calculator, runs a DBaD evaluate request, then verifies the calculator's sharedweightsanddimension_labelswere not polluted by status-binding companions. - The LLM/crop fuzzer now simulates first-token windows, sliding eight-token crops, and prompt-injection-style stripping of
NOT_AUTH::not_authorization_*_evidence_for_prefixes. That stronger fuzzer found cropable source language in status semantics and validation summaries; the served text now avoids positive-looking terminal phrases and usesDeterministic DBaD checks recorded no blocking violations...wording instead of bare pass-shaped validation summaries. - Post-Round 54 local self-audit also added
GET /api/v1/dbad/composite-proof-bundle, a signed, cache-bustable, no-store public proof bundle for peers whose tools cannot fetch several live endpoints. It includes current status-snapshot, trace API, trust-continuation check, and token-verification samples with response headers and adbad_cpb_v1...signature. Tokens and historical attestations are redacted, andPOST /api/v1/dbad/composite-proof-bundle/verifyverifies the signature while still returning non-authority evidence only. - Trace-detail validation/state/proof blocks now carry a subtle repeated visual crop marker,
DBaD EVIDENCE ONLY - NOT AUTHORIZATION, in screen and print CSS. The marker is non-selectable, low contrast enough to preserve readability, and exists only to make cropped screenshots harder to detach from the non-authorization boundary. - Pre-Round 53 local trust-path self-audit found that a valid trust-continuation check still returned cropable raw positive response booleans at the root, under
data.allowed, and under historical-attestation availability. Check/verify response bodies now omit rootok, bind positive response booleans asNOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-..., and keep the trust-continuation token itself as the credential. The focused status-field audit now performs fresh trust-continuation check and token-verify probes. - Post-hardening documentation scan found and corrected an outdated API-doc client snippet that still used a raw-true comparison for token verification. The snippet now treats
allowed,token_verification_status, andcurrent_validation.is_validas bound evidence strings and gates certified use on HTTP 200 token verification, empty failure states, intended use, and matching non-authority metadata. - Post-hardening display scan found one remaining human-visible trace-detail metadata row,
representation_compliant: true, even though API/copy JSON already exposedrepresentation_compliant=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-.... Trace detail now rendersrepresentation_compliant evidencewith the display-safeNOT AUTHORIZATION - boolean evidence: structural-evidence-code-v2-... - not permissionvalue, and the fuzz harness fails if the raw row returns. - Pre-Round 52 local self-audit found a remaining public API envelope gap outside the read-only proof path: DBaD trace mutation endpoints still returned root
okand raw stored trace fragments on write/error responses. Trace mutation APIs now use the same non-authority envelope contract as public proof APIs: no rootok, value-boundapi_transaction_status,mutation_result=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...on success,mutation_success_authoritative_for_trust_positive_use=false, and runtime-validation-overlaid trace payloads. The status-field audit now probes mutation error and success responses directly. - Pre-Round 51 local self-audit found the next likely extraction issue before peer review: public trace JSON still exposed raw positive validation booleans on validation, nested reliance-summary, and reset-approval paths. Public payload binding now projects those positive booleans as
NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-...with local*_authority_binding,*_display_safe=false,*_machine_only=true, and*_human_readable=NOT AUTHORIZATION - boolean evidence: structural-evidence-code-v2-... - not permissioncompanions. False blocking booleans remain false so failure checks and rejection semantics stay clear. - Round 54 response digestion preserved the useful peer ideas as executable harnesses:
fuzz_dbad_boolean_authority_leakage.pychecks that sensitive boolean-like fields cannot collapse to raw approval booleans,fuzz_dbad_llm_boolean_simulator.pychecks lossy text/summary views for authorization collapse, anddbad_redteam_runner.pyruns the composite status, fuzz, boolean, semantic-collapse, and prose-reliance checks in one command. - Round 49 response digestion accepted the only live API gap: nested verification outcome fields such as
verification_posture.latest_outcomeandverification_history[].outcomenow useNOT_AUTH::not_authorization_outcome_evidence_for_structural-evidence-code-v2-...values and local*_authority_binding=not_authorization_token_boundplus*_human_readable=NOT AUTHORIZATION - status evidence: structural-evidence-code-v2-... - not permissioncompanions. Quoteable representation fields now also carry local companions:representation_class_authority_binding,representation_class_human_readable,representation_compliant_authority_binding, andrepresentation_compliant_human_readable. The served marker isserved_hardening_round=round53_trust_response_evidence_binding_v1, and the fuzz/status audits now check these paths directly. - Pre-Round 49 local hardening closed a fresh self-scan gap where trace index/detail rows still rendered
Trust inheritance: Current validation passed; fresh trust-continuation check requiredas a cropable phrase. The visible rows now sayTrust inheritance evidenceand lead withNOT AUTHORIZATION; API-facingtrust_inheritance_result.labelvalues for pass/reset/reliance/non-governing/blocked cases now also start with explicit non-authorization wording. The detail page lower cards now render outcome, completeness, verification history, escalation closure, state history, and selected validation metadata as display-safe evidence values, and operator form option labels say evidence-only/not-authorization while preserving the submitted machine values. - Round 48 response digestion closed the remaining cropable trace-index summary/state gaps. The trace index now renders
Current runtime validation evidencewith the sameNOT AUTHORIZATION - structural validation evidence: structural-evidence-code-v2-... - not permissionvalue used elsewhere, and stored effective-state rows now render asStored effective-state evidencewith display-safe evidence values instead ofallow/Allow. Trace detail state-layer rows now renderLocal/Systemic/Effective state evidencewithNOT AUTHORIZATIONvalues, print CSS keeps these labels/values together, and the Round 47 fuzz harness now fails raw runtime/state labels as well as metadata-label regressions. - The status-field compliance snapshot now value-binds
data.sample_status_fields.validation_outcome_classwithNOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...and emits the local display-safety companions, removing the last barestructural_passsample from the public proof endpoint. - Round 47 response digestion found no confirmed live API/status-code defect. The only fresh actionable presentation concern was crop safety around trace metadata rows, so the trace index labels review, expected, outcome, completeness, and closure rows as evidence, marks blind-spot counts as not authorization, and labels review filters as navigation aids. The Round 47 fuzz harness fetches trace detail and trace index HTML and fails if those rows regress to raw
Review status:,Expected:,Outcome:,Completeness:, orClosure:labels. - Round 46 response digestion closed the remaining reversibility gap in the status evidence code. Status/class/boolean/outcome evidence now uses deterministic hash-based
structural-evidence-code-v2-...values rather than base64 or literal semantic suffixes. The verifier can recognize bounded known-code meanings for compliance checks, but field-level extraction, delimiter splitting, and base64 decoding no longer recover clean words such aspassed,verified,complete, ortrue. - Round 41 response hardening removed the remaining approval-shaped verifier/envelope shortcuts. DBaD non-authorization endpoints now omit root
ok, exposeok_removed_for_authorization_safety=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-..., bind verifier classes asNOT_AUTH::not_authorization_class_evidence_for_..., bind verifier true values asNOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-..., exposestatus_value_semanticsplusstatus_prefix_stripping_forbidden=true, and report secondary binding failures asmissing_secondary_status_binding=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-.... A new public snapshot at/api/v1/dbad/status-field-compliance-snapshotgives cold-start reviewers a cache-bustable proof surface for the current status-field invariant. - Round 42 response digestion added a focused reproducibility path for peers whose web tools cannot fetch full live payloads:
python3 app/scripts/audit_dbad_status_field_compliance.py --base-url https://ethics.decencymeter.com. The script fetches the status-field compliance snapshot with cache-busting, walks the prose-reliance trace API for status-keyed strings, verifies copied safe citation and archival projection artifacts, confirms verifier responses omit rootokand do not echo full payloads, and checks bare-status plus representation-mutation rejection. The public contract now clarifies that status-keyed boolean/class evidence may use typed non-authorization prefixes such asNOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-...andNOT_AUTH::not_authorization_class_evidence_for_..., but never bare approval-shaped strings. - Round 44 response digestion accepted the cache-layer concern as a concrete hardening item. DBaD API routes under
/api/v1/dbad/now forceCache-Control: no-store, max-age=0, must-revalidate,Surrogate-Control: no-store,Pragma: no-cache,Expires: 0, andX-DBaD-Cache-Status: fresh. The status-field compliance audit now verifies those headers on DBaD API responses, in addition to the no-root-okand status-value binding checks. API docs also warn client frameworks not to synthesize a rootokor authorization boolean from HTTP200or object-hydration helpers. - The Round 41 artifact pass also binds quoteable representation evidence: safe citations now expose
representation_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-...andrepresentation_compliant=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-..., while archival projections exposerepresentation_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-.... The public proof text continues to list machine-only markers such ashuman_readable_bundle_fingerprint_machine_onlyand transaction status examples includingevaluation_payload_delivered_not_authorization,validation_payload_delivered_not_authorization,safe_citation_verification_delivered_not_authorization, andhistorical_attestation_verification_delivered_not_authorization. - The public entry pages were refreshed after the Round 34 value-bound hardening pass: Why DBaD exists now points readers to the current baseline, update notes, API docs, point-in-time evidence boundary, fresh trust-continuation requirement, and DecencyMeter advisory-only separation; DBaD Explained was also layout-hardened for desktop and mobile.
- Validation receipts now expose
operator_env_version,operator_env_state_hash,operator_env_id,operator_env_scope,operator_env_authority_level, andtrace_validation_version. - Structured reliance now exposes
depends_on_reliance_trace_refs,reliance_validation_versions, andreliance_snapshot_hash. - Prose-only reliance now exposes display-safe
current_validation_status_human_readable=NOT AUTHORIZATION - validation evidence: structural-evidence-code-v2-... - not permission,validation_class=advisory_only_prose,reliance_contribution_to_outcome=NOT_AUTH::not_authorization_outcome_evidence_for_..., and the semantic status namepassed_no_valid_reliance_appliedis available only through value-bound, machine-only evidence fields. The trace headline saysNOT AUTHORIZATION - Structural Validation Evidence (No Machine Reliance Applied). The exposed raw status fields and comparison token fields are all value-bound, for examplecurrent_validation_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,validation_status_class=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,validation_outcome_class=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,current_validation_status_token=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,validation_status_class_token=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-..., andvalidation_outcome_class_token=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...; token fields also carry token-specific authority binding, machine-only, and non-display-safe companions. - Validation JSON now exposes
raw_status_fields_display_safe=false,raw_status_fields_machine_only=true,current_validation_status_machine_only=true,validation_status_class_machine_only=true,validation_outcome_class_machine_only=true,current_validation_status_value_authority_binding=not_authorization_value_bound,validation_status_class_value_authority_binding=not_authorization_value_bound,validation_outcome_class_value_authority_binding=not_authorization_value_bound, token companions such ascurrent_validation_status_token_authority_binding=not_authorization_token_bound,current_validation_status_token_display_safe=false,current_validation_status_token_machine_only=true,validation_status_class_token_authority_binding=not_authorization_token_bound,validation_status_class_token_display_safe=false,validation_status_class_token_machine_only=true,validation_outcome_class_token_authority_binding=not_authorization_token_bound,validation_outcome_class_token_display_safe=false,validation_outcome_class_token_machine_only=true, group fieldstoken_fields_display_safe=false,token_fields_machine_only=true,displaying_token_fields_is_non_compliant=true,displaying_raw_status_fields_is_non_compliant=true,preferred_display_fields,trust_positive_authorization=false,trust_authorization_class=not_authorized,approval_inference_forbidden=true,authorization_status_hard=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,non_authorization_core_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,headline_authority_binding=non_authorization_must_precede_outcome, display-safevalidation_outcome_class_human_readable=NOT AUTHORIZATION - structural validation evidence: structural-evidence-code-v2-... - not permission,minimum_safe_fields,required_bundled_fields,bundled_semantic_fields,bundling_hash,bundling_scope=full_validation_semantics_v2,human_readable_bundle_fingerprint_safe_display,served_hardening_round=round53_trust_response_evidence_binding_v1,status_field_invariant_verified=NOT_AUTH::not_authorization_boolean_evidence_for_...,status_human_readable_truncation_forbidden=true, explicit operator environment identity/scope/authority fields,provenance_class,safe_citation_v1_accepted=false, andrequires_trust_continuation_token_for_authorization=trueso clients do not treat legacy raw validation booleans, raw status fields, token fields, orpassed*status strings as permission. - Trust-continuation checks require
reliance_snapshot_hashwhen structured reliance dependencies exist. - Token verification can fail with
transitive_reliance_epoch_mismatchortrace_referenced_no_longer_available. - Successful token verification now exposes
valid_from_utcandvalid_until_utc, and emits an optional signedhistorical_verification_attestationfor audit/reporting only, with a signedNOT AUTHORIZATION - HISTORICAL EVIDENCE ONLYheader,attestation_class=historical_non_authoritative,authorization_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-..., andverification_result=historically_valid_non_authoritative. - Trace detail pages include Copy safe citation, a compact signed JSON artifact that bundles canonical query-free trace URL, status value semantics, the current hardening round, timestamp, freshness window, receipt ID, validation epoch,
trace_validation_version, operator environment identity/scope/authority/state hash,provenance_class, validation summary, violations/advisories, non-authority fields, safe display fields, and the fresh-token requirement. The verify endpoint checks tamper evidence but still returnsaccepted_as_authorization=false; submitted partial projections missing required fields returnverifier_response_class=NOT_AUTH::not_authorization_class_evidence_for_partial_non_compliant, altered semantic, temporal, receipt, rule-version, operator-environment, provenance, violation, advisory context, missing value binding, or missing token binding returnsverifier_response_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-..., and current-trace v2-to-v1 downgrades returnillegal_version_downgrade_detected. Copy archival projection remains compact archive metadata only; the semantic verifier class isarchival_projection_recognized, but the served value is bound as non-authorization class evidence. It verifies with HTTP422, no rootok,verifier_response_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-...,error=archival_projection_not_safe_citation, andarchival_projection_accepted_as_safe_citation=false; missing or reordered archival headlines return a boundcontext_mismatch_non_compliantverifier class. - Safe-citation verification now separates signature validity from compliance: a signed artifact missing required bundled fields can still report
safe_citation_signature_valid=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-..., but it omits rootok, returnsverifier_response_class=NOT_AUTH::not_authorization_class_evidence_for_partial_non_compliant, and returnssignature_and_authorization_class=NOT_AUTH::not_authorization_class_evidence_for_valid_signature_non_compliant_never_authoritative. - Round 27 response cleanup now binds the first visible trace-page signal to non-authorization: trace pages lead with
NOT AUTHORIZATION, renderheadline_authority_binding=non_authorization_must_precede_outcome, display operator environment identity/scope/authority plusprovenance_classin the first-screen authority banner, current bundle fingerprints begin withNOT_AUTH::, and current v2required_bundled_fieldsbindsheadline_authority_bindingplusprovenance_class. - Trace API responses now add root-level non-authority fields and omit root
ok:api_transaction_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,api_transport_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,api_delivery_outcome=NOT_AUTH::not_authorization_outcome_evidence_for_structural-evidence-code-v2-...,ok_removed_for_authorization_safety=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-...,ok_meaning=transport_only_not_authorization,ok_authoritative_for_trust_positive_use=false,api_envelope_ok_authoritative_for_trust_positive_use=false,trust_positive_authorization=false, andunsafe_if_ok_used_for_authorization=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-.... - Pre-Round 29 hardening originally added non-authority envelope fields; Round 41 supersedes the transport shortcut by removing root
okfrom DBaD non-authorization endpoints.POST /api/v1/dbad/evaluate,POST /api/v1/dbad/validate,POST /api/v1/dbad/safe-citation/verify, andPOST /api/v1/dbad/historical-verification-attestation/verifynow repeat bound transaction statuses,api_transport_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,ok_removed_for_authorization_safety=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-...,ok_meaning=transport_only_not_authorization,ok_authoritative_for_trust_positive_use=false,api_envelope_authorization_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-...,accepted_as_authorization=false, andunsafe_if_ok_used_for_authorization=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-.... Trace detail titles and social descriptions still start withNOT AUTHORIZATIONso link previews cannot quote a pass-shaped status without the boundary. - Round 32 response hardening closes the remaining visible fingerprint crop path. Trace Validation now exposes
current_validation_status_human_readable,validation_status_class_human_readable,validation_outcome_class_human_readable, andhuman_readable_bundle_fingerprint_safe_display; the rawhuman_readable_bundle_fingerprintremains in machine/copy artifacts for verification, but the visible trace page renders only the safe display projection so pass-shaped fragments cannot be cropped out of a long fingerprint line without adjacentNOT AUTHORIZATIONwording. - Round 35 response hardening closes the comparison-token re-exposure path: extracting only
current_validation_status_token,validation_status_class_token, andvalidation_outcome_class_tokenstill requires adjacent token-specific fields such as*_token_authority_binding=not_authorization_token_bound,*_token_display_safe=false, and*_token_machine_only=true. Safe-citation and archival-projection verifiers reject missing or altered token authority/display-safety binding ascontext_mismatch_non_compliant. - Round 37 compatibility closure removes the remaining v1 safe-citation acceptance window. full_validation_semantics_v1 is no longer accepted as a complete safe-citation scope; only
full_validation_semantics_v2can verify asNOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-.... This is intentionally breaking because there are no active external API consumers. - The Agents of Chaos comparison package now maps DBaD controls to the paper's observed agent failure families: non-owner compliance, destructive tool use, resource exhaustion, identity spoofing, cross-agent propagation, and false completion reports.
- Trace-detail navigation now defensively and recursively redirects same-host absolute URLs accidentally placed under
/dbad/traces/back to their canonical route, so malformed paths like/dbad/traces/https://ethics.decencymeter.com/agents-of-chaos-comparisonopen the comparison page instead of a dead trace URL. - Round 40 response hardening collapses the old companion-only path: every derived
*status*string value, including explicit token fields, must now start withNOT_AUTH::orNOT AUTHORIZATIONand must still carry*_machine_only=true,*_display_safe=false,*_authority_binding=not_authorization_token_bound, and*_human_readable=NOT AUTHORIZATION - status evidence: structural-evidence-code-v2-... - not permission; trace/validation JSON and submitted artifacts exposesecondary_status_fields_bound=true,secondary_status_binding_policy, andglobal_status_field_invariant=Every status field must be value-bound and companion-bound; no bare approval-shaped status token may appear.; verifiers reject submitted artifacts that drop value binding or companions withmissing_secondary_status_binding=true; API docs include a status field compliance linter for external renderers. - Verifier responses for legacy v1 safe citations now include
v1_citation_rejection_reason.rejection_code=legacy_bundle_version_rejected,rejection_policy_date=2026-05-29, and a policy URL to make the closure explicit for stored v1 artifacts. - The DecencyMeter public home page empty-wall card now reads as an intentional reviewed-content empty state instead of placeholder copy, and the wall link uses the site button treatment rather than a browser-default blue link.
- Round 31 response hardening makes the Trace Validation metadata rows crop-safe too: visible
current_validation_status,validation_status_class, andvalidation_outcome_classrows now render values such asNOT AUTHORIZATION - validation class evidence: structural-evidence-code-v2-... - not permission/NOT AUTHORIZATION - structural validation evidence: structural-evidence-code-v2-... - not permission. Print/PDF output also appends[NOT AUTHORIZATION - structural evidence only]to those metadata rows. The visible validation summary line beginsNOT AUTHORIZATION - Validation result:, each visible rule result renderspass - not authorizationorfail - not authorization, and archival projections add labeled status values so alternative YAML/XML-style serialization cannot preserve only a clean pass-shaped value without a companion non-authorization value. - Public API discovery now exposes predictable JSON aliases at
/api/docs/ethics.jsonand/api/docs/church.json, matching the existing?format=jsondiscovery payloads; the ethics robots policy explicitly allows/api/docs/ethics.json. - The DBaD public-surface update contract is now explicit and audited: DBaD ethics logic/API/code changes must account for
/updates,/current-state,/api/docs/ethics, and/dbad-ethics-817, plus running log, recovery file, task queue, and prompt/synthesis updates. The standard public contract audit bundle now also runs API-doc discovery, OpenAPI host, API-doc live-route, HTML/static health, template copy-payload, and template accessibility checks. - The latest pre-peer sweep passed public contract, stale-language consistency, prose-reliance contract, API docs live-route, internal-link, HTML/static health, security-header, template accessibility, canonical-link, API docs discovery schema, host-scoping, and desktop/mobile screenshot-smoke checks.
- API docs now include a historical-attestation quoteability example that distinguishes a valid non-authoritative citation from the invalid claim "DBaD approved this trace."
- Prose-only reliance now leads with an advisory runtime state and stays non-machine-verified.
- Copied/API JSON for prose-only reliance now uses display-safe
current_validation_status_human_readable=NOT AUTHORIZATION - validation evidence: structural-evidence-code-v2-... - not permissionin addition to the raw machine-only status token. - Successful reset-boundary and structured-reliance paths now use display-safe pass states such as
NOT AUTHORIZATION - validation evidence: structural-evidence-code-v2-... - not permissionandNOT AUTHORIZATION - validation evidence: structural-evidence-code-v2-... - not permission, so copied dependency summaries no longer need bare generic pass wording. - A repeatable prose-reliance contract audit now checks the trace API, trace page, hidden copy JSON payloads, and docs pages for the no-valid-reliance-applied contract.
Public proof links
Outstanding questions
- Signed historical verification attestations are implemented only as non-authoritative audit artifacts; they return
accepted_as_authorization=falseand are rejected as trust-positive authorization. - Persistent DB-backed token revocation and public introspection remain deferred until certified integrations or longer-lived tokens justify the operational plane.
- Signed first-use resource-continuity attestations and verifier quorum are still decision gates, not implemented guarantees.
Next peer-review focus
- After trace-index/detail trust-inheritance and lower-card hardening, can any cropped screenshot still preserve a pass-shaped result while dropping
NOT AUTHORIZATION, evidence-only wording, or operator-environment provenance? - Known-issue cleanup target for the next peer pass: challenge any remaining cross-environment, verifier-response, copied-artifact, API-envelope, lower-card, operator-control, or public-discoverability shape that could make archive, citation, attestation, or validation artifacts look like trust-positive authorization.
- Does the new
archival_minimal_non_authoritativeprojection class make compact archives useful without weakening complete safe citations? - Do reviewers find any remaining compatibility path that still permits a downgraded or partial artifact to verify as complete?
- Are historical attestations clearly useful as audit evidence without becoming static trust permission, even under partial extraction?
- Are token and reliance epoch failure states diagnostic enough for clients?
Recent Public Updates
- 2026-06-01: DBAD-PUB-844 explanatory-page projection hardening: older public pages such as
/examples,/v2-2-demo,/decencymeter/demo, FAQ, glossary, methodology, whitepaper, explained, why-DBaD-exists, and trust-flow are now part offuzz_dbad_cross_client_projection.py. Raw visible snippets likeis_valid = true,Allowed actions =, and standalone valid/allowed/approved examples fail the pre-peer guard. - 2026-06-01: DBAD-PUB-845 Round56 response hardening: trace-detail checked-rule display now renders
NOT AUTHORIZATION - pass - structural validation evidence onlyfor successful rules, and the composite proof bundle signature scope now includes compact OpenAPI contract samples for the ethics and DecencyMeter OpenAPI URLs. - 2026-06-01: DBAD-PUB-846 API-doc discovery freshness hardening: ethics-host discovery JSON now returns no-store/no-cache proof headers and
X-DBaD-Cache-Status: fresh; the discovery schema audit verifies those headers before another peer prompt is considered ready. - 2026-05-31: DBAD-PUB-832 OpenAPI freshness hardening: canonical DBaD/DecencyMeter OpenAPI responses now emit no-store/no-cache proof headers and
X-DBaD-Cache-Status: fresh; the canonical OpenAPI host audit fails if those headers regress. - 2026-05-31: DBAD-PUB-833 checked-rule evidence binding: successful
checked_rules.*values now emit typed non-authorization boolean evidence instead of baretrue; the status-field compliance audit fails if this regresses. - 2026-05-31: DBAD-PUB-834 stored-state evidence binding: public trace API/copy payloads now bind stored state and effective-state fields such as
state.effective_state,state.local_state, andstate_history[].effective_stateas non-authorization evidence instead of rawallow/Allow; status and cross-client projection fuzzers fail if these fields regress. - 2026-05-31: DBAD-PUB-835 structured-reliance evidence binding: reliance declaration mode, contribution, scope, completeness, integrity, and reset-boundary summary fields now bind as non-authorization evidence in trace APIs, trust-continuation responses, token verification, and composite proof-bundle samples.
- 2026-05-31: Pre-Round 53 local hardening: trust-continuation check/verify response bodies now omit root
okand bind positive response booleans such asallowedand attestation availability as typed non-authorization boolean evidence. The token remains the credential; the JSON boolean is not a standalone authorization artifact. - 2026-05-31: DBAD-PUB-830 public contract runner expansion:
run_ethics_public_contract_audit.pynow includesaudit_public_api_docs_live_routes.py,audit_html_health.py, andaudit_template_accessibility.pyin addition to the existing public contract, render/SEO, copy-payload, API-doc discovery, and OpenAPI host checks. - 2026-05-31: DBAD-PUB-829 public contract runner expansion:
run_ethics_public_contract_audit.pynow includesaudit_public_api_docs_discovery_schema.pyandaudit_dbad_openapi_host_canonical.py. The discovery audit now explicitly fails if the public docs JSON omits the DecencyMeter/ethics OpenAPI URLs or presents the Church OpenAPI URL as canonical for DBaD/DecencyMeter review. - 2026-05-31: DBAD-PUB-828 canonical OpenAPI host audit:
audit_dbad_openapi_host_canonical.pynow fails if the DecencyMeter/ethics OpenAPI routes disappear, if tenant titles/server URLs drift, or if public DBaD pages revert to Church OpenAPI as canonical. The composite runner now executes twelve component checks. - 2026-05-31: DBAD-PUB-827 canonical OpenAPI host correction: DBaD/DecencyMeter reviewers should use
https://decencymeter.com/api/v1/openapi.json. The same route is also available onhttps://ethics.decencymeter.com/api/v1/openapi.json; the Church host is compatibility-only, not the canonical DBaD/DecencyMeter API contract. - 2026-05-31: DBAD-PUB-826 OpenAPI contract-depth hardening: DBaD critical operations now carry dedicated OpenAPI schemas/examples, no-store response headers,
x-dbad-non-authorization-contractmarkers, and a served audit guard viaaudit_api_v1_dbad_openapi_contract.py. The composite runner now executes eleven component checks. - 2026-05-31: Round 54 response hardening added a composite red-team runner plus boolean authority leakage and LLM-style semantic-collapse fuzzers. Run
python3 app/scripts/dbad_redteam_runner.py --base-url https://ethics.decencymeter.com --timeout 20for the current one-command audit. - 2026-05-31: Post-Round 54 proof-bundle hardening added
/api/v1/dbad/composite-proof-bundlewith a signed timestamped sample of current DBaD response shapes, a non-authorizing/api/v1/dbad/composite-proof-bundle/verifysignature verifier, redacted token/attestation material, and subtle trace-detail proof watermarks for screenshot/crop resistance. - 2026-05-31: API-doc client snippets were rechecked after the trust-response change; no snippet should compare response evidence such as
allowedto rawtruefor authorization. - 2026-05-31: Trace detail display hardening: visible
representation_compliantmetadata now renders asrepresentation_compliant evidencewith the display-safe non-authorization boolean evidence string, not rawtrue. - 2026-05-31: Pre-Round 52 local hardening: DBaD trace mutation endpoints now use non-authority envelopes, omit root
ok, bindapi_transaction_statusandmutation_result, and return runtime-validation-overlaid trace payloads instead of raw stored trace fragments. - 2026-05-31: Pre-Round 51 local hardening: formerly raw positive validation booleans on validity, nested reliance summaries, reset approval evidence, and signature/compliance evidence are now value-bound as typed non-authorization boolean evidence with local companions. The status compliance snapshot includes a bound
sample_status_fields.is_valid, and the status/fuzz audits fail if these paths regress to baretrue. - 2026-05-30: Round 49 response hardening:
verification_posture.latest_outcomeandverification_history[].outcomeare now value-bound/companion-bound;representation_classandrepresentation_compliantretain typed non-authorization evidence values and now carry local authority/human-readable companions; the served hardening marker isround53_trust_response_evidence_binding_v1; the fuzz/status audits fail these fields if they regress. - 2026-05-30: Pre-Round 49 local crop hardening: trust-inheritance rows now render as
Trust inheritance evidencewith same-lineNOT AUTHORIZATION; API-facing trust-inheritance labels are non-authorizing; trace detail lower cards and operator form labels render historical status-like values as evidence-only/not-authorization; and the Round 47 fuzz harness fails if rawTrust inheritance:, raw current-status labels, or bare approved/declared-complete options return. - 2026-05-30: Round 46 irreversible evidence-code hardening: status/class/boolean/outcome evidence payloads now use deterministic non-reversible
structural-evidence-code-v2-...values; audit scripts reject legacy base64/literal semantic suffixes and continue to verify no-root-ok, no-store headers, payload suppression, and mutation rejection. - 2026-05-29: Round 40 all-status value-binding hardening: every status-like string value is self-negating with
NOT_AUTH::orNOT AUTHORIZATION, including explicit token fields and verifier response status fields. Companion fields remain mandatory supplements, not alternatives. Current served hardening marker:served_hardening_round=round53_trust_response_evidence_binding_v1. - 2026-05-29: Round 37 compatibility closure and Agents of Chaos package:
full_validation_semantics_v1no longer verifies as a complete safe citation, new artifacts remainfull_validation_semantics_v2only, and the new comparison report maps DBaD controls to the Agents of Chaos failure families. - 2026-05-29: Round 35 response hardening: exposed raw status fields carry value-level
NOT_AUTH::binding, legacy comparison values remain only in explicit*_tokenfields, every token field carries*_token_authority_binding=not_authorization_token_bound,*_token_display_safe=false, and*_token_machine_only=true, and verifier checks reject safe-citation/archive artifacts whose raw status or token bindings are missing. - 2026-05-26: Round 19 response hardening: prose-only reliance copied/API JSON now reports
validation_class=advisory_only_prose, validation artifacts exposetrust_positive_authorization=false, historical attestations carry a signedNOT AUTHORIZATION - HISTORICAL EVIDENCE ONLYheader, and a prose-reliance contract audit guards the public/API/copy surfaces. - 2026-05-27: Round 20 response hardening: safe citations now carry
citation_class=safe_non_authoritative, validation metadata exposestrust_authorization_class=not_authorized, and API docs explicitly reject rawvalidation_status_classpass tokens as authorization. - 2026-05-27: Round 21 queue hardening: safe citations now include a signed
safe_citation, stablesafe_citation_id, and read-only/api/v1/dbad/safe-citation/verifyendpoint that verifies tamper evidence while preservingaccepted_as_authorization=false. - 2026-05-27: Round 21 response hardening: validation metadata and safe citations now include irreducible non-authorization fields
authorization_status_hard=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...andnon_authorization_core_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...; trace pages render those fields next to display-safe validation status labels. - 2026-05-27: Round 22 response hardening: validation metadata and safe citations now include
minimum_safe_fields,required_bundled_fields, andbundling_hash; the safe-citation verifier reportsrepresentation_compliant=falsefor partial projections that omit required non-authorization fields. - 2026-05-27: Round 23 response hardening:
bundling_hashnow covers full validation semantics includingtrace_id,current_validation_status,validation_status_class,validation_class,validation_summary,authorization_status_hard, andnon_authorization_core_status; altered context now verifies ascontext_mismatch_non_compliant. - 2026-05-27: Round 24 response hardening:
bundling_scope=full_validation_semantics_v2now bindsvalidated_at_utc,validation_fresh_until_utc,validation_receipt_id,validation_epoch,violations, andadvisory_notes, and complete artifacts includehuman_readable_bundle_fingerprint. - 2026-05-27: Round 25 response hardening: v2 bundles now also bind
trace_validation_versionandoperator_env_state_hash; verifier rejects current-trace v2-to-v1 projection downgrades withillegal_version_downgrade_detected. - 2026-05-27: Round 26 queue hardening: validation metadata added display-safe validation outcome labels and the first explicit v1 signed-citation transition window; that transition window is now superseded by the 2026-05-29 v2-only safe-citation contract. Trace detail pages also added Copy archival projection, which verifies only as
archival_minimal_non_authoritative. - 2026-05-27: Known issue cleanup: archival projection verification became self-negating at the transport/envelope layer and returned
error=archival_projection_not_safe_citation. This historical entry is superseded by the Round 41 contract: current verifier responses omit rootokand bind verifier classes/boolean evidence withNOT_AUTH::not_authorization_*_evidence_for_.... - 2026-05-27: Round 26 response hardening introduced HTTP
422archival projection verification and requiredartifact_header=ARCHIVAL PROJECTION - NOT SAFE CITATION; v2 semantic bundles addedoperator_env_id,operator_env_scope, andoperator_env_authority_level. Current complete safe citations now returnverifier_response_class=NOT_AUTH::not_authorization_class_evidence_for_structural-evidence-code-v2-.... - 2026-05-28: Pre-peer public-surface audit: public contract, stale-language, prose-reliance, API-doc route, internal-link, HTML/static, security-header, template-accessibility, canonical-link, API-doc discovery, host-scoping, and desktop/mobile screenshot-smoke checks passed;
/api/docs/ethics.jsonand/api/docs/church.jsonare now predictable JSON discovery aliases. - 2026-05-28: Round 28 response digestion: trace subtitles now start with
NOT AUTHORIZATION, archival projections start with sort-stableaaa_not_authorization_headline=NOT AUTHORIZATION - ARCHIVAL PROJECTION - NOT SAFE CITATIONand duplicateheadline_authority_block=NOT AUTHORIZATION - ARCHIVAL PROJECTION - NOT SAFE CITATION, verify as context-mismatched if that first sentinel is missing or reordered, and trace API envelopes add root non-authority fields while preserving the standardokdelivery flag. - 2026-05-28: Round 29 response hardening: every DBaD non-authorization envelope now states
api_transport_status=NOT_AUTH::not_authorization_status_evidence_for_structural-evidence-code-v2-...,ok_meaning=transport_only_not_authorization, andunsafe_if_ok_used_for_authorization=NOT_AUTH::not_authorization_boolean_evidence_for_structural-evidence-code-v2-...; archival projections useaaa_not_authorization_headlineso the non-authorization warning remains first under sorted JSON serialization. - 2026-05-28: Public-surface update contract hardening: code/API/logic changes now require synchronized updates to
/updates,/current-state,/api/docs/ethics, and/dbad-ethics-817; the contract audit is part of the standard pre-peer public contract runner. - 2026-05-28: Pre-Round 29 gap closure: trace detail
<title>and meta descriptions now begin withNOT AUTHORIZATION, and non-authorization root envelope fields now cover DBaD evaluate, validate, safe-citation verify, and historical-attestation verify endpoints in addition to trace GET. - 2026-05-28: Round 32 response hardening: visible Trace Validation no longer renders the raw long
human_readable_bundle_fingerprintrow; it rendershuman_readable_bundle_fingerprint_safe_displayplus*_human_readablestatus values, while raw fingerprints remain available in machine/copy artifacts for verification. - 2026-05-28: Round 31 response hardening: trace validation summary, checked-rule rows, and visible status metadata rows now carry same-line non-authorization wording; archival projections include labeled status-value fields such as
validation_outcome_class_labeled, preventing croppedpassed/pass/structural_passchecklists or alternate serialization streams from being quoted as trust-positive permission. - 2026-05-28: Round 27 response digestion: trace detail pages now lead with
NOT AUTHORIZATION - structural validation evidence only, validation headings useNOT AUTHORIZATION - Structural Validation Evidence/ failed wording, first-screen provenance displaysoperator_env_id,operator_env_scope,operator_env_authority_level, andprovenance_class, current v2 semantic bundles bindheadline_authority_bindingandprovenance_class, and API docs now include a verifier response matrix plus the.data.current_validation.metadataAPI-envelope clarification. - 2026-05-26: Round 20 readiness: trace pages now expose Copy safe citation with canonical query-free
trace_url, API docs warn againstpassed*prefix authorization, and historical-attestation quoteability examples distinguish valid non-authoritative citations from invalid approval claims. - 2026-05-26: Round 17 response digestion added reliance epoch metadata, operator environment binding, unavailable-trace token failure behavior, and stronger prose-reliance presentation.
- 2026-05-26: Round 16 work clarified reliance completeness: partial structured reliance fails, governing reliance on non-governing analysis fails, and prose references are advisory only.
- 2026-05-25 to 2026-05-26: Public fixture coverage expanded for lineage propagation, same-resource orphan handling, zero-trust reset boundaries, non-governing analysis, reset descendants, and rejected reset cases.
- 2026-05-25: Current-state, trace-consumption, and DecencyMeter boundary pages were hardened so reviewers start from served pages rather than stale prompt history.
How To Use These Notes
- Start with Current state when checking whether an old peer finding is still live.
- Use DBAD-ETHICS-817 for public fixture links and expected violation codes.
- Use API docs for machine-facing contract details.
- Use Peer review for older AI review history and current report shape.
- Do not treat these notes as a replacement for live trace or API verification.
Deferred or Parked Scope
Payment, Church-entity incorporation, and 501(c)(3) work are not part of the active ethics-engine peer-review sprint. They remain parked until owner direction changes.
This page focuses on DBaD trace validation, reliance, token-state contracts, public review surfaces, and DecencyMeter separation.