Skip to content

Commit d90a651

Browse files
chore(governance): land missing docs/packaging before the standards#505 gates bite (#17)
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** (`none detected`), 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 d2ac001 commit d90a651

2 files changed

Lines changed: 84 additions & 0 deletions

File tree

CONTRIBUTING.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
<!-- SPDX-License-Identifier: MPL-2.0 -->
2+
<!-- SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -->
3+
4+
# Contributing to technical-notes
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: git
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+
## Language policy
28+
29+
The estate restricts which languages may be used. In particular Python, Go,
30+
TypeScript, ReScript, V-lang, Java/Kotlin, Swift and Makefiles are **not**
31+
accepted in new code; AffineScript, Rust/SPARK, Zig, Deno, Gleam, Elixir,
32+
Haskell, Idris2, Agda, Julia and OCaml are. CI enforces this, so check the
33+
policy in `hyperpolymath/standards` before introducing a new language.
34+
35+
## Documentation format
36+
37+
Docs are AsciiDoc (`.adoc`) by default, including `README.adoc`. The
38+
GitHub-required community-health files stay Markdown: `SECURITY.md`,
39+
`CONTRIBUTING.md`, `CODE_OF_CONDUCT.md`, `CHANGELOG.md`. Do not add a `.md`
40+
duplicate of a doc that already exists as `.adoc`.
41+
42+
## Pull requests
43+
44+
1. Branch from `main` — do not push to `main` directly; branch protection
45+
requires review and passing checks.
46+
2. Keep the change focused, and explain *why* in the PR body.
47+
3. Make sure governance CI is green. It checks documentation presence,
48+
packaging policy, secrets, licence consistency and workflow security.
49+
4. Security issues: follow `SECURITY.md` — report privately, never in a
50+
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 technical-notes.
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+
# No build toolchain was detected in this repository, so the shell
12+
# carries only git. Add packages here as the repo grows one.
13+
#
14+
# nix develop # enter the shell
15+
# nix flake check # verify this file evaluates (run before committing)
16+
{
17+
description = "technical-notes 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; [ git ];
31+
};
32+
});
33+
};
34+
}

0 commit comments

Comments
 (0)