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
3 changes: 2 additions & 1 deletion .claude/CLAUDE.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# wokelangiser — Project Instructions

## Overview
Expand Down Expand Up @@ -27,7 +28,7 @@ cargo test
## Key Design Decisions

- Follows hyperpolymath ABI-FFI standard (Idris2 ABI, Zig FFI)
- MPL-2.0 license
- Licensing: MPL-2.0 (code/config/CI) + CC-BY-SA-4.0 (documentation/prose); both texts in LICENSES/, mapped in .machine_readable/compliance/reuse/dep5
- RSR (Rhodium Standard Repository) template
- Author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

Expand Down
2 changes: 1 addition & 1 deletion .devcontainer/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= Dev Container Usage
:author: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>

Expand Down
1 change: 1 addition & 0 deletions .github/CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Code of Conduct

<!--
Expand Down
1 change: 1 addition & 0 deletions .github/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Clone the repository
git clone https://github.com/hyperpolymath/wokelangiser.git
cd wokelangiser
Expand Down
1 change: 1 addition & 0 deletions .github/DIRECTORY.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= .github Pillar
2 changes: 1 addition & 1 deletion .github/GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->

# Project Governance

Expand Down
1 change: 1 addition & 0 deletions .github/SECURITY.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Security Policy

<!--
Expand Down
2 changes: 1 addition & 1 deletion .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
<!-- Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk> -->
<!-- Authoritative source: docs/AI-CONVENTIONS.md -->

Expand Down
2 changes: 1 addition & 1 deletion .github/pull_request_template.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
## Summary

<!-- Briefly describe what this PR does and why. Link to related issues with "Closes #N". -->
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/rhodibot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Reads root-hygiene rules and auto-fixes what it can:
# - Delete banned files (AI.djot, duplicate CONTRIBUTING.adoc, stale snapshots)
# - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml)
# - Fix SPDX headers (AGPL → PMPL in dotfiles)
# - Fix SPDX headers (AGPL → MPL-2.0 in dotfiles)
# - Create missing required files (SECURITY.md, CONTRIBUTING.md)
# - Report unfixable issues as PR comments
#
Expand Down Expand Up @@ -88,15 +88,15 @@ jobs:
for dotfile in .gitignore .gitattributes .editorconfig; do
if [ -f "$dotfile" ] && grep -q "AGPL-3.0" "$dotfile" 2>/dev/null; then
sed -i 's/AGPL-3.0-or-later/MPL-2.0/g; s/AGPL-3.0/MPL-2.0/g' "$dotfile"
FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → PMPL)"
FIXES="$FIXES\n- Fixed SPDX header in \`$dotfile\` (AGPL → MPL-2.0)"
CHANGED=true
fi
done

# --- 5. Create missing required files ---
if [ ! -f "SECURITY.md" ]; then
cat > SECURITY.md << 'SECEOF'
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Security Policy

## Reporting a Vulnerability
Expand All @@ -116,7 +116,7 @@ jobs:

if [ ! -f "CONTRIBUTING.md" ]; then
cat > CONTRIBUTING.md << 'CONTEOF'
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Contributing

1. Fork the repository
Expand Down
1 change: 1 addition & 0 deletions .machine_readable/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= .machine_readable Pillar
2 changes: 1 addition & 1 deletion .machine_readable/agent_instructions/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
= Agent Instructions
:toc: preamble
Expand Down
1 change: 1 addition & 0 deletions .machine_readable/ai/PLACEHOLDERS.adoc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= Template Placeholders
# Template Placeholders

Expand Down
1 change: 1 addition & 0 deletions .machine_readable/ai/README.adoc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= AI Guidance Directory

Put AI-facing instructions in this folder.
Expand Down
1 change: 1 addition & 0 deletions .machine_readable/anchors/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= anchors Registry
45 changes: 32 additions & 13 deletions .machine_readable/compliance/reuse/dep5
Original file line number Diff line number Diff line change
@@ -1,54 +1,73 @@
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: wokelangiser
Upstream-Contact: Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>
Source: https://github.com/hyperpolymath/wokelangiser

