From da074340369fb21027df97c66c8686ba99ef61e7 Mon Sep 17 00:00:00 2001 From: transitrix Date: Sat, 22 Aug 2026 09:53:42 +0400 Subject: [PATCH 1/3] site: fix the reference-sheet library's shape and no-gate contract Adds the convention note, a machine check for the shape and gate rules, and an empty-but-valid checksum manifest so the guard is in place before any sheet lands. --- .github/workflows/reference-sheets.yml | 39 +++ reference-sheets/README.md | 20 ++ reference-sheets/SHA256SUMS | 0 scripts/check_reference_sheets.py | 402 +++++++++++++++++++++++++ 4 files changed, 461 insertions(+) create mode 100644 .github/workflows/reference-sheets.yml create mode 100644 reference-sheets/README.md create mode 100644 reference-sheets/SHA256SUMS create mode 100644 scripts/check_reference_sheets.py diff --git a/.github/workflows/reference-sheets.yml b/.github/workflows/reference-sheets.yml new file mode 100644 index 0000000..f82daee --- /dev/null +++ b/.github/workflows/reference-sheets.yml @@ -0,0 +1,39 @@ +name: Reference sheets + +# The reference-sheet library's shape and no-gate contract - see +# reference-sheets/README.md - is machine-enforced so a sheet that violates +# it fails the build rather than reaching a reader. Passes vacuously with +# zero sheets present. + +on: + push: + branches: [main] + paths: + - 'reference-sheets/**' + - 'scripts/check_reference_sheets.py' + - '.github/workflows/reference-sheets.yml' + pull_request: + branches: [main] + paths: + - 'reference-sheets/**' + - 'scripts/check_reference_sheets.py' + - '.github/workflows/reference-sheets.yml' + +permissions: + contents: read + +jobs: + check-reference-sheets: + runs-on: ubuntu-latest + name: reference-sheets/ shape and no-gate contract hold + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Check reference-sheets/ contract + run: python3 scripts/check_reference_sheets.py diff --git a/reference-sheets/README.md b/reference-sheets/README.md new file mode 100644 index 0000000..7c5f131 --- /dev/null +++ b/reference-sheets/README.md @@ -0,0 +1,20 @@ +# Reference sheets — contract + +This directory holds the transitrix.com reference-sheet library. The shape below is +enforced by `scripts/check_reference_sheets.py` in CI +(`.github/workflows/reference-sheets.yml`) — a sheet that violates it fails the check +rather than reaching a reader. + +- **One directory per sheet:** `reference-sheets//`, served at + `https://transitrix.com/reference-sheets//`. +- **The PDF lives at `reference-sheets//.pdf`.** The filename is the slug, + so a revision replaces the file in place and never mints a second URL. +- **The page carries the sheet's content as HTML.** The PDF is the take-away download, + never the only copy of the content. +- **The page `` leads with the sheet's own printed name** — the same name printed + on the sheet itself — with no suffix beyond the site's existing ` | Transitrix`. +- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no + tracking wall, on the index or on any sheet page. +- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` + line per sheet (`sha256sum` output format). It is updated in the same commit as the + PDF it describes. diff --git a/reference-sheets/SHA256SUMS b/reference-sheets/SHA256SUMS new file mode 100644 index 0000000..e69de29 diff --git a/scripts/check_reference_sheets.py b/scripts/check_reference_sheets.py new file mode 100644 index 0000000..27bcee6 --- /dev/null +++ b/scripts/check_reference_sheets.py @@ -0,0 +1,402 @@ +#!/usr/bin/env python3 +"""Guard the reference-sheet library's shape and no-gate contract. + +Checked against reference-sheets/ (see reference-sheets/README.md for the contract +in prose): every sheet directory carries index.html and <slug>.pdf and nothing else +named .pdf, no sheet page contains a form/input/submit-button/signup-script gate, +and reference-sheets/SHA256SUMS matches the committed PDFs byte-for-byte. + +Usage: python3 scripts/check_reference_sheets.py +Runs a self-test against throwaway fixtures in a temp directory before checking the +real tree - see .github/workflows/indexing-declarations.yml for the same shape. +""" +import hashlib +import os +import re +import shutil +import sys +import tempfile + +REFERENCE_SHEETS_DIR = "reference-sheets" +CHECKSUMS_FILE = "SHA256SUMS" +NON_SHEET_ENTRIES = {"README.md", CHECKSUMS_FILE} + +GATE_PATTERNS = [ + (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), + (re.compile(r"<input\b", re.IGNORECASE), "an <input> element"), + (re.compile(r'<button[^>]*type\s*=\s*["\']?submit', re.IGNORECASE), 'a <button type="submit">'), + ( + re.compile( + r"(mailchimp|convertkit|hubspot|getresponse|klaviyo|substack|beehiiv|typeform)", + re.IGNORECASE, + ), + "a mail-capture/signup script", + ), + ( + re.compile(r"(interstitial|signup-modal|email-gate|paywall)", re.IGNORECASE), + "an interstitial/gate marker", + ), +] + + +def find_slug_dirs(sheets_root): + if not os.path.isdir(sheets_root): + return [] + slugs = [] + for name in sorted(os.listdir(sheets_root)): + if name in NON_SHEET_ENTRIES or name.startswith("."): + continue + if os.path.isdir(os.path.join(sheets_root, name)): + slugs.append(name) + return slugs + + +def check_shape(sheets_root, slug): + errors = [] + slug_dir = os.path.join(sheets_root, slug) + index_path = os.path.join(slug_dir, "index.html") + if not os.path.isfile(index_path): + errors.append(f"{slug_dir}: missing index.html") + + expected_pdf = f"{slug}.pdf" + pdfs = [f for f in os.listdir(slug_dir) if f.lower().endswith(".pdf")] + if expected_pdf not in pdfs: + errors.append(f"{slug_dir}: missing {expected_pdf}") + for f in pdfs: + if f != expected_pdf: + errors.append(f"{slug_dir}: PDF named {f!r}, expected only {expected_pdf!r}") + return errors + + +def check_gate(sheets_root, slug): + errors = [] + index_path = os.path.join(sheets_root, slug, "index.html") + if not os.path.isfile(index_path): + return errors + with open(index_path, encoding="utf-8") as f: + html = f.read() + for pattern, label in GATE_PATTERNS: + if pattern.search(html): + errors.append(f"{index_path}: contains {label} - no gate is allowed on a reference-sheet page") + return errors + + +def parse_checksums(checksums_path): + """Returns {relative_path: lowercase_hex_sha256}, or None if the file is missing.""" + if not os.path.isfile(checksums_path): + return None + entries = {} + with open(checksums_path, encoding="utf-8") as f: + for lineno, line in enumerate(f, start=1): + line = line.rstrip("\n") + if not line.strip(): + continue + m = re.match(r"^([0-9a-fA-F]{64})\s+(.+)$", line) + if not m: + raise ValueError(f"{checksums_path}:{lineno}: unparseable line {line!r}") + entries[m.group(2).strip()] = m.group(1).lower() + return entries + + +def sha256_of(path): + h = hashlib.sha256() + with open(path, "rb") as f: + for chunk in iter(lambda: f.read(1 << 16), b""): + h.update(chunk) + return h.hexdigest() + + +def check_checksums(sheets_root, slugs): + checksums_path = os.path.join(sheets_root, CHECKSUMS_FILE) + try: + entries = parse_checksums(checksums_path) + except ValueError as e: + return [str(e)] + if entries is None: + return [f"{checksums_path}: missing"] + + errors = [] + pdf_by_rel = {} + for slug in slugs: + rel = f"{slug}/{slug}.pdf" + abs_path = os.path.join(sheets_root, slug, f"{slug}.pdf") + if os.path.isfile(abs_path): + pdf_by_rel[rel] = abs_path + + for rel, abs_path in pdf_by_rel.items(): + if rel not in entries: + errors.append(f"{checksums_path}: no entry for {rel}") + continue + actual = sha256_of(abs_path) + if actual != entries[rel]: + errors.append( + f"{checksums_path}: checksum for {rel} does not match the committed PDF " + f"(expected {entries[rel]}, got {actual})" + ) + + for rel in entries: + if rel not in pdf_by_rel: + errors.append(f"{checksums_path}: entry for {rel} but no such PDF exists") + + return errors + + +def run_checks(root): + sheets_root = os.path.join(root, REFERENCE_SHEETS_DIR) + slugs = find_slug_dirs(sheets_root) + errors = [] + for slug in slugs: + errors.extend(check_shape(sheets_root, slug)) + errors.extend(check_gate(sheets_root, slug)) + errors.extend(check_checksums(sheets_root, slugs)) + return errors, slugs + + +def _write(path, content=""): + os.makedirs(os.path.dirname(path), exist_ok=True) + with open(path, "w", encoding="utf-8") as f: + f.write(content) + + +def _sha256sums_line(root_for_hash, slug): + pdf_path = os.path.join(root_for_hash, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf") + return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" + + +def _fresh_sheet(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): + """A minimal, contract-clean sheet: index.html, <slug>.pdf, and a matching + SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), "<html><body>content</body></html>") + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "wb") as f: + f.write(pdf_bytes) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), + _sha256sums_line(tmp, slug), + ) + return slug + + +def _expect(condition, ok_msg, fail_msg, failures): + if condition: + print(f"ok: {ok_msg}") + else: + print(f"::error::self-test regression - {fail_msg}") + failures.append(fail_msg) + + +def _selftest(): + print("== Self-test: the checker itself must catch what it's meant to catch ==") + failures = [] + + # A clean sheet passes outright. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + errors, slugs = run_checks(tmp) + _expect(errors == [], "a contract-clean sheet passes with zero errors", "a clean sheet was flagged", failures) + finally: + shutil.rmtree(tmp) + + # Zero sheets present passes vacuously, provided SHA256SUMS exists (empty). + tmp = tempfile.mkdtemp() + try: + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), "") + errors, slugs = run_checks(tmp) + _expect(errors == [] and slugs == [], "zero sheets present passes vacuously", "an empty library was flagged", failures) + finally: + shutil.rmtree(tmp) + + # Missing index.html. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html")) + errors, _ = run_checks(tmp) + _expect( + any("missing index.html" in e for e in errors), + "a sheet directory missing index.html is caught", + "a missing index.html was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Missing PDF. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + errors, _ = run_checks(tmp) + _expect( + any(f"missing {slug}.pdf" in e for e in errors), + "a sheet directory missing <slug>.pdf is caught", + "a missing PDF was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # PDF named wrong (not <slug>.pdf). + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + os.rename( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "final-v2.pdf"), + ) + errors, _ = run_checks(tmp) + _expect( + any("PDF named 'final-v2.pdf'" in e for e in errors), + "a PDF whose name is not <slug>.pdf is caught", + "a misnamed PDF was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <form>. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><form></form></body></html>') + errors, _ = run_checks(tmp) + _expect( + any("<form>" in e for e in errors), + "a page with a <form> gate is caught", + "a <form> gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <input>. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') + errors, _ = run_checks(tmp) + _expect( + any("<input>" in e for e in errors), + "a page with a bare <input> gate is caught", + "an <input> gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: <button type="submit">. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><body><button type="submit">Get it</button></body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any('type="submit"' in e for e in errors), + 'a page with a <button type="submit"> gate is caught', + "a submit-button gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: mail-capture/signup script. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><head><script src="https://embed.mailchimp.com/embed.js"></script></head><body>content</body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any("mail-capture/signup script" in e for e in errors), + "a page embedding a signup-form script is caught", + "a signup-script gate was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # Gate: interstitial marker. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + _write( + os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + '<html><body><div class="signup-modal">Before you download...</div></body></html>', + ) + errors, _ = run_checks(tmp) + _expect( + any("interstitial/gate marker" in e for e in errors), + "a page carrying an interstitial/gate marker is caught", + "an interstitial marker was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # SHA256SUMS mismatch. + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "ab") as f: + f.write(b"tampered after the checksum was recorded") + errors, _ = run_checks(tmp) + _expect( + any("does not match the committed PDF" in e for e in errors), + "a PDF that no longer matches SHA256SUMS is caught", + "a checksum mismatch was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + # SHA256SUMS stale entry (PDF removed, entry left behind). + tmp = tempfile.mkdtemp() + try: + slug = _fresh_sheet(tmp) + second = os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE) + with open(second, "a", encoding="utf-8") as f: + f.write("0" * 64 + " ghost/ghost.pdf\n") + errors, _ = run_checks(tmp) + _expect( + any("entry for ghost/ghost.pdf but no such PDF exists" in e for e in errors), + "a SHA256SUMS entry with no matching PDF is caught", + "a stale checksum entry was not caught", + failures, + ) + finally: + shutil.rmtree(tmp) + + if failures: + print(f"::error::check_reference_sheets self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") + return 1 + print("self-test: all failure modes are caught, and a clean tree passes.") + return 0 + + +def main(): + root = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + + selftest_status = _selftest() + if selftest_status != 0: + return selftest_status + + print("== Checking reference-sheets/ against the committed tree ==") + errors, slugs = run_checks(root) + for e in errors: + print(f"::error::{e}") + if errors: + print(f"check_reference_sheets: {len(errors)} problem(s), see above") + return 1 + note = " (zero sheets present)" if not slugs else f" ({len(slugs)} sheet(s))" + print(f"check_reference_sheets: reference-sheets/ contract holds{note}") + return 0 + + +if __name__ == "__main__": + sys.exit(main()) From 6b2085874c47f2b83ed79f65739c67ec709b2284 Mon Sep 17 00:00:00 2001 From: transitrix <automation@transitrix.com> Date: Sat, 22 Aug 2026 10:54:58 +0400 Subject: [PATCH 2/3] site: rename the reference-sheet library route to /library/ The section will carry more than one kind of material, and a route named after one kind would have to move the first time a second kind arrives. Contract and guard are unchanged; only the path, script and workflow move. --- .github/workflows/library.yml | 38 +++++ .github/workflows/reference-sheets.yml | 39 ----- library/README.md | 22 +++ {reference-sheets => library}/SHA256SUMS | 0 reference-sheets/README.md | 20 --- ...k_reference_sheets.py => check_library.py} | 134 +++++++++--------- 6 files changed, 127 insertions(+), 126 deletions(-) create mode 100644 .github/workflows/library.yml delete mode 100644 .github/workflows/reference-sheets.yml create mode 100644 library/README.md rename {reference-sheets => library}/SHA256SUMS (100%) delete mode 100644 reference-sheets/README.md rename scripts/{check_reference_sheets.py => check_library.py} (68%) diff --git a/.github/workflows/library.yml b/.github/workflows/library.yml new file mode 100644 index 0000000..690a59e --- /dev/null +++ b/.github/workflows/library.yml @@ -0,0 +1,38 @@ +name: Library + +# The library's shape and no-gate contract - see library/README.md - is +# machine-enforced so an item that violates it fails the build rather than +# reaching a reader. Passes vacuously with zero items present. + +on: + push: + branches: [main] + paths: + - 'library/**' + - 'scripts/check_library.py' + - '.github/workflows/library.yml' + pull_request: + branches: [main] + paths: + - 'library/**' + - 'scripts/check_library.py' + - '.github/workflows/library.yml' + +permissions: + contents: read + +jobs: + check-library: + runs-on: ubuntu-latest + name: library/ shape and no-gate contract hold + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: '3.12' + + - name: Check library/ contract + run: python3 scripts/check_library.py diff --git a/.github/workflows/reference-sheets.yml b/.github/workflows/reference-sheets.yml deleted file mode 100644 index f82daee..0000000 --- a/.github/workflows/reference-sheets.yml +++ /dev/null @@ -1,39 +0,0 @@ -name: Reference sheets - -# The reference-sheet library's shape and no-gate contract - see -# reference-sheets/README.md - is machine-enforced so a sheet that violates -# it fails the build rather than reaching a reader. Passes vacuously with -# zero sheets present. - -on: - push: - branches: [main] - paths: - - 'reference-sheets/**' - - 'scripts/check_reference_sheets.py' - - '.github/workflows/reference-sheets.yml' - pull_request: - branches: [main] - paths: - - 'reference-sheets/**' - - 'scripts/check_reference_sheets.py' - - '.github/workflows/reference-sheets.yml' - -permissions: - contents: read - -jobs: - check-reference-sheets: - runs-on: ubuntu-latest - name: reference-sheets/ shape and no-gate contract hold - steps: - - name: Checkout - uses: actions/checkout@v4 - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: '3.12' - - - name: Check reference-sheets/ contract - run: python3 scripts/check_reference_sheets.py diff --git a/library/README.md b/library/README.md new file mode 100644 index 0000000..bdc870f --- /dev/null +++ b/library/README.md @@ -0,0 +1,22 @@ +# Library — contract + +This directory holds the transitrix.com library of free reference material. The shape +below is enforced by `scripts/check_library.py` in CI (`.github/workflows/library.yml`) +— an item that violates it fails the check rather than reaching a reader. + +- **One directory per item:** `library/<slug>/`, served at + `https://transitrix.com/library/<slug>/`. +- **The PDF lives at `library/<slug>/<slug>.pdf`.** The filename is the slug, so a + revision replaces the file in place and never mints a second URL. +- **The page carries the item's content as HTML.** The PDF is the take-away download, + never the only copy of the content. +- **The page `<title>` leads with the item's own printed name** — the same name printed + on the item itself — with no suffix beyond the site's existing ` | Transitrix`. +- **Kinds of material are not path segments.** A cheat sheet, a template and a worked + example all sit directly under `library/<slug>/`; grouping belongs on the index page, + where it can be revised, never in an address that has been printed and handed out. +- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no + tracking wall, on the index or on any item page. +- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` + line per item (`sha256sum` output format). It is updated in the same commit as the + PDF it describes. diff --git a/reference-sheets/SHA256SUMS b/library/SHA256SUMS similarity index 100% rename from reference-sheets/SHA256SUMS rename to library/SHA256SUMS diff --git a/reference-sheets/README.md b/reference-sheets/README.md deleted file mode 100644 index 7c5f131..0000000 --- a/reference-sheets/README.md +++ /dev/null @@ -1,20 +0,0 @@ -# Reference sheets — contract - -This directory holds the transitrix.com reference-sheet library. The shape below is -enforced by `scripts/check_reference_sheets.py` in CI -(`.github/workflows/reference-sheets.yml`) — a sheet that violates it fails the check -rather than reaching a reader. - -- **One directory per sheet:** `reference-sheets/<slug>/`, served at - `https://transitrix.com/reference-sheets/<slug>/`. -- **The PDF lives at `reference-sheets/<slug>/<slug>.pdf`.** The filename is the slug, - so a revision replaces the file in place and never mints a second URL. -- **The page carries the sheet's content as HTML.** The PDF is the take-away download, - never the only copy of the content. -- **The page `<title>` leads with the sheet's own printed name** — the same name printed - on the sheet itself — with no suffix beyond the site's existing ` | Transitrix`. -- **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no - tracking wall, on the index or on any sheet page. -- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` - line per sheet (`sha256sum` output format). It is updated in the same commit as the - PDF it describes. diff --git a/scripts/check_reference_sheets.py b/scripts/check_library.py similarity index 68% rename from scripts/check_reference_sheets.py rename to scripts/check_library.py index 27bcee6..aba492e 100644 --- a/scripts/check_reference_sheets.py +++ b/scripts/check_library.py @@ -1,12 +1,12 @@ #!/usr/bin/env python3 -"""Guard the reference-sheet library's shape and no-gate contract. +"""Guard the library's shape and no-gate contract. -Checked against reference-sheets/ (see reference-sheets/README.md for the contract -in prose): every sheet directory carries index.html and <slug>.pdf and nothing else -named .pdf, no sheet page contains a form/input/submit-button/signup-script gate, -and reference-sheets/SHA256SUMS matches the committed PDFs byte-for-byte. +Checked against library/ (see library/README.md for the contract in prose): every +item directory carries index.html and <slug>.pdf and nothing else named .pdf, no item +page contains a form/input/submit-button/signup-script gate, and library/SHA256SUMS +matches the committed PDFs byte-for-byte. -Usage: python3 scripts/check_reference_sheets.py +Usage: python3 scripts/check_library.py Runs a self-test against throwaway fixtures in a temp directory before checking the real tree - see .github/workflows/indexing-declarations.yml for the same shape. """ @@ -17,9 +17,9 @@ import sys import tempfile -REFERENCE_SHEETS_DIR = "reference-sheets" +LIBRARY_DIR = "library" CHECKSUMS_FILE = "SHA256SUMS" -NON_SHEET_ENTRIES = {"README.md", CHECKSUMS_FILE} +NON_ITEM_ENTRIES = {"README.md", CHECKSUMS_FILE} GATE_PATTERNS = [ (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), @@ -39,21 +39,21 @@ ] -def find_slug_dirs(sheets_root): - if not os.path.isdir(sheets_root): +def find_slug_dirs(library_root): + if not os.path.isdir(library_root): return [] slugs = [] - for name in sorted(os.listdir(sheets_root)): - if name in NON_SHEET_ENTRIES or name.startswith("."): + for name in sorted(os.listdir(library_root)): + if name in NON_ITEM_ENTRIES or name.startswith("."): continue - if os.path.isdir(os.path.join(sheets_root, name)): + if os.path.isdir(os.path.join(library_root, name)): slugs.append(name) return slugs -def check_shape(sheets_root, slug): +def check_shape(library_root, slug): errors = [] - slug_dir = os.path.join(sheets_root, slug) + slug_dir = os.path.join(library_root, slug) index_path = os.path.join(slug_dir, "index.html") if not os.path.isfile(index_path): errors.append(f"{slug_dir}: missing index.html") @@ -68,16 +68,16 @@ def check_shape(sheets_root, slug): return errors -def check_gate(sheets_root, slug): +def check_gate(library_root, slug): errors = [] - index_path = os.path.join(sheets_root, slug, "index.html") + index_path = os.path.join(library_root, slug, "index.html") if not os.path.isfile(index_path): return errors with open(index_path, encoding="utf-8") as f: html = f.read() for pattern, label in GATE_PATTERNS: if pattern.search(html): - errors.append(f"{index_path}: contains {label} - no gate is allowed on a reference-sheet page") + errors.append(f"{index_path}: contains {label} - no gate is allowed on a library page") return errors @@ -106,8 +106,8 @@ def sha256_of(path): return h.hexdigest() -def check_checksums(sheets_root, slugs): - checksums_path = os.path.join(sheets_root, CHECKSUMS_FILE) +def check_checksums(library_root, slugs): + checksums_path = os.path.join(library_root, CHECKSUMS_FILE) try: entries = parse_checksums(checksums_path) except ValueError as e: @@ -119,7 +119,7 @@ def check_checksums(sheets_root, slugs): pdf_by_rel = {} for slug in slugs: rel = f"{slug}/{slug}.pdf" - abs_path = os.path.join(sheets_root, slug, f"{slug}.pdf") + abs_path = os.path.join(library_root, slug, f"{slug}.pdf") if os.path.isfile(abs_path): pdf_by_rel[rel] = abs_path @@ -142,13 +142,13 @@ def check_checksums(sheets_root, slugs): def run_checks(root): - sheets_root = os.path.join(root, REFERENCE_SHEETS_DIR) - slugs = find_slug_dirs(sheets_root) + library_root = os.path.join(root, LIBRARY_DIR) + slugs = find_slug_dirs(library_root) errors = [] for slug in slugs: - errors.extend(check_shape(sheets_root, slug)) - errors.extend(check_gate(sheets_root, slug)) - errors.extend(check_checksums(sheets_root, slugs)) + errors.extend(check_shape(library_root, slug)) + errors.extend(check_gate(library_root, slug)) + errors.extend(check_checksums(library_root, slugs)) return errors, slugs @@ -159,19 +159,19 @@ def _write(path, content=""): def _sha256sums_line(root_for_hash, slug): - pdf_path = os.path.join(root_for_hash, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf") + pdf_path = os.path.join(root_for_hash, LIBRARY_DIR, slug, f"{slug}.pdf") return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" -def _fresh_sheet(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): - """A minimal, contract-clean sheet: index.html, <slug>.pdf, and a matching +def _fresh_item(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): + """A minimal, contract-clean item: index.html, <slug>.pdf, and a matching SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), "<html><body>content</body></html>") - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) - with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "wb") as f: + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), "<html><body>content</body></html>") + _write(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) + with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "wb") as f: f.write(pdf_bytes) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), + os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), _sha256sums_line(tmp, slug), ) return slug @@ -189,33 +189,33 @@ def _selftest(): print("== Self-test: the checker itself must catch what it's meant to catch ==") failures = [] - # A clean sheet passes outright. + # A clean item passes outright. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) errors, slugs = run_checks(tmp) - _expect(errors == [], "a contract-clean sheet passes with zero errors", "a clean sheet was flagged", failures) + _expect(errors == [], "a contract-clean item passes with zero errors", "a clean item was flagged", failures) finally: shutil.rmtree(tmp) - # Zero sheets present passes vacuously, provided SHA256SUMS exists (empty). + # Zero items present passes vacuously, provided SHA256SUMS exists (empty). tmp = tempfile.mkdtemp() try: - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE), "") + _write(os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), "") errors, slugs = run_checks(tmp) - _expect(errors == [] and slugs == [], "zero sheets present passes vacuously", "an empty library was flagged", failures) + _expect(errors == [] and slugs == [], "zero items present passes vacuously", "an empty library was flagged", failures) finally: shutil.rmtree(tmp) # Missing index.html. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html")) + slug = _fresh_item(tmp) + os.remove(os.path.join(tmp, LIBRARY_DIR, slug, "index.html")) errors, _ = run_checks(tmp) _expect( any("missing index.html" in e for e in errors), - "a sheet directory missing index.html is caught", + "an item directory missing index.html is caught", "a missing index.html was not caught", failures, ) @@ -225,12 +225,12 @@ def _selftest(): # Missing PDF. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - os.remove(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf")) + slug = _fresh_item(tmp) + os.remove(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) errors, _ = run_checks(tmp) _expect( any(f"missing {slug}.pdf" in e for e in errors), - "a sheet directory missing <slug>.pdf is caught", + "an item directory missing <slug>.pdf is caught", "a missing PDF was not caught", failures, ) @@ -240,10 +240,10 @@ def _selftest(): # PDF named wrong (not <slug>.pdf). tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) os.rename( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "final-v2.pdf"), + os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), + os.path.join(tmp, LIBRARY_DIR, slug, "final-v2.pdf"), ) errors, _ = run_checks(tmp) _expect( @@ -258,8 +258,8 @@ def _selftest(): # Gate: <form>. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><form></form></body></html>') + slug = _fresh_item(tmp) + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><form></form></body></html>') errors, _ = run_checks(tmp) _expect( any("<form>" in e for e in errors), @@ -273,8 +273,8 @@ def _selftest(): # Gate: <input>. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - _write(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') + slug = _fresh_item(tmp) + _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><input type="email"></body></html>') errors, _ = run_checks(tmp) _expect( any("<input>" in e for e in errors), @@ -288,9 +288,9 @@ def _selftest(): # Gate: <button type="submit">. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><button type="submit">Get it</button></body></html>', ) errors, _ = run_checks(tmp) @@ -306,9 +306,9 @@ def _selftest(): # Gate: mail-capture/signup script. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><head><script src="https://embed.mailchimp.com/embed.js"></script></head><body>content</body></html>', ) errors, _ = run_checks(tmp) @@ -324,9 +324,9 @@ def _selftest(): # Gate: interstitial marker. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) + slug = _fresh_item(tmp) _write( - os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, "index.html"), + os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '<html><body><div class="signup-modal">Before you download...</div></body></html>', ) errors, _ = run_checks(tmp) @@ -342,8 +342,8 @@ def _selftest(): # SHA256SUMS mismatch. tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - with open(os.path.join(tmp, REFERENCE_SHEETS_DIR, slug, f"{slug}.pdf"), "ab") as f: + slug = _fresh_item(tmp) + with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "ab") as f: f.write(b"tampered after the checksum was recorded") errors, _ = run_checks(tmp) _expect( @@ -358,8 +358,8 @@ def _selftest(): # SHA256SUMS stale entry (PDF removed, entry left behind). tmp = tempfile.mkdtemp() try: - slug = _fresh_sheet(tmp) - second = os.path.join(tmp, REFERENCE_SHEETS_DIR, CHECKSUMS_FILE) + slug = _fresh_item(tmp) + second = os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE) with open(second, "a", encoding="utf-8") as f: f.write("0" * 64 + " ghost/ghost.pdf\n") errors, _ = run_checks(tmp) @@ -373,7 +373,7 @@ def _selftest(): shutil.rmtree(tmp) if failures: - print(f"::error::check_reference_sheets self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") + print(f"::error::check_library self-test failed - {len(failures)} check(s) did not behave as expected, not trusting its verdict on the real tree") return 1 print("self-test: all failure modes are caught, and a clean tree passes.") return 0 @@ -386,15 +386,15 @@ def main(): if selftest_status != 0: return selftest_status - print("== Checking reference-sheets/ against the committed tree ==") + print("== Checking library/ against the committed tree ==") errors, slugs = run_checks(root) for e in errors: print(f"::error::{e}") if errors: - print(f"check_reference_sheets: {len(errors)} problem(s), see above") + print(f"check_library: {len(errors)} problem(s), see above") return 1 - note = " (zero sheets present)" if not slugs else f" ({len(slugs)} sheet(s))" - print(f"check_reference_sheets: reference-sheets/ contract holds{note}") + note = " (zero items present)" if not slugs else f" ({len(slugs)} item(s))" + print(f"check_library: library/ contract holds{note}") return 0 From dac2ad497b48d8933063609b4af0f9537ba8d0ac Mon Sep 17 00:00:00 2001 From: transitrix <automation@transitrix.com> Date: Sat, 22 Aug 2026 12:15:33 +0400 Subject: [PATCH 3/3] site: render a library item's PDF from its committed source Vendors IBM Plex (Sans 400/500/600/700, Mono 400/500) under assets/fonts/ so a page fitted to the millimetre never depends on a network fetch, adds scripts/render_library_item.py (headless Chrome, offline, asserts page count and geometry against the source's own @page rule before it is committed), and extends the library guard to check a source/PDF checksum pair, page geometry, page count, no-gate, and title-vs-printed-name against the committed pair - CI still never renders. Ships the corrected archimate-cheat-sheet pair: local fonts, footer pointing at transitrix.com/library. --- .gitattributes | 5 + .../fonts/ibm-plex/IBMPlexMono-Medium.woff2 | Bin 0 -> 14888 bytes .../fonts/ibm-plex/IBMPlexMono-Regular.woff2 | Bin 0 -> 14708 bytes assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 | Bin 0 -> 22832 bytes .../fonts/ibm-plex/IBMPlexSans-Medium.woff2 | Bin 0 -> 24184 bytes .../fonts/ibm-plex/IBMPlexSans-Regular.woff2 | Bin 0 -> 22588 bytes .../fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 | Bin 0 -> 24252 bytes assets/fonts/ibm-plex/OFL.txt | 93 +++++ library/README.md | 48 ++- library/SHA256SUMS | 2 + .../archimate-cheat-sheet.pdf | Bin 0 -> 92008 bytes .../archimate-cheat-sheet.source.html | 288 ++++++++++++++++ scripts/check_library.py | 326 ++++++++++++++---- scripts/render_library_item.py | 181 ++++++++++ 14 files changed, 860 insertions(+), 83 deletions(-) create mode 100644 .gitattributes create mode 100644 assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 create mode 100644 assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 create mode 100644 assets/fonts/ibm-plex/OFL.txt create mode 100644 library/archimate-cheat-sheet/archimate-cheat-sheet.pdf create mode 100644 library/archimate-cheat-sheet/archimate-cheat-sheet.source.html create mode 100644 scripts/render_library_item.py diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 0000000..72a8c74 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,5 @@ +# A committed source's bytes are what SHA256SUMS records - line-ending +# normalization on checkout would make the hash disagree with itself on a +# clone whose autocrlf setting differs from the one that last touched the +# working tree. Force LF unconditionally rather than depend on that setting. +library/**/*.source.html text eol=lf diff --git a/assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 b/assets/fonts/ibm-plex/IBMPlexMono-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..090f82f7ec7997047324e07650865305a099969a GIT binary patch literal 14888 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 ad};MAP-qCiD$QV&cRGZj2*AytTLJ*~+Orn` literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 b/assets/fonts/ibm-plex/IBMPlexMono-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..0804aaff92260b5359330f63e05b9ac25ccabeee GIT binary patch literal 14708 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 CRdxsf literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..953f94fa178e8ca69a8894c2c9d1325b3a15c150 GIT binary patch literal 22832 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..6d5527eef47ace16b08cf9932050b83858995e62 GIT binary patch literal 24184 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-Regular.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..f0ee65dd7f3ed64dc8d674e5c6007a0e7761bd57 GIT binary patch literal 22588 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 R;$T5nL-p?z%LdxSxC2frlW_n5 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 b/assets/fonts/ibm-plex/IBMPlexSans-SemiBold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..08c0d5adcbdd87d740ed91568f9836134c84bdfb GIT binary patch literal 24252 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 literal 0 HcmV?d00001 diff --git a/assets/fonts/ibm-plex/OFL.txt b/assets/fonts/ibm-plex/OFL.txt new file mode 100644 index 0000000..01497cc --- /dev/null +++ b/assets/fonts/ibm-plex/OFL.txt @@ -0,0 +1,93 @@ +Copyright © 2017 IBM Corp. with Reserved Font Name "Plex" + +This Font Software is licensed under the SIL Open Font License, Version 1.1. + +This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/library/README.md b/library/README.md index bdc870f..bfb65c3 100644 --- a/library/README.md +++ b/library/README.md @@ -6,17 +6,45 @@ below is enforced by `scripts/check_library.py` in CI (`.github/workflows/librar - **One directory per item:** `library/<slug>/`, served at `https://transitrix.com/library/<slug>/`. -- **The PDF lives at `library/<slug>/<slug>.pdf`.** The filename is the slug, so a - revision replaces the file in place and never mints a second URL. -- **The page carries the item's content as HTML.** The PDF is the take-away download, - never the only copy of the content. -- **The page `<title>` leads with the item's own printed name** — the same name printed - on the item itself — with no suffix beyond the site's existing ` | Transitrix`. +- **The source lives at `library/<slug>/<slug>.source.html`.** This is the committed, + human-authored content — the words are its author's. It is never edited by a + rendering step; only read. +- **The PDF lives at `library/<slug>/<slug>.pdf`, rendered from the source, never + hand-authored.** `scripts/render_library_item.py <slug>` renders it via headless + Chrome on an agent's own host, offline, and asserts the result's page count and + geometry against the source's own `@page` rule before it is committed. CI never + renders — see "Checked, not rendered" below. The filename is the slug, so a revision + replaces the file in place and never mints a second URL. +- **The source's `<title>` leads with the item's own printed name** — read from the + source's own `<h1>` — with no suffix beyond the site's existing ` | Transitrix`. - **Kinds of material are not path segments.** A cheat sheet, a template and a worked example all sit directly under `library/<slug>/`; grouping belongs on the index page, where it can be revised, never in an address that has been printed and handed out. - **No gate of any kind.** No form, no email field, no sign-up, no interstitial, no - tracking wall, on the index or on any item page. -- **`SHA256SUMS`** lists every committed PDF's checksum, one `<sha256> <slug>/<slug>.pdf` - line per item (`sha256sum` output format). It is updated in the same commit as the - PDF it describes. + tracking wall, on the source or on any item page. +- **The typefaces are vendored, not fetched.** A source pulls its fonts from + `/assets/fonts/`, declared with local `@font-face`; nothing under `library/` may + depend on a third-party font host or any other network fetch at render time. +- **`SHA256SUMS` carries a pair of entries per item** — `<slug>/<slug>.source.html` + and `<slug>/<slug>.pdf` — one `<sha256> <path>` line each (`sha256sum` output + format), updated in the same commit as the files they describe. + +## Checked, not rendered + +`scripts/check_library.py` verifies the *committed* pair — it never launches a +browser and never re-renders to check its work. Concretely it checks: the checksum +pair against the committed files, the PDF's page count and its `MediaBox` against +the source's own `@page` rule, the no-gate patterns against the source, and the +source's `<title>` against its own `<h1>`. + +**A source edited without re-rendering is caught as an ordinary checksum +mismatch**, the same way a tampered PDF already was: `SHA256SUMS` is only ever +updated by the render step, so an edit that skips it leaves the source's committed +bytes disagreeing with the hash recorded for it. + +**Do not add a check that re-renders and diffs the two PDFs to verify a render is +current.** It cannot work: a browser embeds a creation date in the PDF it writes, +and rendered output shifts across Chrome milestones, so two renders of the same +source are not byte-identical even seconds apart — the diff would fail on nothing, +every time, and teach everyone to ignore it. This has already been tried once; it +is written here so it is not tried again. diff --git a/library/SHA256SUMS b/library/SHA256SUMS index e69de29..2ae8bec 100644 --- a/library/SHA256SUMS +++ b/library/SHA256SUMS @@ -0,0 +1,2 @@ +5cc0ad239a5c959a0a62ed060d16db3ba31314f6da3ced4c3fe3ac0183159c15 archimate-cheat-sheet/archimate-cheat-sheet.source.html +5c2a78a82d03173d05e9095f784418a83faad4c992d0fb7437b3989d12e9956d archimate-cheat-sheet/archimate-cheat-sheet.pdf diff --git a/library/archimate-cheat-sheet/archimate-cheat-sheet.pdf b/library/archimate-cheat-sheet/archimate-cheat-sheet.pdf new file mode 100644 index 0000000000000000000000000000000000000000..876afdd6510e23fcd12cf795f62ffb997953a1cc GIT binary patch literal 92008 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�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%0ApTQdv$zs$vcnjGOa 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 literal 0 HcmV?d00001 diff --git a/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html b/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html new file mode 100644 index 0000000..192e5d8 --- /dev/null +++ b/library/archimate-cheat-sheet/archimate-cheat-sheet.source.html @@ -0,0 +1,288 @@ +<!DOCTYPE html> +<html lang="en"> +<head> +<meta charset="UTF-8"> +<title>ArchiMate cheat sheet + + + +
+ +
+
+

