feat(standard): narrow §15.1 to published projects, §18.4 to release — v2.07 - #41
Conversation
…— v2.07 Both clauses were obliging something nobody intended, and measuring the gap showed the text was describing a different set than the registry assumed. §15.1 read "each Spacecraft Software project has a dedicated subdomain", and PROJECTS.md tracks what is on disk — ninety-five rows. Reconciling them literally obliged sixty-seven new entries, covering vendored upstream forks (Redox, Ventoy-RS, Markitdown), bare symlinks (Lattice, Result -> a /nix/store path), scratch dirs (Rget-Temp, "Majestic 5 (Copy)") and reference copies. None is published by us; none has anything to serve. The table was not sixty-seven rows behind — the rule was describing a set nobody meant. §15.1 now says "published", and defines it as having a repository under a namespace we control (§6.4). Seventeen genuine rows are added, one per distinct controlled repo. Ferrite_OS was already registered as Ferrite; the vendored rust-guidelines fork is excluded under §4.2. §18.4 is a correction, not a relaxation. Since v1.33 a project owed a dated remediation entry from adoption — for existing at all, including every pre-release experiment. At v2.06 exactly one project carried one while roughly fourteen owed one. That is a clause being ignored, and a rule breached universally reports nothing while burying the one project that did the work. The obligation now attaches at a release tag or a declaration of usability, and is strict from there. Neither change can make a conforming project non-conformant: both remove obligations. makeinfo: zero errors, zero warnings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6c52f82689
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| @strong{Published} means the project has a repository under a namespace | ||
| Spacecraft Software controls (§6.4). That qualifier is doing real work: a |
There was a problem hiding this comment.
Trigger registration only when a project is published
For a project created locally without a repository in a controlled namespace, this definition excludes it from §15.1, but the unchanged instruction at lines 3824–3825 still requires adding its subdomain immediately when the project is created. The same section therefore both exempts and registers an unpublished project, defeating the narrowed scope; make the table-update trigger publication rather than creation.
Useful? React with 👍 / 👎.
| Each @strong{published} Spacecraft Software project has a dedicated | ||
| subdomain following the pattern | ||
| @code{https://<ProjectName>.SpacecraftSoftware.org/}. Use the |
There was a problem hiding this comment.
Express the revised subdomain obligation with shall
This sentence is the core obligation being narrowed, but §20.2 says normative weight is carried by its defined verbs and requires new or revised normative text to use those forms; has is not one of them. Consequently the revised scope reads as a statement of fact rather than a binding requirement. State that each published project shall have a dedicated subdomain.
AGENTS.md reference: AGENTS.md:L86-L88
Useful? React with 👍 / 👎.
Two clauses narrowed to what they can actually mean. Both were found by measuring the gap between the text and the world, and in both cases the text was describing a different set than anyone had assumed.
§15.1 — the registry was never sixty-seven rows behind
It read "Each Spacecraft Software project has a dedicated subdomain".
PROJECTS.mdtracks what is on disk — ninety-five rows. Reconciling the two literally obliges sixty-seven new entries, for a list that includes:Lattice,localai4mobile,Result→ a/nix/storepathRget-Temp,Majestic 5 (Copy)Filemanager refs,Majestic mobile refsNone of those is published by us and none has anything to serve at a subdomain. The table was not behind; the rule was describing a set nobody intended.
§15.1 now says published, and defines it: the project has a repository under a namespace Spacecraft Software controls (§6.4). Seventeen genuine rows are added on that basis — one per distinct controlled repository, which is the published identity:
Achernar · Adit · Antigravity 2 · Babel · Conduit · Reel · Majestic (×7 repos) · Packages · Projects · Specs · Theme
Ferrite_OSwas already registered asFerriteand is unchanged. The vendoredrust-guidelinesfork is excluded as third-party under §4.2.§18.4 — a correction, not a relaxation
Since v1.33, a project owed a dated accessibility remediation entry in
PROJECTS.mdfrom the moment §18 was adopted — that is, for existing at all, including every pre-release experiment.The predictable happened. At v2.06, exactly one project carried an entry while roughly fourteen owed one. That is not a standard being enforced, it is a clause being ignored — and a rule breached universally reports nothing about the projects that breach it, while burying the one project that did the work. (Scrubber's entry is honest and specific, and stays valid.)
The obligation now attaches where a reader can actually be harmed: from the moment a project cuts a release tag or declares itself usable by anyone other than the maintainer, and until it conforms. At that point it is strict — an absent entry is a compliance failure in its own right, because a shipped project may be unfinished but may not be silently unfinished. Before that point the entry is optional.
§18 still applies to every project, and a non-conforming project is not excused by this.
Unchanged
Every §15.1 entry that already existed, the §15.2 attribution block, §18's requirements in full, and §18.5's games exclusion. §16's §18 bullet is reworded to match.
No project conforming at v2.06 becomes non-conformant at v2.07 — both changes remove obligations rather than adding them.
Verification
makeinfo --no-split— zero errors, zero warnings.reuse lintpasses..mdcompanion regenerated.🤖 Generated with Claude Code