Skip to content
Merged
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
8 changes: 4 additions & 4 deletions .devcontainer/Containerfile
Original file line number Diff line number Diff line change
@@ -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) <j.d.a.jewell@open.ac.uk>
#
# Dev Container image for {{PROJECT_NAME}}
# Dev Container image for Scaffoldia
# Base: Chainguard Wolfi (minimal, supply-chain-secure)
# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile .
# Build: podman build -t Scaffoldia-dev -f .devcontainer/Containerfile .

FROM cgr.dev/chainguard/wolfi-base:latest

Expand All @@ -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/Scaffoldia

# Default shell
ENV SHELL=/bin/bash
Expand Down
4 changes: 2 additions & 2 deletions .devcontainer/README.adoc
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
= Dev Container Usage
:author: {{AUTHOR}} <{{AUTHOR_EMAIL}}>
:author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

== Overview

Expand All @@ -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 `Scaffoldia` placeholders in both `devcontainer.json` and `Containerfile` with your actual project name. Run `just deps` to verify the environment after first launch.
6 changes: 3 additions & 3 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
// SPDX-License-Identifier: MPL-2.0
// Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
//
// Dev Container configuration for {{PROJECT_NAME}}
// Dev Container configuration for Scaffoldia
// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod
// Container runtime: Podman (recommended) or any OCI-compliant runtime
{
"name": "{{PROJECT_NAME}}",
"name": "Scaffoldia",

"build": {
"dockerfile": "Containerfile",
Expand Down
2 changes: 1 addition & 1 deletion .envrc
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ if has nix && [ -f flake.nix ]; then
fi

# Project environment variables
export PROJECT_NAME="{{PROJECT_NAME}}"
export PROJECT_NAME="Scaffoldia"
export RSR_TIER="infrastructure"
# export DATABASE_URL="..."
# export API_KEY="..."
Expand Down
2 changes: 1 addition & 1 deletion .github/.mailmap
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{{AUTHOR}} <{{AUTHOR_EMAIL}}> <{{AUTHOR_EMAIL_ALT}}>
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> <6759885+hyperpolymath@users.noreply.github.com>
12 changes: 5 additions & 7 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
@@ -1,14 +1,12 @@
# 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 {{OWNER}} with your GitHub username or team

# Default owners for everything
* @{{OWNER}}
* @hyperpolymath

# Security-sensitive files require explicit review
SECURITY.md @{{OWNER}}
.github/workflows/ @{{OWNER}}
Trustfile.a2ml @{{OWNER}}
.machine_readable/ @{{OWNER}}
SECURITY.md @hyperpolymath
.github/workflows/ @hyperpolymath
Trustfile.a2ml @hyperpolymath
.machine_readable/ @hyperpolymath
42 changes: 11 additions & 31 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,9 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Code of Conduct

<!--
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all {{PLACEHOLDER}} values:
{{PROJECT_NAME}} - Your project name
{{OWNER}} - GitHub/GitLab username or org
{{REPO}} - Repository name
{{CONDUCT_EMAIL}} - Email for conduct reports
{{CONDUCT_TEAM}} - Name of conduct team/committee
{{RESPONSE_TIME}} - Initial response SLA (e.g., 48 hours)
{{CURRENT_YEAR}} - Current year

Review and customise:
- Adjust enforcement ladder for your community size
- Add/remove examples based on your context
- Ensure contact methods work for your team
============================================================================
-->

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

Expand Down Expand Up @@ -140,7 +120,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 All @@ -156,8 +136,8 @@ If you experience or witness unacceptable behaviour, or have any other concerns,

**What Happens Next**

1. You will receive acknowledgment within **{{RESPONSE_TIME}}**
2. The {{CONDUCT_TEAM}} will review the report
1. You will receive acknowledgment within **48 hours**
2. The the maintainer will review the report
3. We may ask for additional information
4. We will determine appropriate action
5. We will inform you of the outcome (respecting others' privacy)
Expand All @@ -173,7 +153,7 @@ All reports will be handled with discretion:

### Conflicts of Interest

If a {{CONDUCT_TEAM}} member is involved in an incident:
If a the maintainer member is involved in an incident:

- They will recuse themselves from the process
- Another maintainer or external party will handle the report
Expand All @@ -183,7 +163,7 @@ If a {{CONDUCT_TEAM}} member is involved in an incident:

## Enforcement Guidelines

The {{CONDUCT_TEAM}} will follow these guidelines in determining consequences:
The the maintainer will follow these guidelines in determining consequences:

### 1. Correction

Expand Down Expand Up @@ -235,13 +215,13 @@ 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

**Appeals Process**

- Appeals are reviewed by a different {{CONDUCT_TEAM}} member than the original
- Appeals are reviewed by a different the maintainer member than the original
- You will receive a response within 14 days
- The appeals decision is final
- You may only appeal once per incident
Expand Down Expand Up @@ -314,8 +294,8 @@ We thank these communities for their leadership in creating welcoming spaces.

If you have questions about this Code of Conduct:

- Open a [Discussion](https://{{FORGE}}/{{OWNER}}/{{REPO}}/discussions) (for general questions)
- Email {{CONDUCT_EMAIL}} (for private questions)
- Open a [Discussion](https://github.com/hyperpolymath/scaffoldia/discussions) (for general questions)
- Email j.d.a.jewell@open.ac.uk (for private questions)
- Contact any maintainer directly

---
Expand All @@ -328,4 +308,4 @@ We're all here because we care about this project. Let's make it a place where e

---

<sub>Last updated: {{CURRENT_YEAR}} · Based on Contributor Covenant 2.1</sub>
<sub>Last updated: 2026 · Based on Contributor Covenant 2.1</sub>
20 changes: 10 additions & 10 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,15 +3,15 @@ SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Clone the repository
git clone https://{{FORGE}}/{{OWNER}}/{{REPO}}.git
cd {{REPO}}
git clone https://github.com/hyperpolymath/scaffoldia.git
cd scaffoldia

# Using Nix (recommended for reproducibility)
nix develop

# Or using toolbox/distrobox
toolbox create {{REPO}}-dev
toolbox enter {{REPO}}-dev
toolbox create scaffoldia-dev
toolbox enter scaffoldia-dev
# Install dependencies manually

# Verify setup
Expand All @@ -21,7 +21,7 @@ just test # Run test suite

### Repository Structure
```
{{REPO}}/
scaffoldia/
├── src/ # Source code (Perimeter 1-2)
├── lib/ # Library code (Perimeter 1-2)
├── extensions/ # Extensions (Perimeter 2)
Expand Down Expand Up @@ -62,7 +62,7 @@ just test # Run test suite

**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**:
Expand Down Expand Up @@ -95,10 +95,10 @@ Use the [feature request template](.github/ISSUE_TEMPLATE/feature_request.md) an

Look for issues labelled:

- [`good first issue`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/help%20wanted) — Community help needed
- [`documentation`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/documentation) — Docs improvements
- [`perimeter-3`](https://{{FORGE}}/{{OWNER}}/{{REPO}}/labels/perimeter-3) — Community sandbox scope
- [`good first issue`](https://github.com/hyperpolymath/scaffoldia/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/scaffoldia/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/scaffoldia/labels/documentation) — Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/scaffoldia/labels/perimeter-3) — Community sandbox scope

---

Expand Down
8 changes: 4 additions & 4 deletions .github/FUNDING.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# SPDX-License-Identifier: MPL-2.0
# Funding platforms for {{OWNER}} projects
# Funding platforms for hyperpolymath projects
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository

github: {{OWNER}}
ko_fi: {{OWNER}}
liberapay: {{OWNER}}
github: hyperpolymath
ko_fi: hyperpolymath
liberapay: hyperpolymath
6 changes: 3 additions & 3 deletions .github/GOVERNANCE.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,13 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Project Governance

This document describes the governance model for **{{PROJECT_NAME}}**.
This document describes the governance model for **Scaffoldia**.

---

## Project Governance Model

{{PROJECT_NAME}} follows a **Benevolent Dictator For Life (BDFL)** governance model.
Scaffoldia 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.

Expand Down Expand Up @@ -157,4 +157,4 @@ with the community before adoption, even though the BDFL retains final authority

---

<sub>Copyright (c) {{CURRENT_YEAR}} {{OWNER}}. Licensed under MPL-2.0.</sub>
<sub>Copyright (c) 2026 hyperpolymath. Licensed under MPL-2.0.</sub>
2 changes: 1 addition & 1 deletion .github/MAINTAINERS
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Format: Name <email> (role)
# Replace placeholders with actual maintainer information.

{{AUTHOR}} <{{AUTHOR_EMAIL}}> (Lead Maintainer)
Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> (Lead Maintainer)

# Additional maintainers:
# Name <email> (role)
16 changes: 1 addition & 15 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,26 +38,13 @@ This method ensures:
- Coordinated disclosure tooling
- Automatic credit when the advisory is published

### Alternative: Encrypted Email
### Alternative: Email

If you cannot use GitHub Security Advisories, you may email us directly:

| | |
|---|---|
| **Email** | j.d.a.jewell@open.ac.uk |
| **PGP Key** | [Download Public Key](https://github.com/hyperpolymath.gpg) |
| **Fingerprint** | `4A03639C1EB1F86C7F0C97A91835A14A2867091E` |

```bash
# Import our PGP key
curl -sSL https://github.com/hyperpolymath.gpg | gpg --import

# Verify fingerprint
gpg --fingerprint j.d.a.jewell@open.ac.uk

# Encrypt your report
gpg --armor --encrypt --recipient j.d.a.jewell@open.ac.uk report.txt
```

> **⚠️ Important:** Do not report security vulnerabilities through public GitHub issues, pull requests, discussions, or social media.

Expand Down Expand Up @@ -356,7 +343,6 @@ When using Scaffoldia, we recommend:

## Additional Resources

- [Our PGP Public Key](https://github.com/hyperpolymath.gpg)
- [Security Advisories](https://github.com/hyperpolymath/scaffoldia/security/advisories)
- [Changelog](CHANGELOG.md)
- [Contributing Guidelines](CONTRIBUTING.md)
Expand Down
4 changes: 2 additions & 2 deletions .github/SUPPORT
Original file line number Diff line number Diff line change
Expand Up @@ -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/scaffoldia/discussions
- GitHub Issues: https://github.com/hyperpolymath/scaffoldia/issues
- Documentation: See README.adoc in the root directory.
4 changes: 2 additions & 2 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
SPDX-License-Identifier: CC-BY-SA-4.0
Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
<!-- Copyright (c) {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}> -->
<!-- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> -->
<!-- Authoritative source: docs/AI-CONVENTIONS.md -->

# Copilot Instructions
Expand All @@ -16,7 +16,7 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

- SPDX: `MPL-2.0` on all new files.
- Never use AGPL-3.0.
- Copyright: `{{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>`
- Copyright: `Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>`

## Code Style

Expand Down
8 changes: 3 additions & 5 deletions .github/settings.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,15 +6,13 @@
# This file defines repository-level configuration that is automatically
# applied by the probot/settings app when changes are pushed to the default
# branch. Install the app at: https://github.com/apps/settings
#
# Template file — replace {{REPO}} and {{DESCRIPTION}} with actual values.

# ─── Repository Settings ───────────────────────────────────────────────────────

repository:
name: "{{REPO}}"
description: "{{DESCRIPTION}}"
homepage: "https://github.com/hyperpolymath/{{REPO}}"
name: "scaffoldia"
description: "Full-featured repository designer for the RSR estate: composes spine × variant pack × features × profile into new repos and retrofits existing ones."
homepage: "https://github.com/hyperpolymath/scaffoldia"
private: false
has_issues: true
has_projects: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/dogfood-gate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -367,6 +367,6 @@ jobs:
| eclexiaiser | ${ECLEX_STATUS} | Energy/carbon budgets for container services |

---
*Generated by the [Dogfood Gate](https://github.com/hyperpolymath/rsr-template-repo) workflow.*
*Generated by the [Dogfood Gate](https://github.com/hyperpolymath/scaffoldia/blob/main/.github/workflows/dogfood-gate.yml) workflow.*
*Dogfooding is guinea pig fooding — we test our tools on ourselves.*
EOF
8 changes: 4 additions & 4 deletions .machine_readable/ENSAID_CONFIG.a2ml
Original file line number Diff line number Diff line change
@@ -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) <j.d.a.jewell@open.ac.uk>
#
# ENSAID_CONFIG.a2ml — eNSAID Environment Configuration
# Per-repo configuration for PanLL and eNSAID-compatible tools.
Expand Down Expand Up @@ -89,8 +89,8 @@ 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"
# id = "scaffoldia-dev"
# name = "Scaffoldia Development"
# description = "Panels for Scaffoldia development"
# panels = ["valence-shell", "editor-bridge", "build-dashboard"]
# default-isolation = "native"
Loading
Loading