Skip to content

Commit b5ce544

Browse files
Import glyphbase from lithoglyph monorepo (#4)
Squashed, signed extraction of `lithoglyph/glyphbase` (Airtable-mode delivery) into its reserved standalone repo, completing the split documented in the monorepo's `MOVED.md`. Template stubs superseded by real content (130 files). Merge with **squash** to keep linear history. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
1 parent 7787dbf commit b5ce544

130 files changed

Lines changed: 22329 additions & 380 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.

.editorconfig

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
# RSR-template-repo - Editor Configuration
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+
[*.ex]
24+
indent_size = 2
25+
26+
[*.exs]
27+
indent_size = 2
28+
29+
[*.zig]
30+
indent_size = 4
31+
32+
[*.ada]
33+
indent_size = 3
34+
35+
[*.adb]
36+
indent_size = 3
37+
38+
[*.ads]
39+
indent_size = 3
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+
[*.rkt]
54+
indent_size = 2
55+
56+
[*.scm]
57+
indent_size = 2
58+
59+
[*.nix]
60+
indent_size = 2
61+
62+
[Justfile]
63+
indent_style = space
64+
indent_size = 4
65+
66+
[justfile]
67+
indent_style = space
68+
indent_size = 4

.gitattributes

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: MPL-2.0
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+
22+
# Docs
23+
*.md text eol=lf diff=markdown
24+
*.adoc text eol=lf
25+
*.txt text eol=lf
26+
27+
# Data
28+
*.json text eol=lf
29+
*.yaml text eol=lf
30+
*.yml text eol=lf
31+
*.toml text eol=lf
32+
33+
# Config
34+
.gitignore text eol=lf
35+
.gitattributes text eol=lf
36+
justfile text eol=lf
37+
Makefile text eol=lf
38+
Containerfile text eol=lf
39+
40+
# Scripts
41+
*.sh text eol=lf
42+
43+
# Binary
44+
*.png binary
45+
*.jpg binary
46+
*.gif binary
47+
*.pdf binary
48+
*.woff2 binary
49+
*.zip binary
50+
*.gz binary
51+
52+
# Lock files
53+
Cargo.lock text eol=lf -diff
54+
flake.lock text eol=lf -diff

.github/PROVEN-INTEGRATION.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# proven Integration Plan
2+
3+
This document outlines the recommended [proven](https://github.com/hyperpolymath/proven) modules for Glyphbase.
4+
5+
## Recommended Modules
6+
7+
| Module | Purpose | Priority |
8+
|--------|---------|----------|
9+
| SafeTransaction | ACID transactions with isolation proofs for spreadsheet operations | High |
10+
| SafeSchema | Schema migration with compatibility proofs for table structure changes | High |
11+
| SafeOrdering | Temporal ordering with causality proofs for change tracking | High |
12+
| SafeProvenance | Change tracking with audit proofs for "who changed what when" | High |
13+
14+
## Integration Notes
15+
16+
Glyphbase as an open-source Airtable alternative that "remembers everything" requires:
17+
18+
- **SafeTransaction** ensures spreadsheet operations maintain ACID properties. Cell edits, row insertions, and bulk operations are either fully committed or fully rolled back, preventing partial state corruption.
19+
20+
- **SafeSchema** manages table schema evolution with formal compatibility guarantees. The `isBackwardCompatible` check ensures existing data remains readable after schema changes, and `MigrationChain` verifies migration sequences are contiguous.
21+
22+
- **SafeOrdering** tracks the ordering of changes with verified causality. When multiple users edit concurrently, vector clocks determine the correct merge order.
23+
24+
- **SafeProvenance** is core to Glyphbase's value proposition - tracking who made what change when. The `ProvenanceChain` provides tamper-evident history, and `Lineage` tracks how each cell value was derived.
25+
26+
These modules together enable Glyphbase's promise of complete change tracking with mathematical guarantees.
27+
28+
## Related
29+
30+
- [proven library](https://github.com/hyperpolymath/proven)
31+
- [Idris 2 documentation](https://idris2.readthedocs.io/)

.github/workflows/casket-pages.yml

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
# SPDX-License-Identifier: MPL-2.0
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@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
24+
25+
- name: Checkout casket-ssg
26+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # 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

.github/workflows/codeql.yml

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
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+
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@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # 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@cdefb33c0f6224e58673d9004f47f7cb3e328b89 # v3.28.1
39+
with:
40+
category: "/language:${{ matrix.language }}"

.github/workflows/deploy-site.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
name: Deploy Landing Page
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+
deploy:
20+
environment:
21+
name: github-pages
22+
url: ${{ steps.deployment.outputs.page_url }}
23+
runs-on: ubuntu-latest
24+
steps:
25+
- name: Checkout
26+
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4
27+
28+
- name: Convert docs to HTML
29+
run: |
30+
# Convert AsciiDoc to HTML
31+
sudo apt-get update && sudo apt-get install -y asciidoctor
32+
33+
# Convert USER-GUIDE.adoc
34+
asciidoctor -o docs/site/USER-GUIDE.html docs/USER-GUIDE.adoc
35+
36+
# Convert QUICKSTART.md to HTML
37+
echo '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>Quick Start</title>' > docs/site/QUICKSTART.html
38+
echo '<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/github-markdown-css@5/github-markdown.min.css">' >> docs/site/QUICKSTART.html
39+
echo '<style>body{max-width:800px;margin:2rem auto;padding:2rem;}</style></head>' >> docs/site/QUICKSTART.html
40+
echo '<body class="markdown-body">' >> docs/site/QUICKSTART.html
41+
42+
# Use pandoc for markdown conversion
43+
sudo apt-get install -y pandoc
44+
pandoc QUICKSTART.md -o temp.html
45+
cat temp.html >> docs/site/QUICKSTART.html
46+
47+
echo '</body></html>' >> docs/site/QUICKSTART.html
48+
rm temp.html
49+
50+
# Copy examples
51+
mkdir -p docs/site/examples
52+
cp examples/*.json docs/site/examples/
53+
54+
- name: Setup Pages
55+
uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b # v5
56+
57+
- name: Upload artifact
58+
uses: actions/upload-pages-artifact@56afc609e74202658d3ffba0e8f6dda462b719fa # v3
59+
with:
60+
path: 'docs/site'
61+
62+
- name: Deploy to GitHub Pages
63+
id: deployment
64+
uses: actions/deploy-pages@d6db90164ac5ed86f2b6aed7e0febac5b3c0c03e # v4

.github/workflows/governance.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# governance.yml — single wrapper calling the shared estate governance bundle
3+
# in hyperpolymath/standards instead of carrying per-repo copies.
4+
#
5+
# Replaces the per-repo governance scaffolding removed in the same commit:
6+
# quality.yml, guix-nix-policy.yml, npm-bun-blocker.yml, ts-blocker.yml,
7+
# security-policy.yml, rsr-antipattern.yml, wellknown-enforcement.yml,
8+
# workflow-linter.yml
9+
#
10+
# Load-bearing build/security workflows stay standalone in the repo
11+
# (rust-ci, codeql, dependabot, release, scan/mirror/pages plumbing).
12+
13+
name: Governance
14+
15+
on:
16+
push:
17+
branches: [main, master]
18+
pull_request:
19+
workflow_dispatch:
20+
21+
permissions:
22+
contents: read
23+
24+
jobs:
25+
governance:
26+
uses: hyperpolymath/standards/.github/workflows/governance-reusable.yml@main

0 commit comments

Comments
 (0)