TenantAtlas/specs/355-platform-sellable-smoke-matrix/repo-truth-map.md
ahmido f35782a163 feat: platform sellable smoke matrix (spec 355) (#426)
Added artifacts, screenshots, and documentation for the platform sellable smoke matrix. Fixed a bug in FindingRiskGovernanceResolver and updated related tests.

Co-authored-by: Ahmed Darrazi <ahmed.darrazi@live.de>
Reviewed-on: #426
2026-06-05 10:42:31 +00:00

12 KiB

Repo Truth Map: Spec 355 - Platform Sellable Smoke Matrix

Status: implementation complete / browser-verified
Branch: 355-platform-sellable-smoke-matrix
Date: 2026-06-05
Baseline commit before prep branch: a9c54205 (feat: finding exceptions accepted risk resolution guidance v1 (spec 354) (#425))

Branch And Working-Tree Safety

  • Starting branch before prep: platform-dev
  • Initial git status --short --branch: clean
  • Initial git diff --stat: empty
  • Spec Kit branch created via repo script:
    • .specify/scripts/bash/create-new-feature.sh --json --short-name 'platform-sellable-smoke-matrix' --number 355 'Platform Sellable Smoke Matrix'
  • Current branch after setup: 355-platform-sellable-smoke-matrix
  • Current uncommitted change before writing prep artifacts: only specs/355-platform-sellable-smoke-matrix/

Why 355 Was Selected

  • The user provided Spec 355 directly, so this is not an auto-selected backlog refresh.
  • Specs 351-354 already productized the main operator-guidance lanes, but they did so one surface at a time.
  • The next honest question is integrated sellability, not another isolated feature:
    • Does the first blocker make sense?
    • Does the next action stay dominant?
    • Does scope continuity survive the click?
    • Are customer-safe boundaries still truthful?
    • Do evidence and proof surfaces support trust instead of pulling the operator into diagnostics-first detail?

Why Close Alternatives Were Deferred

  • Spec 356 (Review Pack PDF/HTML Renderer v1) depends on the underlying operator/productization flow being coherent first.
  • Spec 357 (Customer Portal Boundary Contract) should not be promoted before customer-safe boundary truth is proven inside the current operator surfaces.
  • Spec 358 (Private AI Resolution Suggestion Foundation) is intentionally later than human-guided workflow stability.
  • Spec 359 (Localization v1) is a likely follow-up if this matrix exposes mixed-language or dominant-copy gaps, but it should not hide workflow incoherence.
  • Spec 360 (Portfolio / Cross-Tenant Action Readiness) is broader than the current single-platform sellable gate.

Completed-Spec Guardrail Result

Related spec Current repo signal Guardrail handling for Spec 355
Spec 351 - Review Output Resolve Actions v1 commit d4e4d2d1, checked implementation tasks, residual P2 browser notes, spec header still Draft runtime context only; do not normalize or silently erase historical findings
Spec 352 - Environment Dashboard Operator Guidance Consolidation commit 9a564d6b, repo-truth says implemented direct dependency; use as the dashboard baseline
Spec 353 - Provider Connections Resolution Guidance v1 commit d2876af9, spec says implemented with close-out audit pending runtime context only; use committed behavior, not checklist wording, as truth
Spec 354 - Finding Exceptions / Accepted Risk Resolution Guidance v1 commit a9c54205, checked tasks, screenshots, browser smoke test file exists, spec header still Draft direct dependency; verify named blocker conditions explicitly before final readiness verdict

No completed spec package is being normalized back into preparation-only wording.

Dependency Gate Verification

Spec 355's own draft required:

  • Specs 351-354 closed/committed
  • Spec 354 patched, browser-verified, and free of specific open P1/P2 findings around:
    • accepted-risk state priority
    • approval queue scope continuity
    • dominant guidance localization
    • fake/inert recommended action semantics

The implementation-phase verification completed this gate:

  • accepted-risk state priority: verified in browser on expired and expiring focused queue states
  • approval queue scope continuity: verified from Governance Inbox into the focused accepted-risk lane with preserved back-link context
  • dominant guidance localization: initially failed in the German focused queue lane because FindingRiskGovernanceResolver returned hardcoded English warning copy; fixed in-scope and re-verified
  • fake or inert recommended action semantics: not observed in the tested flows

Result:

  • implementation proceeded legitimately
  • final readiness language is no longer blocked by the Spec 354 dependency gate

Primary Runtime Surfaces

Surface Repo truth Why it matters to Spec 355
EnvironmentDashboard environment-owned command surface with implemented top guidance from Spec 352 starting point for first-blocker coherence
ProviderConnectionResource workspace provider hub with implemented guidance from Spec 353 provider-owner destination for dashboard blocker routing
EnvironmentRequiredPermissions environment-bound provider-readiness surface with implemented guidance from Spec 353 verifies decision-first provider blocker explanation
CustomerReviewWorkspace workspace review hub with implemented review-output guidance and action mapping from Spec 351 owner surface for review-output blocker resolution
ViewEnvironmentReview review-owner detail surface verifies no duplicate CTA rails and customer-safe boundary discipline
FindingExceptionsQueue workspace accepted-risk queue with implemented guidance from Spec 354 owner surface for accepted-risk follow-up
ViewFindingException accepted-risk lifecycle detail verifies accepted-risk guidance continuity and action safety
GovernanceInbox workspace-wide operator queue with existing productization and browser smoke history cross-domain workbench continuity check
EvidenceOverview workspace-wide evidence hub verifies evidence path and calm/blocked evidence messaging
ViewEvidenceSnapshot evidence basis detail owner proof surface for evidence detail when review/provider flows deep-link into it
OperationRunResource / operation detail routes workspace operation proof truth verifies run proof and follow-up traceability

Existing Proof And Browser Assets

Asset Current repo truth
Local/testing login helper /admin/local/smoke-login exists in apps/platform/routes/web.php
Review ready-path fixture helper tenantpilot:review-output:seed-browser-fixture exists
Browser smoke for Governance Inbox apps/platform/tests/Browser/Spec346GovernanceInboxOperatorWorkflowSmokeTest.php exists
Browser smoke for review-output actions apps/platform/tests/Browser/Spec351ReviewOutputResolveActionsSmokeTest.php exists
Browser smoke for dashboard guidance apps/platform/tests/Browser/Spec352EnvironmentDashboardGuidanceSmokeTest.php exists
Browser smoke for provider readiness apps/platform/tests/Browser/Spec353ProviderReadinessGuidanceSmokeTest.php exists
Browser smoke for accepted-risk guidance apps/platform/tests/Browser/Spec354AcceptedRiskGuidanceSmokeTest.php exists
Existing screenshots for key flows Spec packages 351-354 already contain screenshots for dashboard, provider, review, and accepted-risk surfaces

Coverage Gaps That Spec 355 Should Not Hide

Area Repo truth Implication
Evidence Overview (UI-044) route-inventory entry exists, but no page report or screenshot is currently linked there use Spec 355 artifacts first; do not claim strong durable audit history yet
Workspace operation detail (UI-017) route-inventory entry exists, but no page report is linked there use Spec 355 matrix/report to capture proof-path observations
Spec 351 close-out state historical browser notes still mention residual P2 items the sellable gate must verify whether those notes still reproduce
Spec 354 close-out shape screenshots exist, but no spec-package browser-flow audit artifact is present dependency gate must be runtime-verified, not assumed

Existing Fixture And Context Signals

Need Current signal
Review-output blocked flow Spec 351 smoke history plus current runtime surface and fixture command
Review-output ready flow tenantpilot:review-output:seed-browser-fixture exists
Provider blocker flow Spec 352/353 smoke history plus current provider-readiness surfaces
Accepted-risk expiring / expired flow Spec 354 runtime, screenshots, and browser smoke test exist
Governance Inbox item flow Governance Inbox page and existing browser smoke exist
Evidence path Evidence Overview and evidence-detail surfaces exist, but fixture richness must still be inventoried
Operation proof path operation hub/detail surfaces and proof-link helpers exist, but fixture richness must still be inventoried
No urgent action state dashboard/provider/review surfaces already claim calm states in neighboring specs; Spec 355 must verify a calm case still exists in current data

Fixture Inventory Actually Used

Need Verified local fixture used in Spec 355
Dashboard provider blocker workspace spec-352-guidance-browser-audit, environment spec-352-audit-provider-blocker, smoke-login user smoke-requester+352@tenantpilot.local
Dashboard review-output blocker workspace spec-352-guidance-browser-audit, environment spec-352-audit-review-output, review #31
Customer Review Workspace environment_id=52, draft review #31
Accepted-risk expiring / expired / incomplete workspace wp, environment spec342-demo-accepted-risks, exceptions #7, #8, #9 after local-only fixture augmentation
Governance Inbox item workspace wp, environment spec342-demo-accepted-risks
Evidence incomplete workspace wp, environment spec342-demo-evidence-incomplete, operation #24
Operation proof workspace wp, environment spec342-demo-evidence-incomplete, operation #24
Calm no-urgent-action state workspace spec-352-guidance-browser-audit, environment spec-352-audit-no-urgent

Browser Matrix Outcome

  • 10 of 10 required flows were exercised in the browser
  • 12 of 12 required screenshots were captured under specs/355-platform-sellable-smoke-matrix/artifacts/screenshots/
  • no browser console errors were observed in the Playwright session
  • no failing network or server responses were observed in the verified flows
  • one in-scope defect was found and fixed during the run:
    • apps/platform/app/Services/Findings/FindingRiskGovernanceResolver.php no longer emits hardcoded English accepted-risk warning messages in the German focused queue lane

Regression Outcome

  • targeted affected Spec 354 regressions passed after the localization fix:
    • tests/Feature/Monitoring/Spec354FindingExceptionsQueueGuidanceTest.php
    • tests/Feature/Findings/Spec354FindingExceptionDetailGuidanceTest.php
    • tests/Unit/ResolutionGuidance/Spec354AcceptedRiskResolutionAdapterTest.php
  • ./vendor/bin/sail php ./vendor/bin/pint --dirty passed
  • git diff --check passed
  • broader Spec351 through Spec354 family-filter runs were attempted in Sail but were killed with exit 137, so close-out rests on the narrower affected regressions plus browser proof

Draft-To-Repo Corrections That Must Stay Explicit

  1. Spec 355 is not a greenfield "sellable mode". It is a verification package over already-existing surfaces.
  2. Evidence Overview and operation detail are real surfaces, but their durable audit/report coverage is lighter than dashboard/provider/review/risk/governance.
  3. Browser proof already exists around many adjacent specs, but no current artifact ties them together into one integrated sellable-readiness call.
  4. Dependency truth for Specs 351-354 is strong but not cosmetically uniform; implementation must verify real blocker closure before claiming readiness.

Out Of Scope Confirmed By Repo Truth

  • no new portal or customer-facing standalone product surface
  • no PDF/HTML review-pack renderer
  • no AI guidance or private AI runtime consumer
  • no provider execution rewrite
  • no Governance Inbox or dashboard rebuild
  • no new persistence or new release-gate entity

Actual Narrow Implementation Shape

  • browser-first verification across the current owner surfaces
  • spec-local matrix, report, screenshot, and fixture artifacts
  • one bounded runtime fix in a pre-existing accepted-risk warning resolver
  • one targeted feature-test expansion to lock the localization boundary