Skip to content

Commit c70146a

Browse files
committed
chore(governance): add CONTRIBUTING.md for standards#505 gates
1 parent d865e57 commit c70146a

1 file changed

Lines changed: 72 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 72 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,72 @@
1+
<!-- SPDX-License-Identifier: MPL-2.0 -->
2+
<!-- SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -->
3+
4+
# Contributing to cicd-squabbler
5+
6+
Thanks for your interest. This repository follows the Hyperpolymath estate
7+
standards defined in [hyperpolymath/standards](https://github.com/hyperpolymath/standards).
8+
9+
## Licence
10+
11+
This project is licensed under **MPL-2.0**. By contributing you agree that
12+
your contributions are licensed under the same terms. Every source file
13+
carries an `SPDX-License-Identifier` header; keep it when editing, and add
14+
one to any new file.
15+
16+
## Development environment
17+
18+
A pinned dev shell is provided:
19+
20+
```sh
21+
nix develop # toolchain: just cargo rustc rustfmt clippy
22+
```
23+
24+
Estate policy is Guix primary / Nix fallback; this repo currently ships the
25+
Nix fallback. A `guix.scm` is welcome if you prefer the primary tier.
26+
27+
## Build and test
28+
29+
This repo uses [`just`](https://just.systems) (the estate uses Justfiles,
30+
never Makefiles). Recipes available here:
31+
32+
```sh
33+
just # list recipes
34+
just fmt # format
35+
just fmt-check # check formatting
36+
just lint # lint
37+
just test-all # run the full suite
38+
just doctor # environment diagnostics
39+
```
40+
41+
## Machine-readable artefacts
42+
43+
This repo carries `.machine_readable/` A2ML files (`STATE.a2ml`,
44+
`META.a2ml`, `ECOSYSTEM.a2ml`, `AGENTIC.a2ml`, `NEUROSYM.a2ml`,
45+
`PLAYBOOK.a2ml`). If your change alters project state, architecture, or
46+
operational steps, update the corresponding file in the same PR — CI
47+
validates them.
48+
49+
## Language policy
50+
51+
The estate restricts which languages may be used. In particular Python, Go,
52+
TypeScript, ReScript, V-lang, Java/Kotlin, Swift and Makefiles are **not**
53+
accepted in new code; AffineScript, Rust/SPARK, Zig, Deno, Gleam, Elixir,
54+
Haskell, Idris2, Agda, Julia and OCaml are. CI enforces this, so check the
55+
policy in `hyperpolymath/standards` before introducing a new language.
56+
57+
## Documentation format
58+
59+
Docs are AsciiDoc (`.adoc`) by default, including `README.adoc`. The
60+
GitHub-required community-health files stay Markdown: `SECURITY.md`,
61+
`CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `CHANGELOG.md`. Do not add a `.md`
62+
duplicate of a doc that already exists as `.adoc`.
63+
64+
## Pull requests
65+
66+
1. Branch from `main` — do not push to `main` directly; branch protection
67+
requires review and passing checks.
68+
2. Keep the change focused, and explain *why* in the PR body.
69+
3. Make sure governance CI is green. It checks documentation presence,
70+
packaging policy, secrets, licence consistency and workflow security.
71+
4. Security issues: follow `SECURITY.md` — report privately, never in a
72+
public issue.

0 commit comments

Comments
 (0)