- Welcome: split-panel layout with Sign In always above fold, feature cards, trust badges - Release Control: dashboard, releases, promotions, approvals — design token alignment - Security: posture, findings, scan submit, unknowns, reports — compact tables, severity badges - Operations: ops hub, jobengine, scheduler, doctor, notifications, feeds — consistent styling - Audit & Evidence: evidence overview, audit log, export center, replay — shimmer loading - Setup & Admin: topology, integrations, identity, trust, system — hover lift, focus rings - Shared: buttons, tabs, forms, colors — unified design tokens (btn-primary, tab-active, focus-ring) - Archive 3 completed sprints (SPRINT_20260317_001/002/003) - Add QA journey reports and route map Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
33 KiB
Local DevOps/Security Journey - 2026-03-17
Perspective: DevOps or security engineer evaluating Stella Ops as a replacement for custom CI/CD scripts and partial deployment-security tooling.
Method
- Fresh local compose runtime using
devops/compose/docker-compose.stella-ops.yml - Browser-driven walkthrough with local Playwright automation and screenshot capture
- Minimal document pre-read; product understanding driven primarily by the running system and only enough local documentation to frame the intended architecture
Environment
- Date: 2026-03-17
- Host: local developer machine
- Login used:
admin / Admin@Stella2026! - Screenshot artifacts:
output/playwright/
Baseline Findings Recorded Before Deeper Pass
Runtime readiness
- The product shell is reachable at
https://stella-ops.local. - The gateway does not reach full ready state on fresh startup:
/healthreturnsready:false- missing microservice:
vexhub
stellaops-vexhub-webcrashes on startup migration with:relation "vexhub.vex_sources" does not exist
- This contaminates VEX-dependent surfaces and means the first-run product experience is already partially broken before a user begins meaningful work.
Welcome and first-run positioning
- Root navigation lands on
/welcome. - The welcome page is visually sparse and brand-heavy:
RELEASE CONTROL PLANEENCRYPTED IDENTITY PIPELINESign In
- It does not explain:
- what Stella replaces in an existing pipeline
- what the first operator action should be
- how a user with Docker/Compose or script-based delivery should approach adoption
First authenticated landing
- Successful login lands on
/mission-control/board. - The dashboard shell is broad and polished, but the first impression is mixed:
- strong top-level information architecture
- unclear relationship between demo/seed data and real operational state
- limited guidance on the next concrete action for a fresh install
First-round product observations
/setupis the strongest onboarding surface found so far because it groups the right domains and exposes a first-time path./setup/integrationsis one of the clearest product areas because it explains setup order in operator language./setup/integrations/registrieshas a concrete onboarding wizard with useful hints such as Harbor health probing andAuthRefsecret indirection./security/scanaccepts an image submission (alpine:3.19) and shows a scan ID, but the scan remainsPENDINGwithout enough user-facing explanation./ops/policy/vexrenders a real user-facing failure:VEX Hub error: 503
/docsexplains Stella's value proposition better than/welcomeor the dashboard.
Initial product-shaping concerns
- Internal Stella terminology appears before user value is established.
- Demo-like metrics are mixed with honest empty-state data.
- Some surfaces feel operationally credible; others feel seeded or disconnected.
- The product is easier to understand once inside Setup, Integrations, Release, Evidence, and Docs than it is from the initial welcome and dashboard journey.
Investigation Status
- Baseline recorded.
- Deeper route and workflow pass completed for this session.
- Primary breadth artifact:
output/playwright/route-survey-20260317.json - Issue screenshots:
output/playwright/deep-route-survey/ - Focused flow screenshots:
output/playwright/deep-flows/ - Action-pack artifacts:
output/playwright/action-packs/setup-admin-actions-20260317.jsonoutput/playwright/action-packs/security-release-actions-20260317.jsonoutput/playwright/action-packs/evidence-ops-admin-actions-20260317.jsonoutput/playwright/action-packs/integrations-release-shell-actions-20260317.jsonoutput/playwright/action-packs/topology-policy-actions-20260317.jsonoutput/playwright/action-packs/focused-run-actions-20260317.jsonoutput/playwright/action-packs/micro-run-actions-20260317.json
Route Survey Summary
Coverage
- 88 authenticated routes surveyed in a single logged-in browser session.
- Route families covered:
- Mission Control
- Setup and Admin
- Integrations
- Topology
- Security
- Triage
- Releases
- Policy
- Evidence
- Operations
- Console Admin
- User Preferences
- Docs
- 403 and 404 recovery pages
Survey outcomes
- 88 routes loaded without browser-level navigation exceptions.
- 16 routes mutated URL after initial render or otherwise failed the simple stability check.
- 4 routes returned hard HTTP errors from product APIs during normal page load:
/setup/identity-providers-> 403/security/risk-> multiple 404s/security/unknowns-> 404/ops/policy/vex-> 503
- Several additional routes completed render while background requests aborted or context requests dropped.
Important interpretation note
- The route survey used one authenticated browser session because replaying saved auth state did not reliably restore protected-route access.
- When a route looks broken in this note, it reflects either:
- a product/runtime defect confirmed by response codes or clear user-facing error text
- or a UX/data credibility issue visible to a fresh user
- The
vexhubstartup failure remains an environment contaminant for all VEX-backed flows.
What The Product Teaches Well
Setup is the strongest self-learning area
/setupdoes the best job of explaining the system in operator-facing chunks:- identity
- trust
- integrations
- topology
- notifications
- usage
- system settings
- The first-time path is visible and sensible.
- The page explains that setup is a journey, not just a card wall.
Integrations are close to adoptable
/setup/integrationsexplains setup order well./setup/integrations/registriesis particularly strong:- clear 6-step flow
- concrete hints for Harbor
- good secret-handling guidance via
AuthRef - scoped, practical inputs instead of vague platform terminology
- This is one of the few areas that already feels like it could replace bespoke onboarding docs for a real platform team.
System Settings and Security Data are understandable
/setup/systemcorrectly frames itself as a handoff surface into health, doctor, SLO, and jobs instead of pretending to be the health system itself./setup/security-datais concrete and operator-legible:- advisory sources
- mirror
- Trivy DB
- version locks
- These pages are examples of Stella working well when it uses plain task language.
Release, evidence, and operational shells are structurally good
/releases/promotions/createclearly communicates the promotion model:- identity
- target
- inputs
- gates
- approvals
- launch
/evidence/verify-replayis one of the clearest evidence surfaces because it shows:- request replay
- replay list
- quick verify
- determinism framing
/ops/operations/doctorhas good information scent even without interaction depth in this pass./settings/user-preferencesis polished and easy to understand.
Docs explain Stella better than the product entrypoint
/docsimmediately explains the intended buyer/operator:- non-Kubernetes container estates
- Compose/hosts/VMs/scripted automation
- security + evidence + release governance
- This page explains Stella's value proposition more effectively than
/welcomeor the dashboard.
Core Product Problems Found In The Deeper Pass
1. Startup/readiness defects contaminate the first-run story
- The local runtime never reached clean ready state because
vexhubfailed startup migration. - The product shell remains usable enough to explore, but the user is already inside a partially broken system.
- This matters because Stella's value proposition is operational trust, and the first experience visibly breaks that promise.
2. The old route inventory is not reliable enough to be a learning aid
- One of the old-path routes,
/ops/platform-setup/topology-wizard, bounced to/welcomein a fresh authenticated session. - That confirms the user's instruction to treat prior route notes as referential only.
- A fresh operator cannot rely on hidden route knowledge; the product must teach the path from inside the UI.
3. Context propagation is inconsistent across the product
- Several routes drop
tenantandregionsfrom the URL entirely:/triage/artifacts/evidence/verify-replay/evidence/exports/ops/operations/notifications/ops/operations/dead-letter- all
/console-admin/* /settings/user-preferences/docs
- Some of those routes also show topbar context drift:
REGION All regionsENV No env defined yetPolicy: No baseline
- Other pages in the same journey still show:
TENANT Demo ProductionREGION 4 regionsENV All environmentsPolicy: Core Policy Pack latest
- To a fresh user, this makes the platform feel internally inconsistent even when the page itself is not obviously broken.
4. Demo/seed behavior still leaks into critical operator judgments
- The product mixes strong, honest empty states with seeded operational-looking content.
- Example surfaces that look seeded or at least not grounded in this actual local session:
/security/vulnerabilitiesshows named CVEs with reachability/exceptions/releases/deploymentsshows realistic deployment history rows/mission-control/alertsand/mission-control/activityshow plausible but unproven operational narratives/ops/operations/signalsshows five events and a 60% error rate
- Example surfaces that are honest-but-empty or clearly disconnected:
- scans stay
PENDING - audit log remains
0 - decision capsules say create a release first
- scans stay
- The inconsistency is the trust problem, not the existence of fixtures by itself.
5. Some pages are clearly broken in user-visible ways
/setup/identity-providers
- User-facing message:
Failed to load providersIdentity Provider API error: Unknown error
- Under the hood this is a 403 from
/api/v1/platform/identity-providers. - This is exactly the kind of page a new admin would try early in setup.
/security/risk
- Multiple 404s during page load:
/authority/risk/risk/status/authority/risk/risk/api/gate/verdict/api/risk-budget/kpis/api/risk-budget/snapshot
- This is not a subtle UX issue; it looks like an unimplemented or miswired feature surface.
/security/unknowns
- Still broken with scanner unknowns API 404.
- Fresh users see a real failure instead of a usable explanation or disabled state.
/ops/policy/vex
- Visible
503because VEX Hub is down. - The UI shows the failure, which is honest, but the product path is still broken.
/console-admin/tenants, /console-admin/clients, /console-admin/tokens
- These routes render headings and then remain in indefinite loading states:
Loading tenants...Loading OAuth2 clients...Loading tokens...
- That makes the whole Console Admin area feel half-connected.
6. Report and dashboard surfaces still blur posture, reporting, and action
/security/reportsexposesExport CSVandGenerate PDF, which is better than the earlier first pass suggested, but the page still behaves like a security-posture workspace more than a true report center./security/reportsand/securityshare very similar content structure and headings.- For a fresh user, the distinction between:
- posture
- report generation
- evidence export is still not as crisp as it should be.
7. The scan flow still does not close the loop
- Submitting
alpine:3.19creates a scan ID and moves to a progress view. - The resulting status remained
PENDINGduring this session. - The page does not adequately explain whether:
- the engine is intentionally simulated
- the job is queued
- or the scan path is not fully wired in local compose mode
- A technically competent evaluator reads this as "stuck" unless explicitly told otherwise.
8. Audit/evidence trust is undermined by a silent emptiness gap
/evidence/audit-logstill reports0 Total Events (7d).- The page even lists the kinds of actions that should appear automatically:
- release seals
- promotions
- approvals
- policy changes
- VEX decisions
- integration changes
- Given that the local product was actively used during this session, the empty audit log feels suspect, not reassuring.
Route Family Notes
Mission Control
/mission-control/board- Broad shell is strong.
- Still suffers from trust problems because its numbers and status cards are not obviously tied to anything the user has just done.
/mission-control/alerts- Reads like a plausible operational summary.
- Good copy, but not clearly tied to real local state.
/mission-control/activity- Nicely grouped by release runs, evidence, and audit.
- Again feels more like a prepared story than an earned activity stream.
Setup And Admin
/setup- Best first-time self-learning surface.
/setup/identity-access- Useful and understandable.
- Good explanation of least privilege and canonical clients/tokens.
/setup/trust-signing- Better than expected in this pass.
- Not empty; shows a meaningful overview with key counts and tabs.
/setup/notifications- Strong distinction between setup-time configuration and operations-time runtime monitoring.
/setup/system- Good "handoff, not verdict" framing.
/setup/security-data- Good operator language and strong task grouping.
/setup/identity-providers- Broken by 403.
Integrations
/setup/integrations- Strong overview and order guidance.
- URL mutated after initial load; likely context injection, not a blocker by itself.
/setup/integrations/registries- Wizard remains one of the strongest product flows.
/setup/integrations/runtime-hosts- Late URL mutation, but page renders.
/setup/integrations/advisory-vex-sources- Loaded with grouped categories and looked materially populated.
- Late URL mutation observed.
Topology
/setup/topology/overview- Good information structure but it mutates URL after initial load.
- Content still leans heavily on degraded/unknown status without enough explanation.
/setup/topology/map,/setup/topology/targets,/setup/topology/agents- Similar late URL mutation pattern.
- Topology as a concept is present, but a fresh user still does not get a crisp "here is how you model your current Docker/host estate" guided path from the normal navigation alone.
Security And Triage
/security- Strong shell, but still fixture-heavy or trust-ambiguous.
/security/findings- Weak compared with the rest of Security.
- No clear heading in the route survey and the surface starts from a "no baseline recommendations" framing, which is not a first-time user's mental model.
/security/vulnerabilities- Richer, but clearly showing seeded-looking CVE content.
/security/risk- Broken.
/security/unknowns- Broken.
/security/disposition- Loaded in the route survey; not broken in that pass.
/triage/artifacts- Still a compelling concept, but it drops URL context and therefore feels slightly detached from the rest of the scoped application shell.
Releases
/releases/versions- Good catalog framing.
/releases/runs- Good concept and filters.
/releases/deployments- Looks operationally real but likely fixture-backed.
/releases/approvals- Honest empty state.
/releases/promotions- Honest and well explained.
/releases/promotions/create- Strong conceptual wizard.
/releases/bundles- Good explanation of digest-first identity and validation gates.
- Release management as a category is one of Stella's clearest strengths.
Policy
/ops/policy/overview- Still a strong shell.
/ops/policy/governanceand/ops/policy/simulation- Loaded cleanly and present a serious operator-facing control plane.
/ops/policy/vex- Broken by upstream runtime failure.
- Policy pages also show context drift through the topbar's
Policy: No baseline, which clashes with other shells showingCore Policy Pack latest.
Evidence
/evidence/overview- Strong overview but context drift is visible.
/evidence/capsules- Honest empty state: create a release first.
/evidence/verify-replay- Strong concept surface but drops URL context.
/evidence/exports- Useful structure, but also drops URL context and shows aborted background requests.
/evidence/audit-log- Well explained, but the all-zero event story damages trust.
Operations
/ops/operations- Good summary shell.
/ops/operations/doctor- Promising and informative.
/ops/operations/signals- Reads like realistic ops data but may be seeded; trust ambiguity remains.
/ops/operations/feeds-airgap- Good operator language and healthy-looking structure.
/ops/operations/notifications- Strong separation from Setup Notifications, but it drops tenant/region context in the URL and topbar.
/ops/operations/data-integrity- Interesting concept, but title duplication (
Data Integrity - StellaOps - StellaOps) and aborted background requests make it feel less finished.
- Interesting concept, but title duplication (
/ops/operations/health-slo- Weak snapshot in this environment: no services available despite a clearly running system.
/ops/operations/dead-letter- Functional shell, but context drift is again visible.
Console Admin, User Preferences, Docs, Recovery Pages
/console-admin/*- Mixed quality.
- Branding works best.
- Tenants/clients/tokens feel incompletely wired.
/settings/user-preferences- One of the cleanest and most polished pages in the product.
/docs- Best explanation of Stella's purpose.
/console/profile- Good 403 page with sensible recovery links.
/nonexistent- Good 404 page with recovery links.
Action-Level Findings
Shared shell controls are more real than the first pass suggested, but not always legible
- Global search behaves more like AI or knowledge retrieval than command navigation. Searching
scanfrom User Preferences returned:Best answerRelated QuestionsAsk AI- knowledge snippets and endpoint references
- That behavior is useful, but it is a surprise if the user expects
Ctrl+Kor the shell search box to act like a route launcher. - The region control is not a simple single-select picker. Toggling
EU WestfromREGION 4 regionsresulted in:- URL change to
regions=apac,us-east,us-west - topbar change to
REGION 3 regions
- URL change to
- The control appears to behave as a multi-select toggle, but the shell does not explain that model clearly.
- The window control works well. Selecting
7dupdated the topbar toWINDOW 7dand addedtimeWindow=7dto the URL. - The stage control exposes
All / Dev / Stage / Prod, but choosingProdleft the shell atSTAGE All. This looks like a real state-application defect. - Deep-link scope hydration is still inconsistent. In different authenticated runs:
/releases/versions/newloaded withREGION All regionsandENV No env defined yet/releases/promotions/createloaded once withREGION No regions defined- later in-session navigation to the same routes kept the active
3 regions / All environments / 7dscope correctly
Setup and admin actions reveal some of Stella's strongest product design
- Guided setup entry works and feels approachable:
Welcome to Stella Ops- autodetection steps
- simple "ready" state
- The weak point is that the autodetection copy is theatrical rather than informative. It does not tell the operator what was actually detected or what it means for next steps.
- Identity & Access is one of the strongest action surfaces in the product:
Usersexplains enrollment flow clearlyAdd Useropens an inline create formRolesexposes built-in permissions in a way an operator can actually inspectOAuth ClientsandAPI Tokensexplicitly explain that setup is read-only here and point the user to the canonical admin routesTenantsshows a real, editable tenant row with suspend and branding actions
- Trust & Signing improves once actions are tried:
Watchlistopens a real workspace with tuning guidance, noisy-rule framing, and a return path to notificationsAudit Logopens and shows example trust events
- The weaker part of Trust & Signing is discoverability inside the overview.
Signing Keys,Trusted Issuers, andCertificatesdid not obviously move the user out of the overview in action testing, whileWatchlistandAudit Logclearly did. - Setup Notifications and Ops Notifications are one of the best paired workflows in the product:
- setup clearly owns lifecycle, templates, throttles, and routing design
- ops clearly owns live delivery validation and test sends
- both pages link to each other cleanly
- Console Admin Branding is another strong page:
- practical token editing
- live preview
- safe, understandable scope
- Console Admin Tenants remains weak:
- heading loads
Create Tenantbutton renders- body still says
Loading tenants...
Evidence and operations actions split cleanly into "genuinely useful" and "still suspicious"
- Export Center is one of the strongest true action surfaces in Stella.
Create Profileopens a real modal with:- profile name
- description
- export format choices
- include/exclude content switches
- schedule options
Run Nowis not just decorative. It created a new completed export run and surfaced output details such as:StellaBundle (OCI referrer)- completed run ID
- output path under
/exports/... - download action
- Audit Log
View All Eventsworks and exposes:- module filters
- action filters
- severity filters
- date-range filters
- The trust problem remains: the event table still showed
0 events loadedafter extensive product use in this session. - Doctor Diagnostics is one of the clearest examples of a real, valuable action path:
Quick Checkran successfully- result set was not a no-op
- output showed
7 passed / 1 warnings / 1 failed / 5 skipped / 14 total / 1.1s
- This is important because it proves at least some cross-service operator workflows are wired and useful in local mode.
- Replay & Verify still has a real action-level problem:
- the page surfaces a visible
Start Verificationbutton - both locator-based and text-based attempts found the control
- the button remained effectively unclickable because the element sat outside the usable viewport/drawer geometry
- the page surfaces a visible
- That looks less like a missing feature and more like a layout or interaction defect in the quick-verify panel itself.
- The 403 and 404 recovery pages behave well once authenticated:
Go to Dashboardfrom/console/profilereturns to Mission ControlGo to Dashboardfrom/nonexistentdoes the same
Integrations, releases, and promotions hold up much better once actions are pushed
- The registry onboarding flow is stronger than the earlier route-only pass suggested.
- The wizard starts directly in
Connection & Credentials, even though the stepper still shows:1 Provider2 Connection3 Scope4 Schedule5 Preflight6 Review
- That step numbering is slightly confusing because the provider choice is implicit rather than visibly completed.
- After filling:
- endpoint
AuthRef URI- project / namespace
the
Nextbutton enabled and advanced successfully intoDiscovery Scope.
- Discovery Scope uses a good guardrail:
- repositories / namespaces / tag patterns are explicit
- creation is blocked until at least one scope is defined
- Release creation also works once the form is driven by actual input placeholders instead of label-based automation:
- filling release name, version, and target environment advanced from
Basic InfotoComponents - this confirms the earlier failure was mostly selector/accessibility related, not a broken route
- filling release name, version, and target environment advanced from
- Promotion creation is similarly real:
- entering a release ID
- clicking
Load Target Environmentsadvanced the flow toSelect Region and Environment Path
- That means the release and promotion shells are not just static demos; they can be driven into later steps by a fresh operator.
Topology and policy are more operational than the initial dashboard impression
- Topology Overview ->
Open Regions & Environmentsworks and lands on a usable region-first inventory page. - The topology map has working zoom and reset controls, but not consistently:
+workedResetworked-was not reliably clickable by visible text
- That suggests an accessibility or control-labeling issue, not a dead feature.
- Agent Fleet still has a control problem:
GroupsandAll Agentsare visibleAll Agentswas not interactable in the action pass
- Policy studio top-level navigation works well:
GovernanceSimulationRelease Gates
- Governance sub-tabs also work and expose meaningful content:
ValidatorPlaygroundAudit
- The Governance page is more mature than it first appears. It exposes:
- current risk-budget utilization (
72%) - contributors
- alerts
- budget acknowledgements
- current risk-budget utilization (
- Simulation sub-tabs are also real:
ConsoleLintCoveragePromotion Gate
- Several simulation actions do real work:
Run Lintreturned a concrete lint result set with1 error / 1 warning / 1 infoRun Testson Coverage did not materially change visible counters, which makes the action feel more like a refresh over seeded dataCheck Requirementson Promotion Gate returned a real blocked state with actionable reasons
- Policy Lint is especially strong. It produced specific issues and suggested fixes, including:
- missing explicit shadow target environment
- coverage floor below the recommended baseline
- operator override missing evidence reference
- Policy Promotion Gate is also credible:
- blocked because shadow mode is not active
- coverage passed
- lint still has a blocking issue
- security review passed
- override path exists, with required reason capture
- Policy Simulation Console can be made to run if the operator provides actual input:
- select policy pack
- select SBOM
- set environment
- After that,
Run Simulationsucceeded and returned:Completed 187ms4 Total Findings1 deny3 warn- one changed component under diff-versus-active policy
- Release Gates is less cohesive at the action layer:
- clicking
Reachabilityjumps out of the policy shell intoSecurity / Reachability VEXandFreshnessare not directly clickable from the visible gate summary
- clicking
- That cross-shell jump can be justified, but it weakens the "one operator shell" promise stated on the Policy overview.
Action realism is now easier to separate from seeded behavior
- Actions that felt genuinely live in this session:
- Doctor
Quick Check - Export Center
Run Now - registry wizard progression
- release wizard progression
- promotion target loading
- policy lint
- policy promotion requirement check
- policy simulation console run
- Doctor
- Actions that still feel seeded, blocked, or trust-ambiguous:
- audit log event counts
- replay verification CTA geometry
- policy coverage rerun
- parts of the dashboard and reachability data
Cross-Cutting UX / Product Findings
FRESH-01 - Stella hides its adoption story behind docs instead of leading with it
Severity: HIGH
What a new technical user needs to learn immediately:
- what part of the current CI/CD pipeline stays in CI
- what Stella takes over
- how to start if they deploy with Compose, hosts, or scripts
Where Stella explains this well:
/docs
Where Stella should explain this but does not:
/welcome- first authenticated landing on
/mission-control/board
FRESH-02 - Context is not trustworthy enough across shells
Severity: HIGH
Problems observed:
- some routes keep tenant/region query context
- some silently drop it
- some shift topbar state from concrete scope to
All regions / No env defined yet - policy indicator changes between
Core Policy Pack latestandNo baseline
Impact:
- makes deep links and mental model of scope unreliable
- especially damaging for evidence, ops, and admin surfaces
FRESH-03 - Broken setup/security pages appear too early in the journey
Severity: HIGH
Broken or partially broken pages a new operator is likely to visit early:
- Identity Providers
- Risk
- Unknowns
- VEX
- Console Admin Tenants
Impact:
- creates the impression of unfinished product edges before the user reaches Stella's strongest capabilities
FRESH-04 - Seed realism is a double-edged sword
Severity: HIGH
Positive:
- avoids a dead empty product
- helps pages look complete
Negative:
- makes it hard to know what Stella actually did during this session
- blurs the difference between seeded narrative and earned evidence
FRESH-05 - Several pages mutate URL after initial render
Severity: MEDIUM
Affected route families include:
- integrations
- topology
- security
- operations
Likely cause:
- late context/state injection or route normalization
Impact:
- makes the product feel less deterministic than its messaging promises
FRESH-06 - Some surfaces overuse Stella-internal wording
Severity: MEDIUM
Examples:
- Decisioning Studio
- canonical shell
- digest-first identity
- mutable VEX actions
- release-control plane
These terms are defensible after onboarding, but they arrive too early and too often for a first evaluator.
Prioritized Backlog From This Session
Critical / Immediate
- Fix
vexhubstartup migration so local runtime reaches clean ready state. - Repair
/security/riskso the page is not built on 404s. - Repair
/security/unknownsor replace it with a truthful disabled/empty state. - Repair
/setup/identity-providersso first-time admin setup does not hit a 403 dead end. - Fix or intentionally hide broken
/console-admin/tenants,/console-admin/clients, and/console-admin/tokensloading states.
High
- Rewrite
/welcomearound adoption outcomes, not Stella-brand phrasing. - Make the dashboard teach the next action explicitly for first-time users.
- Normalize tenant/region/policy context behavior across Evidence, Ops, Admin, Docs, and Triage.
- Make seeded/demo content visibly labeled or switch more surfaces to honest empty state.
- Explain scan simulation or queue semantics directly on
/security/scanwhile local engines are incomplete. - Ensure audit log reflects actual local actions or clearly explain why it does not.
- Fix the Replay & Verify quick-verify button so the visible CTA is actually clickable.
- Clarify whether the shell search and
Ctrl+Kare route navigation, knowledge search, or AI answer surfaces. - Make deep-link scope hydration consistent on release and promotion routes.
Medium
- Reduce late URL mutation where possible.
- Make
/security/findingsmore legible for first-time use. - Sharpen the distinction between Security Posture, Security Reports, and Evidence Export.
- Reduce duplicate or inconsistent topbar state such as
Policy: No baselineversusCore Policy Pack latest. - Clean up low-fidelity details like the duplicated title on Data Integrity.
- Make region selection semantics explicit; the control currently behaves like a multi-select toggle but reads like a single picker.
- Fix the stage selector so choosing
ProdorStageactually applies to shell state. - Make the registry wizard's implicit provider step less confusing or reflect the true current step.
- Ensure the Agent Fleet
All Agentsview switch is keyboard- and click-accessible. - Decide whether policy coverage reruns are computed live or fixture-backed and label that behavior clearly.
Session Verdict
Stella Ops has enough depth that the product still looks serious after a much larger investigation. The strongest areas are:
- Setup
- Integrations
- Release Management
- Evidence / Replay
- Operations Doctor
- Docs
But the first-run experience still has too many trust-breaking edges for a fresh evaluator:
- startup not clean
- critical setup/security pages broken
- context drift across shells
- scan flow not closing
- audit story not matching real activity
- ambiguity about which data is real versus seeded
This deeper pass now has action-level evidence behind it. Stella is not failing because it lacks surface area; it is failing the first-time evaluation because too many of its genuinely strong workflows are hidden behind startup defects, inconsistent scope handling, and a few key trust-breaking action gaps. When the actions do work, the strongest parts of Stella are now clear:
- registry onboarding
- release and promotion progression
- export generation
- doctor diagnostics
- policy linting and promotion-readiness checks
- policy simulation with actual result output