33 lines
2.2 KiB
Markdown
33 lines
2.2 KiB
Markdown
# Node capability admission — planning index
|
|
|
|
**Status:** ready for supervised Ralph execution.
|
|
|
|
This P0 makes a Node prove it can serve its selected Model Artifact and Shard before the Tracker treats it as routable. It is deliberately model-agnostic: Qwen3.6 is only a development integration fixture, never a hardcoded runtime target.
|
|
|
|
## Locked decisions
|
|
|
|
- A Node explicitly asked to serve a Model Preset fails closed when no validated recipe can execute it; it must not register as ready or accept paid inference.
|
|
- **Assignment ownership:** startup/`--model` loads are **pinned**; tracker-managed demand placement (Qwen US-050) may use **spare capacity only** — [ADR-0026](../../docs/adr/0026-node-assignment-ownership-and-managed-placement.md).
|
|
- Default validation covers the selected model/shard only. `meshnet-node doctor --all-recipes` is reserved for support and CI.
|
|
- A Model Preset may have multiple named recipes. Each independently proves a real forward; the Tracker schedules only validated recipes while considering measured performance.
|
|
- Compatibility schemas are generic. A future Tracker may publish signed, data-only Model Artifact Manifests, but executable recipes arrive only through signed Node releases.
|
|
- P0 ships a local versioned recipe manifest and reports its version. It does **not** build a self-updater, download executable recipes, or install system dependencies.
|
|
- Every story requires `pytest`; release CI additionally runs an `integration`-marked real-model doctor smoke test on each certified hardware lane.
|
|
|
|
## Ralph order
|
|
|
|
1. `NCA-001` generic capability/report contract
|
|
2. `NCA-002` generic doctor command and real-forward validation
|
|
3. `NCA-003` startup admission lifecycle and fail-closed behavior
|
|
4. `NCA-004` tracker registration/routing enforcement
|
|
5. `NCA-005` operator documentation and hardware-lane integration contract
|
|
|
|
Run serially. Stories 3 and 4 both change registration/startup behavior and must not be executed in parallel.
|
|
|
|
## Quality gates
|
|
|
|
- Targeted `pytest` tests named by the issue.
|
|
- Full `pytest` before marking a story done, or record the unrelated blocker.
|
|
- No default test downloads a model or requires a GPU.
|
|
- `pytest -m integration` / the real-model doctor test remains explicit and environment-gated.
|