Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 4 additions & 2 deletions design/frames/app-management/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
"designSystem": "fuse-seam (@fuzefront/design-system)",
"implementation": {
"paths": [
"packages/app-management-ui/**"
"packages/app-management-ui/**",
"frontend/src/pages/ApplicationsPage.tsx",
"frontend/src/pages/AddApplicationPage.tsx"
]
},
"entry": "index.html",
Expand Down Expand Up @@ -316,5 +318,5 @@
]
}
],
"stamp": "57b824eff6788b372e3f62ccbc287205ca7df8e2f3424a40bdc2eddc088ec199"
"stamp": "92c4bcf22ff5ccbd1af53ed8ea6e239f7cf55a43da04b01972343b53fab7b32f"
}
8 changes: 5 additions & 3 deletions design/frames/auth-experience/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@
"designSystem": "fuse-seam (@fuzefront/design-system)",
"implementation": {
"paths": [
"packages/auth-experience-ui/**"
"packages/auth-experience-ui/**",
"packages/auth-ui/src/**",
"frontend/src/pages/LoginPage.tsx"
]
},
"approved": false,
Expand Down Expand Up @@ -94,7 +96,7 @@
"Alert info/success variants β€” add if not already present"
],
"packages": [
"@fuzefront/auth-experience-ui"
"@fuzefront/auth-ui"
],
"externalPackages": [
"@marsidev/react-turnstile (Cloudflare Turnstile React wrapper; keys owner-gated)"
Expand Down Expand Up @@ -235,5 +237,5 @@
]
}
],
"stamp": "456ae00cb0c00235bd5c1d8a5309ab8f15435aea4afbec81f31c57afb867f022"
"stamp": "f37ab8e824256a9946d3c676f2a1e701f06189851b5d66aa621d93e363daeac3"
}
5 changes: 3 additions & 2 deletions design/frames/billing-invoices/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@
"packages/billing-ui/src/i18n/**",
"packages/billing-ui/src/lib/**",
"packages/billing-ui/src/styles/**",
"packages/billing-ui/src/index.ts"
"packages/billing-ui/src/index.ts",
"frontend/src/pages/BillingPage.tsx"
]
},
"approved": true,
Expand Down Expand Up @@ -64,7 +65,7 @@
]
}
],
"stamp": "3b0d054d3fdaf90aba3790b4d57160b498c29b7322ba9a252319cd1683ed9b70",
"stamp": "670c83221a4138174ed74744231356667c07ca163286accb91e2cb02ca542ef8",
"build": {
"packages": [
"@fuzefront/billing-ui"
Expand Down
8 changes: 6 additions & 2 deletions design/frames/config-management/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,11 @@
"designSystem": "fuse-seam (@fuzefront/design-system)",
"implementation": {
"paths": [
"packages/config-ui/src/**"
"packages/config-ui/src/**",
"frontend/src/pages/ConfigPage.tsx",
"frontend/src/pages/ConfigCatalogPage.tsx",
"frontend/src/pages/ConfigAuditHistoryPage.tsx",
"frontend/src/pages/ConfigKeyDefinitionPage.tsx"
]
},
"plan": "docs/planning/epics/EPIC-19-configuration-management-ui.md",
Expand Down Expand Up @@ -435,5 +439,5 @@
"CodeField β€” monospace JSON / duration input"
]
},
"stamp": "c46c7880b4156d3742ce3e9a173ebc0f63b49636f5a12ba5ee91c96b90e998b5"
"stamp": "8a9d7194c7a8bf6ac9e3c4bd48847d4d569d0c46c95dd43d7f7a76f3f7dda7f7"
}
6 changes: 4 additions & 2 deletions design/frames/employee-console/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
"designSystem": "fuse-seam (@fuzefront/design-system)",
"implementation": {
"paths": [
"packages/identity-ui/src/components/employee/**"
"packages/identity-ui/src/components/employee/**",
"frontend/src/pages/EmployeeConsolePage.tsx",
"frontend/src/pages/EmployeeOrgDrilldownPage.tsx"
]
},
"plan": "docs/planning/design-first-ui-pipeline.md",
Expand Down Expand Up @@ -116,5 +118,5 @@
]
}
],
"stamp": "3b08b1061044c2a54f76db7dc9169602bde3023d078e0c41d022084e1668120a"
"stamp": "f5aed2b446cae71b4033ee119a3459d943dfcff10c1b9005d027eadff2caae8c"
}
8 changes: 6 additions & 2 deletions design/frames/identity-context-switcher/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,11 @@
"implementation": {
"paths": [
"packages/identity-ui/src/components/context/**",
"packages/identity-ui/src/components/organizations/**"
"packages/identity-ui/src/components/organizations/**",
"frontend/src/pages/MyOrganizationsPage.tsx",
"frontend/src/pages/OrganizationDetailPage.tsx",
"frontend/src/pages/OrganizationPage.tsx",
"frontend/src/pages/CreateOrganizationPage.tsx"
]
},
"plan": "docs/planning/design-first-ui-pipeline.md",
Expand Down Expand Up @@ -167,5 +171,5 @@
]
}
],
"stamp": "f0ceb3d95d359a1942157f67ef7294733b14cf29942a4e5bbbe1e02cb5c1ab6b"
"stamp": "369316f584f9d7302adac5def681f22c434f2b965720a8a20fa00dfbf349f86d"
}
5 changes: 3 additions & 2 deletions design/frames/member-directory/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"implementation": {
"paths": [
"packages/identity-ui/src/components/directory/**",
"packages/identity-ui/src/components/members/**"
"packages/identity-ui/src/components/members/**",
"frontend/src/pages/MemberDirectoryPage.tsx"
]
},
"plan": "docs/planning/design-first-ui-pipeline.md",
Expand Down Expand Up @@ -98,5 +99,5 @@
]
}
],
"stamp": "4806ce131d11e3fc86298851042d42fcc174a2e22fc4936fc3ca7035924c7d8d"
"stamp": "02333ae705a6156b7901d132055ff7ca7ecd5842c007ecb20994196324d084c5"
}
72 changes: 43 additions & 29 deletions governance/frames-first-policy.json
Original file line number Diff line number Diff line change
Expand Up @@ -63,12 +63,21 @@
"**/.gitignore",
"**/esbuild*.mjs",
"packages/*-ui/scripts/**",
"packages/*-ui/src/test/**",
"**/.gitattributes",
"frontend/src/main.tsx",
"frontend/src/registerServiceWorker.ts",
"frontend/src/App.tsx",
"frontend/src/index.css",
"frontend/src/test/**",
"frontend/src/types/**",
"frontend/src/i18n/**",
"frontend/src/assets/**"
"frontend/src/assets/**",
"frontend/src/contexts/**",
"frontend/src/lib/**",
"frontend/src/platform/**",
"frontend/src/services/**",
"frontend/src/utils/**"
]
},

