From 22b350dc90a196591802a535ad88149481074aa1 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sun, 23 Aug 2026 20:02:58 +0100 Subject: [PATCH 1/2] chore: global textual eradication of Nix and ReScript --- .github/CONTRIBUTING.md | 6 +++--- .github/copilot-instructions.md | 2 +- .github/dependabot.yml | 4 ++-- .github/workflows/governance.yml | 2 +- .machine_readable/6a2/META.a2ml | 4 ++-- .machine_readable/6a2/PLAYBOOK.a2ml | 4 ++-- .machine_readable/ai/PLACEHOLDERS.adoc | 6 +++--- .../policies/MAINTENANCE-CHECKLIST.a2ml | 2 +- .machine_readable/root-allow.txt | 2 +- 0-AI-MANIFEST.a2ml | 4 ++-- Justfile | 10 +++++----- docs/RSR_OUTLINE.adoc | 8 ++++---- docs/STATE-VISUALIZER.adoc | 4 ++-- docs/governance/CRG-AUDIT-TEMPLATE.adoc | 2 +- docs/governance/MAINTENANCE-CHECKLIST.a2ml | 2 +- docs/onboarding/QUICKSTART-DEV.adoc | 6 +++--- docs/onboarding/QUICKSTART-MAINTAINER.adoc | 4 ++-- docs/practice/AI-CONVENTIONS.adoc | 2 +- docs/proposals/root-cleanup.adoc | 2 +- docs/status/PROOF-NEEDS.adoc | 2 +- examples/web-project-deno.json | 16 ++++++++-------- tests/fuzz/README.adoc | 2 +- 22 files changed, 48 insertions(+), 48 deletions(-) diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index 1c6ddde..e7148fd 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -2,8 +2,8 @@ git clone https://github.com/hyperpolymath/bofj-kitt.git cd bofj-kitt -# Using Nix (recommended for reproducibility) -nix develop +# Using Guix (recommended for reproducibility) +guix develop # Or using toolbox/distrobox toolbox create bofj-kitt-dev @@ -45,7 +45,7 @@ bofj-kitt/ ├── MAINTAINERS.md ├── README.adoc ├── SECURITY.md -├── flake.nix # Nix flake — fallback (Perimeter 1) +├── flake.guix # Guix flake — fallback (Perimeter 1) ├── guix.scm # Guix package — primary (Perimeter 1) └── Justfile # Task runner (Perimeter 1) ``` diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index f119664..46b4547 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -33,7 +33,7 @@ ## Banned Languages -- No TypeScript (use ReScript) +- No TypeScript (use AffineScript) - No Node.js / npm / bun (use Deno) - No Go (use Rust) - No Python (use Julia or Rust) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 1af529e..158af44 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -50,8 +50,8 @@ updates: schedule: interval: "weekly" - # Nix flakes - - package-ecosystem: "nix" + # Guix flakes + - package-ecosystem: "guix" directory: "/" schedule: interval: "weekly" diff --git a/.github/workflows/governance.yml b/.github/workflows/governance.yml index 156264a..76a63ca 100644 --- a/.github/workflows/governance.yml +++ b/.github/workflows/governance.yml @@ -3,7 +3,7 @@ # in hyperpolymath/standards instead of carrying per-repo copies. # # Replaces the per-repo governance scaffolding removed in the same commit: -# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, +# quality.yml, guix-guix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml, # security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml, # workflow-linter.yml # diff --git a/.machine_readable/6a2/META.a2ml b/.machine_readable/6a2/META.a2ml index 4bd4364..b7cea59 100644 --- a/.machine_readable/6a2/META.a2ml +++ b/.machine_readable/6a2/META.a2ml @@ -26,7 +26,7 @@ adrs = [ build-tool = "just" container-runtime = "podman" ci-platform = "github-actions" -package-manager = "guix" # guix | nix | cargo | mix +package-manager = "guix" # guix | guix | cargo | mix [maintenance-axes] scoping-first = true @@ -50,7 +50,7 @@ perfective-source = "axis-1 honest state after corrective/adaptive updates" [axis-3-audit-rules] audit-focus = "systems in place, documentation explains actual state, safety/security accounted for, observed effects reviewed" compliance-focus = "seams/compromises/exception register, bounded exceptions, anti-drift checks" -drift-risk-example = "single exception broadening into policy violation (e.g. ReScript->TypeScript spread)" +drift-risk-example = "single exception broadening into policy violation (e.g. AffineScript->TypeScript spread)" effects-evidence = "benchmark execution/results and maintainer status dialogue/review" [design-rationale] diff --git a/.machine_readable/6a2/PLAYBOOK.a2ml b/.machine_readable/6a2/PLAYBOOK.a2ml index 676ec4c..cdaebfd 100644 --- a/.machine_readable/6a2/PLAYBOOK.a2ml +++ b/.machine_readable/6a2/PLAYBOOK.a2ml @@ -63,7 +63,7 @@ enforcement-workflow = ".github/workflows/estate-rules.yml" # .github/ CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, workflows/ # .machine_readable/ AI manifests (0.1-AI-MANIFEST.a2ml), 6a2/ checkpoints, # contractiles/, configs/, anchors/, policies/, scripts/, svc/ -# build/ contractile.just, flake.nix, guix.scm, Containerfile, +# build/ contractile.just, flake.guix, guix.scm, Containerfile, # just/*.just (Justfile section imports) # docs/ onboarding/, status/, architecture/, governance/ (all .adoc) # session/ dispatch.sh, custom-checks.k9, local-hooks.sh @@ -103,7 +103,7 @@ enforcement-workflow = ".github/workflows/estate-rules.yml" # build/just/groove.just Groove protocol setup (after zig removed) # # Daily-use recipes (BUILD, TEST, LINT, RUN, DEPS, DOCS, CONTAINER, CI, -# SECURITY, STATE, GUIX/NIX, MATRIX, VERSION CONTROL, UTILITIES, SESSION) +# SECURITY, STATE, GUIX/GUIX, MATRIX, VERSION CONTROL, UTILITIES, SESSION) # stay in the root Justfile where users expect to find them. # === 5-PR cleanup pattern === diff --git a/.machine_readable/ai/PLACEHOLDERS.adoc b/.machine_readable/ai/PLACEHOLDERS.adoc index 9b24377..d75d029 100644 --- a/.machine_readable/ai/PLACEHOLDERS.adoc +++ b/.machine_readable/ai/PLACEHOLDERS.adoc @@ -48,8 +48,8 @@ sed -i "s/{{CURRENT_DATE}}/$(date +%Y-%m-%d)/g" $(grep -rl '{{CURRENT_DATE}}' .) | Placeholder | Description | Example | Files | |---|---|---|---| -| `{{PROJECT_NAME}}` | Human-readable project name | `My Project` | SECURITY.md, CODE_OF_CONDUCT.md, TOPOLOGY.md, STATE.a2ml, Justfile, GOVERNANCE.md, MAINTAINERS.md, flake.nix, devcontainer.json | -| `{{PROJECT_DESCRIPTION}}` | One-line description | `A tool for X` | flake.nix | +| `{{PROJECT_NAME}}` | Human-readable project name | `My Project` | SECURITY.md, CODE_OF_CONDUCT.md, TOPOLOGY.md, STATE.a2ml, Justfile, GOVERNANCE.md, MAINTAINERS.md, flake.guix, devcontainer.json | +| `{{PROJECT_DESCRIPTION}}` | One-line description | `A tool for X` | flake.guix | | `{{REPO}}` | Repository name (slug) | `my-project` | CONTRIBUTING.md, SECURITY.md, CODE_OF_CONDUCT.md, cliff.toml | | `{{OWNER}}` | GitHub/GitLab org or username | `my-org` | SPDX headers, CONTRIBUTING.md, SECURITY.md, GOVERNANCE.md, MAINTAINERS.md, CODEOWNERS, mirror.yml, cliff.toml | | `{{FORGE}}` | Git forge domain | `github.com` | CONTRIBUTING.md | @@ -131,7 +131,7 @@ After replacing all placeholders, verify none remain: ```bash grep -rn '{{' . --include='*.md' --include='*.adoc' --include='*.a2ml' \ --include='*.scm' --include='*.idr' --include='*.res' \ - --include='Justfile' --include='*.nix' --include='*.toml' --include='*.yml' \ + --include='Justfile' --include='*.guix' --include='*.toml' --include='*.yml' \ --include='*.yaml' --include='*.hs' --include='*.ncl' --include='*.txt' \ --include='*.json' --include='Containerfile' --include='dep5' \ | grep -v 'PLACEHOLDERS.md' | grep -v 'node_modules' diff --git a/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml b/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml index 9d24d8d..f7568df 100644 --- a/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml +++ b/.machine_readable/policies/MAINTENANCE-CHECKLIST.a2ml @@ -67,7 +67,7 @@ compliance-seams-check = true exception-register-required = true exception-bounded-scope-required = true policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" +example-drift-risk = "single TypeScript exception causing broad AffineScript->TypeScript migration" compliance-tooling = "panic-attack" effects-tooling = "ecological checking with sustainabot guidance" diff --git a/.machine_readable/root-allow.txt b/.machine_readable/root-allow.txt index fb05d78..7829965 100644 --- a/.machine_readable/root-allow.txt +++ b/.machine_readable/root-allow.txt @@ -40,7 +40,7 @@ coordination.k9 # repo-local session binding (template-mandated) .github/ # CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, workflows/ .machine_readable/ # AI manifests, contractiles, custom-format configs .well-known/ -build/ # contractile.just, setup.sh, flake.{nix,lock}, guix.scm, .guix-channel, Containerfile +build/ # contractile.just, setup.sh, flake.{guix,lock}, guix.scm, .guix-channel, Containerfile ci/ # .gitlab-ci.yml, .pre-commit-config.yaml (root shims if tools require) docs/ # onboarding/, status/, governance/, ... session/ # dispatch.sh, custom-checks.k9, local-hooks.sh diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index 0e6de6e..3c7971c 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -16,7 +16,7 @@ agents = [ { name = "CLAUDE", role = "repo-local implementation, CI/CD, formal verification, kit tooling" }, { name = "CHATGPT", role = "prose, papers, publication review, standards docs, outreach drafts, letters" }, { name = "GEMINI", role = "estate audits, cross-repo sweeps, long-context triage, pattern detection" }, - { name = "VIBE", role = "UI/frontend, PanLL panels, ReScript components, theming, rapid prototyping" }, + { name = "VIBE", role = "UI/frontend, PanLL panels, AffineScript components, theming, rapid prototyping" }, ] [policy] @@ -30,7 +30,7 @@ items = [ { agent = "CLAUDE", task = "repo-local implementation, CI/CD, formal verification, kit tooling" }, { agent = "CHATGPT", task = "prose, papers, publication review, standards docs, outreach drafts, letters" }, { agent = "GEMINI", task = "estate audits, cross-repo sweeps, long-context triage, pattern detection" }, - { agent = "VIBE", task = "UI/frontend, PanLL panels, ReScript components, theming, rapid prototyping" }, + { agent = "VIBE", task = "UI/frontend, PanLL panels, AffineScript components, theming, rapid prototyping" }, ] diff --git a/Justfile b/Justfile index a4c059b..93a23bf 100644 --- a/Justfile +++ b/Justfile @@ -87,7 +87,7 @@ build *args: # Examples: # cargo build {{args}} # Rust # mix compile {{args}} # Elixir - # deno task build {{args}} # Deno/ReScript + # deno task build {{args}} # Deno/AffineScript @echo "Build complete" # Build in release mode with optimizations @@ -557,7 +557,7 @@ state-phase: @grep -oP 'phase\s*=\s*"\K[^"]+' .machine_readable/STATE.a2ml 2>/dev/null | head -1 || echo "unknown" # ═══════════════════════════════════════════════════════════════════════════════ -# GUIX & NIX +# GUIX & GUIX # ═══════════════════════════════════════════════════════════════════════════════ # Enter Guix development shell (primary) @@ -568,9 +568,9 @@ guix-shell: guix-build: guix build -f guix.scm -# Enter Nix development shell (fallback) -nix-shell: - @if [ -f "flake.nix" ]; then nix develop; else echo "No flake.nix"; fi +# Enter Guix development shell (fallback) +guix-shell: + @if [ -f "flake.guix" ]; then guix develop; else echo "No flake.guix"; fi # ═══════════════════════════════════════════════════════════════════════════════ # HYBRID AUTOMATION diff --git a/docs/RSR_OUTLINE.adoc b/docs/RSR_OUTLINE.adoc index ef02cc3..ea487d2 100644 --- a/docs/RSR_OUTLINE.adoc +++ b/docs/RSR_OUTLINE.adoc @@ -198,8 +198,8 @@ project/ === Language Tiers -* **Tier 1** (Gold): Rust, Elixir, Ada, Haskell, ReScript, Gleam -* **Tier 2** (Silver): Nickel, Guile Scheme, Nix, Idris2, OCaml +* **Tier 1** (Gold): Rust, Elixir, Ada, Haskell, AffineScript, Gleam +* **Tier 2** (Silver): Nickel, Guile Scheme, Guix, Idris2, OCaml * **Infrastructure**: Guix channels, derivations, Julia batch scripts === Required Files @@ -213,12 +213,12 @@ project/ * `.well-known/security.txt` * `.well-known/ai.txt` * `.well-known/humans.txt` -* `guix.scm` OR `flake.nix` +* `guix.scm` OR `flake.guix` === Prohibited * Python outside `salt/` directory -* TypeScript/JavaScript (use ReScript) +* TypeScript/JavaScript (use AffineScript) * CUE (use Guile/Nickel) * `Dockerfile` (use `Containerfile`) * npm, Bun, pnpm, yarn (use Deno) diff --git a/docs/STATE-VISUALIZER.adoc b/docs/STATE-VISUALIZER.adoc index f4ddce5..af81d7f 100644 --- a/docs/STATE-VISUALIZER.adoc +++ b/docs/STATE-VISUALIZER.adoc @@ -46,7 +46,7 @@ ┌─────────────────────────────────────────┐ │ PLATFORM INTEGRATION │ │ ┌───────────┐ ┌───────────┐ ┌───────┐│ - │ │ GitHub │ │ GitLab │ │ Nix / ││ + │ │ GitHub │ │ GitLab │ │ Guix / ││ │ │ Workflows │ │ CI/CD │ │ Guix ││ │ └───────────┘ └───────────┘ └───────┘│ └─────────────────────────────────────────┘ @@ -88,7 +88,7 @@ CONTAINER ECOSYSTEM (Phase 2) REPO INFRASTRUCTURE .machine_readable/ ██████████ 100% STATE/META/ECOSYSTEM active Governance & License ██████████ 100% PMPL & Ethical use verified - Development Shells (Nix/Guix) ██████████ 100% Reproducible env stable + Development Shells (Guix/Guix) ██████████ 100% Reproducible env stable ───────────────────────────────────────────────────────────────────────────── OVERALL: ██████████ 100% RSR Template Stable & Certified diff --git a/docs/governance/CRG-AUDIT-TEMPLATE.adoc b/docs/governance/CRG-AUDIT-TEMPLATE.adoc index fa9bc38..d76914d 100644 --- a/docs/governance/CRG-AUDIT-TEMPLATE.adoc +++ b/docs/governance/CRG-AUDIT-TEMPLATE.adoc @@ -77,7 +77,7 @@ Do *not* mark PRESENT without citing the path. | PRESENT / PARTIAL / ABSENT | `docs/` -| `guix.scm` + `flake.nix` +| `guix.scm` + `flake.guix` | PRESENT (primary + fallback) / PARTIAL / ABSENT | Root diff --git a/docs/governance/MAINTENANCE-CHECKLIST.a2ml b/docs/governance/MAINTENANCE-CHECKLIST.a2ml index 7001be8..29c0bc9 100644 --- a/docs/governance/MAINTENANCE-CHECKLIST.a2ml +++ b/docs/governance/MAINTENANCE-CHECKLIST.a2ml @@ -68,7 +68,7 @@ compliance-seams-check = true exception-register-required = true exception-bounded-scope-required = true policy-drift-contamination-check = true -example-drift-risk = "single TypeScript exception causing broad ReScript->TypeScript migration" +example-drift-risk = "single TypeScript exception causing broad AffineScript->TypeScript migration" compliance-tooling = "panic-attack" effects-tooling = "ecological checking with sustainabot guidance" diff --git a/docs/onboarding/QUICKSTART-DEV.adoc b/docs/onboarding/QUICKSTART-DEV.adoc index 57e41a4..9e0f202 100644 --- a/docs/onboarding/QUICKSTART-DEV.adoc +++ b/docs/onboarding/QUICKSTART-DEV.adoc @@ -18,11 +18,11 @@ guix shell ---- -=== Option B: Nix (fallback) +=== Option B: Guix (fallback) [source,bash] ---- -nix develop +guix develop ---- === Option C: Manual @@ -60,7 +60,7 @@ bofj-kitt/ ├── .machine_readable/ # Checkpoint files (STATE, META, ECOSYSTEM) ├── Justfile # Task runner recipes ├── guix.scm # Guix environment -├── flake.nix # Nix environment (fallback) +├── flake.guix # Guix environment (fallback) └── 0-AI-MANIFEST.a2ml # AI agent entry point ---- diff --git a/docs/onboarding/QUICKSTART-MAINTAINER.adoc b/docs/onboarding/QUICKSTART-MAINTAINER.adoc index c21c869..b791d5b 100644 --- a/docs/onboarding/QUICKSTART-MAINTAINER.adoc +++ b/docs/onboarding/QUICKSTART-MAINTAINER.adoc @@ -34,11 +34,11 @@ Output: `{{BUILD_OUTPUT_PATH}}` guix build -f guix.scm ---- -=== Nix +=== Guix [source,bash] ---- -nix build +guix build ---- === Container (Stapeln) diff --git a/docs/practice/AI-CONVENTIONS.adoc b/docs/practice/AI-CONVENTIONS.adoc index c79a46c..7ccbf25 100644 --- a/docs/practice/AI-CONVENTIONS.adoc +++ b/docs/practice/AI-CONVENTIONS.adoc @@ -53,7 +53,7 @@ MAINTENANCE-CHECKLIST.a2ml, or SOFTWARE-DEVELOPMENT-APPROACH.a2ml in the reposit | Banned | Use Instead | |---------------------|--------------------| -| TypeScript | ReScript | +| TypeScript | AffineScript | | Node.js / npm / bun | Deno | | Go | Rust | | Python | Julia / Rust | diff --git a/docs/proposals/root-cleanup.adoc b/docs/proposals/root-cleanup.adoc index cbe64bc..ad87b7c 100644 --- a/docs/proposals/root-cleanup.adoc +++ b/docs/proposals/root-cleanup.adoc @@ -107,7 +107,7 @@ phase-specific just files from `build/`. mkdir -p build git mv contractile.just build/ git mv setup.sh build/ -git mv flake.nix build/ +git mv flake.guix build/ [ -f flake.lock ] && git mv flake.lock build/ git mv guix.scm build/ git mv .guix-channel build/ diff --git a/docs/status/PROOF-NEEDS.adoc b/docs/status/PROOF-NEEDS.adoc index 3f222ca..1ff69d4 100644 --- a/docs/status/PROOF-NEEDS.adoc +++ b/docs/status/PROOF-NEEDS.adoc @@ -76,7 +76,7 @@ The following MUST NOT appear anywhere in proof files: | `sorry` | Lean4 | Incomplete proof | `Admitted` | Coq | Incomplete proof | `unsafeCoerce` | Haskell | Unsafe type cast -| `Obj.magic` | OCaml/ReScript | Unsafe type cast +| `Obj.magic` | OCaml/AffineScript | Unsafe type cast | `unsafe` (unaudited) | Rust | Unsafe block without safety comment |=== diff --git a/examples/web-project-deno.json b/examples/web-project-deno.json index 5ddd3bd..ee775a4 100644 --- a/examples/web-project-deno.json +++ b/examples/web-project-deno.json @@ -1,17 +1,17 @@ { - "// NOTE": "Example deno.json for ReScript web projects", + "// NOTE": "Example deno.json for AffineScript web projects", "tasks": { - "build": "deno run -A npm:rescript", - "clean": "deno run -A npm:rescript clean", - "watch": "deno run -A npm:rescript -w", + "build": "deno run -A npm:affinescript", + "clean": "deno run -A npm:affinescript clean", + "watch": "deno run -A npm:affinescript -w", "serve": "deno run -A jsr:@std/http/file-server .", "test": "deno test --allow-all" }, "imports": { - "rescript": "^12.0.0", - "@rescript/core": "npm:@rescript/core@^1.6.0", - "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/rescript-dom-mounter/main/src/", - "proven/": "../proven/bindings/rescript/src/" + "affinescript": "^12.0.0", + "@affinescript/core": "npm:@affinescript/core@^1.6.0", + "safe-dom/": "https://raw.githubusercontent.com/hyperpolymath/affinescript-dom-mounter/main/src/", + "proven/": "../proven/bindings/affinescript/src/" }, "compilerOptions": { "allowJs": true, diff --git a/tests/fuzz/README.adoc b/tests/fuzz/README.adoc index e5f22f0..873b525 100644 --- a/tests/fuzz/README.adoc +++ b/tests/fuzz/README.adoc @@ -53,7 +53,7 @@ defmodule MyPropertyTest do end ---- -=== ReScript / Deno (fast-check) +=== AffineScript / Deno (fast-check) [source,javascript] ---- From e569dc58676336f1a89a97c2146c85cf598a7adc Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 24 Aug 2026 07:58:56 +0100 Subject: [PATCH 2/2] refactor: migrate repository documentation from Markdown to AsciiDoc --- CHANGELOG.adoc | 9 + CHANGELOG.md | 11 -- CONTRIBUTING.adoc | 9 + CONTRIBUTING.md | 9 - README.adoc | 129 +++++++++++++++ README.md | 109 ------------- REQUIRES_INITIALISATION.adoc | 308 +++++++++++++++++++++++++++++++++++ REQUIRES_INITIALISATION.md | 301 ---------------------------------- SECURITY.adoc | 11 ++ SECURITY.md | 13 -- session/README.adoc | 45 +++++ session/README.md | 42 ----- 12 files changed, 511 insertions(+), 485 deletions(-) create mode 100644 CHANGELOG.adoc delete mode 100644 CHANGELOG.md create mode 100644 CONTRIBUTING.adoc delete mode 100644 CONTRIBUTING.md create mode 100644 README.adoc delete mode 100644 README.md create mode 100644 REQUIRES_INITIALISATION.adoc delete mode 100644 REQUIRES_INITIALISATION.md create mode 100644 SECURITY.adoc delete mode 100644 SECURITY.md create mode 100644 session/README.adoc delete mode 100644 session/README.md diff --git a/CHANGELOG.adoc b/CHANGELOG.adoc new file mode 100644 index 0000000..ca1c652 --- /dev/null +++ b/CHANGELOG.adoc @@ -0,0 +1,9 @@ +== Changelog + +All notable changes to this project will be documented in this file. + +The format is based on https://keepachangelog.com/en/1.1.0/[Keep a +Changelog], and this project adheres to +https://semver.org/spec/v2.0.0.html[Semantic Versioning]. + +=== [Unreleased] diff --git a/CHANGELOG.md b/CHANGELOG.md deleted file mode 100644 index 8109476..0000000 --- a/CHANGELOG.md +++ /dev/null @@ -1,11 +0,0 @@ -# Changelog - -All notable changes to this project will be documented in this file. - -The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), -and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). - - - - -## [Unreleased] diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc new file mode 100644 index 0000000..5949bf0 --- /dev/null +++ b/CONTRIBUTING.adoc @@ -0,0 +1,9 @@ +== Contributing + +[arabic] +. Fork the repository +. Create a feature branch +. Ensure SPDX headers on all files +. Submit a pull request + +*Author:* Jonathan D.A. Jewell j.d.a.jewell@open.ac.uk diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md deleted file mode 100644 index 8725e71..0000000 --- a/CONTRIBUTING.md +++ /dev/null @@ -1,9 +0,0 @@ - -# Contributing - -1. Fork the repository -2. Create a feature branch -3. Ensure SPDX headers on all files -4. Submit a pull request - -**Author:** Jonathan D.A. Jewell diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..4a29f63 --- /dev/null +++ b/README.adoc @@ -0,0 +1,129 @@ +https://www.mozilla.org/MPL/2.0/[image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: +MPL-2.0]] +https://creativecommons.org/licenses/by-sa/4.0/[image:https://img.shields.io/badge/Docs-CC--BY--SA--4.0-lightgrey.svg[Docs: +CC-BY-SA-4.0]] + +== bofj-kitt + +*Shared Developer Environment Extension Kit* — the "`SuperChainsaw`" for +the *BoJ (Box of Justice) server*. + +____ +*Status: pre-alpha scaffold.* This repository has its identity, +governance, and CI in place, but *no product code yet*. What the kit +will do is specified in link:docs/status/ROADMAP.adoc[the roadmap]; how +it got to this honest baseline is recorded in the +link:docs/reports/audit/repo-assessment-2026-07-16.adoc[repo +assessment]. +____ + +''''' + +=== What it is + +bofj-kitt is the hyperpolymath estate’s shared *developer-environment +layer*. The estate runs on the +https://github.com/hyperpolymath/standards[RSR (Rhodium Standard +Repository)] framework — every repo carries the same governance, session +protocols, and machine-readable state. bofj-kitt’s job is to make that +environment *provisionable and extensible from one place* instead of +copy-pasted per repo: + +* *provision* an estate-compliant developer environment (devcontainer / +Guix / toolchains — the scaffolding under +link:.devcontainer/[`+.devcontainer/+`], +link:container/[`+container/+`], and link:build/[`+build/+`]); +* *wire in* the estate session protocols (the dispatcher under +link:session/[`+session/+`]; see EXPLAINME.adoc); +* *register* the environment with a *BoJ server* — the estate’s verified +MCP gateway — over the Groove service-discovery manifest. The +link:.github/workflows/boj-build.yml[`+boj-build+`] workflow already +posts build events to a BoJ server’s `+ssg-mcp+` cartridge when +`+BOJ_SERVER_URL+` is set. + +The BoJ server itself lives at +https://github.com/hyperpolymath/boj-server[hyperpolymath/boj-server]. + +=== Why "`SuperChainsaw`"? + +A chainsaw for a developer environment: one tool that cuts through the +repetitive work of standing up, extending, and connecting a compliant +dev setup across the estate — rather than reproducing it by hand in +every repository. + +=== Status & honesty + +This repo was scaffolded from the RSR template and has been brought to a +*truthful baseline*: one consistent identity, governance CI that passes +its own estate rules, and a committed assessment + roadmap. It +deliberately does *not* claim working features it does not have. + +* *CRG grade: X (Untested)* — see +link:docs/status/READINESS.adoc[READINESS]. No product components exist +yet, so there is nothing to grade. +* The vendored copy of another project (AffineScript) and an +uninstantiated template ABI/FFI have been removed; see the +link:docs/reports/audit/repo-assessment-2026-07-16.adoc[assessment] for +the full before/after. + +=== The journey (roadmap) + +[width="100%",cols="50%,50%",options="header",] +|=== +|Milestone |Goal +|*M0* _(this pass)_ |Truthful identity, green governance CI, committed +assessment + roadmap + +|*M1* |Finish placeholder-token fills; restore a full SECURITY policy; +curate remaining template docs + +|*M2* |Product spec — define what an "`extension`" is; the kit’s first +surfaces; the BoJ integration contract + +|*M3* |Choose the implementation language; re-add a real end-to-end +workflow + +|*M4* |First shippable kit capability + per-capability tests → CRG *D* + +|*M5* |Live BoJ-server integration + dogfooding → CRG *C*, then external +targets → *B* +|=== + +Full detail: docs/status/ROADMAP.adoc. + +=== Repository shape + +* link:session/[`+session/+`] — session-protocol dispatcher (integration +layer over the central `+standards+` repo). +* link:.machine_readable/[`+.machine_readable/+`] — machine-readable +state, AI manifests, contractiles, and estate metadata (`+CLADE.a2ml+` +holds this repo’s registry identity). +* link:.github/workflows/[`+.github/workflows/+`] — estate governance CI +(root-shape, OpenSSF compliance, dogfood gate, Hypatia scan, Scorecard, +secret scanner, BoJ build trigger, multi-forge mirror). +* link:docs/[`+docs/+`] — governance, status, onboarding, and reports +(AsciiDoc; the estate does not permit `+.md+` under `+docs/+`). +* link:verification/[`+verification/+`] — a five-prover verification +skeleton (Idris2, Coq, Lean4, Agda, TLA+) awaiting product-specific +proofs. + +=== Building & running + +There is nothing to build yet — the implementation language is chosen at +M3. The link:Justfile[`+Justfile+`] exposes the estate’s task surface +(session commands, CRG grading, changelog, governance checks); product +`+build+`/`+test+`/`+run+` recipes are wired once the kit’s first +capability lands (M2–M3). + +=== Contributing + +See CONTRIBUTING.md. This is an early-stage estate repo; the most useful +contributions right now are on the product spec (M2) — what a BoJ +dev-environment "`extension`" should be. + +=== License + +* *Code:* link:LICENSE[MPL-2.0]. +* *Documentation:* CC-BY-SA-4.0. + +See link:LICENSES/[`+LICENSES/+`] for the full texts. diff --git a/README.md b/README.md deleted file mode 100644 index e36b40e..0000000 --- a/README.md +++ /dev/null @@ -1,109 +0,0 @@ - - -[![License: MPL-2.0](https://img.shields.io/badge/License-MPL--2.0-blue.svg)](https://www.mozilla.org/MPL/2.0/) -[![Docs: CC-BY-SA-4.0](https://img.shields.io/badge/Docs-CC--BY--SA--4.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/) - -# bofj-kitt - -**Shared Developer Environment Extension Kit** — the "SuperChainsaw" for the -**BoJ (Box of Justice) server**. - -> **Status: pre-alpha scaffold.** This repository has its identity, governance, -> and CI in place, but **no product code yet**. What the kit will do is -> specified in [the roadmap](docs/status/ROADMAP.adoc); how it got to this -> honest baseline is recorded in the -> [repo assessment](docs/reports/audit/repo-assessment-2026-07-16.adoc). - ---- - -## What it is - -bofj-kitt is the hyperpolymath estate's shared **developer-environment layer**. -The estate runs on the [RSR (Rhodium Standard Repository)](https://github.com/hyperpolymath/standards) -framework — every repo carries the same governance, session protocols, and -machine-readable state. bofj-kitt's job is to make that environment -**provisionable and extensible from one place** instead of copy-pasted per repo: - -- **provision** an estate-compliant developer environment (devcontainer / Guix / - toolchains — the scaffolding under [`.devcontainer/`](.devcontainer/), - [`container/`](container/), and [`build/`](build/)); -- **wire in** the estate session protocols (the dispatcher under - [`session/`](session/); see [EXPLAINME.adoc](EXPLAINME.adoc)); -- **register** the environment with a **BoJ server** — the estate's verified - MCP gateway — over the Groove service-discovery manifest. The - [`boj-build`](.github/workflows/boj-build.yml) workflow already posts build - events to a BoJ server's `ssg-mcp` cartridge when `BOJ_SERVER_URL` is set. - -The BoJ server itself lives at -[hyperpolymath/boj-server](https://github.com/hyperpolymath/boj-server). - -## Why "SuperChainsaw"? - -A chainsaw for a developer environment: one tool that cuts through the -repetitive work of standing up, extending, and connecting a compliant dev setup -across the estate — rather than reproducing it by hand in every repository. - -## Status & honesty - -This repo was scaffolded from the RSR template and has been brought to a -**truthful baseline**: one consistent identity, governance CI that passes its -own estate rules, and a committed assessment + roadmap. It deliberately does -**not** claim working features it does not have. - -- **CRG grade: X (Untested)** — see [READINESS](docs/status/READINESS.adoc). No - product components exist yet, so there is nothing to grade. -- The vendored copy of another project (AffineScript) and an uninstantiated - template ABI/FFI have been removed; see the - [assessment](docs/reports/audit/repo-assessment-2026-07-16.adoc) for the full - before/after. - -## The journey (roadmap) - -| Milestone | Goal | -|---|---| -| **M0** *(this pass)* | Truthful identity, green governance CI, committed assessment + roadmap | -| **M1** | Finish placeholder-token fills; restore a full SECURITY policy; curate remaining template docs | -| **M2** | Product spec — define what an "extension" is; the kit's first surfaces; the BoJ integration contract | -| **M3** | Choose the implementation language; re-add a real end-to-end workflow | -| **M4** | First shippable kit capability + per-capability tests → CRG **D** | -| **M5** | Live BoJ-server integration + dogfooding → CRG **C**, then external targets → **B** | - -Full detail: [docs/status/ROADMAP.adoc](docs/status/ROADMAP.adoc). - -## Repository shape - -- [`session/`](session/) — session-protocol dispatcher (integration layer over - the central `standards` repo). -- [`.machine_readable/`](.machine_readable/) — machine-readable state, AI - manifests, contractiles, and estate metadata (`CLADE.a2ml` holds this repo's - registry identity). -- [`.github/workflows/`](.github/workflows/) — estate governance CI (root-shape, - OpenSSF compliance, dogfood gate, Hypatia scan, Scorecard, secret scanner, - BoJ build trigger, multi-forge mirror). -- [`docs/`](docs/) — governance, status, onboarding, and reports (AsciiDoc; the - estate does not permit `.md` under `docs/`). -- [`verification/`](verification/) — a five-prover verification skeleton - (Idris2, Coq, Lean4, Agda, TLA+) awaiting product-specific proofs. - -## Building & running - -There is nothing to build yet — the implementation language is chosen at M3. -The [`Justfile`](Justfile) exposes the estate's task surface (session commands, -CRG grading, changelog, governance checks); product `build`/`test`/`run` -recipes are wired once the kit's first capability lands (M2–M3). - -## Contributing - -See [CONTRIBUTING.md](CONTRIBUTING.md). This is an early-stage estate repo; -the most useful contributions right now are on the product spec (M2) — what a -BoJ dev-environment "extension" should be. - -## License - -- **Code:** [MPL-2.0](LICENSE). -- **Documentation:** CC-BY-SA-4.0. - -See [`LICENSES/`](LICENSES/) for the full texts. diff --git a/REQUIRES_INITIALISATION.adoc b/REQUIRES_INITIALISATION.adoc new file mode 100644 index 0000000..d5b57a9 --- /dev/null +++ b/REQUIRES_INITIALISATION.adoc @@ -0,0 +1,308 @@ +== REQUIRES INITIALISATION + +*This repository is not finished being set up.* 30 substitution token(s) +across 20 file(s) still have no value. + +=== Why this is not already done + +This repo was created from `+hyperpolymath/rsr-template-repo+`. The mint +(`+just repo-init+`) fills every token that has a single mechanical +answer — owner, repo, author, dates, licence, branch — and it has done +so here. + +The tokens below are the ones it _deliberately cannot_ answer. They need +a decision or a fact that exists only in your head: what this project is +for, what command builds it, which port the service listens on, whether +a PGP key is held at all. The template’s own token vocabulary says as +much — you cannot sensibly answer "`required invariants`" in a +thirty-second bootstrap. + +They were left *visibly unfilled on purpose*. The alternatives were both +worse: inventing plausible values would put confident falsehoods into a +security policy and an architecture document, and silently deleting the +sections would hide the fact that a decision is owed. A visible gap is +honest; a fabricated answer is not. + +=== Do not delete this file until every item below is resolved + +This file is the only marker that the work is outstanding. Deleting it +early does not finish the setup, it just conceals it — and the next +person or agent to arrive will reasonably assume the repo is complete. + +* *If you are a person:* delete this file yourself once the last item is +done. +* *If you are an agent:* resolve what you legitimately can, leave the +rest, and delete this file only when no token below remains anywhere in +the tree. Do not delete it to make a gate go green. + +Re-running the estate top-up tool will remove this file automatically +once nothing is outstanding, so the safest way to finish is to fix the +tokens and let the check confirm it. + +=== What is needed, and where it goes + +==== `+{{ARGS}}+` + +Arguments for the justfile recipe this appears in. + +Appears in: + +* `+Justfile+` + +==== `+{{AUTHOR_EMAIL_ALT}}+` + +Appears in: + +* `+.github/.mailmap+` + +==== `+{{AUTHOR_ORG}}+` + +Author’s organisation. NOTE: no filled instance of this exists anywhere +in the estate — consider deleting the field instead. + +Appears in: + +* `+.machine_readable/svc/k9/examples/project-metadata.k9.ncl+` + +==== `+{{BUILD_CMD}}+` + +The exact command that builds this project. + +Appears in: + +* `+docs/onboarding/QUICKSTART-DEV.adoc+` + +==== `+{{BUILD_OUTPUT_PATH}}+` + +Where the build artefact lands. + +Appears in: + +* `+docs/onboarding/QUICKSTART-MAINTAINER.adoc+` + +==== `+{{CONDUCT_TEAM}}+` + +Name of the conduct body. If there is no committee, rewrite the sentence +rather than substituting a plural noun into '`a \{\{CONDUCT_TEAM}} +member`'. + +Appears in: + +* `+.github/CODE_OF_CONDUCT.md+` + +==== `+{{CONSUMER1}}+` + +A downstream repo that consumes this one. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{CONSUMER2}}+` + +A second downstream consumer. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{DEP1}}+` + +First named dependency, in .machine_readable/INTENT.contractile. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{DEP2}}+` + +Second named dependency, in .machine_readable/INTENT.contractile. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{DEPS}}+` + +Prose summary of runtime/build dependencies. + +Appears in: + +* `+docs/onboarding/QUICKSTART-MAINTAINER.adoc+` + +==== `+{{LANG_STACK}}+` + +The language stack, in prose. + +Appears in: + +* `+docs/onboarding/QUICKSTART-DEV.adoc+` + +==== `+{{LICENSE}}+` + +SPDX identifier for this repo’s licence. + +Appears in: + +* `+container/Containerfile+` +* `+container/manifest.toml+` + +==== `+{{MONOREPO_OR_STANDALONE}}+` + +Literally '`monorepo`' or '`standalone`'. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{MUST_INVARIANTS}}+` + +The invariants this project guarantees. Not answerable in a bootstrap; +it is the point of the repo. + +Appears in: + +* `+docs/onboarding/QUICKSTART-DEV.adoc+` + +==== `+{{ONE_PARAGRAPH_ANTI_PURPOSE}}+` + +A paragraph on what this deliberately is NOT for. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{ONE_PARAGRAPH_PURPOSE}}+` + +A paragraph on what this is for. + +Appears in: + +* `+.machine_readable/INTENT.contractile+` + +==== `+{{OPENSSF_PROJECT_ID}}+` + +OpenSSF project ID, same registration. + +Appears in: + +* `+docs/governance/TEMPLATE-STANDARDS-AUDIT.adoc+` + +==== `+{{PORT}}+` + +Port the container service listens on. + +Appears in: + +* `+container/Containerfile+` +* `+container/compose.toml+` +* `+container/deploy.k9.ncl+` +* `+container/entrypoint.sh+` +* `+container/manifest.toml+` +* `+container/vordr.toml+` + +==== `+{{PROJECT_DESCRIPTION}}+` + +One-line description, matching the forge description. + +Appears in: + +* `+container/Containerfile+` +* `+container/manifest.toml+` + +==== `+{{PROJECT_DOMAIN}}+` + +Taxonomy value for the subject domain. + +Appears in: + +* `+.machine_readable/anchors/ANCHOR.a2ml+` + +==== `+{{PROJECT_KIND}}+` + +Taxonomy value (library, service, tool, lab…). + +Appears in: + +* `+.machine_readable/anchors/ANCHOR.a2ml+` + +==== `+{{PROJECT_PURPOSE}}+` + +One line: what this exists to do. + +Appears in: + +* `+.machine_readable/anchors/ANCHOR.a2ml+` +* `+build/guix.scm+` + +==== `+{{PROJECT_UNIQUE_STRENGTH}}+` + +What this does that its alternatives do not. + +Appears in: + +* `+.machine_readable/agent_instructions/methodology.a2ml+` + +==== `+{{REGISTRY}}+` + +Container registry to publish to. + +Appears in: + +* `+container/compose.toml+` +* `+container/ct-build.sh+` +* `+container/deploy.k9.ncl+` + +==== `+{{REPO_DESCRIPTION}}+` + +Appears in: + +* `+docs/reports/audit/repo-assessment-2026-07-16.adoc+` + +==== `+{{RESPONSE_TIME}}+` + +Initial-response SLA for a security or conduct report. Promise only what +a solo maintainer can actually meet. + +Appears in: + +* `+.github/CODE_OF_CONDUCT.md+` + +==== `+{{SERVICE_NAME}}+` + +Container service name. + +Appears in: + +* `+container/.gatekeeper.yaml+` +* `+container/Containerfile+` +* `+container/compose.toml+` +* `+container/ct-build.sh+` +* `+container/deploy.k9.ncl+` +* `+container/entrypoint.sh+` +* `+container/manifest.toml+` +* `+container/vordr.toml+` + +==== `+{{TEST_CMD}}+` + +The exact command that runs its tests. + +Appears in: + +* `+docs/onboarding/QUICKSTART-DEV.adoc+` + +==== `+{{VERSION}}+` + +Version/tag for the container image. + +Appears in: + +* `+container/deploy.k9.ncl+` +* `+container/manifest.toml+` +* `+container/vordr.toml+` + +''''' + +Generated by the estate top-up pass. Rationale and the governing rulings +are in `+hyperpolymath/standards+`; the token vocabulary is +`+.machine_readable/ai/PLACEHOLDERS.adoc+` in `+rsr-template-repo+`. diff --git a/REQUIRES_INITIALISATION.md b/REQUIRES_INITIALISATION.md deleted file mode 100644 index 00783b2..0000000 --- a/REQUIRES_INITIALISATION.md +++ /dev/null @@ -1,301 +0,0 @@ - - -# REQUIRES INITIALISATION - -**This repository is not finished being set up.** 30 substitution token(s) across 20 file(s) still have no value. - -## Why this is not already done - -This repo was created from `hyperpolymath/rsr-template-repo`. The mint -(`just repo-init`) fills every token that has a single mechanical answer — -owner, repo, author, dates, licence, branch — and it has done so here. - -The tokens below are the ones it *deliberately cannot* answer. They need a -decision or a fact that exists only in your head: what this project is for, -what command builds it, which port the service listens on, whether a PGP key -is held at all. The template's own token vocabulary says as much — you cannot -sensibly answer "required invariants" in a thirty-second bootstrap. - -They were left **visibly unfilled on purpose**. The alternatives were both -worse: inventing plausible values would put confident falsehoods into a -security policy and an architecture document, and silently deleting the -sections would hide the fact that a decision is owed. A visible gap is -honest; a fabricated answer is not. - -## Do not delete this file until every item below is resolved - -This file is the only marker that the work is outstanding. Deleting it early -does not finish the setup, it just conceals it — and the next person or agent -to arrive will reasonably assume the repo is complete. - -- **If you are a person:** delete this file yourself once the last item is done. -- **If you are an agent:** resolve what you legitimately can, leave the rest, - and delete this file only when no token below remains anywhere in the tree. - Do not delete it to make a gate go green. - -Re-running the estate top-up tool will remove this file automatically once -nothing is outstanding, so the safest way to finish is to fix the tokens and -let the check confirm it. - -## What is needed, and where it goes - -### `{{ARGS}}` - -Arguments for the justfile recipe this appears in. - -Appears in: - -- `Justfile` - -### `{{AUTHOR_EMAIL_ALT}}` - -Appears in: - -- `.github/.mailmap` - -### `{{AUTHOR_ORG}}` - -Author's organisation. NOTE: no filled instance of this exists anywhere in the estate — consider deleting the field instead. - -Appears in: - -- `.machine_readable/svc/k9/examples/project-metadata.k9.ncl` - -### `{{BUILD_CMD}}` - -The exact command that builds this project. - -Appears in: - -- `docs/onboarding/QUICKSTART-DEV.adoc` - -### `{{BUILD_OUTPUT_PATH}}` - -Where the build artefact lands. - -Appears in: - -- `docs/onboarding/QUICKSTART-MAINTAINER.adoc` - -### `{{CONDUCT_TEAM}}` - -Name of the conduct body. If there is no committee, rewrite the sentence rather than substituting a plural noun into 'a {{CONDUCT_TEAM}} member'. - -Appears in: - -- `.github/CODE_OF_CONDUCT.md` - -### `{{CONSUMER1}}` - -A downstream repo that consumes this one. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{CONSUMER2}}` - -A second downstream consumer. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{DEP1}}` - -First named dependency, in .machine_readable/INTENT.contractile. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{DEP2}}` - -Second named dependency, in .machine_readable/INTENT.contractile. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{DEPS}}` - -Prose summary of runtime/build dependencies. - -Appears in: - -- `docs/onboarding/QUICKSTART-MAINTAINER.adoc` - -### `{{LANG_STACK}}` - -The language stack, in prose. - -Appears in: - -- `docs/onboarding/QUICKSTART-DEV.adoc` - -### `{{LICENSE}}` - -SPDX identifier for this repo's licence. - -Appears in: - -- `container/Containerfile` -- `container/manifest.toml` - -### `{{MONOREPO_OR_STANDALONE}}` - -Literally 'monorepo' or 'standalone'. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{MUST_INVARIANTS}}` - -The invariants this project guarantees. Not answerable in a bootstrap; it is the point of the repo. - -Appears in: - -- `docs/onboarding/QUICKSTART-DEV.adoc` - -### `{{ONE_PARAGRAPH_ANTI_PURPOSE}}` - -A paragraph on what this deliberately is NOT for. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{ONE_PARAGRAPH_PURPOSE}}` - -A paragraph on what this is for. - -Appears in: - -- `.machine_readable/INTENT.contractile` - -### `{{OPENSSF_PROJECT_ID}}` - -OpenSSF project ID, same registration. - -Appears in: - -- `docs/governance/TEMPLATE-STANDARDS-AUDIT.adoc` - -### `{{PORT}}` - -Port the container service listens on. - -Appears in: - -- `container/Containerfile` -- `container/compose.toml` -- `container/deploy.k9.ncl` -- `container/entrypoint.sh` -- `container/manifest.toml` -- `container/vordr.toml` - -### `{{PROJECT_DESCRIPTION}}` - -One-line description, matching the forge description. - -Appears in: - -- `container/Containerfile` -- `container/manifest.toml` - -### `{{PROJECT_DOMAIN}}` - -Taxonomy value for the subject domain. - -Appears in: - -- `.machine_readable/anchors/ANCHOR.a2ml` - -### `{{PROJECT_KIND}}` - -Taxonomy value (library, service, tool, lab…). - -Appears in: - -- `.machine_readable/anchors/ANCHOR.a2ml` - -### `{{PROJECT_PURPOSE}}` - -One line: what this exists to do. - -Appears in: - -- `.machine_readable/anchors/ANCHOR.a2ml` -- `build/guix.scm` - -### `{{PROJECT_UNIQUE_STRENGTH}}` - -What this does that its alternatives do not. - -Appears in: - -- `.machine_readable/agent_instructions/methodology.a2ml` - -### `{{REGISTRY}}` - -Container registry to publish to. - -Appears in: - -- `container/compose.toml` -- `container/ct-build.sh` -- `container/deploy.k9.ncl` - -### `{{REPO_DESCRIPTION}}` - -Appears in: - -- `docs/reports/audit/repo-assessment-2026-07-16.adoc` - -### `{{RESPONSE_TIME}}` - -Initial-response SLA for a security or conduct report. Promise only what a solo maintainer can actually meet. - -Appears in: - -- `.github/CODE_OF_CONDUCT.md` - -### `{{SERVICE_NAME}}` - -Container service name. - -Appears in: - -- `container/.gatekeeper.yaml` -- `container/Containerfile` -- `container/compose.toml` -- `container/ct-build.sh` -- `container/deploy.k9.ncl` -- `container/entrypoint.sh` -- `container/manifest.toml` -- `container/vordr.toml` - -### `{{TEST_CMD}}` - -The exact command that runs its tests. - -Appears in: - -- `docs/onboarding/QUICKSTART-DEV.adoc` - -### `{{VERSION}}` - -Version/tag for the container image. - -Appears in: - -- `container/deploy.k9.ncl` -- `container/manifest.toml` -- `container/vordr.toml` - ---- - -Generated by the estate top-up pass. Rationale and the governing rulings are -in `hyperpolymath/standards`; the token vocabulary is -`.machine_readable/ai/PLACEHOLDERS.adoc` in `rsr-template-repo`. diff --git a/SECURITY.adoc b/SECURITY.adoc new file mode 100644 index 0000000..7fa19c7 --- /dev/null +++ b/SECURITY.adoc @@ -0,0 +1,11 @@ +== Security Policy + +=== Reporting a Vulnerability + +*Email:* j.d.a.jewell@open.ac.uk + +*Response timeline:* - Acknowledgement within 48 hours - Initial +assessment within 7 days - Fix or mitigation within 90 days + +*Safe harbour:* We will not pursue legal action against security +researchers who follow responsible disclosure. diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index 5aecb31..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,13 +0,0 @@ - -# Security Policy - -## Reporting a Vulnerability - -**Email:** j.d.a.jewell@open.ac.uk - -**Response timeline:** -- Acknowledgement within 48 hours -- Initial assessment within 7 days -- Fix or mitigation within 90 days - -**Safe harbour:** We will not pursue legal action against security researchers who follow responsible disclosure. diff --git a/session/README.adoc b/session/README.adoc new file mode 100644 index 0000000..d14a6d7 --- /dev/null +++ b/session/README.adoc @@ -0,0 +1,45 @@ +== Session Bindings (Thin Local Layer) + +This directory provides local integration for central session-management +standards. + +Authoritative protocols live in: + +* `+../standards/session-management-standards/+` (or +`+$SESSION_STANDARDS_DIR+`) + +This repo keeps only thin bindings: + +* `+dispatch.sh+` maps canonical commands to central protocol paths. +* `+custom-checks.k9+` defines repo-local policy checks. +* `+local-hooks.sh+` provides optional repo-specific hook behavior. + +=== Canonical Commands + +* `+intake repo +` +* `+checkpoint change +` +* `+verify maintenance +` +* `+verify substantial +` +* `+verify release +` +* `+close planned +` +* `+close urgent +` +* `+recover repo +` +* `+handover full +` +* `+handover split +` +* `+handover model +` +* `+handover human +` + +=== Justfile Aliases + +Run `+just session-help+` to list aliases, then use recipes such as: + +* `+just intake-repo path=.+` +* `+just checkpoint-change path=.+` +* `+just verify-maintenance path=.+` +* `+just close-planned path=.+` +* `+just handover-model path=.+` + +=== Runtime Artifacts + +Runtime files are generated per repository in `+.session/+` and are not +canonical standards text. diff --git a/session/README.md b/session/README.md deleted file mode 100644 index 70d7444..0000000 --- a/session/README.md +++ /dev/null @@ -1,42 +0,0 @@ -# Session Bindings (Thin Local Layer) - -This directory provides local integration for central session-management standards. - -Authoritative protocols live in: - -- `../standards/session-management-standards/` (or `$SESSION_STANDARDS_DIR`) - -This repo keeps only thin bindings: - -- `dispatch.sh` maps canonical commands to central protocol paths. -- `custom-checks.k9` defines repo-local policy checks. -- `local-hooks.sh` provides optional repo-specific hook behavior. - -## Canonical Commands - -- `intake repo ` -- `checkpoint change ` -- `verify maintenance ` -- `verify substantial ` -- `verify release ` -- `close planned ` -- `close urgent ` -- `recover repo ` -- `handover full ` -- `handover split ` -- `handover model ` -- `handover human ` - -## Justfile Aliases - -Run `just session-help` to list aliases, then use recipes such as: - -- `just intake-repo path=.` -- `just checkpoint-change path=.` -- `just verify-maintenance path=.` -- `just close-planned path=.` -- `just handover-model path=.` - -## Runtime Artifacts - -Runtime files are generated per repository in `.session/` and are not canonical standards text.