Skip to content

Commit b0fc751

Browse files
Merge branch 'main' into chore/cicd-optimizations
2 parents d129734 + f6047f1 commit b0fc751

12 files changed

Lines changed: 285 additions & 27 deletions

File tree

.github/workflows/casket-pages.yml

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,22 +20,22 @@ jobs:
2020
runs-on: ubuntu-latest
2121
steps:
2222
- name: Checkout
23-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
23+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
2424

2525
- name: Checkout casket-ssg
26-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
26+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
2727
with:
2828
repository: hyperpolymath/casket-ssg
2929
path: .casket-ssg
3030

3131
- name: Setup GHCup
32-
uses: haskell-actions/setup@ec49483bfc012387b227434aba94f59a6ecd0900 # v2
32+
uses: haskell-actions/setup@f9150cb1d140e9a9271700670baa38991e6fa25c # v2
3333
with:
3434
ghc-version: '9.8.2'
3535
cabal-version: '3.10'
3636

3737
- name: Cache Cabal
38-
uses: actions/cache@0c45773b623bea8c8e75f6c82b208c3cf94ea4f9 # v4
38+
uses: actions/cache@668228422ae6a00e4ad889ee87cd7109ec5666a7 # v4
3939
with:
4040
path: |
4141
~/.cabal/packages
@@ -79,10 +79,10 @@ jobs:
7979
cd .casket-ssg && cabal run casket-ssg -- build ../site ../_site
8080
8181
- name: Setup Pages
82-
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
82+
uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
8383

8484
- name: Upload artifact
85-
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
85+
uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b # v4.0.0
8686
with:
8787
path: '_site'
8888

@@ -95,4 +95,4 @@ jobs:
9595
steps:
9696
- name: Deploy to GitHub Pages
9797
id: deployment
98-
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
98+
uses: actions/deploy-pages@cd2ce8fcbc39b97be8ca5fce6e763baed58fa128 # v5.0.0

.github/workflows/codeql.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,15 @@ jobs:
2727

2828
steps:
2929
- name: Checkout
30-
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
30+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
3131

3232
- name: Initialize CodeQL
33-
uses: github/codeql-action/init@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.28.1
33+
uses: github/codeql-action/init@38697555549f1db7851b81482ff19f1fa5c4fedc # v3.28.1
3434
with:
3535
languages: ${{ matrix.language }}
3636
build-mode: ${{ matrix.build-mode }}
3737

3838
- name: Perform CodeQL Analysis
39-
uses: github/codeql-action/analyze@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.28.1
39+
uses: github/codeql-action/analyze@38697555549f1db7851b81482ff19f1fa5c4fedc # v3.28.1
4040
with:
4141
category: "/language:${{ matrix.language }}"

.github/workflows/hypatia-scan.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,12 +21,12 @@ jobs:
2121

2222
steps:
2323
- name: Checkout repository
24-
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
24+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v4
2525
with:
2626
fetch-depth: 0 # Full history for better pattern analysis
2727

2828
- name: Setup Elixir for Hypatia scanner
29-
uses: erlef/setup-beam@2f0cc07b4b9bea248ae098aba9e1a8a1de5ec24c # v1.18.2
29+
uses: erlef/setup-beam@ee09b1e59bb240681c382eb1f0abc6a04af72764 # v1.18.2
3030
with:
3131
elixir-version: '1.19.4'
3232
otp-version: '28.3'
@@ -147,7 +147,7 @@ jobs:
147147
148148
- name: Comment on PR with findings
149149
if: github.event_name == 'pull_request' && steps.scan.outputs.findings_count > 0
150-
uses: actions/github-script@60a0d83039c74a4aee543508d2ffcb1c3799cdea # v7
150+
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v7
151151
with:
152152
script: |
153153
const fs = require('fs');

.github/workflows/mirror.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
with:
2020
fetch-depth: 0
2121

22-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
22+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
2323
with:
2424
ssh-private-key: ${{ secrets.GITLAB_SSH_KEY }}
2525

@@ -37,7 +37,7 @@ jobs:
3737
with:
3838
fetch-depth: 0
3939

