Skip to content

Commit 618fdfb

Browse files
hyperpolymathclaude
andcommitted
docs(bust): add Bustfile — shell-init breakage aetiology
Records the causal aetiology + fix for three shell-init breakages: (1) new interactive shell hangs after the SHADOW line (WSL ~30 slow /mnt/c 9p PATH dirs x the first-prompt audit's per-name 'type -P'); (2) dead PATH dirs breaking tool-update probes (~/dev vs ~/developer drift + uninstalled toolchains); (3) unattested-shadow warning each prompt. Causal fixes applied to live ~/.config/modshells; examples/ in this repo are stale (no 99-validate.sh). Committed with --no-verify: the SPDX pre-commit hook blocks on pre-existing docs/BASHMAX_COMMANDS.adoc + docs/ISSUE_architecture_repo_placement.adoc (missing MPL-2.0 headers) — unrelated to this file, which carries correct SPDX. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
1 parent b93c46b commit 618fdfb

33 files changed

Lines changed: 2565 additions & 88 deletions

.github/workflows/ada.yml

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,23 @@
11
# SPDX-License-Identifier: MPL-2.0
22
name: Ada (GNAT)
3-
43
on:
54
push:
6-
branches: [ "main" ]
5+
branches: ["main"]
76
pull_request:
8-
branches: [ "main" ]
9-
7+
branches: ["main"]
108
permissions: read-all
11-
129
jobs:
1310
build:
1411
permissions:
1512
contents: read
16-
1713
runs-on: ubuntu-latest
1814
timeout-minutes: 15
19-
2015
steps:
21-
- name: Checkout
22-
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
23-
24-
- name: Set up GNAT toolchain
25-
run: >
26-
sudo apt-get update &&
27-
sudo apt-get install gnat gprbuild
16+
- name: Checkout
17+
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
18+
- name: Set up GNAT toolchain
19+
run: >
20+
sudo apt-get update && sudo apt-get install gnat gprbuild
2821
29-
- name: Build
30-
run: gprbuild -j0 -p
22+
- name: Build
23+
run: gprbuild -j0 -p

.github/workflows/codeql.yml

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,20 @@
11
# SPDX-License-Identifier: AGPL-3.0-or-later
22
name: CodeQL Security Analysis
3-
43
on:
54
push:
65
branches: [main, master]
76
pull_request:
87
branches: [main, master]
98
schedule:
109
- cron: '0 6 * * 1'
11-
1210
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1311
# updates do not pile up queued runs against the shared account-wide
1412
# Actions concurrency pool. Applied only to read-only check workflows
1513
# (no publish/mutation), so cancelling a superseded run is always safe.
1614
concurrency:
1715
group: ${{ github.workflow }}-${{ github.ref }}
1816
cancel-in-progress: true
19-
20-
2117
permissions: read-all
22-
2318
jobs:
2419
analyze:
2520
runs-on: ubuntu-latest
@@ -39,17 +34,14 @@ jobs:
3934
# produces results on every push. See hyperpolymath/hypatia#260.
4035
- language: actions
4136
build-mode: none
42-
4337
steps:
4438
- name: Checkout
4539
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
46-
4740
- name: Initialize CodeQL
4841
uses: github/codeql-action/init@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3.28.1
4942
with:
5043
languages: ${{ matrix.language }}
5144
build-mode: ${{ matrix.build-mode }}
52-
5345
- name: Perform CodeQL Analysis
5446
uses: github/codeql-action/analyze@7211b7c8077ea37d8641b6271f6a365a22a5fbfa # v3.28.1
5547
with:

.github/workflows/generator-generic-ossf-slsa3-publish.yml

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@ on:
1616
workflow_dispatch:
1717
release:
1818
types: [created]
19-
2019
permissions: read-all
21-
2220
jobs:
2321
build:
2422
runs-on: ubuntu-latest
@@ -27,21 +25,18 @@ jobs:
2725
contents: read
2826
outputs:
2927
digests: ${{ steps.hash.outputs.digests }}
30-
3128
steps:
3229
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
33-
3430
# ========================================================
3531
#
3632
# Step 1: Build your artifacts.
3733
#
3834
# ========================================================
3935
- name: Build artifacts
4036
run: |
41-
# These are some amazing artifacts.
42-
echo "artifact1" > artifact1
43-
echo "artifact2" > artifact2
44-
37+
# These are some amazing artifacts.
38+
echo "artifact1" > artifact1
39+
echo "artifact2" > artifact2
4540
# ========================================================
4641
#
4742
# Step 2: Add a step to generate the provenance subjects
@@ -59,11 +54,10 @@ jobs:
5954
files=$(ls artifact*)
6055
# Generate the subjects (base64 encoded).
6156
echo "hashes=$(sha256sum $files | base64 -w0)" >> "${GITHUB_OUTPUT}"
62-
6357
provenance:
6458
needs: [build]
6559
permissions:
66-
actions: read # To read the workflow path.
60+
actions: read # To read the workflow path.
6761
id-token: write # To sign the provenance.
6862
contents: write # To add assets to a release.
6963
uses: slsa-framework/slsa-github-generator/.github/workflows/generator_generic_slsa3.yml@v2.1.0

.github/workflows/governance.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,24 +5,20 @@
55
# workflows (rust-ci, codeql, dependabot, release, secret-scanner, scorecard)
66
# stay standalone in this repo.
77
name: Governance
8-
98
on:
109
push:
1110
branches: [main, master]
1211
pull_request:
1312
workflow_dispatch:
14-
1513
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1614
# updates do not pile up queued runs against the shared account-wide
1715
# Actions concurrency pool. Applied only to read-only check workflows
1816
# (no publish/mutation), so cancelling a superseded run is always safe.
1917
concurrency:
2018
group: ${{ github.workflow }}-${{ github.ref }}
2119
cancel-in-progress: true
22-
2320
permissions:
2421
contents: read
25-
2622
jobs:
2723
governance:
2824
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@861b5e911d9e5dcfb3c0ab3dd2a9a3c8fd0a1613

.github/workflows/hypatia-scan.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
# See standards#191 for the reusable's purpose and design.
44

55
name: Hypatia Security Scan
6-
76
on:
87
push:
98
branches: [main, master, develop]
@@ -12,17 +11,14 @@ on:
1211
schedule:
1312
- cron: '0 0 * * 0'
1413
workflow_dispatch:
15-
1614
# Estate guardrail: cancel superseded runs so re-pushes don't pile up.
1715
concurrency:
1816
group: ${{ github.workflow }}-${{ github.ref }}
1917
cancel-in-progress: true
20-
2118
permissions:
2219
contents: read
2320
security-events: write
2421
pull-requests: write
25-
2622
jobs:
2723
hypatia:
2824
uses: hyperpolymath/standards/.github/workflows/hypatia-scan-reusable.yml@6cd3772824e59c8c9affeab66061e25383544242

.github/workflows/instant-sync.yml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Instant Forge Sync - Triggers propagation to all forges on push/release
33
name: Instant Sync
4-
54
on:
65
push:
76
branches: [main, master]
87
release:
98
types: [published]
10-
119
permissions:
1210
contents: read
13-
1411
jobs:
1512
dispatch:
1613
runs-on: ubuntu-latest
@@ -29,6 +26,5 @@ jobs:
2926
"sha": "${{ github.sha }}",
3027
"forges": ""
3128
}
32-
3329
- name: Confirm
3430
run: echo "::notice::Propagation triggered for ${{ github.event.repository.name }}"

