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 Contractiles
# Base: Chainguard Wolfi (minimal, supply-chain-secure)
# Build: podman build -t {{PROJECT_NAME}}-dev -f .devcontainer/Containerfile .
# Build: podman build -t Contractiles-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/Contractiles

# 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 `Contractiles` 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 Contractiles
// Works with: VS Code Dev Containers, GitHub Codespaces, Gitpod
// Container runtime: Podman (recommended) or any OCI-compliant runtime
{
"name": "{{PROJECT_NAME}}",
"name": "Contractiles",

"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="Contractiles"
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> <>
12 changes: 6 additions & 6 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@
# 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
# Replace hyperpolymath 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 Contractiles 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/contractiles/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/contractiles.git
cd contractiles

# Using Nix (recommended for reproducibility)
nix develop

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

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

### Repository Structure
```
{{REPO}}/
contractiles/
├── 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/contractiles/labels/good%20first%20issue) — Simple Perimeter 3 tasks
- [`help wanted`](https://github.com/hyperpolymath/contractiles/labels/help%20wanted) — Community help needed
- [`documentation`](https://github.com/hyperpolymath/contractiles/labels/documentation) — Docs improvements
- [`perimeter-3`](https://github.com/hyperpolymath/contractiles/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
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)
61 changes: 14 additions & 47 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,6 @@ Copyright (c) Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
-->
# Security Policy

<!--
============================================================================
TEMPLATE INSTRUCTIONS (delete this block before publishing)
============================================================================
Replace all {{PLACEHOLDER}} values with your information:
{{PROJECT_NAME}} - Your project name
{{OWNER}} - GitHub username or org (e.g., hyperpolymath)
{{REPO}} - Repository name
{{SECURITY_EMAIL}} - Security contact email
{{PGP_FINGERPRINT}} - Your PGP key fingerprint (40 chars, no spaces)
{{PGP_KEY_URL}} - URL to your public PGP key
{{WEBSITE}} - Your website/domain
{{CURRENT_YEAR}} - Current year for copyright

Optional: Remove sections that don't apply (e.g., PGP if you don't use it)
============================================================================
-->

We take security seriously. We appreciate your efforts to responsibly disclose vulnerabilities and will make every effort to acknowledge your contributions.

## Table of Contents
Expand All @@ -44,7 +26,7 @@ We take security seriously. We appreciate your efforts to responsibly disclose v

The preferred method for reporting security vulnerabilities is through GitHub's Security Advisory feature:

1. Navigate to [Report a Vulnerability](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new)
1. Navigate to [Report a Vulnerability](https://github.com/hyperpolymath/contractiles/security/advisories/new)
2. Click **"Report a vulnerability"**
3. Complete the form with as much detail as possible
4. Submit — we'll receive a private notification
Expand All @@ -56,26 +38,12 @@ This method ensures:
- Coordinated disclosure tooling
- Automatic credit when the advisory is published

### Alternative: Encrypted Email

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

| | |
|---|---|
| **Email** | {{SECURITY_EMAIL}} |
| **PGP Key** | [Download Public Key]({{PGP_KEY_URL}}) |
| **Fingerprint** | `{{PGP_FINGERPRINT}}` |
### Alternative: Email

```bash
# Import our PGP key
curl -sSL {{PGP_KEY_URL}} | gpg --import

# Verify fingerprint
gpg --fingerprint {{SECURITY_EMAIL}}

# Encrypt your report
gpg --armor --encrypt --recipient {{SECURITY_EMAIL}} report.txt
```
If you cannot use GitHub Security Advisories, you may email the maintainer
directly at **j.d.a.jewell@open.ac.uk**. No PGP key is currently published
for this project; if you need encrypted contact, say so in your initial
(unencrypted) email and we'll arrange a channel.

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

Expand Down Expand Up @@ -207,7 +175,7 @@ If we cannot reach agreement on disclosure timing, we default to 90 days from yo

The following are within scope for security research:

- This repository (`{{OWNER}}/{{REPO}}`) and all its code
- This repository (`hyperpolymath/contractiles`) and all its code
- Official releases and packages published from this repository
- Documentation that could lead to security issues
- Build and deployment configurations in this repository
Expand Down Expand Up @@ -326,7 +294,7 @@ Recognition includes:
To stay informed about security updates:

- **Watch this repository**: Click "Watch" → "Custom" → Select "Security alerts"
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
- **GitHub Security Advisories**: Published at [Security Advisories](https://github.com/hyperpolymath/contractiles/security/advisories)
- **Release notes**: Security fixes noted in [CHANGELOG](CHANGELOG.md)

### Update Policy
Expand All @@ -352,7 +320,7 @@ To stay informed about security updates:

## Security Best Practices

When using {{PROJECT_NAME}}, we recommend:
When using Contractiles, we recommend:

### General

Expand All @@ -374,8 +342,7 @@ When using {{PROJECT_NAME}}, we recommend:

## Additional Resources

- [Our PGP Public Key]({{PGP_KEY_URL}})
- [Security Advisories](https://github.com/{{OWNER}}/{{REPO}}/security/advisories)
- [Security Advisories](https://github.com/hyperpolymath/contractiles/security/advisories)
- [Changelog](CHANGELOG.md)
- [Contributing Guidelines](CONTRIBUTING.md)
- [CVE Database](https://cve.mitre.org/)
Expand All @@ -387,8 +354,8 @@ When using {{PROJECT_NAME}}, we recommend:

| Purpose | Contact |
|---------|---------|
| **Security issues** | [Report via GitHub](https://github.com/{{OWNER}}/{{REPO}}/security/advisories/new) or {{SECURITY_EMAIL}} |
| **General questions** | [GitHub Discussions](https://github.com/{{OWNER}}/{{REPO}}/discussions) |
| **Security issues** | [Report via GitHub](https://github.com/hyperpolymath/contractiles/security/advisories/new) or j.d.a.jewell@open.ac.uk |
| **General questions** | [GitHub Discussions](https://github.com/hyperpolymath/contractiles/discussions) |
| **Other enquiries** | See [README](README.md) for contact information |

---
Expand All @@ -403,8 +370,8 @@ This security policy may be updated from time to time. Significant changes will

---

*Thank you for helping keep {{PROJECT_NAME}} and its users safe.* 🛡️
*Thank you for helping keep Contractiles and its users safe.* 🛡️

---

<sub>Last updated: {{CURRENT_YEAR}} · Policy version: 1.0.0</sub>
<sub>Last updated: 2026 · Policy version: 1.0.0</sub>
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/contractiles/discussions
- GitHub Issues: https://github.com/hyperpolymath/contractiles/issues
- Documentation: See README.adoc in the root directory.
Loading
Loading