Skip to content

Commit 69d929c

Browse files
hyperpolymathclaude
andcommitted
chore(developer-ecosystem): absorb dnfinition, drop uninitialized template scaffolds
dnfinition 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 06368eb commit 69d929c

169 files changed

Lines changed: 30562 additions & 0 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.

dnfinition/.claude/CLAUDE.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
## Machine-Readable Artefacts
2+
3+
The following files in `.machine_readable/` contain structured project metadata:
4+
5+
- `STATE.scm` - Current project state and progress
6+
- `META.scm` - Architecture decisions and development practices
7+
- `ECOSYSTEM.scm` - Position in the ecosystem and related projects
8+
- `AGENTIC.scm` - AI agent interaction patterns
9+
- `NEUROSYM.scm` - Neurosymbolic integration config
10+
- `PLAYBOOK.scm` - Operational runbook
11+
12+
---
13+
14+
# CLAUDE.md - AI Assistant Instructions
15+
16+
## Language Policy (Hyperpolymath Standard)
17+
18+
### ALLOWED Languages & Tools
19+
20+
| Language/Tool | Use Case | Notes |
21+
|---------------|----------|-------|
22+
| **ReScript** | Primary application code | Compiles to JS, type-safe |
23+
| **Deno** | Runtime & package management | Replaces Node/npm/bun |
24+
| **Rust** | Performance-critical, systems, WASM | Preferred for CLI tools |
25+
| **Tauri 2.0+** | Mobile apps (iOS/Android) | Rust backend + web UI |
26+
| **Dioxus** | Mobile apps (native UI) | Pure Rust, React-like |
27+
| **Gleam** | Backend services | Runs on BEAM or compiles to JS |
28+
| **Bash/POSIX Shell** | Scripts, automation | Keep minimal |
29+
| **JavaScript** | Only where ReScript cannot | MCP protocol glue, Deno APIs |
30+
| **Nickel** | Configuration language | For complex configs |
31+
| **Guile Scheme** | State/meta files | STATE.scm, META.scm, ECOSYSTEM.scm |
32+
| **Julia** | Batch scripts, data processing | Per RSR |
33+
| **OCaml** | AffineScript compiler | Language-specific |
34+
| **Ada** | Safety-critical systems | Where required |
35+
36+
### BANNED - Do Not Use
37+
38+
| Banned | Replacement |
39+
|--------|-------------|
40+
| TypeScript | ReScript |
41+
| Node.js | Deno |
42+
| npm | Deno |
43+
| Bun | Deno |
44+
| pnpm/yarn | Deno |
45+
| Go | Rust |
46+
| Python | Julia/Rust/ReScript |
47+
| Java/Kotlin | Rust/Tauri/Dioxus |
48+
| Swift | Tauri/Dioxus |
49+
| React Native | Tauri/Dioxus |
50+
| Flutter/Dart | Tauri/Dioxus |
51+
52+
### Mobile Development
53+
54+
**No exceptions for Kotlin/Swift** - use Rust-first approach:
55+
56+
1. **Tauri 2.0+** - Web UI (ReScript) + Rust backend, MIT/Apache-2.0
57+
2. **Dioxus** - Pure Rust native UI, MIT/Apache-2.0
58+
59+
Both are FOSS with independent governance (no Big Tech).
60+
61+
### Enforcement Rules
62+
63+
1. **No new TypeScript files** - Convert existing TS to ReScript
64+
2. **No package.json for runtime deps** - Use deno.json imports
65+
3. **No node_modules in production** - Deno caches deps automatically
66+
4. **No Go code** - Use Rust instead
67+
5. **No Python anywhere** - Use Julia for data/batch, Rust for systems, ReScript for apps
68+
6. **No Kotlin/Swift for mobile** - Use Tauri 2.0+ or Dioxus
69+
70+
### Package Management
71+
72+
- **Primary**: Guix (guix.scm)
73+
- **Fallback**: Nix (flake.nix)
74+
- **JS deps**: Deno (deno.json imports)
75+
76+
### Security Requirements
77+
78+
- No MD5/SHA1 for security (use SHA256+)
79+
- HTTPS only (no HTTP URLs)
80+
- No hardcoded secrets
81+
- SHA-pinned dependencies
82+
- SPDX license headers on all files
83+

dnfinition/.editorconfig

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

