Skip to content

docs: clean up the three drift items flagged in #112#113

Merged
hyperpolymath merged 1 commit into
mainfrom
docs/post-112-followup
May 15, 2026
Merged

docs: clean up the three drift items flagged in #112#113
hyperpolymath merged 1 commit into
mainfrom
docs/post-112-followup

Conversation

@hyperpolymath
Copy link
Copy Markdown
Owner

Summary

Follow-up to #112. That PR fixed the README but flagged three drift items as out-of-scope. This PR clears them:

  • dune-project: relax (ocaml (>= 5.1))(ocaml (>= 4.14)) to match reality (209/209 tests on 4.14.2). affinescript.opam regenerated; the README note about the over-tight constraint is no longer needed and was dropped.
  • AI.a2ml: the file told agents to read .machine_readable/*.scm files (STATE.scm, AGENTIC.scm, …). Those files do not exist — actual files are .a2ml under .machine_readable/6a2/ (per the canonical rule that .scm is reserved for Guix). Rewrote to reflect the actual on-disk layout, plus pointers to top-level .contractile files and agent_instructions/.
  • CONTRIBUTING.md: was a half-rendered standards template — missing top-level header, dangling code fence, unsubstituted {{FORGE}}/{{OWNER}}/{{REPO}}/{{MAIN_BRANCH}} placeholders, suggested nix develop / toolbox / just check instead of dune, and truncated mid-sentence on line 117. Rewrote as a real contributor guide: real Quick Start matching the README, accurate Repository Structure, real GitHub label URLs, closed-out Conventional Commits / Required Checks / Pull Requests sections, License + CoC pointers at the bottom. Dropped the "Perimeter 1/2/3" framework — it doesn't appear anywhere else in the affinescript tree.

CODE_OF_CONDUCT.md is still a placeholder template — left for a separate PR to keep this one reviewable.

Test plan

  • dune build exits 0
  • dune runtest → 209/209 green
  • affinescript.opam regenerates cleanly from the new dune-project
  • AI.a2ml paths cross-checked against find .machine_readable -type f

🤖 Generated with Claude Code

Follow-up to #112. Three items were flagged there as "not done — would
expand scope". This commit addresses all three.

1. dune-project: relax OCaml constraint to match reality
-------------------------------------------------------

`dune-project` declared `(ocaml (>= 5.1))`, but the current tree builds
clean on 4.14.2 (209/209 tests green; verified in #112). The constraint
was stricter than the actual code requires, so `opam install .` against
a 4.14 switch failed for no real reason.

Bumped down to `(ocaml (>= 4.14))`. `affinescript.opam` regenerated via
`dune build` and the corresponding README note ("dune-project lists
`>= 5.1` but ...") is no longer needed and has been dropped.

If a 5.x-only feature is later introduced, bump the constraint at that
point with a commit that links the offending source line.

2. AI.a2ml: fix .scm → .a2ml drift, align with on-disk reality
--------------------------------------------------------------

`AI.a2ml` told agents to read `.machine_readable/STATE.scm`,
`AGENTIC.scm`, etc., and to "read `.machine_readable/*.scm` files at
session start". None of those files exist — the actual files are
`.a2ml`, living under `.machine_readable/6a2/` (per the canonical rule
that `.scm` is reserved for Guix: `guix.scm`, `.guix-channel`).

Rewrote the file to reflect the actual on-disk layout, split into:
- Core 6a2 metadata under `.machine_readable/6a2/`
- Top-level contractile files (`*.contractile`, `CLADE.a2ml`, anchors)
- Agent guidance (`agent_instructions/methodology.a2ml` etc.)

Workflow steps now point at `STATE.a2ml` and `AGENTIC.a2ml` with the
correct path prefix.

3. CONTRIBUTING.md: replace template placeholders, fix truncation
-----------------------------------------------------------------

`CONTRIBUTING.md` was a half-rendered standards template:
- Started with a bare `# Clone the repository` (no title, no intro,
  with a dangling closing ` ``` ` left over from a deleted fence).
- Placeholders never substituted: `{{FORGE}}`, `{{OWNER}}`, `{{REPO}}`,
  `{{MAIN_BRANCH}}`.
- Ended mid-sentence in the Conventional Commits format block (line 117
  with an unclosed code fence and no closing sections — License / CoC
  pointers, PR workflow, etc.).
- Suggested setup steps that don't apply here (`nix develop`,
  `toolbox`, `just check`) — affinescript builds with `dune`.

Rewrote as a real contributor guide:
- Title + intro pointing at README.adoc and STATE.a2ml.
- Quick Start matching the README's opam + `eval $(opam env)` recipe.
- Repository Structure that reflects what's actually on disk (lib/,
  bin/, stdlib/, packages/, .machine_readable/, js/ for the playground).
- Real GitHub label URLs.
- Branch naming + Conventional Commits + Required Checks +
  Pull Requests sections, all closed out properly.
- License + Code of Conduct pointers at the bottom.

Notably dropped: the "Perimeter 1/2/3" framework from the source
template — it does not appear anywhere else in the affinescript tree
(only in vendored sibling-repo `.github/` mirrors), so it was template
baggage rather than project vocabulary.

CODE_OF_CONDUCT.md is still a placeholder template — that's a separate
pass (kept out of this PR to keep it reviewable).

Verification
------------

  $ dune build        → exit 0
  $ dune runtest      → 209/209 green

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@hyperpolymath hyperpolymath merged commit 4e471b9 into main May 15, 2026
19 checks passed
@hyperpolymath hyperpolymath deleted the docs/post-112-followup branch May 15, 2026 07:11
hyperpolymath added a commit that referenced this pull request May 15, 2026
Follow-up to #112 / #113. `CODE_OF_CONDUCT.md` was the same kind of
half-rendered template as the original `CONTRIBUTING.md`: it shipped
with a `TEMPLATE INSTRUCTIONS` HTML-comment block at the top and
`{{PROJECT_NAME}}`, `{{CONDUCT_EMAIL}}`, `{{CONDUCT_TEAM}}`,
`{{RESPONSE_TIME}}`, `{{CURRENT_YEAR}}`, `{{FORGE}}`, `{{OWNER}}`,
`{{REPO}}` placeholders unresolved.

Changes:

- Removed the `TEMPLATE INSTRUCTIONS` HTML-comment block at the top.
- Filled all placeholders with real values:
    {{PROJECT_NAME}}   → AffineScript
    {{CONDUCT_EMAIL}}  → jonathan.jewell@gmail.com
    {{CONDUCT_TEAM}}   → "the maintainers" (this is a solo-maintained
                         personal estate; "team" / "committee" would
                         overpromise)
    {{RESPONSE_TIME}}  → 7 days (calibrated for solo-maintained
                         response cadence rather than the 48h SLA the
                         template suggested)
    {{CURRENT_YEAR}}   → 2026
    {{FORGE}}/{{OWNER}}/{{REPO}} → github.com / hyperpolymath /
                                   affinescript
- Dropped the "Enforcement Across Perimeters" table — Perimeter 1/2/3
  vocabulary is template-only and was also removed from CONTRIBUTING.md
  in #113.
- Dropped the "Perimeter 2 applicants must confirm" line under
  Onboarding for the same reason.
- Dropped the "Anonymous Form" row from the reporting table — its body
  was `[Link to form if available]` and no such form exists.
- Dropped the "Maintainers receive additional training on enforcement"
  bullet — there is no such training programme; the line was
  aspirational template text.
- Reworded the Appeals "different team member" claim
  (impossible with one maintainer) to "after consultation with an
  uninvolved party where possible" — honest about the conflict-of-
  interest mitigation that's actually available.
- Reworded the Conflicts of Interest section to match the same
  single-maintainer reality.

Base Contributor Covenant 2.1 attribution preserved.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant