14 KiB
14 KiB
Changelog
All notable changes to this documentation repository, grouped into numbered revisions (v1, v2, …)
of the repository as a whole. There is no semantic version here — this repository has no manifest and
ships documents, so it uses the same v# scheme as the documents themselves.
Individual guideline documents carry their own Document Version header, and the skills carry
metadata.version; both are independent of the revisions below.
v10 — 2026-10-13
Changed
- Python tooling moved from Poetry to uv —
Python/DESIGN_DOCUMENT_PYTHON.mdv11 → v12 andPython/DESIGN_DOCUMENT_PYTHON_MODULE.mdv4 → v5. Section 11 is now "uv":uv sync,uv add,uv add --dev,uv remove,uv run, and for librariesuv build/uv publish. The lock file isuv.lock, with the same rule as before — committed for applications, ignored for libraries - uv also manages the interpreter — section 11 gained
uv python install <version>and states that the interpreter is a uv-managed Python, no pyenv and no system Python - The application document's new text is taken from the copy already migrated by hand in Curator, so that copy and the master are one and the same v12
- Library
pyproject.tomlexample uses theuv_buildbackend in place ofpoetry-core. The[tool.poetry] packagestable is gone —uv_buildfindssrc/<name>/by itself — and the ban on entry points now names[project.scripts] Python/TEMPLATE.md,Python/.gitignoreand the README conventions line follow:uv.lockin place ofpoetry.lockZscaler/ZSCALER_CERTIFICATE.md— uv does not readREQUESTS_CA_BUNDLE, so it moved to theSSL_CERT_FILErow; the verification command isuv run
v9 — 2026-10-07
Added
Claude/skills/doubynet/— new personal skill, reconciles the DoubyNet home-network documentation (a separate Syncthing-synced tree, not part of this repository) against the live state of its hosts, reports discrepancies, and updates the affected.mdfiles. Versionedv1, following the establishedmetadata.versionconvention. Was already in use directly from~/.claude/skills/doubynet/without a master copy here; brought in after a session surfaced several gaps (stale hardcoded path, unclear historical-vs-live document handling, no mention of CHANGELOG.md, no guidance for facts that can't be verified from a machine at all) that were fixed in the same passcheck_versions.pynow also checks the master skills inClaude/skills/<name>/SKILL.mdagainst their installed copies in~/.claude/skills/<name>/SKILL.md— a fixed location, independent of--root. Readsmetadata.versionfrom the YAML frontmatter instead of the**Document Version:**marker used by guideline documents. A skill missing from~/.claude/skills/entirely is reported as a new status,MISSING, and is safe to--synclikeBEHIND. Prompted by running the tool for the first time sincedoubynetwas added: it found four of the five pre-existing skills installed without any version header at all, anddocumentation_contextmissing from~/.claude/skills/entirely
Changed
--sync/report wording generalised from "document(s)" to "item(s)" now that the same machinery covers both guideline documents and skills
v8 — 2026-09-29
Fixed
WEB/DESIGN_DOCUMENT_WEBAPP.mdregistered incheck_versions.py. v7 added the document but left it out ofMASTERS, so its copies in projects were never compared against the master and--syncnever propagated it
v7 — 2026-09-24
Added
API/DESIGN_DOCUMENT_API.mdv2 — guidelines for any project that exposes an HTTP API, carried in addition to the language design document. It settles what was previously left to precedent: the URL version (/v0) and the product version are separate axes, the first naming a frozen consumer contract that moves only on a breaking change, the second following semantic versioning per release. Also fixes path naming (/v<n>/<CONSUMER>/<resource-in-kebab-case>, resources spelled out and never PascalCase), parameter and handler naming, the response envelope and its reserved paging keys, when an endpoint may be a delta and when it must stay a full snapshot, status-code meanings (an empty collection is200, not404), and the endpoint-level testing floor.API/DESIGN_DOCUMENT_API.mdregistered incheck_versions.pyand in the project-type table, so--syncpropagates it like every other guideline document.- Section 2.1 was rewritten before release (v1 → v2). The v1 draft filed
/subscribeunder endpoints that are "not part of any consumer contract" and declared the whole group free to change with the product version. It is the opposite: the token endpoints are the widest contract in the API, every delta consumer holds a token they issued, and the unversioned legacy feeds are contracts too. The section now splits operational endpoints from unversioned consumer endpoints and subjects the second group to section 1.1 — having no version to bump is not permission to break. WEB/DESIGN_DOCUMENT_WEBAPP.mdv1 — guidelines for a server-rendered web interface driven over a websocket (NiceGUI on FastAPI), carried in addition toDESIGN_DOCUMENT_PYTHON.md. Covers layers, one connection and one lock per service, page and dialog structure, where the language belongs, tables as the main idiom (including the slot trap), hand-written canvases, theming, performance, errors and notifications, authentication, testing, and a checklist for a new screen.
Changed
AGENTS.mdv8 → v9 — the table mapping project types to design documents is gone. EveryDESIGN_DOCUMENT*.mdin the project root now applies, with the suffix saying what it covers (a language, application vs. library, or a part of the system such as_WEBAPP), so the list can no longer go stale. Where two design documents disagree, the more specific one wins for what it covers.- The
MASTERScomment incheck_versions.pyno longer claims a design document is always named after a language — it is named after what it scopes, which may be a cross-cutting concern.
v6 — 2026-08-18
Added
--syncincheck_versions.py— offers to overwrite the outdated copies with the master, after listing them and asking for confirmation (--yesskips the prompt,--dry-runwrites nothing). Each file keeps the line endings it already used, so a version bump stays a one-line diff on Windows and Linux alike, and the write goes through a backup that is restored if it fails. AMODIFIEDcopy is never overwritten — it holds a local edit that copying would discard.gitignoreat the repository root for__pycache__/
Changed
- The design documents are renamed so the language is part of the file name:
DESIGN_DOCUMENT.md→DESIGN_DOCUMENT_PYTHON.md/DESIGN_DOCUMENT_RUST.md,DESIGN_DOCUMENT_MODULE.md→DESIGN_DOCUMENT_PYTHON_MODULE.md,DESIGN_DOCUMENT_LIB.md→DESIGN_DOCUMENT_RUST_LIB.md. Python and Rust applications used to share one file name, which only worked because the folder here disambiguated them — and the folder does not travel with the copy that lands in a project root. A project can now carry one design document per language, andcheck_versions.pyno longer has to guess the language fromCargo.toml. Bumped:DESIGN_DOCUMENT_PYTHON.mdv10 → v11,DESIGN_DOCUMENT_PYTHON_MODULE.mdv3 → v4,DESIGN_DOCUMENT_RUST.mdv3 → v4,DESIGN_DOCUMENT_RUST_LIB.mdv3 → v4,AGENTS.mdv7 → v8,CLAUDE.mdv2 → v3 check_versions.pyrecognises the pre-rename file names, reports them asOLD NAME, and renames them during--sync. TheCargo.tomlcheck survives only to disambiguate legacyDESIGN_DOCUMENT.mdcopies and can be deleted once every project is migrated. A project holding both the old and the new name is reported asDUPLICATEand never touched
v5 — 2026-08-18
Added
check_versions.py— walks the sibling project directories, compares everyCLAUDE.md,AGENTS.mdandDESIGN_DOCUMENT*.mdcopy against its master here, and reports the ones that are behind or were edited in place. Standard library only; exits non-zero when anything needs attention- "Guideline copies in projects" section in
README.md— the copies in project roots are now committed with each project, with the rationale and the three rules that keep them from drifting (never edit a copy, deviations go toPROJECT.md, sync commits stand alone)
Changed
README.mdstep 3 of "Starting a new project": the guideline copies are committed with the project instead of being kept out of version control, andClaude/CLAUDE.mdis named alongsideAGENTS.mdand the design documentAGENTS.mdv6 → v7: the Git section said the opposite of the new policy — "Never commit shared documentation" is replaced by the rule that every core document is committed, must never be edited inside a project, and is synchronised in its own commit that stays out of the projectCHANGELOG.mdCLAUDE.mdadded to the list of core root documents inAGENTS.mdand in all five design documents, which had omitted it:DESIGN_DOCUMENT.mdv9 → v10,DESIGN_DOCUMENT_MODULE.mdv2 → v3,Rust/DESIGN_DOCUMENT.mdv2 → v3,Rust/DESIGN_DOCUMENT_LIB.mdv2 → v3,DESIGN_DOCUMENT_GODOT.mdv2 → v3Python/TEMPLATE.md: the note that the shared documents are "never committed" now matches the new policy — they stay out of the template, but the copies in a project are committed and never editedProject template/CHANGELOG.mdgained a "Versioning" section: semantic versioning stays mandatory for software projects, while documentation and other manifest-less repositories may use single-number revisions (v1,v2, …). This repository's own changelog was converted to that scheme and its revisions renumbered0.1.0–0.4.0→v1–v4
v4 — 2026-08-18
Added
- Skill versioning: every
SKILL.mdnow carriesmetadata.version—changelogv2,checkv1,commitv2,documentationv1,documentation_contextv2. The skill format has no top-levelversionfield;metadatais one of the six Agent Skills spec fields, so the frontmatter still packages and uploads cleanly - "Skills" section in
README.mddescribing the versioning convention, the install location (~/.claude/skills/) and the rule that the folder name — notname:— is the command - The five skills listed individually in the
README.mdstructure tree AGENTS.mdv5 → v6: new "Commit messages" subsection under Git — commits and pull requests must never carry AI authorship (Co-Authored-By, "Generated with …", tool signatures or emoji footers). The subsection also states the single-line verbal English style, so assistants without thecommitskill get the same rules; the AI-authorship rule was added to the skill as wellCHANGELOG.mdfor this repository, with history backfilled from the git log- Explicit line length for Rust: 100 characters (rustfmt default
max_width) in both Rust design documents README.md,docs/,prebuild.pyand the PyInstaller.specto the template structure inPython/TEMPLATE.md- Note in
Python/TEMPLATE.mdthatAGENTS.mdandDESIGN_DOCUMENT.mdare not part of the template README.mdto the session read list inClaude/CLAUDE.md, plus a missing top-level headingDocument Versionmarker inClaude/CLAUDE.md, starting at v2 — it is copied into projects likeAGENTS.mdand the design documents, so it can go stale there the same way
Changed
- Document versions bumped for the structural changes released on 2026-08-18:
DESIGN_DOCUMENT.mdv8 → v9,DESIGN_DOCUMENT_MODULE.mdv1 → v2,Rust/DESIGN_DOCUMENT.mdv1 → v2,Rust/DESIGN_DOCUMENT_LIB.mdv1 → v2,DESIGN_DOCUMENT_GODOT.mdv1 → v2 Project template/CHANGELOG.mdnow names the project manifest generically (pyproject.toml,Cargo.toml,project.godot) instead ofpyproject.tomlonly- Godot debug constant renamed
Constants.DEBUG→Constants.DEFAULT_DEBUG, matching the Python reference module README.mdstep 1 of "Starting a new project" now also requires writing aREADME.mdPython/TEMPLATE.mdentry point is named by purpose or tool name instead ofmain.pyprebuild.pyloads.envbefore importingsrc.constantsinstead of relying on the import side effect
Fixed
- Skill folder
Claude/skills/context/renamed todocumentation_context/, with the frontmatternamematched to it. The folder name is what Claude Code turns into the command, so the old mismatch meant installing from this repository would have changed/documentation_contextinto/context - Removed the misplaced lock-file rule from the Testing sections of
DESIGN_DOCUMENT_MODULE.md(§9) andRust/DESIGN_DOCUMENT_LIB.md(§8) — it already belongs to the Poetry / Distribution sections
v3 — 2026-08-18
Added
Zscaler/ZSCALER_CERTIFICATE.md— full certificate setup for Node, Python, git and cargo- Language-specific
.gitignorefiles for Python, Rust and Godot, plus a shared core inProject template/ poetry.lockandprebuild.pysections inPython/DESIGN_DOCUMENT.md
Changed
- Unified task notation across all languages on the Todo Tree tags
TODO,FIXME,BUG,HACK,NOTE AGENTS.mdv4 → v5: rewritten as strictly language-agnostic, naming no concrete tool- Python line length 150 → 120 characters
- Rust edition 2021 → 2024 (requires Rust 1.85 or newer)
- Godot project version key corrected to
application/config/version - Every design document now lists
README.mdamong the core root documents
Removed
Zscaler/NODE_EXTRA_CA_CERTS.md, superseded byZSCALER_CERTIFICATE.md
v2 — 2026-06-24
Added
Godot/DESIGN_DOCUMENT_GODOT.md— Godot development guidelines (v1)
v1 — 2026-05-25
Added
Rust/DESIGN_DOCUMENT.mdandRust/DESIGN_DOCUMENT_LIB.md— Rust guidelines for applications and libraries (v1)Claude/—CLAUDE.md,AGENTS.md(v4) and the custom skillschangelog,check,commit,context,documentationPython/—DESIGN_DOCUMENT.md(v8),DESIGN_DOCUMENT_MODULE.md(v1),TEMPLATE.md, and the referenceconstants.pymodule with testsProject template/—PROJECT.mdandCHANGELOG.mdtemplates
Changed
- Documentation organised into topic folders:
Claude/,Python/,Zscaler/,Project template/ README.mdrewritten to describe the repository itself instead of a single project