Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 17 additions & 0 deletions 0-AI-MANIFEST.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -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

<!-- BEGIN requires-initialisation -->

## 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.

<!-- END requires-initialisation -->
47 changes: 0 additions & 47 deletions ARCHITECTURE.md

This file was deleted.

8 changes: 4 additions & 4 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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 |

Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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

---
Expand Down
2 changes: 1 addition & 1 deletion PROOF-NEEDS.md
Original file line number Diff line number Diff line change
Expand Up @@ -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.
168 changes: 168 additions & 0 deletions REQUIRES_INITIALISATION.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,168 @@
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->

# 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`.
2 changes: 1 addition & 1 deletion robot-repo-automaton/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 4 additions & 4 deletions robot-repo-automaton/src/fixer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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")
@@
12 changes: 6 additions & 6 deletions scripts/fix-stale-template-placeholders.sh
Original file line number Diff line number Diff line change
@@ -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.
Expand Down Expand Up @@ -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"
Comment on lines +33 to 39

@gitar-bot gitar-bot Bot Aug 5, 2026

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚨 Bug: Placeholder-fixer scripts self-corrupted into no-op replacements

The top-up pass treated the placeholder-resolution code as if it were itself a template to fill, replacing the placeholder tokens with their resolved values. In fix-stale-template-placeholders.sh the sed rules are now s/hyperpolymath/hyperpolymath/g, s/2026/2026/g, etc. — every substitution is a no-op, so the script (dispatched for HYP-DOG-001 findings) no longer resolves any {{OWNER}}/{{CURRENT_YEAR}}/{{AUTHOR}}/{{AUTHOR_EMAIL}} tokens. Its grep guard also now matches literal identity strings (hyperpolymath, github.com) instead of {{...}} tokens, so it fires on essentially every workflow while doing nothing. Identically, fixer.rs lost .replace("{{AUTHOR}}", ...) and .replace("{{EMAIL}}", ...), so the file-creation template expansion will no longer substitute author/email tokens in generated files. Restore the placeholder tokens on the left-hand side of each replacement.

Was this helpful? React with 👍 / 👎

echo " Fixed: $(basename "$file")"
FIXED=$((FIXED + 1))
Expand Down