jorgex-stack 1.1.2 → 1.2.1

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.
@@ -381,16 +381,13 @@ After creating your evaluation file, you can use the provided evaluation harness
381
381
 
382
382
  ## Setup
383
383
 
384
- 1. **Install Dependencies**
384
+ 1. **Prepare a locked Python environment**
385
385
 
386
- ```bash
387
- pip install -r scripts/requirements.txt
388
- ```
389
-
390
- Or install manually:
391
- ```bash
392
- pip install anthropic mcp
393
- ```
386
+ Use a project-managed virtual environment whose complete transitive lock and
387
+ hashes have already been reviewed. The requirements file records the direct
388
+ versions expected by the harness, but it is not a complete lock and this
389
+ skill must not install from it. If the environment is unavailable, stop and
390
+ return control to the user.
394
391
 
395
392
  2. **Set API Key**
396
393
 
@@ -550,12 +547,8 @@ Here's a complete example of creating and running an evaluation:
550
547
  </evaluation>
551
548
  ```
552
549
 
553
- 2. **Install dependencies**:
554
-
555
- ```bash
556
- pip install -r scripts/requirements.txt
557
- export ANTHROPIC_API_KEY=your_api_key
558
- ```
550
+ 2. **Activate the pre-provisioned locked environment**, then provide the API key
551
+ through the project's normal secret-management workflow.
559
552
 
560
553
  3. **Run evaluation**:
561
554
 
@@ -599,4 +592,4 @@ If tasks are timing out:
599
592
  - Use a more capable model (e.g., `claude-3-7-sonnet-20250219`)
600
593
  - Check if tools are returning too much data
601
594
  - Verify pagination is working correctly
602
- - Consider simplifying complex questions
595
+ - Consider simplifying complex questions
@@ -901,16 +901,19 @@ Always build your TypeScript code before running:
901
901
 
902
902
  ```bash
903
903
  # Build the project
904
- npm run build
904
+ pnpm run build
905
905
 
906
906
  # Run the server
907
- npm start
907
+ pnpm start
908
908
 
909
909
  # Development with auto-reload
910
- npm run dev
910
+ pnpm run dev
911
911
  ```
912
912
 
913
- Always ensure `npm run build` completes successfully before considering the implementation complete.
913
+ Always ensure `pnpm run build` completes successfully before considering the
914
+ implementation complete. These commands must resolve the project's declared
915
+ dependencies through its lockfile; do not fetch an unpinned tool while
916
+ working on the server.
914
917
 
915
918
  ## Quality Checklist
916
919
 
@@ -963,8 +966,8 @@ Before finalizing your Node/TypeScript MCP server implementation, ensure:
963
966
  - [ ] Return types are consistent across similar operations
964
967
 
965
968
  ### Testing and Build
966
- - [ ] `npm run build` completes successfully without errors
969
+ - [ ] `pnpm run build` completes successfully without errors
967
970
  - [ ] dist/index.js created and executable
968
971
  - [ ] Server runs: `node dist/index.js --help`
969
972
  - [ ] All imports resolve correctly
970
- - [ ] Sample tool calls work as expected
973
+ - [ ] Sample tool calls work as expected
@@ -1,2 +1,2 @@
1
- anthropic>=0.39.0
2
- mcp>=1.1.0
1
+ anthropic==0.39.0
2
+ mcp==1.1.0
@@ -345,13 +345,13 @@ playwright-cli kill-all
345
345
  If the global `playwright-cli` command is not available, use the pinned release with pnpm:
346
346
 
347
347
  ```bash
348
- pnpm dlx @playwright/cli@0.1.17 --version
348
+ pnpm dlx @playwright/cli@0.1.18 --version
349
349
  ```
350
350
 
351
351
  For a global command, install the pinned release:
352
352
 
353
353
  ```bash