40-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
40+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
4141
with:
4242
ssh-private-key: ${{ secrets.BITBUCKET_SSH_KEY }}
4343

@@ -55,7 +55,7 @@ jobs:
5555
with:
5656
fetch-depth: 0
5757

58-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
58+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
5959
with:
6060
ssh-private-key: ${{ secrets.CODEBERG_SSH_KEY }}
6161

@@ -73,7 +73,7 @@ jobs:
7373
with:
7474
fetch-depth: 0
7575

76-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
76+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
7777
with:
7878
ssh-private-key: ${{ secrets.SOURCEHUT_SSH_KEY }}
7979

@@ -91,7 +91,7 @@ jobs:
9191
with:
9292
fetch-depth: 0
9393

94-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
94+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
9595
with:
9696
ssh-private-key: ${{ secrets.DISROOT_SSH_KEY }}
9797

@@ -109,7 +109,7 @@ jobs:
109109
with:
110110
fetch-depth: 0
111111

112-
- uses: webfactory/ssh-agent@a6f90b1f127823b31d4d4a8d96047790581349bd # v0.9.1
112+
- uses: webfactory/ssh-agent@e83874834305fe9a4a2997156cb26c5de65a8555 # v0.10.0
113113
with:
114114
ssh-private-key: ${{ secrets.GITEA_SSH_KEY }}
115115

.github/workflows/quality.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ jobs:
1212
permissions:
1313
contents: read
1414
steps:
15-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
15+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
1616

1717
- name: Check file permissions
1818
run: |
1919
find . -type f -perm /111 -name "*.sh" | head -10 || true
2020
2121
- name: Check for secrets
22-
uses: trufflesecurity/trufflehog@116e7171542d2f1dad8810f00dcfacbe0b809183 # v3.92.5
22+
uses: trufflesecurity/trufflehog@586f66d7886cd0b037c7c245d4a6e34ef357ab10 # v3.94.1
2323
with:
2424
path: ./
2525
base: ${{ github.event.pull_request.base.sha || github.event.before }}
@@ -36,15 +36,15 @@ jobs:
3636
find . -type f -size +1M -not -path "./.git/*" | head -10 || echo "No large files"
3737
3838
- name: EditorConfig check
39-
uses: editorconfig-checker/action-editorconfig-checker@4b6cd6190d435e7e084fb35e36a096e98506f7b9 # v2.1.0
39+
uses: editorconfig-checker/action-editorconfig-checker@840e866d93b8e032123c23bac69dece044d4d84c # v2.2.0
4040
continue-on-error: true
4141

4242
docs:
4343
runs-on: ubuntu-latest
4444
permissions:
4545
contents: read
4646
steps:
47-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
47+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4848
- name: Check documentation
4949
run: |
5050
MISSING=""

.github/workflows/scorecard-enforcer.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
publish_results: true
3232

3333
- name: Upload SARIF
34-
uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v4
34+
uses: github/codeql-action/upload-sarif@38697555549f1db7851b81482ff19f1fa5c4fedc # v4
3535
with:
3636
sarif_file: results.sarif
3737

.github/workflows/scorecard.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
security-events: write
1818
id-token: write
1919
steps:
20-
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
20+
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
2121
with:
2222
persist-credentials: false
2323

@@ -28,6 +28,6 @@ jobs:
2828
results_format: sarif
2929

3030
- name: Upload results
31-
uses: github/codeql-action/upload-sarif@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.31.8
31+
uses: github/codeql-action/upload-sarif@38697555549f1db7851b81482ff19f1fa5c4fedc # v3.31.8
3232
with:
3333
sarif_file: results.sarif

.github/workflows/secret-scanner.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ jobs:
1919
fetch-depth: 0 # Full history for scanning
2020

