No description
  • Python 54.1%
  • Shell 45.9%
Find a file
2026-10-25 15:35:42 +01:00
.forgejo/workflows fix(adr-0030-S3): publish additive K3s golden DAG 2026-10-24 12:01:57 +00:00
api docs(adr-0026): HTTP API error envelope + state-change response contract 2026-07-10 15:40:40 +02:00
ci fix(adr-0030-S3): publish additive K3s golden DAG 2026-10-24 12:01:57 +00:00
guides chore: fix markdownlint errors across ADRs and guides 2026-07-02 21:43:48 +02:00
orchestration docs: remove premature Thornhill orchestration rule 2026-10-18 11:31:53 +02:00
scripts fix(adr-0030-S3): publish additive K3s golden DAG 2026-10-24 12:01:57 +00:00
templates ci(adr-0011-S2): allow complete additive image assembly 2026-10-24 07:14:40 +00:00
.gitignore ci(lint): gitignore __pycache__ + drop accidentally-committed pyc 2026-06-08 12:43:15 +00:00
.markdownlint-cli2.jsonc chore(lint): disable MD032 (ADR colon-lists are a prose convention, like MD007/MD013) 2026-07-09 14:57:31 +02:00
.pre-commit-config.yaml ci(lint): structural + markdown linter for the-rules 2026-06-08 12:42:54 +00:00
AGENTS.md init(the-rules): README + AGENTS pointing at hub hard-rules 2026-06-08 10:41:04 +00:00
INDEX.md docs: remove premature Thornhill orchestration rule 2026-10-18 11:31:53 +02:00
README.md docs: remove premature Thornhill orchestration rule 2026-10-18 11:31:53 +02:00
RULES.md chore: fix markdownlint errors across ADRs and guides 2026-07-02 21:43:48 +02:00

the-rules

Cross-repo hard rules + cross-cutting architecture ADRs for the L0GYKAL homeserver-config family. Submoduled at the-rules/ by the hub repo + every spoke (except bear — see ADR-0011 § Exclusions).

Layout

  • RULES.md at the root — the canonical hard rules, carved 2026-06-10 from homeserver-config:AGENTS.md § Hard rules.
  • ADRs live in subfolders by concern (ci/, orchestration/). One file per ADR, numbered NNNN-short-slug.md.
  • INDEX.md for the canonical table with impact + 1-sentence summary per document.

The hub's internal ADRs (watcher, devcontainer, validator) remain in homeserver-config/docs/adr/; only documents binding cross-repo action live here.

The split test (from hub docs/adr/0013-the-rules-architecture-adr-repo-split.md § Scope):

Does following this rule require spoke action — a workflow file edit, an AGENTS.md amendment, an interface contract a spoke implements? If yes → this repo. If no (hub-internal subsystem only) → homeserver-config/docs/adr/.

Documents

See INDEX.md for the full table with impact + summary per document.

# Subject Path
RULES Hard rules (carved from homeserver-config:AGENTS.md) RULES.md
0011 Spoke CI: manual-clone bridge, image-publish, runner-label split ci/0011-...md
0012 runners-spoke: capacity-managed ephemeral runners ci/0012-...md
0020 Spoke test standard — every spoke ships tests/test-spoke.sh ci/0020-...md
0021 Spoke permissions contract — every spoke ships permissions.yaml (wraps hub ADR-0017) ci/0021-...md

Future ADRs (0022+) are born here directly. Numbering skips 0013–0019 (those numbers belong to hub-internal ADRs in homeserver-config/docs/adr/).

Subfolder organisation

  • ci/ — CI infrastructure rules (runners, workflows, image publish).
  • orchestration/ — Agent / mission orchestration rules.

New rule + new concern → new subfolder. Update INDEX.md.

Consuming this repo

Add as a submodule once per consumer (hub or spoke):

git submodule add git@forge.tala.family:L0GYKAL/the-rules.git the-rules
git commit -m "chore: add the-rules submodule"

(SCP-style URL is required — URL-style breaks actions/checkout@v4's auto-rewrite per hub rule 20.)

After clone of a consumer:

git submodule update --init the-rules

Adopt a rule update:

git submodule update --remote --merge the-rules
git add the-rules
git commit -m "chore(the-rules): bump submodule to <short-sha>"

Each consumer pins its own SHA. The deliberate bump PR is the reviewable signal that an architecture rule changed downstream.

Citation form

In any consumer file (workflow, AGENTS.md, README), cite an ADR as:

the-rules/ci/0011-spoke-ci-manual-clone-image-publish-and-runner-split.md

The the-rules/ prefix matches the submodule path, so the citation resolves on disk in every consumer.

Numbering

Continues the homeserver-config ADR series (no gap, no reset). ADR-0011's number stays 0011 here. Future ADRs in EITHER repo (hub-internal or cross-cutting) pick the next free integer across BOTH repos.

Amendment workflow

  1. Open a PR against the-rules:main with the amended ADR.
  2. After merge, open follow-on chore(the-rules): bump submodule PRs against hub + every consuming spoke that needs to adopt the change. Each consumer can adopt at its own pace; ADR-0011 § S9's audit script flags spokes more than a configured staleness threshold behind the-rules:main.

Cross-refs

  • homeserver-config:docs/adr/0013-the-rules-architecture-adr-repo-split.md — establishes this repo + the split test
  • homeserver-config:AGENTS.md — hub hard-rules (apply when authoring here too)
  • homeserver-config:docs/spokes.md — spoke roster + cross-coupling shapes