354
- pnpm add --global @playwright/cli@0.1.17
354
+ pnpm add --global @playwright/cli@0.1.18
355
355
  ```
356
356
 
357
357
  ## Example: Form submission
@@ -153,11 +153,10 @@ test -f playwright.config.ts || test -f playwright.config.js
153
153
  pnpm exec playwright --version
154
154
  ```
155
155
 
156
- If there is no Playwright install, bootstrap one and let the user pick the defaults:
157
-
158
- ```bash
159
- pnpm create playwright
160
- ```
156
+ If there is no project-local Playwright install, stop and return control to the
157
+ user. This skill does not bootstrap packages or change the dependency graph;
158
+ the project must provision a reviewed exact version through its normal locked
159
+ dependency workflow before planning or generating tests.
161
160
 
162
161
  ### 1.2 Prerequisite: seed test
163
162
 
@@ -290,12 +289,12 @@ Goal: take a spec file and produce Playwright test files. Optionally update the
290
289
 
291
290
  ### 2.2 Generate one scenario
292
291
 
293
- For each target scenario, in sequence (never in parallel scenarios share the seed session):
292
+ For each target scenario, run the CLI actions in sequence within its own seed session. Never run actions in parallel within one attached session; a seed session is single-threaded.
294
293
 
295
294
  ```bash
296
295
  PLAYWRIGHT_HTML_OPEN=never pnpm exec playwright test <seed-file> --debug=cli # background
297
296
  playwright-cli attach tw-XXXX
298
- # resume
297
+ playwright-cli resume
299
298
  ```
300
299
 
301
300
  **Do not** just open the app url with playwright-cli, always go through the test to capture any custom setup done there.
@@ -349,7 +348,7 @@ Rules:
349
348
 
350
349
  ### 2.3 Generate multiple scenarios
351
350
 
352
- Loop 2.2 over the targeted scenarios one at a time, restarting the seed between each so every test starts from a clean page. This is safe to parallelise due to unique generated session names - just make sure each test run is stopped.
351
+ Loop 2.2 over the targeted scenarios, restarting the seed between each so every test starts from a clean page. Scenarios may run in parallel only when each has its own seed process and unique generated session name; never share a session or attach two scenario flows to the same seed. When isolation is uncertain, run scenarios serially. Stop every test run before moving on.
353
352
 
354
353
  ### 2.4 Run generated tests
355
354
 
@@ -10,10 +10,21 @@ Scans your React codebase for security, performance, correctness, and architectu
10
10
 
11
11
  ## Usage
12
12
 
13
+ Run the project-pinned binary through the project's package manager:
14
+
13
15
  ```bash
14
- npx -y react-doctor@latest . --verbose --diff
16
+ pnpm exec react-doctor . --verbose --diff
15
17
  ```
16
18
 
19
+ `pnpm exec` resolves the binary from the current project's declared
20
+ dependencies or workspace. It does not fetch an ad-hoc release and this skill
21
+ does not modify `package.json`, the lockfile, or any global tool directory.
22
+
23
+ If the command is unavailable, stop and return control to the user with a
24
+ clear message that the project dependency is missing. The user can review and
25
+ provision an exact project version through the normal dependency workflow,
26
+ then rerun this skill.
27
+
17
28
  ## Workflow
18
29
 
19
30
  Run after making changes to catch issues early. Fix errors first, then re-run to verify the score improved.
@@ -187,7 +187,7 @@
187
187
  same "printed page" as the copyright notice for easier
188
188
  identification within third-party archives.
189
189
 
190
- Copyright [yyyy] [name of copyright owner]
190
+ Copyright 2026 Anthropic, PBC.
191
191
 
192
192
  Licensed under the Apache License, Version 2.0 (the "License");
193
193
  you may not use this file except in compliance with the License.
@@ -199,4 +199,4 @@
199
199
  distributed under the License is distributed on an "AS IS" BASIS,
200
200
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
201
201
  See the License for the specific language governing permissions and
