Quality and Reliability
Quality work in Valhalla is organized around customer journeys, not only repository modules. Each release path should answer two questions:
- How do we know this works?
- How do we make the next iteration safer, clearer, faster, or more useful?
Validation Loop
What We Validate
| Domain | What to prove | Evidence |
|---|---|---|
| ThorAPI generation | OpenAPI contracts generate APIs, models, databases, RBAC, clients, and component contracts without drift. | generator health, OpenAPI fixture tests, generated client diffs, backend contract tests. |
| App Generation | A persona can create, preview, deploy, and hand off generated apps without falling into raw plumbing. | route tests, wizard tests, component tests, Cypress path, screenshots. |
| ValkyrAI workflows | Studio can create workflows, configure ExecModules, bind IntegrationAccounts/LLMDetails, run, inspect, and publish MCP tools. | workflow service tests, ExecModule config ABI tests, MCP publishing tests, Studio screenshots. |
| Valor | Chat can safely translate intent into reviewable tool actions, workflow drafts, app plans, memory operations, and MCP payloads. | command protocol tests, prompt-context tests, tool-action fixtures, audit assertions. |
| ValorIDE | Agentic coding can consume generated apps, use ThorAPI clients, run commands, coordinate with SWARM, and publish back. | extension tests, command-execution tests, MCP tool smoke, generated-app handoff fixture. |
| GrayMatter | Memory operations, object graph scope, credits, semantic quality, and agent access are secure and intelligible. | memory API tests, control-surface tests, semantic quality tests, dashboard tests. |
| Gridheim Runes and Sheetster | Spreadsheet formulas become OpenAPI Rune extensions, generate @Rune, and evaluate through OpenXLS without persistence drift. | Rune aspect tests, scalar/dot-notation formula tests, Sheetster/Gridheim UI fixtures. |
| SWARM Ops | Agents register presence and coordinate without becoming the memory layer. | protocol schema tests, registration smoke, dashboard graph tests, telemetry tests. |
| RBAC, SecureField, TrustFabric | UI visibility matches server enforcement, encrypted fields stay protected, audit/compliance products are entitlement-gated. | permission evaluator tests, decryption-permission tests, role fixtures, audit trail tests. |
| Deployments | Generated apps can move to hosted cloud, AWS, GCP/Azure, downloadable jar, or ValorIDE publish-back. | deployment API tests, connectivity checks, smoke fixtures, docs screenshots. |
| Docs and website | The information architecture, links, screenshots, and product language stay aligned with code. | Docusaurus build, broken-link audit, live-site screenshots, docs diff review. |
Persona And Journey Checks
Persona testing is not RBAC testing. Each persona should be tested as a presentation lens over permitted capabilities.
| Persona or journey | Required checks |
|---|---|
| CXO | Strategy, GrayMatter, tasks, TrustFabric where entitled, and metrics are prominent without exposing unauthorized controls. |
| Solopreneur | App builder, CRM/CMS/ecommerce, guided Valor flows, and deployment are prominent. |
| Engineer | OpenAPI Designer, ThorAPI generation, generated clients, deployment, and ValorIDE handoff are prominent. |
| Content publisher | CMS, DigitalProductPro, ecommerce, social workflows, scheduling, and LLM copy flows connect cleanly. |
| Workflow designer | Workflow Studio, ExecModules, IntegrationAccounts, test run, MCP publish, and marketplace/control surface form one path. |
| GrayMatter user | Memory dashboard, operations, credits, agent permissions, and object graph controls are understandable. |
| Agentic workflow user | Valor, ValkyrAI, GrayMatter, SWARM Ops, and MCP endpoints cooperate without hidden ownership confusion. |
Engineering Verification
Use focused tests first, then broaden based on blast radius.
| Slice | Command |
|---|---|
| Docs links and IA | cd web/typescript/valkyr_labs_com/docs && npm run build |
| Website routes | cd web/typescript/valkyr_labs_com && npm run runtest -- src/App.route.test.ts --runInBand |
| Persona mode | cd web/typescript/valkyr_labs_com && npm run runtest -- src/utils/customerExperienceMode.test.ts src/components/UserPreferences/UserPreferences.test.tsx src/components/Dashboard/__tests__/LcarsSidebar.test.tsx --runInBand |
| Funnel persona capture | cd web/typescript/valkyr_labs_com && npm run runtest -- src/website/funnel/FunnelWizardPage.test.tsx --runInBand |
| GrayMatter and Runes backend | mvn -pl valkyrai -Dtest=RuneAspectTest,RuneAspectScalarFormulaTest,RuneAspectDotNotationTest,GrayMatterControlSurfaceServiceTest,GrayMatterControlSurfaceControllerTest test |
| Workflow engine focused | mvn -pl valkyrai -Dtest=<FocusedWorkflowTest> test |
| ThorAPI + ValkyrAI backend confidence | mvn -pl thorapi,valkyrai test |
Screenshot QA
Screenshots are validation artifacts, not decoration. They should show real product surfaces clearly enough that a customer, engineer, or operator can understand what the page does.
- Capture public website screenshots from
https://valkyrlabs.comfor public product pages. - Capture authenticated/local screenshots for Studio, dashboard, admin, memory, and deployment surfaces.
- Store stable docs screenshots under
web/typescript/valkyr_labs_com/docs/static/img. - Re-run the Docusaurus build after adding screenshot references.
- Refresh screenshots when UI or information architecture changes make the old image misleading.
Documentation Quality Rules
- Every material change should name the affected journey, product domain, code surface, docs page, and validation command.
- A change is complete only when the docs and tests reflect the new behavior.
- Generated schema changes should start in
api.hbs.yaml, regenerate, then update docs and focused tests. - Product language should say what the user is trying to do, not only which internal module is involved.
- When a feature spans domains, keep ownership explicit: ThorAPI generates, ValkyrAI runs workflows, GrayMatter remembers, SwarmOps coordinates, Valor guides, ValorIDE codes.