Skip to content

Commit 40a2188

Browse files
docs: finish instantiating the RSR docs skeleton (#22)
## What This repo was minted from the RSR template and got a docs skeleton (docs/architecture.adoc, docs/contributing.adoc, docs/usage.adoc, docs/troubleshooting.adoc, ADR 0001) adopted wholesale in #11, but the skeleton was never actually filled in — it still carried `<angle bracket>` placeholder tokens and generic boilerplate describing a built/tested software product (`just` recipes, an HTTP API, Rust source paths) that has never existed in this repo. `technical-notes` is, in fact, a documentation archive: short citable technical notes, individually deposited on Zenodo with a DOI (see README.md). No source code, build system, or test suite. This PR rewrites the process docs to say that, plainly and minimally, instead of describing a fictional product. ## Changes - `docs/architecture.adoc`, `docs/contributing.adoc`, `docs/usage.adoc`, `docs/troubleshooting.adoc`: replaced unfilled placeholders and fictional software-product content with a truthful description of the actual publishing/citation process. Fixed the stray `:revdate: 2026-MM-DD` placeholders. Dropped a dead link to a nonexistent `SECURITY.md`. - `ARCHITECTURE.md`, `GOVERNANCE.md`, `MAINTAINERS` (repo root): these were 100% unedited generic scaffold text (mentions `src/`, `tests/`, `scripts/`, `config/`, "public APIs", multi-maintainer RFC process) that never matched this repo. Rewritten to match reality: single maintainer, no software architecture. - `MAINTAINERS`, `.github/CODEOWNERS`, `.github/funding.yml`: these pointed at `@metadatastician`, the RSR template's literal default owner value, never swapped for this repo's real owner. Corrected to `@hyperpolymath`, which matches every commit author and existing SPDX `FileCopyrightText` in this repo. - `mise.toml`: trimmed from a full generic multi-language toolchain list (node/python/go/java/rust/…) down to what this repo actually needs — `git` and `typst` (for reproducing a note's rendered PDF). ## Not touched `flake.nix`, `.tool-versions` (not present), `.editorconfig`, `.gitattributes`, `.gitignore` — excluded per estate convention. `README.md`'s CC-BY-4.0 licence line for note *content* was left alone: it's consistent with `.zenodo.json` and is a separate, intentional licence from the MPL-2.0/CC-BY-SA-4.0 covering this repo's own tooling/process docs. ## Not applicable here No literal `{{...}}` mustache placeholders, `scripts/validate-template.sh`, `tests/e2e/template_instantiation_test.sh`, `justfile`, or `.zig` sources exist in this checkout, so those parts of the standard instantiation cure don't apply to this repo. ## Verification - `grep -rn '{{' .` (excluding GitHub Actions `${{ }}` expressions): clean. - `grep -rn 'metadatastician'`: clean. - `grep -rn 'MM-DD'`: clean. - Remaining `<...>` placeholders in docs: only one intentional notational use (`zenodo.<version>` describing the DOI *format*, not an unfilled field). - All three `.github/workflows/*.yml` files parse as valid YAML (`python3 -c "import yaml; yaml.safe_load(...)"`), each with at least one job — unchanged by this PR, verified as a regression check. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
1 parent 15818af commit 40a2188

11 files changed

Lines changed: 235 additions & 331 deletions

.github/CODEOWNERS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Code Owners
22

33
# Default: All contributors with write access are code owners
4-
* @metadatastician
4+
* @hyperpolymath
55

66
# For specific paths, add explicit owners below
77
# Example:

.github/funding.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
# Funding Configuration
22
# See: https://docs.github.com/en/repositories/managing-your-repositorys-custom-fields/displaying-a-sponsor-button-in-your-repository
33

4-
github: metadatastician
4+
github: hyperpolymath

ARCHITECTURE.md

Lines changed: 43 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,47 +1,59 @@
1-
# Architecture
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath)
4+
-->
25

3-
## Overview
6+
# Architecture
47

5-
This repository follows a modular, maintainable architecture designed for clarity, scalability, and long-term sustainability.
8+
`technical-notes` is a documentation archive, not a software project:
9+
it holds short, citable technical notes (Markdown, optionally with a
10+
Typst source and rendered PDF) that are individually deposited on
11+
Zenodo with a DOI. There is no source code, no build system, and no
12+
runtime component.
613

7-
## Directory Structure
14+
## Layout
815

