@viberaven/cli 1.6.1 → 1.6.2

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.
@@ -1,90 +1,90 @@
1
- {
2
- "$schema": "https://json-schema.org/draft/2020-12/schema",
3
- "$id": "https://viberaven.dev/schemas/permissions-matrix.v1.json",
4
- "title": "VibeRaven permissions matrix (viberaven.permissions.json)",
5
- "description": "Who may read, add, change and delete rows in each table, written by a person. `viberaven rls-test` checks the migrations against it. Never generate it from the app's own policies. Every cell is about rows owned by `owner`: owner acts on their own row, other_user is a different signed-in user acting on the owner's row, anon is a request with only the public anon key. For insert, the new row names the owner as its owner.",
6
- "type": "object",
7
- "additionalProperties": false,
8
- "required": ["version", "tables"],
9
- "properties": {
10
- "$schema": { "type": "string" },
11
- "version": { "const": 1 },
12
- "description": { "type": "string" },
13
- "defaultGrants": {
14
- "description": "Table grants the test database gives new public tables. supabase-legacy: anon and authenticated get all privileges on new public tables, as on existing Supabase projects (the more exposed assumption). none: no default grants, only what the migrations grant.",
15
- "enum": ["supabase-legacy", "none"],
16
- "default": "supabase-legacy"
17
- },
18
- "tables": {
19
- "type": "object",
20
- "minProperties": 1,
21
- "propertyNames": { "pattern": "^[A-Za-z_][A-Za-z0-9_$]*(\\.[A-Za-z_][A-Za-z0-9_$]*)?$" },
22
- "additionalProperties": { "$ref": "#/$defs/table" }
23
- }
24
- },
25
- "$defs": {
26
- "table": {
27
- "type": "object",
28
- "additionalProperties": false,
29
- "required": ["owner", "expect"],
30
- "properties": {
31
- "description": { "type": "string" },
32
- "owner": {
33
- "description": "How a row's owner is defined. Only `column = auth.uid()` is supported.",
34
- "type": "object",
35
- "additionalProperties": false,
36
- "required": ["column", "is"],
37
- "properties": {
38
- "column": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$" },
39
- "is": { "const": "auth.uid()" }
40
- }
41
- },
42
- "expect": { "$ref": "#/$defs/expectation" },
43
- "seed": {
44
- "description": "Values for columns the test cannot fill by itself (for example a NOT NULL foreign key). Used for every seeded and inserted row. Leave the owner column out.",
45
- "type": "object",
46
- "propertyNames": { "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$" },
47
- "additionalProperties": { "type": ["string", "number", "boolean", "null"] }
48
- },
49
- "updateColumn": {
50
- "description": "Column the update probe changes. Default: the first plain column that is not the owner column or part of the primary key.",
51
- "type": "string",
52
- "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$"
53
- }
54
- }
55
- },
56
- "expectation": {
57
- "type": "object",
58
- "additionalProperties": false,
59
- "required": ["owner", "other_user", "anon"],
60
- "properties": {
61
- "owner": { "$ref": "#/$defs/actorCells" },
62
- "other_user": { "$ref": "#/$defs/actorCells" },
63
- "anon": { "$ref": "#/$defs/actorCells" },
64
- "service_role": {
65
- "description": "The service role bypasses RLS, so it is never tested.",
66
- "const": "excluded"
67
- }
68
- }
69
- },
70
- "actorCells": {
71
- "type": "object",
72
- "additionalProperties": false,
73
- "required": ["select", "insert", "update", "delete"],
74
- "properties": {
75
- "select": { "$ref": "#/$defs/cell" },
76
- "insert": { "$ref": "#/$defs/cell" },
77
- "update": { "$ref": "#/$defs/cell" },
78
- "delete": { "$ref": "#/$defs/cell" },
79
- "reassign": {
80
- "description": "Optional. Setting the owner column of the owner's row to another user: the owner giving the row away, or another user taking it. Not tested when absent.",
81
- "$ref": "#/$defs/cell"
82
- }
83
- }
84
- },
85
- "cell": {
86
- "description": "allow: the action must work on the owner's row. deny: it must return nothing, change nothing, or be refused with a permission error. skip: not tested (N/A).",
87
- "enum": ["allow", "deny", "skip"]
88
- }
89
- }
90
- }
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "$id": "https://viberaven.dev/schemas/permissions-matrix.v1.json",
4
+ "title": "VibeRaven permissions matrix (viberaven.permissions.json)",
5
+ "description": "Who may read, add, change and delete rows in each table, written by a person. `viberaven rls-test` checks the migrations against it. Never generate it from the app's own policies. Every cell is about rows owned by `owner`: owner acts on their own row, other_user is a different signed-in user acting on the owner's row, anon is a request with only the public anon key. For insert, the new row names the owner as its owner.",
6
+ "type": "object",
7
+ "additionalProperties": false,
8
+ "required": ["version", "tables"],
9
+ "properties": {
10
+ "$schema": { "type": "string" },
11
+ "version": { "const": 1 },
12
+ "description": { "type": "string" },
13
+ "defaultGrants": {
14
+ "description": "Table grants the test database gives new public tables. supabase-legacy: anon and authenticated get all privileges on new public tables, as on existing Supabase projects (the more exposed assumption). none: no default grants, only what the migrations grant.",
15
+ "enum": ["supabase-legacy", "none"],
16
+ "default": "supabase-legacy"
17
+ },
18
+ "tables": {
19
+ "type": "object",
20
+ "minProperties": 1,
21
+ "propertyNames": { "pattern": "^[A-Za-z_][A-Za-z0-9_$]*(\\.[A-Za-z_][A-Za-z0-9_$]*)?$" },
22
+ "additionalProperties": { "$ref": "#/$defs/table" }
23
+ }
24
+ },
25
+ "$defs": {
26
+ "table": {
27
+ "type": "object",
28
+ "additionalProperties": false,
29
+ "required": ["owner", "expect"],
30
+ "properties": {
31
+ "description": { "type": "string" },
32
+ "owner": {
33
+ "description": "How a row's owner is defined. Only `column = auth.uid()` is supported.",
34
+ "type": "object",
35
+ "additionalProperties": false,
36
+ "required": ["column", "is"],
37
+ "properties": {
38
+ "column": { "type": "string", "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$" },
39
+ "is": { "const": "auth.uid()" }
40
+ }
41
+ },
42
+ "expect": { "$ref": "#/$defs/expectation" },
43
+ "seed": {
44
+ "description": "Values for columns the test cannot fill by itself (for example a NOT NULL foreign key). Used for every seeded and inserted row. Leave the owner column out.",
45
+ "type": "object",
46
+ "propertyNames": { "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$" },
47
+ "additionalProperties": { "type": ["string", "number", "boolean", "null"] }
48
+ },
49
+ "updateColumn": {
50
+ "description": "Column the update probe changes. Default: the first plain column that is not the owner column or part of the primary key.",
51
+ "type": "string",
52
+ "pattern": "^[A-Za-z_][A-Za-z0-9_$]*$"
53
+ }
54
+ }
55
+ },
56
+ "expectation": {
57
+ "type": "object",
58
+ "additionalProperties": false,
59
+ "required": ["owner", "other_user", "anon"],
60
+ "properties": {
61
+ "owner": { "$ref": "#/$defs/actorCells" },
62
+ "other_user": { "$ref": "#/$defs/actorCells" },
63
+ "anon": { "$ref": "#/$defs/actorCells" },
64
+ "service_role": {
65
+ "description": "The service role bypasses RLS, so it is never tested.",
66
+ "const": "excluded"
67
+ }
68
+ }
69
+ },
70
+ "actorCells": {
71
+ "type": "object",
72
+ "additionalProperties": false,
73
+ "required": ["select", "insert", "update", "delete"],
74
+ "properties": {
75
+ "select": { "$ref": "#/$defs/cell" },
76
+ "insert": { "$ref": "#/$defs/cell" },
77
+ "update": { "$ref": "#/$defs/cell" },
78
+ "delete": { "$ref": "#/$defs/cell" },
79
+ "reassign": {
80
+ "description": "Optional. Setting the owner column of the owner's row to another user: the owner giving the row away, or another user taking it. Not tested when absent.",
81
+ "$ref": "#/$defs/cell"
82
+ }
83
+ }
84
+ },
85
+ "cell": {
86
+ "description": "allow: the action must work on the owner's row. deny: it must return nothing, change nothing, or be refused with a permission error. skip: not tested (N/A).",
87
+ "enum": ["allow", "deny", "skip"]
88
+ }
89
+ }
90
+ }
@@ -1,56 +1,56 @@
1
- ## VibeRaven Launch Readiness
2
-
3
- VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. It runs locally: no login, no API key, no telemetry.
4
-
5
- Use it when the user asks whether a Vercel + Supabase app built with an AI tool is ready to launch or hand off, or wants to find migrations that create tables without RLS. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test.
6
-
7
- ### Humans
8
-
9
- ```bash
10
- npx -y viberaven
11
- ```
12
-
13
- This opens the local Studio. `npx -y viberaven check` prints a terminal verdict.
14
-
15
- ### Agents
16
-
17
- ```bash
18
- npx -y viberaven --agent-mode
19
- ```
20
-
21
- 1. Run `npx -y viberaven --agent-mode` from the project root.
22
- 2. Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict (`clear`, `warning` or `not_clear`), and `.viberaven/context-map.json` for compact agent context.
23
- 3. Read `.viberaven/agent-summary.md` second for scan context.
24
- 4. Read `.viberaven/launch-playbook.md` third for the full checklist.
25
- 5. 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`.
26
- 6. 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.
27
- 7. Do not claim provider dashboard checks are fixed by repo-code edits.
28
- 8. After a batch of fixes, run tests/build, then `npx -y viberaven --verify`.
29
-
30
- For a CI verdict when the user wants one:
31
-
32
- ```bash
33
- npx -y viberaven --strict
34
- ```
35
-
36
- Also available:
37
-
38
- - `.viberaven/last-scan.json` - full mission map and gaps
39
- - `.viberaven/report.html` - visual map for the user
40
- - `npx -y viberaven init --dry-run` - preview local agent rules
41
- - `npx -y viberaven clean --plan` - write a non-destructive cleanup plan
42
-
43
- <!-- viberaven:agent-rules:start -->
44
- ## VibeRaven Agent Rules
45
-
46
- VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
47
-
48
- - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
49
- - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
50
- - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
51
- - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
52
- - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
53
- - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
54
- - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
55
- - 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 happen in the provider dashboard.
56
- <!-- viberaven:agent-rules:end -->
1
+ ## VibeRaven Launch Readiness
2
+
3
+ VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. It runs locally: no login, no API key, no telemetry.
4
+
5
+ Use it when the user asks whether a Vercel + Supabase app built with an AI tool is ready to launch or hand off, or wants to find migrations that create tables without RLS. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test.
6
+
7
+ ### Humans
8
+
9
+ ```bash
10
+ npx -y viberaven
11
+ ```
12
+
13
+ This opens the local Studio. `npx -y viberaven check` prints a terminal verdict.
14
+
15
+ ### Agents
16
+
17
+ ```bash
18
+ npx -y viberaven --agent-mode
19
+ ```
20
+
21
+ 1. Run `npx -y viberaven --agent-mode` from the project root.
22
+ 2. Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict (`clear`, `warning` or `not_clear`), and `.viberaven/context-map.json` for compact agent context.
23
+ 3. Read `.viberaven/agent-summary.md` second for scan context.
24
+ 4. Read `.viberaven/launch-playbook.md` third for the full checklist.
25
+ 5. 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`.
26
+ 6. 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.
27
+ 7. Do not claim provider dashboard checks are fixed by repo-code edits.
28
+ 8. After a batch of fixes, run tests/build, then `npx -y viberaven --verify`.
29
+
30
+ For a CI verdict when the user wants one:
31
+
32
+ ```bash
33
+ npx -y viberaven --strict
34
+ ```
35
+
36
+ Also available:
37
+
38
+ - `.viberaven/last-scan.json` - full mission map and gaps
39
+ - `.viberaven/report.html` - visual map for the user
40
+ - `npx -y viberaven init --dry-run` - preview local agent rules
41
+ - `npx -y viberaven clean --plan` - write a non-destructive cleanup plan
42
+
43
+ <!-- viberaven:agent-rules:start -->
44
+ ## VibeRaven Agent Rules
45
+
46
+ VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
47
+
48
+ - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
49
+ - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
50
+ - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
51
+ - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
52
+ - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
53
+ - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
54
+ - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
55
+ - 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 happen in the provider dashboard.
56
+ <!-- viberaven:agent-rules:end -->
@@ -1,14 +1,14 @@
1
- <!-- viberaven:agent-rules:start -->
2
- ## VibeRaven Agent Rules
3
-
4
- VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
5
-
6
- - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
7
- - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
8
- - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
9
- - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
10
- - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
11
- - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
12
- - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
13
- - 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 happen in the provider dashboard.
14
- <!-- viberaven:agent-rules:end -->
1
+ <!-- viberaven:agent-rules:start -->
2
+ ## VibeRaven Agent Rules
3
+
4
+ VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
5
+
6
+ - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
7
+ - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
8
+ - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
9
+ - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
10
+ - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
11
+ - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
12
+ - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
13
+ - 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 happen in the provider dashboard.
14
+ <!-- viberaven:agent-rules:end -->
@@ -1,14 +1,14 @@
1
- <!-- viberaven:agent-rules:start -->
2
- ## VibeRaven Agent Rules
3
-
4
- VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
5
-
6
- - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
7
- - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
8
- - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
9
- - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
10
- - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
11
- - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
12
- - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
13
- - 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 happen in the provider dashboard.
14
- <!-- viberaven:agent-rules:end -->
1
+ <!-- viberaven:agent-rules:start -->
2
+ ## VibeRaven Agent Rules
3
+
4
+ VibeRaven reads a repository and lists launch gaps for AI-built apps that deploy on Vercel and use Supabase. This is advice, not a gate: the user decides when to ship. It is a repository check, not a live database test, and a clear result is not a security audit.
5
+
6
+ - Suggest one pass with `npx -y viberaven --agent-mode` from the project root before a Vercel + Supabase app launches or is handed off, after a Supabase migration or policy change, or when the user reports a production error about RLS, env vars, the database connection, the service role key or a Stripe webhook. It is not needed for apps that do not use Vercel and Supabase, for general SQL or deployment questions, or for one local error.
7
+ - Read `.viberaven/agent-tasklist.md` first, `.viberaven/gate-result.json` for the verdict, and `.viberaven/context-map.json` for compact agent context.
8
+ - Read `.viberaven/agent-summary.md` and `.viberaven/launch-playbook.md` before editing code for a listed gap.
9
+ - Use `npx -y viberaven next --json` or `npx -y viberaven prompt --gap <id>` for one focused repo-code fix at a time.
10
+ - Run `npx -y viberaven --verify` once per batch of fixes, not after every edit.
11
+ - For the Vercel + Supabase repo evidence, run `npx -y viberaven audit --vercel-supabase`.
12
+ - `npx -y viberaven --strict` returns the verdict as an exit code for CI when the user wants one.
13
+ - 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 happen in the provider dashboard.
14
+ <!-- viberaven:agent-rules:end -->