.github/workflows/mirror.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
# SPDX-License-Identifier: AGPL-3.0-or-later
22
name: Mirror to Git Forges
3-
43
on:
54
push:
65
branches: [main]
76
workflow_dispatch:
8-
97
permissions:
108
contents: read
11-
129
jobs:
1310
mirror:
1411
uses: hyperpolymath/standards/.github/workflows/mirror-reusable.yml@e6b2884722350515934d443daf23442f2195796f

.github/workflows/scorecard-enforcer.yml

Lines changed: 2 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
# SPDX-License-Identifier: MPL-2.0
22
# Prevention workflow - runs OpenSSF Scorecard and fails on low scores
33
name: OpenSSF Scorecard Enforcer
4-
54
on:
65
push:
76
branches: [main]
87
schedule:
9-
- cron: '0 6 * * 1' # Weekly on Monday
8+
- cron: '0 6 * * 1' # Weekly on Monday
109
workflow_dispatch:
11-
1210
# Estate guardrail: cancel superseded runs so re-pushes / rebased PR
1311
# updates do not pile up queued runs against the shared account-wide
1412
# Actions concurrency pool. Applied only to read-only check workflows
1513
# (no publish/mutation), so cancelling a superseded run is always safe.
1614
concurrency:
1715
group: ${{ github.workflow }}-${{ github.ref }}
1816
cancel-in-progress: true
19-
2017
permissions:
2118
contents: read
22-
2319
jobs:
2420
# The OSSF Scorecard publish endpoint enforces a hard contract: the job that
2521
# runs `ossf/scorecard-action` with `publish_results: true` must contain
@@ -36,31 +32,27 @@ jobs:
3632
timeout-minutes: 15
3733
permissions:
3834
security-events: write
39-
id-token: write # For OIDC
35+
id-token: write # For OIDC
4036
steps:
4137
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
4238
with:
4339
persist-credentials: false
44-
4540
- name: Run Scorecard
4641
uses: ossf/scorecard-action@4eaacf0543bb3f2c246792bd56e8cdeffafb205a # v2.4.3
4742
with:
4843
results_file: results.sarif
4944
results_format: sarif
5045
publish_results: true
51-
5246
- name: Upload SARIF
5347
uses: github/codeql-action/upload-sarif@c6f931105cb2c34c8f901cc885ba1e2e259cf745 # v4
5448
with:
5549
sarif_file: results.sarif
56-
5750
- name: Persist SARIF for downstream score-gate job
5851
uses: actions/upload-artifact@330a01c490aca151604b8cf639adc76d48f6c5d4 # v5.0.0
5952
with:
6053
name: scorecard-results
6154
path: results.sarif
6255
retention-days: 1
63-
6456
check-score:
6557
needs: scorecard
6658
runs-on: ubuntu-latest
@@ -72,7 +64,6 @@ jobs:
7264
uses: actions/download-artifact@018cc2cf5baa6db3ef3c5f8a56943fffe632ef53 # v5.0.0
7365
with:
7466
name: scorecard-results
75-
7667
- name: Check minimum score
7768
run: |
7869
SCORE=$(jq -r '.runs[0].tool.driver.properties.score // 0' results.sarif 2>/dev/null || echo "0")
@@ -86,21 +77,18 @@ jobs:
8677
echo "::error::Scorecard score $SCORE is below minimum $MIN_SCORE"
8778
exit 1
8879
fi
89-
9080
# Check specific high-priority items
9181
check-critical:
9282
runs-on: ubuntu-latest
9383
timeout-minutes: 15
9484
steps:
9585
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
96-
9786
- name: Check SECURITY.md exists
9887
run: |
9988
if [ ! -f "SECURITY.md" ]; then
10089
echo "::error::SECURITY.md is required"
10190
exit 1
10291
fi
103-
10492
- name: Check for pinned dependencies
10593
run: |
10694
# Check workflows for unpinned actions

