Compare commits

...

2 Commits

Author SHA1 Message Date
Julien Calixte
d6b9e46ec1 docs: add index READMEs for docs/ and docs/notes/
Give the two linked-but-unindexed folders a browsable entry point so
directory links land on a real index instead of a bare listing.
2026-07-08 14:45:58 +02:00
Julien Calixte
dbe7720a27 docs: point directory links at their folder's README
Bare-folder links (e.g. docs/postmortems/) only resolve on GitHub's
auto-render; retarget them to the folder's README.md so they open a
real file in any markdown viewer.
2026-07-08 14:45:52 +02:00
6 changed files with 52 additions and 6 deletions

View File

@@ -9,7 +9,7 @@ runs on it.
> in spikes. No release has shipped yet — v0.1 is blocked on SD (waiting on a
> compatible card), the boot splash, and wiring the save/publish path into the
> app binary. Live per-item status: [`docs/roadmap.md`](docs/roadmap.md) ·
> failure write-ups: [`docs/postmortems/`](docs/postmortems/).
> failure write-ups: [`docs/postmortems/`](docs/postmortems/README.md).
---
@@ -147,6 +147,6 @@ package.json pnpm + oxfmt — formatting toolchain for docs/JSON
Retired risks ([gix push](docs/postmortems/2026-07-05-spike7-gix-https-push.md),
TinyUSB HID stability, TLS heap, libgit2-on-xtensa) and how they died:
[`docs/spikes.md`](docs/spikes.md) and
[`docs/postmortems/`](docs/postmortems/).
[`docs/postmortems/`](docs/postmortems/README.md).
These get resolved by writing code, not by deciding harder.

34
docs/README.md Normal file
View File

@@ -0,0 +1,34 @@
# Docs
> The design record for Typoena — the decisions, specs, and bench write-ups
> behind the writing appliance. Start with the [ADRs](adr.md) for the
> load-bearing choices, or the [v0.1 specs](v0.1-mvp-product.md) for what the
> first release actually does.
>
> Project overview: [`../README.md`](../README.md).
## Decisions & specs
| Doc | What's in it |
| --- | --- |
| [`adr.md`](adr.md) | Architecture Decision Records — the load-bearing technical choices and why. |
| [`v0.1-mvp-product.md`](v0.1-mvp-product.md) | v0.1 product design — boot, type one file, `Ctrl-S` to save, `Ctrl-G` to publish. |
| [`v0.1-mvp-technical.md`](v0.1-mvp-technical.md) | v0.1 technical design — single Rust binary on `esp-idf-rs`, modules, threads, bring-up order. |
| [`roadmap.md`](roadmap.md) | Version-by-version plan; each release is a usable artifact, not a checkpoint. |
| [`hardware.md`](hardware.md) | Part choices for the bench build and the rationale behind them. |
## Quality method
| Doc | What's in it |
| --- | --- |
| [`qfd.md`](qfd.md) | Quality Function Deployment — turns user-facing requirements into technical HOWs. |
| [`quality-house.md`](quality-house.md) | The 14 WHATs × 14 HOWs House of Quality, filled in. |
| [`quality-house-empty.md`](quality-house-empty.md) | The same chassis, blank — for re-scoring from scratch. |
## Bench work
| Area | What's in it |
| --- | --- |
| [`spikes.md`](spikes.md) | Rendering & UX spikes — display/UX risks proved outside the hardware stack. |
| [`postmortems/`](postmortems/README.md) | Bring-up debugging write-ups: what broke, the root cause, and the decisions that came out of it. |
| [`notes/`](notes/README.md) | Longer-form essays on the thinking behind specific choices. |

View File

@@ -234,7 +234,7 @@ over `file://` and `ssh://` — **not HTTP(S)** — so with HTTPS + PAT fixed by
[ADR-005], the smart-HTTP push path this ADR bet on does not exist yet. We
switched to **`libgit2` (`git2` crate)** and proved `add → commit → push`
(incl. `pull --no-edit` + retry) on desktop
([`spikes/spike7-git-push`](../spikes/spike7-git-push/)). The remaining risk is
([`spikes/spike7-git-push`](../spikes/spike7-git-push/README.md)). The remaining risk is
now the on-device **libgit2 → xtensa/mbedtls cross-compile** — the very pain
this ADR chose gix to avoid. Full context:
[postmortem](postmortems/2026-07-05-spike7-gix-https-push.md). Revisit gix if

View File

@@ -28,7 +28,7 @@ rewrite.
The board is on the bench and bring-up is largely done — per-spike results
live in [`spikes.md`](spikes.md) and
[`v0.1-mvp-technical.md`](v0.1-mvp-technical.md#hardware-bring-up-order),
with failure write-ups in [`postmortems/`](postmortems/). Notable: the
with failure write-ups in [`postmortems/`](postmortems/README.md). Notable: the
keyboard runs bus-powered on the S3's native USB port, and SD wiring is
proven on shared SPI2 but blocked on a compatible ≤32 GB card
([postmortem](postmortems/2026-07-05-spike3-sd-cmd59.md)).

12
docs/notes/README.md Normal file
View File

@@ -0,0 +1,12 @@
# Notes
> Longer-form essays on the thinking behind specific Typoena choices — the
> arguments too big for an ADR and too durable for a commit message.
>
> Docs index: [`../README.md`](../README.md). Project overview:
> [`../../README.md`](../../README.md).
| Note | What it argues |
| --- | --- |
| [`ctrl-g-perceived-latency.md`](ctrl-g-perceived-latency.md) | Durability before delivery — surfacing "commit landed" at ~0.2 s makes the 510 s `Ctrl-G` push feel instant. |
| [`git-sync-images-and-repo-size.md`](git-sync-images-and-repo-size.md) | Why we don't shrink the notes repo — its 153 MB of media is remanso's image CDN, so rewriting history to slim the on-device clone breaks the web app. |

View File

@@ -10,7 +10,7 @@
> [`../v0.1-mvp-technical.md`](../v0.1-mvp-technical.md#hardware-bring-up-order),
> git impl [ADR-004](../adr.md#adr-004-git-implementation--gitoxide-gix), auth
> [ADR-005](../adr.md#adr-005-auth--https--github-personal-access-token).
> Spike program: [`../../spikes/spike7-git-push/`](../../spikes/spike7-git-push/).
> Spike program: [`../../spikes/spike7-git-push/`](../../spikes/spike7-git-push/README.md).
## Summary
@@ -34,7 +34,7 @@ is met at the library level.
**Decision:** take the fallback the risk table already names — `libgit2` via the
[`git2`](https://docs.rs/git2) crate — keeping ADR-005 (HTTPS + PAT) intact.
Proved the full `add → commit → push` sequence on desktop
([`spikes/spike7-git-push`](../../spikes/spike7-git-push/)).
([`spikes/spike7-git-push`](../../spikes/spike7-git-push/README.md)).
## Why not the alternatives