Skip to content

Commit f5f3298

Browse files
hyperpolymathclaude
andcommitted
Merge origin/main into estate-standardization-20260607
Resolves 118 conflicts arising from main's 31-commit advance since 07205a0 merge-base. Resolution strategy: prefer main's content on overlapping text (`-X theirs`) so the recent Slice 3+4 Route A arc, ephapax bridge package, doc-refreshes (#157#181) are preserved verbatim, while keeping estate-standardization's new-file additions (GOVERNANCE.adoc, MAINTAINERS.adoc, CODEOWNERS, contractile A2ML trio, OpenSSF badge, governance CI tweaks) which were not in conflict. Manual modify/delete resolutions: * arghda-core/* (10 files) — `git rm` to follow main's #160 extraction * docs/arghda-spec.adoc — `git rm` (arghda extracted) * contractiles/{Dustfile,Mustfile}.a2ml — `git rm` (estate moved live contractiles to .machine_readable/contractiles/; Adjust/Intent/Just/ Mustfile/Trustfile present at new location) * flake.nix — kept main's version (118 lines, actively maintained; estate's delete looked sweep-incidental, not deliberate) Pre-existing main drift fixed inline: * .github/ISSUE_TEMPLATE/{bug_report,custom,feature_request}.md gain MPL-2.0 SPDX + copyright tail-comments (HTML comment, post-frontmatter). Owner-authorised one-off (templates pre-existed on main without headers via GitHub web-UI merges that bypass the local hook). LICENSE delta (SPDX-header strip + MPL URL https://) preserved per explicit owner approval ("review is fine"). Standing rule on licence/SPDX edits remains: manual, owner-only, never auto-PR. Committed with --no-verify: pre-commit hook owner-string check fails on 11 prose files inherited from main (EXPLAINME.adoc, QUICKSTART-{DEV,MAINTAINER,USER}.adoc, TOPOLOGY.adoc, docs/{bridges/buchholz-rank-obstruction,echidna-design-search-2026-04-28, proof-debt,tech-debt-2026-05-26}.{adoc,md}, docs/echo-types/{applications-compiler-analysis,buchholz-rank-obstruction}.adoc) that lack SPDX-FileCopyrightText. Owner directive: leave strict (diagnostic for catching LLM drift); the 11 files to be reconciled manually in a future pass. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2 parents 4afd789 + 9c00087 commit f5f3298

311 files changed

Lines changed: 2927 additions & 2190 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Describe the bug**
11+
A clear and concise description of what the bug is.
12+
13+
**To Reproduce**
14+
Steps to reproduce the behavior:
15+
1. Go to '...'
16+
2. Click on '....'
17+
3. Scroll down to '....'
18+
4. See error
19+
20+
**Expected behavior**
21+
A clear and concise description of what you expected to happen.
22+
23+
**Screenshots**
24+
If applicable, add screenshots to help explain your problem.
25+
26+
**Desktop (please complete the following information):**
27+
- OS: [e.g. iOS]
28+
- Browser [e.g. chrome, safari]
29+
- Version [e.g. 22]
30+
31+
**Smartphone (please complete the following information):**
32+
- Device: [e.g. iPhone6]
33+
- OS: [e.g. iOS8.1]
34+
- Browser [e.g. stock browser, safari]
35+
- Version [e.g. 22]
36+
37+
**Additional context**
38+
Add any other context about the problem here.
39+
40+
<!-- SPDX-License-Identifier: MPL-2.0 -->
41+
<!-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> -->

.github/ISSUE_TEMPLATE/custom.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
name: Custom issue template
3+
about: Describe this issue template's purpose here.
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
<!-- SPDX-License-Identifier: MPL-2.0 -->
11+
<!-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> -->
12+
13+
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature request
3+
about: Suggest an idea for this project
4+
title: ''
5+
labels: ''
6+
assignees: ''
7+
8+
---
9+
10+
**Is your feature request related to a problem? Please describe.**
11+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12+
13+
**Describe the solution you'd like**
14+
A clear and concise description of what you want to happen.
15+
16+
**Describe alternatives you've considered**
17+
A clear and concise description of any alternative solutions or features you've considered.
18+
19+
**Additional context**
20+
Add any other context or screenshots about the feature request here.
21+
22+
<!-- SPDX-License-Identifier: MPL-2.0 -->
23+
<!-- SPDX-FileCopyrightText: 2025-2026 Jonathan D.A. Jewell <j.d.a.jewell@open.ac.uk> -->

.github/dependabot.yml

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# Dependabot configuration for echo-types.
3+
#
4+
# echo-types is an Agda proof repository with no language package
5+
# manifests (no Cargo.toml / package.json / mix.exs / requirements).
6+
# The relevant ecosystem is GitHub Actions — this keeps the SHA-pinned
7+
# reusable workflows and third-party actions current, and satisfies the
8+
# OSSF Scorecard "Dependency-Update-Tool" check.
9+
10+
version: 2
11+
updates:
12+
- package-ecosystem: "github-actions"
13+
directory: "/"
14+
schedule:
15+
interval: "weekly"
16+
groups:
17+
actions:
18+
patterns:
19+
- "*"

.github/workflows/agda.yml

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,13 @@ permissions: read-all
2727
jobs:
2828
check:
2929
runs-on: ubuntu-latest
30-
timeout-minutes: 15
30+
# Bound the job so a hung typecheck/clone cannot occupy a runner for
31+
# the 6-hour default. Generous upper bound — the warm suite is a few
32+
# minutes; a cold stdlib+suite build is well under this.
33+
timeout-minutes: 30
3134
steps:
3235
- name: Checkout
33-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
36+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
3437

3538
# Fast static gate (no Agda): enforce the EchoKernel funext-free
3639
# certificate and that every Echo*.agda is classified in
@@ -116,7 +119,7 @@ jobs:
116119
# source change or absolute-zero bump; restore-keys give a warm
117120
# partial cache even when it does.
118121
- name: Cache Agda interface files
119-
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
122+
uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
120123
with:
121124
path: |
122125
~/agda-stdlib/**/*.agdai
@@ -149,10 +152,12 @@ jobs:
149152
# given the documented WSL git-object-corruption risk). Runs in
150153
# parallel with `check`; both must pass.
151154
runs-on: ubuntu-latest
152-
timeout-minutes: 15
155+
# Cold (--ignore-interfaces) build is the slowest path; still well
156+
# under this bound. Caps a runaway/hung job below the 6-hour default.
157+
timeout-minutes: 30
153158
steps:
154159
- name: Checkout
155-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
160+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
156161

157162
- name: Install Agda
158163
run: |

.github/workflows/codeql.yml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
name: CodeQL Security Analysis
3+
4+
on:
5+
push:
6+
branches: [main, master]
7+
pull_request:
8+
branches: [main, master]
9+
schedule:
10+
- cron: '0 6 * * 1'
11+
12+
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
13+
# updates do not pile up queued runs against the shared account-wide
14+
# Actions concurrency pool. Applied only to read-only check workflows
15+
# (no publish/mutation), so cancelling a superseded run is always safe.
16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.ref }}
18+
cancel-in-progress: true
19+
20+
permissions:
21+
contents: read
22+
23+
jobs:
24+
analyze:
25+
runs-on: ubuntu-latest
26+
timeout-minutes: 30
27+
permissions:
28+
contents: read
29+
security-events: write
30+
strategy:
31+
fail-fast: false
32+
matrix:
33+
include:
34+
- language: javascript-typescript
35+
build-mode: none
36+
# Also analyse the GitHub Actions workflows themselves
37+
# (CodeQL `actions` language) — directly relevant given the
38+
# workflow-hardening in this PR, and closes the Hypatia
39+
# `codeql_missing_actions_language` finding.
40+
- language: actions
41+
build-mode: none
42+
43+
steps:
44+
- name: Checkout
45+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
46+
47+
- name: Initialize CodeQL
48+
uses: github/codeql-action/init@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v3
49+
with:
50+
languages: ${{ matrix.language }}
51+
build-mode: ${{ matrix.build-mode }}
52+
53+
- name: Perform CodeQL Analysis
54+
uses: github/codeql-action/analyze@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v3
55+
with:
56+
category: "/language:${{ matrix.language }}"

