docs(init): validate v0.8 specification — coverage & trust hardening

---ci---
project: orca
phase: 0
milestone: v0.8
status: specify
---/ci---
This commit is contained in:
Jon Chery
2026-08-04 00:38:06 +00:00
parent 7bb533c2fb
commit a052bf20f1
5 changed files with 102 additions and 24 deletions
+7 -7
View File
@@ -1,11 +1,11 @@
{
"phase": 5,
"stage": "complete",
"milestone": "v0.7",
"milestone_slug": "hardening-completion",
"phase_role": "final",
"phase": 0,
"stage": "specify",
"milestone": "v0.8",
"milestone_slug": "coverage-trust-hardening",
"phase_role": "pre_execution",
"attempts": 0,
"updated_at": "2026-08-04T00:30:00Z",
"milestone_complete": true,
"updated_at": "2026-08-04T00:40:00Z",
"milestone_complete": false,
"next_milestone": null
}
+33
View File
@@ -331,3 +331,36 @@ change. Milestone type: NFR (all phases are fix/test/chore); the final
phase's progressive patch IS the deliverable per `run.md` versioning
logic. Tags run on the v0.6.x patch line: `v0.6.0` (P0) … `v0.6.5` (P05
= milestone release).
## v0.8 Scope Summary — Coverage & Trust Hardening
v0.8 is a 3-execution-phase **NFR milestone** that continues the
hardening theme opened by v0.7. v0.7 P03 (REQ-055) lifted four
packages to ≥ 50%, but a coverage re-baseline after v0.7 ship shows
the floor was insufficient: `internal/engine` regressed to 8.3%,
`internal/proxmox` to 5.1%, and four more packages sit between 26% and
48%. Three packages (`internal/audit`, `internal/certpaths`,
`cmd/orca`) still have **no test files at all**. v0.8 also closes the
two "future enhancement" hooks explicitly deferred in v0.6 — SSH
host-key pre-pinning (D-035 caveat) and `orca node key-reset`
(RESEARCH_v0.6 §80) — and adds a requirements-hygiene gate so the
stale-REQ-status drift seen in REQUIREMENTS.md after v0.7 ship cannot
recur:
- **P01 — Coverage uplift round 2.** Raise six under-50% packages to
≥ 70% and add first tests for the three zero-test packages. Covers
REQ-057.
- **P02 — SSH trust hardening.** `--host-key-fingerprint` pre-pin flag
on `orca node join --type proxmox` + `orca node key-reset <node>`
command. Covers REQ-058, REQ-059.
- **P03 — Requirements-hygiene gate.** `make verify-reqs` target +
verify-stage assertion that ROADMAP `Complete` ↔ REQUIREMENTS
`Complete`. Covers REQ-060.
- **P04 — Final review + ship + audit.** Milestone release.
The vision is unchanged. v0.8 is a hardening milestone, not a
direction change. Milestone type: NFR (all phases are test/feat-chore
on the trust surface — see CLARIFY D-043 for the `feat` vs `chore`
classification of P02); the final phase's progressive patch IS the
deliverable per `run.md` versioning logic. Tags run on the **v0.7.x**
patch line: `v0.7.0` (P0) … `v0.7.4` (P04 = milestone release).
+9 -16
View File
@@ -129,21 +129,14 @@ REQ-047..052 all complete.
|----|-------------|----------|-------|--------|
| REQ-053 | `orca cert` command tree registered on root command (`cert ca-init`, `cert gen`, `cert show`, `cert renew`, `cert fingerprint`) — code exists in `internal/cli/cert.go` but is never AddCommand'd; unreachable today | High | **v0.7 P1** | **Complete** (P1 shipped v0.6.1) |
| REQ-054 | HCL config file parsing: `internal/config` package loads `~/.orca/config.hcl` / `/etc/orca/orca.hcl` (keys: db_path, listen_addr, ca_path, server_cert_path, server_key_path, node_capacity); merge precedence flag > env > file > default; `--config` flag on root command | High | **v0.7 P2** | **Complete** (P2 shipped v0.6.2) |
| REQ-055 | Test coverage uplift: every package ≥ 50% — adds tests for `internal/engine` (executor, dispatcher, peer), `internal/transport` (mtls, dispatch, handshake_log), `internal/proxmox` (bootstrap SSH path), `internal/audit` | Medium | **v0.7 P3** | **Complete** (P3 shipped v0.6.3; engine 65.1%, transport 84.6%, proxmox 82.7%, audit 100%) |
| REQ-056 | `--pprof <addr>` opt-in flag on `orca daemon` (default disabled); `net/http/pprof` mounted on a separate mux, never on the mTLS daemon listener | Low | **v0.7 P4** | **Complete** (P4 shipped v0.6.4; I-308 implemented) |
| REQ-055 | Test coverage uplift: every package ≥ 50% — adds tests for `internal/engine` (executor, dispatcher, peer), `internal/transport` (mtls, dispatch, handshake_log), `internal/proxmox` (bootstrap SSH path), `internal/audit` | Medium | **v0.7 P3** | **Complete** (P3 shipped v0.6.3) |
| REQ-056 | `--pprof <addr>` opt-in flag on `orca daemon` (default disabled); `net/http/pprof` mounted on a separate mux, never on the mTLS daemon listener | Low | **v0.7 P4** | **Complete** (P4 shipped v0.6.4) |
## v0.7 Milestone Summary
## v0.8 Requirements — Coverage & Trust Hardening
**Status: Complete** — all 4 execution phases + final review shipped.
P0 (v0.6.0), P1 (v0.6.1), P2 (v0.6.2), P3 (v0.6.3), P4 (v0.6.4),
P5 final (v0.6.5). REQ-053..056 all complete.
- **P0** (v0.6.0): pre-execution (specify → clarify → research → ideate → plan). 5 decisions (D-038..D-042), 5 ADs (AD-022..AD-026), 13 ideation recommendations.
- **P1** (v0.6.1): `orca cert` command tree registered + cert_repo tests + migration 0007 (REQ-053).
- **P2** (v0.6.2): HCL config file parsing — `internal/config` package + `--config` flag (REQ-054).
- **P3** (v0.6.3): test coverage uplift — engine 65.1%, transport 84.6%, proxmox 82.7%, audit 100% + dispatch.go EOF bug fix (REQ-055).
- **P4** (v0.6.4): `--pprof` opt-in on `orca daemon` (REQ-056, I-308 implemented).
- **P5** (v0.6.5): final review + audit + milestone release. Review fixes: PERSONAS.md body, config --addr precedence, migration 0007 dedup.
**Milestone type**: NFR (all phases fix/test/chore; no `feat` phases).
**Milestone tag**: `v0.6.5` (final phase patch = milestone release per NFR progressive-patch rule). Tags v0.6.0..v0.6.5 on v0.6.x patch line.
| ID | Requirement | Priority | Phase | Status |
|----|-------------|----------|-------|--------|
| REQ-057 | Test coverage uplift round 2: raise `internal/engine` (8.3%), `internal/proxmox` (5.1%), `internal/cli` (27.6%), `internal/transport` (26.3%), `internal/store` (46.7%), `internal/jobspec` (47.6%) to ≥ 70%; add first tests for `internal/audit`, `internal/certpaths`, `cmd/orca` (currently 0% — `go: no such tool "covdata"`) | High | **v0.8 P1** | Pending |
| REQ-058 | `--host-key-fingerprint <sha256>` pre-pin flag on `orca node join --type proxmox`: when supplied, join fails fast if the SSH host key's SHA-256 fingerprint does not match; supersedes TOFU (D-035 future-enhancement hook) for pre-pinned deployments | Medium | **v0.8 P2** | Pending |
| REQ-059 | `orca node key-reset <node>` command: clears the persisted SSH host key for a node from `~/.orca/known_hosts` (or nodes metadata) so the next `doctor proxmox`/dispatch re-pins via TOFU or `--host-key-fingerprint`; closes the D-035 "future" hook from RESEARCH_v0.6 §80 | Low | **v0.8 P2** | Pending |
| REQ-060 | Requirement-status hygiene sweep: REQUIREMENTS.md v0.7 rows were stale ("Pending" after ship); add a verify-stage assertion that every REQ listed as `Complete` in ROADMAP.md has a matching `Complete` row in REQUIREMENTS.md, enforced by `make verify-reqs` | Medium | **v0.8 P3** | Pending |
+52
View File
@@ -132,3 +132,55 @@ NFR-milestone progressive-patch rule). Per-phase tags: `v0.6.0`…`v0.6.5`.
Tags run on the previous minor's patch line (v0.6.x) per
branch-strategy.md. The milestone branch label uses the milestone
number (`milestone/v0.7-hardening-completion`); no separate minor tag.
## Milestone v0.8: Coverage & Trust Hardening
Scope: continue the v0.7 hardening theme. v0.7 P03's ≥ 50% floor left
six packages still under 50% (engine 8.3%, proxmox 5.1%, cli 27.6%,
transport 26.3%, store 46.7%, jobspec 47.6%) and three packages with
no tests at all (`internal/audit`, `internal/certpaths`, `cmd/orca`).
v0.8 also closes the two SSH-trust "future enhancement" hooks deferred
in v0.6 (D-035 `--host-key-fingerprint` pre-pin, RESEARCH_v0.6 §80
`orca node key-reset`) and adds a requirements-hygiene gate to prevent
the stale-REQ-status drift seen after v0.7 ship.
- [ ] Phase 0: Pre-execution (specify → clarify → research → plan → grill) — tag `v0.7.0`
- [ ] Phase 1: Test coverage uplift round 2 — 6 packages to ≥ 70%, 3 zero-test packages to first tests (REQ-057) — tag `v0.7.1`
- [ ] Phase 2: SSH trust hardening — `--host-key-fingerprint` pre-pin + `orca node key-reset` (REQ-058, REQ-059) — tag `v0.7.2`
- [ ] Phase 3: Requirements-hygiene gate — `make verify-reqs` + verify assertion (REQ-060) — tag `v0.7.3`
- [ ] Phase 4: Final review + ship + audit (milestone release) — tag `v0.7.4`
**Milestone type**: NFR (P01 test, P02 chore/feat on trust surface —
classified in CLARIFY D-043, P03 chore, P04 docs/review). Final phase
patch IS the milestone release per NFR-milestone progressive-patch
rule. Per-phase tags: `v0.7.0``v0.7.4`. Tags run on the previous
minor's patch line (v0.7.x) per branch-strategy.md. The milestone
branch label uses the milestone number
(`milestone/v0.8-coverage-trust-hardening`); no separate minor tag.
### Per-phase REQ coverage
- **P01 — Coverage uplift round 2**
- REQ-057 (raise `internal/engine`, `internal/proxmox`,
`internal/cli`, `internal/transport`, `internal/store`,
`internal/jobspec` to ≥ 70%; add first tests for `internal/audit`,
`internal/certpaths`, `cmd/orca`)
- **P02 — SSH trust hardening**
- REQ-058 (`--host-key-fingerprint <sha256>` pre-pin flag on
`orca node join --type proxmox`; fail fast on mismatch; supersedes
TOFU for pre-pinned deployments)
- REQ-059 (`orca node key-reset <node>` clears persisted SSH host
key so next `doctor proxmox`/dispatch re-pins via TOFU or
`--host-key-fingerprint`)
- **P03 — Requirements-hygiene gate**
- REQ-060 (`make verify-reqs` target + verify-stage assertion:
every REQ `Complete` in ROADMAP.md has matching `Complete` row in
REQUIREMENTS.md; enforced in CI `validate` pipeline)
### v0.8 is a continuation milestone, not a direction change
The vision ("minimalist, offline-first, CLI-first orchestration
engine") is unchanged. v0.8 closes the coverage debt left by v0.7's
50% floor and the trust-surface gaps explicitly deferred in v0.6.
+1 -1
View File
@@ -5,7 +5,7 @@
"slug": "orca",
"name": "Orca",
"description": "Offline/CLI-first orchestration engine (Orca) — Nomad-inspired, far simpler than Kubernetes",
"milestone": "v0.7",
"milestone": "v0.8",
"phase": 0,
"milestone_type": "nfr",
"default_branch": "main",