cuelo 0.10.83 → 0.10.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-path-routes-manifest.json +31 -29
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.js +1 -1
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +14 -0
- package/.next/server/app/_global-error/page.js +3 -3
- package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_global-error.html +1 -1
- package/.next/server/app/_global-error.rsc +1 -1
- package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/_not-found/page.js +2 -2
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/_not-found.html +1 -1
- package/.next/server/app/_not-found.rsc +2 -2
- package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
- package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/api/agent/[id]/account/route.js +1 -1
- package/.next/server/app/api/agent/[id]/bash-output/route.js +1 -1
- package/.next/server/app/api/agent/[id]/events/route.js +2 -2
- package/.next/server/app/api/agent/[id]/route.js +1 -1
- package/.next/server/app/api/agent/new/route.js +1 -1
- package/.next/server/app/api/agent/running/route.js +1 -1
- package/.next/server/app/api/attachment-settings/route.js +1 -1
- package/.next/server/app/api/attachments/[id]/transcription/route.js +2 -2
- package/.next/server/app/api/attachments/draft/route.js +1 -1
- package/.next/server/app/api/attachments/route.js +2 -2
- package/.next/server/app/api/auth/all-providers/route.js +1 -1
- package/.next/server/app/api/auth/api-key/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/login/[provider]/route.js +2 -2
- package/.next/server/app/api/auth/logout/[provider]/route.js +1 -1
- package/.next/server/app/api/auth/providers/route.js +1 -1
- package/.next/server/app/api/character-mode/route.js +2 -0
- package/.next/server/app/api/character-mode/route.js.nft.json +1 -0
- package/.next/server/app/api/character-mode/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/cwd/browse/route.js +1 -1
- package/.next/server/app/api/cwd/validate/route.js +1 -1
- package/.next/server/app/api/default-cwd/route.js +1 -1
- package/.next/server/app/api/display-settings/route.js +1 -1
- package/.next/server/app/api/document-text/route.js +2 -2
- package/.next/server/app/api/experiments/route.js +1 -1
- package/.next/server/app/api/file-index/route.js +1 -1
- package/.next/server/app/api/files/[...path]/route.js +1 -1
- package/.next/server/app/api/git/diff/route.js +2 -2
- package/.next/server/app/api/git/status/route.js +2 -2
- package/.next/server/app/api/github/projects/route.js +1 -1
- package/.next/server/app/api/gpt6/handles/route.js +1 -1
- package/.next/server/app/api/gpt6/reply/route.js +1 -1
- package/.next/server/app/api/gpt6/token/route.js +1 -1
- package/.next/server/app/api/gpt6/web6-session/route.js +1 -1
- package/.next/server/app/api/home/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js +1 -1
- package/.next/server/app/api/live/call/[callId]/route.js.nft.json +1 -1
- package/.next/server/app/api/live/events/route.js +2 -2
- package/.next/server/app/api/live/events/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/events/route.js +2 -2
- package/.next/server/app/api/live/interpret/cloud/events/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/input/route.js +1 -1
- package/.next/server/app/api/live/interpret/cloud/input/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/cloud/route.js +1 -1
- package/.next/server/app/api/live/interpret/cloud/route.js.nft.json +1 -1
- package/.next/server/app/api/live/interpret/route.js +1 -1
- package/.next/server/app/api/live/interpret/route.js.nft.json +1 -1
- package/.next/server/app/api/live/offer/route.js +1 -1
- package/.next/server/app/api/live/offer/route.js.nft.json +1 -1
- package/.next/server/app/api/live/voices/route.js +1 -1
- package/.next/server/app/api/live/voices/route.js.nft.json +1 -1
- package/.next/server/app/api/mcp/route.js +2 -2
- package/.next/server/app/api/model-roles/route.js +1 -1
- package/.next/server/app/api/models/route.js +1 -1
- package/.next/server/app/api/models-config/catalog/route.js +1 -1
- package/.next/server/app/api/models-config/discover/route.js +1 -1
- package/.next/server/app/api/models-config/route.js +2 -2
- package/.next/server/app/api/models-config/test/route.js +1 -1
- package/.next/server/app/api/office-characters/[...path]/route.js +2 -0
- package/.next/server/app/api/office-characters/[...path]/route.js.nft.json +1 -0
- package/.next/server/app/api/office-characters/[...path]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/plugins/route.js +1 -1
- package/.next/server/app/api/project-docs/route.js +1 -1
- package/.next/server/app/api/project-trust/route.js +1 -1
- package/.next/server/app/api/projects/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/prelude/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/runs/[runId]/turns/route.js +1 -1
- package/.next/server/app/api/runs/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/auto-name/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/entries/[entryId]/thinking/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/export/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/route.js +1 -1
- package/.next/server/app/api/sessions/[id]/state/route.js +1 -1
- package/.next/server/app/api/sessions/route.js +1 -1
- package/.next/server/app/api/sessions/search/route.js +1 -1
- package/.next/server/app/api/settings/route.js +1 -1
- package/.next/server/app/api/sidecars/[service]/[...path]/route.js +1 -1
- package/.next/server/app/api/skills/check/route.js +1 -1
- package/.next/server/app/api/skills/install/route.js +2 -2
- package/.next/server/app/api/skills/route.js +2 -2
- package/.next/server/app/api/skills/search/route.js +1 -1
- package/.next/server/app/api/skills/update/route.js +1 -1
- package/.next/server/app/api/subagents/eta/route.js +1 -1
- package/.next/server/app/api/theme/route.js +1 -1
- package/.next/server/app/api/tool-image/route.js +1 -1
- package/.next/server/app/api/update-maintenance/route.js +2 -2
- package/.next/server/app/api/updates/route.js +1 -1
- package/.next/server/app/api/web-access/recovery/route.js +1 -1
- package/.next/server/app/api/web-access/route.js +1 -1
- package/.next/server/app/api/web6/consults/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/favicon.ico/route.js +1 -1
- package/.next/server/app/index.html +1 -1
- package/.next/server/app/index.rsc +4 -4
- package/.next/server/app/index.segments/__PAGE__.segment.rsc +3 -3
- package/.next/server/app/index.segments/_full.segment.rsc +4 -4
- package/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/.next/server/app/index.segments/_index.segment.rsc +2 -2
- package/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/page.js +21 -21
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover/page.js +2 -2
- package/.next/server/app/recover/page_client-reference-manifest.js +1 -1
- package/.next/server/app/recover.html +1 -1
- package/.next/server/app/recover.rsc +2 -2
- package/.next/server/app/recover.segments/_full.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_head.segment.rsc +1 -1
- package/.next/server/app/recover.segments/_index.segment.rsc +2 -2
- package/.next/server/app/recover.segments/_tree.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover/__PAGE__.segment.rsc +1 -1
- package/.next/server/app/recover.segments/recover.segment.rsc +1 -1
- package/.next/server/app-paths-manifest.json +31 -29
- package/.next/server/chunks/{6775.js → 205.js} +2 -2
- package/.next/server/chunks/3379.js +1 -1
- package/.next/server/chunks/7738.js +1 -0
- package/.next/server/functions-config-manifest.json +2 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/pages/404.html +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/app/_global-error/page-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/account/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/[id]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/new/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/agent/running/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachment-settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/draft/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/attachments/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/all-providers/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/login/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/auth/providers/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/character-mode/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/cwd/browse/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/cwd/validate/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/default-cwd/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/display-settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/document-text/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/experiments/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/file-index/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/files/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/git/diff/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/git/status/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/github/projects/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/handles/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/reply/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/token/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/gpt6/web6-session/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/home/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/call/[callId]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/events/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/input/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/cloud/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/interpret/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/offer/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/live/voices/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/mcp/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/model-roles/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/catalog/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/discover/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/models-config/test/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/office-characters/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/plugins/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/project-docs/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/project-trust/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/projects/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/prelude/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/[runId]/turns/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/runs/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/context/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/export/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/[id]/state/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sessions/search/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/settings/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/check/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/install/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/search/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/skills/update/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/subagents/eta/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/theme/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/tool-image/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/update-maintenance/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/updates/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web-access/recovery/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web-access/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/web6/consults/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/{layout-4e22adaca20b3c57.js → layout-9732ddae4dc9638c.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/app/page-8e9c8449e2f53ae8.js +75 -0
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-436da0332762a8e3.js +1 -0
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-436da0332762a8e3.js +1 -0
- package/.next/static/y4k_8nU4FYWcP7nTP4oCU/_buildManifest.js +1 -0
- package/.next/trace +108 -108
- package/.next/trace-build +1 -1
- package/.next/types/app/api/character-mode/route.ts +351 -0
- package/.next/types/app/api/office-characters/[...path]/route.ts +351 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/README.md +1 -1
- package/Tools/CUELO_Setup/files/native-runtime-patch.js +1 -1
- package/Tools/OMP_Global_Config/agent/extensions/character-voice.ts +217 -22
- package/Tools/OMP_Global_Config/agent/extensions/slop-gate/review.ts +1 -1
- package/Tools/OMP_Global_Config/agent/rules/harness-policy.json +2 -1
- package/Tools/OMP_Global_Config/agent/skills/humanizer/LICENSE.txt +21 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/SKILL.md +357 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/UPSTREAM.json +37 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-1.md +17 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-2.md +27 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-3.md +60 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/after-4.md +50 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-1.md +15 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-2.md +27 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-3.md +29 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/examples/before-4.md +23 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/pos-patterns.md +132 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/punctuation-patterns.md +353 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/spacing-patterns.md +132 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/structure-patterns.md +186 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/translation-ese-patterns.md +641 -0
- package/Tools/OMP_Global_Config/agent/skills/humanizer/references/vocabulary-patterns.md +511 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/LICENSE +202 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/README.md +113 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/SKILL.md +121 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/detection.md +411 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/fixes.md +368 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/references/taxonomy.md +343 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/scripts/rules.ru.mjs +23 -0
- package/Tools/OMP_Global_Config/agent/skills/kill-ai-slop/scripts/scan.mjs +508 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/LICENSE +21 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/README.md +62 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/SKILL.md +68 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/examples.md +59 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/phrases.md +128 -0
- package/Tools/OMP_Global_Config/agent/skills/stop-slop/references/structures.md +134 -0
- package/package.json +4 -1
- package/.next/static/chunks/app/_global-error/page-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/account/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/bash-output/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/[id]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/new/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/agent/running/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachment-settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/[id]/transcription/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/draft/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/attachments/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/all-providers/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/api-key/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/[provider]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/auth/providers/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/cwd/browse/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/cwd/validate/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/default-cwd/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/display-settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/document-text/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/experiments/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/file-index/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/files/[...path]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/git/diff/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/git/status/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/github/projects/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/handles/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/reply/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/token/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/gpt6/web6-session/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/home/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/call/[callId]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/events/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/input/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/cloud/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/interpret/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/offer/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/live/voices/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/mcp/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/model-roles/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/catalog/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/discover/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/models-config/test/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/plugins/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/project-docs/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/project-trust/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/projects/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/prelude/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/[runId]/turns/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/runs/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/auto-name/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/context/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/entries/[entryId]/thinking/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/export/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/[id]/state/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sessions/search/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/settings/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/sidecars/[service]/[...path]/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/check/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/install/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/search/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/skills/update/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/subagents/eta/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/theme/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/tool-image/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/update-maintenance/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/updates/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web-access/recovery/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web-access/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/web6/consults/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/app/page-b61cdb3a88126c55.js +0 -75
- package/.next/static/chunks/next/dist/client/components/builtin/app-error-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/forbidden-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/not-found-60d4ba1619c3b27a.js +0 -1
- package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-60d4ba1619c3b27a.js +0 -1
- package/.next/static/vdQU0PJ0EqoAWyaBUHRpd/_buildManifest.js +0 -1
- /package/.next/static/{vdQU0PJ0EqoAWyaBUHRpd → y4k_8nU4FYWcP7nTP4oCU}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,411 @@
|
|
|
1
|
+
# Detection patterns
|
|
2
|
+
|
|
3
|
+
Concrete signals for each tell. `scripts/scan.mjs` encodes these; this file is
|
|
4
|
+
the human reference and the place to widen patterns for a specific stack.
|
|
5
|
+
|
|
6
|
+
**Scan scope.** Frontend source only: `.html .css .scss .tsx .jsx .ts .js .vue
|
|
7
|
+
.svelte .astro .md .mdx .php .twig` plus `tailwind.config.*`. Skip
|
|
8
|
+
`node_modules dist build .git out .next .astro coverage vendor` and anything
|
|
9
|
+
`*.min.*` or a lockfile.
|
|
10
|
+
|
|
11
|
+
**Every match is a lead, not a verdict.** Open the file and confirm. The false
|
|
12
|
+
positives noted below are the usual ways a pattern lies.
|
|
13
|
+
|
|
14
|
+
**Suppression.** Once the user has defended a hit, pin the decision so re-scans
|
|
15
|
+
stay quiet: `--only=` / `--skip=` filter by tell id, `--exclude=` drops paths,
|
|
16
|
+
and comment directives suppress in source — `deslop-ignore` (this line),
|
|
17
|
+
`deslop-ignore-next-line`, `deslop-ignore-file`, each optionally followed by
|
|
18
|
+
tell ids (`/* deslop-ignore-next-line 06 */`). Prefer id-scoped directives so
|
|
19
|
+
other tells still surface on those lines.
|
|
20
|
+
|
|
21
|
+
**Extension.** `--rules=extra.mjs` loads additional tells (same shape as the
|
|
22
|
+
core ones; string patterns compile case-insensitive). Use it for
|
|
23
|
+
language-specific copy rules — English patterns like tell 14's don't fire on
|
|
24
|
+
non-English slop. `scripts/rules.ru.mjs` is a shipped Russian example. Remember
|
|
25
|
+
JavaScript's `\b` is ASCII-only: it never matches next to Cyrillic and most
|
|
26
|
+
non-Latin scripts, so write plain substrings instead.
|
|
27
|
+
|
|
28
|
+
---
|
|
29
|
+
|
|
30
|
+
### 01 Indigo→violet gradient
|
|
31
|
+
```
|
|
32
|
+
rg -n -i 'from-(indigo|violet|purple|fuchsia)-[0-9]+ ?.*to-(purple|violet|fuchsia|pink)-[0-9]+'
|
|
33
|
+
rg -n -i '(linear-gradient|bg-gradient)[^;]*(#6366f1|#8b5cf6|#a855f7|#7c3aed)'
|
|
34
|
+
rg -n -i 'shadow-(purple|violet|indigo)-[0-9]+/[0-9]+'
|
|
35
|
+
```
|
|
36
|
+
*False positives:* a brand that genuinely is purple (check the logo / design
|
|
37
|
+
tokens); a one-off illustration. Slop is the *combination* — purple gradient +
|
|
38
|
+
glow + pill button + "AI-powered" eyebrow.
|
|
39
|
+
|
|
40
|
+
### 02 Gradient headline text
|
|
41
|
+
```
|
|
42
|
+
rg -n 'bg-clip-text.*text-transparent|text-transparent.*bg-clip-text'
|
|
43
|
+
rg -n '(-webkit-)?background-clip:\s*text'
|
|
44
|
+
rg -n -i '-webkit-text-fill-color:\s*transparent'
|
|
45
|
+
```
|
|
46
|
+
*False positives:* a logo wordmark; a single deliberate hero treatment. Slop is
|
|
47
|
+
gradient text used as the default heading style.
|
|
48
|
+
|
|
49
|
+
### 03 Warm "cozy" palette
|
|
50
|
+
```
|
|
51
|
+
rg -n -i '\b(amber|orange|stone)-(50|100|200|300)\b'
|
|
52
|
+
rg -n -i 'bg-\[#(fdf6ec|fef3e2|faf3e8|fff7ed|fdf4e3)\]'
|
|
53
|
+
rg -n -i 'text-amber-[0-9]+|border-amber-[0-9]+'
|
|
54
|
+
rg -n -i 'text-(gray|slate|zinc|neutral)-(400|500)[^"]{0,60}bg-(amber|stone|orange|rose|blue|indigo|green)-'
|
|
55
|
+
```
|
|
56
|
+
*False positives:* a food/coffee/craft brand where warm is the identity. Slop is
|
|
57
|
+
warm-as-default with no brand reason. The last pattern is the sibling tell:
|
|
58
|
+
default gray text dropped onto a tinted surface — the gray was never toned to
|
|
59
|
+
the background; use a darker shade of the surface hue instead.
|
|
60
|
+
|
|
61
|
+
### 04 Default semantic palette
|
|
62
|
+
```
|
|
63
|
+
rg -n -i 'bg-(blue|indigo)-50|bg-amber-50|bg-green-50|bg-emerald-50|bg-red-50'
|
|
64
|
+
rg -n -i 'text-(blue|indigo)-(600|700).*text-(green|emerald)-(600|700)' # multiple stock hues near each other
|
|
65
|
+
rg -n -i 'info.*blue|warning.*amber|success.*green|error.*red'
|
|
66
|
+
```
|
|
67
|
+
*Confirm:* three or four of the stock `-50 / -600` semantic pairs used together
|
|
68
|
+
(info=blue, tip=amber, success=green, error=red), unrelated to the brand. A
|
|
69
|
+
single, deliberate status colour is fine.
|
|
70
|
+
|
|
71
|
+
### 05 One-hue status box
|
|
72
|
+
```
|
|
73
|
+
rg -n -i 'border-(red|amber|yellow|green|blue)-[0-9]+[^"]*text-\1-[0-9]+'
|
|
74
|
+
rg -n -i 'bg-(red|amber|yellow|green)-[0-9]+/(5|10|15|20)'
|
|
75
|
+
rg -n -i '(error|warning|success)[^\n]{0,40}(red|amber|yellow|green)-[0-9]+'
|
|
76
|
+
```
|
|
77
|
+
*Confirm:* one box where border, text, and a `/10` background are all the same
|
|
78
|
+
hue — the whole alert is one colour at three opacities. A single muted accent on
|
|
79
|
+
a neutral surface is fine.
|
|
80
|
+
|
|
81
|
+
### 06 Gradients as atmosphere
|
|
82
|
+
```
|
|
83
|
+
rg -n -i 'radial-gradient|bg-\[radial-gradient'
|
|
84
|
+
rg -n -i 'linear-gradient[^;]*(to bottom|180deg|to top)' # top-lighter surface fill
|
|
85
|
+
rg -n -i 'bg-gradient-to-(b|t)\b[\s\S]{0,40}from-'
|
|
86
|
+
rg -n -i 'repeating-(linear|radial)-gradient'
|
|
87
|
+
rg -n -i 'bg-gradient-to-(br|tr|bl|tl)\b[\s\S]{0,40}from-(emerald|green|teal|cyan|purple|violet|fuchsia)-\d+/(5|10|15|20|25)' # per-card accent-hue wash
|
|
88
|
+
rg -n -i 'box-shadow:[^;]*(#(6366f1|8b5cf6|a855f7|22d3ee|06b6d4)|rgba?\(139|rgba?\(168)' # colored glow accents
|
|
89
|
+
```
|
|
90
|
+
*Confirm:* a page-wide radial glow behind everything, or card surfaces filled
|
|
91
|
+
with a top-to-bottom gradient where a flat colour would do; bento cards each
|
|
92
|
+
washed in a tint of their own accent (green card → green gradient, purple →
|
|
93
|
+
purple); repeating-gradient stripes as surface decoration; colored box-shadow
|
|
94
|
+
glows as dark-mode accents. A gradient that points at something specific is a
|
|
95
|
+
choice, not slop.
|
|
96
|
+
|
|
97
|
+
### 07 Serif-italic on one word
|
|
98
|
+
Hard to grep purely; look for a serif font family or `<em>/italic` applied
|
|
99
|
+
*inside* an otherwise-sans heading.
|
|
100
|
+
```
|
|
101
|
+
rg -n -i 'font-serif|font-family:\s*(georgia|"?playfair|"?lora|"?cormorant)'
|
|
102
|
+
rg -n '<em>|italic' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
103
|
+
```
|
|
104
|
+
*Confirm:* the italic/serif span sits within an `<h1>/<h2>` whose base font is
|
|
105
|
+
sans.
|
|
106
|
+
|
|
107
|
+
### 08 Serif where sans belongs
|
|
108
|
+
```
|
|
109
|
+
rg -n -i 'font-family:\s*[^;]*(playfair|cormorant|lora|"?dm serif|"?libre baskerville)'
|
|
110
|
+
rg -n -i "fontFamily.*(Playfair|Cormorant|Lora)"
|
|
111
|
+
rg -n -i 'font-serif[^"]{0,60}(italic|text-[4-9]xl)|(italic|text-[4-9]xl)[^"]{0,60}font-serif'
|
|
112
|
+
```
|
|
113
|
+
*False positives:* an editorial/publishing product that wants serif. Slop is
|
|
114
|
+
display serif as UI/body on a tool or dashboard — or the oversized italic-serif
|
|
115
|
+
hero headline, now the universal AI-startup landing page uniform. Set it roman
|
|
116
|
+
or use a non-serif display face; a genuinely editorial register may keep it.
|
|
117
|
+
|
|
118
|
+
### 09 Decorative strikes & highlights
|
|
119
|
+
```
|
|
120
|
+
rg -n -i 'line-through' -g '*.{css,scss,tsx,jsx,vue,svelte,astro,html}'
|
|
121
|
+
rg -n '<(mark|s|u|del|strike)[\s>]' -g '*.{md,mdx,html,tsx,jsx,vue,svelte,astro}'
|
|
122
|
+
rg -n -i 'text-decoration:\s*(line-through|underline)'
|
|
123
|
+
```
|
|
124
|
+
*Confirm:* a strike over text that isn't being deleted, an underline that isn't
|
|
125
|
+
a link, a highlighter swipe under a heading — decoration, not annotation. Real
|
|
126
|
+
edits, links, and annotations are fine.
|
|
127
|
+
|
|
128
|
+
### 10 The kicker above every heading
|
|
129
|
+
```
|
|
130
|
+
rg -n -i 'uppercase[\s\S]{0,40}tracking-(wide|wider|widest)|tracking-(wide|wider|widest)[\s\S]{0,40}uppercase'
|
|
131
|
+
rg -n -i '\b(eyebrow|kicker|overline)\b' -g '*.{css,scss,tsx,jsx,vue,svelte,astro,html}'
|
|
132
|
+
rg -n -i 'text-transform:\s*uppercase[\s\S]{0,80}letter-spacing:\s*0?\.[0-9]+em'
|
|
133
|
+
```
|
|
134
|
+
*Confirm:* the same tracked-caps micro-label above the hero *and* every section
|
|
135
|
+
heading, saying what the heading already says (FEATURES over features). A
|
|
136
|
+
kicker that adds a real dimension — a category, a date, a number in a genuine
|
|
137
|
+
sequence — is an editorial device doing its job.
|
|
138
|
+
|
|
139
|
+
### 11 Full-sentence display headline
|
|
140
|
+
```
|
|
141
|
+
rg -n 'text-(5|6|7|8|9)xl' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
142
|
+
rg -n -i 'tracking-tighter?\b[\s\S]{0,40}font-(extrabold|black)|font-(extrabold|black)[\s\S]{0,40}tracking-tighter?\b'
|
|
143
|
+
rg -n -i 'font-size:\s*(clamp\([^)]*[4-9](rem|\.[0-9]+rem)|[5-9][0-9]px|[4-9]rem)'
|
|
144
|
+
```
|
|
145
|
+
*Confirm:* a full sentence (10+ words) at display size, usually extrabold with
|
|
146
|
+
crushed tracking, wrapping to 3+ lines. Two or three words at display size is
|
|
147
|
+
what display sizes are for. Crushed tracking on its own is the same tell:
|
|
148
|
+
`letter-spacing` past the point where characters keep their shapes
|
|
149
|
+
(`rg -n -i 'letter-spacing:\s*-0?\.0[5-9]'`).
|
|
150
|
+
|
|
151
|
+
### 12 Flat type hierarchy
|
|
152
|
+
```
|
|
153
|
+
rg -n '<h[12][^>]*text-(sm|base|lg)\b'
|
|
154
|
+
rg -n -i 'font-size:\s*1[4-8]px' -g '*.css' # then count distinct sizes
|
|
155
|
+
```
|
|
156
|
+
Mostly a visual judgment: open the page and count the sizes actually in use.
|
|
157
|
+
*Confirm:* headings barely bigger than body (steps under ~1.25×), hierarchy
|
|
158
|
+
carried by gray shades instead of size. A deliberately quiet, single-size
|
|
159
|
+
editorial layout with strong spacing is a choice; a dashboard where the page
|
|
160
|
+
title and a table cell match is not.
|
|
161
|
+
|
|
162
|
+
### 13 Highlighted keywords
|
|
163
|
+
```
|
|
164
|
+
rg -n '<mark' -g '*.{md,mdx,html,tsx,jsx,vue,svelte,astro}'
|
|
165
|
+
rg -n 'text-(primary|indigo|purple|violet)-[0-9]+' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
166
|
+
rg -n -i 'font-semibold|font-bold' -g '*.{md,mdx}'
|
|
167
|
+
```
|
|
168
|
+
*Confirm:* multiple colored/`font-semibold` spans inside one paragraph of body
|
|
169
|
+
copy. One accented phrase is fine.
|
|
170
|
+
|
|
171
|
+
### 14 AI copywriting voice
|
|
172
|
+
```
|
|
173
|
+
rg -n -i "not just .{1,40}\bit'?s\b|say goodbye to|meet your new|supercharge|unlock the power|in seconds, not"
|
|
174
|
+
rg -n -i '\b(blazing[- ]fast|effortless|seamless|game[- ]changer|next[- ]level)\b'
|
|
175
|
+
rg -n -i '\b(growth|security|process|privacy|productivity|compliance|feature|innovation) theater\b'
|
|
176
|
+
```
|
|
177
|
+
Also flag paragraphs built from three-word sentences ("Fast. Beautiful. Yours."),
|
|
178
|
+
em-dash triplets, and "we killed the X theater" framing — dismissing something
|
|
179
|
+
as *theater* is a recurring generated-copy tic; say plainly what the thing does
|
|
180
|
+
or doesn't do. *False positives:* a genuine quote; a doc that discusses these
|
|
181
|
+
phrases (like this one).
|
|
182
|
+
|
|
183
|
+
### 15 Emoji everywhere
|
|
184
|
+
```
|
|
185
|
+
rg -n '[\x{1F000}-\x{1FAFF}\x{2600}-\x{27BF}\x{2190}-\x{21FF}\x{2B00}-\x{2BFF}]' -g '*.{md,mdx,html,tsx,jsx,vue,svelte,astro}'
|
|
186
|
+
rg -n -i '(🚀|✨|⚡|🔒|🎉).{0,40}(<|$)' # emoji leading a heading/button/bullet
|
|
187
|
+
```
|
|
188
|
+
*False positives:* emoji inside a code sample being documented; an emoji picker
|
|
189
|
+
feature; user-generated content. Slop is an emoji stuck on *every* heading,
|
|
190
|
+
button, and bullet in your chrome.
|
|
191
|
+
|
|
192
|
+
### 16 Glowing status dot
|
|
193
|
+
```
|
|
194
|
+
rg -n -i 'animate-ping|animate-pulse'
|
|
195
|
+
rg -n -i 'shadow-(green|emerald|lime)-[0-9]+/[0-9]+|box-shadow:[^;]*(0 0|glow)'
|
|
196
|
+
rg -n -i '(ready|online|live)[\s\S]{0,40}(●|rounded-full)'
|
|
197
|
+
```
|
|
198
|
+
*Confirm:* a status dot with a pulsing halo or coloured glow — usually saturated
|
|
199
|
+
green "● Ready / Online." A small flat dot is fine.
|
|
200
|
+
|
|
201
|
+
### 17 Rounded card, colored left border
|
|
202
|
+
```
|
|
203
|
+
rg -n -i 'border-l-4 .*rounded|rounded.* border-l-4'
|
|
204
|
+
rg -n -i 'border-left:\s*[0-9]+px .*;.*border-radius|admonition|callout|\bnote-box\b'
|
|
205
|
+
rg -n -i 'border-2\b[\s\S]{0,40}border-(indigo|purple|violet|blue|pink|green)-[0-9]+'
|
|
206
|
+
```
|
|
207
|
+
*Confirm:* stacked callouts used as decoration on plain list items, not one
|
|
208
|
+
semantic aside. The last pattern is the sibling: a thick accent ring around a
|
|
209
|
+
rounded card to make one tier "pop" — the border fights the rounded corners;
|
|
210
|
+
remove the ring or carry the emphasis another way.
|
|
211
|
+
|
|
212
|
+
### 18 Rounded-square icon tiles
|
|
213
|
+
```
|
|
214
|
+
rg -n -i 'rounded-(lg|xl|2xl) bg-(indigo|purple|blue|green|amber|pink)-(50|100)'
|
|
215
|
+
rg -n -i '(lucide|heroicons|@tabler/icons|react-icons)'
|
|
216
|
+
rg -n -i '\b[wh]-(20|24|28|32)\b[\s\S]{0,40}(<svg|Icon)'
|
|
217
|
+
rg -n '<svg[^>]*(width|height)="(9[6-9]|[1-9][0-9]{2})"'
|
|
218
|
+
```
|
|
219
|
+
*Confirm:* one icon-in-a-tile per feature, in a grid, icons unrelated to
|
|
220
|
+
content — or the same reflex at another size, a giant decorative line icon
|
|
221
|
+
parked in a card as filler.
|
|
222
|
+
|
|
223
|
+
### 19 Max radius + glassmorphism
|
|
224
|
+
```
|
|
225
|
+
rg -n 'rounded-full' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
226
|
+
rg -n -i 'backdrop-blur|backdrop-filter:\s*blur|bg-white/(5|10|20|30)|bg-black/(5|10|20|30)'
|
|
227
|
+
rg -n -i 'border-radius:\s*(9999px|50%|2rem|24px)'
|
|
228
|
+
```
|
|
229
|
+
*Confirm:* `rounded-full` on cards/inputs (not just avatars/pills); blur used as
|
|
230
|
+
the default surface; radius values that don't agree with each other.
|
|
231
|
+
|
|
232
|
+
### 20 Oversized drop shadow
|
|
233
|
+
```
|
|
234
|
+
rg -n -i 'box-shadow:[^;{}]*\b([6-9][0-9]|[0-9]{3,})px' # a 60px+ blur/spread
|
|
235
|
+
rg -n -i 'shadow-\[[^\]]*\b([6-9][0-9]|[0-9]{3,})px' # tailwind arbitrary shadow
|
|
236
|
+
rg -n -i 'filter:[^;{}]*drop-shadow\([^)]*\b([6-9][0-9]|[0-9]{3,})px'
|
|
237
|
+
rg -n -i '\bborder\b[\s\S]{0,40}shadow-(xl|2xl)|shadow-(xl|2xl)[\s\S]{0,40}\bborder\b'
|
|
238
|
+
```
|
|
239
|
+
*Confirm:* the shadow's render range is far bigger than the element casting it —
|
|
240
|
+
a small card/icon under a huge, faint, barely-offset blur (a fog, not a drop).
|
|
241
|
+
A genuinely large surface (a modal, a full hero) with a proportionate shadow is
|
|
242
|
+
fine; so is one small, tight elevation shadow. The last pattern is the "ghost
|
|
243
|
+
card" variant: a hairline border *and* a wide diffuse shadow on the same card —
|
|
244
|
+
two separators doing one job; commit to an edge or an elevation.
|
|
245
|
+
|
|
246
|
+
### 21 Corners that don't nest
|
|
247
|
+
Hard to grep with certainty; flag the same radius token on nested containers.
|
|
248
|
+
```
|
|
249
|
+
rg -n -i 'rounded-(xl|2xl|3xl)' -g '*.{tsx,jsx,vue,svelte,astro,html}' # then check for nesting
|
|
250
|
+
rg -n -i 'border-radius:\s*(1rem|1\.5rem|24px|32px)'
|
|
251
|
+
```
|
|
252
|
+
*Confirm:* an outer box and an inner box carrying the *same* big radius, so the
|
|
253
|
+
corners don't sit concentric. Inner radius should be outer minus the padding; a
|
|
254
|
+
single flat radius scale that already nests correctly is fine.
|
|
255
|
+
|
|
256
|
+
### 22 Border that dies at the corner
|
|
257
|
+
The break is visual (a stroke on the straight edges, none along the arcs);
|
|
258
|
+
grep for the code that produces it — a radius and a border on different boxes.
|
|
259
|
+
```
|
|
260
|
+
rg -n -i 'rounded-(lg|xl|2xl|3xl)[^"]{0,60}overflow-(hidden|clip)|overflow-(hidden|clip)[^"]{0,60}rounded-(lg|xl|2xl|3xl)' # clipping wrapper: check the child for a border
|
|
261
|
+
rg -n -i 'clip-path:\s*inset\([^)]*round'
|
|
262
|
+
rg -n -i 'border-[trbl]\b[^"]{0,60}rounded-(lg|xl|2xl|3xl)|rounded-(lg|xl|2xl|3xl)[^"]{0,60}border-[trbl]\b'
|
|
263
|
+
```
|
|
264
|
+
*Confirm:* a `rounded overflow-hidden` wrapper whose child carries the 1px
|
|
265
|
+
border/dividers — the square ring is erased at every corner by the clip; a
|
|
266
|
+
`clip-path: inset(… round …)` cutting a border off; or a single-side border
|
|
267
|
+
stopping mid-arc on a rounded box. A border set on the rounded element itself
|
|
268
|
+
wraps the arc and is fine; so are straight dividers between square-cornered
|
|
269
|
+
regions.
|
|
270
|
+
|
|
271
|
+
### 23 Badge & pill spam
|
|
272
|
+
```
|
|
273
|
+
rg -n -i 'rounded-full .*(bg-(indigo|purple|green|amber|pink)-(50|100|200))'
|
|
274
|
+
rg -n -i '>(\s*[✨🔥🎉🚀]\s*)?(new|beta|hot|popular|pro|coming soon)\s*<'
|
|
275
|
+
```
|
|
276
|
+
*Confirm:* several decorative pills in chrome. A real version tag is fine.
|
|
277
|
+
|
|
278
|
+
### 24 AI-drawn SVG icons
|
|
279
|
+
Grep finds inline SVG; the judgment is visual.
|
|
280
|
+
```
|
|
281
|
+
rg -n '<svg' -g '*.{tsx,jsx,vue,svelte,astro,html,svg}'
|
|
282
|
+
rg -n -i '<circle[^>]*r="[0-9]' # dot eyes / blob body built from primitives
|
|
283
|
+
rg -n -i '(mascot|blob|logo)\.svg'
|
|
284
|
+
```
|
|
285
|
+
*Confirm:* an inline `<svg>` that's a blob-with-dot-eyes or a cartoon creature
|
|
286
|
+
built from primitive shapes, shipped as the product's mark. A drawn icon set or
|
|
287
|
+
a real designed logo is fine.
|
|
288
|
+
|
|
289
|
+
### 25 Icon in a tint of itself
|
|
290
|
+
```
|
|
291
|
+
rg -n -i 'bg-(indigo|blue|green|amber|red|purple|pink)-[0-9]+/(5|10|15|20)[\s\S]{0,60}text-\1-'
|
|
292
|
+
rg -n -i 'text-(indigo|blue|green|amber|red|purple|pink)-[0-9]+[\s\S]{0,60}bg-\1-[0-9]+/(5|10|15|20)'
|
|
293
|
+
rg -n -i 'rounded-(md|lg|xl)\s+bg-(indigo|blue|green|amber|red)-[0-9]+/(5|10|15|20)'
|
|
294
|
+
```
|
|
295
|
+
*Confirm:* an icon tile whose translucent background is the same hue as the icon
|
|
296
|
+
inside it — every glyph wrapped in a soft colored square. A deliberate opaque
|
|
297
|
+
button surface is fine.
|
|
298
|
+
|
|
299
|
+
### 26 The springy hover
|
|
300
|
+
```
|
|
301
|
+
rg -n -i 'hover:(scale-1[01][0-9]|-translate-y-)'
|
|
302
|
+
rg -n '\btransition-all\b'
|
|
303
|
+
rg -n -i 'cubic-bezier\([^)]*,\s*1\.[2-9][0-9]*' # overshoot easing = bounce
|
|
304
|
+
rg -n -i 'animate-bounce|transition:[^;]*\b(width|height|margin|padding)\b'
|
|
305
|
+
```
|
|
306
|
+
*Confirm:* scale/lift/bounce on hover across cards, buttons, and images, and
|
|
307
|
+
`transition-all` as the default. A drawer that springs as it physically slides
|
|
308
|
+
in is motion doing a job; a card that jumps when the cursor grazes it is not.
|
|
309
|
+
Also flag animating layout properties (width/height/margin/padding) — jank on
|
|
310
|
+
top of the decoration.
|
|
311
|
+
|
|
312
|
+
### 27 The wobbling spinner
|
|
313
|
+
```
|
|
314
|
+
rg -n 'translate\(-50%, ?-50%\)' -g '*.{css,tsx,jsx,vue,svelte,astro,html}'
|
|
315
|
+
rg -n '@keyframes +[a-zA-Z-]*(spin|rotate|load)'
|
|
316
|
+
rg -n -i 'animate-spin'
|
|
317
|
+
rg -n 'transform-origin: *[0-9]'
|
|
318
|
+
```
|
|
319
|
+
*Confirm:* run the page and watch one full revolution — the arc's centre must
|
|
320
|
+
not trace a circle. Code tells: a spin keyframe that sets `transform:
|
|
321
|
+
rotate(…)` on an element centered with `transform: translate(-50%, -50%)` (the
|
|
322
|
+
keyframe replaces the whole property, so the element snaps off-centre and
|
|
323
|
+
orbits); a `transform-origin` that isn't the element's centre; `animate-spin`
|
|
324
|
+
on an emoji or on an SVG whose artwork isn't centred in its viewBox. A
|
|
325
|
+
centered element whose keyframe re-states the translate (`translate(-50%,
|
|
326
|
+
-50%) rotate(360deg)`) is fine.
|
|
327
|
+
|
|
328
|
+
### 28 The all-caps card grid
|
|
329
|
+
```
|
|
330
|
+
rg -n -i 'grid-cols-3'
|
|
331
|
+
rg -n -i 'uppercase[\s\S]{0,30}(text-xs|tracking-wide|tracking-wider)|text-transform:\s*uppercase'
|
|
332
|
+
rg -n -i 'everything you need|why (you.?ll love|choose|teams)'
|
|
333
|
+
```
|
|
334
|
+
*Confirm:* an ALL-CAPS micro-label + number/icon repeated across interchangeable
|
|
335
|
+
cards — a feature grid or a stat-card grid — points unrelated.
|
|
336
|
+
|
|
337
|
+
### 29 The invented stat row
|
|
338
|
+
```
|
|
339
|
+
rg -n -i '\b[0-9]+[km]\+'
|
|
340
|
+
rg -n '99\.9%|24/7'
|
|
341
|
+
rg -n -i '(10k|50k|99\.9|24/7)[\s\S]{0,60}(developers|users|teams|uptime|support|countries)'
|
|
342
|
+
```
|
|
343
|
+
*Confirm:* three big round numbers in a row — a `Nk+`, a `99.9%`, a `24/7` —
|
|
344
|
+
with tiny uppercase labels, in the hero or above the fold. A real, odd,
|
|
345
|
+
sourced figure ("1,847 CI runs yesterday") is the fix, not a hit.
|
|
346
|
+
|
|
347
|
+
### 30 The 01 / 02 / 03 section markers
|
|
348
|
+
```
|
|
349
|
+
rg -n '["'\''>`]0[1-9]["'\''<`]' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
350
|
+
rg -n -i 'text-(7|8|9)xl[\s\S]{0,50}(text-(gray|slate|zinc|neutral)-(100|200)|opacity-(5|10|20))'
|
|
351
|
+
rg -n -i 'step[- ](one|two|three)'
|
|
352
|
+
```
|
|
353
|
+
*Confirm:* giant faint ordinals stapled to *unordered* marketing sections. A
|
|
354
|
+
genuinely ordered sequence — install steps, a changelog, an indexed catalogue —
|
|
355
|
+
has earned its numbers.
|
|
356
|
+
|
|
357
|
+
### 31 Cards inside cards
|
|
358
|
+
Grep gives leads; the judgment is in the rendered DOM.
|
|
359
|
+
```
|
|
360
|
+
rg -n '<(Card|Panel|Box)[^>]*>\s*<\1' -g '*.{tsx,jsx,vue,svelte}'
|
|
361
|
+
rg -n -i 'rounded[^"]*border[^"]*"[\s\S]{0,120}rounded[^"]*border' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
362
|
+
```
|
|
363
|
+
*Confirm:* three or more nested surfaces each with its own border/radius/shadow
|
|
364
|
+
and shrinking padding. A child that is genuinely a separate object (a preview,
|
|
365
|
+
an embed) may keep its own surface.
|
|
366
|
+
|
|
367
|
+
### 32 One gap everywhere
|
|
368
|
+
```
|
|
369
|
+
rg -n '(space-y-4|gap-4)[^"'\''`]{0,80}(space-y-4|gap-4)' # the token twice on one line
|
|
370
|
+
rg -n -c 'space-y-4|gap-4' # per-file counts; high = lead
|
|
371
|
+
```
|
|
372
|
+
Mostly a visual judgment: the grep only finds the token, the tell is the
|
|
373
|
+
*absence of any other value*. Count the distinct spacing values in a component;
|
|
374
|
+
one value for both within-group and between-group distances is the tell.
|
|
375
|
+
*Confirm:* a heading equidistant from its own body and from the previous
|
|
376
|
+
section. A deliberate uniform grid (a photo wall, a calendar) is a choice.
|
|
377
|
+
|
|
378
|
+
### 33 Inter everywhere (evolved)
|
|
379
|
+
```
|
|
380
|
+
rg -n -i 'fonts\.googleapis\.com/css2\?family=(Inter|Space\+Grotesk|Manrope|Plus\+Jakarta)'
|
|
381
|
+
rg -n -i 'font-family:\s*[^;]*("?Inter"?|"?Space Grotesk"?|"?Manrope"?|"?Plus Jakarta Sans"?|"?Geist"?)'
|
|
382
|
+
rg -n 'from ["'\'']next/font/google' -g '*.{ts,tsx,js,jsx}'
|
|
383
|
+
```
|
|
384
|
+
*Confirm:* judgment tell — the faces themselves are good. Slop is the stock
|
|
385
|
+
pairing (Space Grotesk display + Inter body) or Inter-by-default with no sign
|
|
386
|
+
anyone compared alternatives. A team that tried others and landed on Inter made
|
|
387
|
+
a choice; check for any evidence of one (a comment, a brand doc, a deliberate
|
|
388
|
+
fallback stack).
|
|
389
|
+
|
|
390
|
+
### 34 The tasteful terminal (evolved)
|
|
391
|
+
```
|
|
392
|
+
rg -n -i 'font-mono' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
393
|
+
rg -n -i 'font-family:\s*[^;]*(mono|jetbrains|fira code|ibm plex mono|geist mono)'
|
|
394
|
+
rg -n '[╔╗╚╝║═▓▒░]|\$ [a-z]' -g '*.{tsx,jsx,vue,svelte,astro,html,md}'
|
|
395
|
+
```
|
|
396
|
+
*Confirm:* monospace on non-code UI chrome; ASCII banners as decoration;
|
|
397
|
+
near-black with a single warm accent. This one needs judgment most — it's a
|
|
398
|
+
current default, so weigh whether the terminal metaphor actually serves the
|
|
399
|
+
product.
|
|
400
|
+
|
|
401
|
+
### 35 The editorial dashboard (evolved)
|
|
402
|
+
```
|
|
403
|
+
rg -n -i '>\s*Good (morning|afternoon|evening),' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
404
|
+
rg -n -i 'font-serif' -g '*.{tsx,jsx,vue,svelte,astro,html}'
|
|
405
|
+
rg -n -i 'font-family:\s*[^;]*(fraunces|canela|tiempos|didot|freight|reckless|newsreader)'
|
|
406
|
+
rg -n -i 'oldstyle-nums|font-variant-numeric:\s*oldstyle'
|
|
407
|
+
```
|
|
408
|
+
*Confirm:* the serif is on app chrome (a dashboard h1, stat-card numerals),
|
|
409
|
+
not on genuinely editorial content; the greeting-as-headline sits on an
|
|
410
|
+
operational surface; the cream + tracked-caps kicker + deep accent kit came
|
|
411
|
+
as a set. A docs site or essay page in a text serif is not this tell.
|