# ====================================================================
# CANONICAL LICENSING RULE (REUSE machine-readable; authoritative)
# * Source code, configuration, CI, scripts, machine-readable state
# (.a2ml/.ncl), dotfiles, .well-known metadata -> MPL-2.0
# * Documentation and prose content (*.adoc, *.md, docs/**) -> CC-BY-SA-4.0
# The repository as a whole is "MPL-2.0 AND CC-BY-SA-4.0". GitHub's
# community-health licence resolves to MPL-2.0 (from the root LICENSE).
# Full texts: LICENSES/MPL-2.0.txt and LICENSES/CC-BY-SA-4.0.txt.
# Each file's SPDX-License-Identifier header is authoritative.
# Do NOT reintroduce PMPL / Palimpsest anywhere (enforced by the
# `no-pmpl` contract rule).
# ====================================================================

# Default: all files are MPL-2.0
Files: *
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Configuration files that cannot carry headers
Files: .editorconfig .gitignore .gitattributes .tool-versions .mailmap
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Machine-readable state files
Files: .machine_readable/*.a2ml
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Bot directives
Files: .machine_readable/bot_directives/*
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Contractiles
Files: .machine_readable/contractiles/*
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# GitHub/CI configuration
Files: .github/* .github/**/*
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Generated files
Files: generated/*
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Lockfiles and auto-generated
Files: *.lock Cargo.lock flake.lock
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Devcontainer config (JSON, no comments)
Files: .devcontainer/*.json
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Git-cliff config
Files: cliff.toml
Copyright: {{CURRENT_YEAR}} {{AUTHOR}} ({{OWNER}}) <{{AUTHOR_EMAIL}}>
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: MPL-2.0

# Documentation and prose content -> CC-BY-SA-4.0
# (placed last so it wins over the MPL-2.0 default for these paths)
Files: *.adoc *.md docs/*
Copyright: 2024-2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
License: CC-BY-SA-4.0
1 change: 1 addition & 0 deletions .machine_readable/configs/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= configs Registry
1 change: 1 addition & 0 deletions .machine_readable/contractiles/README.adoc
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= Contractiles Template Set
:toc:
:sectnums:
Expand Down
2 changes: 1 addition & 1 deletion .machine_readable/contractiles/k9/README.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= K9 Contractiles
:toc: left
:icons: font
Expand Down
7 changes: 4 additions & 3 deletions .machine_readable/contractiles/k9/examples/setup-repo.k9.ncl
Original file line number Diff line number Diff line change
Expand Up @@ -130,10 +130,11 @@ K9!
},

"add-license" = {
description = "Add PMPL-1.0 license",
description = "Verify MPL-2.0 + CC-BY-SA-4.0 licensing (REUSE)",
commands = [
"curl -sL https://raw.githubusercontent.com/hyperpolymath/pmpl/main/LICENSE -o LICENSE",
"echo '✓ License added'",
# Licensing is MPL-2.0 (code) + CC-BY-SA-4.0 (docs); full texts in LICENSES/.
# Do NOT fetch a remote licence. Mapping: .machine_readable/compliance/reuse/dep5
"test -f LICENSE && test -f LICENSES/MPL-2.0.txt && test -f LICENSES/CC-BY-SA-4.0.txt && echo '✓ Licensing present (MPL-2.0 + CC-BY-SA-4.0)'",
],
},

Expand Down
17 changes: 16 additions & 1 deletion .machine_readable/contractiles/must/Mustfile.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -57,10 +57,25 @@ These are hard requirements — CI fails if any check fails.
- severity: warning

### no-agpl
- description: No AGPL-3.0 references (superseded by PMPL)
- description: No AGPL-3.0 references (superseded by MPL-2.0)
- run: "! grep -r 'AGPL-3.0' .gitignore .gitattributes .editorconfig 2>/dev/null | head -1 | grep -q ."
- severity: critical

### no-pmpl
- description: No superseded licence identifiers remain (project is MPL-2.0 + CC-BY-SA-4.0)
- run: "! grep -rniI 'palimpsest\|pmpl' . --exclude-dir=.git --exclude-dir=contractiles --exclude='*.just' --exclude=dep5 --exclude=0002-licensing-policy.adoc | head -1 | grep -q ."
- severity: critical

### licenses-present
- description: Both REUSE licence texts exist (MPL-2.0 + CC-BY-SA-4.0)
- run: test -f LICENSES/MPL-2.0.txt && test -f LICENSES/CC-BY-SA-4.0.txt
- severity: critical

### docs-cc-by-sa
- description: Documentation (*.adoc / *.md) carries the CC-BY-SA-4.0 SPDX header
- run: "! git ls-files '*.adoc' '*.md' | xargs grep -L 'SPDX-License-Identifier: CC-BY-SA-4.0' 2>/dev/null | head -1 | grep -q ."
- severity: warning

## Dangerous Patterns

### no-believe-me
Expand Down
4 changes: 2 additions & 2 deletions .machine_readable/contractiles/trust/Trustfile.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -33,8 +33,8 @@ is traceable.
- severity: warning

### license-content
- description: LICENSE contains PMPL identifier
- run: grep -q 'PMPL' LICENSE
- description: LICENSE declares MPL-2.0 and both REUSE licence texts are present
- run: grep -q 'MPL-2.0' LICENSE && test -f LICENSES/MPL-2.0.txt && test -f LICENSES/CC-BY-SA-4.0.txt
- severity: warning

### ci-pipeline-present
Expand Down
1 change: 1 addition & 0 deletions .machine_readable/policies/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= policies Registry
1 change: 1 addition & 0 deletions .machine_readable/scripts/forge/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= Forge Scripts
1 change: 1 addition & 0 deletions .machine_readable/scripts/lifecycle/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= Lifecycle Scripts
1 change: 1 addition & 0 deletions .machine_readable/scripts/verification/README.adoc
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
// SPDX-License-Identifier: CC-BY-SA-4.0
= Verification Scripts
2 changes: 1 addition & 1 deletion .well-known/ai.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Disallow-Generation: yes
# This project's code is licensed under MPL-2.0.
# AI agents may read and analyze this code for assisting contributors.
# AI agents must NOT use this code for model training without explicit consent.
# AI agents must preserve Emotional Lineage per PMPL Section 3.
# Source code is MPL-2.0; documentation and prose content are CC-BY-SA-4.0.
#
# For AI agent integration instructions, see:
# 0-AI-MANIFEST.a2ml (universal AI entry point)
Expand Down
2 changes: 1 addition & 1 deletion .well-known/humans.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,6 @@ From: United Kingdom
/* SITE */
Last update: {{CURRENT_DATE}}
Standards: RSR (Rhodium Standard Repository)
License: MPL-2.0 (Palimpsest MPL)
License: MPL-2.0 (code) + CC-BY-SA-4.0 (docs)
Components: Idris2 ABI, Zig FFI
Tools: just, Podman, Guix
2 changes: 1 addition & 1 deletion 0-AI-MANIFEST.a2ml
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ All transitions formally verified in Types.idr via ValidTransition proofs.
1. **No state file duplication** - Root must NOT contain STATE.a2ml, META.a2ml, etc.
2. **Single source of truth** - `.machine_readable/` is authoritative
3. **No stale metadata** - If root state files exist, they are OUT OF DATE
4. **License consistency** - All code MPL-2.0 unless platform requires MPL-2.0
4. **License consistency** - Code/config/CI: MPL-2.0; documentation/prose (*.adoc, *.md, docs/**): CC-BY-SA-4.0; both full texts in LICENSES/. Per-file SPDX headers are authoritative.
5. **Author attribution** - Always "Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk>"
6. **Container images** - MUST use Chainguard base (`cgr.dev/chainguard/wolfi-base:latest` or `cgr.dev/chainguard/static:latest`)
7. **Container runtime** - Podman, never Docker. Files are `Containerfile`, never `Dockerfile`
Expand Down
2 changes: 1 addition & 1 deletion CHANGELOG.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= Changelog
:toc:

Expand Down
2 changes: 1 addition & 1 deletion CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Contributor Covenant Code of Conduct

## Our Pledge
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- SPDX-License-Identifier: MPL-2.0 -->
<!-- SPDX-License-Identifier: CC-BY-SA-4.0 -->
# Contributing

Thank you for your interest in contributing! We follow a "Dual-Track" architecture where human-readable documentation lives in the root and machine-readable policies live in `.machine_readable/`.
Expand Down
2 changes: 1 addition & 1 deletion EXPLAINME.adoc
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// SPDX-License-Identifier: MPL-2.0
// SPDX-License-Identifier: CC-BY-SA-4.0
= Wokelangiser — Show Me The Receipts
:toc:
:icons: font
Expand Down
Loading
Loading