2121
- name: TruffleHog Secret Scan
22-
uses: trufflesecurity/trufflehog@6c05c4a00b91aa542267d8e32a8254774799d68d # v3
22+
uses: trufflesecurity/trufflehog@586f66d7886cd0b037c7c245d4a6e34ef357ab10 # v3
2323
with:
2424
extra_args: --only-verified --fail
2525

Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
// SPDX-License-Identifier: PMPL-1.0-or-later
2+
// Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
= Agent Instructions
4+
:toc: preamble
5+
6+
Methodology-aware configuration for AI agents. Read by any AI agent
7+
(Claude, Gemini, Copilot, etc.) at session start.
8+
9+
== Files
10+
11+
[cols="1,3"]
12+
|===
13+
| File | Purpose
14+
15+
| `methodology.a2ml`
16+
| Default mode, invariants, ring ceiling, priority weights, convergent budget
17+
18+
| `coverage.a2ml`
19+
| Session coverage tracking — what was visited, what was skipped, what has MUSTs
20+
21+
| `debt.a2ml`
22+
| Meander debt — things found but not fixed, carried between sessions
23+
|===
24+
25+
== How Agents Use These
26+
27+
1. Read `methodology.a2ml` at session start — know mode, invariants, ceiling
28+
2. Read `coverage.a2ml` — know what was visited last time, what was skipped
29+
3. Read `debt.a2ml` — know what's outstanding from previous sessions
30+
4. At session end, update `coverage.a2ml` and `debt.a2ml`
31+
32+
== Relationship to Other Files
33+
34+
* `AGENTIC.a2ml` says WHAT agents can do (permissions, gating)
35+
* `agent_instructions/` says HOW agents should work (methodology)
36+
* `bot_directives/` says what the gitbot-fleet does (fleet-specific)
37+
* `CLAUDE.md` says how Claude specifically should work (Claude-specific)
38+
39+
== Reference
40+
41+
ADR-002 in `standards/agentic-a2ml/docs/ADR-002-methodology-layer.adoc`
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
# Copyright (c) 2026 Jonathan D.A. Jewell (hyperpolymath) <j.d.a.jewell@open.ac.uk>
3+
#
4+
# coverage.a2ml — Session coverage tracking
5+
# Updated at the end of each AI agent session.
6+
# Persists what was visited, what was skipped, and what has MUSTs.
7+
#
8+
# Reference: ADR-002 in standards/agentic-a2ml/docs/
9+
10+
[metadata]
11+
version = "1.0.0"
12+
last-updated = "2026-03-24"
13+
14+
# ============================================================================
15+
# COVERAGE STATE
16+
# ============================================================================
17+
# Updated by agents at session end. Tracks which components have been
18+
# visited and which have known MUSTs that were skipped.
19+
20+
[coverage]
21+
total-components = 0
22+
visited-components = 0
23+
coverage-percent = 0
24+
25+
# ============================================================================
26+
# VISITED COMPONENTS
27+
# ============================================================================
28+
# Component → session date + ring reached
29+
# Agents add entries as they work through components.
30+
#
31+
# Example:
32+
# [coverage.visited.emergency-room]
33+
# date = "2026-03-23"
34+
# ring = 2
35+
# fixes = 3
36+
# notes = "boot-guardian built, shutdown-marshal built"
37+
38+
# ============================================================================
39+
# SKIPPED COMPONENTS WITH MUSTS
40+
# ============================================================================
41+
# Components with known MUSTs that were not visited in the most recent session.
42+
# These become P1 inputs for the next session's Phase 0.
43+
#
44+
# Example:
45+
# [coverage.skipped-musts.session-sentinel]
46+
# priority = "P0"
47+
# issue = "56 SIGABRTs in 4 days, D-Bus race condition"
48+
# discovered = "2026-03-23"
49+
50+
# ============================================================================
51+
# CHERRY-PICKING AUDIT
52+
# ============================================================================
53+
# At session end, agents report whether they chose easy work over hard work.
54+
# This is the accountability mechanism for the weighted priority system.
55+
#
56+
# [coverage.cherry-picking]
57+
# easy-high-completed = 3
58+
# hard-high-completed = 1
59+
# easy-low-completed = 2
60+
# hard-low-deferred = 4
61+
# assessment = "Correctly prioritised — all MUST items addressed before COULDs"

0 commit comments

Comments
 (0)