Skip to content

chore(frames-first): shrink uncovered residual 116→58, exclude app infra - #734

Merged
izzywdev merged 2 commits into
masterfrom
claude/multi-tenant-portal-arch-k5b8fy
Aug 26, 2026
Merged

chore(frames-first): shrink uncovered residual 116→58, exclude app infra#734
izzywdev merged 2 commits into
masterfrom
claude/multi-tenant-portal-arch-k5b8fy

Conversation

@izzywdev

Copy link
Copy Markdown
Owner

📋 Description

Second frames-first coverage pass (follow-on to #717), completing the classification of the uncovered UI surface so the warn → fail flip becomes a small, named decision rather than a vague 100+-file cliff. Part of task #7's follow-through.

Uncovered feature-UI files: 290 → 116 (#717) → 58 (this PR).

🔄 Type of Change

  • 🔨 Governance / gate coverage — nonFeaturePaths + implementation.paths + policy ratchet

No runtime/API/UI behavior changes. gate-frames-first: OK — this PR changes no feature UI (only design/frames/**/manifest.json + governance/), so there is no BLOCKED risk.

🔧 Implementation Details

Changes Made

  • nonFeaturePaths — exclude structural app infra that can never have frames: frontend/src/{contexts,lib,platform,services,utils}, App.tsx (router table), index.css, packages/*-ui/src/test/**, **/.gitattributes. Non-rendering plumbing, not feature screens — kept deliberately tight per the policy's "over-excluding guts the gate" warning (the rendering shell is not excluded; it stays in the named residual for an owner call).
  • Map real code to features (point-at-reality):
    • packages/auth-ui/src/** + LoginPage.tsx → the approved auth-experience feature. The frames planned a never-built auth-experience-ui; the code actually lives in auth-ui. build.packages corrected to @fuzefront/auth-ui. This removes auth-ui from the flip blockers.
    • The config / org / billing / member / employee page-wrappers under frontend/src/pages/** → their respective features.
  • Re-stamped the 7 edited manifests (implementation.paths is part of the content hash; approval keys are excluded, so existing approved flags are undisturbed). All 21 stamps clean.
  • ratchet.knownUncovered reduced to the precise NAMED residual: chat-ui (no frames at all), identity invites/ + shared common/page shells, and the frontend/src app shell (6 pages — Dashboard/Admin/Help/Status/Test/AcceptInvite — plus the shell/guard components). Each now needs a per-item owner decision (author a frame, or declare structural), not a mechanical mapping.

Why uncovered.mode stays warn

Flipping to fail would still fail the next PR touching any of the 58 genuinely-unframed files — chat-ui foremost (zero frames), and the app-shell components which need a one-time "is shell chrome feature UI or structural?" call from the owner. So the flip is not yet safe; the policy now documents the exact short worklist. Owner: @izzywdev.

🧪 Testing

  • node scripts/stamp-frames.mjs --check → all 21 stamps up to date.
  • node --test scripts/__tests__/stamp-frames.test.mjs → 3/3 (algorithm pin intact; account-security unchanged this pass).
  • node scripts/check-frames-first.mjs --base origin/mastergate-frames-first: OK (0 feature-UI files changed).
  • node scripts/check-frames-first.mjs --report-uncovered → 58 (down from 116).
  • governance/frames-first-policy.json parses as valid JSON.

🚨 Breaking Changes

None.


🤖 Generated with Claude Code


Generated by Claude Code

Second frames-first coverage pass, completing the classification of the
uncovered surface toward a safe warn→fail flip.

- nonFeaturePaths: add the structural app infra that can never have frames —
  frontend/src/{contexts,lib,platform,services,utils}, App.tsx, index.css,
  packages/*-ui/src/test/**, **/.gitattributes. These are non-rendering
  plumbing, not feature screens (kept tight per the policy's warning).
- Map real code to features (point-at-reality): auth-ui → the approved
  auth-experience feature (frames planned the never-built auth-experience-ui);
  the config/org/billing/member/employee page-wrappers → their features.
  auth-experience build.packages corrected to @fuzefront/auth-ui.
- Re-stamped the 7 edited manifests (implementation.paths is part of the hash).
- ratchet.knownUncovered reduced to the precise NAMED residual: chat-ui (no
  frames at all), identity invites/ + common/page shells, and the frontend
  app shell (6 pages + components). Each now needs a per-item owner decision
  (author a frame, or declare structural), not a mechanical mapping.
- uncovered.mode stays "warn": the flip would still fail any PR touching the
  58 genuinely-unframed files (chat-ui foremost), so it is not yet safe.

gate-frames-first: OK (this PR changes no feature UI). All 21 stamps clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0127R9Zcw92tmBkxUUuLEB79
@github-actions
github-actions Bot enabled auto-merge (squash) August 18, 2026 22:01
@github-actions

Copy link
Copy Markdown
Contributor

Automated code review (gate-code-review)

Credit balance is too low

Report-only — this check never blocks merge.

@github-actions

Copy link
Copy Markdown
Contributor

Automated code review (gate-code-review)

Credit balance is too low

Report-only — this check never blocks merge.

@izzywdev
izzywdev merged commit 6798cdc into master Aug 26, 2026
55 checks passed
@izzywdev
izzywdev deleted the claude/multi-tenant-portal-arch-k5b8fy branch August 26, 2026 05:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant