Skip to content

Commit c4a28fa

Browse files
hyperpolymathclaude
andcommitted
chore(developer-ecosystem): absorb cadre-tea-router, drop uninitialized template scaffolds
cadre-tea-router previously had its own .git dir inside this monorepo, violating the "no .git dirs in monorepo subdirs" rule. GitHub origin was 404. Absorbing as a regular monorepo subdirectory and dropping the uninitialized src/abi/ + ffi/zig/ template scaffolds ({{project}} placeholders never substituted; not wired into any build). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent d91ef0c commit c4a28fa

87 files changed

Lines changed: 6083 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

cadre-tea-router/.claude/CLAUDE.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# CLAUDE.md - AI Assistant Instructions
2+
3+
## Machine-Readable Artefacts
4+
5+
The following files in `.machine_readable/` contain structured project metadata:
6+
7+
- `STATE.scm` - Current project state and progress
8+
- `META.scm` - Architecture decisions and development practices
9+
- `ECOSYSTEM.scm` - Position in the ecosystem and related projects
10+
- `AGENTIC.scm` - AI agent interaction patterns
11+
- `NEUROSYM.scm` - Neurosymbolic integration config
12+
- `PLAYBOOK.scm` - Operational runbook
13+
14+
## Language Policy
15+
16+
See hyperpolymath/mustfile for the standard language policy.

cadre-tea-router/.editorconfig

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# https://editorconfig.org
3+
4+
root = true
5+
6+
[*]
7+
charset = utf-8
8+
end_of_line = lf
9+
indent_size = 2
10+
indent_style = space
11+
insert_final_newline = true
12+
trim_trailing_whitespace = true
13+
14+
[*.md]
15+
trim_trailing_whitespace = false
16+
17+
[*.adoc]
18+
trim_trailing_whitespace = false
19+
20+
[*.rs]
21+
indent_size = 4
22+
23+
[*.zig]
24+
indent_size = 4
25+
26+
[*.ada]
27+
indent_size = 3
28+
29+
[*.adb]
30+
indent_size = 3
31+
32+
[*.ads]
33+
indent_size = 3
34+
35+
[*.ex]
36+
indent_size = 2
37+
38+
[*.exs]
39+
indent_size = 2
40+
41+
[*.hs]
42+
indent_size = 2
43+
44+
[*.res]
45+
indent_size = 2
46+
47+
[*.resi]
48+
indent_size = 2
49+
50+
[*.ncl]
51+
indent_size = 2
52+
53+
[*.scm]
54+
indent_size = 2
55+
56+
[*.nix]
57+
indent_size = 2
58+
59+
[Justfile]
60+
indent_style = space
61+
indent_size = 4
62+
63+
[justfile]
64+
indent_style = space
65+
indent_size = 4
66+
67+
[Makefile]
68+
indent_style = tab

