Skip to content

Commit 2be26ed

Browse files
Merge branch 'main' into dependabot/github_actions/actions-bdb36a9ff1
2 parents 65313e4 + 3298a94 commit 2be26ed

File tree

10 files changed

+179
-28
lines changed

10 files changed

+179
-28
lines changed

.claude/CLAUDE.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22

33
The following files in `.machine_readable/` contain structured project metadata:
44

5-
- `STATE.scm` - Current project state and progress
6-
- `META.scm` - Architecture decisions and development practices
7-
- `ECOSYSTEM.scm` - Position in the ecosystem and related projects
8-
- `AGENTIC.scm` - AI agent interaction patterns
9-
- `NEUROSYM.scm` - Neurosymbolic integration config
10-
- `PLAYBOOK.scm` - Operational runbook
5+
- `.machine_readable/6a2/STATE.a2ml` - Current project state and progress
6+
- `.machine_readable/6a2/META.a2ml` - Architecture decisions and development practices
7+
- `.machine_readable/6a2/ECOSYSTEM.a2ml` - Position in the ecosystem and related projects
8+
- `.machine_readable/6a2/AGENTIC.a2ml` - AI agent interaction patterns
9+
- `.machine_readable/6a2/NEUROSYM.a2ml` - Neurosymbolic integration config
10+
- `.machine_readable/6a2/PLAYBOOK.a2ml` - Operational runbook
1111

1212
---
1313

@@ -28,7 +28,7 @@ The following files in `.machine_readable/` contain structured project metadata:
2828
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
2929
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
3030
| **Nickel** | Configuration language | For complex configs |
31-
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
31+
| **Guile Scheme** | State/meta files | .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, .machine_readable/6a2/ECOSYSTEM.a2ml |
3232
| **Julia** | Batch scripts, data processing | Per RSR |
3333
| **OCaml** | AffineScript compiler | Language-specific |
3434
| **Ada** | Safety-critical systems | Where required |

.gitattributes

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# RSR-compliant .gitattributes
12
# Palimpsest License — Git Attributes
23

34
# Normalize line endings
@@ -21,3 +22,64 @@ legal/PALIMPSEST-MPL-1.0.txt text eol=lf
2122

2223
# Prevent GitHub from interpreting Pages
2324
.nojekyll export-ignore
25+
26+
27+
# Source
28+
*.rs text eol=lf diff=rust
29+
*.ex text eol=lf diff=elixir
30+
*.exs text eol=lf diff=elixir
31+
*.jl text eol=lf
32+
*.res text eol=lf
33+
*.resi text eol=lf
34+
*.ada text eol=lf diff=ada
35+
*.adb text eol=lf diff=ada
36+
*.ads text eol=lf diff=ada
37+
*.hs text eol=lf
38+
*.chpl text eol=lf
39+
*.scm text eol=lf
40+
*.a2ml text eol=lf linguist-language=TOML
41+
*.ncl text eol=lf
42+
*.nix text eol=lf
43+
*.zig text eol=lf
44+
45+
46+
# Docs
47+
*.md text eol=lf diff=markdown
48+
*.adoc text eol=lf
49+
*.txt text eol=lf
50+
51+
52+
# Data
53+
*.json text eol=lf
54+
*.yaml text eol=lf
55+
*.yml text eol=lf
56+
*.toml text eol=lf
57+
58+
59+
# Config
60+
.gitignore text eol=lf
61+
.gitattributes text eol=lf
62+
.editorconfig text eol=lf
63+
.tool-versions text eol=lf
64+
justfile text eol=lf
65+
Makefile text eol=lf
66+
Containerfile text eol=lf
67+
68+
69+
# Scripts
70+
*.sh text eol=lf
71+
72+
73+
# Binary
74+
*.png binary
75+
*.jpg binary
76+
*.gif binary
77+
*.pdf binary
78+
*.woff2 binary
79+
*.zip binary
80+
*.gz binary
81+
82+
83+
# Lock files
84+
Cargo.lock text eol=lf -diff
85+
flake.lock text eol=lf -diff

.github/workflows/maintenance.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
1818

1919
- name: Install Rust
20-
uses: dtolnay/rust-toolchain@stable
20+
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
2121

