7c4b603811
Codebase audit: cert command unreachable, no config parser, low coverage (engine 8.3%, transport 26.3%, proxmox 5.1%, audit 0%), pprof deferred. 5 architectural decisions (AD-022..AD-026). Zero new deps. ---ci--- project: orca phase: 0 milestone: v0.7 status: research ---/ci---
6.6 KiB
6.6 KiB
active_personas, deactivated_personas, phase_specific, reason
| active_personas | deactivated_personas | phase_specific | reason | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
Orca v0.7 is an NFR hardening & completion milestone. The work is CLI registration (cert command), a new internal/config package, test coverage uplift across engine/transport/proxmox/audit, and an opt-in pprof endpoint on the daemon. No schema changes, no new security surface, no packaging/distribution, no UI. Roster changes vs v0.6: - data-engineer: RETAINED — owns cert_repo tests + store coverage. - security-engineer: DEACTIVATED — v0.7 adds no new security surface (pprof is operator-only, addr-gated; cert registration exposes existing security code, does not add new). - cli-engineer: DEACTIVATED — merged into lead-developer for v0.7 (the cert registration is a 1-line AddCommand; config --config flag is root-command wiring, not a new CLI subsystem). - devops-engineer: DEACTIVATED — no packaging/distribution in v0.7. |
Personas: Orca
Roster
lead-developer
- Domain: coordination
- Frameworks:
cobra - Constraints:
boundary-enforcement,offline-first,no-redundant-implementations - Territory:
**/*.go,cmd/**,internal/** - Active: true
- Reason: Coordination across P01/P02/P03. SSH/bootstrap touches security + cli + store + doctor — territory overlaps need adjudication (proxmox package boundary, doctor Proxmox check scaffolding).
backend-engineer
- Domain: backend
- Frameworks:
cobra,net/http,golang.org/x/crypto/ssh - Constraints:
API-first,error-handling,minimal-dependencies,security-first,idempotent-bootstrap - Territory:
**/api/**,**/*_handler*,**/*_handler.go,internal/daemon/**,internal/proxmox/**,internal/cli/init.go - Active: true
- Reason: Owns the
orca initfull-bootstrap orchestration (CA + cert + db + localhost node, idempotent) and theinternal/proxmox/bootstrap.goSSH session sequence (dial, deploy pubkey, useradd, pveum, sudoers, visudo validate). Addedidempotent-bootstrapconstraint (D-036 — re-run must be skip-and-refresh) andgolang.org/x/crypto/sshto frameworks.
data-engineer
- Domain: data
- Frameworks:
modernc/sqlite,iter - Constraints:
schema-first,migration-safe,local-storage-only,no-goroutine-leak,nullable-column-handling - Territory:
**/store/**,**/model.go,**/migration*,migrations/**,internal/store/migrations/**,internal/model/node.go - Active: true
- Reason: Reactivated for v0.6. Owns migration
0006_node_kind_os.sql(REQ-049 — nullablekind/oscolumns, backward-compatible) andNodeReposchema extension (Insert/Get/List/Watch/scanNode column additions + newGetByName/UpdateLastSeenAndOShelpers). Addednullable-column-handlingconstraint (NULL →""in Go struct, not nil-deref).
cli-engineer
- Domain: CLI/UX
- Frameworks:
cobra,pflag - Constraints:
discoverable-help,consistent-flag-naming,human-readable-output,machine-readable-json-flag,signal-handling,password-flag-redaction - Territory:
cmd/**,internal/cli/**,internal/commands/** - Active: true
- Reason: Owns
orca initmulti-step bootstrap output UX (progress lines per step),orca node join --type/--host/--user/--password/--proxmox-user/--proxmox-roleflag wiring, anddoctor os/doctor proxmoxsubcommand wiring. Addedpassword-flag-redactionconstraint (D-031 —--passwordnever echoed, prefer$ORCA_PROXMOX_PASSWORD, zero after use).
security-engineer
- Domain: security
- Frameworks:
crypto/tls,crypto/x509,crypto/ed25519,golang.org/x/crypto/ssh,slog - Constraints:
no-panic-in-production,structured-audit-logging,no-secret-in-logs,input-validation,least-privilege,tofu-host-key-pinning,noexec-sudoers - Territory:
**/auth/**,**/audit/**,internal/security/**,internal/transport/**(TLS config only),internal/proxmox/**(SSH + sudoers + PVE role) - Active: true
- Reason: Reactivated for v0.6. Owns
internal/security/sshkey.go(Ed25519 keygen, 0600/0644 mode enforcement per REQ-033 spirit), TOFU host-key pinning viaknownhosts.New, sudoers least-privilege design (NOEXEC on pct/qm, exclude pvesh, no NOEXEC on apt-get/dpkg), password redaction (D-031), and audit logging of all bootstrap/join actions (REQ-052). Addedtofu-host-key-pinningandnoexec-sudoersconstraints. Co-ownsinternal/proxmox/**with backend-engineer (security owns SSH auth + sudoers content; backend owns the session orchestration).
devops-engineer
- Active: false (v0.6)
- Reason: Deactivated — v0.6 has no install.sh, Dockerfile, .coreci.yml, or release-pipeline surface. The Proxmox SSH bootstrap is backend + security work, not devops. Was active in v0.5 (distribution milestone).
network-engineer
- Active: false (v0.6)
- Reason: v0.6 has no transport/mTLS surface. SSH is point-to-point bootstrap, not the mTLS mesh network-engineer owns.
frontend-engineer
- Active: false (v0.6)
- Reason: No web UI in Orca (unchanged from v0.1 onward).
Territory Enforcement
- Mode:
warn(perconfig.json) - Behavior: Out-of-territory file changes log a warning but do not block.
- Key overlaps in v0.6 (lead-developer adjudicates):
internal/proxmox/bootstrap.go— security-engineer (SSH auth, sudoers, PVE role) + backend-engineer (session orchestration, error handling). Boundary: security package exposesBootstrapProxmox(ctx, opts) error; the function lives ininternal/proxmoxbut importsinternal/securityfor SSH key handling.internal/doctor/doctor.goProxmox()— reusesinternal/proxmoxSSH client (security) but check scaffolding clonesdoctor.Network()pattern. Backend-engineer adjudicates (network-engineer deactivated).internal/store/node_repo.go— data-engineer territory, but theUpdateLastSeenAndOScaller isinternal/cli/init.go(backend). Standard repo-consumer boundary.
v0.6 vs v0.5 Persona Diff
| Change | Rationale |
|---|---|
data-engineer reactivated |
Owns migration 0006 + NodeRepo schema extension (kind/os columns). |
security-engineer reactivated |
Owns SSH keygen, TOFU host-key, sudoers, PVE role — first-class security surface. |
devops-engineer deactivated |
v0.6 has no packaging/distribution surface. |
network-engineer remains deactivated |
No transport/mTLS surface. |
frontend-engineer remains deactivated |
No web UI. |