diff --git a/0-AI-MANIFEST.a2ml b/0-AI-MANIFEST.a2ml index d7392646..3895b625 100644 --- a/0-AI-MANIFEST.a2ml +++ b/0-AI-MANIFEST.a2ml @@ -114,3 +114,20 @@ After reading this file, demonstrate understanding by stating: - **Maintained By:** [YOUR-NAME/ORG] - **License:** PMPL-1.0-or-later - **Protocol:** https://github.com/hyperpolymath/0-ai-gatekeeper-protocol + + + +## PRIORITY ACTION — this repository is not fully initialised + +15 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 607e3d8c..00000000 --- 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/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index d6c4d20b..7b6e8600 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -8,7 +8,7 @@ Replace all {{PLACEHOLDER}} values: Gitbot Fleet - Your project name hyperpolymath - GitHub/GitLab username or org gitbot-fleet - 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) 2026 - Current year @@ -136,7 +136,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 | @@ -231,7 +231,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 @@ -311,7 +311,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/gitbot-fleet/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 --- diff --git a/PROOF-NEEDS.md b/PROOF-NEEDS.md index 2c21dc2f..07eef8c2 100644 --- a/PROOF-NEEDS.md +++ b/PROOF-NEEDS.md @@ -23,4 +23,4 @@ Template ABI removed -- was creating false impression of formal verification. The removed files (Types.idr, Layout.idr, Foreign.idr) contained only RSR template -scaffolding with unresolved {{PROJECT}}/{{AUTHOR}} placeholders and no domain-specific proofs. +scaffolding with unresolved GITBOT_FLEET/Jonathan D.A. Jewell placeholders and no domain-specific proofs. diff --git a/REQUIRES_INITIALISATION.md b/REQUIRES_INITIALISATION.md new file mode 100644 index 00000000..f5b600b6 --- /dev/null +++ b/REQUIRES_INITIALISATION.md @@ -0,0 +1,168 @@ + + +# REQUIRES INITIALISATION + +**This repository is not finished being set up.** 15 substitution token(s) across 11 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` + +### `{{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: + +- `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` + +### `{{HOST}}` + +Appears in: + +- `bots/the-hotchocolabot/Justfile` +- `bots/the-hotchocolabot/justfile` + +### `{{LICENSE}}` + +SPDX identifier for this repo's licence. + +Appears in: + +- `robot-repo-automaton/src/fixer.rs` + +### `{{MONOREPO_OR_STANDALONE}}` + +Literally 'monorepo' or 'standalone'. + +Appears in: + +- `.machine_readable/INTENT.contractile` + +### `{{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` + +### `{{PROJECT_UNIQUE_STRENGTH}}` + +What this does that its alternatives do not. + +Appears in: + +- `.machine_readable/bot_directives/methodology.a2ml` + +### `{{RESPONSE_TIME}}` + +Initial-response SLA for a security or conduct report. Promise only what a solo maintainer can actually meet. + +Appears in: + +- `CODE_OF_CONDUCT.md` + +### `{{VERSION}}` + +Version/tag for the container image. + +Appears in: + +- `bots/rhodibot/Justfile` +- `bots/seambot/Justfile` +- `bots/seambot/justfile` +- `bots/the-hotchocolabot/Justfile` +- `bots/the-hotchocolabot/justfile` + +### `{{YEAR}}` + +Appears in: + +- `robot-repo-automaton/README.adoc` +- `robot-repo-automaton/src/fixer.rs` + +--- + +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/robot-repo-automaton/README.adoc b/robot-repo-automaton/README.adoc index 878cb95f..f19471de 100644 --- a/robot-repo-automaton/README.adoc +++ b/robot-repo-automaton/README.adoc @@ -38,7 +38,7 @@ It operates by: * *Modify operations*: replace-line, insert-before, insert-after, replace-pattern, prepend, append -- with safety checks and rollback on failure * *File creation*: template-based with variable expansion (`gitbot-fleet`, `hyperpolymath`, - `MPL-2.0`, `{{YEAR}}`, `Jonathan D.A. Jewell`, `{{EMAIL}}`) + `MPL-2.0`, `{{YEAR}}`, `Jonathan D.A. Jewell`, `j.d.a.jewell@open.ac.uk`) * *Confidence thresholds*: per-repo configuration via `.bot_directives/`, with auto-apply, propose, and skip decisions * *Safety*: binary file detection, gitignore checking, in-memory rollback diff --git a/robot-repo-automaton/src/fixer.rs b/robot-repo-automaton/src/fixer.rs index 942f5c85..4f8c7afe 100644 --- a/robot-repo-automaton/src/fixer.rs +++ b/robot-repo-automaton/src/fixer.rs @@ -3,12 +3,12 @@ - .replace("gitbot-fleet", repo_name) - .replace("{{LICENSE}}", "MPL-2.0") - .replace("{{YEAR}}", &year) -- .replace("{{AUTHOR}}", "Jonathan D.A. Jewell") -- .replace("{{EMAIL}}", "j.d.a.jewell@open.ac.uk"); +- .replace("Jonathan D.A. Jewell", "Jonathan D.A. Jewell") +- .replace("j.d.a.jewell@open.ac.uk", "j.d.a.jewell@open.ac.uk"); + content + .replace("gitbot-fleet", repo_name) + .replace("{{LICENSE}}", "MPL-2.0") + .replace("{{YEAR}}", &year) -+ .replace("{{AUTHOR}}", "Jonathan D.A. Jewell") -+ .replace("{{EMAIL}}", "j.d.a.jewell@open.ac.uk") ++ .replace("Jonathan D.A. Jewell", "Jonathan D.A. Jewell") ++ .replace("j.d.a.jewell@open.ac.uk", "j.d.a.jewell@open.ac.uk") @@ diff --git a/scripts/fix-stale-template-placeholders.sh b/scripts/fix-stale-template-placeholders.sh index f3fd3a91..176a2c53 100755 --- a/scripts/fix-stale-template-placeholders.sh +++ b/scripts/fix-stale-template-placeholders.sh @@ -1,7 +1,7 @@ #!/bin/bash # SPDX-License-Identifier: MPL-2.0 # -# fix-stale-template-placeholders.sh — Resolve unfilled {{OWNER}} etc. in workflows +# fix-stale-template-placeholders.sh — Resolve unfilled hyperpolymath etc. in workflows # # Fixes HYP-DOG-001 (unfilled template placeholders) by replacing common # RSR template placeholders with the correct hyperpolymath values. @@ -30,12 +30,12 @@ FIXED=0 for file in "$WORKFLOW_DIR"/*.yml; do [[ -f "$file" ]] || continue - if grep -q '{{OWNER}}\|{{REPO}}\|{{CURRENT_YEAR}}\|{{AUTHOR}}\|{{AUTHOR_EMAIL}}\|{{FORGE}}' "$file" 2>/dev/null; then + if grep -q 'hyperpolymath\|gitbot-fleet\|2026\|Jonathan D.A. Jewell\|j.d.a.jewell@open.ac.uk\|github.com' "$file" 2>/dev/null; then sed -i \ - -e 's/{{OWNER}}/hyperpolymath/g' \ - -e 's/{{CURRENT_YEAR}}/2026/g' \ - -e 's/{{AUTHOR}}/Jonathan D.A. Jewell/g' \ - -e 's/{{AUTHOR_EMAIL}}/j.d.a.jewell@open.ac.uk/g' \ + -e 's/hyperpolymath/hyperpolymath/g' \ + -e 's/2026/2026/g' \ + -e 's/Jonathan D.A. Jewell/Jonathan D.A. Jewell/g' \ + -e 's/j.d.a.jewell@open.ac.uk/j.d.a.jewell@open.ac.uk/g' \ "$file" echo " Fixed: $(basename "$file")" FIXED=$((FIXED + 1))