|
| 1 | +# Canonical root allowlist for RSR-templated repositories. |
| 2 | +# |
| 3 | +# Lists every entry permitted at the repository root. |
| 4 | +# Anything tracked at root that is not in this list is drift and |
| 5 | +# must be moved into the appropriate subdirectory (or added here |
| 6 | +# with a justification comment). |
| 7 | +# |
| 8 | +# Used by: scripts/check-root-shape.sh |
| 9 | +# Authority: TEMPLATE-STANDARDS-AUDIT.adoc, "Proposed Final Directory Map" |
| 10 | +# |
| 11 | +# Format: one entry per line; '#' starts a comment; trailing '/' marks a directory. |
| 12 | +# Blank lines and comment-only lines are ignored. |
| 13 | + |
| 14 | +# ─── Authority files (template-mandated) ───────────────────────────────────── |
| 15 | +README.adoc |
| 16 | +AUDIT.adoc |
| 17 | +EXPLAINME.adoc |
| 18 | +AFFIRMATION.adoc # dated/signed honesty snapshot (README/EXPLAINME/AFFIRMATION trio) |
| 19 | +0-AI-MANIFEST.a2ml # thin pointer to .machine_readable/0.1-AI-MANIFEST.a2ml |
| 20 | +GOVERNANCE.adoc # governance model (validator accepts root or docs/governance/) |
| 21 | +MAINTAINERS.adoc # maintainer roster |
| 22 | +CONTRIBUTING.md # Accepted at root OR .github/ — CI (openssf/quality/rhodibot) now checks both; .github/ is the canonical estate location (org-inherited). Allow-listed if present at root. |
| 23 | +SECURITY.md # Accepted at root OR .github/ — see CONTRIBUTING.md note above; security-policy contractile now accepts the .github/ copy. |
| 24 | +LICENSE |
| 25 | +LICENSES/ # REUSE licence texts (MPL-2.0.txt + CC-BY-SA-4.0.txt) for the dual-licence model (code MPL-2.0 / docs CC-BY-SA-4.0) |
| 26 | +CHANGELOG.md |
| 27 | +CITATION.cff # citation metadata (surfaced at root by #96) |
| 28 | + |
| 29 | +# ─── Build entry points (must live at root for their tooling) ──────────────── |
| 30 | +Justfile # delegates phases to build/just/*.just |
| 31 | +coordination.k9 # repo-local session binding (template-mandated) |
| 32 | +abi.ipkg # Idris2 package for the ABI seam; sourcedir=src/interface (estate canon: root-level *-abi.ipkg). Single case-consistent src/interface/Abi/ dir. Typecheck: `idris2 --typecheck abi.ipkg`. |
| 33 | + |
| 34 | +# ─── Conventional dotfiles (tool-required at root) ─────────────────────────── |
| 35 | +.editorconfig |
| 36 | +.envrc |
| 37 | +.gitattributes |
| 38 | +.gitignore |
| 39 | +.tool-versions |
| 40 | +CLAUDE.md # AI session instructions, generated by the arrival-pack from .machine_readable/ a2ml and read by agents at repo root (do not hand-edit; edit the a2ml source) |
| 41 | +.hypatia-ignore # repo-scoped Hypatia scanner exemptions; the scanner reads it from the repo root |
| 42 | +sonar-project.properties # SonarCloud analysis config; the SonarQube scan action reads it from the repo root |
| 43 | + |
| 44 | +# ─── Directories ───────────────────────────────────────────────────────────── |
| 45 | +.devcontainer/ # VS Code dev container spec; tool-required at root |
| 46 | +.git/ |
| 47 | +.github/ # CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, workflows/ |
| 48 | +.machine_readable/ # AI manifests, contractiles, custom-format configs |
| 49 | +.well-known/ |
| 50 | +build/ # contractile.just, setup.sh, guix.scm, .guix-channel, Containerfile |
| 51 | +ci/ # .gitlab-ci.yml, .pre-commit-config.yaml (root shims if tools require) |
| 52 | +docs/ # onboarding/, status/, governance/, ... |
| 53 | +docs-template/ # template-only: scaffolding docs copied into new repos |
| 54 | +machine-readable-design/ # template-only: design rationale for .machine_readable/ layout |
| 55 | +session/ # dispatch.sh, custom-checks.k9, local-hooks.sh |
| 56 | + |
| 57 | +# Source / test / artifact trees (project-specific but conventional) |
| 58 | +src/ |
| 59 | +tests/ |
| 60 | +benches/ |
| 61 | +examples/ |
| 62 | +features/ |
| 63 | +scripts/ |
| 64 | +verification/ |
| 65 | +container/ # may host Containerfile if not at build/ |
| 66 | + |
| 67 | +# ─── Tolerated pending follow-up (re-evaluate when item lands) ─────────────── |
| 68 | +.gitlab-ci.yml # TODO: relocate to ci/.gitlab-ci.yml after GitLab project-setting update |
| 69 | +.pre-commit-config.yaml # TODO: relocate to ci/.pre-commit-config.yaml after invocation pattern decided |
| 70 | +affinescript/ # AffineScript source subtree consumed by this template |
| 71 | +tools/ # TODO: consolidate with scripts/ or document the split (pending decision) |
0 commit comments