Some checks failed
lakehouse/auditor 3 blocking issues: todo!() macro call in tests/real-world/scrum_master_pipeline.ts
Phase 43 PRD (docs/CONTROL_PLANE_PRD.md:161) was the one audit finding
truly unimplemented — no crate, no trait, no tests, no workspace entry.
Neither PHASES.md nor the source tree had any Phase 43 presence.
Genuine greenfield gap.
Lands the scaffold as a real crate, registered in workspace Cargo.toml:
crates/validator/
src/lib.rs — Validator trait, Artifact enum (5 variants:
FillProposal, EmailDraft, Playbook,
TerraformPlan, AnsiblePlaybook), Report,
Finding, Severity, ValidationError
src/staffing/mod.rs — staffing validators module root
src/staffing/fill.rs — FillValidator (schema-level: fills array
+ per-fill {candidate_id, name}). 4 tests.
Worker-existence + status + geo checks
are TODO v2 (need catalog query handle).
src/staffing/email.rs — EmailValidator (to/body schema + SMS ≤160
+ email subject ≤78). 4 tests. PII scan +
name-consistency TODO v2.
src/staffing/playbook.rs — PlaybookValidator (operation prefix,
endorsed_names non-empty + ≤ target×2,
fingerprint present per Phase 25). 5 tests.
src/devops.rs — TerraformValidator + AnsibleValidator
scaffolds. Return Unimplemented — keeps
dispatcher shape stable, surfaces a clear
"phase 43 not wired" signal instead of
silently passing or panicking.
Total: 15 tests, all green. Covers the happy paths, the common
failure modes (missing fields, overfull arrays, length violations),
and the dispatch-error path (wrong artifact type into wrong validator).
Still open from Phase 43 (v2 work, beyond scaffold):
- FillValidator catalog integration (worker-existence, status,
geo/role match) — needs catalog handle in constructor
- EmailValidator PII scan (shared::pii::strip_pii integration) +
name-consistency cross-check
- Execution loop wiring: generate → validate → observer correction
+ retry (bounded by max_iterations=3) — spans crates, follow-up
- Observer logging: validation results to data/_observer/ops.jsonl
and data/_kb/outcomes.jsonl
- Scenario fixture tests against tests/multi-agent/playbooks/*
Workspace warnings still at 0.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
54 lines
1.5 KiB
TOML
54 lines
1.5 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/shared",
|
|
"crates/proto",
|
|
"crates/storaged",
|
|
"crates/catalogd",
|
|
"crates/queryd",
|
|
"crates/aibridge",
|
|
"crates/ingestd",
|
|
"crates/vectord",
|
|
"crates/journald",
|
|
"crates/gateway",
|
|
"crates/ui",
|
|
"crates/lance-bench",
|
|
"crates/vectord-lance",
|
|
"crates/truth",
|
|
"crates/validator",
|
|
]
|
|
|
|
[workspace.dependencies]
|
|
tokio = { version = "1", features = ["full"] }
|
|
axum = "0.8"
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
|
|
thiserror = "2"
|
|
uuid = { version = "1", features = ["v4", "serde"] }
|
|
chrono = { version = "0.4", features = ["serde"] }
|
|
tower-http = { version = "0.6", features = ["cors", "trace"] }
|
|
object_store = { version = "0.12", features = ["aws"] }
|
|
arrow = "55"
|
|
parquet = { version = "55", features = ["arrow", "async"] }
|
|
datafusion = "47"
|
|
bytes = "1"
|
|
futures = "0.3"
|
|
sha2 = "0.10"
|
|
url = "2"
|
|
tonic = "0.13"
|
|
prost = "0.13"
|
|
tonic-build = "0.13"
|
|
opentelemetry = "0.28"
|
|
opentelemetry_sdk = { version = "0.28", features = ["rt-tokio"] }
|
|
opentelemetry-stdout = { version = "0.28", features = ["trace"] }
|
|
tracing-opentelemetry = "0.29"
|
|
toml = "0.8"
|
|
csv = "1"
|
|
lopdf = "0.35"
|
|
encoding_rs = "0.8"
|
|
instant-distance = "0.6"
|
|
tokio-postgres = { version = "0.7", features = ["with-serde_json-1", "with-chrono-0_4", "with-uuid-1"] }
|
|
mysql_async = { version = "0.34", default-features = false, features = ["minimal"] }
|