logicsrc/apps/logicsrc-web/package.json
Anthony Ettinger 046a58bbf9 test(web): fail the build when marketing copy drifts from shipped providers
The last three PRs all fixed the same class of bug. /credential-sharing
and README.md are hand-written copy; the providers they advertise are a
real registry in @logicsrc/plugin-credential-sharing. Nothing connected
the two, so the `team` provider shipped on 2026-07-13 and three weeks
later both surfaces still described a five-provider tool with no mention
of teams. The docs were right the whole time -- only the pages people
actually land on had gone stale, which is worse, because it reads as
"the product cannot do this" rather than as a documentation gap.

Assert it instead. For every provider in the registry, the Credential
Sharing section and the README must say something that counts as
advertising it. The registry's own `name` cannot be the proof -- `env`
is "Local .env file" and `team` is "LogicSRC Team Vault", neither of
which is how the copy reads -- so each provider declares its own
pattern, and a provider with no declaration fails too. That way adding
a provider forces a deliberate answer about the customer-facing copy.

Verified against the bug it is meant to catch: reverting the team copy
reproduces "These providers ship but /credential-sharing never mentions
them: team", and reverting the README line reproduces the same for
sh1pt and team.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-03 14:10:21 +00:00

36 lines
1.1 KiB
JSON

{
"name": "@logicsrc/web",
"version": "0.1.0",
"private": true,
"description": "LogicSRC standards and open specification PWA (Next.js).",
"scripts": {
"dev": "next dev -p 5174",
"build": "next build",
"start": "next start",
"test": "vitest run contract",
"test:contract": "vitest run contract",
"test:e2e": "playwright test"
},
"dependencies": {
"@logicsrc/openontology": "file:../../packages/openontology",
"@logicsrc/openprd": "file:../../packages/openprd",
"@profullstack/autoblog": "github:profullstack/autoblog#75e54af",
"@profullstack/stack": "^0.1.3",
"@supabase/supabase-js": "^2.105.4",
"marked": "^18.0.5",
"next": "16.2.6",
"react": "19.2.0",
"react-dom": "19.2.0",
"sanitize-html": "^2.17.5"
},
"devDependencies": {
"@logicsrc/plugin-credential-sharing": "file:../../plugins/credential-sharing",
"@playwright/test": "^1.57.0",
"@types/node": "^24.10.1",
"@types/react": "^19.2.0",
"@types/react-dom": "^19.2.0",
"@types/sanitize-html": "^2.16.1",
"typescript": "^5.9.3",
"vitest": "^4.0.8"
}
}