ArchiMate cheat sheet — every element, by layer and aspect

+

All 60 elements of ArchiMate® 3.2 in one grid, placed by the two questions that decide where an element belongs.

+
+
+ transitrix.com
+ Free to share and print — no sign-up +
+
+ +
+ + +
+

The framework layer answers whom it serves · aspect answers what kind of thing it is

+
+
+
Active structurewho or what does it
+
Behaviourwhat is done
+
Passive structurewhat it is done to
+ + +
Motivationwhy — its own aspect
+
StakeholderDriverAssessmentGoalOutcomePrincipleRequirementConstraintMeaningValue
+ + +
Strategywhat we must be able to do
+
Resource
+
CapabilityValue StreamCourse of Action
+
—
+ + +
Businesswhat the organisation does for its customers
+
Business ActorBusiness RoleBusiness CollaborationBusiness Interface
+
Business ProcessBusiness FunctionBusiness InteractionBusiness EventBusiness Service
+
Business ObjectContractRepresentationProduct †
+ + +
Applicationwhat software does for the business
+
Application ComponentApplication CollaborationApplication Interface
+
Application FunctionApplication InteractionApplication ProcessApplication EventApplication Service
+
Data Object
+ + +
Technologywhat infrastructure does for software
+
NodeDeviceSystem SoftwareTechnology CollaborationTechnology InterfacePathCommunication Network
+
Technology FunctionTechnology ProcessTechnology InteractionTechnology EventTechnology Service
+
Artifact
+ + +
Physicalpart of Technology, not a layer of its own
+
EquipmentFacilityDistribution Network
+
— uses Technology behaviour
+
Material
+ + +
Implementation & Migrationhow we get there
+
—
+
Work PackageImplementation Event
+
DeliverablePlateau ‡Gap ‡
+ + +
Compositeno layer of their own
+
Grouping — anything that belongs togetherLocation — where elements sit or behaviour happens
+
+

