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:
@@ -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
|
||||
}
|
||||
@@ -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).
|
||||
|
||||
@@ -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 |
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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",
|
||||
|
||||
Reference in New Issue
Block a user