916
```
1017
.
11-
├── src/ # Source code
12-
├── tests/ # Test suites
13-
├── docs/ # Documentation
14-
├── scripts/ # Utility scripts
15-
├── config/ # Configuration files
16-
├── LICENSE # License file
17-
├── LICENSES/ # Full license texts
18-
└── README.adoc # Project documentation
18+
├── README.md # index of published notes (title, date, DOI)
19+
├── <note-slug>.md # note source (Markdown)
20+
├── <note-slug>.pdf # rendered note (optional, Typst-produced)
21+
├── <note-slug>.typ # Typst source for the PDF (optional)
22+
├── docs/ # process documentation (this file's siblings)
23+
├── LICENSE / LICENSES/ # MPL-2.0 (repo tooling/process docs) +
24+
│ # CC-BY-SA-4.0; individual notes carry
25+
│ # their own licence at Zenodo-deposit time
26+
└── .github/ # CI wrappers (governance, security scan)
1927
```
2028

21-
## Design Principles
22-
23-
- **Separation of Concerns**: Each module has a single responsibility
24-
- **Testability**: Code is written to be easily testable
25-
- **Documentation**: All public APIs are documented
26-
- **Configuration**: Environment-specific settings are externalized
29+
## The invariant
2730

28-
## Dependencies
31+
Every note listed in the README resolves to a real, citable Zenodo
32+
record. If that link breaks, the repo has failed at its one job.
2933

30-
- External dependencies are minimized and clearly declared
31-
- Version pinning is used for reproducibility
34+
## Publishing flow
3235

33-
## Security Considerations
36+
There is no runtime to diagram; the only "flow" is authorial:
3437

35-
- Sensitive data is never committed to the repository
36-
- Secrets are managed through environment variables or secure vaults
37-
- Regular dependency audits are performed
38+
```
39+
draft note (.md [+ .typ -> .pdf])
40+
|
41+
v
42+
README table entry (title, date, concept DOI, version DOI)
43+
|
44+
v
45+
Zenodo deposit (direct API today; GitHub Release once the
46+
Zenodo-GitHub integration is enabled — see README § Zenodo archiving)
47+
```
3848

39-
## Maintainability
49+
## Out of scope
4050

41-
- Code follows consistent style guidelines
42-
- Pull requests require review and CI checks
43-
- Issues and discussions are tracked transparently
51+
* No source code, package, or binary is built or shipped from this repo.
52+
* No API, service, or CLI.
53+
* No automated test suite — there is no code to exercise.
4454

45-
---
55+
## See also
4656

47-
*Last updated: 2026-07-18*
57+
* [docs/usage.adoc](docs/usage.adoc) — how to cite a note.
58+
* [docs/contributing.adoc](docs/contributing.adoc) — how to add a new note.
59+
* [docs/decisions/](docs/decisions/) — ADRs, historical record of why this shape.

GOVERNANCE.md

Lines changed: 36 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1,60 +1,49 @@
1-
# Governance
2-
3-
## Overview
4-
5-
This project is governed by the following principles and structures to ensure transparent, inclusive, and effective decision-making.
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath)
4+
-->
65

7-
## Roles and Responsibilities
8-
9-
### Maintainers
6+
# Governance
107

11-
Maintainers are responsible for:
12-
- Reviewing and merging pull requests
13-
- Managing releases and versioning
14-
- Ensuring code quality and standards
15-
- Triaging issues and bug reports
16-
- Community engagement and support
8+
`technical-notes` is a single-maintainer repository in the
9+
`hyperpolymath` estate. There is no multi-maintainer or RFC process
10+
here; estate-wide policy lives in
11+
[`hyperpolymath/standards`](https://github.com/hyperpolymath/standards).
1712

18-
### Contributors
13+
## Maintainer
1914

20-
Contributors are expected to:
21-
- Follow the code of conduct
22-
- Submit well-documented pull requests
23-
- Write tests for new functionality
24-
- Maintain existing tests
25-
- Update documentation as needed
15+
See [`MAINTAINERS`](MAINTAINERS) for who currently maintains this repo.
2616

27-
## Decision Making
17+
## Decision making
2818

29-
### Minor Changes
30-
- Can be made by any maintainer
31-
- Include bug fixes, documentation updates, dependency updates
19+
The maintainer accepts, revises, or declines contributions directly.
20+
A non-trivial process change — how notes are drafted, versioned, or
21+
archived — is recorded as an ADR in
22+
[`docs/decisions/`](docs/decisions/) rather than decided ad hoc.
3223

33-
### Major Changes
34-
- Require discussion in issues or pull requests
35-
- Include new features, architectural changes, API changes
36-
- Need approval from at least 2 maintainers
24+
## Licensing
3725

38-
### Breaking Changes
39-
- Require RFC (Request for Comments) process
40-
- Need approval from majority of maintainers
41-
- Must include migration guide
26+
* Repository tooling and process documentation: MPL-2.0 or
27+
CC-BY-SA-4.0 per the SPDX header on each file (see `LICENSE` /
28+
`LICENSES/`).
29+
* Each published note carries its own licence, set at Zenodo-deposit
30+
time and recorded in that note's Zenodo metadata (see the root
31+
`README.md` § Licence).
4232