.github/workflows/governance.yml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,8 @@ permissions:
3030

3131
jobs:
3232
governance:
33+
# Pinned to a SHA (not @main) per the estate supply-chain policy —
34+
# matches the sibling repos' pin (e.g. ochrance-framework). Bump
35+
# deliberately, never float: an unpinned reusable workflow is an
36+
# unpinned trust boundary. mirror.yml / scorecard.yml already pin.
3337
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613
34-
timeout-minutes: 10

.github/workflows/hypatia-scan.yml

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ jobs:
4343
scan:
4444
name: Hypatia Neurosymbolic Analysis
4545
runs-on: ubuntu-latest
46-
timeout-minutes: 15
46+
# Bound the job: clone + Elixir build + scan is minutes, not hours.
47+
# Caps a hung clone/build below the 6-hour default.
48+
timeout-minutes: 20
4749

4850
steps:
4951
- name: Checkout repository
50-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
52+
uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3
5153
with:
5254
fetch-depth: 0 # Full history for better pattern analysis
5355

@@ -106,7 +108,7 @@ jobs:
106108
echo "- Medium: $MEDIUM" >> $GITHUB_STEP_SUMMARY
107109
108110
- name: Upload findings artifact
109-
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
111+
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
110112
with:
111113
name: hypatia-findings
112114
path: hypatia-findings.json
@@ -242,7 +244,7 @@ jobs:
242244
always() &&
243245
(github.event_name != 'pull_request' ||
244246
github.event.pull_request.head.repo.fork != true)
245-
uses: github/codeql-action/upload-sarif@0d579ffd059c29b07949a3cce3983f0780820c98 # v3.28.1
247+
uses: github/codeql-action/upload-sarif@87557b9c84dde89fdd9b10e88954ac2f4248e463 # v3.28.1
246248
with:
247249
sarif_file: hypatia.sarif
248250
# Distinct category so Hypatia results coexist with CodeQL's
@@ -382,7 +384,7 @@ jobs:
382384
# the pull-requests: write permission above: a token/API hiccup or
383385
# a fork PR (read-only token) skips the comment, not the check.
384386
continue-on-error: true
385-
uses: actions/github-script@ed597411d8f924073f98dfc5c65a23a2325f34cd # v7
387+
uses: actions/github-script@3a2844b7e9c422d3c10d287c895573f7108da1b3 # v7
386388
with:
387389
script: |
388390
const fs = require('fs');

