{
  "schemaVersion": "ofb-self-audit-r1",
  "recordId": "ofb-self-audit-openforbots-2026-08-04",
  "recordStatus": "operator_maintained",
  "subject": {
    "name": "OpenForBots",
    "url": "https://openforbots.com/"
  },
  "reviewedAt": "2026-08-10",
  "release": {
    "id": "ofb-audit-r2.1",
    "name": "Release 0.9",
    "reportContract": "ofb-audit-r2.1",
    "evidenceEngine": "ofb-evidence-r1-2026-08-02",
    "roadmapRules": "ofb-roadmap-r2-2026-08-03",
    "lastReviewedAt": "2026-08-10",
    "persistence": "Anonymous audit snapshots retained for up to 30 days"
  },
  "scope": [
    "production homepage and audit experience",
    "published methodology and changelog",
    "public correction and security routes",
    "robots.txt, sitemap.xml, llms.txt, and crawler references",
    "current report, evidence-engine, and roadmap-rule metadata",
    "dark-surface accessibility and report timestamp presentation"
  ],
  "findings": [
    {
      "id": "OFB-SA-001",
      "evidenceType": "observed",
      "observedAt": "2026-08-04",
      "title": "Public methodology versions had drifted from the runtime",
      "impact": "documentation_integrity",
      "meaning": "Readers could not reliably connect the public methodology surface to the rule versions recorded in a completed report.",
      "remediation": "The homepage, methodology index, changelog, and trust record now consume shared release metadata. API methodology metadata also follows the roadmap rules actually generated.",
      "verificationCondition": "Automated tests require public trust surfaces to consume the shared release source and require API roadmap metadata to match the generated roadmap.",
      "resolutionState": "corrected_and_regression_checked"
    },
    {
      "id": "OFB-SA-002",
      "evidenceType": "observed",
      "observedAt": "2026-08-04",
      "title": "Machine-readable llms.txt freshness and no-score wording had drifted",
      "impact": "machine_readable_discovery_integrity",
      "meaning": "The file still carried an older update date and described the methodology as including scoring even though the current product explicitly produces no aggregate score.",
      "remediation": "llms.txt is now generated from the shared release metadata, links the public trust artifacts, and describes the current no-score methodology accurately.",
      "verificationCondition": "Production validation requires the current review date, report contract, self-audit links, and no scoring claim in llms.txt.",
      "resolutionState": "corrected_and_regression_checked"
    },
    {
      "id": "OFB-SA-003",
      "evidenceType": "observed",
      "observedAt": "2026-08-04",
      "title": "Dark trust sections inherited illegible page-level text colors",
      "impact": "accessibility_and_brand_trust",
      "meaning": "The homepage FAQ and audit-boundary sections could render dark navy text on a near-black background, making important limitations difficult or impossible to read.",
      "remediation": "A final shared dark-surface contract now sets explicit navy backgrounds, white headings, light body text, muted light secondary text, and accessible border colors for both sections.",
      "verificationCondition": "Regression tests require the shared selectors and calculate contrast ratios of at least 4.5:1 for body text and 3:1 for headings against the dark surface.",
      "resolutionState": "corrected_and_regression_checked"
    },
    {
      "id": "OFB-SA-004",
      "evidenceType": "observed",
      "observedAt": "2026-08-04",
      "title": "Report timestamps used ambiguous locale-dependent formatting",
      "impact": "evidence_timestamp_integrity",
      "meaning": "A timestamp such as 04/08/2026 could be interpreted as either 4 August or 8 April, and the displayed value did not identify its timezone.",
      "remediation": "Completed reports now format checked and generated timestamps as YYYY-MM-DD HH:mm:ss UTC and retain the exact ISO instant in the title attribute.",
      "verificationCondition": "Regression tests reject toLocaleString-based report timestamps and require the explicit UTC formatter and ISO timestamp pattern.",
      "resolutionState": "corrected_and_regression_checked"
    }
  ],
  "publicArtifacts": {
    "trustCenter": "https://openforbots.com/trust/",
    "humanRecord": "https://openforbots.com/trust/self-audit/",
    "machineRecord": "https://openforbots.com/trust/self-audit.json",
    "methodology": "https://openforbots.com/methodology/",
    "methodologyChangelog": "https://openforbots.com/methodology/changelog/",
    "crawlerRegistry": "https://openforbots.com/ai-crawlers/",
    "securityPolicy": "https://openforbots.com/security/",
    "securityTxt": "https://openforbots.com/.well-known/security.txt",
    "llmsTxt": "https://openforbots.com/llms.txt",
    "corrections": "https://openforbots.com/contact/"
  },
  "integrity": {
    "signed": false,
    "tamperEvident": false,
    "historicalLedger": false
  },
  "limitations": [
    "This operator-maintained record does not prove provider visitation, indexing, retrieval, citation, ranking, recommendation, traffic, training use, or revenue impact.",
    "This record is not a certification, signed receipt, tamper-evident attestation, or independent audit.",
    "A clean public technical foundation does not guarantee visibility or commercial outcomes."
  ]
}