cadre-tea-router/.gitattributes

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# RSR-compliant .gitattributes
3+
4+
* text=auto eol=lf
5+
6+
# Source
7+
*.rs text eol=lf diff=rust
8+
*.ex text eol=lf diff=elixir
9+
*.exs text eol=lf diff=elixir
10+
*.jl text eol=lf
11+
*.res text eol=lf
12+
*.resi text eol=lf
13+
*.ada text eol=lf diff=ada
14+
*.adb text eol=lf diff=ada
15+
*.ads text eol=lf diff=ada
16+
*.hs text eol=lf
17+
*.chpl text eol=lf
18+
*.scm text eol=lf
19+
*.ncl text eol=lf
20+
*.nix text eol=lf
21+
*.zig text eol=lf
22+
23+
# Docs
24+
*.md text eol=lf diff=markdown
25+
*.adoc text eol=lf
26+
*.txt text eol=lf
27+
28+
# Data
29+
*.json text eol=lf
30+
*.yaml text eol=lf
31+
*.yml text eol=lf
32+
*.toml text eol=lf
33+
34+
# Config
35+
.gitignore text eol=lf
36+
.gitattributes text eol=lf
37+
.editorconfig text eol=lf
38+
.tool-versions text eol=lf
39+
justfile text eol=lf
40+
Makefile text eol=lf
41+
Containerfile text eol=lf
42+
43+
# Scripts
44+
*.sh text eol=lf
45+
46+
# Binary
47+
*.png binary
48+
*.jpg binary
49+
*.gif binary
50+
*.pdf binary
51+
*.woff2 binary
52+
*.zip binary
53+
*.gz binary
54+
55+
# Lock files
56+
Cargo.lock text eol=lf -diff
57+
flake.lock text eol=lf -diff
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
github: [hyperpolymath]
2+
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
version: 2
3+
updates:
4+
- package-ecosystem: "github-actions"
5+
directory: "/"
6+
schedule:
7+
interval: "daily"
8+
open-pull-requests-limit: 10
9+
Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: GitHub Pages
3+
4+
on:
5+
push:
6+
branches: [main]
7+
workflow_dispatch:
8+
9+
permissions:
10+
contents: read
11+
pages: write
12+
id-token: write
13+
14+
concurrency:
15+
group: "pages"
16+
cancel-in-progress: false
17+
18+
jobs:
19+
build:
20+
runs-on: ubuntu-latest
21+
steps:
22+
- name: Checkout
23+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4
24+
25+
- name: Checkout casket-ssg
26+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v4
27+
with:
28+
repository: hyperpolymath/casket-ssg
29+
path: .casket-ssg
30+
31+
- name: Setup GHCup
32+
uses: haskell-actions/setup@ec49483bfc012387b227434aba94f59a6ecd0900 # v2
33+
with:
34+
ghc-version: '9.8.2'
35+
cabal-version: '3.10'
36+
37+
- name: Cache Cabal
38+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4
39+
with:
40+
path: |
41+
~/.cabal/packages
42+
~/.cabal/store
43+
.casket-ssg/dist-newstyle
44+
key: ${{ runner.os }}-casket-${{ hashFiles('.casket-ssg/casket-ssg.cabal') }}
45+
46+
- name: Build casket-ssg
47+
working-directory: .casket-ssg
48+
run: cabal build
49+
50+
- name: Build site
51+
run: |
52+
mkdir -p site _site
53+
# Generate index.md from README if site/index.md doesn't exist
54+
if [ ! -f site/index.md ]; then
55+
if [ -f README.adoc ]; then
56+
# Convert AsciiDoc to Markdown (basic conversion)
57+
echo "---" > site/index.md
58+
echo "title: $(basename $PWD)" >> site/index.md
59+
echo "date: $(date +%Y-%m-%d)" >> site/index.md
60+
echo "---" >> site/index.md
61+
cat README.adoc >> site/index.md
62+
elif [ -f README.md ]; then
63+
echo "---" > site/index.md
64+
echo "title: $(basename $PWD)" >> site/index.md
65+
echo "date: $(date +%Y-%m-%d)" >> site/index.md
66+
echo "---" >> site/index.md
67+
cat README.md >> site/index.md
68+
else
69+
echo "---" > site/index.md
70+
echo "title: $(basename $PWD)" >> site/index.md
71+
echo "date: $(date +%Y-%m-%d)" >> site/index.md
72+
echo "---" >> site/index.md
73+
echo "" >> site/index.md
74+
echo "# $(basename $PWD)" >> site/index.md
75+
echo "" >> site/index.md
76+
echo "Documentation coming soon." >> site/index.md
77+
fi
78+
fi
79+
cd .casket-ssg && cabal run casket-ssg -- build ../site ../_site
80+
81+
- name: Setup Pages
82+
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
83+
84+
- name: Upload artifact
85+
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
86+
with:
87+
path: '_site'
88+
89+
deploy:
90+
environment:
91+
name: github-pages
92+
url: ${{ steps.deployment.outputs.page_url }}
93+
runs-on: ubuntu-latest
94+
needs: build
95+
steps:
96+
- name: Deploy to GitHub Pages
97+
id: deployment
98+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: CI
3+
4+
on:
5+
push:
6+
branches: ["*"]
7+
pull_request:
8+
branches: ["*"]
9+
10+
permissions: read-all
11+
12+
jobs:
13+
boundary-check:
14+
name: Check module boundaries
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
18+
19+
- name: Forbid cross-pollination from cadre-router
20+
run: ./scripts/check-boundaries.sh
21+
22+
# Future: add build/test jobs when dependencies are published
23+
# build:
24+
# name: Build
25+
# runs-on: ubuntu-latest
26+
# steps:
27+
# - uses: actions/checkout@v6.0.1
28+
# - uses: actions/setup-node@v4
29+
# with:
30+
# node-version: '20'
31+
# - run: npm ci
32+
# - run: npm run build
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
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+
permissions: read-all
13+
14+
jobs:
15+
analyze:
16+
runs-on: ubuntu-latest
17+
permissions:
18+
contents: read
19+
security-events: write
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
include:
24+
- language: javascript-typescript
25+
build-mode: none
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
30+
31+
- name: Initialize CodeQL
32+
uses: github/codeql-action/init@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v3.28.1
33+
with:
34+
languages: ${{ matrix.language }}
35+
build-mode: ${{ matrix.build-mode }}
36+
37+
- name: Perform CodeQL Analysis
38+
uses: github/codeql-action/analyze@5d4e8d1aca955e8d8589aabd499c5cae939e33c7 # v3.28.1
39+
with:
40+
category: "/language:${{ matrix.language }}"
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# SPDX-License-Identifier: PMPL-1.0-or-later
2+
name: Guix/Nix Package Policy
3+
on: [push, pull_request]
4+
5+
permissions: read-all
6+
7+
jobs:
8+
check:
9+
runs-on: ubuntu-latest
10+
permissions:
11+
contents: read
12+
steps:
13+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
14+
- name: Enforce Guix primary / Nix fallback
15+
run: |
16+
# Check for package manager files
17+
HAS_GUIX=$(find . -name "*.scm" -o -name ".guix-channel" -o -name "guix.scm" 2>/dev/null | head -1)
18+
HAS_NIX=$(find . -name "*.nix" 2>/dev/null | head -1)
19+
20+
# Block new package-lock.json, yarn.lock, Gemfile.lock, etc.
21+
NEW_LOCKS=$(git diff --name-only --diff-filter=A HEAD~1 2>/dev/null | grep -E 'package-lock\.json|yarn\.lock|Gemfile\.lock|Pipfile\.lock|poetry\.lock|cargo\.lock' || true)
22+
if [ -n "$NEW_LOCKS" ]; then
23+
echo "⚠️ Lock files detected. Prefer Guix manifests for reproducibility."
24+
fi
25+
26+
# Prefer Guix, fallback to Nix
27+
if [ -n "$HAS_GUIX" ]; then
28+
echo "✅ Guix package management detected (primary)"
29+
elif [ -n "$HAS_NIX" ]; then
30+
echo "✅ Nix package management detected (fallback)"
31+
else
32+
echo "ℹ️ Consider adding guix.scm or flake.nix for reproducible builds"
33+
fi
34+
35+
echo "✅ Package policy check passed"

0 commit comments

Comments
 (0)