GenoLeWM RFCs¶
This directory holds the design RFCs for GenoLeWM. RFCs are the source
of truth for individual design decisions. The
top-level SPECIFICATION and
docs/spec/ corpus synthesize them into a single
canonical view.
A mirrored path docs/rfcs/ symlinks to this directory so that both
naming conventions resolve correctly.
Process¶
- Drafting. Copy
0000-template.mdto a new file namedNNNN-short-title.md, whereNNNNis the next unused number. Set status toDraft. Open a PR. - Discussion. PR review on GitHub. Reviewers leave inline comments.
- Acceptance. When the author and at least one core reviewer agree,
status moves to
Acceptedand the PR is merged. - Implementation. Acceptance does not require code. Implementation
may happen later. The RFC's
Implementation statusfield is updated when code lands. - Amendment. Non-trivial changes to an accepted RFC require a new
PR that bumps the RFC's
Updateddate and documents the diff in a trailing changelog section. - Supersession. If a new RFC replaces an old one, the new RFC's
Supersedesfield names the old one, and the old one's status moves toSupersededwith a back-link.
Index¶
| # | Title | Status | Subsystem |
|---|---|---|---|
| 0001 | Project scope and goals | Draft | scope |
| 0002 | State encoder — Carbon integration | Draft | encoder |
| 0003 | Action representation — genomic edits | Accepted | action |
| 0004 | Predictor architecture | Draft | predictor |
| 0005 | Training objective | Draft | training |
| 0006 | Data pipeline | Draft | data |
| 0007 | Evaluation suite | Draft | eval |
| 0008 | Latent planning | Draft | planning |
| 0009 | Surprise-based pathogenicity scoring | Draft | surprise |
| 0010 | On-device personal-genome deployment | Draft | deploy |
| 0011 | Artifact provenance and receipts | Accepted | provenance |
| 0012 | Error taxonomy and exception hierarchy | Draft | cross-cutting |
| 0013 | Observability — logging, metrics, redaction | Accepted | cross-cutting |
| 0014 | Public Python API surface and stability policy | Draft | cross-cutting |
| 0015 | Testing strategy and CI gates | Draft | cross-cutting |
| 0016 | Performance budget and profiling discipline | Draft | cross-cutting |
| 0017 | Configuration system | Draft | cross-cutting |
| 0018 | CLI design | Draft | cli |
| 0019 | Reference desktop app skeleton | Draft | desktop |
Reading order¶
Each RFC only assumes the ones before it. Specifically:
- 0001 sets the scope. Read first.
- 0002, 0003, 0004 are the three component RFCs (state encoder, action encoder, predictor). They define the architectural primitives.
- 0005, 0006, 0007 define how those primitives are trained, fed, and measured.
- 0008, 0009 define the two main downstream uses (planning and surprise scoring).
- 0010, 0011 define how the trained system is deployed and how release artifacts are made reproducible.
- 0012–0017 define cross-cutting engineering concerns (errors, observability, API stability, testing, performance, configuration). They cut across the subsystem RFCs and lock the load-bearing decisions about how the engineering layer behaves.
- 0018, 0019 define the user-facing surfaces (CLI and reference desktop app).
For a 30-minute path: 0001 → 0002 → 0004 → 0005 → 0007 → 0010 → 0011.
Conventions¶
- RFC numbers are zero-padded to four digits.
- File names are kebab-case after the number.
- Each RFC follows the template in
0000-template.md. - Mathematical notation: lowercase italic for scalars (
s,a), lowercase plain for vectors (s_t,a_emb), uppercase for sets / matrices. →denotes function mapping;≜denotes definition.
Open-question registry¶
Each RFC's open questions are tagged with an OQ-<area>-<n> identifier;
the same identifiers appear in the spec corpus under "Open questions"
sections. The aggregate live list is in
docs/roadmap/IMPLEMENTATION.md.