Skip to content

Commit e87a048

Browse files
chore(meta+grades): fix .scm/.a2ml + .md/.adoc + 17/4 workflow-count drift (#33)
## Summary Three doc-drift corrections across `.meta/REQUIRED-FILES`, the immaculate guide, and the readiness-grades suite — all aligning prose docs with the canonical *machine-readable* rules. ### 1. `.scm` → `.a2ml` for the 6a2 metadata files `.meta/REQUIRED-FILES.md` listed `META.scm` / `STATE.scm` / `ECOSYSTEM.scm` / `PLAYBOOK.scm` / `AGENTIC.scm` / `NEUROSYM.scm` under "Mandatory SCM Files." The actual canonical extension is `.a2ml`. Confirmed by user 2026-04-30: *"a2ml for sure scm is removed except for guix related."* Consistent with this repo's own `.machine_readable/6a2/AGENTIC.a2ml` etc. (which use `.a2ml`, contradicting the doc) and with `hypatia-rules/rsr-self-compliance.a2ml @forbidden_files`: ``` - glob: "STATE.a2ml" at: "/" reason: "A2ML files go in .machine_readable/ only" ``` `.scm` is now reserved exclusively for Guix-related files (`guix.scm`, `.guix-channel`). ### 2. `.md` → `.adoc` for `REQUIRED-FILES` itself Per the hyperpolymath convention (AsciiDoc by default; Markdown only for files GitHub's community-health rules special-case by name), `.meta/REQUIRED-FILES.md` is internal documentation — it should be `.adoc`. Same syntax-conversion approach as PR `hyperpolymath/rsr-template-repo#28`. ### 3. "17 / 19 RSR workflows" → reference the canonical machine-readable rule The actual machine-readable list of required workflows lives in `hypatia-rules/rsr-self-compliance.a2ml @required_workflows` and currently names **4** workflows: ```a2ml @required_workflows: - name: "hypatia-scan.yml" reason: "RSR R-050 (self-scan)" - name: "mirror.yml" reason: "RSR R-051 (forge mirroring)" - name: "scorecard.yml" reason: "RSR R-052 (OpenSSF Scorecard)" - name: "rsr-antipattern.yml" reason: "RSR R-053 (antipattern check)" @EnD ``` But several prose docs claimed "17 RSR workflows" (or "19 CI workflows"): | File | Old claim | Now | |---|---|---| | `immaculate-guide/IMMACULATE-GUIDE.adoc:130` | "17 required workflows" | references `@required_workflows` (currently 4) + broader adoptable set | | `immaculate-guide/IMMACULATE-GUIDE.adoc:267` | "17 required workflows from rsr-template-repo" | enumerates the 4 mandated by name + notes broader optional set | | `toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.adoc:228` | "all 17 RSR workflows present" | references `@required_workflows` | | `toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.adoc:443` | "All 17 RSR workflows present" | references `@required_workflows` | | `toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml:56` | "RSR-FULL all 17 workflows green" | "RSR-FULL all required workflows green (per …@required_workflows)" | | `toolchain-readiness-grades/SELF-ASSESSMENT.adoc:74` | "all 17 RSR workflows present" | references `@required_workflows` | | `component-readiness-grades/SELF-ASSESSMENT.adoc:32` | "19 CI workflows" | "RSR-required CI workflows (per …@required_workflows) + adopted optional set" | Replacing the hard count with a reference to the machine-readable rule makes the prose durable: if the canonical-required set changes from 4 to N tomorrow, the prose stays correct without further editing. ## Why this matters The numeric drift was visible to anyone reading: the prose docs claim 17 (or 19); the machine-readable rule says 4; this repo's own `.github/workflows/` has 21; `rsr-template-repo`'s has 25. None of the prose numbers matched the actual rule. With this PR, prose now points at the rule rather than restating an out-of-date count. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent a3a13c9 commit e87a048

7 files changed

Lines changed: 80 additions & 60 deletions

File tree

.meta/REQUIRED-FILES.adoc

Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,73 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
= Required Repository Files
3+
4+
The following files *MUST* be present and kept up-to-date in every repository:
5+
6+
== Mandatory Dotfiles
7+
8+
[cols="2,3"]
9+
|===
10+
| File | Purpose
11+
12+
| `.gitignore` | Exclude build artifacts, secrets, and temp files
13+
| `.gitattributes` | Enforce LF line endings and diff settings
14+
| `.editorconfig` | Consistent editor settings across IDEs
15+
| `.tool-versions` | asdf version pinning for reproducible builds
16+
|===
17+
18+
== Mandatory A2ML Files
19+
20+
[NOTE]
21+
====
22+
These files use the `.a2ml` extension. Earlier versions of this doc
23+
listed them as `.scm`; that was stale drift. `.scm` is reserved exclusively
24+
for Guix-related files (`guix.scm`, `.guix-channel`). All 6a2 metadata
25+
files use `.a2ml`.
26+
====
27+
28+
[cols="2,3"]
29+
|===
30+
| File | Purpose
31+
32+
| `META.a2ml` | Architecture decisions, development practices
33+
| `STATE.a2ml` | Project state, phase, milestones
34+
| `ECOSYSTEM.a2ml` | Ecosystem positioning, related projects
35+
| `PLAYBOOK.a2ml` | Executable plans, procedures
36+
| `AGENTIC.a2ml` | AI agent operational gating
37+
| `NEUROSYM.a2ml` | Symbolic semantics, proof obligations
38+
|===
39+
40+
== Build System
41+
42+
[cols="2,3"]
43+
|===
44+
| File | Purpose
45+
46+
| `justfile` | Task runner (replaces Makefile)
47+
| `Mustfile` | Deployment state contract
48+
|===
49+
50+
*IMPORTANT*: Makefiles are FORBIDDEN. Use `just` for all tasks.
51+
52+
== Validation
53+
54+
These files are checked by:
55+
56+
* CI workflow validation
57+
* Pre-commit hooks (when configured)
58+
* Repository standardization scripts
59+
60+
== Updates
61+
62+
When updating these files:
63+
64+
. Use templates from `rsr-template-repo` as reference
65+
. Ensure SPDX license header is present
66+
. Test changes locally before pushing
67+
. Keep language-specific sections relevant to the repo
68+
69+
== See Also
70+
71+
* link:https://github.com/hyperpolymath/rhodium-standard-repositories[RSR (Rhodium Standard Repositories)]
72+
* link:https://github.com/hyperpolymath/mustfile[Mustfile Specification]
73+
* link:https://github.com/hyperpolymath/standards/tree/main/meta-a2ml[A2ML Format Family]

.meta/REQUIRED-FILES.md

Lines changed: 0 additions & 53 deletions
This file was deleted.

component-readiness-grades/SELF-ASSESSMENT.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ Assessed: 2026-04-04
2929

3030
|**D (RSR-Compliant)**
3131
|PASSED
32-
|RSR scaffolding complete: LICENSE, SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, MAINTAINERS.adoc, 19 CI workflows, .machine_readable/, 0-AI-MANIFEST.a2ml, Justfile/Mustfile
32+
|RSR scaffolding complete: LICENSE, SECURITY.md, CONTRIBUTING.md, CODE_OF_CONDUCT.md, MAINTAINERS.adoc, RSR-required CI workflows (per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows`) + adopted optional set, .machine_readable/, 0-AI-MANIFEST.a2ml, Justfile/Mustfile
3333

3434
|**C (Self-Validated)**
3535
|PASSED

immaculate-guide/IMMACULATE-GUIDE.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ fi
127127
=== rsr-template-repo as Canonical Start
128128

129129
Every new repository MUST start from `rsr-template-repo`, not from scratch.
130-
This ensures the 17 required workflows, the `.machine_readable/` directory,
130+
This ensures the RSR-required workflows (per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows` — currently 4 mandated, plus the broader adoptable set), the `.machine_readable/` directory,
131131
and the `justfile` scaffold are present from day one.
132132

133133
[source,bash]
@@ -264,7 +264,7 @@ before every merge._
264264

265265
=== The Hyperpolymath CI Stack
266266

267-
Every repo uses the 17 required workflows from `rsr-template-repo`.
267+
Every repo uses the RSR workflows from `rsr-template-repo` — 4 mandated by `hypatia-rules/rsr-self-compliance.a2ml @required_workflows` (`hypatia-scan.yml`, `mirror.yml`, `scorecard.yml`, `rsr-antipattern.yml`), plus the broader optional adoptable set.
268268
The three that act as truth validators are:
269269

270270
[source,bash]

toolchain-readiness-grades/SELF-ASSESSMENT.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,7 @@ The next non-trivial promotion. Requires:
7171
is now at `templates/CANONICAL-PROOF-SUITE.adoc` (v1.0, 15 entries).
7272
. *2 fully-proven programs* per §6.2, each cross-validated by at
7373
least one qualifying prover from `templates/QUALIFYING-PROVERS.adoc`.
74-
. *RSR-FULL* — all 17 RSR workflows present, SHA-pinned, and currently
74+
. *RSR-FULL* — all RSR-required workflows (per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows`) plus the broader adopted set present, SHA-pinned, and currently
7575
green. Standards repo is RSR-compliant; need to verify the same for
7676
the host repo of the audited component.
7777
. *Banned constructs ZERO* — verified by `panic-attack assail` clean

toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.a2ml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
(stability-posture "not-yet-releasable")
5454
(ordinal 3)
5555
(description "All Must + Should + Canonical Proof Suite. RSR-FULL. panic-attack zero across all severities. Fuzzing harness exists. 2 fully-proven programs.")
56-
(evidence-required "all E + canonical M/S/E proof suite passing + RSR-FULL all 17 workflows green + panic-attack zero all severities + fuzz harness exists + 2 fully-proven programs each by >=1 qualifying prover")
56+
(evidence-required "all E + canonical M/S/E proof suite passing + RSR-FULL all required workflows green (per hypatia-rules/rsr-self-compliance.a2ml @required_workflows) + panic-attack zero all severities + fuzz harness exists + 2 fully-proven programs each by >=1 qualifying prover")
5757
(minimum-for #f))
5858
(grade
5959
(code C)

toolchain-readiness-grades/TOOLCHAIN-READINESS-GRADES.adoc

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ NOTE: D is *not* the alpha gate. Alpha begins at C. D is the
225225

226226
[horizontal]
227227
Tier gate:: All *Must* AND all *Should* rows PASSED.
228-
Repository discipline:: RSR-FULLY-compliant — all 17 RSR workflows present,
228+
Repository discipline:: RSR-FULLY-compliant — all RSR-required workflows (per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows`) plus the broader adopted set present,
229229
SHA-pinned, and *currently green*. (Promoted from B to D because
230230
a toolchain component without RSR-full is just an unaudited binary
231231
in disguise.) All grade-E requirements carried forward.
@@ -440,7 +440,7 @@ estate standard at the time of assessment. Specifically and without
440440
exception:
441441

442442
[horizontal]
443-
RSR:: All 17 RSR workflows present, SHA-pinned, and *green for at least
443+
RSR:: All RSR-required workflows (per `hypatia-rules/rsr-self-compliance.a2ml @required_workflows`) plus the broader adopted set present, SHA-pinned, and *green for at least
444444
90 consecutive days*. Zero workflow flakes in that window.
445445
Branch protection:: per `feedback_branch_protection.md` —
446446
PR-required, signatures-required, linear history,

0 commit comments

Comments
 (0)