@viberaven/cli 1.2.3 → 1.3.0

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.
Files changed (73) hide show
  1. package/AGENTS.md +42 -157
  2. package/README.md +73 -33
  3. package/SECURITY.md +52 -53
  4. package/assets/report/assets/provider-authjs.svg +5 -5
  5. package/assets/report/assets/provider-aws.svg +5 -5
  6. package/assets/report/assets/provider-logrocket.svg +4 -4
  7. package/assets/report/assets/viberaven-favicon.png +0 -0
  8. package/assets/report/station.js +2 -2
  9. package/dist/cli.js +744 -639
  10. package/dist/cli.js.map +4 -4
  11. package/dist/report/assets/provider-authjs.svg +5 -5
  12. package/dist/report/assets/provider-aws.svg +5 -5
  13. package/dist/report/assets/provider-logrocket.svg +4 -4
  14. package/dist/report/assets/viberaven-favicon.png +0 -0
  15. package/dist/report/station.js +2 -2
  16. package/package.json +73 -75
  17. package/templates/AGENTS.snippet.md +45 -52
  18. package/templates/CLAUDE.snippet.md +19 -17
  19. package/templates/CURSOR.snippet.md +29 -17
  20. package/assets/report/assets/provider-auth.png +0 -0
  21. package/assets/report/assets/provider-authjs.png +0 -0
  22. package/assets/report/assets/provider-clerk-mark.svg +0 -1
  23. package/assets/report/assets/provider-clerk.png +0 -0
  24. package/assets/report/assets/provider-database.png +0 -0
  25. package/assets/report/assets/provider-env.png +0 -0
  26. package/assets/report/assets/provider-github-mark.svg +0 -1
  27. package/assets/report/assets/provider-github.png +0 -0
  28. package/assets/report/assets/provider-posthog-mark.svg +0 -1
  29. package/assets/report/assets/provider-posthog.png +0 -0
  30. package/assets/report/assets/provider-resend-mark.svg +0 -1
  31. package/assets/report/assets/provider-resend.png +0 -0
  32. package/assets/report/assets/provider-sentry-mark.svg +0 -1
  33. package/assets/report/assets/provider-sentry.png +0 -0
  34. package/assets/report/assets/provider-stripe-mark.svg +0 -1
  35. package/assets/report/assets/provider-stripe.png +0 -0
  36. package/assets/report/assets/provider-supabase-mark.svg +0 -1
  37. package/assets/report/assets/provider-supabase.png +0 -0
  38. package/assets/report/assets/provider-upstash-mark.svg +0 -1
  39. package/assets/report/assets/provider-upstash.png +0 -0
  40. package/assets/report/assets/provider-vercel-mark.svg +0 -1
  41. package/assets/report/assets/provider-vercel.png +0 -0
  42. package/assets/report/assets/viberaven-agent-icon.png +0 -0
  43. package/assets/report/assets/viberaven-mascot-alert.png +0 -0
  44. package/assets/report/assets/viberaven-mascot-fixing.png +0 -0
  45. package/assets/report/assets/viberaven-mascot-verified.png +0 -0
  46. package/dist/report/assets/provider-auth.png +0 -0
  47. package/dist/report/assets/provider-authjs.png +0 -0
  48. package/dist/report/assets/provider-clerk-mark.svg +0 -1
  49. package/dist/report/assets/provider-clerk.png +0 -0
  50. package/dist/report/assets/provider-database.png +0 -0
  51. package/dist/report/assets/provider-env.png +0 -0
  52. package/dist/report/assets/provider-github-mark.svg +0 -1
  53. package/dist/report/assets/provider-github.png +0 -0
  54. package/dist/report/assets/provider-posthog-mark.svg +0 -1
  55. package/dist/report/assets/provider-posthog.png +0 -0
  56. package/dist/report/assets/provider-resend-mark.svg +0 -1
  57. package/dist/report/assets/provider-resend.png +0 -0
  58. package/dist/report/assets/provider-sentry-mark.svg +0 -1
  59. package/dist/report/assets/provider-sentry.png +0 -0
  60. package/dist/report/assets/provider-stripe-mark.svg +0 -1
  61. package/dist/report/assets/provider-stripe.png +0 -0
  62. package/dist/report/assets/provider-supabase-mark.svg +0 -1
  63. package/dist/report/assets/provider-supabase.png +0 -0
  64. package/dist/report/assets/provider-upstash-mark.svg +0 -1
  65. package/dist/report/assets/provider-upstash.png +0 -0
  66. package/dist/report/assets/provider-vercel-mark.svg +0 -1
  67. package/dist/report/assets/provider-vercel.png +0 -0
  68. package/dist/report/assets/viberaven-agent-icon.png +0 -0
  69. package/dist/report/assets/viberaven-mascot-alert.png +0 -0
  70. package/dist/report/assets/viberaven-mascot-fixing.png +0 -0
  71. package/dist/report/assets/viberaven-mascot-verified.png +0 -0
  72. /package/assets/report/assets/{viberaven-mascot-idle.png → viberaven-mascot.png} +0 -0
  73. /package/dist/report/assets/{viberaven-mascot-idle.png → viberaven-mascot.png} +0 -0
