Some checks failed
Documentation Lint & Validation / Markdown Linting (push) Has been cancelled
Documentation Lint & Validation / Validate mdBook Configuration (push) Has been cancelled
Documentation Lint & Validation / Content & Structure Validation (push) Has been cancelled
mdBook Build & Deploy / Build mdBook (push) Has been cancelled
Nickel Type Check / Nickel Type Checking (push) Has been cancelled
Rust CI / Security Audit (push) Has been cancelled
Rust CI / Check + Test + Lint (nightly) (push) Has been cancelled
Rust CI / Check + Test + Lint (stable) (push) Has been cancelled
Documentation Lint & Validation / Lint & Validation Summary (push) Has been cancelled
mdBook Build & Deploy / Documentation Quality Check (push) Has been cancelled
mdBook Build & Deploy / Deploy to GitHub Pages (push) Has been cancelled
mdBook Build & Deploy / Notification (push) Has been cancelled
on+re:
- core.ncl: 5 new Practice nodes (notification-channels,
vapora-capabilities, agent-hot-reload-stable-identity,
merkle-audit-trail, notification-channels) + 5 new edges;
knowledge-graph-execution-history updated with HNSW+BM25+RRF
- state.ncl: production-readiness blocker/catalyst updated (hot-reload
complete, BudgetManager/LLMRouter still require restart);
ontoref-integration catalyst updated (vapora-ontology/reflection
crates, api-catalog.json, nickel contracts)
ADRs (NCL):
- adr-013: KG hybrid search — HNSW+BM25+RRF, rejected in-process scan
- adr-014: capability packages — AgentDefinition→vapora-shared,
DashMap shard-before-await constraint
- adr-015: Merkle audit trail — SHA-256 hash chain, rejected HMAC
- adr-016: agent hot-reload — stable_id=role, learning_profiles survive
drain, BudgetManager excluded from reload scope
landing page:
- 2 new feature boxes: VCS-Agnostic Worktree (jj/git), Ontology Protocol
- KG box: 20→28 tests, HNSW+BM25+RRF description
- Agents box: 71→82 tests, hot-reload + stable_id
- tech stack: Rust 21→23 crates, added jj, Radicle, ontoref badges
- status badge: 620→691 tests
87 lines
3.8 KiB
Text
87 lines
3.8 KiB
Text
let d = import "defaults/state.ncl" in
|
|
|
|
{
|
|
dimensions = [
|
|
|
|
d.make_dimension {
|
|
id = "production-readiness",
|
|
name = "Production Readiness",
|
|
description = "Overall production readiness of the vapora platform across all 23 crates.",
|
|
current_state = "production-ready",
|
|
desired_state = "stable-ecosystem",
|
|
horizon = 'Months,
|
|
states = [],
|
|
transitions = [
|
|
{
|
|
from = "production-ready",
|
|
to = "stable-ecosystem",
|
|
condition = "At least 2 external consumer projects onboarded, ecosystem NATS topology active, kogral knowledge graph integrated.",
|
|
catalyst = "Agent hot-reload + stable identity complete (learning loss on restart eliminated); capability packages provide zero-config onboarding; A2A protocol ready for external consumers.",
|
|
blocker = "No external consumers yet. A2A integration tests still require SurrealDB + NATS in CI (#[ignore]). BudgetManager/LLMRouter not hot-reloadable (process restart required for config changes to those subsystems).",
|
|
horizon = 'Months,
|
|
},
|
|
],
|
|
},
|
|
|
|
d.make_dimension {
|
|
id = "test-coverage",
|
|
name = "Test Coverage",
|
|
description = "Workspace test coverage and quality across 17 crates.",
|
|
current_state = "full-pass",
|
|
desired_state = "integration-verified",
|
|
horizon = 'Months,
|
|
states = [],
|
|
transitions = [
|
|
{
|
|
from = "full-pass",
|
|
to = "integration-verified",
|
|
condition = "Integration tests for vapora-a2a passing against live SurrealDB + NATS (currently marked #[ignore]).",
|
|
catalyst = "CI environment with SurrealDB and NATS services configured.",
|
|
blocker = "External service dependencies not available in current CI.",
|
|
horizon = 'Months,
|
|
},
|
|
],
|
|
},
|
|
|
|
d.make_dimension {
|
|
id = "frontend-maturity",
|
|
name = "Frontend Maturity",
|
|
description = "Maturity of the Leptos WASM frontend (Kanban board, agent management UI).",
|
|
current_state = "functional",
|
|
desired_state = "polished",
|
|
horizon = 'Months,
|
|
states = [],
|
|
transitions = [
|
|
{
|
|
from = "functional",
|
|
to = "polished",
|
|
condition = "Real-time WebSocket updates fully integrated in UI, agent status live-updating, cost dashboard rendered.",
|
|
catalyst = "Backend WebSocket endpoint stable; UnoCSS build pipeline finalized.",
|
|
blocker = "Leptos CSR-only restriction limits SSR-based optimizations.",
|
|
horizon = 'Months,
|
|
},
|
|
],
|
|
},
|
|
|
|
d.make_dimension {
|
|
id = "ontoref-integration",
|
|
name = "Ontoref Integration Depth",
|
|
description = "How deeply vapora is integrated with the ontoref protocol.",
|
|
current_state = "onboarded",
|
|
desired_state = "drift-monitored",
|
|
horizon = 'Months,
|
|
states = [],
|
|
transitions = [
|
|
{
|
|
from = "onboarded",
|
|
to = "drift-monitored",
|
|
condition = "Ontoref daemon running, ontology sync active, drift detection passing on CI.",
|
|
catalyst = "vapora-ontology and vapora-reflection crates added — ontology is now machine-consumable from Rust (VaporaOntology::load, reload). api-catalog.json exists and is referenced by ontoref. Nickel contracts in nickel/ cover agents, budgets, channels, llm-router, vapora core, workflows.",
|
|
blocker = "ONTOREF_DAEMON_URL not configured in vapora CI. ontoref sync diff --docs check not wired to pre-commit or CI. vapora-ontology and vapora-reflection have no tests yet.",
|
|
horizon = 'Months,
|
|
},
|
|
],
|
|
},
|
|
|
|
],
|
|
}
|