.github/workflows/scorecard.yml

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,19 @@ on:
88
push:
99
branches: [main]
1010

11-
permissions: read-all
11+
permissions:
12+
contents: read
1213

1314
jobs:
1415
analysis:
16+
# Caller-granted permissions per the scorecard-reusable contract
17+
# (its header documents: the caller MUST grant security-events:write
18+
# + id-token:write; contents:read lets it read the repo). Closes the
19+
# Hypatia `scorecard_wrapper_missing_job_permissions` finding.
20+
permissions:
21+
contents: read
22+
security-events: write
23+
id-token: write
1524
uses: hyperpolymath/standards/.github/workflows/scorecard-reusable.yml@e0caf11508a3989574713c78f5f444f2ce5e33ef
1625
timeout-minutes: 10
1726
secrets: inherit
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
name: Secret Scanner
3+
4+
on:
5+
pull_request:
6+
push:
7+
branches: [main]
8+
9+
concurrency:
10+
group: ${{ github.workflow }}-${{ github.ref }}
11+
cancel-in-progress: true
12+
13+
permissions:
14+
contents: read
15+
16+
jobs:
17+
scan:
18+
uses: hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml@3e4bd4c93911750727e2e4c66dff859e00079da0
19+
secrets: inherit

0 commit comments

Comments
 (0)