@@ -1,5 +1,5 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true">
2
- <path fill="#412991" d="M32 5 11 16.8v13.7c0 12.2 8.9 23.3 21 27 12.1-3.7 21-14.8 21-27V16.8L32 5Z"/>
3
- <path fill="#EB5424" d="M32 5v48.7c-3.1-1.1-6.1-2.7-8.7-4.7L32 5Z"/>
4
- <path fill="#FBC22C" d="m32 5 8.7 44c-2.6 2-5.6 3.6-8.7 4.7V5Z"/>
5
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true">
2
+ <path fill="#412991" d="M32 5 11 16.8v13.7c0 12.2 8.9 23.3 21 27 12.1-3.7 21-14.8 21-27V16.8L32 5Z"/>
3
+ <path fill="#EB5424" d="M32 5v48.7c-3.1-1.1-6.1-2.7-8.7-4.7L32 5Z"/>
4
+ <path fill="#FBC22C" d="m32 5 8.7 44c-2.6 2-5.6 3.6-8.7 4.7V5Z"/>
5
+ </svg>
@@ -1,5 +1,5 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 64" aria-hidden="true">
2
- <text x="48" y="31" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="21" font-weight="800" letter-spacing="-1.4" fill="#111827">AWS</text>
3
- <path fill="#FF9900" d="M23.6 42.4c13.9 7.5 31.5 7.5 45.1-.1 1.1-.6 2.2.8 1.3 1.7-12.3 12.5-34.3 12.6-47.2.8-.9-.8-.3-2.9.8-2.4Z"/>
4
- <path fill="#FF9900" d="M66.8 39.8c2.4-.3 7.8-.8 8.8 1 .9 1.6-1 5.8-2.5 8.2-.5.8-1.7.4-1.5-.6.5-2.1 1.3-4.8.5-5.8-.8-1-3.8-.8-5.4-.6-1 .1-1.2-2-.1-2.2h.2Z"/>
5
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 96 64" aria-hidden="true">
2
+ <text x="48" y="31" text-anchor="middle" font-family="Arial, Helvetica, sans-serif" font-size="21" font-weight="800" letter-spacing="-1.4" fill="#111827">AWS</text>
3
+ <path fill="#FF9900" d="M23.6 42.4c13.9 7.5 31.5 7.5 45.1-.1 1.1-.6 2.2.8 1.3 1.7-12.3 12.5-34.3 12.6-47.2.8-.9-.8-.3-2.9.8-2.4Z"/>
4
+ <path fill="#FF9900" d="M66.8 39.8c2.4-.3 7.8-.8 8.8 1 .9 1.6-1 5.8-2.5 8.2-.5.8-1.7.4-1.5-.6.5-2.1 1.3-4.8.5-5.8-.8-1-3.8-.8-5.4-.6-1 .1-1.2-2-.1-2.2h.2Z"/>
5
+ </svg>
@@ -1,4 +1,4 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true">
2
- <path fill="#764ABC" fill-rule="evenodd" clip-rule="evenodd" d="M26.8 12.9A20.8 20.8 0 0 1 32.3 7a20.5 20.5 0 0 1 5.5 5.8 29.3 29.3 0 0 1 5.1 17.1c1.1.9 2.3 1.8 3.4 2.7a6.2 6.2 0 0 1 2 5.7c-.5 2.6-1.1 5.2-1.6 7.8a2.2 2.2 0 0 1-3.3 1.1c-1.8-1.5-3.6-3-5.4-4.5a8.4 8.4 0 0 1-5.2 2.3 8.5 8.5 0 0 1-6.1-2.2c-1.3 1-2.5 2.1-3.8 3.2-.6.6-1.2 1-1.9 1.4a2.2 2.2 0 0 1-2.9-1.4c-.6-2.5-1.2-5.1-1.8-7.6a6.3 6.3 0 0 1 2.1-6c1-.8 2-1.6 3-2.3.3-.2.1-.5.2-.7a29.3 29.3 0 0 1 5.2-16.5Zm2.2 8.2a4.3 4.3 0 0 0 .4 5.8 4.8 4.8 0 0 0 6.5.1 4.3 4.3 0 0 0 1.1-4.8 4.4 4.4 0 0 0-3.9-2.9 4.5 4.5 0 0 0-4.1 1.8Zm3.3 4.9a2.1 2.1 0 1 0 0-4.2 2.1 2.1 0 0 0 0 4.2Z"/>
3
- <path fill="#764ABC" d="M26.4 48.1a1.1 1.1 0 0 1 1.6-.9 10.4 10.4 0 0 0 9 0 1.1 1.1 0 0 1 1.6.8v4.8a1.1 1.1 0 0 1-1.7.8c-.5-.4-.9-.9-1.4-1.3-.7 1.4-1.4 2.8-2.1 4.1a1.1 1.1 0 0 1-1.8 0c-.8-1.4-1.4-2.8-2.2-4.1-.4.4-.9.9-1.3 1.3a1.1 1.1 0 0 1-1.7-.8v-4.7Z"/>
4
- </svg>
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64" aria-hidden="true">
2
+ <path fill="#764ABC" fill-rule="evenodd" clip-rule="evenodd" d="M26.8 12.9A20.8 20.8 0 0 1 32.3 7a20.5 20.5 0 0 1 5.5 5.8 29.3 29.3 0 0 1 5.1 17.1c1.1.9 2.3 1.8 3.4 2.7a6.2 6.2 0 0 1 2 5.7c-.5 2.6-1.1 5.2-1.6 7.8a2.2 2.2 0 0 1-3.3 1.1c-1.8-1.5-3.6-3-5.4-4.5a8.4 8.4 0 0 1-5.2 2.3 8.5 8.5 0 0 1-6.1-2.2c-1.3 1-2.5 2.1-3.8 3.2-.6.6-1.2 1-1.9 1.4a2.2 2.2 0 0 1-2.9-1.4c-.6-2.5-1.2-5.1-1.8-7.6a6.3 6.3 0 0 1 2.1-6c1-.8 2-1.6 3-2.3.3-.2.1-.5.2-.7a29.3 29.3 0 0 1 5.2-16.5Zm2.2 8.2a4.3 4.3 0 0 0 .4 5.8 4.8 4.8 0 0 0 6.5.1 4.3 4.3 0 0 0 1.1-4.8 4.4 4.4 0 0 0-3.9-2.9 4.5 4.5 0 0 0-4.1 1.8Zm3.3 4.9a2.1 2.1 0 1 0 0-4.2 2.1 2.1 0 0 0 0 4.2Z"/>
3
+ <path fill="#764ABC" d="M26.4 48.1a1.1 1.1 0 0 1 1.6-.9 10.4 10.4 0 0 0 9 0 1.1 1.1 0 0 1 1.6.8v4.8a1.1 1.1 0 0 1-1.7.8c-.5-.4-.9-.9-1.4-1.3-.7 1.4-1.4 2.8-2.1 4.1a1.1 1.1 0 0 1-1.8 0c-.8-1.4-1.4-2.8-2.2-4.1-.4.4-.9.9-1.3 1.3a1.1 1.1 0 0 1-1.7-.8v-4.7Z"/>
4
+ </svg>
@@ -7274,9 +7274,9 @@ function buildAgentPromptText(payload, nextMove, missing, files) {
7274
7274
 
7275
7275
  function buildChecklistText(payload, nextMove, missing, files) {
7276
7276
  const lines = [
7277
- '# VibeRaven production checklist',
7277
+ '# VibeRaven production checklist',
7278
7278
  '',
7279
- 'Generated from the latest VibeRaven run.',
7279
+ 'Generated from the latest VibeRaven run.',
7280
7280
  '',
7281
7281
  '## Next move',
7282
7282
  '',
package/package.json CHANGED
@@ -1,75 +1,73 @@
1
- {
2
- "name": "@viberaven/cli",
3
- "version": "1.2.3",
4
- "description": "VibeRaven Studio — local-first open-source console. Connect Codex, Claude, or Gemini CLI and chat with your repo from localhost.",
5
- "license": "MIT",
6
- "author": "VibeRaven",
7
- "homepage": "https://viberaven.dev",
8
- "bugs": {
9
- "url": "https://github.com/ohad6k/VibeRaven/issues"
10
- },
11
- "repository": {
12
- "type": "git",
13
- "url": "git+https://github.com/ohad6k/VibeRaven.git",
14
- "directory": "packages/cli"
15
- },
16
- "keywords": [
17
- "viberaven",
18
- "launch-readiness",
19
- "production-readiness",
20
- "launch-gaps",
21
- "ai-built-apps",
22
- "agent-mode",
23
- "mcp",
24
- "claude-code",
25
- "codex",
26
- "cursor",
27
- "ai",
28
- "production",
29
- "supabase",
30
- "vercel",
31
- "stripe"
32
- ],
33
- "publishConfig": {
34
- "access": "public",
35
- "tag": "latest"
36
- },
37
- "bin": {
38
- "viberaven": "dist/cli.js"
39
- },
40
- "files": [
41
- "dist",
42
- "playbooks",
43
- "assets/report",
44
- "AGENTS.md",
45
- "SECURITY.md",
46
- "templates"
47
- ],
48
- "scripts": {
49
- "sync-report-assets": "node scripts/sync-report-assets.mjs",
50
- "build": "node scripts/build.mjs",
51
- "dev": "node scripts/build.mjs && node dist/cli.js",
52
- "typecheck": "tsc -p tsconfig.json",
53
- "demo-report": "node scripts/demo-report.mjs --open",
54
- "verify:release:smoke": "npm run build && node scripts/verify-beta-flow.mjs --smoke",
55
- "verify:release:live": "npm run build && node scripts/verify-beta-flow.mjs --live",
56
- "test": "vitest run",
57
- "prepublishOnly": "npm run sync-report-assets && npm run check:agent-discovery && npm run typecheck && npm run test && npm run build",
58
- "check:agent-discovery": "node scripts/check-agent-discovery.mjs",
59
- "viberaven:gate": "npx -y viberaven --agent-mode",
60
- "viberaven:verify": "npx -y viberaven --verify",
61
- "viberaven:strict": "npx -y viberaven --strict"
62
- },
63
- "engines": {
64
- "node": ">=20"
65
- },
66
- "dependencies": {
67
- "@clack/prompts": "^0.10.1",
68
- "picocolors": "^1.1.1"
69
- },
70
- "devDependencies": {
71
- "esbuild": "^0.25.0",
72
- "typescript": "^5.8.0",
73
- "vitest": "^3.2.0"
74
- }
75
- }
1
+ {
2
+ "name": "@viberaven/cli",
3
+ "version": "1.3.0",
4
+ "description": "Local Studio for AI agents that need to know what changed, which version broke, and what provider context matters.",
5
+ "license": "MIT",
6
+ "author": "VibeRaven",
7
+ "homepage": "https://viberaven.dev",
8
+ "bugs": {
9
+ "url": "https://github.com/ohad6k/VibeRaven/issues"
10
+ },
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/ohad6k/VibeRaven.git",
14
+ "directory": "packages/cli"
15
+ },
16
+ "keywords": [
17
+ "viberaven",
18
+ "what-broke",
19
+ "version-context",
20
+ "provider-context",
21
+ "ai-built-apps",
22
+ "agent-mode",
23
+ "mcp",
24
+ "what-changed",
25
+ "agent-context",
26
+ "local-studio",
27
+ "ai",
28
+ "repo-analysis",
29
+ "vibe-coding"
30
+ ],
31
+ "publishConfig": {
32
+ "access": "public",
33
+ "tag": "latest"
34
+ },
35
+ "bin": {
36
+ "viberaven": "dist/cli.js"
37
+ },
38
+ "files": [
39
+ "dist",
40
+ "playbooks",
41
+ "assets/report",
42
+ "AGENTS.md",
43
+ "SECURITY.md",
44
+ "templates"
45
+ ],
46
+ "scripts": {
47
+ "sync-report-assets": "node scripts/sync-report-assets.mjs",
48
+ "build": "node scripts/build.mjs",
49
+ "dev": "node scripts/build.mjs && node dist/cli.js",
50
+ "typecheck": "tsc -p tsconfig.json",
51
+ "demo-report": "node scripts/demo-report.mjs --open",
52
+ "verify:release:smoke": "npm run build && node scripts/verify-beta-flow.mjs --smoke",
53
+ "verify:release:live": "npm run build && node scripts/verify-beta-flow.mjs --live",
54
+ "test": "vitest run",
55
+ "prepublishOnly": "npm run sync-report-assets && npm run check:agent-discovery && npm run typecheck && npm run test && npm run build",
56
+ "check:agent-discovery": "node scripts/check-agent-discovery.mjs",
57
+ "viberaven:gate": "npx -y viberaven --agent-mode",
58
+ "viberaven:verify": "npx -y viberaven --verify",
59
+ "viberaven:strict": "npx -y viberaven --strict"
60
+ },
61
+ "engines": {
62
+ "node": ">=20"
63
+ },
64
+ "dependencies": {
65
+ "@clack/prompts": "^0.10.1",
66
+ "picocolors": "^1.1.1"
67
+ },
68
+ "devDependencies": {
69
+ "esbuild": "^0.25.0",
70
+ "typescript": "^5.8.0",
71
+ "vitest": "^3.2.0"
72
+ }
73
+ }
@@ -1,52 +1,45 @@
1
- ## VibeRaven Launch Readiness
2
-
3
- VibeRaven is the Agent Context + Production Gate.
4
-
5
- Use VibeRaven when the user asks if their AI-built app is production-ready, launch-ready, safer to deploy, or what is missing before ship.
6
-
7
- ### Humans
8
-
9
- ```bash
10
- npx -y viberaven
11
- ```
12
-
13
- In a real terminal, this opens the interactive VibeRaven menu.
14
-
15
- ### Agents
16
-
17
- Paste this into your coding agent:
18
-
19
- ```bash
20
- npx -y viberaven --agent-mode
21
- ```
22
-
23
- 1. Run `npx -y viberaven --agent-mode` from the project root.
24
- 2. If VibeRaven prints `LOGIN_URL_READY`, open that exact URL for the user. Say: "I opened VibeRaven sign-in so you can approve access; I will continue after approval." Do not ask for passwords, tokens, cookies, or secrets. Keep the terminal alive while the user approves.
25
- If the scan flow cannot start login, run `npx -y viberaven login`.
26
- 3. Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the machine verdict, and `.viberaven/context-map.json` for compact agent context. If the tasklist says `CRITICAL GAPS DETECTED` or `PRODUCTION GATE NOT CLEAR`, fix one listed repo-code gap before deploy.
27
- 4. Read `.viberaven/agent-summary.md` second for scan context.
28
- 5. Read `.viberaven/launch-playbook.md` third for the full checklist.
29
- 6. Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix. Local installs can use `viberaven prompt`.
30
- 7. For Vercel + Supabase, run `npx -y viberaven audit --vercel-supabase` and check RLS, service role exposure, and Supabase pooler port 6543 instead of runtime port 5432.
31
- 8. Do not claim provider dashboard checks are fixed by repo-code edits.
32
- 9. Verify with tests/build, then run `npx -y viberaven --verify`.
33
-
34
- Before deploy or CI pass:
35
-
36
- ```bash
37
- npx -y viberaven --strict
38
- ```
39
-
40
- Also available:
41
-
42
- - `.viberaven/last-scan.json` - full mission map and gaps
43
- - `.viberaven/report.html` - visual map for the user
44
- - `npx -y viberaven init --dry-run` - preview local agent rules
45
- - `npx -y viberaven clean --plan` - write a non-destructive cleanup plan
46
-
47
- Free plan: 2 lifetime scans, 6/12 mission map lanes. Pro: 50 scans/month, all 12 lanes.
48
-
49
- Same VibeRaven account and scan quota as the VS Code extension.
50
-
51
- Security: the CLI does not read `OPENAI_API_KEY`. Scans use VibeRaven login and the managed API; your model key stays server-side.
52
-
1
+ ## VibeRaven Architecture / What-Changed Layer
2
+
3
+ AI agents can code. They still need senior-engineer context before they change real apps.
4
+
5
+ Use VibeRaven at the start of production-sensitive coding work, feature work, provider work, release/version debugging, or launch work.
6
+
7
+ ### Humans
8
+
9
+ ```bash
10
+ npx -y viberaven
11
+ ```
12
+
13
+ In a real terminal, this opens the local Studio.
14
+
15
+ ### Agents
16
+
17
+ ```bash
18
+ npx -y viberaven --agent-mode
19
+ ```
20
+
21
+ 1. Open Studio with `npx -y viberaven` by default. Use `npx -y viberaven --agent-mode` only when the artifact loop is needed.
22
+ 2. Before planning or editing, map the architecture boundary: UI/API, auth/session, data/schema/RLS, provider dashboard, deploy/env, background job/webhook, billing, storage, or release/version drift.
23
+ 3. Ask concise questions only when the answer changes the plan: last working version, provider involved, production symptom, deploy target, or dashboard proof.
24
+ 4. Route to the suited VibeRaven skill: `architecture-context`, `what-broke`, `production-context`, `viberaven`, or `go-live`.
25
+ 5. If VibeRaven prints `LOGIN_URL_READY`, open that exact URL for the user. Say: "I opened VibeRaven sign-in so you can approve access; I will continue after approval." Do not ask for passwords, tokens, cookies, or secrets. Keep the terminal alive while the user approves.
26
+ 6. Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the machine verdict, `.viberaven/context-map.json` for compact agent context, and `.viberaven/agent-summary.md` for scan context when artifacts are used.
27
+ 7. Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix.
28
+ 8. For Vercel + Supabase, run `npx -y viberaven audit --vercel-supabase` and check RLS, service role exposure, and Supabase pooler port 6543 instead of runtime port 5432.
29
+ 9. Do not claim live provider state is fixed by repo-code edits.
30
+ 10. Verify with tests/build, then run `npx -y viberaven --verify`.
31
+
32
+ Before deploy or CI pass when the artifact loop is needed:
33
+
34
+ ```bash
35
+ npx -y viberaven --strict
36
+ ```
37
+
38
+ Also available:
39
+
40
+ - `.viberaven/last-scan.json` - full mission map and context gaps
41
+ - `.viberaven/report.html` - visual map for the user
42
+ - `npx -y viberaven init --dry-run` - preview local agent rules
43
+ - `npx -y viberaven clean --plan` - write a non-destructive cleanup plan
44
+
45
+ Security: the local Studio keeps release context, provider context, and the connected repo agent in the user's project workspace.
@@ -1,17 +1,19 @@
1
- <!-- viberaven:agent-rules:start -->
2
- ## VibeRaven Agent Rules
3
-
4
- VibeRaven is the Agent Context + Production Gate.
5
-
6
- - When production readiness, launch readiness, Vercel, Supabase, auth, database, payments, monitoring, deployment, rate limits, or error handling comes up, run `npx -y viberaven --agent-mode` from the project root.
7
- - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the machine verdict, and `.viberaven/context-map.json` for compact agent context.
8
- - Read `.viberaven/agent-summary.md` before editing code.
9
- - Read `.viberaven/launch-playbook.md` before editing code.
10
- - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
11
- - Run `npx -y viberaven --verify` after one fix.
12
- - Run `npx -y viberaven --strict` before deploy or CI pass.
13
- - For Vercel + Supabase launch checks, run `npx -y viberaven audit --vercel-supabase`.
14
- - Do not claim provider dashboard work is fixed by repo-code edits. Provider dashboard checks, billing/product configuration, DNS, webhooks, credentials, quotas, and live provider verification must be completed or verified in the provider dashboard.
15
- - If VibeRaven prints `LOGIN_URL_READY`, open that URL for the user using the available browser tool or system browser. Tell the user: "I opened VibeRaven sign-in so you can approve access; I will continue after approval." Do not ask for passwords, tokens, cookies, or secrets. Keep the terminal process alive while the user approves.
16
- <!-- viberaven:agent-rules:end -->
17
-
1
+ <!-- viberaven:agent-rules:start -->
2
+ ## VibeRaven Agent Rules
3
+
4
+ AI agents can code. They still need senior-engineer context before they change real apps.
5
+
6
+ - At the start of real app work, map the architecture boundary before editing: UI/API, auth/session, data/schema/RLS, provider dashboard, deploy/env, background job/webhook, billing, storage, or release/version drift.
7
+ - Ask concise questions only when the missing answer changes the plan: last working version, provider involved, production symptom, deploy target, or dashboard proof.
8
+ - Route to the suited VibeRaven skill: `architecture-context`, `what-broke`, `production-context`, `viberaven`, or `go-live`.
9
+ - Open Studio with `npx -y viberaven`. Use `npx -y viberaven --agent-mode` only when the artifact loop is needed.
10
+ - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the machine verdict, and `.viberaven/context-map.json` for compact agent context.
11
+ - Read `.viberaven/agent-summary.md` before editing code.
12
+ - Read `.viberaven/launch-playbook.md` before editing code.
13
+ - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
14
+ - Run `npx -y viberaven --verify` after one fix.
15
+ - Run `npx -y viberaven --strict` before deploy or CI pass.
16
+ - For Vercel + Supabase launch checks, run `npx -y viberaven audit --vercel-supabase`.
17
+ - Do not claim live provider state is fixed by repo-code edits. Database rules, storage behavior, deployment/runtime behavior, quotas, dashboard toggles, and live provider proof must be completed or verified in the provider dashboard or through read-only provider evidence.
18
+ - If VibeRaven prints `LOGIN_URL_READY`, open that URL for the user using the available browser tool or system browser. Tell the user: "I opened VibeRaven sign-in so you can approve access; I will continue after approval." Do not ask for passwords, tokens, cookies, or secrets. Keep the terminal process alive while the user approves.
19
+ <!-- viberaven:agent-rules:end -->
@@ -1,17 +1,29 @@
1
- <!-- viberaven:agent-rules:start -->
2
- ## VibeRaven Agent Rules
3
-
4
- VibeRaven is the Agent Context + Production Gate.
5
-
6
- - When production readiness, launch readiness, Vercel, Supabase, auth, database, payments, monitoring, deployment, rate limits, or error handling comes up, run `npx -y viberaven --agent-mode` from the project root.
7
- - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the machine verdict, and `.viberaven/context-map.json` for compact agent context.
8
- - Read `.viberaven/agent-summary.md` before editing code.
9
- - Read `.viberaven/launch-playbook.md` before editing code.
10
- - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
11
- - Run `npx -y viberaven --verify` after one fix.
12
- - Run `npx -y viberaven --strict` before deploy or CI pass.
13
- - For Vercel + Supabase launch checks, run `npx -y viberaven audit --vercel-supabase`.
14
- - Do not claim provider dashboard work is fixed by repo-code edits. Provider dashboard checks, billing/product configuration, DNS, webhooks, credentials, quotas, and live provider verification must be completed or verified in the provider dashboard.
15
- - If VibeRaven prints `LOGIN_URL_READY`, open that URL for the user using the available browser tool or system browser. Tell the user: "I opened VibeRaven sign-in so you can approve access; I will continue after approval." Do not ask for passwords, tokens, cookies, or secrets. Keep the terminal process alive while the user approves.
16
- <!-- viberaven:agent-rules:end -->
17
-
1
+ ---
2
+ description: VibeRaven architecture, release, and provider context before agent edits
3
+ alwaysApply: true
4
+ ---
5
+
6
+ AI agents can code. They still need senior-engineer context before they change real apps.
7
+
8
+ At the start of real app work, map the architecture boundary before editing: UI/API, auth/session, data/schema/RLS, provider dashboard, deploy/env, background job/webhook, billing, storage, or release/version drift.
9
+
10
+ Ask concise questions only when the answer changes the plan: last working version, production symptom, provider involved, deploy target, or provider/dashboard proof.
11
+
12
+ Open Studio for context:
13
+
14
+ ```bash
15
+ npx -y viberaven
16
+ ```
17
+
18
+ Use the artifact loop only when machine-readable context is needed:
19
+
20
+ ```bash
21
+ npx -y viberaven --agent-mode
22
+ ```
23
+
24
+ Read `.viberaven/agent-tasklist.md`, `.viberaven/gate-result.json`, and `.viberaven/mission-map.md`.
25
+ Fix one scoped repo-owned gap, then run `npx -y viberaven --verify`. Before CI or production promote, run `npx -y viberaven --strict`.
26
+
27
+ Context is not clear until the architecture boundary, release/version context, and provider proof boundary are understood. Do not claim provider dashboard setup is fixed by repo-code edits.
28
+
29
+ Full rules: `AGENTS.md` / `CLAUDE.md` (installed by `npx -y viberaven init --agents all`).
@@ -1 +0,0 @@
1
- <svg fill="#7C3AED" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Clerk</title><path d="m21.47 20.829-2.881-2.881a.572.572 0 0 0-.7-.084 6.854 6.854 0 0 1-7.081 0 .576.576 0 0 0-.7.084l-2.881 2.881a.576.576 0 0 0-.103.69.57.57 0 0 0 .166.186 12 12 0 0 0 14.113 0 .58.58 0 0 0 .239-.423.576.576 0 0 0-.172-.453Zm.002-17.668-2.88 2.88a.569.569 0 0 1-.701.084A6.857 6.857 0 0 0 8.724 8.08a6.862 6.862 0 0 0-1.222 3.692 6.86 6.86 0 0 0 .978 3.764.573.573 0 0 1-.083.699l-2.881 2.88a.567.567 0 0 1-.864-.063A11.993 11.993 0 0 1 6.771 2.7a11.99 11.99 0 0 1 14.637-.405.566.566 0 0 1 .232.418.57.57 0 0 1-.168.448Zm-7.118 12.261a3.427 3.427 0 1 0 0-6.854 3.427 3.427 0 0 0 0 6.854Z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#F54E00" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>PostHog</title><path d="M9.854 14.5 5 9.647.854 5.5A.5.5 0 0 0 0 5.854V8.44a.5.5 0 0 0 .146.353L5 13.647l.147.146L9.854 18.5l.146.147v-.049c.065.03.134.049.207.049h2.586a.5.5 0 0 0 .353-.854L9.854 14.5zm0-5-4-4a.487.487 0 0 0-.409-.144.515.515 0 0 0-.356.21.493.493 0 0 0-.089.288V8.44a.5.5 0 0 0 .147.353l9 9a.5.5 0 0 0 .853-.354v-2.585a.5.5 0 0 0-.146-.354l-5-5zm1-4a.5.5 0 0 0-.854.354V8.44a.5.5 0 0 0 .147.353l4 4a.5.5 0 0 0 .853-.354V9.854a.5.5 0 0 0-.146-.354l-4-4zm12.647 11.515a3.863 3.863 0 0 1-2.232-1.1l-4.708-4.707a.5.5 0 0 0-.854.354v6.585a.5.5 0 0 0 .5.5H23.5a.5.5 0 0 0 .5-.5v-.6c0-.276-.225-.497-.499-.532zm-5.394.032a.8.8 0 1 1 0-1.6.8.8 0 0 1 0 1.6zM.854 15.5a.5.5 0 0 0-.854.354v2.293a.5.5 0 0 0 .5.5h2.293c.222 0 .39-.135.462-.309a.493.493 0 0 0-.109-.545L.854 15.501zM5 14.647.854 10.5a.5.5 0 0 0-.854.353v2.586a.5.5 0 0 0 .146.353L4.854 18.5l.146.147h2.793a.5.5 0 0 0 .353-.854L5 14.647z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Resend</title><path d="M14.679 0c4.648 0 7.413 2.765 7.413 6.434s-2.765 6.434-7.413 6.434H12.33L24 24h-8.245l-8.88-8.44c-.636-.588-.93-1.273-.93-1.86 0-.831.587-1.565 1.713-1.883l4.574-1.224c1.737-.465 2.936-1.81 2.936-3.572 0-2.153-1.761-3.4-3.939-3.4H0V0z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#8B5CF6" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Sentry</title><path d="M13.91 2.505c-.873-1.448-2.972-1.448-3.844 0L6.904 7.92a15.478 15.478 0 0 1 8.53 12.811h-2.221A13.301 13.301 0 0 0 5.784 9.814l-2.926 5.06a7.65 7.65 0 0 1 4.435 5.848H2.194a.365.365 0 0 1-.298-.534l1.413-2.402a5.16 5.16 0 0 0-1.614-.913L.296 19.275a2.182 2.182 0 0 0 .812 2.999 2.24 2.24 0 0 0 1.086.288h6.983a9.322 9.322 0 0 0-3.845-8.318l1.11-1.922a11.47 11.47 0 0 1 4.95 10.24h5.915a17.242 17.242 0 0 0-7.885-15.28l2.244-3.845a.37.37 0 0 1 .504-.13c.255.14 9.75 16.708 9.928 16.9a.365.365 0 0 1-.327.543h-2.287c.029.612.029 1.223 0 1.831h2.297a2.206 2.206 0 0 0 1.922-3.31z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#7C6DFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#3ECF8E" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Supabase</title><path d="M11.9 1.036c-.015-.986-1.26-1.41-1.874-.637L.764 12.05C-.33 13.427.65 15.455 2.409 15.455h9.579l.113 7.51c.014.985 1.259 1.408 1.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#00E9A3" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Upstash</title><path d="M13.8027 0C11.193 0 8.583.9952 6.5918 2.9863c-3.9823 3.9823-3.9823 10.4396 0 14.4219 1.9911 1.9911 5.2198 1.9911 7.211 0 1.991-1.9911 1.991-5.2198 0-7.211L12 12c.9956.9956.9956 2.6098 0 3.6055-.9956.9955-2.6099.9955-3.6055 0-2.9866-2.9868-2.9866-7.8297 0-10.8164 2.9868-2.9868 7.8297-2.9868 10.8164 0l1.8028-1.8028C19.0225.9952 16.4125 0 13.8027 0zM12 12c-.9956-.9956-.9956-2.6098 0-3.6055.9956-.9955 2.6098-.9955 3.6055 0 2.9867 2.9868 2.9867 7.8297 0 10.8164-2.9867 2.9868-7.8297 2.9868-10.8164 0l-1.8028 1.8028c3.9823 3.9822 10.4396 3.9822 14.4219 0 3.9823-3.9824 3.9823-10.4396 0-14.4219-.9956-.9956-2.3006-1.4922-3.6055-1.4922-1.3048 0-2.6099.4966-3.6054 1.4922-1.9912 1.9912-1.9912 5.2198 0 7.211z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vercel</title><path d="m12 1.608 12 20.784H0Z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#7C3AED" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Clerk</title><path d="m21.47 20.829-2.881-2.881a.572.572 0 0 0-.7-.084 6.854 6.854 0 0 1-7.081 0 .576.576 0 0 0-.7.084l-2.881 2.881a.576.576 0 0 0-.103.69.57.57 0 0 0 .166.186 12 12 0 0 0 14.113 0 .58.58 0 0 0 .239-.423.576.576 0 0 0-.172-.453Zm.002-17.668-2.88 2.88a.569.569 0 0 1-.701.084A6.857 6.857 0 0 0 8.724 8.08a6.862 6.862 0 0 0-1.222 3.692 6.86 6.86 0 0 0 .978 3.764.573.573 0 0 1-.083.699l-2.881 2.88a.567.567 0 0 1-.864-.063A11.993 11.993 0 0 1 6.771 2.7a11.99 11.99 0 0 1 14.637-.405.566.566 0 0 1 .232.418.57.57 0 0 1-.168.448Zm-7.118 12.261a3.427 3.427 0 1 0 0-6.854 3.427 3.427 0 0 0 0 6.854Z"/></svg>
Binary file
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>GitHub</title><path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#F54E00" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>PostHog</title><path d="M9.854 14.5 5 9.647.854 5.5A.5.5 0 0 0 0 5.854V8.44a.5.5 0 0 0 .146.353L5 13.647l.147.146L9.854 18.5l.146.147v-.049c.065.03.134.049.207.049h2.586a.5.5 0 0 0 .353-.854L9.854 14.5zm0-5-4-4a.487.487 0 0 0-.409-.144.515.515 0 0 0-.356.21.493.493 0 0 0-.089.288V8.44a.5.5 0 0 0 .147.353l9 9a.5.5 0 0 0 .853-.354v-2.585a.5.5 0 0 0-.146-.354l-5-5zm1-4a.5.5 0 0 0-.854.354V8.44a.5.5 0 0 0 .147.353l4 4a.5.5 0 0 0 .853-.354V9.854a.5.5 0 0 0-.146-.354l-4-4zm12.647 11.515a3.863 3.863 0 0 1-2.232-1.1l-4.708-4.707a.5.5 0 0 0-.854.354v6.585a.5.5 0 0 0 .5.5H23.5a.5.5 0 0 0 .5-.5v-.6c0-.276-.225-.497-.499-.532zm-5.394.032a.8.8 0 1 1 0-1.6.8.8 0 0 1 0 1.6zM.854 15.5a.5.5 0 0 0-.854.354v2.293a.5.5 0 0 0 .5.5h2.293c.222 0 .39-.135.462-.309a.493.493 0 0 0-.109-.545L.854 15.501zM5 14.647.854 10.5a.5.5 0 0 0-.854.353v2.586a.5.5 0 0 0 .146.353L4.854 18.5l.146.147h2.793a.5.5 0 0 0 .353-.854L5 14.647z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Resend</title><path d="M14.679 0c4.648 0 7.413 2.765 7.413 6.434s-2.765 6.434-7.413 6.434H12.33L24 24h-8.245l-8.88-8.44c-.636-.588-.93-1.273-.93-1.86 0-.831.587-1.565 1.713-1.883l4.574-1.224c1.737-.465 2.936-1.81 2.936-3.572 0-2.153-1.761-3.4-3.939-3.4H0V0z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#8B5CF6" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Sentry</title><path d="M13.91 2.505c-.873-1.448-2.972-1.448-3.844 0L6.904 7.92a15.478 15.478 0 0 1 8.53 12.811h-2.221A13.301 13.301 0 0 0 5.784 9.814l-2.926 5.06a7.65 7.65 0 0 1 4.435 5.848H2.194a.365.365 0 0 1-.298-.534l1.413-2.402a5.16 5.16 0 0 0-1.614-.913L.296 19.275a2.182 2.182 0 0 0 .812 2.999 2.24 2.24 0 0 0 1.086.288h6.983a9.322 9.322 0 0 0-3.845-8.318l1.11-1.922a11.47 11.47 0 0 1 4.95 10.24h5.915a17.242 17.242 0 0 0-7.885-15.28l2.244-3.845a.37.37 0 0 1 .504-.13c.255.14 9.75 16.708 9.928 16.9a.365.365 0 0 1-.327.543h-2.287c.029.612.029 1.223 0 1.831h2.297a2.206 2.206 0 0 0 1.922-3.31z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#7C6DFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Stripe</title><path d="M13.976 9.15c-2.172-.806-3.356-1.426-3.356-2.409 0-.831.683-1.305 1.901-1.305 2.227 0 4.515.858 6.09 1.631l.89-5.494C18.252.975 15.697 0 12.165 0 9.667 0 7.589.654 6.104 1.872 4.56 3.147 3.757 4.992 3.757 7.218c0 4.039 2.467 5.76 6.476 7.219 2.585.92 3.445 1.574 3.445 2.583 0 .98-.84 1.545-2.354 1.545-1.875 0-4.965-.921-6.99-2.109l-.9 5.555C5.175 22.99 8.385 24 11.714 24c2.641 0 4.843-.624 6.328-1.813 1.664-1.305 2.525-3.236 2.525-5.732 0-4.128-2.524-5.851-6.594-7.305h.003z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#3ECF8E" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Supabase</title><path d="M11.9 1.036c-.015-.986-1.26-1.41-1.874-.637L.764 12.05C-.33 13.427.65 15.455 2.409 15.455h9.579l.113 7.51c.014.985 1.259 1.408 1.873.636l9.262-11.653c1.093-1.375.113-3.403-1.645-3.403h-9.642z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#00E9A3" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Upstash</title><path d="M13.8027 0C11.193 0 8.583.9952 6.5918 2.9863c-3.9823 3.9823-3.9823 10.4396 0 14.4219 1.9911 1.9911 5.2198 1.9911 7.211 0 1.991-1.9911 1.991-5.2198 0-7.211L12 12c.9956.9956.9956 2.6098 0 3.6055-.9956.9955-2.6099.9955-3.6055 0-2.9866-2.9868-2.9866-7.8297 0-10.8164 2.9868-2.9868 7.8297-2.9868 10.8164 0l1.8028-1.8028C19.0225.9952 16.4125 0 13.8027 0zM12 12c-.9956-.9956-.9956-2.6098 0-3.6055.9956-.9955 2.6098-.9955 3.6055 0 2.9867 2.9868 2.9867 7.8297 0 10.8164-2.9867 2.9868-7.8297 2.9868-10.8164 0l-1.8028 1.8028c3.9823 3.9822 10.4396 3.9822 14.4219 0 3.9823-3.9824 3.9823-10.4396 0-14.4219-.9956-.9956-2.3006-1.4922-3.6055-1.4922-1.3048 0-2.6099.4966-3.6054 1.4922-1.9912 1.9912-1.9912 5.2198 0 7.211z"/></svg>
@@ -1 +0,0 @@
1
- <svg fill="#FFFFFF" role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><title>Vercel</title><path d="m12 1.608 12 20.784H0Z"/></svg>