dnfinition/.gitattributes

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# SPDX-License-Identifier: AGPL-3.0-or-later
2+
# dnfinition .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

dnfinition/.githooks/pre-commit

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
#!/bin/bash
2+
# SPDX-License-Identifier: AGPL-3.0-or-later
3+
# Pre-commit hook for dnfinition quality checks
4+
5+
set -e
6+
7+
echo "Running pre-commit checks..."
8+
9+
# Check for SPDX headers in new/modified Ada files
10+
ADA_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(ads|adb)$' || true)
11+
if [ -n "$ADA_FILES" ]; then
12+
for f in $ADA_FILES; do
13+
if ! head -3 "$f" | grep -q "SPDX-License-Identifier"; then
14+
echo "Missing SPDX header: $f"
15+
exit 1
16+
fi
17+
done
18+
fi
19+
20+
# Check for SPDX headers in new/modified Elixir files
21+
EX_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(ex|exs)$' || true)
22+
if [ -n "$EX_FILES" ]; then
23+
for f in $EX_FILES; do
24+
if ! head -3 "$f" | grep -q "SPDX-License-Identifier"; then
25+
echo "Missing SPDX header: $f"
26+
exit 1
27+
fi
28+
done
29+
fi
30+
31+
# Check for unpinned GitHub Actions in workflows
32+
WF_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.github/workflows/.*\.yml$' || true)
33+
if [ -n "$WF_FILES" ]; then
34+
for f in $WF_FILES; do
35+
if grep -qE 'uses:.*@v[0-9]+$' "$f"; then
36+
echo "Unpinned GitHub Action in $f - use SHA instead of version tag"
37+
exit 1
38+
fi
39+
done
40+
fi
41+
42+
# Check for hardcoded secrets patterns
43+
SECRETS=$(git diff --cached --diff-filter=ACM -U0 | grep -E '^\+.*[Pp]assword.*=.*["\x27]' | head -1 || true)
44+
if [ -n "$SECRETS" ]; then
45+
echo "Potential hardcoded password detected!"
46+
exit 1
47+
fi
48+
49+
echo "Pre-commit checks passed"

dnfinition/.github/FUNDING.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# SPDX-License-Identifier: MPL-2.0-or-later
2+
# Funding platforms for hyperpolymath projects
3+
# See: https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/displaying-a-sponsor-button-in-your-repository
4+
5+
github: hyperpolymath
6+
ko_fi: hyperpolymath
7+
liberapay: hyperpolymath
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
---
2+
name: Bug report
3+
about: Create a report to help us improve
4+
title: "[Bug]: "
5+
labels: 'bug, priority: unset, triage'
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.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
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+
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
name: Documentation
3+
about: Report unclear, missing, or incorrect documentation
4+
title: "[DOCS]: "
5+
labels: 'documentation, priority: unset, triage'
6+
assignees: ''
7+
8+
---
9+
10+
name: Documentation
11+
description: Report unclear, missing, or incorrect documentation
12+
title: "[Docs]: "
13+
labels: ["documentation", "triage"]
14+
body:
15+
- type: markdown
16+
attributes:
17+
value: |
18+
Help us improve our documentation by reporting issues or gaps.
19+
20+
- type: dropdown
21+
id: type
22+
attributes:
23+
label: Documentation issue type
24+
options:
25+
- Missing (documentation doesn't exist)
26+
- Incorrect (information is wrong)
27+
- Unclear (confusing or hard to follow)
28+
- Outdated (no longer accurate)
29+
- Typo or grammar
30+
validations:
31+
required: true
32+
33+
- type: input
34+
id: location
35+
attributes:
36+
label: Location
37+
description: Where is this documentation? (URL, file path, or section name)
38+
placeholder: README.adoc, section "Installation"
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
id: description
44+
attributes:
45+
label: Description
46+
description: What's the problem with the current documentation?
47+
placeholder: Describe what's wrong or missing
48+
validations:
49+
required: true
50+
51+
- type: textarea
52+
id: suggestion
53+
attributes:
54+
label: Suggested improvement
55+
description: How should it be fixed or improved?
56+
placeholder: The documentation should say...
57+
validations:
58+
required: false
59+
60+
- type: checkboxes
61+
id: contribution
62+
attributes:
63+
label: Contribution
64+
options:
65+
- label: I would be willing to submit a PR to fix this
66+
required: false

0 commit comments

Comments
 (0)