diff --git a/.devcontainer/Containerfile b/.devcontainer/Containerfile index b0a6fd1..4b0b7f4 100644 --- a/.devcontainer/Containerfile +++ b/.devcontainer/Containerfile @@ -1,9 +1,9 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # -# Dev Container image for {{PROJECT_NAME}} +# Dev Container image for RattleScript # Base: Chainguard Wolfi (minimal, supply-chain-secure) -# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile . +# Build: podman build -t RattleScript-dev -f .devcontainer/Containerfile . FROM cgr.dev/chainguard/wolfi-base:latest @@ -24,7 +24,7 @@ RUN groupadd -g 1000 nonroot || true \ && useradd -m -u 1000 -g 1000 -s /bin/bash nonroot || true # Set workspace directory -WORKDIR /workspaces/{{PROJECT_NAME}} +WORKDIR /workspaces/RattleScript # Default shell ENV SHELL=/bin/bash diff --git a/.devcontainer/README.adoc b/.devcontainer/README.adoc index 848e64d..835cf01 100644 --- a/.devcontainer/README.adoc +++ b/.devcontainer/README.adoc @@ -25,4 +25,4 @@ This dev container uses `cgr.dev/chainguard/wolfi-base` with git, curl, bash, an == Customization -Replace `{{PROJECT_NAME}}` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch. +Replace `RattleScript` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch. diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 77de100..687ce1b 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,11 +1,11 @@ // SPDX-License-Identifier: MPL-2.0 -// Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) // -// Dev Container configuration for {{PROJECT_NAME}} +// Dev Container configuration for RattleScript // Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod // Container runtime: Podman (recommended) or any OCI-compliant runtime { - "name": "{{PROJECT_NAME}}", + "name": "RattleScript", "build": { "dockerfile": "Containerfile", diff --git a/.envrc b/.envrc index 5924957..da3d456 100644 --- a/.envrc +++ b/.envrc @@ -18,7 +18,7 @@ if has nix && [ -f flake.nix ]; then fi # Project environment variables -export PROJECT_NAME="{{PROJECT_NAME}}" +export PROJECT_NAME="RattleScript" export RSR_TIER="infrastructure" # Source .env if it exists (gitignored) diff --git a/.github/.mailmap b/.github/.mailmap index 0ada9de..38c8dda 100644 --- a/.github/.mailmap +++ b/.github/.mailmap @@ -1 +1 @@ -{{AUTHOR}} <{{AUTHOR_EMAIL}}> <{{AUTHOR_EMAIL_ALT}}> +Jonathan D.A. Jewell <{{AUTHOR_EMAIL_ALT}}> diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 8d339b7..4714ad5 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1,14 +1,4 @@ # SPDX-License-Identifier: MPL-2.0 -# CODEOWNERS - Define code review assignments -# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners -# -# Replace hyperpolymath with your GitHub username or team - -# Default owners for everything -* @hyperpolymath - -# Security-sensitive files require explicit review -SECURITY.md @hyperpolymath -.github/workflows/ @hyperpolymath -Trustfile.a2ml @hyperpolymath -.machine_readable/ @hyperpolymath +# Solo-maintained hyperpolymath repo: no owner lines by policy. +# See hyperpolymath/standards CODEOWNERS-POLICY.adoc (Rule 1). +# Sole-maintainer review is moot; SPDX headers carry attribution. diff --git a/.github/CODE_OF_CONDUCT.md b/.github/CODE_OF_CONDUCT.md index 8d0bf88..d07e790 100644 --- a/.github/CODE_OF_CONDUCT.md +++ b/.github/CODE_OF_CONDUCT.md @@ -9,13 +9,13 @@ Copyright (c) Jonathan D.A. Jewell TEMPLATE INSTRUCTIONS (delete this block before publishing) ============================================================================ Replace all {{PLACEHOLDER}} values: - {{PROJECT_NAME}} - Your project name + RattleScript - Your project name hyperpolymath - GitHub/GitLab username or org rattlescript - Repository name - {{CONDUCT_EMAIL}} - Email for conduct reports + j.d.a.jewell@open.ac.uk - Email for conduct reports {{CONDUCT_TEAM}} - Name of conduct team/committee {{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours) - {{CURRENT_YEAR}} - Current year + 2026 - Current year Review and customise: - Adjust enforcement ladder for your community size @@ -26,7 +26,7 @@ Review and customise: ## Our Pledge -We as members, contributors, and leaders pledge to make participation in {{PROJECT_NAME}} a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. +We as members, contributors, and leaders pledge to make participation in RattleScript a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. @@ -140,7 +140,7 @@ If you experience or witness unacceptable behaviour, or have any other concerns, | Method | Details | Best For | |--------|---------|----------| -| **Email** | {{CONDUCT_EMAIL}} | Detailed reports, sensitive matters | +| **Email** | j.d.a.jewell@open.ac.uk | Detailed reports, sensitive matters | | **Private Message** | Contact any maintainer directly | Quick questions, minor issues | | **Anonymous Form** | [Link to form if available] | When you need anonymity | @@ -235,7 +235,7 @@ For contributors with elevated access (Perimeter 2 or 1): If you believe an enforcement decision was made in error: 1. **Wait 7 days** after the decision (cooling-off period) -2. **Email** {{CONDUCT_EMAIL}} with subject line "Appeal: [Original Report ID]" +2. **Email** j.d.a.jewell@open.ac.uk with subject line "Appeal: [Original Report ID]" 3. **Explain** why you believe the decision should be reconsidered 4. **Provide** any new information not previously available @@ -315,7 +315,7 @@ We thank these communities for their leadership in creating welcoming spaces. If you have questions about this Code of Conduct: - Open a [Discussion](https://github.com/hyperpolymath/rattlescript/discussions) (for general questions) -- Email {{CONDUCT_EMAIL}} (for private questions) +- Email j.d.a.jewell@open.ac.uk (for private questions) - Contact any maintainer directly --- @@ -328,4 +328,4 @@ We're all here because we care about this project. Let's make it a place where e --- -Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1 +Last updated: 2026 · Based on Contributor Covenant 2.1 diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b42a57e..ef1bfcb 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -62,7 +62,7 @@ rattlescript/ **Before reporting**: 1. Search existing issues -2. Check if it's already fixed in `{{MAIN_BRANCH}}` +2. Check if it's already fixed in `main` 3. Determine which perimeter the bug affects **When reporting**: diff --git a/.github/GOVERNANCE.md b/.github/GOVERNANCE.md index 43c16ea..c9adeb6 100644 --- a/.github/GOVERNANCE.md +++ b/.github/GOVERNANCE.md @@ -4,13 +4,13 @@ Copyright (c) Jonathan D.A. Jewell --> # Project Governance -This document describes the governance model for **{{PROJECT_NAME}}**. +This document describes the governance model for **RattleScript**. --- ## Project Governance Model -{{PROJECT_NAME}} follows a **Benevolent Dictator For Life (BDFL)** governance model. +RattleScript follows a **Benevolent Dictator For Life (BDFL)** governance model. This model is well-suited for solo maintainers and small project teams where rapid, consistent decision-making is more valuable than formal consensus processes. @@ -157,4 +157,4 @@ with the community before adoption, even though the BDFL retains final authority --- -Copyright (c) {{CURRENT_YEAR}} hyperpolymath. Licensed under PMPL-1.0-or-later. +Copyright (c) 2026 hyperpolymath. Licensed under PMPL-1.0-or-later. diff --git a/.github/MAINTAINERS b/.github/MAINTAINERS index 145c4e9..63989c7 100644 --- a/.github/MAINTAINERS +++ b/.github/MAINTAINERS @@ -4,7 +4,7 @@ # Format: Name (role) # Replace placeholders with actual maintainer information. -{{AUTHOR}} <{{AUTHOR_EMAIL}}> (Lead Maintainer) +Jonathan D.A. Jewell (Lead Maintainer) # Additional maintainers: # Name (role) diff --git a/.github/SUPPORT b/.github/SUPPORT index b06c59a..e5137af 100644 --- a/.github/SUPPORT +++ b/.github/SUPPORT @@ -2,6 +2,6 @@ For questions, help, and community discussion: -- GitHub Discussions: https://github.com/{{OWNER}}/{{REPO}}/discussions -- GitHub Issues: https://github.com/{{OWNER}}/{{REPO}}/issues +- GitHub Discussions: https://github.com/hyperpolymath/rattlescript/discussions +- GitHub Issues: https://github.com/hyperpolymath/rattlescript/issues - Documentation: See README.adoc in the root directory. diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 01eebc4..74fda02 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell --> - + # Copilot Instructions diff --git a/.guix-channel b/.guix-channel index f9bdf68..dc67519 100644 --- a/.guix-channel +++ b/.guix-channel @@ -1,20 +1,20 @@ ;; SPDX-License-Identifier: MPL-2.0 -;; Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) ;; -;; Guix channel definition for {{PROJECT_NAME}} +;; Guix channel definition for RattleScript ;; ;; To use this channel, add to ~/.config/guix/channels.scm: ;; ;; (channel -;; (name '{{PROJECT_NAME}}) -;; (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") +;; (name 'RattleScript) +;; (url "https://github.com/hyperpolymath/RattleScript") ;; (branch "main")) ;; ;; Then: guix pull (channel (version 0) - (url "https://github.com/{{OWNER}}/{{PROJECT_NAME}}") + (url "https://github.com/hyperpolymath/RattleScript") (dependencies (channel (name 'guix) diff --git a/.machine_readable/6a2/anchor/ANCHOR.a2ml b/.machine_readable/6a2/anchor/ANCHOR.a2ml index a31927e..dd957c1 100644 --- a/.machine_readable/6a2/anchor/ANCHOR.a2ml +++ b/.machine_readable/6a2/anchor/ANCHOR.a2ml @@ -1,11 +1,11 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # ANCHOR.a2ml - authoritative anchor for this repository [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" [anchor] schema = "hyperpolymath.anchor/1" @@ -19,7 +19,7 @@ purpose = [ ] [identity] -project = "{{PROJECT_NAME}}" +project = "RattleScript" kind = "{{PROJECT_KIND}}" # language | library | service | tool one-sentence = "{{PROJECT_PURPOSE}}" domain = "{{PROJECT_DOMAIN}}" diff --git a/.machine_readable/ENSAID_CONFIG.a2ml b/.machine_readable/ENSAID_CONFIG.a2ml index eb09ca4..549a72e 100644 --- a/.machine_readable/ENSAID_CONFIG.a2ml +++ b/.machine_readable/ENSAID_CONFIG.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # ENSAID_CONFIG.a2ml — eNSAID Environment Configuration # Per-repo configuration for PanLL and eNSAID-compatible tools. @@ -90,7 +90,7 @@ version = "1.0.0" # Example: a custom portfolio for this project # [[portfolios.custom]] # id = "{{project}}-dev" -# name = "{{PROJECT_NAME}} Development" -# description = "Panels for {{PROJECT_NAME}} development" +# name = "RattleScript Development" +# description = "Panels for RattleScript development" # panels = ["valence-shell", "editor-bridge", "build-dashboard"] # default-isolation = "native" diff --git a/.machine_readable/agent_instructions/README.adoc b/.machine_readable/agent_instructions/README.adoc index 664bf5a..1cc7487 100644 --- a/.machine_readable/agent_instructions/README.adoc +++ b/.machine_readable/agent_instructions/README.adoc @@ -1,5 +1,5 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 -// Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) = Agent Instructions :toc: preamble diff --git a/.machine_readable/agent_instructions/coverage.a2ml b/.machine_readable/agent_instructions/coverage.a2ml index ce0ef95..7045b7a 100644 --- a/.machine_readable/agent_instructions/coverage.a2ml +++ b/.machine_readable/agent_instructions/coverage.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # coverage.a2ml — Session coverage tracking # Updated at the end of each AI agent session. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" # ============================================================================ # COVERAGE STATE diff --git a/.machine_readable/agent_instructions/debt.a2ml b/.machine_readable/agent_instructions/debt.a2ml index 92f2055..ea35f08 100644 --- a/.machine_readable/agent_instructions/debt.a2ml +++ b/.machine_readable/agent_instructions/debt.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # debt.a2ml — Meander debt list # Things found but not fixed. Carried between sessions. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" # ============================================================================ # DEBT ITEMS diff --git a/.machine_readable/agent_instructions/methodology.a2ml b/.machine_readable/agent_instructions/methodology.a2ml index 3818f7b..7fe4b1c 100644 --- a/.machine_readable/agent_instructions/methodology.a2ml +++ b/.machine_readable/agent_instructions/methodology.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # methodology.a2ml — AI agent methodology configuration # Declares how agents should approach work in this repository. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" spec = "https://github.com/hyperpolymath/standards/blob/main/agentic-a2ml/docs/ADR-002-methodology-layer.adoc" # ============================================================================ diff --git a/.machine_readable/ai/.clinerules b/.machine_readable/ai/.clinerules index 854d2ee..d962549 100644 --- a/.machine_readable/ai/.clinerules +++ b/.machine_readable/ai/.clinerules @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # Authoritative source: docs/AI-CONVENTIONS.md # STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. @@ -8,7 +8,7 @@ # All original code: PMPL-1.0-or-later. # Never AGPL-3.0. MPL-2.0 only as platform-required fallback. # SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright: Jonathan D.A. Jewell (hyperpolymath) # STATE FILES (.machine_readable/ ONLY) # Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, diff --git a/.machine_readable/ai/.cursorrules b/.machine_readable/ai/.cursorrules index d3b9cee..f87d41d 100644 --- a/.machine_readable/ai/.cursorrules +++ b/.machine_readable/ai/.cursorrules @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # Authoritative source: docs/AI-CONVENTIONS.md # Read 0-AI-MANIFEST.a2ml in the repo root FIRST for canonical file locations. @@ -7,7 +7,7 @@ # LICENSE # All original code: PMPL-1.0-or-later (SPDX header required on every file). # Never use AGPL-3.0. Fallback to MPL-2.0 only when platform requires it. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright: Jonathan D.A. Jewell (hyperpolymath) # STATE FILES # .a2ml metadata files go in .machine_readable/ ONLY. diff --git a/.machine_readable/ai/.windsurfrules b/.machine_readable/ai/.windsurfrules index 854d2ee..d962549 100644 --- a/.machine_readable/ai/.windsurfrules +++ b/.machine_readable/ai/.windsurfrules @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # Authoritative source: docs/AI-CONVENTIONS.md # STARTUP: Read 0-AI-MANIFEST.a2ml first, then .machine_readable/STATE.a2ml. @@ -8,7 +8,7 @@ # All original code: PMPL-1.0-or-later. # Never AGPL-3.0. MPL-2.0 only as platform-required fallback. # SPDX header required on every source file. -# Copyright: {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright: Jonathan D.A. Jewell (hyperpolymath) # STATE FILES (.machine_readable/ ONLY) # Never create in repo root: STATE.a2ml, META.a2ml, ECOSYSTEM.a2ml, diff --git a/.machine_readable/anchors/ANCHOR.a2ml b/.machine_readable/anchors/ANCHOR.a2ml index a31927e..dd957c1 100644 --- a/.machine_readable/anchors/ANCHOR.a2ml +++ b/.machine_readable/anchors/ANCHOR.a2ml @@ -1,11 +1,11 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # ANCHOR.a2ml - authoritative anchor for this repository [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" [anchor] schema = "hyperpolymath.anchor/1" @@ -19,7 +19,7 @@ purpose = [ ] [identity] -project = "{{PROJECT_NAME}}" +project = "RattleScript" kind = "{{PROJECT_KIND}}" # language | library | service | tool one-sentence = "{{PROJECT_PURPOSE}}" domain = "{{PROJECT_DOMAIN}}" diff --git a/.machine_readable/bot_directives/coverage.a2ml b/.machine_readable/bot_directives/coverage.a2ml index ce0ef95..7045b7a 100644 --- a/.machine_readable/bot_directives/coverage.a2ml +++ b/.machine_readable/bot_directives/coverage.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # coverage.a2ml — Session coverage tracking # Updated at the end of each AI agent session. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" # ============================================================================ # COVERAGE STATE diff --git a/.machine_readable/bot_directives/debt.a2ml b/.machine_readable/bot_directives/debt.a2ml index 92f2055..ea35f08 100644 --- a/.machine_readable/bot_directives/debt.a2ml +++ b/.machine_readable/bot_directives/debt.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # debt.a2ml — Meander debt list # Things found but not fixed. Carried between sessions. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" # ============================================================================ # DEBT ITEMS diff --git a/.machine_readable/bot_directives/methodology.a2ml b/.machine_readable/bot_directives/methodology.a2ml index 3818f7b..7fe4b1c 100644 --- a/.machine_readable/bot_directives/methodology.a2ml +++ b/.machine_readable/bot_directives/methodology.a2ml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # methodology.a2ml — AI agent methodology configuration # Declares how agents should approach work in this repository. @@ -9,7 +9,7 @@ [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" spec = "https://github.com/hyperpolymath/standards/blob/main/agentic-a2ml/docs/ADR-002-methodology-layer.adoc" # ============================================================================ diff --git a/.machine_readable/compliance/reuse/dep5 b/.machine_readable/compliance/reuse/dep5 index 10e50c2..a7fe2c2 100644 --- a/.machine_readable/compliance/reuse/dep5 +++ b/.machine_readable/compliance/reuse/dep5 @@ -1,54 +1,54 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: {{PROJECT_NAME}} -Upstream-Contact: {{AUTHOR}} <{{AUTHOR_EMAIL}}> -Source: https://github.com/{{OWNER}}/{{REPO}} +Upstream-Name: RattleScript +Upstream-Contact: Jonathan D.A. Jewell +Source: https://github.com/hyperpolymath/rattlescript # Default: all files are PMPL-1.0-or-later Files: * -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Configuration files that cannot carry headers Files: .editorconfig .gitignore .gitattributes .tool-versions .mailmap -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Machine-readable state files Files: .machine_readable/*.a2ml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Bot directives Files: .machine_readable/bot_directives/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Contractiles Files: .machine_readable/contractiles/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # GitHub/CI configuration Files: .github/* .github/**/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Generated files Files: generated/* -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Lockfiles and auto-generated Files: *.lock Cargo.lock flake.lock -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Devcontainer config (JSON, no comments) Files: .devcontainer/*.json -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later # Git-cliff config Files: cliff.toml -Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +Copyright: 2026 Jonathan D.A. Jewell (hyperpolymath) License: PMPL-1.0-or-later diff --git a/.machine_readable/configs/git-cliff/cliff.toml b/.machine_readable/configs/git-cliff/cliff.toml index 02cf4e6..7ba11a8 100644 --- a/.machine_readable/configs/git-cliff/cliff.toml +++ b/.machine_readable/configs/git-cliff/cliff.toml @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # git-cliff configuration for conventional commit changelog generation. # https://git-cliff.org/docs/configuration diff --git a/.machine_readable/contractiles/Justfile b/.machine_readable/contractiles/Justfile index 9898da9..f59a569 100644 --- a/.machine_readable/contractiles/Justfile +++ b/.machine_readable/contractiles/Justfile @@ -889,8 +889,8 @@ container-init: read -rp "Primary port [8080]: " _PORT PORT="${_PORT:-8080}" - read -rp "Container registry [ghcr.io/${OWNER:-{{OWNER}}}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-{{OWNER}}}}" + read -rp "Container registry [ghcr.io/${OWNER:-hyperpolymath}]: " _REGISTRY + REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-hyperpolymath}}" echo "" echo " Service: $SERVICE_NAME" @@ -1222,7 +1222,7 @@ test-matrix suite="unit" verbosity="normal" parallel="true": @echo "Test matrix: suite={{suite}} verbosity={{verbosity}} parallel={{parallel}}" # Container matrix: [build|run|push|shell|scan] x [registry] x [tag] -container-matrix action="build" registry="ghcr.io/{{OWNER}}" tag="latest": +container-matrix action="build" registry="ghcr.io/hyperpolymath" tag="latest": @echo "Container matrix: action={{action}} registry={{registry}} tag={{tag}}" # CI matrix: [lint|test|build|security|all] x [quick|full] diff --git a/.machine_readable/contractiles/dust/Dustfile.a2ml b/.machine_readable/contractiles/dust/Dustfile.a2ml index abd64ca..0ed1723 100644 --- a/.machine_readable/contractiles/dust/Dustfile.a2ml +++ b/.machine_readable/contractiles/dust/Dustfile.a2ml @@ -54,7 +54,7 @@ to new repositories. - description: No references to rattlescript in generic template files - run: test -z "$(grep -r 'rattlescript' machine-readable-design/ 2>/dev/null)" - severity: warning -- notes: Generic templates should use {{PROJECT_NAME}} or similar placeholders +- notes: Generic templates should use RattleScript or similar placeholders ### version-sync-checked - description: Version in canonical-directory-structure matches .machine_readable/contractiles diff --git a/.machine_readable/contractiles/k9/methodology-guard.k9.ncl b/.machine_readable/contractiles/k9/methodology-guard.k9.ncl index c002ea3..1c46adf 100644 --- a/.machine_readable/contractiles/k9/methodology-guard.k9.ncl +++ b/.machine_readable/contractiles/k9/methodology-guard.k9.ncl @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # K9 Validator: Methodology Guard # Checks that agent work respects methodology constraints declared in @@ -44,7 +44,7 @@ let methodology_guard = { description = "STATE.a2ml must not contain template placeholders", severity = "warning", file = ".machine_readable/6a2/STATE.a2ml", - reject_patterns = ["{{PLACEHOLDER}}", "{{PROJECT}}", "rsr-template-repo"], + reject_patterns = ["{{PLACEHOLDER}}", "RATTLESCRIPT", "rsr-template-repo"], }, coverage_updated = { diff --git a/.machine_readable/contractiles/self-validating/methodology-guard.k9.ncl b/.machine_readable/contractiles/self-validating/methodology-guard.k9.ncl index 5114195..7620997 100644 --- a/.machine_readable/contractiles/self-validating/methodology-guard.k9.ncl +++ b/.machine_readable/contractiles/self-validating/methodology-guard.k9.ncl @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # K9 Validator: Methodology Guard # Checks that agent work respects methodology constraints declared in @@ -44,7 +44,7 @@ let methodology_guard = { description = "STATE.a2ml must not contain template placeholders", severity = "warning", file = ".machine_readable/6a2/STATE.a2ml", - reject_patterns = ["{{PLACEHOLDER}}", "{{PROJECT}}", "rsr-template-repo"], + reject_patterns = ["{{PLACEHOLDER}}", "RATTLESCRIPT", "rsr-template-repo"], }, coverage_updated = { diff --git a/.machine_readable/policies/MAINTENANCE-AXES.a2ml b/.machine_readable/policies/MAINTENANCE-AXES.a2ml index 9b9a944..011df3d 100644 --- a/.machine_readable/policies/MAINTENANCE-AXES.a2ml +++ b/.machine_readable/policies/MAINTENANCE-AXES.a2ml @@ -1,11 +1,11 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # # Canonical maintenance governance model [metadata] version = "1.0.0" -last-updated = "{{CURRENT_DATE}}" +last-updated = "2026-08-05" scope = "repo" [discovery] diff --git a/.well-known/humans.txt b/.well-known/humans.txt index f57452c..6b204a4 100644 --- a/.well-known/humans.txt +++ b/.well-known/humans.txt @@ -2,12 +2,12 @@ # humanstxt.org /* TEAM */ -Maintainer: {{AUTHOR}} ({{OWNER}}) -Contact: {{AUTHOR_EMAIL}} +Maintainer: Jonathan D.A. Jewell (hyperpolymath) +Contact: j.d.a.jewell@open.ac.uk From: United Kingdom /* SITE */ -Last update: {{CURRENT_DATE}} +Last update: 2026-08-05 Standards: RSR (Rhodium Standard Repository) License: PMPL-1.0-or-later (Palimpsest MPL) Components: Idris2 ABI, Zig FFI diff --git a/.well-known/security.txt b/.well-known/security.txt index 5414d50..dda15b3 100644 --- a/.well-known/security.txt +++ b/.well-known/security.txt @@ -3,9 +3,9 @@ # https://securitytxt.org/ Contact: mailto:{{SECURITY_EMAIL}} -Expires: {{CURRENT_YEAR}}-12-31T23:59:59.000Z +Expires: 2026-12-31T23:59:59.000Z Encryption: {{PGP_KEY_URL}} Preferred-Languages: en -Canonical: https://{{FORGE}}/{{OWNER}}/{{REPO}}/.well-known/security.txt -Policy: https://{{FORGE}}/{{OWNER}}/{{REPO}}/blob/main/SECURITY.md +Canonical: https://github.com/hyperpolymath/rattlescript/.well-known/security.txt +Policy: https://github.com/hyperpolymath/rattlescript/blob/main/SECURITY.md Hiring: https://{{WEBSITE}}/careers diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index 4ffac80..6048bc8 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -5,7 +5,7 @@ This is the root AI manifest for the template repository. ## Template Status This repository intentionally contains template placeholders before bootstrap. -Examples: `hyperpolymath`, `rattlescript`, `{{PROJECT_NAME}}`, `[YOUR-REPO-NAME]`. +Examples: `hyperpolymath`, `rattlescript`, `RattleScript`, `[YOUR-REPO-NAME]`. Do not invent project-specific values unless the operator runs template initialization (for example `just init`) or explicitly provides values. @@ -59,3 +59,20 @@ initialization (for example `just init`) or explicitly provides values. 3. Confirm whether placeholders have been initialized. 4. Use canonical session commands through `session/dispatch.sh` or Just aliases. 5. Avoid claiming files/paths exist unless verified in this repository. + + + +## PRIORITY ACTION — this repository is not fully initialised + +35 substitution token(s) still have no value. **Read +`REQUIRES_INITIALISATION.md` in the repository root before doing anything +else here** — it lists every outstanding token, what it means, and which +files it belongs in. + +Do not fabricate values for them, and do not delete the sections that +contain them to quiet a gate. They are unfilled because they need a +decision, not because they were overlooked. Resolve what you legitimately +can, leave the rest, and delete `REQUIRES_INITIALISATION.md` only when +nothing outstanding remains. + + diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index 607e3d8..0000000 --- a/ARCHITECTURE.md +++ /dev/null @@ -1,47 +0,0 @@ -# Architecture - -## Overview - -This repository follows a modular, maintainable architecture designed for clarity, scalability, and long-term sustainability. - -## Directory Structure - -``` -. -├── src/ # Source code -├── tests/ # Test suites -├── docs/ # Documentation -├── scripts/ # Utility scripts -├── config/ # Configuration files -├── LICENSE # License file -├── LICENSES/ # Full license texts -└── README.adoc # Project documentation -``` - -## Design Principles - -- **Separation of Concerns**: Each module has a single responsibility -- **Testability**: Code is written to be easily testable -- **Documentation**: All public APIs are documented -- **Configuration**: Environment-specific settings are externalized - -## Dependencies - -- External dependencies are minimized and clearly declared -- Version pinning is used for reproducibility - -## Security Considerations - -- Sensitive data is never committed to the repository -- Secrets are managed through environment variables or secure vaults -- Regular dependency audits are performed - -## Maintainability - -- Code follows consistent style guidelines -- Pull requests require review and CI checks -- Issues and discussions are tracked transparently - ---- - -*Last updated: 2026-07-18* diff --git a/Containerfile b/Containerfile index d7266bc..df7b97b 100644 --- a/Containerfile +++ b/Containerfile @@ -1,7 +1,7 @@ # SPDX-License-Identifier: MPL-2.0 -# Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> +# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) # -# Containerfile for {{PROJECT_NAME}} +# Containerfile for RattleScript # Build: podman build -t {{project}}:latest -f Containerfile . # Run: podman run --rm -it {{project}}:latest # Seal: selur seal {{project}}:latest diff --git a/Justfile b/Justfile index 9898da9..f59a569 100644 --- a/Justfile +++ b/Justfile @@ -889,8 +889,8 @@ container-init: read -rp "Primary port [8080]: " _PORT PORT="${_PORT:-8080}" - read -rp "Container registry [ghcr.io/${OWNER:-{{OWNER}}}]: " _REGISTRY - REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-{{OWNER}}}}" + read -rp "Container registry [ghcr.io/${OWNER:-hyperpolymath}]: " _REGISTRY + REGISTRY="${_REGISTRY:-ghcr.io/${OWNER:-hyperpolymath}}" echo "" echo " Service: $SERVICE_NAME" @@ -1222,7 +1222,7 @@ test-matrix suite="unit" verbosity="normal" parallel="true": @echo "Test matrix: suite={{suite}} verbosity={{verbosity}} parallel={{parallel}}" # Container matrix: [build|run|push|shell|scan] x [registry] x [tag] -container-matrix action="build" registry="ghcr.io/{{OWNER}}" tag="latest": +container-matrix action="build" registry="ghcr.io/hyperpolymath" tag="latest": @echo "Container matrix: action={{action}} registry={{registry}} tag={{tag}}" # CI matrix: [lint|test|build|security|all] x [quick|full] diff --git a/PROOF-NEEDS.md b/PROOF-NEEDS.md index 8dd5278..08b35fe 100644 --- a/PROOF-NEEDS.md +++ b/PROOF-NEEDS.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell --> -# Proof Requirements — {{PROJECT}} +# Proof Requirements — RATTLESCRIPT diff --git a/PROOF-STATUS.md b/PROOF-STATUS.md index 7140ad1..dad312e 100644 --- a/PROOF-STATUS.md +++ b/PROOF-STATUS.md @@ -2,7 +2,7 @@ SPDX-License-Identifier: CC-BY-SA-4.0 Copyright (c) Jonathan D.A. Jewell --> -# Proof Status — {{PROJECT}} +# Proof Status — RATTLESCRIPT diff --git a/QUICKSTART-MAINTAINER.adoc b/QUICKSTART-MAINTAINER.adoc index eb4e90d..ccfdc90 100644 --- a/QUICKSTART-MAINTAINER.adoc +++ b/QUICKSTART-MAINTAINER.adoc @@ -1,7 +1,7 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 // Copyright (c) Jonathan D.A. Jewell // Template: QUICKSTART-MAINTAINER.adoc — packaging, deploying, and maintaining -// Replace rsr-template-repo, {{PACKAGE_NAME}}, {{DEPS}} with actuals +// Replace rsr-template-repo, rattlescript, {{DEPS}} with actuals = rsr-template-repo — Quick Start for Platform Maintainers :toc: :toclevels: 2 @@ -66,10 +66,10 @@ Files installed: | `$PREFIX/bin/` | Executables -| `$PREFIX/share/{{PACKAGE_NAME}}/` +| `$PREFIX/share/rattlescript/` | Data files, assets -| `$PREFIX/share/doc/{{PACKAGE_NAME}}/` +| `$PREFIX/share/doc/rattlescript/` | Documentation | `$PREFIX/share/applications/` @@ -81,9 +81,9 @@ Files installed: == Configuration -Default config location: `$XDG_CONFIG_HOME/{{PACKAGE_NAME}}/config.toml` +Default config location: `$XDG_CONFIG_HOME/rattlescript/config.toml` -Fallback: `$HOME/.config/{{PACKAGE_NAME}}/config.toml` +Fallback: `$HOME/.config/rattlescript/config.toml` == Health Checks @@ -103,7 +103,7 @@ just build-release just install --prefix=/usr/local ---- -Or via OPSM: `opsm update {{PACKAGE_NAME}}` +Or via OPSM: `opsm update rattlescript` == Security Notes @@ -118,8 +118,8 @@ For deploying multiple instances (e.g., different users or tenants): [source,bash] ---- -just install --prefix=/opt/{{PACKAGE_NAME}}-instance1 --config=/etc/{{PACKAGE_NAME}}/instance1.toml -just install --prefix=/opt/{{PACKAGE_NAME}}-instance2 --config=/etc/{{PACKAGE_NAME}}/instance2.toml +just install --prefix=/opt/rattlescript-instance1 --config=/etc/rattlescript/instance1.toml +just install --prefix=/opt/rattlescript-instance2 --config=/etc/rattlescript/instance2.toml ---- Each instance has isolated config, data, and logs. diff --git a/READINESS.md b/READINESS.md index 62900d5..2d68ed3 100644 --- a/READINESS.md +++ b/READINESS.md @@ -8,7 +8,7 @@ Copyright (c) Jonathan D.A. Jewell **Standard:** [Component Readiness Grades (CRG) v2.2](https://github.com/hyperpolymath/standards/tree/main/component-readiness-grades) **Current Grade:** C -**Assessed:** {{DATE}} +**Assessed:** 2026-08-05 **Assessor:** Jonathan D.A. Jewell --- diff --git a/REQUIRES_INITIALISATION.md b/REQUIRES_INITIALISATION.md new file mode 100644 index 0000000..0a0e17f --- /dev/null +++ b/REQUIRES_INITIALISATION.md @@ -0,0 +1,356 @@ + + +# REQUIRES INITIALISATION + +**This repository is not finished being set up.** 35 substitution token(s) across 27 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. + +## Do these first + +`.github/settings.yml` is applied to the forge by a GitHub App. An +unfilled token here can be written into the repository's real name or +description. This has fired before in this estate: illegal braces were +collapsed to dashes and a repo was renamed `-REPO-`, which then read as +deleted. + +- `{{DESCRIPTION}}` — One-line description used in .github/settings.yml. HIGH PRIORITY: settings.yml is applied by a GitHub App, so an unfilled token here can be written into forge metadata verbatim. + +## What is needed, and where it goes + +### `{{ARGS}}` + +Arguments for the justfile recipe this appears in. + +Appears in: + +- `.machine_readable/contractiles/Justfile` +- `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/contractiles/k9/examples/project-metadata.k9.ncl` +- `.machine_readable/contractiles/self-validating/examples/project-metadata.k9.ncl` + +### `{{BUILD_CMD}}` + +The exact command that builds this project. + +Appears in: + +- `QUICKSTART-DEV.adoc` + +### `{{BUILD_OUTPUT_PATH}}` + +Where the build artefact lands. + +Appears in: + +- `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: + +- `QUICKSTART-MAINTAINER.adoc` + +### `{{DESCRIPTION}}` + +One-line description used in .github/settings.yml. HIGH PRIORITY: settings.yml is applied by a GitHub App, so an unfilled token here can be written into forge metadata verbatim. + +Appears in: + +- `.github/settings.yml` + +### `{{FILE}}` + +Appears in: + +- `justfile` + +### `{{LANG_STACK}}` + +The language stack, in prose. + +Appears in: + +- `QUICKSTART-DEV.adoc` + +### `{{LICENSE}}` + +SPDX identifier for this repo's licence. + +Appears in: + +- `container/Containerfile` +- `container/manifest.toml` +- `docs/developer/ABI-FFI-README.adoc` + +### `{{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: + +- `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: + +- `TEMPLATE-STANDARDS-AUDIT.adoc` + +### `{{OUT}}` + +Appears in: + +- `justfile` + +### `{{PGP_KEY_URL}}` + +Public URL the PGP key can be fetched from. Same caveat as PGP_FINGERPRINT. + +Appears in: + +- `.well-known/security.txt` + +### `{{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/6a2/anchor/ANCHOR.a2ml` +- `.machine_readable/anchors/ANCHOR.a2ml` + +### `{{PROJECT_KIND}}` + +Taxonomy value (library, service, tool, lab…). + +Appears in: + +- `.machine_readable/6a2/anchor/ANCHOR.a2ml` +- `.machine_readable/anchors/ANCHOR.a2ml` + +### `{{PROJECT_PURPOSE}}` + +One line: what this exists to do. + +Appears in: + +- `.machine_readable/6a2/anchor/ANCHOR.a2ml` +- `.machine_readable/anchors/ANCHOR.a2ml` +- `guix.scm` + +### `{{PROJECT_UNIQUE_STRENGTH}}` + +What this does that its alternatives do not. + +Appears in: + +- `.machine_readable/agent_instructions/methodology.a2ml` +- `.machine_readable/bot_directives/methodology.a2ml` + +### `{{REGISTRY}}` + +Container registry to publish to. + +Appears in: + +- `container/compose.toml` +- `container/ct-build.sh` +- `container/deploy.k9.ncl` + +### `{{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` + +### `{{SECURITY_EMAIL}}` + +Address for private vulnerability reports. Two competing values exist in the estate (`6759885+hyperpolymath@users.noreply.github.com` and `security@hyperpolymath.org`) — pick one deliberately. + +Appears in: + +- `.well-known/security.txt` + +### `{{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: + +- `QUICKSTART-DEV.adoc` + +### `{{VERSION}}` + +Version/tag for the container image. + +Appears in: + +- `container/deploy.k9.ncl` +- `container/manifest.toml` +- `container/vordr.toml` + +### `{{WEBSITE}}` + +Project homepage URL, or delete the field if there is none. + +Appears in: + +- `.well-known/security.txt` + +--- + +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/container/.gatekeeper.yaml b/container/.gatekeeper.yaml index 4aac671..c07d16a 100644 --- a/container/.gatekeeper.yaml +++ b/container/.gatekeeper.yaml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: MPL-2.0 # -# Svalinn gatekeeper policy for {{PROJECT_NAME}} +# Svalinn gatekeeper policy for RattleScript # # Controls which operations are permitted through the edge gateway. # This template provides moderate security defaults — not wide-open test diff --git a/container/Containerfile b/container/Containerfile index ba85260..252aeee 100644 --- a/container/Containerfile +++ b/container/Containerfile @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} Container Image +# RattleScript Container Image # # Multi-stage build template for Chainguard Wolfi base images. # Customise the builder stage for your language and copy the @@ -69,13 +69,13 @@ COPY . . FROM cgr.dev/chainguard/wolfi-base:latest # OCI image labels (compatible with cerro-torre .ctp bundle metadata) -LABEL org.opencontainers.image.title="{{PROJECT_NAME}}" \ +LABEL org.opencontainers.image.title="RattleScript" \ org.opencontainers.image.description="{{PROJECT_DESCRIPTION}}" \ - org.opencontainers.image.url="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.source="https://{{FORGE}}/{{OWNER}}/{{REPO}}" \ - org.opencontainers.image.vendor="{{OWNER}}" \ + org.opencontainers.image.url="https://github.com/hyperpolymath/rattlescript" \ + org.opencontainers.image.source="https://github.com/hyperpolymath/rattlescript" \ + org.opencontainers.image.vendor="hyperpolymath" \ org.opencontainers.image.licenses="{{LICENSE}}" \ - org.opencontainers.image.authors="{{AUTHOR}} <{{AUTHOR_EMAIL}}>" \ + org.opencontainers.image.authors="Jonathan D.A. Jewell " \ dev.cerrotorre.manifest="container/manifest.toml" \ dev.cerrotorre.gatekeeper="container/.gatekeeper.yaml" \ dev.stapeln.compose="container/compose.toml" diff --git a/container/README.adoc b/container/README.adoc index 78275d2..1595b8d 100644 --- a/container/README.adoc +++ b/container/README.adoc @@ -1,6 +1,6 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 // Copyright (c) Jonathan D.A. Jewell -= {{PROJECT_NAME}} Container Templates += RattleScript Container Templates :toc: left :toclevels: 3 :sectnums: diff --git a/container/compose.toml b/container/compose.toml index a14f8a0..9d7297a 100644 --- a/container/compose.toml +++ b/container/compose.toml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: MPL-2.0 # -# {{PROJECT_NAME}} selur-compose configuration +# RattleScript selur-compose configuration # # Orchestrates the container stack as verified container bundles (.ctp). # Uses selur zero-copy IPC between services on the same host. diff --git a/container/ct-build.sh b/container/ct-build.sh index a54a541..7f68a77 100755 --- a/container/ct-build.sh +++ b/container/ct-build.sh @@ -1,7 +1,7 @@ #!/usr/bin/env bash # SPDX-License-Identifier: MPL-2.0 # -# {{PROJECT_NAME}} — Cerro Torre build, sign, and verify pipeline +# RattleScript — Cerro Torre build, sign, and verify pipeline # # Builds the container image, packages it as a verified .ctp bundle, # signs it with Ed25519, and verifies the result. Gracefully degrades @@ -46,7 +46,7 @@ IMAGE_NAME="{{SERVICE_NAME}}" FULL_IMAGE="${CT_REGISTRY}/${IMAGE_NAME}:${CT_TAG}" CTP_FILE="${SCRIPT_DIR}/${IMAGE_NAME}-${CT_TAG}.ctp" -echo "=== {{PROJECT_NAME}} Cerro Torre Build Pipeline ===" +echo "=== RattleScript Cerro Torre Build Pipeline ===" echo " Image: ${FULL_IMAGE}" echo " Key: ${CT_KEY_ID}" echo " Bundle: ${CTP_FILE}" diff --git a/container/deploy.k9.ncl b/container/deploy.k9.ncl index 0ad0d04..d386b3b 100644 --- a/container/deploy.k9.ncl +++ b/container/deploy.k9.ncl @@ -1,5 +1,5 @@ # SPDX-License-Identifier: MPL-2.0 -# deploy.k9.ncl — {{PROJECT_NAME}} deployment component (Hunt level) +# deploy.k9.ncl — RattleScript deployment component (Hunt level) # # k9-svc deployment specification with full pedigree (L1-L5). # Security Level: 'Hunt (requires cryptographic handshake for execution). @@ -22,7 +22,7 @@ let component_pedigree = { version = "{{VERSION}}", breed = "application/vnd.k9+nickel", magic_number = "K9!", - description = "{{PROJECT_NAME}} deployment component (Hunt level)", + description = "RattleScript deployment component (Hunt level)", }, # ───────────────────────────────────────────────────────────── diff --git a/container/entrypoint.sh b/container/entrypoint.sh index a7a0369..f84c4b7 100755 --- a/container/entrypoint.sh +++ b/container/entrypoint.sh @@ -1,6 +1,6 @@ #!/bin/sh # SPDX-License-Identifier: MPL-2.0 -# {{PROJECT_NAME}} container entrypoint +# RattleScript container entrypoint # # Handles signal propagation, startup logging, and health check # preparation before exec-ing into the main application process. diff --git a/container/manifest.toml b/container/manifest.toml index 46f2e40..98b501d 100644 --- a/container/manifest.toml +++ b/container/manifest.toml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: MPL-2.0 # -# Cerro Torre manifest for {{PROJECT_NAME}} .ctp bundle +# Cerro Torre manifest for RattleScript .ctp bundle # # This manifest describes the container image for verified # container packaging. Used by `ct pack` to create .ctp bundles. @@ -11,17 +11,17 @@ version = "{{VERSION}}" revision = 1 summary = "{{PROJECT_DESCRIPTION}}" description = """ -{{PROJECT_NAME}} — containerised service packaged as a verified +RattleScript — containerised service packaged as a verified cerro-torre .ctp bundle with Ed25519 signing and full provenance tracking. """ license = "{{LICENSE}}" homepage = "https://github.com/hyperpolymath/rattlescript" -maintainer = "Jonathan D.A. Jewell <{{EMAIL}}>" +maintainer = "Jonathan D.A. Jewell " [provenance] upstream = "https://github.com/hyperpolymath/rattlescript" -import_date = {{CURRENT_DATE}}T00:00:00Z +import_date = 2026-08-05T00:00:00Z [dependencies] runtime = ["ca-certificates", "curl"] diff --git a/container/vordr.toml b/container/vordr.toml index af38fc5..82733ee 100644 --- a/container/vordr.toml +++ b/container/vordr.toml @@ -1,6 +1,6 @@ # SPDX-License-Identifier: MPL-2.0 # -# Vordr runtime monitoring configuration for {{PROJECT_NAME}} +# Vordr runtime monitoring configuration for RattleScript # # Vordr watches container health, detects crashes, tracks resource usage, # and emits structured logs. It runs alongside the application stack and @@ -94,7 +94,7 @@ output = "stdout" # on = ["failure", "recovery", "resource_critical"] # [notifications.email] -# to = "{{EMAIL}}" +# to = "j.d.a.jewell@open.ac.uk" # from = "vordr@{{SERVICE_NAME}}.local" # smtp = "smtp://localhost:25" # on = ["failure", "resource_critical"] diff --git a/docs/architecture/THREAT-MODEL.adoc b/docs/architecture/THREAT-MODEL.adoc index 70ec913..b29b6a3 100644 --- a/docs/architecture/THREAT-MODEL.adoc +++ b/docs/architecture/THREAT-MODEL.adoc @@ -2,17 +2,17 @@ // Copyright (c) Jonathan D.A. Jewell = Threat Model - + -# Threat Model: {{PROJECT_NAME}} +# Threat Model: RattleScript ## Document Info | Field | Value | |---------------|--------------------------------| -| Project | {{PROJECT_NAME}} | +| Project | RattleScript | | Version | 1.0 | -| Last Reviewed | {{DATE}} | +| Last Reviewed | 2026-08-05 | | Author | Jonathan D.A. Jewell | | Methodology | STRIDE | @@ -36,7 +36,7 @@ ## System Overview -Brief description of {{PROJECT_NAME}} and its architecture. +Brief description of RattleScript and its architecture. > See [STATE-VISUALIZER.adoc](../STATE-VISUALIZER.adoc) for the full architecture diagram and completion dashboard. diff --git a/docs/attribution/CITATION.cff b/docs/attribution/CITATION.cff index 4d562f4..381716d 100644 --- a/docs/attribution/CITATION.cff +++ b/docs/attribution/CITATION.cff @@ -1,14 +1,14 @@ cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: -- family-names: "{{AUTHOR_LAST}}" - given-names: "{{AUTHOR_FIRST}}" +- family-names: "Jewell" + given-names: "Jonathan" orcid: "https://orcid.org/0000-0000-0000-0000" # Placeholder -title: "{{PROJECT_NAME}}" +title: "RattleScript" version: 0.1.0 -date-released: {{CURRENT_DATE}} -url: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" -repository-code: "https://{{FORGE}}/{{OWNER}}/{{REPO}}" +date-released: 2026-08-05 +url: "https://github.com/hyperpolymath/rattlescript" +repository-code: "https://github.com/hyperpolymath/rattlescript" license: PMPL-1.0-or-later keywords: - "rsr" diff --git a/docs/attribution/CITATIONS.adoc b/docs/attribution/CITATIONS.adoc index 0832416..11f5d39 100644 --- a/docs/attribution/CITATIONS.adoc +++ b/docs/attribution/CITATIONS.adoc @@ -1,36 +1,36 @@ // SPDX-License-Identifier: CC-BY-SA-4.0 // Copyright (c) Jonathan D.A. Jewell -= {{PROJECT_NAME}} - Citation Guide += RattleScript - Citation Guide :toc: == BibTeX [source,bibtex] ---- -@software{{{PROJECT_NAME}}_{{CURRENT_YEAR}}, - author = {{{AUTHOR_LAST}}, {{AUTHOR_FIRST}}}, - title = {{{PROJECT_NAME}}}, - year = {{{CURRENT_YEAR}}}, - url = {https://github.com/hyperpolymath/{{PROJECT_NAME}}}, +@software{RattleScript_2026, + author = {Jewell, Jonathan}, + title = {RattleScript}, + year = {2026}, + url = {https://github.com/hyperpolymath/RattleScript}, license = {PMPL-1.0-or-later} } ---- == Harvard Style -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}) _{{PROJECT_NAME}}_ [Computer software]. Available at: https://github.com/hyperpolymath/{{PROJECT_NAME}} +Jewell, JDJ (2026) _RattleScript_ [Computer software]. Available at: https://github.com/hyperpolymath/RattleScript == OSCOLA -Jonathan D.A. Jewell, '{{PROJECT_NAME}}' ({{CURRENT_YEAR}}) +Jonathan D.A. Jewell, 'RattleScript' (2026) == MLA -{{AUTHOR_LAST}}, {{AUTHOR_FIRST}} "{{PROJECT_NAME}}." {{CURRENT_YEAR}}, github.com/hyperpolymath/{{PROJECT_NAME}}. +Jewell, Jonathan "RattleScript." 2026, github.com/hyperpolymath/RattleScript. == APA 7 -{{AUTHOR_LAST}}, {{AUTHOR_INITIALS}} ({{CURRENT_YEAR}}). _{{PROJECT_NAME}}_ [Computer software]. GitHub. https://github.com/hyperpolymath/{{PROJECT_NAME}} +Jewell, JDJ (2026). _RattleScript_ [Computer software]. GitHub. https://github.com/hyperpolymath/RattleScript == See Also diff --git a/docs/decisions/0000-template.adoc b/docs/decisions/0000-template.adoc index ac74c1c..465cf47 100644 --- a/docs/decisions/0000-template.adoc +++ b/docs/decisions/0000-template.adoc @@ -2,7 +2,7 @@ // Copyright (c) Jonathan D.A. Jewell = Architecture Decision Record: 0000-template - + # [NUMBER]. [TITLE] diff --git a/docs/decisions/0001-adopt-rsr-standard.adoc b/docs/decisions/0001-adopt-rsr-standard.adoc index c8c589b..139149b 100644 --- a/docs/decisions/0001-adopt-rsr-standard.adoc +++ b/docs/decisions/0001-adopt-rsr-standard.adoc @@ -2,7 +2,7 @@ // Copyright (c) Jonathan D.A. Jewell = Architecture Decision Record: 0001-adopt-rsr-standard - + # 1. Adopt Rhodium Standard Repository (RSR) Template diff --git a/docs/developer/ABI-FFI-README.adoc b/docs/developer/ABI-FFI-README.adoc index 2eaba8c..d5297c5 100644 --- a/docs/developer/ABI-FFI-README.adoc +++ b/docs/developer/ABI-FFI-README.adoc @@ -3,7 +3,7 @@ = ABI/FFI Standards {{~ Aditionally delete this line and fill out the template below ~}} -# {{PROJECT}} ABI/FFI Documentation +# RATTLESCRIPT ABI/FFI Documentation ## Overview @@ -250,7 +250,7 @@ gcc -o example example.c -l{{project}} -L./zig-out/lib ### From Idris2 ```idris -import {{PROJECT}}.ABI.Foreign +import RATTLESCRIPT.ABI.Foreign main : IO () main = do diff --git a/docs/practice/AI-CONVENTIONS.adoc b/docs/practice/AI-CONVENTIONS.adoc index 4ee9897..48ec4af 100644 --- a/docs/practice/AI-CONVENTIONS.adoc +++ b/docs/practice/AI-CONVENTIONS.adoc @@ -2,7 +2,7 @@ // Copyright (c) Jonathan D.A. Jewell = AI Conventions - + # AI Conventions (Authoritative Source) @@ -31,7 +31,7 @@ Per-tool config files (.cursorrules, .clinerules, etc.) reference this document. - Name: **Jonathan D.A. Jewell** - Email: **j.d.a.jewell@open.ac.uk** -- Copyright: `Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) ` +- Copyright: `Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) ` ## State Files diff --git a/docs/practice/STATE-VISUALIZER-GUIDE.adoc b/docs/practice/STATE-VISUALIZER-GUIDE.adoc index a99324e..6252911 100644 --- a/docs/practice/STATE-VISUALIZER-GUIDE.adoc +++ b/docs/practice/STATE-VISUALIZER-GUIDE.adoc @@ -153,4 +153,4 @@ _structured data_ for tooling. Both should agree. == Copyright -Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) diff --git a/guix.scm b/guix.scm index 7be9470..53f1d90 100644 --- a/guix.scm +++ b/guix.scm @@ -1,13 +1,13 @@ ;; SPDX-License-Identifier: MPL-2.0 -;; Copyright (c) {{CURRENT_YEAR}} Jonathan D.A. Jewell (hyperpolymath) +;; Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) ;; -;; Guix package definition for {{PROJECT_NAME}} +;; Guix package definition for RattleScript ;; ;; Usage: ;; guix shell -D -f guix.scm # Enter development shell ;; guix build -f guix.scm # Build package ;; -;; TODO: Replace {{PROJECT_NAME}} and customize inputs for your language/stack. +;; TODO: Replace RattleScript and customize inputs for your language/stack. ;; See: https://guix.gnu.org/manual/en/html_node/Defining-Packages.html (use-modules (guix packages) @@ -18,7 +18,7 @@ (gnu packages base)) (package - (name "{{PROJECT_NAME}}") + (name "RattleScript") (version "0.1.0") (source (local-file "." "source" #:recursive? #t @@ -63,7 +63,7 @@ (list ;; TODO: Add runtime dependencies )) - (home-page "https://github.com/hyperpolymath/{{PROJECT_NAME}}") + (home-page "https://github.com/hyperpolymath/RattleScript") (synopsis "{{PROJECT_PURPOSE}}") (description "RSR-compliant project. See README.adoc for details.") (license (list diff --git a/src/interface/ffi/src/main.zig b/src/interface/ffi/src/main.zig index 9c0cb75..263b9d6 100644 --- a/src/interface/ffi/src/main.zig +++ b/src/interface/ffi/src/main.zig @@ -1,6 +1,6 @@ // SPDX-License-Identifier: MPL-2.0 // Copyright (c) Jonathan D.A. Jewell -// {{PROJECT}} FFI Implementation +// RATTLESCRIPT FFI Implementation // // This module implements the C-compatible FFI declared in src/interface/Abi/Foreign.idr // All types and layouts must match the Idris2 ABI definitions. @@ -10,7 +10,7 @@ const std = @import("std"); // Version information (keep in sync with project) const VERSION = "0.1.0"; -const BUILD_INFO = "{{PROJECT}} built with Zig " ++ @import("builtin").zig_version_string; +const BUILD_INFO = "RATTLESCRIPT built with Zig " ++ @import("builtin").zig_version_string; /// Thread-local error storage threadlocal var last_error: ?[]const u8 = null; diff --git a/tests/aspect_tests.sh b/tests/aspect_tests.sh index a2c127e..7a19705 100755 --- a/tests/aspect_tests.sh +++ b/tests/aspect_tests.sh @@ -39,7 +39,7 @@ fail() { red " FAIL: $1"; FAIL=$((FAIL + 1)); } warn() { yellow " WARN: $1"; WARN=$((WARN + 1)); } echo "═══════════════════════════════════════════════════════════════" -echo " {{PROJECT}} — Aspect Tests (Cross-Cutting Concerns)" +echo " RATTLESCRIPT — Aspect Tests (Cross-Cutting Concerns)" echo "═══════════════════════════════════════════════════════════════" echo "" diff --git a/tests/e2e.sh b/tests/e2e.sh index 11143fc..e684864 100755 --- a/tests/e2e.sh +++ b/tests/e2e.sh @@ -62,7 +62,7 @@ skip_test() { } echo "═══════════════════════════════════════════════════════════════" -echo " {{PROJECT}} — End-to-End Tests" +echo " RATTLESCRIPT — End-to-End Tests" echo "═══════════════════════════════════════════════════════════════" echo "" @@ -122,7 +122,7 @@ echo "" # else # STATUS=$(curl -s -o /dev/null -w "%{http_code}" -X POST "$VERISIM_URL/api/v1/hexads" \ # -H "Content-Type: application/json" \ -# -d '{"tool":"{{PROJECT}}","modality":"document","content":"e2e test"}') +# -d '{"tool":"RATTLESCRIPT","modality":"document","content":"e2e test"}') # check_status "hexad POST" "201" "$STATUS" # fi