WP-065: Make workspace quality surfaces blocking - #1774
Open
simple-agent-manager[bot] wants to merge 8 commits into
Open
WP-065: Make workspace quality surfaces blocking#1774simple-agent-manager[bot] wants to merge 8 commits into
simple-agent-manager[bot] wants to merge 8 commits into
Conversation
Contributor
Contributor
Author
|
Integration in progress — owned by task 01KZMFQJ4VKXEFB9K9Q64QKDDF. PR Shepherd: hands off until this completes. |
simple-agent-manager
Bot
force-pushed
the
sam/wp-065-every-workspace-36845j
branch
from
August 10, 2026 00:14
1d5edcc to
0e19f7b
Compare
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Summary
WP-065 turns SAM's previously optional or silently omitted workspace quality surfaces into one fail-closed contract. It changes developer tooling, tests, package scripts, and CI only; runtime UI/API/CLI behavior is unchanged.
Changed contracts
testandtest:coveragescripts. The guard rejects missing packages, workspace membership, exact package-name drift, missing scripts, and representative placeholder commands.apps/tail-worker,apps/www,packages/cloud-init,packages/ui, andinfra;tools/og-imageremains outside the contract because it has no tests.packages/terminalnow includes.test.tsxin lint and a dedicated no-emit test TypeScript project.packages/uinow has an installable Storybook 10 production build, Vite/Tailwind token pipeline, dynamic built-story browser discovery, computed semantic-token checks, axe assertions, and screenshots for two themes and two viewports.apps/wwwnow exposes build-backed unit/coverage/browser checks. Its browser build uses a loopback analytics domain and blocks/fails any attempted production analytics request.Regression evidence
Before this change:
pnpm --filter @simple-agent-manager/ui build-storybookexited 0 while reporting that the selected package had nobuild-storybookscript.pnpm turbo run test:coverage --dry=jsonreportedNONEXISTENTfor five tested workspaces: cloud-init, infra, tail-worker, UI, and www.After this change:
pnpm-workspace.yaml, exact package-name drift, missing Storybook/www scripts, incomplete CI wiring, and any missing browser evidence.Validation
pnpm install --frozen-lockfilepnpm --filter @simple-agent-manager/ui build-storybookpnpm quality:browser-evidencepnpm quality:scripts:test: 20 files / 224 testspnpm lintpnpm typecheckpnpm test:coverage: 20/20 Turbo taskspnpm buildStaging Verification
N/A by direct user release contract: this individual source PR must not mutate shared staging; the final mega integration owns staging. No staging deployment or verification was performed.
UI Compliance Checklist
/self-host/also has blocking axe/overflow assertionsEnd-to-End Verification
pnpm-workspace.yamland manifests through the root guard into blocking CItasks/active/2026-08-08-blocking-workspace-quality-surfaces.mdPost-Mortem
Class of bug: silent aggregate-gate omission. Turbo and filtered pnpm commands can return green when an intended workspace/package/script is absent. CI previously asserted only aggregate exit status, so quality surfaces could disappear without a failure. The new package-graph, specialized identity, CI wiring, and evidence-manifest fixtures make participation explicit and fail closed.
Specialist Review Evidence
CLAUDE.mdsync requiredExceptions
Agent Preflight
Classification
External References
Official documentation consulted before implementation: Storybook's React/Vite framework guide (https://storybook.js.org/docs/get-started/frameworks/react-vite), Storybook accessibility testing guide (https://storybook.js.org/docs/writing-tests/accessibility-testing), and Playwright web-server configuration reference (https://playwright.dev/docs/test-webserver).
Codebase Impact Analysis
package.json, workspace manifests,pnpm-lock.yaml: runnable coverage and browser/Storybook command contracts.scripts/quality/: fail-closed workspace identity, CI wiring, and browser evidence validators with mutation fixtures.packages/ui/: Storybook production/test harness only; no shared component runtime source changes.packages/terminal/: test-only lint/typecheck inputs and minimal static-test corrections.apps/www/andapps/tail-worker/: package test commands and deterministic test harnesses only; no runtime source behavior changes..github/workflows/ci.yml: one blocking workspace-quality job with read-only permissions and pinned actions.Documentation & Specs
The exact developer/CI contracts, baseline proof, validation, exception, post-mortem, and reviewer outcomes are recorded in
tasks/active/2026-08-08-blocking-workspace-quality-surfaces.md. No public docs-site content orCLAUDE.mdupdate is required because runtime/product behavior and public setup instructions did not change.Constitution & Risk Check
Principle XI was reviewed: loopback ports, browser viewports/timeouts, story IDs, and action SHAs are bounded test-harness or immutable supply-chain constants, not runtime deployment configuration. Risk is limited to CI duration and test determinism; package identity, browser egress, missing scripts, empty story inventories, and missing screenshot evidence all fail closed. No runtime trust boundary, infrastructure, migration, credential, or secret handling changed.
Generated with Codex.