Updates

Recent changes to the public research, software, citation, evidence, and discovery index.

On my mind

2026-09-25

  • Making the site thesis explicit — one surface, many projections: a decade-plus of externalized thinking as a longitudinal record, not a snapshot; the trajectory compounds. One Surface, Many Projections

2026-11-06 — Exact publication editions, literal credits and software archives

  • Added the archived Rikishi manuscript and the distinct 2026 Symposium working program, with permanent work identities, reviewed text and versioned PDF links. Software archives retain their separate DOI roles.
  • Updated twelve existing selected editions and source summaries while preserving earlier local PDFs, extracted text, gallery images and complete prior metadata. Documented results remain attributed to their source papers.
  • Bound pair acknowledgements to exact immutable record and file evidence; preserved original review history and added separate current-edition decisions. Cached reports recheck the durable ledger and retain release asset URLs.
  • Added bounded explicit-record intake for deposits outside author searches, bounded GitHub pagination with explicit failures, and provenance-aware paper-index merges.
  • Preserved ordered institutional and grouped credits through exports, bylines and refresh, and separated software archive identities from paper citations.
  • Preserved literal credits in selected CSL and work-specific research-map types; retained exact legacy links and explicit ambiguity recovery. Author records and evidence sidecars now invalidate the generation steps that consume them.
  • Refreshed complete public source observations, retaining failed and incomplete advisory responses as unavailable. New full PDFs stay at versioned archives; existing public PDF routes and Pages limits are preserved.

2026-11-06 — Deterministic reproducibility output and fresh source proof

  • Repeated reproducibility-ledger builds preserve the footer when substantive content is unchanged, while changed content receives fresh metadata.
  • A clean-source follow-up records the failing fixed-point comparison, corrective regressions, full core gate, fresh four-format render and complete production-source binding.

2026-11-05 — Complete manuscript production-source custody

  • Explicit manuscript draft renders now record a bounded, deterministic inventory of production Python sources and reject source-byte or membership changes before publishing review outputs. Direct manuscript hashes and pending human/editorial review retain their existing meanings.
  • The shared safe text reader supports an optional byte limit before decoding, preserving newline behavior and link protections for existing callers.

2026-11-05 — Evidence contracts, scholarly discovery and methods draft

  • Refreshed the complete GitHub inventory and identity review: all prior repositories remain represented, two new forks retain the standing exclusion, and the individually approved AII .github entry describes organization/community infrastructure. ActiveACO’s maintained fork is unarchived; its originating source corrections retain separate commit evidence.
  • Linked published originating-source corrections for MarkdownDecisionProcess, ActiveACO/PopulationSearch and Blake. Current implementation and exact retained-run evidence are validated separately from missing historical scientific observations; prior review pins are preserved.
  • Added a reviewed five-article same-directory PDF pilot, with exact source identities, rights/byline/date evidence and complete author-written abstracts. Content-addressed aliases are assembled only for Pages; original URLs remain hosted and all reservations stay within a 5 MiB allowance. The whole-site budget is unchanged. Source review.
  • Deployment acceptance now fetches every reserved PDF alias and checks exact bytes and PDF media type. Malformed copy/original manifest contracts fail before network requests; stale or absent aliases fail actual HTTP checks.
  • Migrated historical report consumers to existing pinned GitHub archives so the declared omission policy can recover web capacity while preserving every source report and its history.
  • Expanded the repository-methods draft with source custody, complete intake, hosting/discovery contracts, evidence classes, failure controls and explicit reproducibility limits. Repaired review-slide prose pagination and measured linked-bullet overflow. Format review remains separate from human, editorial, scientific and publication approval.
  • Corrected page-cache dependency fixtures, reused bounded strict UTF-8 source reads across paper-resource and SEO validation, and aligned historical-source notice regressions with linked-commit evidence boundaries. The dated format review records the selected regression gates and fresh C3 native rendering; these do not substitute for complete-profile or hosted acceptance.
  • Recorded the signed-in Search Console observation: the sitemap was successful and three new works were unknown to Google. The first selective indexing request failed; a later live-test attempt had an unconfirmed outcome, with no accepted request observed. Scholar metrics and indexing status were not inferred from those observations.

2026-11-04 — Publication intake, software review and bounded PDF hosting

  • Added the distinct Observers Are All You Need component preprint, retaining its r2054 document byline/date and the differing Zenodo registry observation.
  • Added reviewed PDF-byline authority for DOI-bearing manuscripts whose registry creator metadata differs. Source hashes, quoted bylines and attributed reviews preserve both observations; registry refreshes retain the selected author order and report drift for review.
  • Added the Blakean Entomology and States Change / Blakean Federalism working papers with permanent work identities, concept/version DOI roles, reviewed source text and explicit limits. Updated Blake manuscript 0.5.0 / software 0.7.0 and the fourteen-author observer preprint to r2061, preserving earlier source bytes and extraction history.
  • Catalogued four new research/civic repositories and the distinct PROJECT BOND package family; refreshed public repository facts and current template, GNN, daf-okn and daf-jev release links. The dated software review records individual source evidence and unavailable/historical references.
  • Added explicit versioned Zenodo primary-PDF declarations for new editions. Download buttons, citation metadata and structured data select those editions; existing local PDF URLs remain hosted. The storage review records the measured baseline and verified binaries kept outside the Pages projection.
  • Replaced duplicate Zenodo pagination loops with one bounded completeness reader; incomplete pages, changing totals, duplicate records and malformed successful inventory caches now fail explicitly. Updated the intake, classification, provenance and hosting runbooks and the Blake pathway.
  • Bound manually reviewed supplemental archives to exact records, source manifests and current catalog links; strengthened shared path redaction while preserving public URLs and original release-note provenance.

2026-11-03 — Labelled footer build stamps

  • The generated-page footer stamp now names both of its facts: the payload-anchored build (build <short-sha> <YYYY-MM-DD>) and the UTC rendering instant (generated <ISO-8601>). Previously the single bare date left it ambiguous whether it was the payload commit's committer date or the build time. The contiguous build <sha> <date> prefix stays first because the deploy freshness alarm parses the payload SHA from it.
  • Stamp reuse now forgives a differing stamp value but not a differing stamp format, so the new label propagates to every stamped page rather than only to pages that happen to be edited. validate_repo.py fails on a pre-suffix label, with a negative-control regression proving the check catches one.
  • sync_site_facts.py now owns the stamp on a hand-authored page that carries one (index.html, for deploy-freshness verification). It migrates a legacy label, reuses a current one when only the stamp would change, and refreshes both facts when the page's content changes — the same contract the page generators apply to generated pages.
  • Every footer stamp must now be a current, parseable labelled anchor. A label that lost the fixed build prefix used to read as an unstamped page and pass the check; it is now reported as a problem, as is a marker that is not a parseable anchor at all. Regression tests cover both negative controls.

2026-11-02 — Independent review corrections

  • Added the shared CSP policy to centrally generated legacy redirects and a regression that rejects a missing policy.
  • Made cached inventory rendering recompute software-catalog membership and counts, preserving GitHub observations while keeping both filter views aligned.
  • Redacted local filesystem paths from captured release notes in the new pairing reports, retaining source-text hashes, original observation dates, and apply receipts. Added writer, validator, replay, and CLI regressions.

2026-11-01 — Legacy work URLs, authenticated metrics, and maintenance

  • Restored three historical work URLs reported as 404s by Search Console with centrally generated redirects to their current canonical pages. The retired CEREBRUM identifier remains retired; aliases stay out of the sitemap.
  • Recorded a direct authenticated Google Scholar owner-profile observation and its matching snapshot receipt, preserving the observed decreases in i10-index values as well as increases in citation counts.
  • Reviewed all nine deferred public-source observations individually against the retained snapshots, complete inventory, and fresh primary API checks; retained the previous decision evidence and digest-mismatch controls.
  • Applied the pinned Ruff formatter across Python sources and tests; compared all tracked Python syntax trees before and after the formatting pass.
  • Corrected CI artifact-budget step labels to the existing 930 MiB limit and pointed the active freshness backlog at the retained snapshot, pairing, inventory, and source-review inputs.
  • Made the focused sitemap and public-source review test modules initialize the canonical package before importing their orchestrators, so they also collect independently of suite order.
  • Made Blake tables keyboard-scrollable on narrow screens with unbroken DOI links, corrected light-theme header contrast, wrapped the rebuild command, and enlarged the build-link tap target. Added real browser checks for both themes at 320 px, 412 px, and desktop widths, including every column's reachability.

2026-10-31 — Public-source refresh, publication intake, and styled Blake pathway

  • Refreshed the full public-source snapshot, the complete GitHub inventory (183 primary + 108 forks; five new repositories queued for classification review), and the complete GitHub/Zenodo pairing scan with an authenticated release sweep.
  • Applied the strong GitHub/Zenodo intake: indexed Active Inference Language Model: A Fully Explicit Discrete Language System and a Gate-Audit Method (10.5281/zenodo.22409418, v1.0.0) and GNN-based active inference for Battleship (10.5281/zenodo.23670187, v0.5.0) with generated paper folders and downloaded artifacts; refreshed version artifacts and metadata for the FEP formalization (v2.1.0), the Synthetic Overview slides, and the Meta-Pragmatic Framework record.
  • Re-rendered the dated public-source review, external-link scan (742/906 ok; failures dominated by documented bot protection, with three genuine external-availability issues), link triage, and all binder receipts rebound to the current payload commit.
  • Added the styled blake-pathway.html hosted face for the William Blake publication pathway, generated by build_blake_index.py from the same hash-bound payload as pages/BLAKE.md; wired it into the sitemap policy, search index, generated manifest, publications hub, and llms.txt. pages/BLAKE.md remains the GitHub/agent markdown source and now links the styled page, resolving the raw-markdown presentation gap observed on the live site.

2026-10-23 — Package, acceptance and manuscript refinements

  • Completed the shared module registry so canonical and legacy imports preserve module and class identity, with real subprocess and exception-catching regressions.
  • Added research-desk pages, datasets and runtimes to routine deployment hash acceptance, including stale-live-asset negative controls.
  • Reused the accessibility suite's browser process within its module while retaining a fresh context for every case; documented admitted-runtime environment binding.
  • Updated the repository-methods draft to describe visitor selections, citation roles, explained discovery, teaching-model replay, package boundaries and targeted deployment evidence.
  • Corrected presentation clipping and hidden figure/reference content with bounded pagination after citation resolution; retained the original failed renders and added content-preservation regressions.

2026-10-23 — Research exploration tools

  • Added browser-local named reading lists with ordering, sharing previews, JSON backups, and selected BibTeX, RIS, CSL JSON and Markdown exports.
  • Made publication filters and sorting shareable, restored browser history, and allowed the complete filtered set to open as a collection.
  • Ranked related works by explained metadata overlap instead of recency alone, preserving labelled domain fallbacks and duplicate-work boundaries.
  • Added curated research trails, a provenance-labelled interactive metadata map, and reproducible Bayesian-update and reinforced-urn teaching demonstrations with CSV exports.
  • Integrated the new routes and datasets into the generation plan, source manifest, agent discovery and data catalog; kept scientific interpretation limits explicit.

2026-10-23 — Complete test selection and runtime isolation

  • Made skipped selected tests fail locally and in CI, with regression controls for collection, fixture, body, and parallel-worker skips.
  • Replaced browser filename lists with registered markers; parallelized interaction checks while keeping Lighthouse measurements serial and requiring its installed pinned version.
  • Shared immutable browser fixture servers, preserved fresh contexts and mutable-fixture isolation, and made temporary Git discovery boundaries automatic.
  • Included the native manuscript integration in default full selection and documented its explicit external toolchain inputs separately from the hosted site suites.

2026-10-23 — Publication and repository refresh

  • Indexed the co-authored preprint Observers Who Read Their Universe into Existence, with the supplied r2052 PDF and its hash, complete PDF author list, extracted text, and explicit source/physical-validation limits.
  • Added the public Thanks for Nothing publication through the GitHub/Zenodo intake and refreshed the complete repository inventory; linked the already-indexed Active Assembly work to its public software repository.
  • Resolved all 17 release/archive candidates with explicit identity and version-history decisions; refreshed eight line-project software release pointers while preserving archived manuscripts. Recorded blocked public-source checks separately from successful observations.

2026-10-22 — Blake pathway and public publication coverage

  • Added a reproducible Blake pathway over existing bibliography identities, with primary/version DOI links, hash-bound passage locations, namesake exclusions, negative-search coverage, and explicit reading/citation-validation limits.
  • Preserved printed DOI discrepancies for Lives in Juxtaposition, Before Pragmatism, and Synthesis of Agent and Niche separately from registry version metadata.
  • Reconciled public Zenodo, ORCID and Crossref discovery; indexed the public Active Assembly Theory and Practice deposit through the existing publication intake tool.

2026-10-21

  • Corrected source attribution and claim scope across the five topic guides, including the Friston–Fortier–Friedman interview, Ingram et al.'s foraging-gene article, and Saund and Friedman's pheromone model. Inline citations and full references now derive from the reviewed catalog.
  • Restored complete publication titles, distinguished edited-volume contributors in citation exports, reconciled the current daf-jev title, and connected the Digital Twins concept/version records through a shared canonical work URL.
  • Added a public-HTML audit for local targets, fragments, work links, and catalog-bound citation labels, with an optional live external-link inventory.

2026-10-19

  • Publication source corrections: linked immutable corrected source for MarkdownDecisionProcess, PopulationSearch and MappingWilliamBlake from their work pages and paper guides. Preserved historical publication files, DOIs and extracted quotations, with prominent notices identifying empirical limits. Scientific validation and historical run recovery remain separate.
  • Pages size: routed a supporting transcript Office document through an explicit pinned archive link while retaining its original repository bytes and hosted PDF. The projection verifies archive byte identity and refuses omissions with surviving local references.
  • Manuscript visual explanations: added declared offline vector diagrams for architecture, progressive loading, evidence boundaries, and release verification. The native template PDF and companion formats bind generated assets to source and runtime receipts; diagrams describe contracts rather than new results.

2026-10-18

  • Verified archive cleanup: retired an additional superseded root-level QA capture copy. Retention now verifies exact Git archive bytes before deletion, rejects ambiguous provenance and local additions, and scans live references once per invocation. Root-level capture cleanup requires explicit selection.
  • Native manuscript PDF: switched the repository-methods PDF to the pinned docxology/template combined renderer, with an informative vector cover and source/template/runtime/tool/output bindings. Kept explicit external review destinations and pending human/editorial approval.
  • Maintained interfaces: removed unused compatibility helpers, retired metadata writers, completed HTML migrations, and obsolete force aliases. Updated caller documentation and moved PDF extraction to pymupdf imports.
  • Report retention: removed superseded, unreferenced QA screenshot trees using reviewed provenance records. Current captures and permanent publication identities remain intact; original capture bytes remain in Git history.
  • Documentation accuracy: updated manuscript methods and corrected stale workstation authentication/path claims in the standalone webhook guide.

2026-10-17

  • Python 3.15 backend: qualified the current runtime and locked dependencies, aligned CI with .python-version, and derived release runtime/version metadata from pyproject.toml to prevent duplicated contract drift. Pillow 13 provides supported native wheels; CI enforces the lock, and required native libraries refuse source-build fallbacks. Every Python workflow, including IndexNow, selects the same runtime pin.
  • Measured backend performance: reduced repeated HTML parsing and paper-name sorting, bounded and version-checked page retention, and removed redundant pre-writer fingerprinting while preserving fresh post-writer checks. Cached writers also bind the interpreter pin, project metadata, and dependency lock so dependency-only changes trigger rebuilding. Paired prototype SEO/fingerprint timings and their limitations are recorded in the profiling guide.
  • Repeatable diagnostics: added fixed read-only timing/tracing workloads with versioned JSON, bounded workers, source/runtime/result bindings, and new external output files. Changed inputs or Git index membership invalidate observations; diagnostics confer no validation or release status.
  • Agent inspection: added an offline JSON entry point for checkout/runtime observations and ordered command previews, derived from the existing generation plan. Unknown operations and writer flags fail explicitly; inspection grants no validation, network-freshness, deployment, or human-review status.
  • Reliable regeneration: source-report consumers now fingerprint Git index membership as well as bytes. Staging or untracking an unchanged receipt re-renders its consumers; failed Git observations disable cache skipping.
  • Crawler metadata: SEO checks parse real head elements, reject duplicate canonicals and head robots directives, and enforce apex HTTPS canonicals across published page families. Existing citation and permanent URL identities remain authoritative.
  • 404 accessibility: enlarged footer link targets after the retained candidate's Lighthouse report identified crowding. Desktop/mobile browser checks measure the actual targets and accessibility behavior.
  • Measured performance: recorded exact-candidate Lighthouse scores and source-report hashes; current sample scores supersede the older art-startup follow-up without changing performance floors or claiming universal scores.