2222
- name: Install cargo-audit
2323
run: cargo install cargo-audit || true
@@ -47,7 +47,7 @@ jobs:
4747
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
4848

4949
- name: Install Rust
50-
uses: dtolnay/rust-toolchain@stable
50+
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
5151

5252
- name: Build pmpl-audit
5353
run: |

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ jobs:
1818
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
1919

2020
- name: Install Rust
21-
uses: dtolnay/rust-toolchain@stable
21+
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
2222

2323
- name: Build tools
2424
run: |

.github/workflows/sign-release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
1818

1919
- name: Install Rust
20-
uses: dtolnay/rust-toolchain@stable
20+
uses: dtolnay/rust-toolchain@4be9e76fd7c4901c61fb841f559994984270fce7 # stable
2121

2222
- name: Build pmpl-sign
2323
run: |

.gitignore

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
# RSR-compliant .gitignore
12
# Palimpsest License — Git Ignore
23

34
# Build artefacts
@@ -29,3 +30,88 @@ tools/**/dist/
2930
# Temporary files
3031
tmp/
3132
.cache/
33+
34+
35+
# OS & Editor
36+
.DS_Store
37+
Thumbs.db
38+
*.swp
39+
*.swo
40+
*~
41+
.idea/
42+
.vscode/
43+
44+
45+
# Build
46+
/target/
47+
/_build/
48+
/build/
49+
/dist/
50+
/out/
51+
/zig-out/
52+
/zig-cache/
53+
54+
55+
# Cargo.lock # Keep for binaries
56+
57+
58+
# Elixir
59+
/cover/
60+
/doc/
61+
*.ez
62+
erl_crash.dump
63+
64+
65+
# Julia
66+
*.jl.cov
67+
*.jl.mem
68+
/Manifest.toml
69+
70+
71+
# ReScript
72+
/lib/bs/
73+
/.bsb.lock
74+
75+
76+
# Python (SaltStack only)
77+
__pycache__/
78+
*.py[cod]
79+
.venv/
80+
81+
82+
# Ada/SPARK
83+
*.ali
84+
/obj/
85+
/bin/
86+
87+
88+
# Haskell
89+
/.stack-work/
90+
/dist-newstyle/
91+
92+
93+
# Chapel
94+
*.chpl.tmp.*
95+
96+
97+
# Secrets
98+
.env
99+
.env.*
100+
*.pem
101+
*.key
102+
secrets/
103+
104+
105+
# Test/Coverage
106+
/coverage/
107+
htmlcov/
108+
109+
110+
# Machine-readable locks
111+
.machine_readable/.locks/
112+
113+
114+
# Temp
115+
/tmp/
116+
*.tmp
117+
*.bak

0-AI-MANIFEST.a2ml

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -14,12 +14,12 @@ This is the AI manifest for **palimpsest-license**. It declares:
1414
### Machine-Readable Metadata: `.machine_readable/` ONLY
1515

1616
These 6 SCM files MUST exist in `.machine_readable/` directory ONLY:
17-
1. **STATE.scm** - Project state, progress, blockers
18-
2. **META.scm** - Architecture decisions, governance
19-
3. **ECOSYSTEM.scm** - Position in ecosystem, relationships
20-
4. **AGENTIC.scm** - AI agent interaction patterns
21-
5. **NEUROSYM.scm** - Neurosymbolic integration config
22-
6. **PLAYBOOK.scm** - Operational runbook
17+
1. **.machine_readable/6a2/STATE.a2ml** - Project state, progress, blockers
18+
2. **.machine_readable/6a2/META.a2ml** - Architecture decisions, governance
19+
3. **.machine_readable/6a2/ECOSYSTEM.a2ml** - Position in ecosystem, relationships
20+
4. **.machine_readable/6a2/AGENTIC.a2ml** - AI agent interaction patterns
21+
5. **.machine_readable/6a2/NEUROSYM.a2ml** - Neurosymbolic integration config
22+
6. **.machine_readable/6a2/PLAYBOOK.a2ml** - Operational runbook
2323

2424
**CRITICAL:** If ANY of these files exist in the root directory, this is an ERROR.
2525