43-
## Code of Conduct
33+
## CI-enforced governance
4434

45-
All participants are expected to follow our Code of Conduct. Violations can be reported to the maintainers.
35+
SPDX-header presence, licence consistency, secrets scanning, and
36+
workflow security are enforced by the shared reusable workflow in
37+
`hyperpolymath/standards`; see
38+
[`.github/workflows/governance.yml`](.github/workflows/governance.yml)
39+
and
40+
[`.github/workflows/hypatia-scan.yml`](.github/workflows/hypatia-scan.yml).
4641

4742
## Communication
4843

49-
- **Issues**: For bug reports and feature requests
50-
- **Discussions**: For questions and general discussion
51-
- **Pull Requests**: For code contributions
52-
53-
## Licensing
54-
55-
All contributions are made under the terms of the repository's LICENSE file.
56-
By submitting a pull request, you agree to license your contributions accordingly.
57-
58-
---
59-
60-
*Last updated: 2026-07-18*
44+
* **Issues**: bugs or gaps in this repo — broken DOI links, wrong
45+
citations, process gaps.
46+
* **Pull requests**: proposed changes; see
47+
[`CONTRIBUTING.md`](CONTRIBUTING.md).
48+
* **Security**: follow estate policy in `hyperpolymath/standards`
49+
do not file security-relevant findings as public issues.

MAINTAINERS

Lines changed: 11 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
<!--
2+
SPDX-License-Identifier: CC-BY-SA-4.0
3+
SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath)
4+
-->
5+
16
# Maintainers
27

38
This file lists the current maintainers of this project.
@@ -6,38 +11,15 @@ This file lists the current maintainers of this project.
611

