// SPDX-License-Identifier: CC-BY-SA-4.0
= Required Repository Files

The following files *MUST* be present and kept up-to-date in every repository:

== Mandatory Dotfiles

[cols="2,3"]
|===
| File | Purpose

| `.gitignore` | Exclude build artifacts, secrets, and temp files
| `.gitattributes` | Enforce LF line endings and diff settings
| `.editorconfig` | Consistent editor settings across IDEs
| `.tool-versions` | asdf version pinning for reproducible builds
|===

== Mandatory A2ML Files

[NOTE]
====
These files use the `.a2ml` extension. Earlier versions of this doc
listed them as `.scm`; that was stale drift. `.scm` is reserved exclusively
for Guix-related files (`guix.scm`, `.guix-channel`). All 6a2 metadata
files use `.a2ml`.
====

[cols="2,3"]
|===
| File | Purpose

| `META.a2ml` | Architecture decisions, development practices
| `STATE.a2ml` | Project state, phase, milestones
| `ECOSYSTEM.a2ml` | Ecosystem positioning, related projects
| `PLAYBOOK.a2ml` | Executable plans, procedures
| `AGENTIC.a2ml` | AI agent operational gating
| `NEUROSYM.a2ml` | Symbolic semantics, proof obligations
|===

== Build System

[cols="2,3"]
|===
| File | Purpose

| `justfile` | Task runner (replaces Makefile)
| `Mustfile` | Deployment state contract
|===

*IMPORTANT*: Makefiles are FORBIDDEN. Use `just` for all tasks.

== Validation

These files are checked by:

* CI workflow validation
* Pre-commit hooks (when configured)
* Repository standardization scripts

== Updates

When updating these files:

. Use templates from `rsr-template-repo` as reference
. Ensure SPDX license header is present
. Test changes locally before pushing
. Keep language-specific sections relevant to the repo

== See Also

* link:https://github.com/hyperpolymath/rhodium-standard-repositories[RSR (Rhodium Standard Repositories)]
* link:https://github.com/hyperpolymath/mustfile[Mustfile Specification]
* link:https://github.com/hyperpolymath/standards/tree/main/meta-a2ml[A2ML Format Family]