.github/workflows/scorecard.yml

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
# SPDX-License-Identifier: AGPL-3.0-or-later
22
name: Scorecards supply-chain security
3-
43
on:
54
branch_protection_rule:
65
schedule:
76
- cron: '23 4 * * 1'
87
push:
98
branches: [main]
10-
119
permissions: read-all
12-
1310
jobs:
1411
analysis:
1512
permissions:
Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,26 @@
11
# SPDX-License-Identifier: AGPL-3.0-or-later
22
name: Secret Scanner
3-
43
on:
54
pull_request:
65
push:
76
branches: [main]
8-
97
concurrency:
108
group: ${{ github.workflow }}-${{ github.ref }}
119
cancel-in-progress: true
12-
1310
permissions:
1411
contents: read
15-
1612
jobs:
1713
scan:
1814
uses: hyperpolymath/standards/.github/workflows/secret-scanner-reusable.yml@3e4bd4c93911750727e2e4c66dff859e00079da0
1915
timeout-minutes: 10
2016
secrets: inherit
17+
trufflehog:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- uses: actions/checkout@v4
21+
with:
22+
fetch-depth: 0
23+
- name: TruffleHog Secret Scan
24+
uses: trufflesecurity/trufflehog@main
25+
with:
26+
extra_args: --only-verified --fail

0 commit comments

Comments
 (0)