† Product is composite, not passive structure: it aggregates services and passive elements across layers, under a contract. Most cheat sheets file it wrongly.  ‡ Plateau aggregates core elements as they stand at one point in time; Gap states the difference between two plateaus.

+
+ + +
+

Relationships 11 + junction

+
+ +
Structural — static coherence
+
+
Compositionthe part cannot exist without the whole
+ +
+
Aggregationgroups parts that can exist alone
+ +
+
Assignmentwho performs it, where it runs
+ +
+
Realizationthe concrete one delivers the abstract one
+ +
Dependency — one needs another
+
+
Servingprovides its functionality to another
+ +
+
Accessreads, writes or deletes a passive element
+ +
+/-
+
Influenceaffects a motivation element, for or against
+ +
+
Associationa link the language has no word for
+ +
Dynamic — something moves
+
+
Triggeringthis then that — order in time
+ +
+
Flowsomething is transferred — data, money, goods
+ +
Other & connector
+
+
Specializationis a particular kind of
+ +
+
Junctionand / or — joins relationships of one type
+
+ +
+ The derivation rule — the one worth memorising + A chain of relationships pointing the same way can be replaced by the weakest link in the chain. That is how a diagram stays readable when you zoom out.
+ composition › aggregation › assignment › realization › serving › access › influence › association +
+ +
+ Three pairs that get confused +

