docs: sync RFC coverage and record spec mismatches

This commit is contained in:
Virgil 2026-03-30 10:35:08 +00:00
parent 5be20af4b0
commit f229dbe2a6
2 changed files with 1916 additions and 1080 deletions

38
FINDINGS.md Normal file
View file

@ -0,0 +1,38 @@
# Specification Mismatches
## Scope
Findings are mismatches between current repository source behavior and existing docs/spec pages under `docs/`.
### 1) `docs/getting-started.md` uses deprecated constructor pattern
- Example and prose show `core.New(core.Options{...})` and say constructor reads only the first `core.Options`.
- Current code uses variadic `core.New(...CoreOption)` only; passing `core.Options` requires `core.WithOptions(core.NewOptions(...))`.
- References: `docs/getting-started.md:18`, `docs/getting-started.md:26`, `docs/getting-started.md:142`.
### 2) `docs/testing.md` and `docs/configuration.md` repeat outdated constructor usage
- Both files document `core.New(core.Options{...})` examples.
- Current constructor is variadic `CoreOption` values.
- References: `docs/testing.md:29`, `docs/configuration.md:16`.
### 3) `docs/lifecycle.md` claims registry order is map-backed and unstable
- File states `Startables()/Stoppables()` are built from a map-backed registry and therefore non-deterministic.
- Current `Registry` stores an explicit insertion-order slice and iterates in insertion order.
- References: `docs/lifecycle.md:64-67`.
### 4) `docs/services.md` stale ordering and lock-name behavior
- Claims registry is map-backed; actual behavior is insertion-order iteration.
- States default service lock name is `"srv"`, but `LockEnable`/`LockApply` do not expose/use a default namespace in implementation.
- References: `docs/services.md:53`, `docs/services.md:86-88`.
### 5) `docs/commands.md` documents removed managed lifecycle field
- Section “Lifecycle Commands” shows `Lifecycle` field with `Start/Stop/Restart/Reload/Signal` callbacks.
- Current `Command` struct has `Managed string` and no `Lifecycle` field.
- References: `docs/commands.md:155-159`.
### 6) `docs/subsystems.md` documents legacy options creation call for subsystem registration
- Uses `c.Data().New(core.Options{...})` and `c.Drive().New(core.Options{...})`.
- `Data.New` and `Drive.New` expect `core.Options` via varargs usage helpers (`core.NewOptions` in current docs/usage pattern).
- References: `docs/subsystems.md:44`, `docs/subsystems.md:75`, `docs/subsystems.md:80`.
### 7) `docs/index.md` RFC summary is stale
- Claims `docs/RFC.md` is 21 sections, 1476 lines, but current RFC content has expanded sections/size.
- Reference: `docs/index.md` table header note.

File diff suppressed because it is too large Load diff