Skip to content

Commit a6a62b6

Browse files
authored
docs: public surface polish — CI badge, README evidence hub, Nyquist HexDoc pointer (#26)
- README: add GitHub Actions CI badge; shorten release-evidence section; link to docs hub; use {:sigra, ~> 0.2} - guides: replace internal Phase 9 wording with audit logging - docs: add nyquist-posture-matrix.md (pointer to canonical .planning file on GitHub) - mix.exs: ExDoc extras use docs stub instead of .planning path; simplify Docs group regex - MAINTAINING: canonical matrix link to GitHub blob + link to packaged overview Made-with: Cursor
1 parent dd3ddc4 commit a6a62b6

5 files changed

Lines changed: 27 additions & 16 deletions

File tree

MAINTAINING.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ The harness shells out to **`mix deps.get`** inside a generated tmp Phoenix app
3737

3838
This section is the **maintainer front door** for how **Nyquist-style** evidence is read across GA phases **41-backup-codes** through **44-mfa-account-api**. It states what the posture matrix **does** guarantee (honest disposition + repo-relative evidence pointers + reopen triggers) and what it **does not** (it does not replace each phase’s **`*-VALIDATION.md`** / **`*-VERIFICATION.md`** as the source of **`nyquist_compliant:`** and waiver text).
3939

40-
**Canonical detail** — full table, paths, and **v1.5** `ref:` block — lives in **[`.planning/nyquist-phases-41-44-matrix.md`](.planning/nyquist-phases-41-44-matrix.md)**. If this **`MAINTAINING.md`** summary ever disagrees with that file, **the matrix file wins**.
40+
**Canonical detail** — full table, paths, and **v1.5** `ref:` block — lives in **[`.planning/nyquist-phases-41-44-matrix.md`](https://github.com/szTheory/sigra/blob/main/.planning/nyquist-phases-41-44-matrix.md)** on GitHub (not shipped in the Hex package tarball). A short HexDocs-facing overview is **[`docs/nyquist-posture-matrix.md`](docs/nyquist-posture-matrix.md)**. If this **`MAINTAINING.md`** summary ever disagrees with the **`.planning/`** matrix file, **the matrix file wins**.
4141

4242
**Reopen (installer-class drift):** when **`priv/templates/sigra.install/`** or **`lib/sigra/install/`** change, re-run the same scoped gate CI uses: **`PGUSER=postgres PGPASSWORD=postgres PGHOST=localhost MIX_ENV=test mix ci.install_golden`**. Phase-specific scoped tests remain defined in each phase’s **`41-backup-codes`** / **`44-mfa-account-api`** **`*-VERIFICATION.md`** files (see the matrix).
4343

README.md

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
[![Hex version](https://img.shields.io/hexpm/v/sigra.svg)](https://hex.pm/packages/sigra)
44
[![Docs](https://img.shields.io/badge/hexdocs-api%20%26%20guides-5865F2)](https://hexdocs.pm/sigra)
5+
[![CI](https://github.com/szTheory/sigra/actions/workflows/ci.yml/badge.svg)](https://github.com/szTheory/sigra/actions/workflows/ci.yml)
56

67
**Production-minded authentication for Phoenix 1.8+** — sessions, passwords, email flows, OAuth, MFA, passkeys, optional organizations and admin tooling — without treating security-sensitive code as throwaway scaffolding.
78

@@ -62,7 +63,7 @@ flowchart TD
6263
1. **Dependency** (`mix.exs`):
6364

6465
```elixir
65-
{:sigra, "~> 0.2.0"}
66+
{:sigra, "~> 0.2"}
6667
```
6768

6869
2. **Scaffold** (from app root; names must match your domain):
@@ -159,19 +160,14 @@ One clause each — depth lives in HexDocs and the guides linked in the next sec
159160
| **Enumeration** | Safer defaults on account discovery flows (details in HexDocs per flow). |
160161
| **Step-up** | Sudo / MFA challenge patterns integrate with Phoenix plugs and LiveView mounts as generated. |
161162

162-
For threat-model detail and per-flow guarantees, use **HexDocs** and the verification narratives shipped with each release milestone — the README stays a map, not a spec.
163+
For threat-model detail and per-flow guarantees, use **HexDocs** and the guides above — the README stays a map, not a spec.
163164

165+
## Release evidence (maintainers and auditors)
164166

165-
## Production readiness & GA evidence
167+
Sigra keeps an **evidence hub** (what we ran versus waived for GA cuts, how CI maps to human UAT rows, and pointers to planning artifacts on GitHub). That material is **not** a compliance certificate for your application — integration and deployment risk stay with the **host**.
166168

167-
Sigra's **Executed** items are procedures or artifacts we actually ran for the v1.4 milestone; **Waived** items are matrix rows we consciously did not re-run for that cut, with documented substitutes where applicable. Integration, deployment, and product-specific threats remain with the **host application**—this narrative is **not a compliance certification**, only an honest map to evidence.
168-
169-
- [v1.4 requirements closure (tag snapshot)](https://github.com/sztheory/sigra/blob/v0.2.0/.planning/milestones/v1.4-REQUIREMENTS.md)
170-
- [v1.4 GA / UAT matrix (tag snapshot)](https://github.com/sztheory/sigra/blob/v0.2.0/.planning/v1.4-GA-UAT.md)
171-
- [Milestone index (tag snapshot)](https://github.com/sztheory/sigra/blob/v0.2.0/.planning/MILESTONES.md)
172-
- [How UAT rows relate to CI substitutes](uat-ci-coverage.md) (source: `docs/uat-ci-coverage.md`)
173-
174-
On **hexdocs.pm/sigra**, the packaged hub lives at [`ga-evidence` for 0.2.0](https://hexdocs.pm/sigra/0.2.0/ga-evidence.html) so GitHub-first readers and HexDocs readers see the same pointers.
169+
- **[GA evidence and audit posture](docs/ga-evidence.md)** — router page; same content ships on [HexDocs](https://hexdocs.pm/sigra/ga-evidence.html).
170+
- **[UAT versus CI coverage](docs/uat-ci-coverage.md)** — machine versus human boundaries.
175171

176172
Coordinated disclosure: [SECURITY.md](SECURITY.md).
177173

docs/nyquist-posture-matrix.md

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Nyquist posture matrix (maintainer)
2+
3+
This page is a **HexDocs-packaged pointer** for the Nyquist-style **41–44** posture grid. It does not duplicate the full table.
4+
5+
## Canonical source
6+
7+
The **authoritative** matrix (all rows, `ref:` block, reopen triggers, and links to phase `VERIFICATION` / `VALIDATION` paths) lives in the repository at:
8+
9+
**[`.planning/nyquist-phases-41-44-matrix.md`](https://github.com/szTheory/sigra/blob/main/.planning/nyquist-phases-41-44-matrix.md)** on GitHub.
10+
11+
That path is **not** part of the Hex **package** tarball; clone the repo or use the link above. If anything here or in **[MAINTAINING.md](MAINTAINING.html)** disagrees with that file, **the `.planning/` matrix wins** (see **MAINTAINING.md** § Nyquist policy).
12+
13+
## Related
14+
15+
- [GA evidence and audit posture](ga-evidence.html)
16+
- [UAT versus CI coverage](uat-ci-coverage.html)

guides/introduction/installation.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ The generator also patches your router with the auth pipelines and scopes. Re-ru
5858

5959
mix ecto.migrate
6060

61-
This creates the `users` and `users_tokens` tables (plus any optional tables like `audit_events` if you enabled Phase 9 audit logging).
61+
This creates the `users` and `users_tokens` tables (plus any optional tables such as `audit_events` if you enabled **audit logging** in the installer).
6262

6363
## Smoke test
6464

mix.exs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -159,8 +159,6 @@ defmodule Sigra.MixProject do
159159
"CONTRIBUTING.md",
160160
"SECURITY.md",
161161
"MAINTAINING.md",
162-
# Maintainer-only; linked from MAINTAINING.md — must be an extra so ExDoc validates the path under --warnings-as-errors.
163-
".planning/nyquist-phases-41-44-matrix.md",
164162
"LICENSE",
165163
"CHANGELOG.md",
166164
"guides/introduction/installation.md",
@@ -177,6 +175,7 @@ defmodule Sigra.MixProject do
177175
"docs/audit-semantics.md",
178176
"docs/uat-ci-coverage.md",
179177
"docs/ga-evidence.md",
178+
"docs/nyquist-posture-matrix.md",
180179
"docs/NEXT-STEPS-MANUAL.md",
181180
"guides/recipes/testing.md",
182181
"guides/recipes/subdomain-auth.md",
@@ -189,7 +188,7 @@ defmodule Sigra.MixProject do
189188
Introduction: ~r{guides/introduction/.?},
190189
Flows: ~r{guides/flows/.?},
191190
Recipes: ~r{guides/recipes/.?},
192-
Docs: ~r{^docs/|^SECURITY\.md$|^\.planning/nyquist-phases-41-44-matrix\.md$}
191+
Docs: ~r{^docs/|^SECURITY\.md$}
193192
],
194193
groups_for_modules: [
195194
Core: [Sigra, Sigra.Auth, Sigra.Config, Sigra.Crypto],

0 commit comments

Comments
 (0)