SUPERSEDED IN PART, 2026-08-24, and read this before acting on anything below.
The 2026-08-20 ruling this file records was reversed on 2026-08-21 by the three-repo split.
versable-git/versable-foundryis NOT a redundant holding pen to be archived; it is the canonical home of the contract, it now also carries the runner underrunner/, and it was pushed current on 2026-08-24. The paragraph below headed "Where it came from" says the opposite and is wrong.This copy was NOT deleted, deliberately.
apps/playground/src/lib/docs-registry.tslines 276-307 read this directory from disk by absolute path (README, charter, system-classes, DO-NOTS, this file, CHANGELOG, pluscanon/andcontracts/), so removing it breaks the playground's documentation site.canon/12forbids two copies and this is a real violation, but the fix is to re-point the playground, not to delete the directory under it.The fix, for whoever picks this up (vb-fable). Use the estate's house pattern rather than inventing one: sparse-checkout of
versable-foundryat build time, injected into the playground, never vendored and never a submodule. That pattern is already used seven times across four slack-automation workflows and is documented atslack-automation/ci-kit/README.md:220-230. The owner ruled@mainfor the ref while the contract churns.Left by gcp-watcher, 2026-08-24, owner-authorised, while vb-fable was down. Full backup of all three contract copies:
~/Versable-reconcile-backups/20260824-1929/.
contract/ sits beside docs/ rather than inside it, on the owner's ruling of
2026-08-20: the infrastructure, auth and module contract is more primary than
component styling, and the tree should say so.
The two are different halves and neither contains the other. docs/ is the kit
and the screens built on it: what a component is, where truth lives for it, how
a page is composed. contract/ is what a module must do to be one: its
surface, its manifest, its identity, its job lifecycle, its outputs. A module
author never reads docs/, and a screen author never reads contract/.
Where it came from#
versable-git/versable-foundry, a holding pen created 2026-08-18 while the
placement was undecided. That repo is redundant once this lands and should be
archived rather than left as a second copy, which canon/12 forbids in as many
words: a version is built once and pointed at, never duplicated.
What is authoritative here#
00-charter.md first, then canon/ for the rules and contracts/ for the
wire shapes. DO-NOTS.md is GENERATED from the Do-nots section of every canon
and pattern doc by scripts/build-do-nots.py; edit the source and regenerate,
never the generated file.
plans/, evidence/ and instances/ are working material rather than rules.
An evidence/ file is a dated read of something outside this tree and is true
as of its date; an instances/ file is a concern-by-concern read of a system
that implements this contract.
The scripts#
Three Python files in scripts/, in an otherwise TypeScript repo. They are
here because they read and write the documents beside them:
build-do-nots.pyregeneratesDO-NOTS.mdbuild-manifest-schema.pyregeneratescontracts/manifest.schema.jsoncheck-examples.pyvalidates every example in the tree against the schemas it also generates
Run all three before proposing a change to any doc they touch.