202
- limitations under the License.
202
+ limitations under the License.
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: supabase
3
- description: "Use when doing ANY task involving Supabase. Triggers: Supabase products (Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues); client libraries and SSR integrations (supabase-js, @supabase/ssr) in Next.js, React, SvelteKit, Astro, Remix; auth issues (login, logout, sessions, JWT, cookies, getSession, getUser, getClaims, RLS); Supabase CLI or MCP server; schema changes, migrations, security audits, Postgres extensions (pg_graphql, pg_cron, pg_vector)."
3
+ description: "Use for any Supabase task: Database, Auth, Edge Functions, Realtime, Storage, Vectors, Cron, Queues, clients, CLI/MCP, schema/migrations/declarative schemas, RLS/security, debugging, errors, troubleshooting, or logs."
4
4
  metadata:
5
5
  author: supabase
6
6
  version: "0.1.2"
@@ -88,7 +88,7 @@ supabase <group> <command> --help # Flags for a specific command
88
88
 
89
89
  - `supabase db query` requires **CLI v2.79.0+** → use MCP `execute_sql` or `psql` as fallback
90
90
  - `supabase db advisors` requires **CLI v2.81.3+** → use MCP `get_advisors` as fallback
91
- - When you need a new migration SQL file, **always** create it with `supabase migration new <name>` first. Never invent a migration filename or rely on memory for the expected format.
91
+ - In imperative migration projects, create new hand-authored migration files with `supabase migration new <name>` first. Never invent a migration filename or rely on memory for the expected format. Declarative schema projects generate migrations from `supabase/schemas/`; see "Making and Committing Schema Changes" below.
92
92
 