Assignment vs realization. Assignment allocates a performer — an actor does a process. Realization says something concrete delivers something abstract — a process provides a service.

+

Serving vs flow. Serving is a standing offer: it is available to you. Flow is one actual transfer during one run.

+

Composition vs aggregation. A composed part dies with its whole and has exactly one whole. An aggregated part survives on its own and may belong to several.

+
+
+ + + + +
+ +
+ Made with Transitrix — an open method for describing a company as text · transitrix.com + Element set per the ArchiMate® 3.2 Specification. ArchiMate is a registered trademark of The Open Group. + More sheets: transitrix.com/library +
+ +
+ + diff --git a/scripts/check_library.py b/scripts/check_library.py index aba492e..9287a02 100644 --- a/scripts/check_library.py +++ b/scripts/check_library.py @@ -2,13 +2,20 @@ """Guard the library's shape and no-gate contract. Checked against library/ (see library/README.md for the contract in prose): every -item directory carries index.html and .pdf and nothing else named .pdf, no item -page contains a form/input/submit-button/signup-script gate, and library/SHA256SUMS -matches the committed PDFs byte-for-byte. +item directory carries .source.html and .pdf and no other file named +.pdf, the source's own `@page { size: mm mm }` rule matches the committed +PDF's MediaBox, the PDF is exactly one page, the source's `` leads with the +item's own printed name (its `<h1>`), no item page contains a form/input/submit- +button/signup-script gate, and library/SHA256SUMS carries a matching pair of +hashes - source and PDF - for every item, byte-for-byte. Usage: python3 scripts/check_library.py Runs a self-test against throwaway fixtures in a temp directory before checking the -real tree - see .github/workflows/indexing-declarations.yml for the same shape. +real tree - see .github/workflows/library.yml for the same shape. + +Rendering happens only in scripts/render_library_item.py, on an agent's own host; +this check never launches a browser and never re-renders to verify - see +library/README.md for why a byte-diff re-render check is not attempted. """ import hashlib import os @@ -20,6 +27,7 @@ LIBRARY_DIR = "library" CHECKSUMS_FILE = "SHA256SUMS" NON_ITEM_ENTRIES = {"README.md", CHECKSUMS_FILE} +GEOMETRY_TOLERANCE_PT = 0.5 GATE_PATTERNS = [ (re.compile(r"<form\b", re.IGNORECASE), "a <form> element"), @@ -51,12 +59,20 @@ def find_slug_dirs(library_root): return slugs +def source_path_for(library_root, slug): + return os.path.join(library_root, slug, f"{slug}.source.html") + + +def pdf_path_for(library_root, slug): + return os.path.join(library_root, slug, f"{slug}.pdf") + + def check_shape(library_root, slug): errors = [] slug_dir = os.path.join(library_root, slug) - index_path = os.path.join(slug_dir, "index.html") - if not os.path.isfile(index_path): - errors.append(f"{slug_dir}: missing index.html") + + if not os.path.isfile(source_path_for(library_root, slug)): + errors.append(f"{slug_dir}: missing {slug}.source.html") expected_pdf = f"{slug}.pdf" pdfs = [f for f in os.listdir(slug_dir) if f.lower().endswith(".pdf")] @@ -68,16 +84,103 @@ def check_shape(library_root, slug): return errors +def _read(path): + with open(path, encoding="utf-8") as f: + return f.read() + + def check_gate(library_root, slug): errors = [] - index_path = os.path.join(library_root, slug, "index.html") - if not os.path.isfile(index_path): + source_path = source_path_for(library_root, slug) + if not os.path.isfile(source_path): return errors - with open(index_path, encoding="utf-8") as f: - html = f.read() + html = _read(source_path) for pattern, label in GATE_PATTERNS: if pattern.search(html): - errors.append(f"{index_path}: contains {label} - no gate is allowed on a library page") + errors.append(f"{source_path}: contains {label} - no gate is allowed on a library page") + return errors + + +def check_title(library_root, slug): + """The source's <title> must lead with the item's own printed name - the same + convention library/README.md states for the served page, applied here to the + source it will eventually be built from. The printed name is read from the + source's own <h1>, so there is nothing outside the file to keep in sync.""" + source_path = source_path_for(library_root, slug) + if not os.path.isfile(source_path): + return [] + html = _read(source_path) + + title_m = re.search(r"<title>(.*?)", html, re.IGNORECASE | re.DOTALL) + h1_m = re.search(r"]*>(.*?)", html, re.IGNORECASE | re.DOTALL) + if not title_m: + return [f"{source_path}: no element"] + if not h1_m: + return [f"{source_path}: no <h1> to read the item's printed name from"] + + title_text = re.sub(r"\s+", " ", title_m.group(1)).strip() + h1_text = re.sub(r"<[^>]+>", "", h1_m.group(1)) + h1_text = re.sub(r"\s+", " ", h1_text).strip() + + if not h1_text.startswith(title_text): + return [ + f"{source_path}: <title> {title_text!r} does not lead the printed name " + f"{h1_text!r} (<h1>)" + ] + return [] + + +def page_size_mm(source_path): + html = _read(source_path) + m = re.search(r"@page\s*\{[^}]*size:\s*([\d.]+)mm\s+([\d.]+)mm", html) + if not m: + return None + return float(m.group(1)), float(m.group(2)) + + +def mm_to_pt(mm): + return mm * 72.0 / 25.4 + + +def read_mediabox_and_page_count(pdf_path): + with open(pdf_path, "rb") as f: + data = f.read() + boxes = re.findall(rb"/MediaBox\s*\[\s*([\d.]+)\s+([\d.]+)\s+([\d.]+)\s+([\d.]+)\s*\]", data) + if not boxes: + return None + page_count = len(re.findall(rb"/Type\s*/Page[^s]", data)) + w = float(boxes[0][2]) - float(boxes[0][0]) + h = float(boxes[0][3]) - float(boxes[0][1]) + return w, h, page_count + + +def check_geometry(library_root, slug): + """Statically compares the source's own @page rule against the committed PDF's + MediaBox and page count - never by re-rendering (see module docstring).""" + source_path = source_path_for(library_root, slug) + pdf_path = pdf_path_for(library_root, slug) + if not os.path.isfile(source_path) or not os.path.isfile(pdf_path): + return [] + + want_mm = page_size_mm(source_path) + if want_mm is None: + return [f"{source_path}: no `@page {{ size: <w>mm <h>mm }}` rule"] + want_w_pt, want_h_pt = mm_to_pt(want_mm[0]), mm_to_pt(want_mm[1]) + + got = read_mediabox_and_page_count(pdf_path) + if got is None: + return [f"{pdf_path}: no /MediaBox found"] + got_w_pt, got_h_pt, page_count = got + + errors = [] + if page_count != 1: + errors.append(f"{pdf_path}: expected exactly 1 page, found {page_count}") + if abs(got_w_pt - want_w_pt) > GEOMETRY_TOLERANCE_PT or abs(got_h_pt - want_h_pt) > GEOMETRY_TOLERANCE_PT: + errors.append( + f"{pdf_path}: MediaBox {got_w_pt:.2f}x{got_h_pt:.2f}pt does not match " + f"{source_path}'s @page size {want_w_pt:.2f}x{want_h_pt:.2f}pt " + f"(tolerance {GEOMETRY_TOLERANCE_PT}pt)" + ) return errors @@ -107,6 +210,11 @@ def sha256_of(path): def check_checksums(library_root, slugs): + """Every item carries a *pair* of entries - source and PDF - each verified + against the committed file it names. A source edited without re-rendering is + caught here: its committed bytes no longer match the hash recorded for it, + the same way a tampered PDF already was. See library/README.md for the failure + mode this exists to catch and the one it deliberately does not attempt.""" checksums_path = os.path.join(library_root, CHECKSUMS_FILE) try: entries = parse_checksums(checksums_path) @@ -116,27 +224,29 @@ def check_checksums(library_root, slugs): return [f"{checksums_path}: missing"] errors = [] - pdf_by_rel = {} + committed = {} for slug in slugs: - rel = f"{slug}/{slug}.pdf" - abs_path = os.path.join(library_root, slug, f"{slug}.pdf") - if os.path.isfile(abs_path): - pdf_by_rel[rel] = abs_path - - for rel, abs_path in pdf_by_rel.items(): + for rel, abs_path in ( + (f"{slug}/{slug}.source.html", source_path_for(library_root, slug)), + (f"{slug}/{slug}.pdf", pdf_path_for(library_root, slug)), + ): + if os.path.isfile(abs_path): + committed[rel] = abs_path + + for rel, abs_path in committed.items(): if rel not in entries: errors.append(f"{checksums_path}: no entry for {rel}") continue actual = sha256_of(abs_path) if actual != entries[rel]: errors.append( - f"{checksums_path}: checksum for {rel} does not match the committed PDF " + f"{checksums_path}: checksum for {rel} does not match the committed file " f"(expected {entries[rel]}, got {actual})" ) for rel in entries: - if rel not in pdf_by_rel: - errors.append(f"{checksums_path}: entry for {rel} but no such PDF exists") + if rel not in committed: + errors.append(f"{checksums_path}: entry for {rel} but no such file exists") return errors @@ -148,6 +258,8 @@ def run_checks(root): for slug in slugs: errors.extend(check_shape(library_root, slug)) errors.extend(check_gate(library_root, slug)) + errors.extend(check_title(library_root, slug)) + errors.extend(check_geometry(library_root, slug)) errors.extend(check_checksums(library_root, slugs)) return errors, slugs @@ -158,22 +270,42 @@ def _write(path, content=""): f.write(content) -def _sha256sums_line(root_for_hash, slug): - pdf_path = os.path.join(root_for_hash, LIBRARY_DIR, slug, f"{slug}.pdf") - return f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" +PAGE_W_MM, PAGE_H_MM = 100.0, 50.0 +PAGE_W_PT, PAGE_H_PT = mm_to_pt(PAGE_W_MM), mm_to_pt(PAGE_H_MM) -def _fresh_item(tmp, slug="widgets", pdf_bytes=b"%PDF-1.4 fixture\n"): - """A minimal, contract-clean item: index.html, <slug>.pdf, and a matching - SHA256SUMS entry. Callers mutate one thing at a time to demonstrate a failure.""" - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), "<html><body>content</body></html>") - _write(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) - with open(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), "wb") as f: - f.write(pdf_bytes) - _write( - os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), - _sha256sums_line(tmp, slug), +def _fixture_source(title="Widgets", h1="Widgets — the complete field guide", extra_head="", extra_body=""): + return ( + "<!DOCTYPE html><html><head>" + f"<title>{title}" + f"" + f"{extra_head}" + f"

{h1}

{extra_body}" ) + + +def _fixture_pdf(w_pt=PAGE_W_PT, h_pt=PAGE_H_PT, page_count=1): + pages = "".join(f"<< /Type /Page /MediaBox [0 0 {w_pt:.2f} {h_pt:.2f}] >>\n" for _ in range(page_count)) + return f"%PDF-1.4\n{pages}%%EOF".encode("ascii") + + +def _sha256sums_lines(root_for_hash, slug): + source_path = source_path_for(os.path.join(root_for_hash, LIBRARY_DIR), slug) + pdf_path = pdf_path_for(os.path.join(root_for_hash, LIBRARY_DIR), slug) + return ( + f"{sha256_of(source_path)} {slug}/{slug}.source.html\n" + f"{sha256_of(pdf_path)} {slug}/{slug}.pdf\n" + ) + + +def _fresh_item(tmp, slug="widgets", source_html=None, pdf_bytes=None): + """A minimal, contract-clean item: .source.html, .pdf, and a + matching pair of SHA256SUMS entries. Callers mutate one thing at a time to + demonstrate a failure.""" + _write(source_path_for(os.path.join(tmp, LIBRARY_DIR), slug), source_html or _fixture_source()) + with open(pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug), "wb") as f: + f.write(pdf_bytes if pdf_bytes is not None else _fixture_pdf()) + _write(os.path.join(tmp, LIBRARY_DIR, CHECKSUMS_FILE), _sha256sums_lines(tmp, slug)) return slug @@ -207,16 +339,16 @@ def _selftest(): finally: shutil.rmtree(tmp) - # Missing index.html. + # Missing source. tmp = tempfile.mkdtemp() try: slug = _fresh_item(tmp) - os.remove(os.path.join(tmp, LIBRARY_DIR, slug, "index.html")) + os.remove(source_path_for(os.path.join(tmp, LIBRARY_DIR), slug)) errors, _ = run_checks(tmp) _expect( - any("missing index.html" in e for e in errors), - "an item directory missing index.html is caught", - "a missing index.html was not caught", + any("missing widgets.source.html" in e for e in errors), + "an item directory missing .source.html is caught", + "a missing source was not caught", failures, ) finally: @@ -226,7 +358,7 @@ def _selftest(): tmp = tempfile.mkdtemp() try: slug = _fresh_item(tmp) - os.remove(os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf")) + os.remove(pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug)) errors, _ = run_checks(tmp) _expect( any(f"missing {slug}.pdf" in e for e in errors), @@ -242,7 +374,7 @@ def _selftest(): try: slug = _fresh_item(tmp) os.rename( - os.path.join(tmp, LIBRARY_DIR, slug, f"{slug}.pdf"), + pdf_path_for(os.path.join(tmp, LIBRARY_DIR), slug), os.path.join(tmp, LIBRARY_DIR, slug, "final-v2.pdf"), ) errors, _ = run_checks(tmp) @@ -258,12 +390,11 @@ def _selftest(): # Gate:
. tmp = tempfile.mkdtemp() try: - slug = _fresh_item(tmp) - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '
') + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body="
")) errors, _ = run_checks(tmp) _expect( any("
" in e for e in errors), - "a page with a gate is caught", + "a source with a gate is caught", "a gate was not caught", failures, ) @@ -273,12 +404,11 @@ def _selftest(): # Gate: . tmp = tempfile.mkdtemp() try: - slug = _fresh_item(tmp) - _write(os.path.join(tmp, LIBRARY_DIR, slug, "index.html"), '') + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body='')) errors, _ = run_checks(tmp) _expect( any("" in e for e in errors), - "a page with a bare gate is caught", + "a source with a bare gate is caught", "an gate was not caught", failures, ) @@ -288,15 +418,11 @@ def _selftest(): # Gate: ', - ) + slug = _fresh_item(tmp, source_html=_fixture_source(extra_body='')) errors, _ = run_checks(tmp) _expect( any('type="submit"' in e for e in errors), - 'a page with a