@@ -40,7 +40,7 @@ Bot-specific instructions for:
4040

4141
## CORE INVARIANTS
4242

43-
1. **No SCM duplication** - Root must NOT contain STATE.scm, META.scm, etc.
43+
1. **No SCM duplication** - Root must NOT contain .machine_readable/6a2/STATE.a2ml, .machine_readable/6a2/META.a2ml, etc.
4444
2. **Single source of truth** - `.machine_readable/` is authoritative
4545
3. **No stale metadata** - If root SCMs exist, they are OUT OF DATE
4646
4. **License consistency** - All code PMPL-1.0-or-later unless platform requires MPL-2.0
@@ -58,12 +58,12 @@ palimpsest-license/
5858
├── README.md # Project overview
5959
├── [your source files] # Main code
6060
├── .machine_readable/ # SCM files (6 files)
61-
│ ├── STATE.scm
62-
│ ├── META.scm
63-
│ ├── ECOSYSTEM.scm
64-
│ ├── AGENTIC.scm
65-
│ ├── NEUROSYM.scm
66-
│ └── PLAYBOOK.scm
61+
│ ├── .machine_readable/6a2/STATE.a2ml
62+
│ ├── .machine_readable/6a2/META.a2ml
63+
│ ├── .machine_readable/6a2/ECOSYSTEM.a2ml
64+
│ ├── .machine_readable/6a2/AGENTIC.a2ml
65+
│ ├── .machine_readable/6a2/NEUROSYM.a2ml
66+
│ └── .machine_readable/6a2/PLAYBOOK.a2ml
6767
└── .bot_directives/ # Bot instructions
6868
```
6969

@@ -73,8 +73,8 @@ palimpsest-license/
7373
✅ Understand canonical locations (.machine_readable/, .bot_directives/)
7474
✅ Know the invariants (no SCM duplication, etc.)
7575
✅ Check for MCP enforcement (if applicable)
76-
✅ Read `.machine_readable/STATE.scm` for current status
77-
✅ Read `.machine_readable/AGENTIC.scm` for interaction patterns
76+
✅ Read `.machine_readable/6a2/STATE.a2ml` for current status
77+
✅ Read `.machine_readable/6a2/AGENTIC.a2ml` for interaction patterns
7878

7979
## LIFECYCLE HOOKS
8080

@@ -86,15 +86,15 @@ When starting a new session:
8686
2. Log session start (optional but recommended)
8787
- Format: `[YYYY-MM-DD HH:MM:SS] Session started: [agent-name]`
8888
- Location: `.machine_readable/session-log.txt`
89-
3. Read `.machine_readable/STATE.scm`
89+
3. Read `.machine_readable/6a2/STATE.a2ml`
9090
4. Check for blockers
9191
5. State understanding of canonical locations
9292

9393
### on-exit (Session End)
9494

9595
When ending a session:
9696

97-
1. Update `.machine_readable/STATE.scm` if changes made
97+
1. Update `.machine_readable/6a2/STATE.a2ml` if changes made
9898
2. Log session end (optional but recommended)
9999
- Format: `[YYYY-MM-DD HH:MM:SS] Session ended: [summary]`
100100
- Location: `.machine_readable/session-log.txt`

tools/pmpl-audit/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//! This tool checks a repository for compliance with Palimpsest-MPL
77
//! requirements, including SPDX headers, license files, and provenance.
88
9+
#![forbid(unsafe_code)]
910
use anyhow::{Context, Result};
1011
use clap::Parser;
1112
use regex::Regex;

tools/pmpl-sign/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
//! cryptographic algorithms as specified in Exhibit B of the Palimpsest-MPL
88
//! license.
99
10+
#![forbid(unsafe_code)]
1011
use anyhow::{Context, Result};
1112
use clap::Parser;
1213
use sha3::{Digest, Sha3_256};

tools/pmpl-verify/src/main.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
//! This tool verifies PMPL-compliant provenance signatures created by
77
//! pmpl-sign, checking both the cryptographic signature and the content hash.
88
9+
#![forbid(unsafe_code)]
910
use anyhow::{Context, Result};
1011
use clap::Parser;
1112
use sha3::{Digest, Sha3_256};

0 commit comments

Comments
 (0)