AcceptedHard rule

A rule is applicable where it is read

What this answers: Brand OS is a product, and its consumers are not its author. So what may a rule in here depend on? Anything in this repo. Nothing outside it.

Status: proposed · Owner: Head of Design · Scope: Aleris Group · Version: v0.1 · Updated: 2026-08-27

Author: Claude (drafted, marked below) · Audience: everyone authoring in the corpus, plus the assistant

Supersedes: — · Related: [[a-thinking-tool-stays-a-thinking-tool]], [[group-scope]], _packages/README.md


1. A rule must be applicable by someone who has only this repo

Rule sentence, corollary and Implication drafted by Claude, 2026-08-27. All three argue, so all three are Torfinn's to rewrite or reject. Everything below § 1 is measurement and utility text.

A rule stated in Brand OS must be applicable by a reader who has Brand OS and nothing else. A reference to anything outside this repo may credit, date, or place a rule in its history. It may never be the only location of the rule's content.

Corollary — the asymmetry. Brand OS may write outward. It may not require an outward read. Appending an observation to a personal ledger is output. Needing that ledger open in order to apply a rule is a dependency, and the reader who does not have it is left holding an instruction they cannot follow.

Implication. The rule that produces breaches here is a good one: never paraphrase a governing document — point at it. That rule assumes the target is reachable by whoever reads the pointer, which holds inside one repo and fails across a boundary. Inside the corpus, point. Across the boundary, absorb and attribute. The cost of absorbing is a second copy that can drift; the cost of pointing is a rule nobody outside this machine can apply. For a product, the second cost is larger.


2. Why this is a rule and not a preference

Brand OS ships. agent-baseline is installed in patientguide and sundviktlakemedel, referenced by aleris-vibe-coding, and read by aleris-assistant. None of those repos can see ~/TAKS, and neither can a designer who is handed this corpus.

Three different things share one workspace today, and only one of them is the product.

What it is Where it belongs
The product the corpus, the package, the site — what consumers read and install this repo
The maintenance method the board, the changelog, versioning and packaging rules — how the corpus is kept this repo
The collaboration method how Torfinn and Claude work: the tenets, the global context, /wrap, doab.md ~/TAKS, and it should stay there

The line runs between the second and the third. A different maintainer would bring their own collaboration method and would still need the whole of the first two. That is the test this rule enforces, and it is why the answer is not "move TAKS into Brand OS" — most of what is in TAKS is correctly outside the product.


Detection of violation

Checked by a script, unlike its sibling rulelib/external-references.test.ts. What a script cannot judge is whether a reference is load-bearing or merely credits a source, so it does not try: every outside-repo path in a rule-stating surface must be declared once, with a kind and a reason, and an undeclared one fails. Same discipline as KNOWN_LANG_MISMATCH in route-manifest.test.ts and IN_FLIGHT in branch-hygiene.test.ts: a list of accepted exceptions where each entry is a dated statement rather than a permanent exemption, and an entry that stops being true fails the suite.

The human test, for classifying one. Delete the reference and re-read the sentence.

  • Still applicable → it was attribution. Keep it.
  • The reader now has to go somewhere → it was a dependency. Absorb the content, then attribute.

