Skip to content

Commit fa20bd0

Browse files
chore(governance): land missing docs/packaging before the standards#505 gates bite (#29)
Remediates this repo against the two governance gates promoted from advisory to blocking in [hyperpolymath/standards#513](hyperpolymath/standards#513) (closing standards#505). Those gates previously **could not fail**: the docs check only emitted `::warning::`, and the package-policy job ended in an unconditional `✅ Package policy check passed`. They are now real, with a grace window — they begin **blocking on 2026-08-21**. This repo was measured as non-compliant, so this PR lands the missing files ahead of that date. **Added here:** `CONTRIBUTING + packaging` ### `flake.nix` A **dev shell**, not a package build. Estate policy is Guix primary / Nix fallback; this is the fallback tier, and a `guix.scm` is welcome later to move to the primary. - Packages mirror the tooling **actually present in this repo** (`just rust`), not a generic default. - `nixpkgs` is pinned to an exact revision per the estate SHA-pinning rule. - **Verified**: `nix flake check` passes (nix 2.35.1). Every package name was confirmed to exist in the pinned revision before generation — nothing here is guessed. ### `CONTRIBUTING.md` Markdown by estate rule (it is on the GitHub-required community-health list, unlike `README.adoc`). Content is derived from this repo, not boilerplate: the build section lists **only `just` recipes that actually exist here**, and the A2ML section appears only if `.machine_readable/` is present. --- Part of an estate-wide sweep; 63 repos were identified as non-compliant. Third-party/forked repos (`HOL`, `awesome-*`, `lua-filters`) were **excluded** per the licence policy's do-not-touch rule. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
1 parent d0fc38c commit fa20bd0

2 files changed

Lines changed: 106 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 coord-tui
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.

flake.nix

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# SPDX-License-Identifier: MPL-2.0
2+
# SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell
3+
#
4+
# Development environment for coord-tui.
5+
#
6+
# Estate policy is Guix primary / Nix fallback (hyperpolymath/standards).
7+
# This is the Nix fallback tier. It is a dev shell, not a package build:
8+
# it declares the toolchain needed to work on this repo, pinned to an
9+
# exact nixpkgs revision per the estate SHA-pinning rule.
10+
#
11+
# Packages mirror the build tooling actually present in this repo
12+
# (just rust) — not a generic estate default.
13+
#
14+
# nix develop # enter the shell
15+
# nix flake check # verify this file evaluates (run before committing)
16+
{
17+
description = "coord-tui development environment";
18+
19+
inputs.nixpkgs.url = "github:NixOS/nixpkgs/b134951a4c9f3c995fd7be05f3243f8ecd65d798";
20+
21+
outputs = { self, nixpkgs }:
22+
let
23+
systems = [ "x86_64-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
24+
forAllSystems = f:
25+
nixpkgs.lib.genAttrs systems (system: f nixpkgs.legacyPackages.${system});
26+
in
27+
{
28+
devShells = forAllSystems (pkgs: {
29+
default = pkgs.mkShell {
30+
packages = with pkgs; [ just cargo rustc rustfmt clippy ];
31+
};
32+
});
33+
};
34+
}

0 commit comments

Comments
 (0)