2026-10-16

  • GitHub and Zenodo refresh: reviewed a full release/record scan and the paginated public-source inventory. Added the meta-pragmatic active-inference preprint, refreshed Synthetic Overview's teaching archive and iTrace's corrected manuscript, and linked supplemental iTrace and Realizing Emptiness software archives without duplicating work identities. Citation concepts, manuscript versions, package versions and scientific limitations stay distinct.
  • Curated software: added the two newly public active-inference projects, refreshed opentir and Realizing Emptiness release descriptions, and classified the new Lenticulum.jl fork under the existing fork policy. Rebuilt discovery, bibliography, software, counts, search and CV projections from reviewed sources.
  • Video discovery: refreshed both public YouTube caches and added one newly discovered institute GuestStream, preserving prior publication dates and verifying the new video metadata separately.
  • YouTube date precision: mixed-tab refreshes preserve established dates for approximate-only listings while allowing corrections from full metadata. A regression covers exact corrections, duplicates and removed records.
  • Paired-intake authorship: new author-aware bibliography rows and the shared paper index retain every registry creator. Updating an existing row preserves its curated byline instead of truncating it. Raw README/CFF templates retain ordered creators and source ORCIDs.
  • Catalog telemetry: refreshed current star counts and latest-push months from the complete public inventory and restored stable star-count ordering; the dated metadata review records each source-backed change.
  • Portable maintenance: pin Python 3.12 to match CI and avoid accidental unsupported native dependency builds on newer host interpreters. Inventory refreshes now finish successfully with an external --output path and still report source-access warnings; a regression test covers that boundary.

2026-10-13

  • Publication consistency: retained verified SUMO and Digital Twins authorship, kept three full-text gaps deferred, and recorded current-source decisions for ten publication questions with originating repository and commit evidence. Historical experiment, native-execution and archival publication boundaries remain explicit in the dated review.
  • Verified manuscript toolchain: aligned crossref with the released 0.3.26 build for Pandoc 3.12.1, required an exact build-version token, and added regressions for mismatched and prefix-collision versions. The real offline four-format integration now runs only with DOCXOLOGY_TEST_RENDER=1; all four formats rendered successfully with the pinned tools. Human visual, editorial, and publication-readiness decisions remain pending.
  • Manuscript rendering: declared pinned Pandoc/crossref/Typst draft renders for HTML, PDF, EPUB, and PowerPoint with input/tool/output hashes, isolated renderer data, and failure-safe external review directories. Manuscript text and original figures use CC BY 4.0; archived and third-party rights remain separate. Human and editorial approval are still pending.
  • YouTube intake: bounded exact short-date hydration, explicit upcoming exclusion, and exact absent-shorts handling restore complete public metadata refreshes without weakening identity/date/error checks.
  • Gallery startup: fixed-width Flickr timestamps use equivalent lexical sorting; other date shapes and title collation retain their existing rules. The change avoids cold locale initialization; Lighthouse improvement still requires a fresh candidate measurement.
  • Scholar PDF planning: added a hash-bound, measured content-addressed pilot proposal preserving inbound links and source PDFs. No PDFs or citation URLs were migrated; eligibility and actual indexing remain separate reviews.
  • Backlog cleanup: removed completed intake, metadata, artwork, and performance-repair history from active task descriptions. Remaining work now has minor/medium/major effort guidance and explicit access dependencies; recurring maintenance stays visible, and the preserved Scholar PDF placement gap is marked deferred.
  • Citation evidence boundaries: the shared head parser ignores inert templates and body lookalikes, closes permanently at head/body boundaries, and preserves browser-visible first attribute values. The Scholar audit flags blank required fields, missing catalogued DOI tags, and duplicate singleton metadata while retaining ordered multi-author tags. These checks do not establish Scholar indexing or resolve the preserved PDF placement gap.

2026-10-12

  • Author entity types: work and publication JSON-LD now use verified DOI-matching registry person/organization records. A name without a comma no longer establishes an organization; unknown literal names retain no guessed type. Citation names and order stay unchanged.
  • Source-refresh landing: added an explicit narrow pre-commit evidence mode so reviewed source snapshots can pass no-write artifact checks before their payload lands. Default CI, post-landing, and release guards stay strict.
  • Repeatable citation intake: added a bounded Crossref proposal tool with exact DOI/title matching, explicit errors, source custody checks, and no automatic adoption. Semantically unchanged records preserve their original review timestamps.
  • Scholar prerequisite audit: added a deterministic per-work JSON/report covering real head tags, selected PDF hashes, size, and placement. The generation pipeline checks it for drift; catalog and agent schema 1.6 expose it. Content suitability, searchable text, and actual indexing remain separate reviews, with permanent URLs and artifact limits preserved.
  • Public repository intake: reviewed the newly public daf-okn graph toolkit and added it to the software catalog. Refreshed public inventory and freshness evidence; live OKN endpoint verification remains qualified.
  • Publication curation: recorded the disposition of all 30 ambiguous release pairs. The 21 template manuscripts retain separate citation DOIs and canonical pages; GNN stays under its existing concept, and older CogSecSkills, FEP, Ento-Linguistics, and antropy archives retain history without duplicate bibliography rows.
  • Deployment deadline regression: the queue/retry deadline test now uses a controlled clock rather than depending on subsecond host scheduling. Real HTTP hash, HEAD, and slow-drip process-deadline tests remain in place; production deadlines and limits are unchanged.
  • Citation source follow-up: recovered the ten rate-limited Crossref records in a bounded sequential pass, completing DOI/title-matched citation enrichment of the Crossref-backed paper folders.
  • Citation discovery: work pages now retain valid source-backed date precision and reviewed journal citation fields. The SEO gate detects citation identity, ordered-author, and primary-PDF drift. Scholar's PDF directory constraint remains explicit in the inclusion notes, with permanent URLs and the artifact ceiling preserved.
  • Publication intake: added the Zenodo records for Active Inference -- A Synthetic Overview and antropy: native multidimensional entropy and configurable complexity analysis, retaining concept citation DOIs and version-specific archive metadata. Refreshed strong existing-work release pairs for CogSecSkills, FEP formalization, Skillarum, daf-jev, and Ento-Linguistics without duplicating their published work identities.
  • Supplemental archive classification: paired-publication intake now shares the uncatalogued-records check's software-catalog lookup. A linked software archive supplementing an already cited paper remains catalogued; software-typed methods manuscripts without that linkage still enter normal publication intake. The source-review queue verifies the exact software pair and current linkage before accepting this classification.
  • Curated repository review: added antropy and reason after reviewing their public README and source layout at recorded commit revisions. The reason entry retains its draft-review status.
  • Receipt lookup: selecting the newest tracked report now stops at the first matching receipt, avoiding repeated Git checks of older history without caching index state.
  • Dated evidence: refreshed the public-source snapshot, paginated source inventory, GitHub repository inventory, and publication scan. Inaccessible profile sources and ambiguous publication pairs retain explicit review status; Scholar metrics retain their existing authenticated snapshot.

2026-10-07

  • Workflow-only commits keep the release anchor: a commit that changes only CI workflow files or the Dependabot configuration no longer counts as new published content. Those files never reach the Pages site, so routine action updates validate and deploy without regenerating the release manifests. Any other file in the same commit still makes it a content commit. This holds whether the update is rebased, squashed, merged, or first brought up to date with GitHub's "Update branch".
  • Reviewed public-source baseline: a new dated snapshot and review cover every observation since the 2026-10-06 baseline. The repository count (the cadence fork) and Zenodo record totals are applied to the claims and discovery pages; newer Ento-Linguistics and GNN versions and repository activity are acknowledged. This resolves the drift reported in issue #44.
  • Software archives on Zenodo: the fep_formal v1.5.0 release archive is linked from its software catalog row. The uncatalogued-records check now treats a Zenodo software record as catalogued when it supplements an already catalogued work, that is, when the work's software row links its concept DOI, so later releases of the same repository are not reported again. Any other record, including a paper Zenodo files as software, still needs a bibliography row.

2026-10-06

  • Flickr artwork re-sync: the gallery export was refreshed from Flickr with the API key now held as a repository secret. Every public artwork carries tags and a description, the newly tagged records join tag-driven pages, and a test keeps the export complete. Request URLs in sync failure messages no longer include the API key.
  • Lighthouse measured like production: the rendered-test and Lighthouse fixture serves text assets gzip-compressed, as GitHub Pages does, so the ratchet scores what visitors download; thresholds are unchanged. The gallery validates its index in yielded chunks and the publications table initialises across short tasks, removing the long startup tasks on slow processors.
  • ActiveInferenceInstitute is a GitHub Organization: GitHub now reports the account as an Organization. Identity notes and catalog text say so, and the public-source snapshot records each account's type, so the claim wording follows the recorded type instead of a fixed assumption.
  • Steadier freshness detection: the weekly public-source refresh runs authenticated, retries transient network and server errors, lists Zenodo results newest-first, and compares snapshots without star counts and update timestamps, so drift reports name changes that matter to curated claims.
  • Two Active Inference Institute repositories catalogued: Working_Groups, which supplements work #224 (release v1.0.0), and active_inference_language_model, empty at review, join the software catalog. Work #224 now links its source repository. Six new docxology forks are recorded under the standing fork policy.
  • Reviewed public-source baseline: a new dated snapshot and review cover every observation since the last reviewed baseline (2026-08-26). Repository counts, the Organization account type, and Zenodo record totals are applied to the claims and discovery pages; star counts, update times, renames, and an upstream creator-list change are acknowledged. This resolves the drift reported in issue #12.
  • Deterministic Pages manifest: the scan that keeps cited reports published now ignores git-ignored local files, so a manifest built on a working machine matches a clean checkout and the deploy check accepts it.
  • Catalog follows GitHub renames: four Active Inference Institute rows now use their current repository names (Active_InferAnts, GEO_INFER, Generalized_Notation_Notation, Journal_Utilities), so the repository review queue is empty. Domain pages keep both ant repositories and list fep_formal under its current name.
  • AII claims re-checked: the Scientific Advisory Board count and Textbook Group cohort claims were re-read against the institute's pages, found unchanged, and re-dated.
  • Lettering & Verse collection: a sixth art collection gathers the handwritten verse, lettering, and calligraphy drawings, including Solstice (Turning Point).
  • Coordinating the Field filed under the AII Ecosystem: work #224 moves to the AII Ecosystem domain beside the Institute's other organisational work; its URL is unchanged.

2026-10-05

  • Regeneration reliability: the default writer and fingerprint cache use the same scoped repository root. Source changes during rendering invalidate the cache, failed forced writers retire prior entries, and malformed cache records trigger a cold rebuild. Atomic bookkeeping and a repository-scoped single-writer lock preserve the restart boundary across concurrent runs.
  • Gallery and catalog resilience: invalid compact/detail records preserve native artwork links or expose an explicit retry. Viewer images try a finite set of retained source resolutions, with visible source links on mobile when media fails. Sorting preserves publication batches; exhausted load controls disappear and keyboard load-more moves focus to newly revealed works. The art page suppresses unrelated decorative media. The optional hero canvas stays static for reduced motion and pauses when hidden or outside the viewport.
  • Repository manuscript and development guidance: a source-backed methods draft replaces generic scaffold prose, with architecture/evidence diagrams and explicit source ownership. The local read-only manuscript gate checks configuration, section labels, citation-key/entry boundaries, and local references. It does not render outputs, validate full BibTeX field syntax, or establish publication readiness. Onboarding and configuration runbooks point to the shared generation plan and preserve archive/evidence boundaries.
  • New work: Coordinating the Field: The Case for Ecosystem-Level Technology Roadmapping and Community Working Groups in Active Inference (Zenodo concept DOI 10.5281/zenodo.23066903) joins the bibliography with its eight registered creators and an archived PDF.
  • Scholar observations through tooling: record_scholar_observation.py writes the metric snapshot and its SHA-256-bound receipt together from an operator-attested direct authenticated observation. It refuses older, same-day, or internally inconsistent values, predicts the bound hash in a dry run, and restores both files if a write fails. The 2026-10-05 observation was recorded with it.
  • Search Console follow-up: the runbook no longer advises a blanket "Validate fix". It names the legitimate exclusions (canonicalized papers/ pages, redirect stubs, the noindex videos/ index), drops videos/ from the indexing-request list, and covers removing the retired image sitemap, which returns 404 by design. The preflight now checks that robots.txt names only the canonical sitemap, that every priority URL is indexable and in the sitemap, and that retired sitemaps stay gone. Dated observations are in the 2026-10-05 report.
  • Flickr sync hardening: sync_flickr_artworks.py validates the export before writing, reports tag and description coverage (key-free with --coverage-local), refuses a fetch shorter than Flickr's public total, can require complete metadata, and no longer reports view-count changes as drift. Quoted multiword Flickr tags arrive in Flickr's normalized form (for example summersolstice) and stay single matching tokens. The live re-sync waits on a Flickr API key. The start page's artwork count is now derived from the export.
  • Updates page rendering: wrapped changelog bullets were published cut at their first line and bold titles showed stray asterisks; full bullets and bold titles now render, and structured-data descriptions carry plain text.
  • Backlog: the active backlog tracks the remaining human visual review and release attestation, the measured performance gap, manuscript rendering and editorial review, the Flickr re-sync and Curio-description review, and the Search Console queue.

2026-10-02

  • Progressive catalog startup: the search page browses a generated preview with complete type counts before loading the full core for queries or scoped browsing, then requests only the needed work/video text segments. Failed or malformed requests expose retries, and late responses preserve current controls. The artwork gallery filters the complete catalog but renders 48-item batches, preserves canonical page links and source images even for duplicate titles, and loads descriptions/details on demand. Publications render before optional abstract/keyword enrichment; failed interactive loads preserve the available catalog links.
  • Accessible video navigation: overlapping timeline links now become truthful numbered date groups with native dialogs exposing every original video link. Mobile screens use the filtered list and a working year jump; pressed states, focus restoration, contrast, forced colors, reduced motion, and UTC date arithmetic are covered by browser regressions. The shared reading-progress widget and video introduction now belong to landmarks. Decorative background suppression is scoped to the homepage stylesheet and publication template, preserving the complete Curio images, publication gradients and content, and other pages' design tokens.
  • Candidate-bound follow-ups: live verification checks out the triggering Pages candidate and binds its exact run, workflow, branch, and completion status. A built same-candidate 404, transport/server failure, or malformed boolean flag cannot be accepted as propagation; marker/contract mismatches require explicit deployment-lag evidence. Dedicated fresh failure receipts replace stale-report glob selection and remain available from failed workflow steps; IndexNow also reads the deployed candidate. Cached offline checks remain separate from fresh acceptance.
  • Scoped local verification: 13 focused accessibility browser checks passed without skips, including complete video coverage across zoom levels and dense same-day fixtures. One local Lighthouse 13.4.1 video-page observation measured 87 performance / 100 accessibility / 100 SEO. An independent maintenance review and 89 focused regression tests verified the deployment-binding and typed failure rules. These local results do not establish hosted execution, live publication, performance stability, or human visual sign-off; earlier dated receipts remain unchanged.
  • Homepage and Curio Cards: clearer introduction and routes into publications, software, art, and teaching; responsive typography, accessible profile disclosure, and readable media without JavaScript. The three art tiles now show the exact complete Complexity, Passion, and Education card images, with primary card links, source hashes, and documented artwork rights. Connected profile and art copy removes unsupported edition/market claims and repairs the Curio gallery anchor.
  • Source-text custody: restored 43 paper extractions whose literal manuscript/ paths had been changed by a directory migration, and corrected one evidence quotation against the archived PDF. All archived PDFs and the newer Pitch Deck extraction are preserved; the custody receipt records exact checks and their limits.
  • Search and deployment follow-up: type filters reserve their loading space and remain keyboard-accessible in a bounded scrollable row. The generated manifest now records all four search exports and their paper/report inputs; the offline shell includes the homepage stylesheet, and deployed-byte checks include that stylesheet and all three Curio images. Real Lighthouse 13.4.1 measured search CLS at zero after delayed-core mobile geometry tests passed. All 1,214 integration tests passed without skips; the homepage receipt separates local measurements from hosted and live acceptance.
  • Public smoke-report privacy: the capture generator removes the known workspace prefix from diagnostics before limiting their length. A regression covers partial-path exposure during truncation. Fresh smoke results retain selectors and image hashes; historical diagnostic redaction is explicitly marked and preserves the original capture results.
  • Permanent bibliography identity: a reviewed work-identifier registry preserves every existing work URL and reserves retired identifiers. Metadata corrections no longer rename citation keys. New intake validates the complete bibliography and identifier pair before writing; unsafe paths, collisions, retired-ID reuse, and unsupported partial updates fail closed.
  • Search and navigation: autocomplete and the search page share a compact core and load work/video text when needed. Revision mismatches recover through a bounded core refresh. Search summaries show normalized abstract prose while retaining literal mathematical notation and the original source metadata. Mobile navigation works without JavaScript; keyboard shortcuts contain and restore focus; clipboard failures offer an ordinary link with a truthful status message.
  • Offline and browser reliability: a small service-worker shell and bounded runtime cache preserve previously visited pages through updates. Network deadlines cover complete response bodies; failed requests cannot replace good cached entries. Required browser and Lighthouse tooling, malformed reports, and missing score categories fail the hosted gate. Real browser regressions exercise offline updates, error responses, progressive search, and focus.
  • Publication provenance and growth: unchanged generated content retains its timestamp and footer stamp; changed content receives the current rendering provenance. Cached generation tracks each writer, shared Python libraries, and declared renderer helpers so code changes rebuild dependent outputs. Exact legacy QA screenshots remain in GitHub while leaving the bounded Pages projection, preserving all archived PDFs and manuscript files. Pages deployments now retain a SHA-bound technical acceptance receipt checking every work page, critical assets, all paper-PDF HEAD contracts, and sample PDF hashes. This evidence is distinct from the human-reviewed release attestation.
  • Source-backed curation: corrected three full publication titles and one publication year without URL changes; corrected the Discovery Engine source abstract; updated five repository URLs after immutable GitHub-ID checks and added the reviewed OmniLatticeTextbook repository. Scholar metrics were refreshed from a direct authenticated observation with an exact snapshot receipt. Remaining author reconciliation, licensed full-text acquisition, account access, and publication-source discrepancies remain explicit in the active backlog. Implementation scope and verification boundaries are recorded in the forward reliability review.