Expand All @@ -77,24 +86,30 @@
"A changed feature-UI file that matches NO manifest's declared `implementation.paths`.",
"",
"mode=warn β€” report it, exit 0. This is the RAMP, and it is where the repo still is.",
" As of the 2026-08-18 coverage pass, 19 of 22 feature manifests declare",
" `implementation.paths` (was 0). Uncovered feature-UI files dropped from",
" 290 to 116. But the flip is NOT yet safe β€” see below.",
" Two 2026-08-18 passes brought coverage from 0 to 19+ manifests and mapped",
" the real code (incl. auth-ui -> auth-experience, the config/org/billing/",
" member/employee page-wrappers -> their features) plus moved app infra",
" (contexts/lib/platform/services/utils, App.tsx) into nonFeaturePaths.",
" Uncovered feature-UI files dropped 290 -> 116 -> 58. Flip still NOT safe.",
"mode=fail β€” the destination. From then on, feature UI with no frames at all cannot",
" merge, which is the headline promise in CLAUDE.md. The gate does NOT",
" grandfather pre-existing uncovered files (the ratchet is a worklist, not",
" an allowlist), so flipping today would fail the NEXT PR that touches any",
" of the 116 still-uncovered files β€” which are REAL, still-unframed feature",
" UI: `packages/chat-ui/src/**` (no frames at all), `packages/auth-ui/src/**`,",
" and the `frontend/src` app shell (Layout, TopBar, SidePanel, LoginPage,",
" DashboardPage, the config/org pages, ...). That is retroactively blocking",
" the existing app, not just new unframed UI, so mode stays `warn`.",
" of the 58 still-uncovered files. What remains is genuinely unframed and",
" needs an owner decision, not a mechanical mapping: `packages/chat-ui/src/**`",
" (no frames at all), the identity `invites/` + shared `common`/`page`",
" shells, and the `frontend/src` app shell (Layout, TopBar, SidePanel,",
" Dashboard/Admin/Help/Status/Test/AcceptInvite pages, the permission",
" guards). Each is either 'author a frame' or 'declare it structural'.",
" Until then mode stays `warn`.",
"",
"REMOVAL CRITERION for mode=warn: flip to `fail` when every path in",
"`ratchet.knownUncovered` below has either been claimed by a manifest's",
"`implementation.paths` or moved into `nonFeaturePaths`. Concretely, the remaining",
"work before a safe flip is: (a) author frames for chat + auth + the app shell (or",
"(b) decide they are structural and move them into `nonFeaturePaths`). Owner: @izzywdev."
"`implementation.paths` or moved into `nonFeaturePaths`. The list is now small and",
"named (see ratchet): for EACH entry, either (a) author a frame, or (b) declare it",
"structural in `nonFeaturePaths`. The biggest single item is `chat-ui` (no frames at",
"all); the app-shell components need a one-time call on whether shell chrome is",
"'feature UI' or structural. Owner: @izzywdev."
],
"mode": "warn",
"owner": "izzywdev"
Expand Down Expand Up @@ -122,27 +137,26 @@
"",
"Regenerate with: node scripts/check-frames-first.mjs --report-uncovered",
"",
"Updated 2026-08-18 by the coverage pass: 19 of 22 manifests now declare",
"`implementation.paths`, so `billing-ui` and `portal-branding-ui` left this list",
"(fully claimed), and the identity-ui / account-security-ui entries now cover only",
"the shared core + not-yet-framed subdirs rather than the whole package. The globs",
"below are what still blocks a safe flip to `mode: fail`."
"Updated 2026-08-18 by the second coverage pass (58 files): auth-ui, the config/",
"org/billing/member/employee page-wrappers, and account-security-ui all left this",
"list (claimed or covered by an approved feature); the frontend app-infra dirs left",
"it via nonFeaturePaths. What remains is the genuinely-unframed surface below β€” the",
"exact worklist that still blocks a safe flip to `mode: fail`."
],
"observedOn": "2026-08-18",
"observedFileCount": 116,
"observedFileCount": 58,
"knownUncovered": [
"packages/chat-ui/src/**",
"packages/auth-ui/src/**",
"packages/identity-ui/src/**",
"packages/account-security-ui/src/**",
"frontend/src/**",
"frontend/src/components/**",
"frontend/src/contexts/**",
"frontend/src/lib/**",
"frontend/src/pages/**",
"frontend/src/platform/**",
"frontend/src/services/**",
"frontend/src/utils/**"
"packages/identity-ui/src/components/invites/**",
"packages/identity-ui/src/components/common/**",
"packages/identity-ui/src/components/page/**",
"frontend/src/pages/AcceptInvitePage.tsx",
"frontend/src/pages/AdminPage.tsx",
"frontend/src/pages/DashboardPage.tsx",
"frontend/src/pages/HelpPage.tsx",
"frontend/src/pages/StatusPage.tsx",
"frontend/src/pages/TestPage.tsx",
"frontend/src/components/**"
]
}
}
Loading