Scope. Surfaces that state rules: constitutional/, foundation/, baseline/, principles/, patterns/, schemas/, filters/, data-products/, qualities/, accepted files in documentation/, and everything shipped in _packages/agent-baseline/. Deliberately excluded: workspace/ (the corpus's working memory, not a rule surface) and _packages/adapters/ (wiring instructions whose whole job is naming paths in consumer repos).

The check catches resolvable-looking paths, not mentions of origin. filters/ai-tells-and-filters.md says its patterns were curated from a writing-style profile in TAKS and offers no path; nobody follows that and finds nothing. _packages/agent-baseline/MANIFEST.md names ~/TAKS/3-resources/favicon.ico, which a reader would try to open. Only the second kind is a candidate.

The check has been run once, and the corpus passes. Nine references across five files, every one attribution, provenance or a downstream consumer:

File Reference Kind
_packages/agent-baseline/MANIFEST.md ~/TAKS/3-resources/favicon.ico ×2 provenance — the favicon itself ships in the package
documentation/how-decisions-are-recorded.md TAKS/doab.md ×4 attribution — the detection test is quoted in full and restated in applied form, so it is usable from the repo alone
workspace/archive/phase-0-2026-09-06/context-architecture.md the TAKS path it moved from redirect — a superseded pointer stub
workspace/archive/phase-0-2026-09-06/architecture-tools-and-site.md ~/Dev/icon-picker/_state.md cross-reference — sibling repo history, status: inbox
schemas/icon-allowlist-entry.md /Users/torfinn/TAKS/1-projects/presentationsverktyg/ consumer — a dependency pointing at Brand OS, not from it

The one place the corpus does defer rather than state: _state.md cites the 2,500-character cap as living in TAKS/2-areas/collaboration/metadata.md. It is outside this rule's scope on purpose — _state.md is operational, classed with workspace/ and carrying no reader badge — and it is the clearest example of the boundary being in the right place. A different maintainer replaces that file; they do not inherit it.

Known limits. Two, and both matter.

The script judges declaredness, not correctness. A load-bearing dependency mislabelled attribution passes, and only reading catches it — which is why the classification test above is stated for humans.

It cannot see the failure it was written after. On 2026-08-10 a token path moved and aleris-assistant pointed at the old one for fifteen days. That is the same family — a rule whose referent is not where it says — but it is a consumer holding a stale path into this repo, which no check here can see. Board card 88 covers the half this repo can check.


Origin

Harvest provenance. Not reasoned from first principles. Torfinn, 2026-08-27, on being shown the dependency sweep: "I thought the collaboration was about how you and I work together, not about how Brand OS learns and collaborates. I think the Brand OS should be self-sufficient in this regard since it's a product and as such shouldn't have dependencies to my work stream."

The sweep that prompted it also corrected the alarm that prompted the sweep. An earlier answer in the same session reported five local-only dependencies as if the product were exposed; reading each one found that every reference in a published, shipped or accepted file was attribution rather than instruction. The corpus was already compliant and had never said so — which is the same shape as [[a-thinking-tool-stays-a-thinking-tool]], written two days earlier off the same kind of retrospective read. A rule that describes what the corpus already does is cheap to adopt and is the only kind that holds.

What made it worth writing anyway: documentation/how-decisions-are-recorded.md reached accepted on 2026-08-25 while citing an unversioned file outside the repo for its only stated detection test. It quoted the test in full, so it is applicable — but that was one author's judgement, made against a stated rule that told them to point rather than absorb. Nothing required it.

External lineage. The distinction is ordinary software practice under another name: a published interface must not leak its author's environment. _packages/README.md already applies the same idea one level down — packages ship what a consumer needs and exclude what they cannot use, with the font files named as an exclusion with a reason rather than left absent.


Open

  • The rule sentence, corollary and Implication are Claude-drafted and need Torfinn's wording before this moves to accepted.
  • Whether documentation/ belongs in scope wholesale or only its accepted files. Drafted as the latter, which currently exempts architecture-tools-and-site.md (status: inbox).
  • Whether the corollary should be stronger — forbidding the outward write as well — if Brand OS is ever maintained by someone who has no TAKS to write to. Drafted permissive: emitting costs a reader nothing.
  • ~/TAKS/2-areas/collaboration/ is not under version control at all, and three files there govern how this repo is maintained. Out of this rule's scope, since none of them is load-bearing for a rule in the corpus, but it is the larger exposure and it is not addressed here.

Related

  • [[a-thinking-tool-stays-a-thinking-tool]] — the other rule read off the corpus's own record rather than reasoned
  • [[group-scope]] — what may and may not be built elsewhere
  • _packages/README.md — the same principle applied to what a package ships
  • lib/external-references.test.ts — the check
  • documentation/how-decisions-are-recorded.md — the accepted file this rule was written after reading