Skip to content

Commit 3c3b0ba

Browse files
committed
chore: update META.scm with ecosystem metadata
1 parent 8e18cc2 commit 3c3b0ba

File tree

1 file changed

+85
-10
lines changed

1 file changed

+85
-10
lines changed

META.scm

Lines changed: 85 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,99 @@
11
;; SPDX-License-Identifier: AGPL-3.0-or-later
22
;; SPDX-FileCopyrightText: 2025 Jonathan D.A. Jewell
3-
;;; META.scm — fogbinder
3+
4+
;;; META.scm — Architecture Decisions and Development Practices
5+
;;; fogbinder
6+
;;; Reference: https://github.com/hyperpolymath/META.scm
47

58
(define-module (fogbinder meta)
6-
#:export (architecture-decisions development-practices design-rationale))
9+
#:export (architecture-decisions
10+
development-practices
11+
design-rationale))
12+
13+
;;;============================================================================
14+
;;; Architecture Decision Records (ADR)
15+
;;; Following MADR format in structured S-expression form
16+
;;;============================================================================
717

818
(define architecture-decisions
919
'((adr-001
10-
(title . "RSR Compliance")
20+
(title . "Initial Architecture and RSR Compliance")
1121
(status . "accepted")
1222
(date . "2025-12-15")
1323
(context . "link:https://github.com/hyperpolymath/rhodium-standard-repositories[image:badges/rhodium.svg[RSR Rhodium,align=center]]")
14-
(decision . "Follow Rhodium Standard Repository guidelines")
15-
(consequences . ("RSR Gold target" "SHA-pinned actions" "SPDX headers" "Multi-platform CI")))))
24+
(decision . "Establish foundational architecture following Rhodium Standard Repository guidelines with multi-platform CI/CD, SHA-pinned actions, and SPDX headers")
25+
(consequences . ("RSR Gold compliance target"
26+
"SHA-pinned GitHub Actions for security"
27+
"SPDX license headers on all source files"
28+
"Multi-platform CI/CD (GitHub, GitLab, Bitbucket)"
29+
"OpenSSF Scorecard compliance")))))
30+
31+
;;;============================================================================
32+
;;; Development Practices
33+
;;; Codified standards for this repository
34+
;;;============================================================================
1635

1736
(define development-practices
18-
'((code-style (languages . ("CSS" "JavaScript" "Just" "Nickel" "Nix" "ReScript" "Rust" "Scheme" "TLA")) (formatter . "auto-detect") (linter . "auto-detect"))
19-
(security (sast . "CodeQL") (credentials . "env vars only"))
20-
(testing (coverage-minimum . 70))
21-
(versioning (scheme . "SemVer 2.0.0"))))
37+
'((code-style
38+
(languages . ("CSS" "JavaScript" "Just" "Nickel" "Nix" "ReScript" "Rust" "Scheme" "Shell" "TLA"))
39+
(formatter . "auto-detect")
40+
(linter . "auto-detect")
41+
(line-length . 100)
42+
(indent . "spaces")
43+
(indent-size . 2))
44+
45+
(security
46+
(sast . "CodeQL + Semgrep")
47+
(dependency-scanning . "Dependabot + OSSF Scorecard")
48+
(credentials . "Environment variables only, never committed")
49+
(input-validation . "Whitelist + schema validation at boundaries")
50+
(license-compliance . "AGPL-3.0-or-later"))
51+
52+
(testing
53+
(framework . "language-native")
54+
(coverage-minimum . 70)
55+
(unit-tests . "Required for business logic")
56+
(integration-tests . "Required for API boundaries")
57+
(property-testing . "Where applicable"))
58+
59+
(versioning
60+
(scheme . "Semantic Versioning 2.0.0")
61+
(changelog . "Keep a Changelog format")
62+
(release-process . "GitHub releases with auto-generated notes"))
63+
64+
(documentation
65+
(format . "AsciiDoc preferred, Markdown accepted")
66+
(api-docs . "Language-native doc comments")
67+
(adr-location . "META.scm"))
68+
69+
(branching
70+
(strategy . "GitHub Flow")
71+
(main-branch . "main")
72+
(pr-required . #t))))
73+
74+
;;;============================================================================
75+
;;; Design Rationale
76+
;;; Explains the "why" behind technical choices
77+
;;;============================================================================
2278

2379
(define design-rationale
24-
'((why-rsr "RSR ensures consistency, security, and maintainability.")))
80+
'((why-rsr
81+
"Following Rhodium Standard Repositories (RSR) ensures consistency,
82+
security, and maintainability across the hyperpolymath ecosystem.
83+
RSR provides: SHA-pinned actions, SPDX headers, OpenSSF Scorecard
84+
compliance, and multi-platform CI/CD. This creates a unified
85+
approach to quality across all repositories.")
86+
87+
(why-agpl
88+
"AGPL-3.0-or-later chosen to ensure derivative works remain open
89+
source while allowing integration with MIT/BSD libraries. The
90+
copyleft provision protects community contributions and ensures
91+
improvements flow back to the ecosystem.")
92+
93+
(why-polyglot
94+
"Language selection based on domain fit: Rust for performance-critical
95+
paths, Elixir for concurrent services, Julia for numerical computing,
96+
ReScript for type-safe frontends, Ada/SPARK for formally verified code.
97+
Each language is chosen for its strengths in its domain.")))
98+
99+
;;; End of META.scm

0 commit comments

Comments
 (0)