Research ledger / Decision log · canonical source: DECISION_LOG.md

Decision Log

ID Date Decision Reason
CGT-D-001 2026-10-08 The workspace was empty. Initialized the full ledger structure required by the mandate. Mandate Step 1. No other directories were inspected.
CGT-D-002 2026-10-08 The first formal object is the operational grammar (moves + relational semantics + admissibility language). Structural grammars are a separate, second object. It covers paths, navigation, state transitions and addresses with one definition. It reduces to well-studied theory (LTS, regular path queries), so novelty claims can be checked.
CGT-D-003 2026-10-08 Primary experimental metric: counted elementary steps under a stated cost model. Wall-clock time is secondary. CPython constants would hide asymptotic behaviour. The mandate forbids inferring O(1) from flat timings.
CGT-D-004 2026-10-08 Python standard library only. No numpy or matplotlib. Tables instead of plots. Self-containment and reproducibility. matplotlib was not installed. Plots are deferred to the website phase.
CGT-D-005 2026-10-08 Web search used to verify bibliographic metadata of the key references. Unverified references are marked [U]. Mandate §27: do not invent citations. Verify before publication.
CGT-D-006 2026-10-08 Added a deep-pair adversarial workload to EXP-001 after the first run. The first run showed address-word LCA at 2 ops/query, an artifact of random pairs diverging near the root. Kept as REJ-002.
CGT-D-007 2026-10-08 Added a root-level prefix-sum index to forest rank access in EXP-004 after the first run. The first run's 512 ops/query came from linearly scanning 1,000 roots, not from the grammar. The fair comparison needs the forest-level index.
CGT-D-008 2026-10-08 EXP-007 reports two depth notions: semi-naive (Gauss–Seidel) rounds were replaced by synchronous (Jacobi) parallel depth for THM-004(c). The first implementation made facts visible within a round, which understated parallel depth (2 rounds for any n).
CGT-D-009 2026-10-08 Part VI of the mandate (P vs NP) is answered by a boundary proposition (PROP-006) plus one exploratory experiment (EXP-006), not by attempting a separation. Mandate §15: rigorous boundaries are results. No claim about P vs NP is made.
CGT-D-010 2026-10-08 Removed a drafted counterexample row claiming that grammar-based methods were always slower in wall-clock time. Not checked against the raw data. Unverified claims are not recorded.
CGT-D-011 2026-10-08 Next session's priority: OPEN-002 (dense arithmetic addressing, via automatic structures) and the literature debts (OPEN-010). THM-003 is the only mechanism found that needs zero preprocessing, and it is the closest formal counterpart of the originating address insight.
CGT-D-012 2026-10-08 (s2) Audit corrections E-001 to E-005 made in place, with an errata table in RESULTS.md §D. The original text stays in git history. Mandate: corrections must preserve provenance.
CGT-D-013 2026-10-08 (s2) The SDK is a separate package (sdk/src/cgtsdk). The session-1 experiment library experiments/cgt is kept unchanged. Preserves the historical evidence. The SDK re-implements and extends it with tests.
CGT-D-014 2026-10-08 (s2) The SDK stays standard-library only. Each structure has a pure reference semantics (denote) and an instrumented representation (apply), and adequacy between them is tested. Makes the three-layer separation executable and testable.
CGT-D-015 2026-10-08 (s2) Admissibility languages constrain the projection of the move word onto the letters the language mentions. Observer moves (here, read) should not need to appear in every constraint. This defines the semantics explicitly instead of leaving it implicit.
CGT-D-016 2026-10-08 (s2) GaaS reference server: preemptive time limits only between expression calls. Algorithm requests are bounded by max_n, max_iter and post-hoc cost checks, and are not preempted. Honest scope for a local reference server, documented in GRAMMAR_AS_A_SERVICE.md.
CGT-D-017 2026-10-08 (s2) EXP-008 reports two workloads (random words, walk-generated words). The first run showed early-exit artifacts, as in REJ-002.
CGT-D-018 2026-10-08 (s2) The SDK's BST insert, delete and in-order traversal were made iterative, with a regression test on 5,000 sorted keys. The book's example checker (book/tools/check_examples.py) exposed a RecursionError on 1,023 sorted keys in the unbalanced BST. This was a real defect in the SDK.
CGT-D-019 2026-10-08 (s2) Every executable example in the book has its printed output generated by execution and verified at build time. Prose that disagreed with the real output was rewritten, not the output. Several drafted outputs were wrong predictions, among them a degenerate PageRank benchmark on a regular graph (Chapter 15) and a mis-stated L1/total-variation conversion (Chapter 16). The checker caught them.
CGT-D-020 2026-10-08 (s2) The publication is a static site generated by book/tools/build.mjs, with KaTeX rendering at build time (HTML + MathML). The build fails on any LaTeX error, unresolved reference, unknown citation, unknown ledger id, missing exercise/objective/summary, or placeholder text. The mandate requires that no equation silently fall back to raw text, and that every claim link to its evidence. Build-time rendering also keeps the content readable without JavaScript.
CGT-D-021 2026-10-08 (s2) Release QA renders every page at desktop and mobile widths in light and dark themes, and treats horizontal overflow, console errors and failed requests as defects. Fixes: tables wrapped in scroll containers, scroll containers made position:relative (so KaTeX's absolutely positioned MathML cannot escape them), citation groups allowed to wrap, appendix part shown without a part number, and the results index plural fixed. The mandate requires the book to be readable on phones. These defects were visible only in rendered pages, not in the build checks.
CGT-D-022 2026-10-08 (s2) The print edition (PDF) is generated by headless Chromium from dist/print.html, which is built from the same sources as the website. pandoc + LaTeX was not used. No TeX engine is available in the build environment. A second typesetting path would let the PDF and the website diverge. KaTeX output prints faithfully. tools/pdf.mjs refuses to produce a PDF if any equation, table, code block or figure is wider than the A4 text block (the first export clipped 36 code blocks), and refuses to report success unless the file starts with %PDF- and exceeds 100 kB.
CGT-D-023 2026-10-08 (s2) Researcher title changed, at the researcher's request, to "Computational Substrate Scientist and Principal Researcher". It is defined once in book/content/book.json (role) and repeated on the researcher page. Requested by the researcher. The claims about affiliation and review on the researcher and status pages are unchanged.
CGT-D-024 2026-10-08 (s2) Optional reader-feedback backend on Supabase (project computational-grammar-theory, free plan): insert-only errata_reports (private) and independent_checks (public once reviewed), with column-level grants and RLS. The site ships only the publishable key, and the build refuses a secret or service-role key. Without the backend, every page still works and the forms point to the issue tracker. Independent checks are the main open blocker (B-4), and reader errata are the cheapest source of corrections. Reading must never require an account. Access rules verified against the live API (supabase/README.md).
CGT-D-025 2026-10-08 (s2) Deployment target: Vercel from the repository root via vercel.json. The build runs npm ci and node tools/build.mjs in book/, with no Python (the generated data in book/data/ is committed). It sends security headers, including a strict CSP (script-src 'self'; the theme initializer moved out of an inline script). The PDF is generated locally by npm run pdf and committed under book/site/downloads/, with a manifest; the build warns when it is stale. Vercel's build image has no Chromium for the PDF, and the site must be one-click deployable. Verified by a clean-copy build without Python on the PATH, and by loading pages under the production headers without CSP violations.