93
93
  **Version check and upgrade:** Run `supabase --version` to check. For CLI changelogs and version-specific features, consult the [CLI documentation](https://supabase.com/docs/reference/cli/introduction) or [GitHub releases](https://github.com/supabase/cli/releases).
94
94
 
@@ -118,16 +118,42 @@ Before implementing any Supabase feature, find the relevant documentation. Use t
118
118
 
119
119
  ## Making and Committing Schema Changes
120
120
 
121
- **To make schema changes, use `execute_sql` (MCP) or `supabase db query` (CLI).** These run SQL directly on the database without creating migration history entries, so you can iterate freely and generate a clean migration when ready.
121
+ Choose one project-level schema workflow before editing. Do not mix declarative schema files and hand-authored migrations for the same change.
122
122
 
123
- Do NOT use `apply_migration` to change a local database schema — it writes a migration history entry on every call, which means you can't iterate, and `supabase db diff` / `supabase db pull` will produce empty or conflicting diffs. If you use it, you'll be stuck with whatever SQL you passed on the first try.
123
+ ### Option A: Declarative schemas
124
124
 
125
- **When ready to commit** your changes to a migration file:
125
+ Use this when `supabase/schemas/` exists or `[db.migrations].schema_paths` is configured. The schema files are the source of truth; do not make the change directly in Studio, the SQL editor, or through `execute_sql`.
126
126
 
127
- 1. **Run advisors** `supabase db advisors` (CLI v2.81.3+) or MCP `get_advisors`. Fix any issues.
128
- 2. **Review the Security Checklist above** if your changes involve views, functions, triggers, or storage.
129
- 3. **Generate the migration** `supabase db pull <descriptive-name> --local --yes`
130
- 4. **Verify** → `supabase migration list --local`
127
+ 1. Edit the desired state in `supabase/schemas/`.
128
+ 2. Generate a migration from that state `supabase db diff -f <descriptive-name>`.
129
+ 3. Review the generated migration for one incremental change and any destructive SQL.
130
+ 4. Verify the full chain → `supabase db reset` (or apply pending migrations to a running local database with `supabase migration up`).
131
+ 5. Commit the schema files and generated migration together.
132
+
133
+ `supabase db diff` does not read the live database. Changes made directly to a database are not captured by the declarative diff. DML and other documented schema-diff limitations belong in a versioned imperative migration instead. See the [Declarative database schemas guide](https://supabase.com/docs/guides/local-development/declarative-database-schemas).
134
+
135
+ ### Option B: Imperative migrations
136
+
137
+ Use this when the project does not use declarative schemas.
138
+
139
+ 1. Create the migration → `supabase migration new <descriptive-name>`.
140
+ 2. Add the SQL to the generated file; never invent a migration filename or rely on memory for its format.
141
+ 3. Verify the full chain → `supabase db reset` (or use `supabase migration up` when applying pending migrations to a running local database).
142
+ 4. Run advisors, review the Security Checklist above when applicable, and commit the migration.
143
+
144
+ For an interactive experiment, target the local development database explicitly (for example, use `supabase db query` in the local project). Do not use the stack's default remote Supabase MCP for local iteration. If a local DDL experiment is the intended change, capture it with `supabase db diff -f <descriptive-name>` and review the migration; DML must be written explicitly into a versioned imperative migration because schema diff does not capture it. Otherwise reset or discard the experiment before starting the migration. Do not use `supabase db pull` for local changes. `supabase db pull` is for pulling a linked remote schema into a local migration.
145
+
146
+ Do NOT use `apply_migration` to change a local database schema — it writes a migration history entry on every call, which prevents iterative work and can leave the migration history inconsistent. If you use it, you are stuck with whatever SQL you passed on the first try.
147
+
148
+ When a migration is ready, `supabase db advisors` (CLI v2.81.3+) or MCP `get_advisors` can check the resulting database. Fix findings before committing, then use `supabase migration list --local` when you need to compare local and remote migration history.
149
+
150
+ ## Debugging
151
+
152
+ When you get an error on a Supabase-related request, for example an error code from the Supabase REST API, Postgres database, or PostgREST, an empty result, getting blocked by RLS unexpectedly, or an error from a Supabase service like Auth, Realtime, Edge Functions, or Storage, you **must** fetch Supabase's [Monitoring and Debugging](https://supabase.com/docs/guides/monitoring-and-debugging.md) documentation before diagnosing or proposing a fix, rather than working from memory. The same docs also cover performance optimizations, such as slow queries and missing indexes.
153
+
154
+ If the documentation or MCP is unavailable (offline or unauthenticated), explicitly label the result as an **offline fallback**. Use only checked-in guidance, local project evidence, and commands confirmed with `supabase --help`; do not guess version-specific behavior or run an unverified mutation. If the available evidence is insufficient, stop and ask for the missing context.
155
+
156
+ Before inspecting, querying, or sharing logs and errors, redact API keys, access tokens, JWTs, cookies, authorization headers, connection strings, and sensitive request or user payloads. Never print or paste secrets.
131
157
 
132
158
  ## Reference Guides
133
159
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: supabase-postgres-best-practices
3
- description: Postgres performance optimization and best practices from Supabase. Use this skill when writing, reviewing, or optimizing Postgres queries, schema designs, or database configurations.
3
+ description: "Use for Postgres work: schema design, migrations, declarative schemas, RLS, queries, performance, indexes, locks, triggers, functions, jobs, pgvector, imports/restores, or diagnosing timeouts and connection issues."
4
4
  license: MIT
5
5
  metadata:
6
6
  author: supabase
@@ -47,6 +47,10 @@ Use the cheapest seam that can fail for the real regression:
47
47
 
48
48
  “Integration-style” is not inherently stronger. A broad test full of mocks may be weaker than a focused rule test, while a regex over SQL text is weaker than executing the database behavior it claims to protect.
49
49
 
50
+ ## Anti-pattern: tautological tests
51
+
52
+ Do not let an assertion recompute the expected value the way the code does (`expect(add(a, b)).toBe(a + b)`, a snapshot derived by hand the same way, or a constant asserted equal to itself). It passes by construction and can never disagree with the code. Expected values must come from an independent source of truth: a known-good literal, a worked example, or the spec.
53
+
50
54
  ## Anti-pattern: horizontal slices
51
55
 
52
56
  Do not write all tests first and then all implementation. This outruns what has been learned and encourages tests of imagined shapes.
@@ -19,6 +19,8 @@ Work from whatever is already in the conversation context. If the user passes an
19
19
 
20
20
  If you have not already explored the codebase, do so to understand the current state of the code. Issue titles and descriptions should use the project's domain glossary vocabulary, and respect ADRs in the area you're touching.
21
21
 
22
+ Look for opportunities to prefactor the code to make the implementation easier. If a prefactoring is useful but optional, record it explicitly in the plan; if selected, publish it as its own issue before the slices that depend on it. "Make the change easy, then make the easy change."
23
+
22
24
  ### 3. Draft vertical slices
23
25
 
24
26
  Break the plan into **tracer bullet** issues. Each issue is a thin vertical slice that cuts through ALL integration layers end-to-end, NOT a horizontal slice of one layer.
@@ -28,9 +30,21 @@ Slices may be 'HITL' or 'AFK'. HITL slices require human interaction, such as an
28
30
  <vertical-slice-rules>
29
31
  - Each slice delivers a narrow but COMPLETE path through every layer (schema, API, UI, tests)
30
32
  - A completed slice is demoable or verifiable on its own
33
+ - Each slice is sized to fit in a single fresh context window
31
34
  - Prefer many thin slices over few thick ones
35
+ - Any selected prefactoring should be completed first and block the dependent slices
32
36
  </vertical-slice-rules>
33
37
 
38
+ Give each issue its **blocking edges**: the other issues that must complete before it can start. An issue with no blockers can start immediately. Keep the same edges in the project plan and the issue tracker.
39
+
40
+ **Wide refactors are the exception to vertical slicing.** A **wide refactor** is one mechanical change (for example, renaming a column or retyping a shared symbol) whose **blast radius** fans across the codebase, so a single edit breaks many call sites at once and no vertical slice can land green. Sequence it as **expand–contract**:
41
+
42
+ 1. **Expand:** add the new form beside the old so nothing breaks.
43
+ 2. **Migrate:** move call sites in batches sized by blast radius (for example, per package or directory), each as its own issue blocked by the expand issue, keeping the project green batch to batch while the old form still exists.
44
+ 3. **Contract:** delete the old form once no caller remains, in an issue blocked by every migration batch.
45
+
46
+ When even the migration batches cannot stay green alone, keep the sequence but use an integration branch that all batches block, followed by a final integrate-and-verify issue; green is promised only there.
47
+
34
48
  ### 4. Quiz the user
35
49
 
36
50
  Present the proposed breakdown as a numbered list. For each slice, show:
@@ -43,7 +57,7 @@ Present the proposed breakdown as a numbered list. For each slice, show:
43
57
  Ask the user:
44
58
 
45
59
  - Does the granularity feel right? (too coarse / too fine)
46
- - Are the dependency relationships correct?
60
+ - Are the blocking edges correct: does each slice only depend on issues that genuinely gate it?
47
61
  - Should any slices be merged or split further?
48
62
  - Are the correct slices marked as HITL and AFK?
49
63
 
package/upstreams.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "$comment": "Terceros gestionados por `jorgex-stack update`: fuente, versión conocida y política. `commit` = pin del upstream en la última revisión aceptada (2026-06-11, auditoría de seguridad): update --check compara el HEAD del repo contra el pin y avisa si se movió; cualquier actualización de la copia vendorizada se hace con diff manual y re-pin deliberado, nunca a ciegas. El pin es del repo completo (no por path): en monorepos activos un pin movido no implica que la skill cambiara — el diff lo confirma. Las skills 'modified: true' tienen cambios locales respecto al upstream — update debe hacer diff/aviso, NUNCA reemplazo ciego (PRD §7.3). Skills propias sin upstream (no se actualizan desde fuera): agent-delegation, work-lifecycle. `path` = ruta dentro del repo upstream donde vive la skill (para diff/descarga quirúrgica). `kind: \"release\"` = la actualización se compara contra tags de release en vez de HEAD (e.g. paquetes Python sin SKILL.md en repo).",
2
+ "$comment": "Terceros gestionados por `jorgex-stack update`: fuente, versión conocida y política. `commit` = pin del upstream en la última revisión aceptada (2026-06-11, auditoría de seguridad): update --check compara el HEAD del repo contra el pin y avisa si se movió; cualquier actualización de la copia vendorizada se hace con diff manual y re-pin deliberado, nunca a ciegas. El pin es del repo completo (no por path): en monorepos activos un pin movido no implica que la skill cambiara — el diff lo confirma. Las skills 'modified: true' tienen cambios locales respecto al upstream — update debe hacer diff/aviso, NUNCA reemplazo ciego (PRD §7.3). Skills propias sin upstream (no se actualizan desde fuera): agent-delegation, lean-code, orchestrator, work-lifecycle y xreview. `path` = ruta dentro del repo upstream donde vive la skill (para diff/descarga quirúrgica). `kind: \"release\"` = la actualización se compara contra tags de release en vez de HEAD (e.g. paquetes Python sin SKILL.md en repo).",
3
3
  "tools": {
4
4
  "engram": {
5
5
  "kind": "binary",
@@ -14,84 +14,87 @@
14
14
  "path": "skills/playwright-cli",
15
15
  "package": "@playwright/cli",
16
16
  "binary": "playwright-cli",
17
- "version": "0.1.17",
18
- "commit": "793cfb32572733cbcb401e6f28d05a7a914ce408",
17
+ "version": "0.1.18",
18
+ "commit": "2f85a94b7b885dbf4a5d34462f253a8746a690c9",
19
19
  "license": "Apache-2.0",
20
- "modified": true
20
+ "modified": true,
21
+ "note": "bundle release firmado 0.1.18 en ca196c297169a494ee5517584883eada60dc8d0e; el pin commit es el HEAD revisado del repo"
21
22
  },
22
23
  "deploy-to-vercel": {
23
24
  "source": "github:vercel-labs/agent-skills",
24
25
  "path": "skills/deploy-to-vercel",
25
26
  "version": "3.0.0",
26
- "commit": "f8a72b9603728bb92a217a879b7e62e43ad76c81",
27
+ "commit": "dd089a8c752c966dee8bf0f27cb625ba193ffd9e",
28
+ "modified": true,
27
29
  "note": "por diseño empaqueta el proyecto entero (tarball) y lo sube a un endpoint de Vercel para desplegarlo; excluye .env/.env.*/.git/node_modules"
28
30
  },
29
31
  "diagnose": {
30
32
  "source": "github:mattpocock/skills",
31
33
  "path": "skills/engineering/diagnosing-bugs",
32
- "commit": "694fa30311e02c2639942308513555e61ee84a6f",
33
- "note": "upstream renombró la carpeta diagnose → diagnosing-bugs; mantenemos el nombre local 'diagnose'. El pin sigue en la última revisión aceptada hasta hacer diff y re-pin deliberado del contenido nuevo."
34
+ "commit": "5b15a47f2d7150f545fbcacbfe381787fc0230dc",
35
+ "modified": true,
36
+ "note": "upstream renombró la carpeta diagnose → diagnosing-bugs; mantenemos el nombre y las adaptaciones locales sobre el HEAD revisado"
34
37
  },
35
38
  "find-skills": {
36
39
  "source": "github:vercel-labs/skills",
37
40
  "path": "skills/find-skills",
38
- "commit": "be0dd25b4a8665894a56f45ef582cc02ca802c39"
41
+ "commit": "435076e78988e1e6ec40d00b0b1d76bdbbc5419a",
42
+ "modified": true,
43
+ "note": "la copia vendorizada se limita a descubrir skills; no acepta ni ejecuta instalación, actualización o inicialización de contenido upstream"
39
44
  },
40
45
  "mcp-builder": {
41
46
  "source": "github:anthropics/skills",
42
47
  "path": "skills/mcp-builder",
43
- "commit": "57546260929473d4e0d1c1bb75297be2fdfa1949",
44
- "license": "Apache-2.0"
45
- },
46
- "obsidian-cli": {
47
- "source": "github:kepano/obsidian-skills",
48
- "path": "skills/obsidian-cli",
49
- "commit": "a1dc48e68138490d522c04cbf5822214c6eb1202"
50
- },
51
- "obsidian-markdown": {
52
- "source": "github:kepano/obsidian-skills",
53
- "path": "skills/obsidian-markdown",
54
- "commit": "a1dc48e68138490d522c04cbf5822214c6eb1202"
48
+ "commit": "3b3fad96af16a10759d930941b4520ba0c40edae",
49
+ "license": "Apache-2.0",
50
+ "modified": true
55
51
  },
56
52
  "react-doctor": {
57
53
  "source": "github:millionco/react-doctor",
58
54
  "path": "skills/react-doctor",
59
- "commit": "a48fb06ffbe7221655e18529fcc954ecae17a22f"
55
+ "commit": "e183c3519010599d929ed14d99a18bf1f8f8a44c",
56
+ "modified": true
60
57
  },
61
58
  "skill-creator": {
62
59
  "source": "github:anthropics/skills",
63
60
  "path": "skills/skill-creator",
64
- "commit": "57546260929473d4e0d1c1bb75297be2fdfa1949",
65
- "license": "Apache-2.0"
61
+ "commit": "3b3fad96af16a10759d930941b4520ba0c40edae",
62
+ "license": "Apache-2.0",
63
+ "modified": true
66
64
  },
67
65
  "supabase": {
68
66
  "source": "github:supabase/agent-skills",
69
67
  "path": "skills/supabase",
70
68
  "version": "0.1.2",
71
- "commit": "1356046015476711a769601079262b5635929427"
69
+ "commit": "8331f910845103c08d51f6ca1d86ebb7d1f745e3",
70
+ "modified": true
72
71
  },
73
72
  "supabase-postgres-best-practices": {
74
73
  "source": "github:supabase/agent-skills",
75
74
  "path": "skills/supabase-postgres-best-practices",
76
- "commit": "1356046015476711a769601079262b5635929427",
77
- "license": "MIT"
75
+ "commit": "8331f910845103c08d51f6ca1d86ebb7d1f745e3",
76
+ "license": "MIT",
77
+ "modified": true
78
78
  },
79
79
  "tdd": {
80
80
  "source": "github:mattpocock/skills",
81
81
  "path": "skills/engineering/tdd",
82
- "commit": "694fa30311e02c2639942308513555e61ee84a6f",
82
+ "commit": "5b15a47f2d7150f545fbcacbfe381787fc0230dc",
83
83
  "modified": true
84
84
  },
85
85
  "to-issues": {
86
86
  "source": "github:mattpocock/skills",
87
- "path": "skills/engineering/to-issues",
88
- "commit": "694fa30311e02c2639942308513555e61ee84a6f"
87
+ "path": "skills/engineering/to-tickets",
88
+ "commit": "5b15a47f2d7150f545fbcacbfe381787fc0230dc",
89
+ "modified": true,
90
+ "note": "upstream renombró to-issues → to-tickets; conservamos el nombre y las adaptaciones locales sobre el HEAD revisado"
89
91
  },
90
92
  "to-prd": {
91
93
  "source": "github:mattpocock/skills",
92
- "path": "skills/engineering/to-prd",
93
- "commit": "694fa30311e02c2639942308513555e61ee84a6f",
94
- "modified": true
94
+ "path": "skills/engineering/to-spec",
95
+ "commit": "5b15a47f2d7150f545fbcacbfe381787fc0230dc",
96
+ "modified": true,
97
+ "note": "upstream renombró to-prd → to-spec; conservamos el contrato D9 v2 local sobre el HEAD revisado"
95
98
  }
96
99
  }
97
100
  }
@@ -1,106 +0,0 @@
1
- ---
2
- name: obsidian-cli
3
- description: Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more. Also supports plugin and theme development with commands to reload plugins, run JavaScript, capture errors, take screenshots, and inspect the DOM. Use when the user asks to interact with their Obsidian vault, manage notes, search vault content, perform vault operations from the command line, or develop and debug Obsidian plugins and themes.
4
- ---
5
-
6
- # Obsidian CLI
7
-
8
- Use the `obsidian` CLI to interact with a running Obsidian instance. Requires Obsidian to be open.
9
-
10
- ## Command reference
11
-
12
- Run `obsidian help` to see all available commands. This is always up to date. Full docs: https://help.obsidian.md/cli
13
-
14
- ## Syntax
15
-
16
- **Parameters** take a value with `=`. Quote values with spaces:
17
-
18
- ```bash
19
- obsidian create name="My Note" content="Hello world"
20
- ```
21
-
22
- **Flags** are boolean switches with no value:
23
-
24
- ```bash
25
- obsidian create name="My Note" silent overwrite
26
- ```
27
-
28
- For multiline content use `\n` for newline and `\t` for tab.
29
-
30
- ## File targeting
31
-
32
- Many commands accept `file` or `path` to target a file. Without either, the active file is used.
33
-
34
- - `file=<name>` — resolves like a wikilink (name only, no path or extension needed)
35
- - `path=<path>` — exact path from vault root, e.g. `folder/note.md`
36
-
37
- ## Vault targeting
38
-
39
- Commands target the most recently focused vault by default. Use `vault=<name>` as the first parameter to target a specific vault:
40
-
41
- ```bash
42
- obsidian vault="My Vault" search query="test"
43
- ```
44
-
45
- ## Common patterns
46
-
47
- ```bash
48
- obsidian read file="My Note"
49
- obsidian create name="New Note" content="# Hello" template="Template" silent
50
- obsidian append file="My Note" content="New line"
51
- obsidian search query="search term" limit=10
52
- obsidian daily:read
53
- obsidian daily:append content="- [ ] New task"
54
- obsidian property:set name="status" value="done" file="My Note"
55
- obsidian tasks daily todo
56
- obsidian tags sort=count counts
57
- obsidian backlinks file="My Note"
58
- ```
59
-
60
- Use `--copy` on any command to copy output to clipboard. Use `silent` to prevent files from opening. Use `total` on list commands to get a count.
61
-
62
- ## Plugin development
63
-
64
- ### Develop/test cycle
65
-
66
- After making code changes to a plugin or theme, follow this workflow:
67
-
68
- 1. **Reload** the plugin to pick up changes:
69
- ```bash
70
- obsidian plugin:reload id=my-plugin
71
- ```
72
- 2. **Check for errors** — if errors appear, fix and repeat from step 1:
73
- ```bash
74
- obsidian dev:errors
75
- ```
76
- 3. **Verify visually** with a screenshot or DOM inspection:
77
- ```bash
78
- obsidian dev:screenshot path=screenshot.png
79
- obsidian dev:dom selector=".workspace-leaf" text
80
- ```
81
- 4. **Check console output** for warnings or unexpected logs:
82
- ```bash
83
- obsidian dev:console level=error
84
- ```
85
-
86
- ### Additional developer commands
87
-
88
- Run JavaScript in the app context:
89
-
90
- ```bash
91
- obsidian eval code="app.vault.getFiles().length"
92
- ```
93
-
94
- Inspect CSS values:
95
-
96
- ```bash
97
- obsidian dev:css selector=".workspace-leaf" prop=background-color
98
- ```
99
-
100
- Toggle mobile emulation:
101
-
102
- ```bash
103
- obsidian dev:mobile on
104
- ```
105
-
106
- Run `obsidian help` to see additional developer commands including CDP and debugger controls.