2026-10-01

  • Paper access and complete summaries: work pages now offer direct PDF downloads and the archive's GitHub paper folder beside the title. Multiple PDFs retain their filenames and source-selection basis; companion files are distinguished from the primary document in structured data. Work pages and folder READMEs preserve complete curated abstracts, separate concepts from findings, link summary evidence, and omit synthetic keywords and unverified authorship. Associated software repositories remain separately labeled. Shared responsive page styles reduce repeated HTML; citation copying preserves literal BibTeX text and inert JSON payloads escape script boundaries.
  • Reliable publication and active guidance: scoped landing commits preserve unrelated staged work; bounded binder replays preserve source-review inputs, reach a byte fixed point, and validate the landed tree before push. Local regeneration uses two ordered passes for known cross-pass dependencies. The active backlog now contains unfinished work only; public completed notes are archived separately and stale private-checkout guidance is corrected. Scope and verification are recorded in the work-page access review.
  • Independent accuracy follow-up and source recovery: archived the correct CC BY iScience dopamine article (including its methods supplement) and the CC BY-NC-SA manuscript from the checksum-verified GNN v3.6.0 release. Both have source/version/license hashes and evidence-backed summaries; GNN command gates are described as manuscript claims, not newly executed runtime acceptance. Current concept-DOI authors were verified directly; historical community credit remains documented. Removed the unrelated DRE3 artifact DOI/version/date from ToComment and restored its full registered title without changing its permanent work URL. Cleared unsupported seed content where licensed full text remains unavailable. Decisions and open source discrepancies are recorded in the accuracy report. Skillarum, SilverLine and LineSet's archived PDFs match their registered version-file checksums and sizes; their verified version DOIs are now labeled artifacts under the existing concept citation DOIs.
  • Citation and public metadata consistency: work-page citations and their JSON-LD now preserve the recorded author order and collective names. SKILL descriptions prefer the curated abstract, including explicit absence. Audited per-folder abstracts match the displayed source; four false seed descriptions and seven unsupported keyword sets were corrected. ConCatEnate, Beacons, and DataDescriptorTemplate are classified as Computational from their source subject matter. CFF synchronization detects removed artifact identifiers and accepts ORCID-first author entries; document-verified author intake validates the matching work/folder/quote before applying changes. Name inversion now uses only audited ORCID/name aliases. Excerpt clipping preserves valid complete URLs. Updated the generator dependency manifest and obsolete directory instructions for this public repository.
  • Freshness workflow repair: replaced an invalid direct secret condition with a job-level availability flag; the Flickr key remains confined to its own step. Independent review and actionlint confirmed the workflow syntax.
  • Evidence-grounded paper summaries (DOC-016 core): every paper folder that has full text (197 of them) now carries paper-specific Methods (801) and Key Findings (904) extracted from their own full_text.md. Each item records a verbatim quote (evidence, key_findings_evidence) that was mechanically verified against the text before merge, and summary_provenance says how it was produced. These replace the domain-template filler and abstract echoes, as well as several "specific" method lists the text did not support (for example, interviews credited with "modeling"). Paper READMEs/SKILLs render the methods as "name — description" with a provenance note, and work pages pick them up as their Use Notes. test_grounded_summary_evidence_occurs_verbatim_in_full_text re-checks every quote on each run. An independent second-pass review read every item against its quote and surrounding text. It found 0 major and 39 minor issues (dropped hedges or scope conditions, cited or relayed claims worded as the paper's own, one added detail), and all were corrected. Each folder's summary_provenance.reviewed records the review.
  • Displayed abstracts audited against the paper text: 70 folders whose abstract disagreed with the Zenodo description or the paper were each judged against the full text, choosing only among the existing abstract, the Zenodo description, or the paper's own abstract copied verbatim. 39 now use the Zenodo description, 13 the paper's own abstract text, 16 are unchanged, and 2 show an explicit "no abstract recorded" note instead of an invented one. Some of the replaced abstracts described a different paper (EvoJump, HoneyBeeGeneExpression, ArgentineAnt, AuBI, GNN, MDKV, VideoEntomology, among others). Separately, 14 journal papers whose stored abstract was a 500-character-truncated paraphrase now carry their published abstract, recovered verbatim from the text. The generator's invented fallback ("Research paper on {topic}.") is gone.
  • Mis-filed source documents removed: papers/2018_DopamineForaging held a byte-identical copy of the 2016 foraging-gene PDF, and papers/2023_ToComment held the DRE3 paper (#77, Zenodo 5573947). Their PDFs, extracted text, images, and the borrowed Zenodo fields were removed, because the real documents are not yet archived (DOC-016). papers/2025_OnTime/full_text.md contained another paper's text and was re-extracted from its own PDF. papers/2026_TemplatePitchDeck had been extracted from an example deck and was re-extracted from the manuscript; extract_paper_texts.py now honours a primary_pdf metadata field and accepts --only FOLDER. Ten folders whose PDFs had never been extracted now have full text. New test: no two paper folders may share an identical source document.
  • Document-verified authorship for works without a DOI: fetch_work_authors.py accepts status: "document_verified", which requires a source file and a verbatim title-page / edited-by quote. These entries survive registry refreshes and are re-checked by --check. It is applied to six works (#28, #44, #71, #79, #89, #93: dissertation, edited volumes, essay, chapter), so 209 of 219 works now list authors.
  • Figure alt text on paper pages names the work instead of the folder id and distinguishes slides from pages.
  • Bibliography accuracy pass (live registry audit): all 205 catalogued DOIs were re-resolved against Crossref/DataCite. Every author list matched except eight works with no Authors cell, now filled from verified records (#5, #112, #217–#223). #5 retitled to its registered "Formal Foundations (Part 1 of 3: Theoretical Foundations)", clearing the catalogue's only title_mismatch; seven journal titles corrected to the publisher's exact wording (#32, #68, #95, #100, #105, #107, #108). Every edit keeps its frozen works/ URL.
  • Duplicate retired: #30 and #128 were the same Zenodo deposit (concept 14861595 / version 14861596, published 2025-02-12; #30 also carried the wrong year). Kept #128, now citing the concept DOI with the version as artifact_doi; removed #30's row, work page, and the byte-identical papers/2024_BioFirm/ folder, per the #49/#118/#193 precedent. Works 220 → 219, paper folders 203 → 202, Presentations 9 → 8.
  • Paper-folder citations follow the bibliography: generated README/AGENTS/SKILL files used to take title and authors from hand-seeded folder metadata. That seed data had placeholder titles ("ForagingGene") and, on several journal papers, co-author lists that are not on the paper (#104 credited five non-authors). Now regenerate_docs.py reads both from pages/BIBLIOGRAPHY.md, and generate_citation_cff.py reconciles CFF title/authors from it too, rewriting only files whose parsed identity differs: 73 CITATION.cff files corrected, one of which (#63) had cited a different paper outright. 37 metadata.json files and 46 paper_metadata.json author strings were corrected at the source.
  • No invented methods or findings: domain-template "methods" (every entomology paper had "Field observation and behavioral assays") and findings that only echo the abstract are now suppressed on paper READMEs/SKILLs and on the indexed work pages (code/src/metadata_templates.py). Where nothing paper-specific is recorded, the page says so instead. Seed-data cleanup is tracked as DOC-016.
  • Author-name normalisation: Zenodo often deposits creators as familyName: "Daniel Ari Friedman" with no given name. These rendered uninverted and exported to CSL-JSON as organisation literals. When the creator carries an ORCID, fetch_work_authors.format_author now splits the name (46 names fixed); without an ORCID, a collective or pseudonym is left verbatim. One explicit owner correction maps Crossref's mis-split "Ari Friedman, Daniel" (#46).
  • Tooling fixes: regenerate_all.py no longer halts when the number of works changes, because the start-here step now runs build_start_here.py --sync-counts (idempotent, no date stamp); test_reproducibility_ledger now tampers with a tmp_path copy instead of the tracked outputs, which had raced the parallel SEO single-read guard and was the cause of the intermittent test_one_seo_pass_reads_each_page_once… failure; SKILL.md frontmatter scalars are JSON-quoted, so titles with quotes stay valid YAML, and the SKILL citation names the venue instead of the domain. New code/tests/test_bibliography_authority.py pins all of the above.

2026-09-27

  • SEO ergonomics wave (serp_title decoupling, breadcrumbs, works-index copy): root-level pillar pages now carry the full title in og:title, twitter:title, and JSON-LD headline while only <title> is SERP-clipped (render_pillar_head(serp_title=...)); 404 page gained BreadcrumbList JSON-LD; the works index leads with the longitudinal-record framing and a year-range hero; per-work pages dropped the duplicate Copy-BibTeX control and now render Findings/Methods cards without "Not yet summarized." placeholders. Per-domain RSS/Atom feeds (8 domains) ship with a deterministic --check that reuses on-disk lastBuildDate; software.html nav syncs from the shared manifest; start-here counts stamp from data/current-counts.json with a matching freshness check.
  • Regeneration recovery: the interrupted 2026-09-25 generation chain was completed on recovery — video institute/personal pages finished and --check green, 949 artwork/collection pages brought current with the nav changes, and a zero-byte truncated domain-active-inference.html (drive failure during the concurrent session) rebuilt from build_domain_pages.py. Static accessibility 2537/2537; repositories refreshed from data/github-repositories.json.
  • Post-push receipts: reports/public_source_review_2026-09-27.json/.md supersede the 09-26 pair (279 applied / 77 deferred / 317 rejected, reflecting the DOC-005 fork classifications); live-site verification receipt reports/live_site_verification_2026-09-27.json (12/17 passing at push time, five checks pending deploy propagation of the agent-index, works/software data, and hub pages); date-stamped generated surfaces (site facts, catalog, search index) converged to the receipt-day stamp. Binder chain bound with control-only tails; validate_repo.py green and the full suite 759 passed / 5 skipped at the pushed tip.

2026-09-25

  • Projections page (the "one surface, many projections" thesis, on site): new hand-authored projections.html documents the site as a single corpus with many projections (works, videos, artworks, domains, feeds, agent index), with SoftwarePage/WebPage JSON-LD, #page nav anchor, breadcrumb, and its own data/agent-index.json route. Registered in the sitemap, llms.txt, the nav manifest (top-level "Projections" entry), start-here, discovery, 404, and the software/publications/video hub navs.
  • Thinking log + On-my-mind band: pages/THINKING_LOG.md (one line per entry) feeds a new build_updates_page.py band on updates.html; the first entry frames the decade-plus longitudinal-record thesis.
  • Paper-page JSON-LD fix: paper folder pages are noindex, follow canonicals to works/{citation_key}.html; the stray BreadcrumbList JSON-LD that violated the canonical policy (and test_seo_invariants/test_paper_pages) is no longer emitted by build_paper_pages.py.
  • Domain-feed determinism fix: build_domain_feeds.py derives lastBuildDate from the newest item pubDate instead of wall-clock time, restoring the byte-identical-across-runs contract (test_domain_feeds 10/10); --check still reuses on-disk dates.
  • Software hero accuracy: pages/SOFTWARE.md hero updated 116 → 119 docxology repositories to match the curated table and data/current-counts.json (count-consistency gate green).
  • Fork classification (DOC-005 standing policy): the 2026-09-24 GitHub inventory refresh added 5 public forks (bend, graphcoder, leanchess, Moonkale, observer-patch-holography); classified under the principal's 2026-08-26 standing fork decision in data/repository-exclusions.json and the projection data/repository-classification.json regenerated (forks 96/96 acknowledged).

2026-09-24

  • Art collection discoverability (the Flickr → site loop closed): data/artworks.json refreshed live from Flickr via the new code/orchestrators/sync_flickr_artworks.py freshness step (flickr.people.getPublicPhotos + per-photo getSizes, key from the FLICKR_API_KEY env var/CI secret, deterministic upload-desc order, one-time HTML entity unescape of descriptions). Export now carries 943 artworks including the previously missing Solstice (Turning Point) (55349041831, 2026-06-21) plus additive license/license_name/ license_url/date_upload fields (942 records CC BY-NC 2.0; one CC BY-NC 4.0). Compact index rebuilt with a generator-owned page field.
  • New crawlable per-artwork pages: build_artwork_pages.py (generation step artwork-pages) emits artworks/<id>-<slug>.html for all 943 records — VisualArtwork + BreadcrumbList JSON-LD (creator @id reference, license, Flickr sameAs), meta description with unique fallbacks, canonical + OpenGraph/Twitter tags, meaningful alt text, tags, license notice, prev/next + tag-overlap related works, and a Flickr backlink. The artworks/index.html plain-HTML hub lists every page plus curated collections; 0 pages are thin (noindex) today — the 14 untagged records all carry real descriptions.
  • Curated themed hubs: pages/ART_COLLECTIONS.md (source of truth) → five art-collections/<slug>.html CollectionPage+ItemList pages (Neuroscience & Molecular Biology, Collective Behavior & Ants, Sacred Geometry & Kabbalistic Triangles, Active Inference, Americana & Seals).
  • art.html crawlability: tiles are now artworks/<id>-<slug>.html anchor links (lightbox = progressive enhancement via tileClick), the SSR floor is maintained by the new sync_art_gallery.py patcher step (art-gallery-sync), and the noscript block points at the plain-HTML artwork index. Gallery hydration (js/art-gallery.js) renders link tiles and defers to the lightbox only on plain clicks.
  • Sitemap & search: sitemap policy adds artworks/ + the five collection hubs; build_sitemap.py appends all non-thin artwork pages with Flickr-upload lastmod. Search index gains compact artwork items (thin pages excluded).
  • Identity graph: Flickr profile added to the Person sameAs in index.html, work pages, and publications JSON-LD; rel="me" Flickr link site-wide (index.html + deploy_seo_security.py append behavior + site_nav.REL_ME_LINKS); art entries in llms.txt, humans.txt, and start-here.html; domain pages (art-synergetics, entomology, active-inference) link their matching collections.
  • Publication intake (same day): paired-publication scan (470 pairs, zero warnings) applied 55 actions — the new Jev in Practice paper (Zenodo 10.5281/zenodo.22816187, folder 2026_JevPractice) plus 54 metadata updates; 14 needs_review pairs remain queue items for manual curation.

2026-09-18

  • Zenodo intake hygiene: the four software-only Zenodo deposits that kept re-flagging the uncatalogued check are now registered in KNOWN_STALE_RECORD_IDS with their curation dispositions — daf-jev release archive 22817425 (SOFTWARE.md row cites concept 10.5281/zenodo.22816187), EvoJump canonical curated deposit 22667290 per R80, EvoJump GitHub-Zenodo automated integration archive 22667291 per R81 (superseded; kept record 22667290), and the CCD software revision archive v2.6.0 22760881 (supplement to paper row #112; same class as 22666981). The freshness gate now reads zero uncatalogued records on a fresh 464-pair scan (464 pairs, 0 new, 0 needs_review, 50 update_existing = the already-applied 2026-09-17 set). The EvoJump software row carries its canonical concept DOI (10.5281/zenodo.22664675) in pages/SOFTWARE.md and data/software.json, matching the daf-jev curation format; software surfaces regenerated.
  • Live-doc legacy sweep: all 217 distinct .py references, ~50 CLI flags, numeric claims (16 accessibility checks, 32 report_paths importers, 61 orchestrators, 48-step generation chain), and every relative link target in live docs verified against current code — zero stale mentions found; the two build_image_sitemap.py mentions are deliberate removal records pinned by code/tests/test_regenerate_all.py:20-21. No edits required.
  • Private catch-up merge + DOC-010 re-run: the sidecar checkout merged public main into the sidecar main (400 commits since 0d4e8da1; 18 conflicts resolved in favor of the canonical upstream payloads). DOC-010 re-run at the merged head: gsc_followup_preflight PASS (sitemap 1375 URLs, seo_invariants ok, robots open-crawl, 29 live HTTP 200s; dated receipt reports/gsc_preflight_2026-09-18.json), checklist refreshed; signed-in Search Console steps remain externally blocked. Binder chain rebound at the merge receipt; validate_repo.py and the full suite green.

2026-09-17

  • September 17 publication and repository intake: full pairing scan (464 pairs, 247 releases, 158 records, zero warnings) — 50 strong update_existing actions applied (DOI-already-represented metadata and software-link refreshes), two needs_review pairs dispositioned as version-history-only (R82 fep_lean v1.2.0, R83 GNN v3.4.0; both works already in the bibliography). docxology/daf-jev curated into pages/SOFTWARE.md Developer Tools (TypeSafe Jev client toolkit, Zenodo concept DOI 10.5281/zenodo.22816187) — originals 115 → 116, grand total 154 → 155; classification queue clean (classify_repositories.py --check exit 0). Steganographer row fact-checked against its README (132 → 484 tests). Fresh snapshot/inventory/pairing/external-link/PSR receipts for 2026-09-17, discovery pointers re-rendered, binder chain rebound.
  • Hand-page content development: start-here (site map for humans and agents, grounded in current counts), collaborators (six collaborator cards, interview subjects, institutional rows), art (gallery explainer), videos (provenance + usage guide), cite-verify (identifier table, reuse-humility rules) — every claim restated from repo sources, zero new external URLs.
  • Website polish: 33 lines of dead CSS removed (unused selector groups, two unreferenced keyframes, one exact-duplicate rule — every removal verified repo-wide); og:site_name/og:locale completed across the hand-maintained pages; search.html rel="me" set completed to match the homepage.
  • DOC-014 landed: all 61 orchestrators' ad-hoc sys.path bootstraps collapsed to a uniform two-line thin wrapper (docxology_tools owns the canonical bootstrap); CLI surface unchanged (smoke-verified), suite green. The Pages-artifact dangling-reference guard now skips gitignored paths (a locally-generated regeneration-state.json reference no longer fails local assembly; CI behavior unchanged, fail-closed outside a repo), with a regression test; the two prose references to that gitignored path were reworded so the shipped artifact cannot 404 on it.

2026-09-15

  • Full-backlog orchestration wave (DOC-002/003/005/006/007/008/009/011/012/013/015): external evidence refreshed end-to-end (21-check snapshot, 20-section inventory — the AII textbook-group source added to the surface list, Scholar sync, GitHub inventory, fresh full pairing scan: 462 pairs, 0 needs_review, all 43 coverage exceptions re-validated). Catalog: three principal curations promoted to SOFTWARE.md Developer Tools (dicklesworthstone_meta_operator, Skillarum, nockchain-migration) — 115 originals / 154 grand total — classification queue at 4 honest defers pending paper/deposit. Privacy: insecure http:// URLs upgraded to https across the bibliography/works/resume/artwork chain, stealth records carry explicit status, public_integrity.py now fails plain http:// links. Agent layer: ReproducibilityLedger registered (schema registry 1.5) fixing the dangling schema_ref, two inert query recipes removed, release-integrity date preservation verified by-design with fresh SHAs. QA: browser smoke 10/10 + QA 7/7 re-run green at current HEAD; GSC preflight refreshed (signed-in Search Console steps remain externally blocked). Budget: artifact 825.6 MiB / 4,820 files, 54.4 MiB headroom, omission classes verified, ADR re-anchored. Runbooks: settle.md Notes and AGENT_START carry the discovery-pointer rule; the TODO binder bullet corrected to the fails-closed reality. SEC-002 unblock attempt: plugin enabled, scan attempted against a clean candidate, failed closed on the managed-profile runtime requirement — blocked state stands with updated evidence.
  • Fast intake path — parallel refresh, report reuse, fingerprint-gated regeneration: three composable speedups with no gate loosened. The 21-check snapshot in refresh_public_sources.py fans out through ThreadPoolExecutor(8) with order-identical output (the serial fan-out is now concurrent; 429 Retry-After and safe-fetch isolation unchanged; equivalence test-pinned). refresh_public_source_inventory.py --cache-reports reuses a same-day report's payloads (freshness keyed on generated_at, any !ok section fails closed to a live fetch, --force lifts it with warnings accepted, reuse adds an anchors provenance block). sync_paired_publications.py --cache-reports reuses the same-day report's GitHub releases and Zenodo records while already_reviewed classification becomes fingerprint-incremental — short-circuited when the (bibliography, decisions) hashes match the prior report's persisted classification_cache, full scan re-run on drift with a stderr note (drift surfaced, never absorbed); create_new/update_existing/needs_review always re-derive and cached-but-warned scans fail validation. check_zenodo_uncatalogued.py --records-from <paired_report.json> reuses the pairing scan's Zenodo records — one fetch per intake — failing closed on non-pairing sources, warned scans, or stale reports unless --force. Apply mode no longer regenerates inline: the hardcoded 13-generator run_regeneration chain is deleted and regenerate_all.py is the single write-mode driver, now input-gated — steps with declared inputs (paper-documents, work-pages, video-pages, asset-audit-first/final, accessibility-first/final) skip when their input fingerprints are unchanged (state in a gitignored local reports/ state file named regeneration-state.json — never shipped to Pages — fingerprint recorded only after a successful run, unmatched patterns and empty inputs never skip; --force restores always-run). Measured: cold chain 48 steps in 1m52s; warm no-op rerun skips 7/7 gated steps, runs 41 in 1m35s, byte-identical tree; validate_repo.py --check remains the ungated authority and the full settle battery (~6 min) and CI (~4 min) are unchanged. docs/operations/publication-sync.md documents the fast intake path (when it applies, the exact command sequence, what never gets skipped) with a signpost from AGENT_START.md and a regeneration-skip note in docs/operations/settle.md. Wall-clock measured same-day on this machine: snapshot fan-out 11.4s serial → 1.8s parallel (6.4×, byte-identical modulo generated_at); pairing scan 122.1s full → 0.60s with --cache-reports (~200×; 464 pairs, actions and counts byte-equal, zero warnings, fingerprint hashes stable across the two runs).

2026-09-12

  • Unified settle driver (code/orchestrators/settle.py) + change classifier (code/src/change_classifier.py): one command classifies dirty paths into surfaces (reports/site/code/tests/ci/docs/other) and runs a tiered gate battery — fast (sitemap --check, artifact budget, ruff), full (adds pytest + standard validate_repo.py, CI-equivalent per .github/workflows/validate.yml), release (adds validate_repo.py --release --strict-reports, binding the conventional reports/deployment-attestations/<HEAD>.json when present) — then lands the payload + control-tail commit split (release_controls.is_control_path is the single control predicate), optionally pushing and opening a PR. Decision tree, tier table, and measured timings live in the new docs/operations/settle.md runbook, signposted from AGENT_START.md.
  • Gate-latency fixes: code/src/build_stamp.py memoizes the build stamp (one git probe per process; video-pages check measured 55s → 5.7s), and build_sitemap.py's _batch_latest_map now caches its full-history walk result, including the failure path; previously every git_lastmod call re-walked the whole history (sitemap --check measured 0.8s after the fix versus 19s before, with an 11m47s worst case eliminated).
  • Docs-accuracy wave (DOC-013; PERF-001 closed): a three-reviewer sweep of docs/operations/*, the root agent docs, and the satellite docs checked every cited command/flag against the code and receipts; all findings landed. docs/operations/settle.md gained the code-verified corrections (drift review is inside the full battery; the manifest write fails closed on dirty post-deploy inputs with --allow-dirty-prepayload-evidence whitelisting only the pre-payload snapshot; the lint step's --no-sync exception; the binder chain restated in the canonical generation_plan.py order ending on a second build_generated_manifest.py pass, with build_public_source_review.py described as the excluded manual render). TODO.md closes PERF-001 with the measured evidence (batch walk adopted, byte-identical, 0.8s vs 19s) and records the 2026-09-12 session findings. The root docs (AGENTS, CLAUDE, GENERATED, AGENT_START) and nine operations runbooks now cross-reference the settle driver; stale references fixed (CLAUDE maintenance-log path, docs/AGENTS cache-bust version, ADR growth receipt re-anchored to the 2026-09-12 receipt, security-posture CSP example aligned to the deployed CSP_META_TAG, releases/design AGENTS boilerplate corrected to the single-origin flow, manuscript inventory completed).

2026-09-11

  • Backlog batch — all five 2026-09-10 principal-review items resolved: EvoJump: R80 accepts the six release pairs under the canonical curated concept 10.5281/zenodo.22664675 as software-catalog and R81 supersedes the six auto-archive pairs under 10.5281/zenodo.22664645 (data/paired-publication-decisions.json, groups 79 → 81; the citable paper remains row #12, concept 10.5281/zenodo.17229924; no new bibliography row). CCD row #112 adopted the Zenodo v2.4.0 self-title "Cognitive Diagrams: Reviewing Categorical Accounts of Linguistic Case". The On Time version-DOI citation (record 15168382) gained its full-identity VERSION_SPECIFIC_CITATION_EXCEPTIONS entry, and software-only record 22666981 was registered in KNOWN_STALE_RECORD_IDS by record id (check_zenodo_uncatalogued.py) — the next uncatalogued/DOI-role reports should show zero flags for both.
  • Superseded dated reports omitted from the Pages projection (DOC-009/DOC-012 durable fix): build_pages_artifact.py gained a third omission class — any tracked reports/ path strictly older than the newest date of its family (top-level reports/<family>_<YYYY-MM-DD> receipts, including qualifier variants like paired_publications_2026-06-09-itrace.json, plus whole dated reports/visual-qa/, reports/browser-smoke/, reports/browser-qa/ sets) is left out of the deploy artifact while every file stays committed in the repository. Files sharing a family's newest date stay published together, and the new shared citation scan (code/src/report_references.py, reused by prune_old_reports._referenced_externally so both tools share one exclusion semantics — papers/ in scope, inventory manifests and repo-only trees out) keeps any report cited from a published page or data file in the projection. Measured against the 2026-09-11 growth receipt (864.17 MiB, 5,184 files): 390 files / 70.9 MiB newly leave the artifact, projecting ≈793.3 MiB with ≈87 MiB of headroom under the unchanged 880 MiB review band — the band and the 900 MiB release ceiling are untouched, and each new evidence wave now adds only the newest receipt per family. The manifest gains the omitted_superseded_reports summary (count, bytes, examples) with the superseded_report_policy key, MANIFEST_COMPARISON_FIELDS covers the new field, the growth receipt adds omitted_superseded_report_count/_bytes, and a durable 404 guard fails the build if any repository-relative reports/ reference in the assembled projection was not copied. Docs: github-pages-artifact.md, report-retention.md (projection-only omission is the default archive tier, no retention entry needed), asset-strategy-adr.md execution subsection, and the agent-index PagesArtifactManifest schema; the principal-review TODO item is resolved.

2026-09-10

  • Publication intake — Skillarum #216 and 48 versioned updates (GitHub + Zenodo pairing): broad warning-free scan (reports/paired_publications_ 2026-09-10.json: 462 pairs; 239 releases; 155 Zenodo records) against the 2026-09-07 baseline. Applied the single strong create_new and 48 strong update_existing actions; works total 212 → 213. New work #216 Skillarum: Conditionally Reproducible Website-to-Agent-Skill Compilation (concept DOI 10.5281/zenodo.22663906; v0.2.0, 2026-09-08) with a complete paper folder and the versioned combined PDF. Row #112 (Cognitive Case Diagrams) updated to Zenodo record 22653315 v2.4.0 (2026-09-07) with the new 15.3 MB versioned PDF retained alongside the v1 PDF; the v2.5.0 re-release is ledgered as version-history-only (decision R79). The 47 baseline update_existing actions re-verified idempotently (folder metadata and PDF refreshes). New fork docxology/oh-my-pi registered under the standing fork policy (DOC-005 mechanized path, RGMs precedent). Principal-review items left open with evidence in TODO.md ("Session findings (2026-09-10)"): 12 EvoJump needs_review pairs (duplicate Zenodo concepts 22664645/22664675), the CCD row #112 title divergence, the deliberate On Time version-DOI citation (commit d086e7a3) missing its VERSION_SPECIFIC_CITATION_ EXCEPTIONS entry, and the software-only record 22666981.
  • Bibliography completeness backfills: Author cells filled for rows 199, 210, 211, and 216 via the DataCite registry pass (fetch_work_authors.py, title-similarity 1.0, no invented authors); Domain Legend now declares Other (row 215); GNN and Codomyrmex paper folders record their version records as artifact_doi/artifact_doi_url (verified live: 10.5281/zenodo.20671741, 10.5281/zenodo.21750801) with CITATION.cff DOI roles synced.
  • Agent-surface pointer refresh (generator fix): the dated-report rewrite in sync_site_facts.py covered only three report families, so llms.txt, discovery.html, and pages/DISCOVERY.md pointed agents at 3-4-month-old snapshots (external-links 2026-05-15, live-site 2026-07-17, source-coverage 2026-07-17; llms.txt never refreshed its snapshot/inventory pair). The rewrite list now covers external-links/triage, live-site verification, source coverage, and the snapshot/inventory pair for llms.txt, with the resolver glob digit-anchored so external_links_triage_* can no longer shadow external_links_*. Also: duplicated discovery-page ListItems and table rows removed; llms.txt manifest/registry versions corrected to 1.5/1.4 with the ScholarVerificationReceipt schema added; agent-index Work schema now documents the Report type and the authors field.
  • Light-mode card ink: under prefers-color-scheme: light the card family (white cards via the remapped --bg-card) still inherited hardcoded dark-theme ink (#fff headings, #cfcfcf body) and was unreadable on every page that renders cards. The light fixups block now maps card headings/body/stat numerals to the text tokens, with compensating light-ink rules for the by-design dark plates (art cards on their hardcoded #0b0b0b background, .section-alt dark bands) and a specificity bump for repositories.html's later-loading inline style. Verified with light/dark full-page captures before and after; dark mode is pixel-identical.
  • Docs and ledger hygiene: TODO.md's stale "Intake still blocked on DOC-004" sentence replaced with the 2026-09-07 closure pointer; docs/README.md index gained the missing asset-strategy-adr.md row and the manuscript/ tree; the 2026-09-08 section backfilled the PR #18 median-of-3 Lighthouse change; codemeta.json dateModified refreshed.
  • Artifact review budget moved 850 → 880 MiB after a growth review: the 2026-09-10 intake evidence (a new paired-publications report, refreshed public-source snapshot/inventory, external-link report, source coverage, and the dated public-source review) plus the 2026-09-11 UTC-rollover double-generation pushed the bounded Pages projection from 844.9 MiB to 870.5 MiB, tripping the review threshold in CI. Composition at review time: paper PDFs 681 MiB (78%), extracted paper images 950 MiB (omitted from the projection per policy), published dated reports ≈ 60 MiB, everything else small. The 880 MiB review threshold keeps 20 MiB of headroom below the 900 MiB release hard ceiling (code/src/ artifact_budget.py, build_pages_artifact.py, and the manifest warning_policy string updated together). The durable alternative — omitting superseded dated reports from the Pages projection while they remain in the repository — is flagged for the principal in TODO.md (DOC-009/DOC-012).

2026-09-08

  • Deploy-freshness alarm now passes — stamp comparison fixed to prefix semantics: the Verify live site workflow (added 2026-09-05) compared the live homepage's build stamp against main's HEAD truncated to 7 characters, but git's --short auto-lengthens on ambiguity and the deployed stamp is 8 (8ecdaa07) — 8ecdaa07 != 8ecdaa0 retried through the whole grace window and failed every run since the alarm shipped. Two corrections: the comparison is now prefix-based (run_freshness_check in code/src/deploy_freshness.py, with a regression test for the auto-lengthened form), and the workflow derives its expectation from the stamp embedded in the committed index.html rather than HEAD — page stamps are deliberately reused across non-rendering commits (build_stamp.reuse_or_current), so "stamp equals HEAD" was unsatisfiable by design while "live site serves the deployed artifact" is the check's actual intent.
  • CHANGELOG typography: rejoined "pure-function", split across lines in the 2026-09-07 entry.
  • Live-verification marker fixed for the compact JSON-LD emission: with the freshness alarm finally passing, its next step ran for the first time and failed on a stale pin — verify_live_site.py expected "@type": "CollectionPage" (with a space) on publications.html, while the page's JSON-LD is emitted compact ("@type":"CollectionPage"). The marker now matches the emitted format, consistent with the software.html marker.
  • CI robustness — median-of-3 Lighthouse scoring and structural JSON-LD checks (PR #18, commit 57cd548d): the Lighthouse budget gate tripped on shared-runner variance — index.html performance=52 < baseline floor 55 on a byte-identical homepage that had passed four PR runs and re-passed green on rerun (the file's baseline comment records ±20 swings, 76/75/57, on identical content). Per-page scoring now takes the median of 3 runs when the first run lands below a floor, so a single noisy dip no longer fails the gate while a genuine regression stays below the median; floor values are unchanged (integrator-owned). In the same pass the spaced-vs-compact marker pin in verify_live_site.py was replaced by structural JSON-LD parsing (jsonld_types_in_html) asserting @type values, immune to generator re-serialization. The workflow has been green end-to-end since.

2026-09-07

  • Search index split surfaces no longer skew their timestamps: when a regeneration changed the rendered body, build_search_index.py wrote search-index.json and its three split companions (search-index-core.json, search-index-content-work.json, search-index-content-video.json) with different generated_at values — stable_generated_at returned None for changed bodies, and the fallback None made render() and render_split() call the clock independently. The committed tree then failed validate_repo.py --check ("Stale generated search index surfaces: …") until a second idempotent run rewrote all four files with one reused timestamp; the 2 s skew in f58f0be9 and the 3 s skew in 71506b8b are both visible in git history. The builder now resolves one timestamp (stable_generated_at(...) or the candidate's own generated_at) before rendering any surface, and code/tests/test_build_search_index.py pins the invariant with a countable fake clock — under the old writer the changed-content test fails with exactly the observed main-vs-splits skew, and the unchanged-content test pins the existing stable-timestamp reuse. The three committed split artifacts were regenerated with the fixed writer (single 2026-09-05T22:50:01Z timestamp across all four surfaces).
  • TODO reconciliation (2026-09-07): every open item verified against live state — classify_repositories.py --check (2 primary decisions pending, matching DOC-005), the 2026-09-04 paired-publications report (5 unreviewed actions, queue sharpened in DOC-004 with the four DOIs and their already-represented status), sync_scholar_metrics.py --check (815 citations snapshot current), the 2026-09-05 external-link triage (no hard 404s; 129 warnings are bot-protection/timeouts/transients), asset and accessibility reports current. Resolved MIN-01/MIN-02 sections removed from TODO.md per the completed-rows-deleted convention (evidence: 2026-08-31 entry above); no new MAJOR items found.
  • PR validate workflow now validates the PR head commit: the pull_request event checked out the synthetic merge ref, whose first parent is the base branch, so its first-parent diff is the entire PR and the commit-bound source_commit_at_generation binding could never resolve there — every content PR since the provenance pattern landed failed build_pages_artifact.py --check-manifest ("stale Pages artifact manifest") while push runs stayed green. .github/workflows/validate.yml now checks out github.event.pull_request.head.sha.
  • Paired-publication decisions R73/R74 recorded: the 2026-09-04 review queue's Codomyrmex untagged-ce7d… v1.3.0 release and GNN v3.2.0 are now recorded superseded / bibliography-folder version-history-only in data/paired-publication-decisions.json, each citing its curated bibliography folder; the refreshed full-scope 2026-09-07 pairing receipt (450 pairs) drops the queue to 4 unreviewed actions — the rotating-draft Codomyrmex URLs and the Cognitive Integrity cluster held for the principal (DOC-005 overlap).
  • DOC-004 closed — the pairing queue reached zero: the principal classified docxology/cognitive_integrity as curated (added to pages/SOFTWARE.md, backed by papers/2026_CognitiveIntegrity/ and papers/2026_CognitiveIntegrityFramework/), confirmed superseded dispositions for the rotating Codomyrmex draft URLs (R75/R76) and for the ActiveInferAnts and CEREBRUM releases as version-specific artifacts under the represented Cognitive Integrity Framework DOI (R77/R78), and directed that draft releases be skipped from pairing. The refreshed full-scope 2026-09-07 pairing receipt has zero unreviewed candidates (447 pairs; the three skipped draft pairs account for the 450 → 447 delta) and classify_repositories.py leaves one open primary (docxology/dicklesworthstone_meta_operator).
  • Draft releases no longer pair: is_draft_release in code/src/publication_pairing.py skips releases whose canonical URL is the rotating untagged-<hash> draft slug, ending the requeue treadmill (R71 → R73 → R75 documented three rotations of the same Codomyrmex draft).
  • Provenance binding is merge-aware: latest_payload_commit in code/src/release_controls.py steps through a merge commit whose tree is identical to one of its parents (a PR merge ref's first parent is the base branch, so its first-parent diff is the whole branch and the tip-recorded source_commit_at_generation could never resolve there). Covered by pure-function fixtures and an end-to-end PR-merge-ref test that was mutation-verified to fail under the old walk.

2026-09-05

  • Child processes inherit the running interpreter: every orchestrator that shelled out to another repository script spawned a bare python3 resolved through PATH, so running validate_repo.py with the project's own .venv/bin/python silently validated under a different Python — reproducibly failing with ModuleNotFoundError: No module named 'PIL' while Pillow was installed in the launching environment. All 30 call sites in validate_repo.py, regenerate_all.py, sync_paired_publications.py, add_zenodo_only.py, browser_qa.py, browser_smoke.py, visual_qa.py, and the test suite now use sys.executable. The CV generator keeps its deliberate uv run python3 for byte-identical ReportLab PDFs, and code/tests/test_interpreter_consistency.py holds that as the one documented exception.
  • Lint gate widened from one rule to Ruff's default rule set: CI ran ruff check --select W605 code, which left 44 real findings invisible — unused imports, a shadowed json import, import sys missing from a module that calls sys.path.insert, ambiguous l bindings, and an unused argparse result. All 44 are fixed, the rule set now lives in pyproject.toml under [tool.ruff.lint] (Ruff defaults + W605), and both validate.yml and pages.yml run the config-driven ruff check code so a local run and CI enforce the same rules. Deliberate re-exports (seo_invariants.REDIRECT_STUBS) are marked rather than deleted.
  • Exclusion provenance is explicit (data/repository-exclusions.json schema 1.4): a fork that appeared in the 2026-08-30 inventory refresh (docxology/RGMs) sat unacknowledged and failed the classification contract. Rather than backdate a review nobody performed, reviewed_by now distinguishes principal (this repository was reviewed individually, on reviewed_at) from standing_policy (an already-recorded principal decision was applied to a repository nobody looked at one by one). A standing_policy entry must name that decision in policy_source and may only cover a fork — retiring a primary repository is always an individual call, enforced in classify_repositories.py with negative fixtures. data/agent-index.json documents all three provenance fields (schema registry 1.4). The fork-review test no longer pins the literal 2026-08-26 review date, which had made every later decision a test failure.
  • Dead image-sitemap references removed: build_image_sitemap.py and sitemap-images.xml were deleted on 2026-08-28, but the generated manifest kept publishing a rebuild command and an output file for both, so GENERATED.md and data/generated-manifest.json handed every agent a generator that does not exist. Cleared from the manifest, code/AGENTS.md, code/README.md, CLAUDE.md, and the asset-strategy ADR (which credited the decision to a test file that had also been deleted; the real pin is code/tests/test_regenerate_all.py). A new manifest test fails on any declared generator script that is missing from the tree.
  • The documented regeneration chain is now checked against the one that runs: CLAUDE.md's prose step list had fallen nine steps behind LOCAL_GENERATION_STEPS — it still named the deleted image-sitemap generator and omitted ten steps added since — so an agent following it would have rebuilt the site incorrectly and trusted the result. The chain is corrected, prune_old_reports.py's deliberate exclusion is stated (a destructive step has no place in an idempotent rebuild), and code/tests/test_generation_plan_docs.py pins prose to plan. code/tests/test_code_agents_doc.py does the same for code/AGENTS.md's layout table and its report_paths importer count, which had drifted twice (~20 → ~26 → the actual 31).
  • SEO invariants stop re-reading the site: one collect_seo_errors() pass decoded 5,613 files / 91.1 MB because eight checks walked overlapping page sets and check_canonical_integrity read every HTML file twice on its own. A revision-keyed page cache (path + inode + size + nanosecond mtime, so any rewrite or atomic replace misses) brings that to 1,582 files / 24.9 MB, and memoizing internal-link resolution — shared nav links resolved thousands of times through Path.resolve() — took check_canonical_integrity from 45.5 s to 1.2 s in the same run. Two regression tests hold both properties, including that a rewritten file is never served from the cache.
  • Browser tests skip instead of failing where a loopback socket cannot be bound: a sandbox that forbids bind() is a missing local capability like a missing chromium binary, not a site defect. Only PermissionError is treated this way; an address in use or any other OSError still fails.
  • .github/README.md is generated, not copied — 120 broken links on the repository page: GitHub renders .github/README.md in preference to the root README.md and resolves its relative links against .github/, so the 2026-09-02 byte-identical mirror pointed every repo-relative link at .github/publications.html, .github/papers/..., and so on. That is also why validate_repo.py's local-link gate was red at HEAD. New build_github_readme.py renders the mirror from README.md with ../-relocated targets and a do-not-edit marker, registered in the generation plan (after the final sync_site_facts.py, so it carries the final counts), the generated manifest, and code/AGENTS.md. The two files can no longer drift, because one is derived from the other. validate_local_links passes.
  • The external-link gate can stay green now: check_external_links.py --check was failing at HEAD because the cached coverage contract included the footer build-stamp permalink (.../commit/<sha>), which every regeneration rewrites — each refresh made the next commit's report "missing" the new SHA while carrying the old ones as "unexpected", so the gate could never be current for more than one commit, and the URLs are unverifiable before the commit is pushed anyway. Build-stamp permalinks joined IGNORE_PREFIXES, the same forgiveness build_stamp.reuse_on_disk_stamp and build_sitemap --check already apply. The report was then refreshed against the live web (809 URLs, 680 ok): no 404s, and the failure profile is unchanged from the 2026-08-29 report (98 doi.org 429 rate-limits, 24 bot-protection 403s, 1 LinkedIn 999), so the triage backlog is the same known set, not new rot.
  • A catalogued repository no longer asks to be reviewed again: curated is derived from data/software.json, but it was only recomputed when build_github_inventory.py ran a network fetch and froze the flag into its snapshot — so every catalog promotion left a review-queue row demanding a decision that had already been made, until someone happened to run an authenticated refresh. docxology/millennium_audit had been sitting there since 2026-09-04. classify_repositories.py now reads the catalog directly, as a second reason to exclude and never a reason to include, so it can only remove a false row. The primary review queue drops from three rows to the two that are genuinely undecided (docxology/cognitive_integrity, docxology/dicklesworthstone_meta_operator).
  • Redirect discovery stops re-reading the site: discover_redirect_stubs walks every HTML document through the hardened reader, and several callers reach it more than once per process, which made it the slowest thing in the test suite. It now memoizes by lstat identity — path, inode, size, nanosecond mtime — so a rewrite, an atomic replace, or a path that becomes a symlink all miss the cache and go back through the reader that refuses them. test_redirect_stubs.py fell from 439 s to 92 s, and two new tests hold both properties, including that a cached path replaced by a symlink still fails closed.
  • Regenerated the stale generated layer: reproducibility.json / reproducibility.html / REPRODUCIBILITY.md carried pre-millennium_audit figures (executable-code signal 63 → 64, mean score 4.693 → 4.698), and the nine domain pages carried a dateModified older than data/current-counts.json.

2026-09-02

  • MillenniumAudit follow-through and counts refresh (daf-stack docxsite pass):
  • Linked the standalone implementation repository docxology/millennium_audit from papers/2026_MillenniumAudit/ (README pointer and github_repo metadata field; AGENTS/SKILL/papers/paper_metadata.json regenerated).
  • Mirrored the full README into .github/README.md for GitHub profile rendering and dropped the duplicated tagline from the root README.
  • Refreshed reports/current_counts.md and data/current-counts.json via the documented pipeline (build_current_counts.py, then regenerate_all.py --validate) so the volatile totals no longer predate bibliography row 215, and aligned the hand-authored count sources with the parsed totals: pages/BIBLIOGRAPHY.md hero lines now 212 works / 195 indexed folders (types row gains **1** Report), papers/README.md heading now ## Papers (195) (test_count_consistency 4/4 passing).

2026-09-01

  • Publication Intake — MillenniumAudit (#215):
  • Cataloged Zenodo record 22243473 (concept DOI 10.5281/zenodo.22243472, version DOI 10.5281/zenodo.22243473): Forensic Audit of the MillenniumLean Clay-Proof Package (AIX Global) — a statement-level audit that independently reproduces every kernel-hygiene claim of the AIX Global MillenniumLean package (clean build, zero sorry, zero project axioms) under the pinned toolchain, then audits what the theorem types actually say; verdict: none of the six Clay Millennium Problems is resolved (14 line-anchored, byte-verified findings).
  • Added paper documentation folder papers/2026_MillenniumAudit/ with README, AGENTS, SKILL, CITATION.cff, metadata.json, source PDF, and full-text extraction.
  • Added bibliography row 215 and generated the work page, bibliography exports (bibliography.bib, bibliography.csl.json, bibliography.ris), data/works.json, data/publications-ld.json, work enrichment, and per-paper site cross-references.
  • Doc-pass residue cleanup: corrected manuscript/ → docs/manuscript/ paths across paper full-text extractions plus bibliography metadata corrections (2026-08-31 pass residue); removed the dated REVIEW_LOG_2026-08-31.md scratch report (point-in-time; content remains in git history).

2026-08-31

  • Agent-navigation doc pass (see REVIEW_LOG_2026-08-31.md): pointed the AGENT_START.md external-link triage recipe at the GENERATED.md triage row and the two-command refresh instead of the stale hard-coded 2026-05-15 report; added llms.txt to the GENERATED.md Volatile-site-facts outputs row (it is rewritten by sync_site_facts.py); refreshed the TODO.md last-reviewed stamp and recorded the two minor doc findings as resolved.

2026-08-26

  • Release-blocking link repair: corrected the canonical Science DOI for Defining events: 2020 in hindsight, removed three verified-dead AII software aliases rather than inventing replacement ownership, and migrated moved AII governance/program links to their live canonical routes.
  • Bounded link-gate coverage: external-link validation now scans every root-level public HTML route, while excluding only URLs used as CSP source expressions; real YouTube embed paths remain in scope. This exposed and corrected three additional generated domain/pillar links before publication.
  • Review discipline: current AII governance, advisory-board, and textbook-program wording remains explicitly queued for human review rather than silently changing time-sensitive profile claims.
  • Post-deploy evidence boundary: external-link triage is now recognized as a narrowly date-stamped post-deploy derivative only after its deterministic check matches the refreshed link report; malformed and unrelated report paths remain release-blocking source drift. Deterministic source renderers now resolve dated reports from Git-tracked source only, and the Pages manifest rejects dirty tracked post-deploy receipts, so temporary evidence cannot make a committed artifact pass locally but fail in a clean checkout.

2026-08-25

  • Public-main release-integrity controls: established a source-payload versus control-tail provenance model so deterministic manifests, artifact budgets, and review records can be checked without masking source drift. Publication, software, paper-document, pillar-page, redirect, and generation-plan checks now fail on stale source-rendered output.
  • Release deployment gate: GitHub Pages now runs the repository validator, full test suite, and pinned W605 Ruff gate before it assembles or deploys the bounded artifact. A release-ready claim remains blocked until the deployed SHA has fresh browser/link/live evidence and a post-deploy attestation.
  • Source visibility and JSON-LD: bibliography projections now use Git-tracked/non-ignored source visibility rather than machine-local derived files; publication and software CollectionPage JSON-LD replacement now shares one output-preserving renderer.
  • Scholar provenance: added data/scholar-verification-receipt.json, a SHA-256-bound baseline record for the existing 2026-06-09 direct logged-in snapshot. Any future snapshot edit invalidates the receipt and makes sync_scholar_metrics.py --check fail until a new direct-authenticated observation is reviewed and recorded; no Scholar metrics were changed in this release work.
  • Artifact and generated-write reliability: Pages retains provenance for omitted visual QA image binaries while enforcing its 900 MiB ceiling, and real-filesystem tests cover late hard-link aliases during atomic generated-output replacement.

2026-08-17

  • Publication Intake — docxplus (#212):
  • Cataloged new Zenodo publication record 21985580 (concept DOI 10.5281/zenodo.21983948, version DOI 10.5281/zenodo.21985580): docxplus — the Intelligent Document Container.
  • Added paper documentation folder papers/2026_DocxplusIntelligentDocument/ with full metadata, skill, and extracted text representations.
  • Updated active cataloged bibliography works count to 209 (212 work rows across 192 indexed paper folders).
  • Regenerated all 40 local surfaces, search indices, sitemaps, JSON-LD structured data, and release integrity manifests.

2026-08-14

  • SEO/GEO Optimization Pass & Technical Defects Resolved:
  • Hreflang elimination: Removed non-self-referential alternate links pointing 1,563 pages at the homepage from () and .
  • noindex + cross-canonical consolidation: Removed conflicting directives from paper pages and , keeping clean consolidation to landing pages.
  • Video title disambiguation: Implemented series/lecture token preservation in , eliminating all 30 duplicate collision groups across 1,127 video pages.
  • Work page title bounding: Bounded all work landing page lengths to $\le 70$ characters on clean word boundaries.
  • Schema & Entity hygiene: Fixed to point to , enriched with LinkedIn/YouTube/Bluesky, and deduplicated the Organization node in .
  • Service Worker optimization: Removed the 1.7MB from pre-caching in to protect offline installation while keeping lazy network-first search indexing.
  • Static SSR for publications table: Enhanced to statically emit all 206 publication elements into at build time for AI crawler indexing (GPTBot, ClaudeBot, PerplexityBot).
  • Video index equity: Consolidated search equity by pointing canonical to .
  • Scholarly citation graph: Enriched structured data across all work pages with and metadata.
  • Pillar Content & Generative Engine Optimization (GEO):
  • 5 Hand-crafted pillar research explainers authored:
  • : "What Is Cognitive Security? Theory, Threat Models, and Multi-Agent Defense" (~2,200 words, + JSON-LD).
  • : "Computational Entomology: Algorithms, Models, and Digital Insect Colonies" (~2,100 words, + JSON-LD).
  • : "Insect Cognition & Collective Intelligence: How Ant Colonies Think Without a Brain" (~2,100 words, + JSON-LD).
  • : "Active Inference & The Free Energy Principle: A Practical Tutorial" (~2,500 words, + JSON-LD).
  • : "Neurosymbolic AI & Active Inference: Bridging Symbolic Reasoning and Generative Agents" (~2,200 words, + JSON-LD).
  • GEO & AI Agent Provenance Layer: Thickened with verifiable agent provenance principles and a GEO architecture case study.
  • Site-wide editorial wiring: Added dedicated Research Guides section to , wired learning pathways in , registered routes in , , , and , and generated dedicated Open Graph cards in .

2026-08-13

  • DOC-005: promoted three paper-paired Active Inference Institute repositories into pages/SOFTWARE.md after they gained descriptions: Active_Fedference (paper 2026_RobustBeliefSharing), Active_Skillference (paper 2026_ActiveSkillference), and active_inference_power (paper 2026_ActiveInferencePower). AII catalogued 38→41; curated software total 143→146. Left as explicit deferrals (description-less or not auto-promoted): Active_Inference_Un0, docxology/GrowthModel, docxology/multi-time, and docxology/math4wisdom-superhuman-docs-archive. Forks were not auto-promoted.
  • Domain inference centralized into code/src/domain_inference.py (whole-word matching; computational before entomology). add_zenodo_only.py, batch_enrich_metadata.py, regenerate_docs.py, and publication_pairing.py now delegate. A metadata/bibliography diff showed text-only re-inference would reclassify 110 stored domains; no papers/*/metadata.json or pages/BIBLIOGRAPHY.md rewrites were accepted.
  • Review/CI/CSP: repository inventory pages load /js/repo-inventory.js instead of inline filter JS (CSP script-src 'self'); --check-manifest no longer requires an unwritten today's growth report; Pages deploy no longer cancels in-progress jobs; live-verify.yml and indexnow-on-push.yml run after a successful Pages deploy; Action bumps checkout@v7, setup-python@v7, configure-pages@v6, deploy-pages@v5.
  • Robustness backlog: shared esc() from js/search-utils.js; TTS panel aria-hidden tracks open state; ? keyboard shortcut works; check_external_links.py URL accounting and tab stripping; prune_old_reports.py scans the working tree; feed site-updates moved to data/site-updates.json; export_agent_data.py import is IO-free; brittle catalog pins replaced with structure/count assertions; add_zenodo_only.render_citation YAML-quotes version and names; regenerate_all.py re-runs sync_site_facts.py after the second accessibility audit.
  • Live-site snapshot refreshed: 12/17 markers passing with deployment pending until this commit is on Pages.

2026-08-10

  • Two new Zenodo software publications catalogued with full paper-folder documentation (README/AGENTS/SKILL/CITATION.cff/metadata.json + PDF) and regenerated bibliography, exports, work pages, domain pages, catalog, feed, sitemap, resume, accessibility, and Pages-manifest surfaces (works 206→208):
  • #210 Robust Belief Sharing in Federated Active Inference: A Recovery-Tested Generalized-Variational Framework for Categorical Contamination-Aware Consensus (, concept DOI zenodo.21864003; source repository ActiveInferenceInstitute/active_fedference).
  • #211 Active Skillference: A Validated Prerequisite Graph, Computational Claim Registry, and SkillTree Delivery Contract (, concept DOI zenodo.21865643; source repository ActiveInferenceInstitute/active_skillference).
  • 45 paired-publication update_existing refreshes applied: version/PDF/metadata + software-link updates across already-catalogued works (template exemplars, DigiPPPiP, PROJECT BOND, Codomyrmex v1.3.0-paper, AlphaCOGANT, Active Inference Power Suite, prior_cognitive_art, BeeStack, COGANT, and more).
  • Fix: string-form paired-publication decisions are now honored (code/orchestrators/sync_paired_publications.py). Decisions R25-R27 stored raw_candidates as bare release-URL strings, which reviewed_pair_decisions() silently dropped — re-surfacing a create_new duplicate for an already-decided pair. The parser now accepts both dict and URL-string candidates, the three decisions were normalized to dict form, and a regression test was added. The CogSecSkills v1.0.0/zenodo.20804585 false positive is again correctly reported already_reviewed instead of create_new (report: 0 new, 28 already reviewed).

2026-08-07

  • Two new Zenodo publications catalogued with paper-folder documentation and regenerated bibliography, exports, work pages, feeds, sitemap, resume, accessibility, and Pages-manifest surfaces:
  • #208 PROJECT BOND — The Special-Agent Operations Compendium (, concept DOI zenodo.21843592; source repository docxology/bond).
  • #209 DigiPPPiP: Digital Partner Pen Play in Parallel (, concept DOI zenodo.21815704; authors Siddhant Shrivastava, Evelyn C. Goh, Alexandra Mikhailova, and Daniel Ari Friedman).
  • Repository catalog updated: added docxology/bond to the owned Developer Tools list; owned-repository count 94→95 and total curated software count 132→133.
  • Canonical DOI corrected for kept ATLAS row #136 from version DOI zenodo.10362561 to concept DOI zenodo.10296601; the retired #49 duplicate remains a permanent gap.
  • Zenodo stale-version exceptions documented: records 21418901 (SynthOBS), 20804586 (CogSecSkills), and 19139090 (retired Template/Reproducible duplicate) are not new publications and are not added.
  • Release metadata: CITATION.cff bumped to 2026.08.07.
  • DOC-005 triage pass - ten more repositories promoted to pages/SOFTWARE.md after manual review of the authenticated inventory (forks cleared by the owner are now reflected; inventory is 241 public repos = 154 primary + 87 forks): the six research-practice line-set repos (line_set, black_line, white_line, golden_line, red_line, witness_register, new Research Practice summary category, 6), the DigiPPPiP computational companion Digi-PPPiP (Other), the whole-colony simulation scaffold BeeStack (Developer Tools), the template_advanced_literature_review exemplar (Developer Tools), and crescent-city-intel (Data & Policy). Owned repositories 95->105; curated total 133->143; data/repository-classification.json uncatalogued queue 112->101 with 4 primary-review non-fork items remaining (active_inference_power, Active_Inference_Un0, GrowthModel, multi-time - all description-less, deferred for human review).
  • DOC-004 decision R25 recorded in data/paired-publication-decisions.json: the single new-candidate action from the paired-publication refresh (CogSecSkills v1.0.0 GitHub release paired with old concept zenodo.20804585) is rejected as a superseded-version false positive - bibliography row #174 already cites concept zenodo.21513316.
  • DOC-004 decisions R26-R27 recorded in data/paired-publication-decisions.json: the 9 CogSecSkills release pairs under concept zenodo.21513316 (row #174) and 18 Codomyrmex release pairs under zenodo.21750800 (row #206) are superseded/version-history relations; no duplicate bibliography rows were created.
  • Authenticated GitHub inventory refresh (241 repos, data/github-repositories.json 2026-08-07) and refreshed 2026-08-07 pairing receipt; the curated flag is now computed against the full 143-row catalog.
  • Authenticated paired-publication refresh wrote 2026-08-07 pairing receipt: 402 pairs, 1 new candidate, 38 updates, and 363 items still requiring manual review under DOC-004; no candidates were auto-promoted.

2026-08-02

  • Seven new Zenodo publications catalogued via add_zenodo_only.py as the DAF "line set" research-practice instruments plus a software release, each with full paper-folder documentation (README/AGENTS/SKILL/CITATION.cff/metadata.json + PDF) and regenerated downstream surfaces:
  • #200 The Witness Register: Co-Registration Without Aggregation (, zenodo.21754245)
  • #201 The Line Set: Holding Instruments Apart (, zenodo.21754243)
  • #202 White Line: A Typed Ledger for the Edge of the Claim (, zenodo.21754241)
  • #203 Personal Red Lines for Development (, zenodo.21754239)
  • #204 Golden Line: Toward What Matters (, zenodo.21754237)
  • #205 Black Line: Strong Work in Public (, zenodo.21754235)
  • #206 Codomyrmex: An Artificial Ecology for Agentic Software Development (, zenodo.21750800)
  • Authors populated on all seven new rows (Friedman, Daniel Ari).
  • Zenodo uncatalogued queue cleared (0 new remaining; the SynthOBS 21418901 and CogSecSkills 20804586 flags are stale-version duplicate detections of already-catalogued works and were intentionally not added; the AII-Ecosystem 17982447 non-canonical-DOI note remains the documented exception).
  • GitHub paired-publication sync deferred: sync_paired_publications.py could not complete due a GitHub API rate limit (HTTP 403). codomyrmex's GitHub repo is already catalogued in SOFTWARE.md (Developer Tools); new line-set GitHub repos remain an open DOC-005 triage item pending a manual review pass.
  • Duplicate publications retired (2 rows) after a full duplicate audit (0 duplicate DOIs; 2 genuine title/DOI duplications found and removed, keeping the canonical rows): removed #49 (ATLAS concept-DOI zenodo.10296601, duplicate of kept #136 /10362561) and #193 (Template/Reproducible v1 concept zenodo.19139089, duplicate of kept #1 /16903351). Retired numbers are left as gaps (49, 118, 193) per the repo's immutable-catalog convention — no renumbering, so every later work URL is preserved. Removed the retired paper folders (papers/2023_ATLAS/, papers/2026_TemplateApproachReproducible2/) and their work pages; paper_metadata.json 189→187; papers/README.md and BIBLIOGRAPHY header updated. Works 206→204, Papers 185→183. #123 (template_ approach, template_template) confirmed distinct and retained.
  • One new Zenodo publication catalogued — #207 THALIA: Typed Harness with Analytical Lexical-Integrated Architecture (, zenodo.21763244, 2026-08-02), a typed agentic harness for reproducible long-context memory experiments, with paired GitHub repo docxology/thalia added to pages/SOFTWARE.md (owned-repos table; software catalog rows 93→94).
  • README signposting & completeness pass: expanded the Quick Links line and Repository Map so every site page is reached from the README — added research.html, reports.html, reproducibility.html, agent-verify.html, art.html, nft.html, meditations.html, about.html, exports.html and the pages/… sources (WIKIPEDIA.md, EVIDENCE.md, RESOURCES.md, VIDEOS.md, README.md); enumerated the eight domain-*.html clusters under the domains.html hub. Verified all 114 relative link targets resolve on disk (0 broken), all non-domain root .html and all pages/*.md are linked, and the Repository Map table is well-formed.
  • README + repo-organization pass: added the 2026 line-set research-practice works and new software to the relevant domain sections, added a " Research-Practice Line Set" subsection under Computational, surfaced THALIA + Active Inference Power Suite + Codomyrmex / line-set works in the domain tables, and added Thalia + the line-set repos to the highlighted-repositories list. Verified AGENTS.md-referenced orchestrators (regenerate_docs, sync_publications_html, sync_software_html, export_bibliography, export_agent_data, sync_scholar_metrics) all exist.
  • Accessibility/usability fix — site header was unusable: the global nav{position:fixed;top:0;z-index:200;background;...} rule in style.css applies to every <nav> element, so the breadcrumb <nav> rendered as a second full-width fixed dark bar painted directly over the primary navigation. On every page and viewport the logo, middle nav links, and the mobile hamburger were hidden/unclickable behind the breadcrumb bar. Fixed by pinning the breadcrumb as a slim bar directly below the nav (position:fixed;top:74px;z-index:150) at a z-index below the nav (200), in code/src/site_nav.py BREADCRUMB_CSS (generated pages), the inline breadcrumb <style> on the 11 hand-authored pages, and the work-page template in code/orchestrators/build_work_pages.py (230 breadcrumb pages total). Verified via Playwright: mobile hamburger receives taps and opens the menu, desktop nav links are no longer covered (0/11 covered), breadcrumb sits below the nav and non-hero pages stay clear. pytest 231 green, validate_repo green.
  • Bibliography 199→206; paper folders 181→188.
  • CITATION.cff version/date-released bumped to 2026.08.02.

2026-07-30

  • One new Zenodo publication catalogued via add_zenodo_only.py: #199 Active Inference Power Suite: Conditional Statistical Power under Controlled Generative Settings (, zenodo.21695160), with full paper folder documentation and regenerated downstream surfaces.
  • Two existing works updated to newer Zenodo records (same work, re-deposited): #174 CogSecSkills (20804585 → 21513316, domain corrected to ) and #198 SynthOBS & FractiSynth (21418687 → 21418782). Duplicate rows #200–#201 retired.
  • Comprehensive repo audit: Zenodo uncatalogued queue cleared (0 remaining), paired-publication scan (0 new pairs), all local validate_repo.py checks pass (39/40 — live-site mismatch at 197 vs 199 is expected pre-push), 216 pytest green, 1540/1540 static accessibility passes, 0 asset-size warnings, all count-consistency surfaces aligned.
  • Bibliography 197→199; paper folders 180→181.

2026-07-24

  • Repo-wide functional and signposting audit implemented: Pages growth reports are date-stable control metadata across UTC rollovers; release-integrity now records explicit deployment-pending reasons and supports a strict --require-deployed gate; accessibility commands use the supported --check flag; public-page SEO guidance distinguishes indexable pages from intentional paper/redirect exceptions; cache-buster documentation matches the generated layer; and the historical maintenance table moved out of always-loaded AGENTS.md.
  • Regeneration tail made one-pass idempotent: build_generated_manifest.py now runs before build_agent_index.py, so the agent route manifest hashes the current command matrix on its first pass; a final manifest pass still closes the release-integrity envelope. The ordering is regression-tested in test_regenerate_all.py.

2026-07-17

  • Compact video projection and repository triage added: the interactive timeline now loads generated data/videos-index.json (VideoIndex.v1, 1127 compact records) while the complete data/videos.json remains available for downloads and detail pages; the repository classification queue now preserves description, language, topics, privacy, update, and derived description-quality fields for all 292 uncatalogued repositories (45 missing, 43 short, 204 substantive descriptions) without auto-promotion.
  • Operating runbooks expanded: added repository-classification, CV release, evidence-refresh, accessibility/browser/visual QA, and live-verification runbooks; linked them from docs/README.md and AGENT_START.md. The ordered regeneration chain now re-runs asset and static accessibility reports after catalog rendering so generated report checks remain current when the catalog grows.
  • Regeneration pipeline made genuinely idempotent: fixed local-vs-UTC report selection at the date boundary, moved the agent manifest behind its report and Pages dependencies, and added body-aware timestamp reuse across generated snapshots, exports, CV, feeds, and indexes. A complete second regenerate_all.py pass now produces zero file-content changes; the Pages artifact also treats GENERATED.md as control metadata so the integrity tail cannot invalidate its own manifest.
  • Progressive browser QA added: browser_qa.py now exercises no-JavaScript fallbacks, mobile menu Escape/focus, publication filtering and sorting, gallery lightbox focus, reduced motion at 320px, forced colors, console/page errors, and YouTube iframe origin/title/referrer policy. The fresh report passes 7/7; browser smoke passes 10/10 and visual QA covers 26 screenshots.
  • Artwork gallery payload split: added generated data/artworks-index.json (942 grid records, 712 KiB versus the 3.1 MiB full export) and lazy full-detail loading for description search and lightbox resolution links. The complete data/artworks.json export remains available for agents and downloads.
  • Backlog and documentation cleaned: removed the completed stale issue-sync item from TODO.md, kept remaining release work as recurring gates, corrected the animation documentation's obsolete inline-script reference, and documented the GitHub Pages meta-CSP frame-ancestors limitation.
  • Public-source refresh completed without unreviewed promotion: refreshed the dated public-source/inventory, repository, coverage, and pairing reports; the current pairing scan found one represented update and no new or ambiguous rows. Repository validation passes 1531/1531 static accessibility checks, 186 tests, the 17/17 live snapshot gate, strict report validation, Pages artifact checks, and GSC preflight.

2026-07-16

  • Service worker v20 — content data is network-first: data/*.json and search-index.json were served cache-first, and each page fetches them at a stable ?v= query that does not change when the data does — so a returning visitor kept seeing the previous publication list (e.g. 193 works after #195 was added) until the SW version happened to bump. These content-data requests are now network-first (cache fallback for offline), matching navigations; static assets (JS/CSS/images/fonts) stay cache-first for speed. Bumped v19 → v20 to clear existing stale caches. This is why a freshly-added publication now appears immediately.
  • New publication catalogued — Active FractalRabbit: added "Active FractalRabbit: A Synthetic Benchmark for Belief Filtering Under Sparse Waypoint Observations" (Daniel Ari Friedman, Zenodo 2026-07-13, canonical concept DOI 10.5281/zenodo.21330636) as work #195 via add_zenodo_only.py. Created papers/2026_ActiveFractalRabbit/ (README/AGENTS/SKILL/CITATION.cff/metadata.json + PDF), the works/…195.html page, and regenerated the bibliography, works/software exports, catalog, search index, feed, sitemaps, and counts (bibliography works 193 → 194). check_zenodo_uncatalogued.py now reports the bibliography caught up (0 uncatalogued). Scope note: "0 uncatalogued" covers the Zenodo/ORCID deposit channel (DAF's primary archival target) — curated software (SOFTWARE.md) and presentations are deliberately-curated subsets, not auto-swept, and Google Scholar citation metrics (data/scholar-snapshot.json, as_of 2026-06-09) require DAF's own signed-in browser fetch per repo policy and were not updated. The record-17982447 non-canonical-DOI note is the documented AII-Ecosystem yearly-snapshot exception and is intentionally unchanged.
  • add_zenodo_only.py DOI fix: the tool wrote the version-specific DOI into the per-paper folder files (README/AGENTS/SKILL/CITATION.cff/metadata.json) while the bibliography and paper_metadata.json used the canonical concept DOI — splitting one work across two DOIs and failing test_paper_readme_contracts.py. Added a canonical_doi(rec, meta) helper (concept-DOI-first, mirroring the bibliography derivation) and routed every folder renderer through it; the version id is retained separately as record_id. Future Zenodo-only additions are now concept-DOI-consistent by construction.
  • CSP inline-script breakage fixed (art gallery restored): the script-src 'self' CSP deployed 2026-07-12 silently blocked the inline <script> blocks still shipping on art.html, videos.html, search.html, repositories.html, repositories-forks.html, and index.html — /art rendered zero of its 942 artworks and its search box only surfaced site-wide paper suggestions. All six pages' scripts externalized to js/art-gallery.js, js/videos-page.js, js/search-page.js, js/repo-inventory.js (shared by both repo pages), and js/index-page.js.
  • Art gallery search is art-local again: new data-local-search attribute on the /art search input opts it out of the site-wide search-index.json autocomplete in js/interactive.js; gallery filtering (title/description/tags over all 942 works) is handled by js/art-gallery.js. Also fixed a latent error-path bug (getElementById('empty') → emptyState) and a duplicated tts-controls.js include.
  • Lightbox double-advance fixed: the /art lightbox sort/size/nav controls carry data-* attributes already delegated by js/interactive.js to window.* globals; js/art-gallery.js was additionally addEventListener-wiring the same buttons, so each ‹/› click advanced two artworks. art-gallery.js now wires only the search input, Escape/arrow keys, and overlay-click and defers the delegated controls to interactive.js (caught by cross-vendor review).
  • videos.html skip-link: inline onfocus/onblur (CSP-blocked) replaced with a CSS :focus reveal rule.
  • Font loading un-broken CSP-safely: the media="print" onload="this.media='all'" pattern (blocked by CSP, so Google Fonts never applied on nine pages) replaced with media="print" data-media-swap="all" + an external swap in js/interactive.js; optimize_font_loading.py updated to emit and migrate to the new pattern.
  • publications.html search input: CSP-blocked inline oninput="filterPubs()" replaced with addEventListener wiring in js/publications.js.
  • Service worker v19: cache bumped; new per-page JS modules added to the precache list.

2026-07-12 (session 5)

  • Non-render-blocking Google Fonts: All 17 HTML pages with Google Fonts links converted to media="print" onload="this.media='all'" pattern, eliminating render-blocking CSS on first paint. New code/orchestrators/optimize_font_loading.py orchestrator.
  • Twitter Card tags on about.html: Added twitter:card, twitter:title, twitter:description, twitter:image meta tags for social sharing parity with OG tags.
  • apple-touch-icon optimized: Reduced from 77KB to 39KB (48% reduction) via PNG quantization to 128 colors, with no visible quality loss at 180x180.
  • extract_paper_texts.py error logging: Silent except Exception: continue now logs the exception with page number, image index, and PDF filename to stderr before continuing, preventing silent extraction failures.
  • Descriptive image alt text: Paper page thumbnail alt text now uses "Figure from [paper_name], page N" instead of raw filenames, improving screen reader usability and SEO.
  • Service worker v18: Cache version bumped to serve updated JS assets (CSP-compliant scripts, search badges, count badges).

2026-07-12 (session 4)

  • CITATION.cff generated for all 176 papers: New generate_citation_cff.py script creates CFF 1.2.0 files from metadata.json. 47 papers that were missing CITATION.cff now have it. Year extracted from folder names for older papers. Multi-line author format with ORCID for DAF.
  • 2024_BioFirm PPTX extraction: Downloaded BIOFIBIOFIRM_v2.pptx from Zenodo, extracted 11 slides of text + 8 images using python-pptx. 173 of 176 papers now have full_text.md (98.3% coverage).
  • Content-Security-Policy deployed: CSP meta tag (script-src 'self') now on all 23 indexable HTML pages, blocking inline event handlers and inline <script> blocks. Documented in docs/security/security-posture.md.
  • Inline event handlers eliminated: all 68 onclick/onchange/onsubmit handlers across 23 pages migrated to data-* attributes wired via addEventListener in js/interactive.js. New code/orchestrators/migrate_inline_handlers.py orchestrator.
  • rel="me" social verification links expanded from 3 pages to all 21 indexable pages (Scholar, ORCID, GitHub, LinkedIn, YouTube, Wikidata, Bluesky).
  • hreflang alternate links expanded from 1 page (index.html) to all 21 indexable pages.
  • External js/menu-esc.js: menu Escape-to-close handler moved from inline <script> to external file for CSP compliance.
  • Service worker bumped to v17: cache version updated for new JS assets.
  • Accessibility audit enhanced: accessibility_audit.py now checks for no_inline_handlers as a gate (16 checks, up from 15). All 23 pages pass.
  • art.html nav-toggle button: added missing .menu-btn for keyboard-accessible menu toggle on the art gallery page.
  • New orchestrators: deploy_seo_security.py (idempotent CSP/rel-me/hreflang deployment), migrate_inline_handlers.py (inline handler → data-attribute conversion).
  • Shared head extras: HEAD_EXTRAS constant in code/src/site_nav.py centralizes CSP + rel-me + hreflang + dns-prefetch for generated HTML templates (domain, work, paper, video pages).
  • All generated surfaces, sitemap, manifest, and asset-size report refreshed. All validation + 154 tests green.

2026-07-12 (session 3)

  • Image thumbnail previews on paper landing pages: image_gallery_link() in build_paper_pages.py now shows up to 6 thumbnail previews of extracted figures with lazy loading and a "+N more" indicator. All 176 paper pages regenerated.
  • CSS classes for thumbnails: .image-thumbs, .thumb-link, and .muted added to style.css, replacing inline styles for cleaner maintenance and consistent rendering.
  • Search index image_count: build_search_index.py now includes image_count for works with extracted images (140 works). Search results page shows "Full Text" and "N Images" badges on matching works.
  • llms.txt stale counts corrected: 171→172 full text papers, 139→168 image galleries, 8986→9938 images.
  • PPTX text extraction: Extracted text from BIOFIBIOFIRM_v2.pptx (11 slides) for 2025_BiofirmDevelopmentWith. 172 of 176 papers now have full_text.md (97.7% coverage).
  • All generated surfaces, sitemap, manifest, and asset-size report refreshed. All validation + 154 tests green.

2026-07-12

  • Added work #194 "Prior Cognitive Art" (zenodo.21316510, docxology/prior_cognitive_art v0.1.0) via the canonical sync_paired_publications.py --apply path. Paper folder, bibliography row, work page, domain page, search index, sitemap, and all generated surfaces updated.
  • Enhanced full-text extraction pipeline: extract_paper_texts.py now embeds inline image references in full_text.md at the correct page positions, so readers and crawlers can discover extracted figures in context.
  • 171 papers now have full_text.md (was 166 — gained 5 from ODT/DOCX/PDF source extractions)
  • 8,986 images extracted across 139 papers (was 3,057 across 136)
  • 8,924 image references embedded inline in full_text.md with 0 broken links
  • Downloaded and extracted text from 4 Zenodo ODT/DOCX transcript files and 1 misnamed PDF
  • format_markdown() now accepts an images parameter and groups image refs by page
  • extract_images() now returns (page_num, filename) tuples for page-aware embedding
  • Image sitemap expansion: build_image_sitemap.py now includes paper-extracted figures in sitemap-images.xml (9,928 total images, was 942 — 139 paper pages with image galleries)
  • Full-text extraction pipeline: new code/orchestrators/extract_paper_texts.py extracts page-level text and embedded images from all paper PDFs using PyMuPDF (with OCR fallback via tesseract for scanned PDFs).
  • 166 papers now have full_text.md with complete page-by-page text extraction
  • 3,057 images extracted to per-paper images/ subdirectories across 136 papers
  • 0 errors across all 166 extractions (10 papers have no PDF — Zenodo-only metadata, slides, or non-PDF artifacts)
  • Paper landing pages (papers/*/index.html) now link to full_text.md and the images/ gallery
  • Work pages now include JSON-LD encoding field (Schema.org TextObject) for all 166 works with full text
  • Search index includes full_text_url for all 166 works with extracted text
  • papers/README.md updated to document full_text.md and images/ as standard folder contents
  • llms.txt updated with full-text extraction pipeline link
  • Fixed regenerate_all.py to use sys.executable instead of hardcoded python3 (was breaking on Python 3.9 vs 3.14 datetime.UTC import)
  • Fixed build_current_counts.py Python 3.9 compatibility (datetime.UTC → datetime.timezone.utc)
  • Fixed build_resume.py to gracefully skip PDF generation when reportlab is not installed
  • Fixed validate_repo.py to skip full_text.md files in local-link validation (academic paper internal references)
  • Fixed build_sitemap.py to not list /papers/ URLs (SEO invariant compliance)
  • All 22 local generated surfaces regenerated (bibliography, publications, software, domains, works, paper pages, exports, evidence, catalog, search index, RSS feed, sitemap, manifest)

2026-07-05

  • Comprehensive interactive-layer buildout across all 23 indexable pages:
  • Text-to-Speech (TTS): Web Speech API integration (js/tts-controls.js) — floating control panel, speed/voice selection, paragraph highlighting, keyboard shortcut T
  • Interactive features (js/interactive.js): reading progress bar, scroll-to-top button, keyboard shortcuts overlay (?), section anchor copy-links, search autocomplete from search-index.json, image lazy loading, external link safety
  • +515 lines CSS for all new components with responsive, print, and reduced-motion overrides
  • Service Worker v16 — caches new JS modules, drops stale cache
  • Performance: 5 hero-art image preloads, resource hints (dns-prefetch, prefetch) across all pages, preconnect for Scholar/ORCID
  • SEO: rel="me" social profile verification links, hreflang support, WebPage JSON-LD on homepage
  • Docs: SKILL.md, docs/design/components/tts.md, docs/design/animations.md; updated AGENTS.md with WEB DEVELOPER role, CLAUDE.md with interactive layer commands, design-system docs with new components
  • 5 noindex redirect stubs intentionally skipped (about, research, meditations, nft, google verification)

2026-07-01

  • Massive metadata enrichment sweep: all 164 paper folders now have extended schema (domain, type, methods, key_findings, related_papers, checked_at) via batch_enrich_metadata.py. 44 previously-missing metadata.json files created, 119 existing ones extended with paper-specific content.
  • Multi-agent triple audit completed: metadata completeness (164/164 pass), navigability (all SKILL.md cross-references valid, all bibliography rows linked), domain accuracy (0 discrepancies), HTML output quality (26 root pages + 183 work pages well-formed, JSON-LD valid), live site parity (14/14 checks pass, no drift).
  • Quality improvement pass: replaced 3 placeholder key_findings, fixed 55 truncated findings with sentence-boundary extraction, replaced generic domain-template methods with paper-specific methods for 163 papers (e.g. "Uniparental marker haplotype analysis", "Lean 4 theorem proving", "CPRA legal analysis").
  • Added code/orchestrators/batch_enrich_metadata.py (bulk metadata generation), code/orchestrators/improve_metadata_quality.py (paper-specific methods/findings), code/src/paper_metadata_schema.py (dataclass schema).
  • Full validate_repo.py --strict-reports pipeline passes (30+ checks including browser smoke, accessibility, visual QA, live-site verification, sitemap, search index, external links).
  • Added works #180 "Sortition Upstream of NTQR" (zenodo.21083779), #181 "Exploratory Data Analysis: A Reproducible Notebook Template" (zenodo.21086292), #182 "A Domain Language for Specifying Controlled Methods" (zenodo.21086548) — all Computational, with paper folders and full metadata.

2026-06-29

  • Added work #179 "Mapping William Blake's Works" (zenodo.21047573, docxology/blake v0.1.0) via the canonical sync_paired_publications.py --apply path, plus benign checked_at metadata bumps on existing rows. Full local regenerate (works.json, exports, publications, work/domain/paper pages, resume, claims, catalog, search index, feed, sitemap, counts) and live-site snapshot refresh; validate_repo + pytest green. Also fixed 32 malformed bare-domain markdown links in reports/publishing_status_megaindex.md.

2026-06-27

  • Added work #178 "AlphaCOGANT: Recursive Corporate Self-Improvement as Active Inference" (zenodo.20976824, docxology/alphacogant v1.0.1) with paper folder, PDF, and work page; updated "A template/ approach to Reproducible Generative Research" to Zenodo version v1.0.9. Regenerated the dependent layer and refreshed the live-site verification snapshot.
  • build_work_pages.py now renders a Platform availability card on every canonical work page (Zenodo/GitHub/arXiv/OSF/HuggingFace/Software-Heritage/PyPI/site), driven by a new data/publishing-status.json; added reports/publishing_status_megaindex.md, a publishing-status mega-index across 272 items (works + software) with per-platform coverage and gaps. Began archiving origins to Software Heritage via anonymous Save Code Now.

2026-06-26

  • Added works #176 "A Living Meta-Analysis of the Modafinil Literature" and #177 "Refinement of Gold" via the paired GitHub+Zenodo scan, with new paper folders (README/AGENTS/SKILL/CITATION.cff/metadata.json) and Zenodo PDFs; refreshed checked_at metadata on 27 existing paired works. Regenerated bibliography exports, publications/works/paper/domain pages, catalog, search index, feed, sitemap, resume, claims, evidence/reconciliation, and current counts; live-site snapshot refreshed.

2026-06-24

  • Added work #175 "Realizing Emptiness: Operational Surrogates for No-Self-Evidence, QRF Opacification, and Bayesian Model Reduction" (zenodo.20834846, docxology/realizing_emptiness v1.0.0) via sync_paired_publications.py --apply; refreshed checked_at metadata and software links for 25 existing works; fixed the pages/BIBLIOGRAPHY.md paper-folder prose count (156→157).
  • Added code/orchestrators/regenerate_all.py: a single-command, dependency-ordered, local-only write-mode counterpart to validate_repo.py's --check sequence (manifest last), replacing manual whack-a-mole after a publication-sync apply. refresh_bibliography_counts now also keeps the "N indexed paper folders" prose current. validate_repo.py now runs sync_scholar_metrics.py --check, catching Scholar-metric drift across README/BIBLIOGRAPHY/PROFILE/LINKS/DISCOVERY (previously unguarded).
  • Pruned superseded dated QA screenshot sets under reports/visual-qa and reports/browser-smoke (validation only reads the latest); reports/ 100 MB → 40 MB. add_zenodo_only.py now runs regenerate_all.py automatically after adding records.
  • Softened unguarded external/domain prose counts that would drift as external repos grow (codomyrmex module counts, COGSEC bio paper/book counts); fixed regenerate_all.py's report-producer ordering so write-mode indexes don't go stale relative to the dated reports they link.

2026-06-22

  • Synced the CogSecSkills publication (zenodo.20804585, ) and hardened publication intake.

2026-06-21

  • Added two Zenodo publications: Template Madlib (zenodo.20786638, ) — docxology/template_madlib, deterministic token injection for conditional IMRAD manuscripts — as work 172, and California Public Records (zenodo.20789899, ) — a technical and legal reference for the post-AB 473 era — as work 173. Downloaded both PDFs, generated work/paper pages, and registered papers/README.md entries. Bibliography 170→172; paper folders 153→155. Also added the previously-missing COGANT-0.6.0.pdf and removed a duplicate On-Policy Distillation folder.
  • Repo-wide Zenodo DOI concept-consistency pass: switched 70 bibliography rows (plus the 4 newest works and the itrace / ntqr_llm / on_policy_distillation software-catalog links) from per-version DOIs to their concept DOIs, each verified against the Zenodo API conceptdoi field so the citation always resolves to the latest version. Deliberately excluded version-distinct works that share a single concept DOI (e.g. the AII Ecosystem v1/v2/v3 snapshots) to avoid duplicate DOIs.
  • Added AGEINT (docxology/AGEINT) and template_madlib (docxology/template_madlib) to the software catalog: docxology owned 58→60, Grand Total 92→94 (Education 5→6, Developer Tools 15→16); recomputed the GitHub-inventory curated split.
  • Fixes: sync_publications_html.py now patches twitter:image:alt with the live work count (was stale at 170); removed a doubled "Abstract" heading and added the MIT license field in the On-Policy Distillation paper folder; reconciled that folder's metadata to its concept DOI.
  • Design/a11y pass: reconciled design-system.md to the actual style.css (corrected background/radius/body-font/focus-color tokens, documented previously-missing tokens); added mobile-menu aria-expanded toggling, ESC-to-close, and a 44px WCAG touch target across all 20 nav pages and their generators; fixed heading-hierarchy skips (h1→h3/h2→h4) on domain and index pages; added aria-labels to 3 unlabelled search inputs; tokenized 26 hardcoded gold rgba() values into 14 --gold-NN tokens (no visual change); accessibility_audit.py now enforces single-h1, no-heading-skips, and form-control-labels (22/22 pages pass).
  • Migrated the site body font from Georgia serif to Inter to match the design system (Playfair Display headings unchanged); centralized the duplicated menu-ESC handler into site_nav.MENU_ESC_SCRIPT; removed 26 lines of verified-dead CSS (duplicate footer block, zero-reference selectors) after confirming the two-layer base+newspaper override structure is intentional, not duplication.

2026-06-17

  • Added AGEINT: Agentic Intelligence (zenodo.20732275, ) — docxology/AGEINT v0.1.0, a Synthetic Analytic Tradecraft curriculum-and-assurance atlas — as work 170 via the canonical sync_paired_publications.py apply path, scoped --since 2026-06-16 to isolate the single new release. Stripped the <p> HTML the Zenodo abstract carried into metadata.json/README.md; renumbered the papers/README.md index strictly 1..152 (closed the gap at 111 left by the CEREBRUM dedup, plus a duplicate 152). Regenerated all dependent surfaces. Bibliography 168→169; paper folders 151→152; software unchanged at 91; Computational domain 27→28. Identified CEREBRUM (zenodo.15231156) and Self-Improvement Agent Harness (zenodo.20693012) as re-versions of existing works …010 / …127 (newer version DOIs of already-curated concepts) — update-only, not new rows.

2026-06-15

  • Completed COGANT (zenodo.20705351, ) and coasys / COGANT software-catalog intake after commit b6fa1b4: added 2026_COGANT to papers/README.md (151 folders), paper_metadata.json, and the Computational domain blurb (27 works); regenerated publications, software, sitemap, resume, evidence, search, feed, domain, and count exports. Bibliography 167→168; software catalog 89→91 (58 owned + 33 AII); paper folders 150→151.

2026-06-14

  • Added two Zenodo-only publications via add_zenodo_only.py: DemoCreate (zenodo.20693217, ) and ENTO (zenodo.20647443, ); added the GeneralizedNotationNotation (GNN) software v2.0.0 (zenodo.20671741, ) as a distinct work from the 2023 GNN paper (different Zenodo concept). Bibliography 165→167.
  • Completed the CEREBRUM dedup the 2026-06-10 pass flagged for the maintainer: removed the duplicate work …118 (papers/2025_CEREBRUM2, the v1.4 deposit zenodo.15231156) outright, keeping the primary …010 (papers/2025_CEREBRUM, zenodo.15170907). Retired the now-empty WORK_CANONICAL_OVERRIDES entry and its regression test; re-pointed the CEREBRUM software-catalog entry to the surviving paper folder. Removed-work numbers are retired, not renumbered, so existing work-page URLs stay stable — sync_publications_html.validate_rows now allows numbering gaps (strictly-increasing instead of exactly-sequential).
  • Re-pointed the template/ Reproducible Generative Research bibliography entry (row 1) to its latest release zenodo.20669283 (v3.4.0).
  • Reconciled all volatile-count surfaces to 167 works / 150 paper folders (BIBLIOGRAPHY header + per-domain counts, papers/README, index.html, DISCOVERY, and the regenerated data/exports); count-consistency drift clean, 92 tests passing.
  • Hardened work identity without a URL migration (FirstPrinciples/RedTeam scoping concluded slug/DOI URLs would cost 168 forever-stubs on a no-redirect static host). build_work_pages.py now fails loud on a duplicate citation_key (was silent last-write-wins page overwrite); new test_frozen_work_keys.py freezes every num → citation_key so a retitle that would churn a live URL fails CI; documented works/{citation_key}.html as a permanent opaque contract in the canonical policy.
  • Modularized docs/ from 7 flat files into topic subdirectories (operations/, seo/, design/, security/, releases/) with a new docs/README.md navigation index; updated all inbound references across code, agent entrypoints, and the search index. docs/AGENTS.md retained as agent operational guidance.
  • Documentation/signpost accuracy pass: reconciled five hand-maintained narrative pages (LINKS, PROFILE, WIKIPEDIA, COLLABORATORS, MEDIA) that had silently drifted to 125/154-work counts → 167, and added them to count_consistency so they can no longer rot. Linked the new docs/README.md index from README.md, AGENT_START.md, and llms.txt; documented data/works.json as the canonical works registry and the security.txt/warrant-canary status under docs/security/.

2026-06-10

  • SEO/discoverability pass. Fixed work-page meta descriptions that were hard-cut mid-word: build_work_pages.py now clips on a word boundary with an ellipsis via new clip_description() in code/src/site_nav.py (145 of 165 work descriptions corrected; rendered length ≤160).
  • Added Twitter Card (summary_large_image) and og:image:alt tags site-wide. Generators (build_work_pages, build_domain_pages, build_catalog, build_exports_page, build_evidence_page, build_updates_page, build_github_inventory) emit them; hand-maintained pages (index, publications, art, videos, collaborators, search, discovery, cite-verify, media, software) are covered by a new idempotent code/orchestrators/ensure_social_meta.py.
  • Added the sixth research-domain landing page domain-biomedicine.html (Genetics & Biomedicine, , 15 works) with og-biomedicine.jpg; added to sitemap_policy.py; relinked the homepage card from a raw pages/BIBLIOGRAPHY.md#… anchor to the new page.
  • Polished homepage: removed duplicate theme-color and standardized to #0c0c0e (matches manifest); tightened the meta/og description to 153 chars; added word separators between publication-card title/venue/citation spans so text extractors and screen readers no longer read them run-together.
  • New SEO invariants in code/src/seo_invariants.py (check_social_meta, check_work_descriptions) with tests in test_seo_invariants.py and test_site_nav.py; full suite 88 passing.
  • Deep-scan follow-ups: work-page fallback meta descriptions now include the title (eliminated 17 duplicate/templated descriptions across same-type works; 162/165 work descriptions now unique). Enriched ScholarlyArticle.author JSON-LD with inline @type/name/url (not just a cross-document @id) so search engines reliably attribute authorship for rich results. Applied the same word-boundary clip_description() to build_paper_pages.py (148 paper-folder pages no longer truncate mid-word). Verified site-wide: 373 JSON-LD blocks all valid, full image-alt coverage (incl. the JS-rendered art gallery via artAlt()), no broken internal links.
  • Reviewed Google Search Console (3-month window): 74 clicks / 3.25K impressions / 2.3% CTR / avg position 9; 118 indexed vs 111 not (43 "crawled-not-indexed" + 50 "discovered-not-indexed" thin/templated work pages — the description/author fixes target these). Confirmed the lone "Not found (404)" (papers/2024_PopulationSearch/) is stale (crawled before publish; now live, noindex, canonicalized). Findings + roadmap recorded in reports/seo-discoverability-audit-2026-06-10.md.
  • Added a Google image sitemap (sitemap-images.xml, new build_image_sitemap.py) declaring 942 gallery artworks for Google Images discovery — preferring the same-domain /art/*.jpg copies (939) over Flickr, since art.html renders client-side and the images are otherwise invisible to crawlers. Registered in robots.txt; well-formedness + freshness covered by test_build_image_sitemap.py.
  • Deduplicated the CEREBRUM pair: work …118 (papers/2025_CEREBRUM2, the v1.4 deposit) now sets rel=canonical + og:url to the primary entry …010 (papers/2025_CEREBRUM), consolidating ranking signals for the same paper. Added a shared WORK_CANONICAL_OVERRIDES/canonical_work_key in code/src/site_nav.py, used by both the work-page generator and the check_work_pages invariant, with a regression test.
  • Corrected three mis-attributed paper abstracts (source READMEs had the wrong paper's text), sourced from authoritative records: 2023_HoneyBeeGeneExpression (Zenodo TSGE meta-analysis abstract), 2023_AII_v1 (AII overview, recovered from the file's own schema block — the body had TrustFinder text), and 2023_ToComment (a Physics of Life Reviews commentary on Manrique & Walker's "To copy or not to copy?", per Semantic Scholar — not the digital-memes text it carried). All 165 work-page meta descriptions are now unique. Confirmed www→apex 301 redirect and self-canonical (no duplicate-content split). Flagged: works …010/…118 are the same CEREBRUM paper (DOI zenodo.15170907 resolves to 15231156, v1.4) — a bibliography dedup/curation decision left to the maintainer.

2026-06-04

  • Applied four strong GitHub release + Zenodo publication pairs: 2026_DeterministicTestbedSelf, 2026_RecoveringLLMPersona, 2026_Triplicate, and 2026_TemplateTextbook; bibliography 150→154, paper folders 143→147.
  • Refreshed represented GitHub/Zenodo publication pairs for existing works, including WhenDoBugs, MusicNeverStopped, BeeStack, BiologyTextbook, CrescentCity, and template-derived exemplars; left review-only pairings untouched.
  • Added six owned repositories to the curated software catalog (template_autoscientists, template_newspaper, template_textbook, ntqr_llm, grateful_data, cohereants); software catalog 50→56 owned, 82→88 total.
  • Recorded June 4 public API counts: docxology GitHub 305 public repositories, AII 51, Zenodo exact-name 40, Zenodo ORCID-linked 98; treated docxology/template DOI 10.5281/zenodo.20469500 as software/version metadata, not a bibliography work row.
  • Expanded volatile-count validation across README, AGENTS files, BIBLIOGRAPHY summaries, Discovery, llms.txt, software JSON/LD, and GitHub inventory counts.

2026-05-26

  • Thermo-nuclear documentation pass: aligned volatile counts (116 works / 109 paper folders) across llms.txt, release notes, and publications head meta; added count-consistency validation (code/src/count_consistency.py).
  • Refactored publications.html to load catalog rows from data/works.json via js/publications.js; externalized CollectionPage JSON-LD to data/publications-ld.json (166-line shell).
  • Added docs/SECURITY.md, docs/DESIGN_SYSTEM.md, reports/web_assessment_2026-05-26.md, shared nav (code/src/site_nav.py) on work and domain pages; removed Inter from body typography in favor of system-ui stack.
  • Added 2026_BiologyTextbook — Introduction to Biology: A Generative Approach (DOI 10.5281/zenodo.20286478; repo docxology/biology_textbook); bibliography 116→117; paper folders 109→110; Computational domain 7→8; Books 3→4.
  • Added papers/software_table.py and papers/sync_software_html.py: full 82-row software catalog sync from pages/SOFTWARE.md to software.html + data/software-ld.json; fixed SOFTWARE.md subtotal 49→50; biology_textbook on software surface; work-page source-repo links from metadata.json.

2026-05-19

  • Added 2026_CrescentCity — Crescent City in Living Waves: Space, Time, People, and Minds on the Southern Cascadian Coast (DOI 10.5281/zenodo.20286171; repo docxology/crescent_city), filed under Cognitive Security.
  • Created the per-paper documentation set: README.md, AGENTS.md, SKILL.md, CITATION.cff, and metadata.json.
  • Registered the work in papers/paper_metadata.json, the papers/README.md index, and papers/AGENTS.md (counts + maintenance log + domain coverage).
  • Added bibliography table row 116 in pages/BIBLIOGRAPHY.md and the Cognitive Security domain index; regenerated data/works.json and bibliography exports via export_bibliography.py.
  • Resynced publications.html PUBS + JSON-LD mainEntity and regenerated downstream artifacts (search index, domain/work/catalog pages, evidence, feed, sitemap, updates).
  • Updated current counts to 116 curated works, 109 per-paper folders at the latest check.

2026-05-13

  • Added machine-readable discovery artifacts: llms.txt, CITATION.cff, codemeta.json, bibliography exports, and structured data/*.json.
  • Added domain landing pages, per-work landing pages, a generated search index, and an RSS feed.
  • Added search.html, opensearch.xml, catalog.html, data/catalog.json, GENERATED.md, and data/generated-manifest.json for human search, browser discovery, dataset discovery, and generated-file rebuild provenance.
  • Enriched generated work pages and the search index with abstracts, keywords, methods, and findings extracted from per-paper README/SKILL files.
  • Added scoped external-link reporting plus a weekly freshness workflow, Dependabot, tighter workflow permissions, and workflow concurrency controls.
  • Added updates.html, AGENT_START.md, humans.txt, .well-known/security.txt, external-link triage, live-site verification, asset-size audit, and selector-based browser smoke reporting.
  • Expanded per-work JSON-LD with citation text, DOI identifiers, keywords, documentation links, and structured publisher/about fields.
  • Added citation and evidence pages with claim confidence, caveats, maintenance ownership, and public-source reconciliation.
  • Added fresh Open Graph images for the homepage, major sections, and research domains.
  • Added source-refresh, bibliography export, software export, work-page, evidence, sitemap, reconciliation, accessibility, and visual-QA orchestrators.
  • Added GitHub Actions validation for generated files, local links, JSON-LD, sitemap targets, and the Python test suite.
  • Updated current counts to 115 curated works, 108 per-paper folders, 48 owned software repositories, 32 AII catalogued contributions, and 286 public docxology GitHub repositories at the latest API check.

2026-05-12

  • Performed repo-wide README and AGENTS audit.
  • Updated public GitHub repository count and domain figures from bibliography ground truth.
  • Verified public-source discrepancies around Google Scholar cache, AII officers, board size, and Scientific Advisory Board context.

2026-05-04

  • Renamed paper folders from author-title form to YYYY_Topic.
  • Added 2020_FacilitatorsCatechism.
  • Added shared bibliography-table parser and publication HTML synchronization script.