{
  "register_id": "JW-CV-AI-COMMON-SENSE",
  "schema": "EWTECHNERD common-sense-failure-register/1.0 (applied to the JW Evidence CV)",
  "standard": "Six-criteria public gate from the EWTECHNERD / Applewood AI Failure Register",
  "canonical_url": "https://cv.jermainewhiteside.com/ai-failures/registry.json",
  "feed": "https://cv.jermainewhiteside.com/ai-failures/feed.xml",
  "updated": "2026-10-20",
  "gate": {
    "rss_rule": "An entry enters the AI Failure RSS only when all six criteria are true. There is no editorial override.",
    "criteria": [
      {
        "key": "requirement_clear_or_inferable",
        "text": "Requirement is clear or readily inferable from an approved standard."
      },
      {
        "key": "recognizable_by_basic_logic",
        "text": "Defect is recognizable through basic completeness, consistency, usability, labeling, rendered-output, or dependency logic."
      },
      {
        "key": "ai_had_artifacts",
        "text": "AI had access to relevant implementation artifacts."
      },
      {
        "key": "ai_had_inspection_opportunity",
        "text": "AI had an opportunity to inspect, rescan, or validate."
      },
      {
        "key": "deterministic_or_visual_test_available",
        "text": "A practical deterministic or visual test could have detected the defect."
      },
      {
        "key": "survived_validation_to_candidate_state",
        "text": "The defect survived validation into a candidate or production state."
      }
    ]
  },
  "counts": {
    "entries": 13,
    "rss_eligible": 10
  },
  "entries": [
    {
      "entry_id": "JW-CV-CSF-2026-10-18-001",
      "date": "2026-10-18",
      "classification": "DEPLOYMENT_TARGET_ASSUMED_NOT_VERIFIED",
      "observed_after_release": "v2.7 Candidate 01",
      "status": "CORRECTED_IN_V2.7_C02",
      "agent": "Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "Candidate 01 recorded Worker jermaine-whiteside-cv and Workers Builds as the deploy path without checking which Cloudflare project held cv.jermainewhiteside.com. AI_DEPLOYMENT_CONTEXT.md already warned that production and the jw-certified-cv Pages project had diverged. After merge, jw-certified-cv published Candidate 01 at jw-certified-cv.pages.dev while the custom domain still served v2.5 Candidate 16. The owner moved the custom domain to jw-certified-cv.",
      "why_it_matters": "A successful build was briefly taken as the release. The public CV stayed on the old version with no signal to visitors.",
      "common_sense_rule": "Before naming a deploy target, read which project holds the custom domain. After every deploy, check the footer on the custom domain itself.",
      "required_controls": [
        "CUSTOM-DOMAIN-BINDING-CHECK",
        "POST-DEPLOY-FOOTER-CHECK-ON-CUSTOM-DOMAIN"
      ],
      "evidence": [
        "/deployments/registry.json",
        "/AI_DEPLOYMENT_CONTEXT.md",
        "/RELEASE_NOTES_v2.7_CANDIDATE_02.md"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Deployment target assumed, not verified"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-002",
      "date": "2026-10-18",
      "classification": "PUBLICATION_SCOPE_CLAIM_FALSE_UNDER_ACTUAL_HOST",
      "observed_after_release": "v2.7 Candidate 01",
      "status": "CORRECTED_IN_V2.7_C02",
      "agent": "Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "The Candidate 01 manifest and release notes said repository tooling was excluded from publication through .assetsignore. Cloudflare Pages does not read .assetsignore, so automation/, tools/ and .github/ were published. No secrets were exposed.",
      "why_it_matters": "A manifest that misstates what is public undermines the SHA-256 manifest as a release control.",
      "common_sense_rule": "State what a host publishes only after fetching a file that should be excluded from the deployed URL.",
      "required_controls": [
        "FETCH-EXCLUDED-PATH-AFTER-DEPLOY",
        "MANIFEST-MATCHES-SERVED-FILES"
      ],
      "evidence": [
        "/DEPLOYMENT_MANIFEST_v2.7_CANDIDATE_01.json",
        "/DEPLOYMENT_MANIFEST_v2.7_CANDIDATE_02.json"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Publication-scope claim false on the real host"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-003",
      "date": "2026-10-18",
      "classification": "CURRENT_VERSION_ALIAS_STALE",
      "observed_after_release": "v2.5 Candidate 16",
      "status": "CORRECTED_IN_V2.7_C01",
      "agent": "Not recorded (package built before GitHub source control)",
      "observation": "deployments/registry.json kept current_version at Candidate 15 while the footer, manifest and AI context all said Candidate 16 was live.",
      "why_it_matters": "Machines reading the registry would report the wrong live release.",
      "common_sense_rule": "Every current-version field must equal the release named in the footer before a package ships.",
      "required_controls": [
        "CURRENT-STATE-ALIAS-PARITY"
      ],
      "evidence": [
        "/deployments/registry.json"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Deployment registry current_version stale"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-004",
      "date": "2026-10-18",
      "classification": "FOOTER_VERSION_LINE_OUTSIDE_LAYOUT_COLUMN",
      "observed_after_release": "v2.5 Candidate 15",
      "status": "CORRECTED_IN_V2.7_C02",
      "agent": "Introduced before GitHub source control; carried unchanged into v2.7 Candidate 01 by Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "The deployment line and AI-Readable Website Edition link sat outside the footer's 1120px column and rendered at the far left on desktop. The owner found it from a screenshot. Candidate 01 copied the footer markup unchanged although its pages were screenshotted before release.",
      "why_it_matters": "The release identity line is a required control; it should read as part of the footer, not as stray text.",
      "common_sense_rule": "Release screenshots must include the footer at desktop width, and every footer line must share one left edge.",
      "required_controls": [
        "FOOTER-ALIGNMENT-CHECK"
      ],
      "evidence": [
        "/styles.css"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Footer version line outside the layout column"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-005",
      "date": "2026-10-18",
      "classification": "RELEASE_LINE_DIVERGENCE",
      "observed_after_release": "v2.6 Test Candidates 17\u201320",
      "status": "CONTROLLED_IN_V2.7_C01",
      "agent": "Not recorded (packages built outside this repository)",
      "observation": "The v2.6 test packages were built from v2.4 and lacked /applied/, /evidence-cv/, /deployments/ and /orcid/, which were live in v2.5 Candidate 16. Deploying Candidate 20 would have removed them. Found on 2026-10-18 before any v2.6 deployment.",
      "why_it_matters": "A newer version number does not mean a superset of what is live.",
      "common_sense_rule": "Before promoting a package, diff its route list against the live site and stop on any missing route.",
      "required_controls": [
        "ROUTE-SUPERSET-CHECK-AGAINST-LIVE"
      ],
      "evidence": [
        "/RELEASE_NOTES_v2.7_CANDIDATE_01.md"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Test release line dropped live pages"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-006",
      "date": "2026-10-18",
      "classification": "NAVIGATION_SET_INCONSISTENT",
      "observed_after_release": "v2.5 Candidate 16",
      "status": "CORRECTED_IN_V2.7_C03",
      "agent": "Not recorded (pre-GitHub package); missed by Claude (Anthropic), Claude Code session 2026-10-18 in Candidate 01",
      "observation": "A 375px menu test of all pages found /publications/ with 7 primary links (no Applied or Evidence CV) and /deployments/ with 10, while other pages had 9. The menu did not close with Escape on any page.",
      "why_it_matters": "Visitors on some pages could not reach Applied or Evidence CV from the menu; keyboard users could not dismiss it.",
      "common_sense_rule": "Primary navigation is one canonical list on every page; an open menu closes with Escape and returns focus to its button.",
      "required_controls": [
        "NAV-CARDINALITY-CHECK",
        "MENU-KEYBOARD-CHECK"
      ],
      "evidence": [
        "/site.js"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Inconsistent primary navigation and no Escape close"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-007",
      "date": "2026-10-18",
      "classification": "MOBILE_HORIZONTAL_OVERFLOW",
      "observed_after_release": "pre-release build of v2.7 Candidate 01",
      "status": "CORRECTED_BEFORE_RELEASE",
      "agent": "Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "The new /evidence/external/ page overflowed by 5px at 375px because grid items kept their minimum content width. Fixed before the pull request.",
      "why_it_matters": "Recorded for completeness. The pre-release check worked, so this is not a public failure.",
      "common_sense_rule": "Grid children that hold long URLs need min-width:0.",
      "required_controls": [
        "MOBILE-OVERFLOW-CHECK"
      ],
      "evidence": [
        "/evidence/external/external.css"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": false
      },
      "rss_eligible": false,
      "title": "Receiver page overflowed at phone width (caught before release)"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-008",
      "date": "2026-10-18",
      "classification": "FIX_REGRESSION_AFTER_MARKUP_CHANGE",
      "observed_after_release": "pre-release build of v2.7 Candidate 03",
      "status": "CORRECTED_BEFORE_RELEASE",
      "agent": "Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "The Candidate 02 alignment rule targeted the deployment line as a direct child of the footer. The new global footer nests that line, so the old 1rem indent returned. Found in the pre-release footer screenshot and fixed with a rule scoped to the new footer.",
      "why_it_matters": "Recorded for completeness. A fix tied to markup structure can silently stop applying when the markup changes.",
      "common_sense_rule": "After changing markup, re-run the checks that earlier fixes depended on, not only new checks.",
      "required_controls": [
        "FOOTER-ALIGNMENT-CHECK",
        "REGRESSION-RECHECK-AFTER-MARKUP-CHANGE"
      ],
      "evidence": [
        "/styles.css"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": false
      },
      "rss_eligible": false,
      "title": "Footer alignment fix lost when the footer was rebuilt (caught before release)"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-009",
      "date": "2026-10-18",
      "classification": "CREDENTIAL_TITLE_MISMATCH_ACROSS_SURFACES",
      "observed_after_release": "v2.7 Candidate 01",
      "status": "CORRECTED_IN_V2.7_C03",
      "agent": "Introduced in v2.6 Test Candidate 19 base data (agent not recorded); ported unchecked into v2.7 Candidate 01 by Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "The printable CV listed the Walden master's degree as 'M.S., Information Management Systems'. The diploma (conferred December 25, 2022) and the Evidence CV education pages read 'Master of Information Systems Management'. Found while reviewing the owner's diploma on 2026-10-18.",
      "why_it_matters": "A degree title that differs from the diploma is a credential misstatement, whatever the cause.",
      "common_sense_rule": "Any degree, credential or date shown on more than one surface must match the governing evidence record exactly before release.",
      "required_controls": [
        "CROSS-SURFACE-CREDENTIAL-STRING-CHECK"
      ],
      "evidence": [
        "/cv/data/base-cv.json",
        "/evidence-cv/education/",
        "/cv/data/approved-evidence.json"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Printable CV degree title did not match the diploma"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-010",
      "date": "2026-10-18",
      "classification": "POST_MERGE_PUSH_REPORTED_AS_IN_REVIEW",
      "observed_after_release": "v2.7 Candidate 02",
      "status": "CORRECTED_IN_V2.7_C03",
      "agent": "Claude (Anthropic), Claude Code session 2026-10-18",
      "observation": "Commits were pushed to the branches of jermainewhiteside-cv PR #2, ewtechnerd-corporate PR #6 and evision-business-center PR #4 after the owner had merged them, and were reported to the owner as part of those pull requests. They never reached production. Found when the owner's screenshot showed zero open pull requests on ewtechnerd-corporate.",
      "why_it_matters": "The owner was told changes were awaiting merge when no pull request carried them; production silently lacked them.",
      "common_sense_rule": "Before every push, read the pull request state. If it is merged or closed, start a new branch and a new pull request, and say so.",
      "required_controls": [
        "PR-STATE-CHECK-BEFORE-PUSH",
        "POST-PUSH-PR-DIFF-CHECK"
      ],
      "evidence": [
        "/deployments/registry.json",
        "/RELEASE_NOTES_v2.7_CANDIDATE_03.md"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Work pushed to already-merged pull requests"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-011",
      "date": "2026-10-18",
      "classification": "PAGE_CONTENT_TRUNCATED_BY_PARTIAL_EDIT",
      "observed_after_release": "v2.7 Candidate 03 (commit b00f78c, PR #17)",
      "status": "CORRECTED_IN_V2.7_C04",
      "agent": "Not recorded (commits authored under the owner account; the drafting tool is not identified in the commits)",
      "observation": "Commit b00f78c ('Consolidate CV and evidence navigation with accessible dropdown') replaced about 86 lines of index.html with 2, removing the hero, every homepage section and the opening of the footer (17,780 bytes to 5,095). The follow-up 'restore' commit a81ff98 changed the menu but did not bring the content back. The broken page was served at /index.html; the bare domain root was still answered by the legacy Worker route, which hid the problem.",
      "why_it_matters": "The homepage is the site's front door. Once the legacy route is removed, every visitor would have landed on an empty page.",
      "common_sense_rule": "After any edit, compare page size and structure (header, main, footer present) against the previous version before merging.",
      "required_controls": [
        "PAGE-STRUCTURE-CHECK",
        "PAGE-SIZE-REGRESSION-CHECK",
        "PRE-MERGE-BROWSER-CHECK"
      ],
      "evidence": [
        "/index.html",
        "/deployments/registry.json"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Homepage content deleted by a navigation edit"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-18-012",
      "date": "2026-10-18",
      "classification": "RELEASE_CONTROLS_SKIPPED",
      "observed_after_release": "v2.7 Candidate 03 (PRs #4\u2013#19)",
      "status": "CORRECTED_IN_V2.7_C04",
      "agent": "Not recorded (commits authored under the owner account; the drafting tool is not identified in the commits)",
      "observation": "Pull requests #4 to #19 changed pages, data and print layouts on production without advancing the footer version, adding deployment-history entries or writing a SHA-256 manifest, as AI_DEPLOYMENT_CONTEXT.md requires. Every page kept saying Candidate 03 and the Candidate 03 manifest no longer matched the served files. Three new pages (Grant Biosketch, Executive Supplement, Course Register) had no deployment footer.",
      "why_it_matters": "Visitors and machines could not tell which version they were reading, and rollback to a known state was not possible from the records.",
      "common_sense_rule": "Any merge that changes served files advances the release: footer, deployment history, release notes and manifest.",
      "required_controls": [
        "RELEASE-CONTROL-CHECK-ON-EVERY-MERGE",
        "MANIFEST-MATCHES-SERVED-FILES"
      ],
      "evidence": [
        "/deployments/registry.json",
        "/RELEASE_NOTES_v2.7_CANDIDATE_04.md"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": true,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": true,
        "survived_validation_to_candidate_state": true
      },
      "rss_eligible": true,
      "title": "Sixteen merges shipped without release controls"
    },
    {
      "entry_id": "JW-CV-CSF-2026-10-20-013",
      "date": "2026-10-20",
      "title": "IRB pre-review status remained after a superseding institutional determination",
      "classification": "STALE_INSTITUTIONAL_STATUS_AND_INCOMPLETE_RECONCILIATION",
      "observed_after_release": "v2.7 Candidate 45",
      "status": "CORRECTED_IN_V2.7_C46",
      "agent": "ChatGPT / Codex; model 6.1 as reported by the owner (runtime model identity not independently verified)",
      "observation": "Candidate 45 published an earlier owner-reported Cayuse Under Pre-Review observation and stated that no decision had issued. On October 20, the owner supplied the Liberty IRB letter dated October 19 determining No Human Subjects Research and permitting the project to begin with application safeguards. The letter was not supplied in the preceding visible turn; this entry does not assert that the agent ignored that document. The previous release validated display consistency without reconciling the latest institutional determination.",
      "why_it_matters": "Outdated process status can misrepresent whether the specified project may begin. A non-human-subjects determination must also not be relabeled as approval of human-subjects research.",
      "common_sense_rule": "Date and qualify the source actually reviewed. Reconcile a newly supplied institutional determination across every active display; preserve scope, safeguards and modification requirements.",
      "required_controls": [
        "INSTITUTIONAL-DECISION-SOURCE-RECONCILIATION",
        "CROSS-SURFACE-IRB-PARITY",
        "DISTINGUISH-NHSR-DETERMINATION-FROM-HSR-APPROVAL"
      ],
      "evidence": [
        "/cv/data/praxis-dissertation.json",
        "/dissertation/registry.json",
        "/research/evidence-map/compliance/reference.json"
      ],
      "criteria": {
        "requirement_clear_or_inferable": true,
        "recognizable_by_basic_logic": true,
        "ai_had_artifacts": false,
        "ai_had_inspection_opportunity": true,
        "deterministic_or_visual_test_available": false,
        "survived_validation_to_candidate_state": true
      },
      "gate_note": "Recorded correction requested by the owner. The primary determination letter was supplied after Candidate 45, so access to that artifact and a pre-release test against it are not asserted. Does not pass all six RSS criteria.",
      "rss_eligible": false
    }
  ]
}
