f022ef5395
3-tier ideation: 5 mechanical (cert unreachable, cert_repo no test,
engine/transport/audit low coverage) + 5 backend (config parser, pprof,
precedence test, separate mux, CI gate) + 3 cross-project (version --json
verify, init() registration, zero new deps). All >=0.60, auto-accepted.
---ci---
project: orca
phase: 0
milestone: v0.7
status: ideate
decisions:
- id: D-043
decision: "Accepted 13 ideation recommendations (REQ-053..056 + 9 refinements)"
rationale: "All >=0.60 confidence; full autonomy auto-accept. Scope confirmed: cert registration, config parser, coverage uplift, pprof."
confidence: 0.92
requirements:
covered: [REQ-053, REQ-054, REQ-055, REQ-056]
---/ci---
123 lines
7.3 KiB
Markdown
123 lines
7.3 KiB
Markdown
# Ideation: Orca v0.7 — Hardening & Completion
|
||
|
||
Full autonomy mode: all ideas with confidence >= 0.60 are auto-accepted.
|
||
The RESEARCH stage (commit `7c4b603`) surfaced 5 codebase gaps which are
|
||
assessed below alongside 8 additional ideas generated by the 3-tier
|
||
ideation process.
|
||
|
||
Total generated: 13 ideas (5 Tier 1 + 5 Tier 2 + 3 Tier 3) plus 5
|
||
inherited research findings = 18 considered. 13 accepted (all >= 0.60),
|
||
0 skipped, 0 deferred. 4 of the accepted ideas are implementation
|
||
refinements with no new REQ; 4 map to the v0.7 REQs (REQ-053..056)
|
||
already declared in SPECIFY; the research findings confirmed the v0.7
|
||
scope.
|
||
|
||
## Tier 1: Mechanical Analysis (git + filesystem)
|
||
|
||
### 1.1 Git-Native Pattern Mining
|
||
|
||
- `git log --all --grep="lessons:"` — 1 lesson found (orch-engine P00
|
||
config.json schema reference). No repeated lessons in orca's own
|
||
history → no systemic process gap.
|
||
- `git log --all --grep="escalation:"` — 0 escalations. The pipeline
|
||
has run clean across v0.1–v0.6.
|
||
- `git log --all --grep="compound:"` — 0 compound learnings.
|
||
- Low-confidence decisions (confidence < 0.7): none in `---ci---`
|
||
blocks. The lowest-confidence v0.7 decision is D-040 (pprof) at 0.85,
|
||
above threshold.
|
||
|
||
### 1.2 Coverage Gap Analysis
|
||
|
||
| ID | Idea | Source | Confidence | Status | Maps to |
|
||
|----|------|--------|------------|--------|---------|
|
||
| I-401 | `orca cert` command tree is unreachable — `NewCommand` in `internal/cli/cert.go` is never AddCommand'd to `rootCmd` | research §1.1 + `grep -rn "rootCmd.AddCommand"` (cert absent) | 0.98 | Accepted | REQ-053 |
|
||
| I-402 | `internal/store/cert_repo.go` has no test file — every other repo has one | research §1.2 + `ls internal/store/*_test.go` | 0.95 | Accepted | REQ-053 (P01 companion) |
|
||
| I-403 | `internal/engine` coverage 8.3% — only `scheduler_test.go` exists; executor, dispatcher, peer untested | research §1.3 + `go test -cover` | 0.90 | Accepted | REQ-055 |
|
||
| I-404 | `internal/transport` coverage 26.3% — only `idempotency_test.go`; mtls, dispatch, handshake_log untested | research §1.3 | 0.90 | Accepted | REQ-055 |
|
||
| I-405 | `internal/audit` has no test files — Emit, EmitWithErr, LogHandshake* untested | research §1.3 + `ls internal/audit/*_test.go` | 0.88 | Accepted | REQ-055 |
|
||
|
||
### 1.3 Verification Layer Inversion (missing items)
|
||
|
||
- **Structural**: `internal/cli/cert.go` defines a command that is
|
||
never wired in — a "documented but unreachable" component (I-401).
|
||
- **Behavioral**: 4 packages below 50% coverage (I-403/404/405 + proxmox).
|
||
- **Security**: no STRIDE gap — v0.7 adds no new trust boundary (pprof
|
||
is operator-only, addr-gated; cert registration exposes existing
|
||
security code).
|
||
- **Quality**: no unresolved P1/P2 findings from v0.6 final review.
|
||
|
||
## Tier 2: Backend-Enriched Analysis
|
||
|
||
| ID | Idea | Source | Confidence | Status | Maps to |
|
||
|----|------|--------|------------|--------|---------|
|
||
| I-406 | HCL config file parser — `internal/config` package reusing `hclsimple.Decode` pattern from jobspec; D-009 promised it, never built | research §1.4 + D-009 | 0.92 | Accepted | REQ-054 |
|
||
| I-407 | `--pprof <addr>` opt-in on `orca daemon` — I-308 deferred since v0.2; stdlib only, separate mux | research §1.5 + I-308 | 0.82 | Accepted | REQ-056 |
|
||
| I-408 | Config precedence flag>env>file>default — table-driven test covering all 4 layers | backend-enriched (D-039) | 0.90 | Accepted | (refinement of REQ-054; no new REQ) |
|
||
| I-409 | pprof on separate `*http.Server` + `*http.ServeMux`, never on mTLS daemon listener | backend-enriched (AD-024) | 0.90 | Accepted | (refinement of REQ-056; no new REQ) |
|
||
| I-410 | CI coverage gate: `go test -cover ./internal/engine ./internal/transport ./internal/proxmox ./internal/audit` assert each ≥ 50% | backend-enriched (AD-025) | 0.85 | Accepted | (refinement of REQ-055; no new REQ) |
|
||
|
||
## Tier 3: Cross-Project Pattern Transfer
|
||
|
||
| ID | Idea | Source | Confidence | Status | Maps to |
|
||
|----|------|--------|------------|--------|---------|
|
||
| I-411 | `orca version --json` already outputs structured `{version, commit, go_version, build_time}` (I-307 accepted v0.2) — verify still works, no new REQ | cross-project (carry-forward from v0.2 I-307) | 0.80 | Accepted (verification only) | (no new REQ; confirm in P03) |
|
||
| I-412 | `orca cert` registration via `init()` co-located in `cert.go` — matches the self-registering pattern in `daemon.go`/`audit.go` | cross-project (orca's own convention) | 0.88 | Accepted | (refinement of REQ-053; no new REQ) |
|
||
| I-413 | No new direct dependencies in v0.7 — `net/http/pprof` (stdlib), `hashicorp/hcl/v2` (already direct) | cross-project (minimal-deps ethos) | 0.95 | Accepted | (constraint; no new REQ) |
|
||
|
||
## Research-stage findings (assessed)
|
||
|
||
| Finding | Verdict | Maps to |
|
||
|---------|---------|---------|
|
||
| cert command unreachable (§1.1) | **Accepted** (I-401) | REQ-053 (P01) |
|
||
| cert_repo has no test (§1.2) | **Accepted** (I-402) | REQ-053 (P01) |
|
||
| low coverage: engine/transport/proxmox/audit (§1.3) | **Accepted** (I-403/404/405) | REQ-055 (P03) |
|
||
| no HCL config parser (§1.4) | **Accepted** (I-406) | REQ-054 (P02) |
|
||
| pprof deferred since v0.2 (§1.5) | **Accepted** (I-407) | REQ-056 (P04) |
|
||
|
||
All 5 findings map to the v0.7 REQs declared in SPECIFY. The IDEATE
|
||
stage confirms the scope and adds 8 implementation refinements
|
||
(I-408..I-413) that inform the PLAN stage.
|
||
|
||
## Dropped ideas (confidence < 0.60)
|
||
|
||
None. The lowest-confidence accepted idea is I-407 (pprof) at 0.82.
|
||
|
||
## Accepted Ideas (auto-accepted, full autonomy)
|
||
|
||
13 ideas accepted (5 Tier 1 + 5 Tier 2 + 3 Tier 3). 4 map to net-new
|
||
REQs (REQ-053..056, already declared in SPECIFY); 9 are implementation
|
||
refinements recorded for the PLAN stage's benefit.
|
||
|
||
## Resulting REQ additions
|
||
|
||
| New REQ | Title | Phase | Source ideas |
|
||
|---------|-------|-------|--------------|
|
||
| REQ-053 | `orca cert` command tree registered + cert_repo tests | P01 | I-401, I-402, I-412 |
|
||
| REQ-054 | HCL config file parsing (`internal/config`) | P02 | I-406, I-408 |
|
||
| REQ-055 | Test coverage uplift — engine/transport/proxmox/audit ≥ 50% | P03 | I-403, I-404, I-405, I-410 |
|
||
| REQ-056 | `--pprof <addr>` opt-in on `orca daemon` | P04 | I-407, I-409 |
|
||
|
||
**Total net-new REQs**: 4 (REQ-053..056). All declared in SPECIFY;
|
||
IDEATE confirms mapping and adds implementation refinements.
|
||
|
||
## Deferred (recorded but not v0.7)
|
||
|
||
None. I-308 (pprof) is no longer deferred — it is REQ-056 in P04.
|
||
|
||
## Followup notes for PLAN stage
|
||
|
||
- **P01** is the highest-impact, lowest-effort phase: a 1-line
|
||
`rootCmd.AddCommand` + a regression test + cert_repo_test.go. The
|
||
smoke test should run `cert ca-init` + `cert gen` + `cert show` +
|
||
`cert fingerprint` against a temp `ORCA_HOME` to catch any latent
|
||
bugs in the never-exercised cert subcommands.
|
||
- **P02** config package must be a pure function (`Load(paths) ->
|
||
*Config`) with no package-level state. The `--config` flag on root
|
||
command loads the file and passes the merged `*Config` down via
|
||
cobra's `cmd.SetContext` or a struct field on the command.
|
||
- **P03** coverage: target the interface seams (SSH dialer, peer
|
||
client) for mocks; use `httptest.NewTLSServer` for transport. Any
|
||
races uncovered by `-race` get fixed in P03, not deferred.
|
||
- **P04** pprof: keep the daemon's mTLS listener untouched; start a
|
||
second `http.Server` only when `--pprof` is non-empty. Log a WARN
|
||
that the endpoint is unauthenticated. |