712
| Name | GitHub | Role | Since |
813
|------|--------|------|-------|
9-
| Metadatastician | @metadatastician | Primary | Project Start |
14+
| Jonathan D.A. Jewell | [@hyperpolymath](https://github.com/hyperpolymath) | Primary | Project start |
1015

1116
## Emeritus Maintainers
1217

1318
None at this time.
1419

15-
## Becoming a Maintainer
16-
17-
To become a maintainer:
18-
19-
1. Demonstrate consistent, high-quality contributions
20-
2. Show understanding of the project's goals and architecture
21-
3. Be active in code reviews and community discussions
22-
4. Be nominated by an existing maintainer
23-
5. Be approved by consensus of existing maintainers
24-
25-
## Maintainer Responsibilities
26-
27-
- Reviewing and merging pull requests
28-
- Managing releases
29-
- Triaging issues
30-
- Enforcing code standards
31-
- Mentoring new contributors
32-
- Participating in decision-making
33-
34-
## Maintainer Expectations
35-
36-
- Respond to issues and PRs in a timely manner
37-
- Follow the code of conduct
38-
- Be transparent in decision-making
39-
- Communicate clearly and respectfully
40-
41-
---
20+
## Notes
4221

43-
*Last updated: 2026-07-18*
22+
This is currently a single-maintainer repository, so there is no
23+
formal "becoming a maintainer" process. See
24+
[`GOVERNANCE.md`](GOVERNANCE.md) for how decisions are made and
25+
[`CONTRIBUTING.md`](CONTRIBUTING.md) for how to propose a change.

docs/architecture.adoc

Lines changed: 39 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -1,78 +1,76 @@
11
// SPDX-License-Identifier: CC-BY-SA-4.0
22
// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell (hyperpolymath) <6759885+hyperpolymath@users.noreply.github.com>
33
= Architecture — technical-notes
4-
:revdate: 2026-MM-DD
4+
:revdate: 2026-07-27
55

66
== System overview
77

8-
One paragraph: what this project does and what it does not do. State the
9-
*invariant* — the property that, if violated, would make the whole project
10-
pointless. Future maintainers will read this paragraph first.
8+
`technical-notes` is a documentation archive, not a running system. It
9+
holds short, citable technical notes (Markdown, optionally with a Typst
10+
source and rendered PDF) that are individually deposited on Zenodo with a
11+
DOI. The invariant that matters: every note listed in the README resolves
12+
to a real, citable Zenodo record. If that link breaks, the repo has
13+
failed at its one job.
1114

1215
== Component diagram
1316

14-
Replace this section with an ASCII or Mermaid diagram. Keep it under 20
15-
lines — anything bigger belongs in `architecture/`.
17+
There is no runtime component graph. The only "flow" is authorial:
1618

1719
[source]
1820
----
19-
+------------------+ +------------------+
20-
| Component A | ---> | Component B |
21-
+------------------+ +------------------+
22-
|
23-
v
24-
+------------------+
25-
| Component C |
26-
+------------------+
21+
draft note (.md [+ .typ -> .pdf])
22+
|
23+
v
24+
README table entry (title, date, concept DOI, version DOI)
25+
|
26+
v
27+
Zenodo deposit (direct API today; GitHub Release once the
28+
Zenodo-GitHub integration is enabled)
2729
----
2830

2931
== Data flow
3032

31-
For each external input, describe:
32-
33-
* **Source**: where it comes from.
34-
* **Validation**: what guarantees we enforce on entry.
35-
* **Transformation**: high-level processing stages.
36-
* **Sink**: where the result goes.
33+
* **Source**: the maintainer's own drafting — no external input feed.
34+
* **Validation**: none automated beyond estate governance CI (SPDX
35+
headers, licence consistency, secrets scanning — see
36+
`.github/workflows/governance.yml` and
37+
`.github/workflows/hypatia-scan.yml`).
38+
* **Transformation**: optional Typst → PDF render for notes that ship one.
39+
* **Sink**: Zenodo (DOI-bearing deposit) and the README index.
3740

3841
== Key invariants
3942

40-
Enumerate the load-bearing invariants of the system. Each should have:
41-
42-
. A one-line statement.
43-
. The code location(s) that enforce it.
44-
. The failure mode if the invariant is violated.
45-
46-
Example:
47-
4843
[cols="1,2,2,2", options="header"]
4944
|===
5045
| # | Invariant | Enforced at | Failure mode
5146

5247
| 1
53-
| All HTTP requests carry a valid `X-Request-ID`.
54-
| `src/middleware/request_id.rs`
55-
| Logs become unjoinable; correlation breaks.
48+
| Every README row has a resolvable DOI link.
49+
| Manual, at note-publish time.
50+
| Citation breaks; the note becomes unfindable via its concept DOI.
5651

5752
| 2
58-
| The output buffer is always flushed before exit.
59-
| `src/main.rs:88-92` (Drop impl)
60-
| Last ~16KB of log lost on crash.
53+
| Every published note's licence matches its Zenodo deposit metadata.
54+
| `.zenodo.json` for the deposited record; manual cross-check.
55+
| Licence mismatch between GitHub and the archival copy.
6156
|===
6257

6358
== Dependencies
6459

65-
* **Internal**: list other hyperpolymath repos this depends on.
66-
* **External**: SHA-pinned (see `Cargo.lock` / `deno.lock` / etc.).
67-
* **Build-time**: tools required to build (just, deno, cargo, …).
60+
* **Internal**: none — this repo does not depend on other hyperpolymath
61+
repos.
62+
* **External**: Zenodo (archival + DOI minting).
63+
* **Build-time**: none to read a note; Typst only when producing a PDF
64+
rendering of a note that has one.
6865

6966
== Out of scope
7067

71-
Explicit non-goals. Things we deliberately do *not* do, with a one-line
72-
reason for each. This section saves more time than the rest combined.
68+
* No source code, package, or binary is built or shipped from this repo.
69+
* No API, service, or CLI — there is nothing to run.
70+
* No automated test suite — there is no code to exercise.
7371

7472
== See also
7573

76-
* link:./usage.adoc[Usage] — consumer perspective.
77-
* link:./contributing.adoc[Contributing] — developer setup.
74+
* link:./usage.adoc[Usage] — how to cite a note.
75+
* link:./contributing.adoc[Contributing] — how to add a new note.
7876
* link:./decisions/[ADRs] — historical record of why this shape.

0 commit comments

Comments
 (0)