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.
- package/README.md +24 -7
- package/dist/cli.js +65 -67
- package/package.json +1 -1
- package/stack/skills/deploy-to-vercel/SKILL.md +14 -8
- package/stack/skills/diagnose/SKILL.md +31 -8
- package/stack/skills/find-skills/SKILL.md +37 -113
- package/stack/skills/mcp-builder/LICENSE.txt +2 -2
- package/stack/skills/mcp-builder/SKILL.md +5 -2
- package/stack/skills/mcp-builder/reference/evaluation.md +9 -16
- package/stack/skills/mcp-builder/reference/node_mcp_server.md +9 -6
- package/stack/skills/mcp-builder/scripts/requirements.txt +2 -2
- package/stack/skills/playwright-cli/SKILL.md +2 -2
- package/stack/skills/playwright-cli/references/test-generation.md +7 -8
- package/stack/skills/react-doctor/SKILL.md +12 -1
- package/stack/skills/skill-creator/LICENSE.txt +2 -2
- package/stack/skills/supabase/SKILL.md +35 -9
- package/stack/skills/supabase-postgres-best-practices/SKILL.md +1 -1
- package/stack/skills/tdd/SKILL.md +4 -0
- package/stack/skills/to-issues/SKILL.md +15 -1
- package/upstreams.json +35 -32
- package/stack/skills/obsidian-cli/SKILL.md +0 -106
- package/stack/skills/obsidian-markdown/SKILL.md +0 -196
- package/stack/skills/obsidian-markdown/references/CALLOUTS.md +0 -58
- package/stack/skills/obsidian-markdown/references/EMBEDS.md +0 -63
- package/stack/skills/obsidian-markdown/references/PROPERTIES.md +0 -61
|
@@ -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. **
|
|
384
|
+
1. **Prepare a locked Python environment**
|
|
385
385
|
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
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. **
|
|
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
|
-
|
|
904
|
+
pnpm run build
|
|
905
905
|
|
|
906
906
|
# Run the server
|
|
907
|
-
|
|
907
|
+
pnpm start
|
|
908
908
|
|
|
909
909
|
# Development with auto-reload
|
|
910
|
-
|
|
910
|
+
pnpm run dev
|
|
911
911
|
```
|
|
912
912
|
|
|
913
|
-
Always ensure `
|
|
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
|
-
- [ ] `
|
|
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
|
|
2
|
-
mcp
|
|
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.
|
|
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.
|
|
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,
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
-
|
|
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
|
-
|
|
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
|
-
|
|
123
|
+
### Option A: Declarative schemas
|
|
124
124
|
|
|
125
|
-
|
|
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.
|
|
128
|
-
2.
|
|
129
|
-
3.
|
|
130
|
-
4.
|
|
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:
|
|
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
|
|
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.
|
|
18
|
-
"commit": "
|
|
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": "
|
|
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": "
|
|
33
|
-
"
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
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": "
|
|
82
|
+
"commit": "5b15a47f2d7150f545fbcacbfe381787fc0230dc",
|
|
83
83
|
"modified": true
|
|
84
84
|
},
|
|
85
85
|
"to-issues": {
|
|
86
86
|
"source": "github:mattpocock/skills",
|
|
87
|
-
"path": "skills/engineering/to-
|
|
88
|
-
"commit": "
|
|
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-
|
|
93
|
-
"commit": "
|
|
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.
|