opencode-skills-collection 3.1.10 → 3.1.11

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 (66) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +8 -1
  2. package/bundled-skills/browser-testing-with-devtools/SKILL.md +334 -0
  3. package/bundled-skills/docs/integrations/jetski-cortex.md +3 -3
  4. package/bundled-skills/docs/integrations/jetski-gemini-loader/README.md +1 -1
  5. package/bundled-skills/docs/maintainers/repo-growth-seo.md +3 -3
  6. package/bundled-skills/docs/maintainers/skills-update-guide.md +1 -1
  7. package/bundled-skills/docs/sources/sources.md +4 -0
  8. package/bundled-skills/docs/users/bundles.md +1 -1
  9. package/bundled-skills/docs/users/claude-code-skills.md +1 -1
  10. package/bundled-skills/docs/users/gemini-cli-skills.md +1 -1
  11. package/bundled-skills/docs/users/getting-started.md +1 -1
  12. package/bundled-skills/docs/users/kiro-integration.md +1 -1
  13. package/bundled-skills/docs/users/usage.md +4 -4
  14. package/bundled-skills/docs/users/visual-guide.md +4 -4
  15. package/bundled-skills/drizzle-migration-conflict/SKILL.md +179 -0
  16. package/bundled-skills/drizzle-migration-conflict/references/ci-policy.md +87 -0
  17. package/bundled-skills/drizzle-migration-conflict/references/conflict-resolution.md +163 -0
  18. package/bundled-skills/drizzle-migration-conflict/references/report-template.md +69 -0
  19. package/bundled-skills/drizzle-migration-conflict/references/sources.md +51 -0
  20. package/bundled-skills/drizzle-migration-conflict/scripts/check_drizzle_migrations.py +721 -0
  21. package/bundled-skills/frontend-lighthouse/SKILL.md +348 -0
  22. package/bundled-skills/pre-release-review/SKILL.md +198 -0
  23. package/bundled-skills/pre-release-review/references/checklist.md +104 -0
  24. package/bundled-skills/pre-release-review/references/report-template.md +91 -0
  25. package/bundled-skills/re-create/SKILL.md +251 -0
  26. package/bundled-skills/weaviate/SKILL.md +132 -0
  27. package/bundled-skills/weaviate/references/ask.md +36 -0
  28. package/bundled-skills/weaviate/references/create_collection.md +152 -0
  29. package/bundled-skills/weaviate/references/environment_requirements.md +34 -0
  30. package/bundled-skills/weaviate/references/example_data.md +24 -0
  31. package/bundled-skills/weaviate/references/explore_collection.md +50 -0
  32. package/bundled-skills/weaviate/references/fetch_filter.md +88 -0
  33. package/bundled-skills/weaviate/references/get_collection.md +32 -0
  34. package/bundled-skills/weaviate/references/hybrid_search.md +47 -0
  35. package/bundled-skills/weaviate/references/import_data.md +160 -0
  36. package/bundled-skills/weaviate/references/keyword_search.md +38 -0
  37. package/bundled-skills/weaviate/references/list_collections.md +31 -0
  38. package/bundled-skills/weaviate/references/query_search.md +38 -0
  39. package/bundled-skills/weaviate/references/semantic_search.md +46 -0
  40. package/bundled-skills/weaviate/scripts/ask.py +106 -0
  41. package/bundled-skills/weaviate/scripts/create_collection.py +359 -0
  42. package/bundled-skills/weaviate/scripts/example_data.py +945 -0
  43. package/bundled-skills/weaviate/scripts/explore_collection.py +295 -0
  44. package/bundled-skills/weaviate/scripts/fetch_filter.py +261 -0
  45. package/bundled-skills/weaviate/scripts/get_collection.py +122 -0
  46. package/bundled-skills/weaviate/scripts/hybrid_search.py +157 -0
  47. package/bundled-skills/weaviate/scripts/import.py +701 -0
  48. package/bundled-skills/weaviate/scripts/keyword_search.py +142 -0
  49. package/bundled-skills/weaviate/scripts/list_collections.py +77 -0
  50. package/bundled-skills/weaviate/scripts/query_search.py +135 -0
  51. package/bundled-skills/weaviate/scripts/semantic_search.py +139 -0
  52. package/bundled-skills/weaviate/scripts/weaviate_conn.py +231 -0
  53. package/bundled-skills/weaviate-cookbooks/SKILL.md +67 -0
  54. package/bundled-skills/weaviate-cookbooks/references/advanced_rag.md +274 -0
  55. package/bundled-skills/weaviate-cookbooks/references/agentic_rag.md +360 -0
  56. package/bundled-skills/weaviate-cookbooks/references/async_client.md +428 -0
  57. package/bundled-skills/weaviate-cookbooks/references/basic_agent.md +270 -0
  58. package/bundled-skills/weaviate-cookbooks/references/basic_rag.md +219 -0
  59. package/bundled-skills/weaviate-cookbooks/references/data_explorer.md +336 -0
  60. package/bundled-skills/weaviate-cookbooks/references/environment_requirements.md +78 -0
  61. package/bundled-skills/weaviate-cookbooks/references/frontend_interface.md +104 -0
  62. package/bundled-skills/weaviate-cookbooks/references/pdf_multimodal_rag.md +635 -0
  63. package/bundled-skills/weaviate-cookbooks/references/project_setup.md +75 -0
  64. package/bundled-skills/weaviate-cookbooks/references/query_agent_chatbot.md +163 -0
  65. package/package.json +1 -1
  66. package/skills_index.json +156 -0
@@ -0,0 +1,91 @@
1
+ # Pre-release Review Report Template
2
+
3
+ Use this template for the final report. Translate headings to the user's language if useful, but
4
+ keep the same sections, priority labels, conclusion values, and finding fields.
5
+
6
+ ## Priority definitions
7
+
8
+ - `P0` - Block release. A production deploy is likely to fail, corrupt data, expose secrets, break
9
+ compatibility, or require a missing manual action.
10
+ - `P1` - High risk, must confirm before release. Evidence suggests a production dependency,
11
+ migration, config, cache, queue, asset, or service-order risk.
12
+ - `P2` - Medium risk or ambiguous gap. Not clearly blocking, but should be checked before release
13
+ because the diff introduces uncertainty.
14
+ - `P3` - Low-risk note. Do not include P3 in the main report unless the user asks for a complete
15
+ audit log.
16
+
17
+ ## Conclusion values
18
+
19
+ - `BLOCKED` - At least one P0 finding exists.
20
+ - `NEEDS_CONFIRMATION` - No P0 was found, but one or more P1/P2 items need confirmation.
21
+ - `NO_BLOCKER_FOUND` - No P0-P2 finding or release confirmation item was found from available
22
+ evidence. Neutral verification limits may still be listed separately.
23
+
24
+ ## Findings versus Unable To Verify
25
+
26
+ - Put diff-linked production risks in `Findings`. Examples: a new env var whose production value
27
+ cannot be verified, a schema change with unclear migration execution, or a new queue whose
28
+ infrastructure is not confirmed.
29
+ - Any P1 or P2 finding means the conclusion is `NEEDS_CONFIRMATION` unless a P0 makes it `BLOCKED`.
30
+ - Put only neutral tool or access limits in `Unable To Verify`. Examples: remote PR access is
31
+ unavailable, deployment platform access is unavailable, or owner inference failed without a
32
+ specific release-critical change.
33
+ - If an access/tool limitation prevents confirmation of a release-critical diff change, promote it
34
+ to a P1/P2 finding instead of leaving it only in `Unable To Verify`.
35
+
36
+ ## Owner inference
37
+
38
+ - Prefer `git blame` on changed lines for the file and line that caused the finding.
39
+ - If blame is unavailable or misleading, use `git log --format="%h %an %s" -- <path>`.
40
+ - If several commits contributed to the same release risk, list all relevant author names.
41
+ - Mark owners as "inferred" and do not expose email addresses.
42
+ - If no owner can be inferred, write `Unknown (not inferable from local git evidence)`.
43
+
44
+ ## Secret redaction
45
+
46
+ - Never print secret values, even partially, unless the value is already a harmless placeholder such
47
+ as `example`, `changeme`, or `REDACTED`.
48
+ - Report secrets as: path, line, variable/key name, type, and redacted hint.
49
+ - Example: `config/prod.env:12` - `PAYMENT_API_KEY`, suspected API key, value redacted.
50
+ - Do not paste PEM blocks, JWTs, cookies, session IDs, private keys, passwords, certificates, or
51
+ cloud credentials into the report.
52
+
53
+ ## Final report shape
54
+
55
+ ```markdown
56
+ # Production Release Readiness Review
57
+
58
+ ## Scope
59
+ - Range: <base>..<head> | PR <number> | latest 5 commits fallback
60
+ - Current branch: <branch>
61
+ - Head commit: <hash>
62
+ - Compared from: <tag/hash/pr-base>
63
+ - Commit count: <count>
64
+ - Dirty worktree: <yes/no and short note>
65
+ - Commands used: <short list of read-only commands>
66
+
67
+ ## Conclusion
68
+ `BLOCKED` | `NEEDS_CONFIRMATION` | `NO_BLOCKER_FOUND`
69
+
70
+ ## Findings
71
+ | Priority | Module | Finding | Evidence | Inferred owner | Risk | Recommended action |
72
+ | --- | --- | --- | --- | --- | --- | --- |
73
+ | P0/P1/P2 | <area/service> | <short issue> | <file:line or commit/range> | <name(s) or unknown> | <why it matters> | <release action> |
74
+
75
+ ## Deployment Order / Release Actions
76
+ - <Only include when relevant. State service order, migrations, queue/cache/resource actions, and compatibility constraints.>
77
+
78
+ ## Unable To Verify
79
+ - <Tooling, auth, remote, production-config, or repository limits that prevent confirmation.>
80
+ ```
81
+
82
+ ## Finding writing rules
83
+
84
+ - Keep each finding actionable and short.
85
+ - Include only P0-P2 or explicit confirmation risks.
86
+ - Do not include clean categories like "database OK" or "security OK".
87
+ - Use evidence-driven wording: "schema changed but no migration file changed" is better than
88
+ "maybe migration missing".
89
+ - If risk is ambiguous, say exactly what must be confirmed before release.
90
+ - If no findings exist, omit the `Findings` table and write:
91
+ `No P0-P2 release blockers or confirmation items were found from the available repository evidence.`
@@ -0,0 +1,251 @@
1
+ ---
2
+ name: re-create
3
+ description: "Completely delete and rewrite a file or module from scratch when structural rot makes patching impossible."
4
+ risk: critical
5
+ source: community
6
+ date_added: "2026-06-27"
7
+ ---
8
+
9
+ # re-create — Controlled Erasure & Rebuild Protocol
10
+
11
+ ## Overview
12
+
13
+ > Hollow Purple is Gojo's most destructive technique — blue and red combined into total erasure of the target. But Gojo doesn't use it carelessly. He knows exactly what he's erasing and why. Same here: this skill is the nuclear option, invoked only when patching is the wrong call, executed with full control over what gets erased and what must survive.
14
+
15
+ Rewrites are dangerous not because rebuilding is hard, but because it is easy to silently erase behavior that was working and expected. This skill enforces a complete inventory of what must survive before a single line is deleted, and a full verification that everything survived after the rebuild.
16
+
17
+ ---
18
+
19
+ ## When to Use This Skill
20
+
21
+ - Use when a file, module, or component needs to be completely deleted and rewritten from scratch
22
+ - Use when structural rot is so deep that individual fixes would only make it worse
23
+ - Use when accumulated technical debt makes the code unmaintainable
24
+ - Use when the target is fundamentally broken and beyond saving
25
+ - **DO NOT** use for partial refactors, single-function fixes, or targeted edits
26
+
27
+ ---
28
+
29
+ ## How It Works
30
+
31
+ ### PHASE 1 — Justify the Erasure
32
+
33
+ The AI must prove that a full rewrite is necessary. It must answer all of the following:
34
+
35
+ 1. **What specifically is broken or unsalvageable?**
36
+ - Not "it's messy" — specific structural problems that make targeted fixes impossible or counterproductive
37
+ 2. **Why would targeted edits make things worse, not better?**
38
+ - Patching on top of rot, compounding complexity, architectural mismatch
39
+ 3. **What is the concrete cost of keeping the current implementation?**
40
+ - Maintenance burden, bug surface, performance, developer velocity
41
+
42
+ If the AI cannot clearly answer all three, it must fall back to targeted edits instead of a rewrite. A rewrite is not a reward for messy code — it is a last resort.
43
+
44
+ > **The bar is high.** "This code is ugly" does not justify hollow purple. "The architecture assumes X but the system now requires Y and every patch makes the mismatch worse" does.
45
+
46
+ ---
47
+
48
+ ### PHASE 2 — Read the Target Completely
49
+
50
+ Before proposing deletion, the AI must read the entire target (file, module, or component) in full.
51
+
52
+ The AI must identify and catalog:
53
+
54
+ 1. **Public interfaces** — functions, classes, types, or exports that other parts of the codebase call
55
+ 2. **Implicit contracts** — behaviors that other files depend on even if not formally typed
56
+ 3. **Working behaviors** — things the current implementation does correctly that must continue to work
57
+ 4. **Non-obvious logic** — edge cases, guards, or special handling that looks incidental but is intentional
58
+ 5. **Blast radius** — every file in the codebase that imports from or depends on the target
59
+
60
+ > **The AI cannot skip this phase even if it has read the file before.** The purpose is not familiarity — it is building the Preservation List.
61
+
62
+ ---
63
+
64
+ ### PHASE 3 — Erasure Declaration (User Must Confirm)
65
+
66
+ The AI outputs a complete erasure plan and **waits for user confirmation before deleting or writing anything.**
67
+
68
+ ```
69
+ HOLLOW PURPLE — ERASURE PLAN
70
+ ─────────────────────────────────────────
71
+ TARGET FOR ERASURE:
72
+ [file path or module name]
73
+
74
+ WHY TARGETED FIXES ARE WRONG:
75
+ [specific justification — architectural rot, fundamental mismatch, etc.]
76
+
77
+ PRESERVATION LIST (must survive the rewrite):
78
+ - [public interface / export 1] → [what it does, who depends on it]
79
+ - [public interface / export 2] → [what it does, who depends on it]
80
+ - [working behavior 1] → [what it does, why it must be kept]
81
+ - [non-obvious logic 1] → [what it guards against]
82
+
83
+ BLAST RADIUS (files that depend on the target):
84
+ - [file path] → depends on [what specifically]
85
+ - [file path] → depends on [what specifically]
86
+
87
+ NEW IMPLEMENTATION PLAN:
88
+ [Description of what the rebuild will look like — structure, approach, key decisions]
89
+
90
+ WHAT WILL NOT BE PRESERVED:
91
+ [Anything intentionally dropped and why — dead code, deprecated behavior, etc.]
92
+ ─────────────────────────────────────────
93
+ Confirm to proceed with erasure and rebuild.
94
+ ```
95
+
96
+ > **Nothing is deleted until the user explicitly confirms.** A reply of "yes", "confirmed", "do it", or equivalent counts. Silence does not.
97
+
98
+ ---
99
+
100
+ ### PHASE 4 — Controlled Erasure
101
+
102
+ User confirms → the target is deleted. Rules for this phase:
103
+
104
+ - **Delete cleanly.** Not commented out, not renamed to `_old`, not archived in place — deleted.
105
+ - **Delete only the declared target.** Nothing outside the declared scope is touched during erasure.
106
+ - **Pause if scope expands.** If deletion reveals unexpected dependencies not in the blast radius list, the AI stops and reports before continuing.
107
+
108
+ ---
109
+
110
+ ### PHASE 5 — Rebuild Against the Preservation List
111
+
112
+ The AI writes the new implementation. Rules:
113
+
114
+ 1. **Every item on the Preservation List is an obligation.** The rebuild is not complete until every preserved interface, behavior, and edge case is implemented and checked off.
115
+ 2. **Match the blast radius expectations.** Files that depended on the old implementation must be able to use the new one without changes — unless changes to dependent files were declared in Phase 3.
116
+ 3. **No bonus features.** The rebuild implements what was declared. New improvements, extra functionality, and cleanup of adjacent things are a separate task.
117
+ 4. **Follow existing codebase conventions.** The new implementation must use the same patterns, naming conventions, and style as the surrounding codebase — not whatever the AI prefers.
118
+
119
+ The AI tracks preservation progress explicitly:
120
+
121
+ ```
122
+ REBUILD PROGRESS
123
+ ─────────────────────────────────────────
124
+ Preservation List:
125
+ ✓ [interface 1] → implemented
126
+ ✓ [working behavior 1] → implemented
127
+ ✗ [non-obvious logic 1] → pending
128
+ ─────────────────────────────────────────
129
+ ```
130
+
131
+ ---
132
+
133
+ ### PHASE 6 — Blast Radius Verification
134
+
135
+ After the rebuild is complete, the AI checks every file in the blast radius:
136
+
137
+ 1. **Re-read each dependent file** and confirm it can still use the new implementation
138
+ 2. **Verify each dependency** — the function signatures, exports, and behaviors it relied on are present in the rebuild
139
+ 3. **Flag any breakage** — if a dependent file now has a mismatch, report it and propose a fix before declaring done
140
+
141
+ Final verification report:
142
+
143
+ ```
144
+ HOLLOW PURPLE — VERIFICATION
145
+ ─────────────────────────────────────────
146
+ Preservation List: ALL ITEMS ✓
147
+ Blast radius files checked:
148
+ - [file] → ✓ compatible with new implementation
149
+ - [file] → ✓ compatible with new implementation
150
+ New issues introduced: NONE / [describe if found]
151
+ ─────────────────────────────────────────
152
+ Status: CLEAN ✓ / NEEDS FOLLOW-UP ⚠
153
+ ```
154
+
155
+ ---
156
+
157
+ ## Self-Ask Before Erasure
158
+
159
+ The AI must answer all four before Phase 4 begins:
160
+
161
+ | # | Question | Required |
162
+ |---|---|---|
163
+ | 1 | Have I read the entire target and built a complete Preservation List? | Yes — or read more |
164
+ | 2 | Have I identified the full blast radius? | Yes — or search more |
165
+ | 3 | Has the user confirmed the erasure plan? | Yes — or wait |
166
+ | 4 | Is the erasure scoped exactly to what was declared? | Yes — or re-declare |
167
+
168
+ ---
169
+
170
+ ## Hard Rules (Never Violated)
171
+
172
+ - **No deletion before user confirmation.** Ever.
173
+ - **No deletion before the Preservation List is complete.** You cannot protect what you haven't inventoried.
174
+ - **No "clean up while I'm at it" during rebuild.** The rebuild scope is exactly what was declared.
175
+ - **No undeclared blast radius expansion.** If a dependent file wasn't in the list, stop and report it.
176
+ - **No skipping Phase 6.** The rebuild is not done until blast radius files are verified.
177
+ - **No rewrites disguised as refactors.** If more than 80% of a file is being changed, this protocol applies.
178
+
179
+ ---
180
+
181
+ ## What This Skill Prevents
182
+
183
+ - Rewrites that silently drop working edge-case logic that wasn't documented
184
+ - Rebuilds that break dependent files because their interfaces changed
185
+ - Rewrites done for the wrong reason (style preference, boredom) when a targeted fix would have been better
186
+ - Partial rebuilds that leave the codebase in a broken half-old-half-new state
187
+ - Blast radius files breaking silently with no one noticing until runtime
188
+
189
+ ---
190
+
191
+ ## Quick Reference
192
+
193
+ | Phase | Action | Deletes/Writes Code? |
194
+ |---|---|---|
195
+ | 1 — Justify | Prove erasure is necessary | ❌ No |
196
+ | 2 — Read | Read target fully, build Preservation List | ❌ No |
197
+ | 3 — Declare | Output erasure plan, wait for confirmation | ❌ No |
198
+ | 4 — Erase | Delete the declared target | 🗑️ Deletes only |
199
+ | 5 — Rebuild | Write new implementation against Preservation List | ✅ Writes |
200
+ | 6 — Verify | Check Preservation List + blast radius | ❌ No |
201
+
202
+ ---
203
+
204
+ ## Security & Safety Notes
205
+
206
+ - **Authorized Use Only:** This skill involves destructive capabilities (deleting files). Always ensure you have appropriate authorization and backups before triggering a full rebuild.
207
+ - **Explicit Confirmation Required:** No code should ever be deleted without explicit user confirmation of the Erasure Plan.
208
+
209
+ ---
210
+
211
+ ## Examples
212
+
213
+ ### Example 1: Triggering a full module rewrite
214
+ ```text
215
+ User: "The authentication module is beyond saving. Rewrite this from scratch."
216
+
217
+ AI: [Outputs HOLLOW PURPLE — ERASURE PLAN]
218
+ "Confirm to proceed with erasure and rebuild."
219
+
220
+ User: "Confirmed."
221
+
222
+ AI: [Executes Phase 4 and 5: Controlled Erasure and Rebuild against the Preservation List]
223
+ ```
224
+
225
+ ### Example 2: Erasure correctly rejected in Phase 1
226
+ ```text
227
+ User: "This data formatting script is a mess, rewrite it from scratch."
228
+
229
+ AI: [Evaluates Phase 1 criteria]
230
+ "I cannot justify a full rewrite. While the code is messy, the structural rot is not deep enough to make patching impossible. The blast radius is limited, and targeted edits will improve it without the risk of erasing undocumented behaviors. I will proceed with surgical refactoring instead."
231
+ ```
232
+
233
+ ---
234
+
235
+ ## Trigger Phrases
236
+
237
+ - "rewrite this from scratch"
238
+ - "delete this and redo it"
239
+ - "this is beyond saving / beyond repair"
240
+ - "the whole module / component / file is broken"
241
+ - "start over on this"
242
+ - Any situation where patching would compound the problem rather than solve it
243
+
244
+ ---
245
+
246
+ ## Limitations
247
+
248
+ - The AI must explicitly justify the rewrite and receive user confirmation before deleting anything.
249
+ - The rebuild scope must exactly match what was declared (no bonus features or extra cleanup).
250
+ - Does not apply to partial refactoring, single-function fixes, or targeted bug fixes.
251
+ - It requires identifying the full blast radius upfront to avoid silently breaking dependencies.
@@ -0,0 +1,132 @@
1
+ ---
2
+ name: weaviate
3
+ description: "Search, query, inspect, create, and import data into Weaviate vector database collections using official scripts and references."
4
+ category: databases
5
+ risk: critical
6
+ source: community
7
+ source_repo: weaviate/agent-skills
8
+ source_type: official
9
+ date_added: "2026-06-29"
10
+ author: Weaviate
11
+ tags: [weaviate, vector-database, semantic-search, hybrid-search, data-import]
12
+ tools: [python, weaviate]
13
+ license: "BSD-3-Clause"
14
+ license_source: "https://github.com/weaviate/agent-skills/blob/main/LICENSE"
15
+ ---
16
+
17
+ # Weaviate Database Operations
18
+
19
+ This skill provides comprehensive access to Weaviate vector databases including search operations, natural language queries, schema inspection, data exploration, filtered fetching, collection creation, and data imports.
20
+
21
+ ## When to Use This Skill
22
+
23
+ - Use when the user needs to inspect Weaviate collections, schemas, or data distribution.
24
+ - Use when running semantic, hybrid, keyword, filtered, or Query Agent searches against Weaviate.
25
+ - Use when importing CSV, JSON, JSONL, or PDF data into a Weaviate collection.
26
+ - Use when creating example data or a collection for a Weaviate-backed workflow.
27
+
28
+ ### Weaviate Cloud Instance
29
+
30
+ If the user does not have an instance yet, direct them to the cloud console to register and create a free sandbox. Create a Weaviate instance via [Weaviate Cloud](https://console.weaviate.cloud/signin?utm_source=github&utm_campaign=agent_skills).
31
+
32
+ ## Environment Variables
33
+
34
+ **Required:**
35
+
36
+ - `WEAVIATE_URL` - Your Weaviate Cloud cluster URL
37
+ - `WEAVIATE_API_KEY` - Your Weaviate API key
38
+
39
+ **External Provider Keys (auto-detected):**
40
+ Set only the keys your collections use, refer to [Environment Requirements](references/environment_requirements.md) for more information.
41
+
42
+ ## Script Index
43
+
44
+ ### Search & Query
45
+
46
+ - [Query Agent - Ask Mode](references/ask.md): Use when the user wants a **direct answer** to a question based on collection data. The Query Agent synthesizes information from one or more collections and returns a structured response with source citations (collection name and object ID).
47
+ - [Query Agent - Search Mode](references/query_search.md): Use when the user wants to **explore or browse raw objects** across one or more collections. Unlike ask mode, this returns the actual data objects rather than a synthesized answer.
48
+ - [Hybrid Search](references/hybrid_search.md): **Default choice for most searches.** Provides a good balance of semantic understanding and exact keyword matching. Use this when you are unsure which search type to pick.
49
+ - [Semantic Search](references/semantic_search.md): Use for finding **conceptually similar content** regardless of exact wording. Best when the intent matters more than specific keywords.
50
+ - [Keyword Search](references/keyword_search.md): Use for finding **exact terms, IDs, SKUs, or specific text patterns**. Best when precise keyword matching is needed rather than semantic similarity.
51
+
52
+ ### Collection Management
53
+
54
+ - [List Collections](references/list_collections.md): Use to **discover what collections exist** in the Weaviate instance. This should typically be the first step before performing any search or data operation.
55
+ - [Get Collection Details](references/get_collection.md): Use to **understand a collection's schema** — its properties, data types, vectorizer configuration, replication factor, and multi-tenancy status. Helpful before running searches or imports.
56
+ - [Explore Collection](references/explore_collection.md): Use to **analyze data distribution, top values, and inspect actual content** in a collection. Helpful for understanding what data looks like before querying.
57
+ - [Create Collection](references/create_collection.md): Use to **create new collections with custom schemas** before importing data. Do not specify a vectorizer unless the user explicitly requests one (the default `text2vec_weaviate` is used).
58
+
59
+ ### Data Operations
60
+
61
+ - [Fetch and Filter](references/fetch_filter.md): Use to **retrieve specific objects by ID** or **strictly filtered subsets** of data. Best for precise data retrieval rather than search.
62
+ - [Import Data](references/import_data.md): **Use this when the user asks to import, load, or ingest a file (CSV, JSON, JSONL, PDF) into a collection.**
63
+ - [Create Example Data](references/example_data.md): Use to create example data for immediate use of other skills, if no data is available or user requests some toy data.
64
+
65
+ ## Recommendations
66
+
67
+ 1. **Start by listing collections** if you don't know what's available:
68
+
69
+ ```bash
70
+ uv run scripts/list_collections.py
71
+ ```
72
+
73
+ 2. **Ask the user** if they want to **create example data** if nothing is available and the user requests it. Otherwise continue.
74
+
75
+ ```bash
76
+ uv run scripts/example_data.py
77
+ ```
78
+
79
+ 3. **Get collection details** to understand the schema:
80
+
81
+ ```bash
82
+ uv run scripts/get_collection.py --name "COLLECTION_NAME"
83
+ ```
84
+
85
+ 4. **Explore collection data** to see values and statistics:
86
+
87
+ ```bash
88
+ uv run scripts/explore_collection.py "COLLECTION_NAME"
89
+ ```
90
+
91
+ 5. **Create a collection** if importing a new CSV, JSON, or JSONL file — the collection must exist before importing:
92
+
93
+ ```bash
94
+ uv run scripts/create_collection.py CollectionName \
95
+ --properties '[{"name": "title", "data_type": "text"}, {"name": "body", "data_type": "text"}]'
96
+ ```
97
+ > Do not specify a vectorizer unless the user explicitly requests one.
98
+
99
+ 6. **Import data** into an existing collection:
100
+
101
+ ```bash
102
+ uv run scripts/import.py "data.csv" --collection "CollectionName"
103
+ ```
104
+ > For PDF imports, the collection is created automatically — skip step 5.
105
+
106
+ 7. **Choose the right search type:**
107
+ - Get AI-powered answers with source citations across multiple collections → `ask.py`
108
+ - Get raw objects from multiple collections → `query_search.py`
109
+ - General search → `hybrid_search.py` (default)
110
+ - Conceptual similarity → `semantic_search.py`
111
+ - Exact terms/IDs → `keyword_search.py`
112
+
113
+ ## Output Formats
114
+
115
+ All scripts support:
116
+
117
+ - **Markdown tables** (default and recommended)
118
+ - **JSON** (`--json` flag)
119
+
120
+ ## Error Handling
121
+
122
+ Common errors:
123
+
124
+ - `WEAVIATE_URL not set` → Set the environment variable
125
+ - `Collection not found` → Use `list_collections.py` to see available collections
126
+ - `Authentication error` → Check API keys for both Weaviate and vectorizer providers
127
+
128
+ ## Limitations
129
+
130
+ - This skill requires a reachable Weaviate instance and valid credentials before live operations can succeed.
131
+ - Data import, collection creation, and query-agent operations can change or expose user data; confirm the target instance and collection before running scripts.
132
+ - The included scripts are Weaviate-focused and do not replace broader data-governance, backup, or production migration procedures.
@@ -0,0 +1,36 @@
1
+ # Query Agent - Ask Mode
2
+
3
+ Generate AI-powered answers with source citations using the Weaviate Query Agent.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ uv run scripts/ask.py --query "USER_QUESTION" --collections "Collection1,Collection2" [--json]
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Flag | Required | Default | Description |
14
+ |-----------|------|----------|---------|-------------|
15
+ | `--query` | `-q` | Yes | — | Natural language question |
16
+ | `--collections` | `-c` | Yes | — | Comma-separated collection names to query across |
17
+ | `--json` | — | No | `false` | Output in JSON format |
18
+
19
+ ## Output
20
+
21
+ - **Default**: Markdown-formatted answer with a sources table
22
+ - **JSON**: Structured response with `answer` and `sources` fields
23
+
24
+ ## Examples
25
+
26
+ Ask a question across multiple collections:
27
+
28
+ ```bash
29
+ uv run scripts/ask.py --query "What are the main topics in the dataset?" --collections "Articles,Reports"
30
+ ```
31
+
32
+ JSON output:
33
+
34
+ ```bash
35
+ uv run scripts/ask.py --query "Summarize recent findings" --collections "Research" --json
36
+ ```
@@ -0,0 +1,152 @@
1
+ # Create Collection
2
+
3
+ Create a new Weaviate collection with a custom schema, optional vectorizer, and multi-tenancy support.
4
+
5
+ ## Usage
6
+
7
+ ```bash
8
+ uv run scripts/create_collection.py CollectionName --properties '[...]' [--description "..."] [--vectorizer "..."] [--replication-factor N] [--multi-tenancy] [--auto-tenant-creation] [--json]
9
+ ```
10
+
11
+ ## Parameters
12
+
13
+ | Parameter | Flag | Required | Default | Description |
14
+ |-----------|------|----------|---------|-------------|
15
+ | `name` | — | Yes (positional) | — | Collection name (auto-capitalized per GraphQL convention) |
16
+ | `--properties` | `-p` | Yes | — | JSON array of property definitions |
17
+ | `--description` | `-d` | No | — | Collection description — **strongly recommended**. Weaviate agents (Query Agent, Personalization Agent) read this to understand what the collection contains and decide which collection to query |
18
+ | `--vectorizer` | `-v` | No | `text2vec_weaviate` | Vectorizer module to use |
19
+ | `--replication-factor` | `-r` | No | — | Replication factor (defers to server default when not set) |
20
+ | `--multi-tenancy` | `-m` | No | `false` | Enable multi-tenancy for data isolation |
21
+ | `--auto-tenant-creation` | `-a` | No | `false` | Auto-create tenants on insert (requires `--multi-tenancy`) |
22
+ | `--json` | — | No | `false` | Output in JSON format |
23
+
24
+ ## Property Definition Format
25
+
26
+ ```json
27
+ {
28
+ "name": "property_name",
29
+ "data_type": "text",
30
+ "description": "Optional description",
31
+ "tokenization": "word",
32
+ "index_filterable": true,
33
+ "index_searchable": true,
34
+ "index_range_filters": false,
35
+ "nested_properties": []
36
+ }
37
+ ```
38
+
39
+ - `name` (required): Property name
40
+ - `data_type` (required): One of the supported data types below
41
+ - `description` (optional): Human-readable description — **strongly recommended**. The Query Agent reads property descriptions to understand your schema, choose the right collection, and construct accurate queries. Good descriptions include units, formats, and valid values (e.g., `"Price in US dollars (USD)"`, `"ISO two-character country code"`, `"Date the paper was published on arXiv"`)
42
+ - `tokenization` (optional): For text types — `word`, `lowercase`, `whitespace`, or `field`
43
+ - `index_filterable` (optional): Enable roaring-bitmap filter index for `where` clauses. Default `true` for all types except `blob`, `geoCoordinates`, `object`, `object[]`, `phoneNumber`
44
+ - `index_searchable` (optional): Enable BM25/inverted index for keyword and hybrid search. Only applies to `text` and `text[]`. Default `true`
45
+ - `index_range_filters` (optional): Enable range-comparison index (`>`, `<`, `>=`, `<=`, `between`) for `int`, `int[]`, `number`, `number[]`, `date`, `date[]`. Default `false` — **set to `true` for any numeric or date field you plan to range-filter**
46
+ - `nested_properties` (optional): For `object` / `object[]` types — array of nested property definitions
47
+
48
+ ## Supported Data Types
49
+
50
+ `text`, `text[]`, `boolean`, `boolean[]`, `int`, `int[]`, `number`, `number[]`, `date`, `date[]`, `uuid`, `uuid[]`, `geoCoordinates`, `phoneNumber`, `blob`, `object`, `object[]`
51
+
52
+ Aliases: `bool` → `boolean`, `bool[]` → `boolean[]`
53
+
54
+ ## Supported Vectorizers
55
+
56
+ `text2vec_weaviate`, `text2vec_openai`, `text2vec_cohere`, `text2vec_huggingface`, `text2vec_palm`, `text2vec_jinaai`, `text2vec_voyageai`, `text2vec_contextionary`, `text2vec_transformers`, `text2vec_gpt4all`, `text2vec_ollama`, `multi2vec_clip`, `multi2vec_bind`, `multi2vec_palm`, `img2vec_neural`, `ref2vec_centroid`, `none`
57
+
58
+ ## Inferring Schema from Data Files
59
+
60
+ Before creating a collection, inspect a few rows from the source file to understand field names and value types. Use the commands below — they read only the first 3 objects and are safe on large files.
61
+
62
+ **CSV:**
63
+ ```bash
64
+ python3 -c "
65
+ import csv, json
66
+ with open('data.csv') as f:
67
+ rows = list(csv.DictReader(f))[:3]
68
+ print(json.dumps(rows, indent=2))
69
+ "
70
+ ```
71
+
72
+ **JSON:**
73
+ ```bash
74
+ python3 -c "
75
+ import json
76
+ print(json.dumps(json.load(open('data.json'))[:3], indent=2))
77
+ "
78
+ ```
79
+
80
+ **JSONL:**
81
+ ```bash
82
+ python3 -c "
83
+ import json
84
+ lines = []
85
+ with open('data.jsonl') as f:
86
+ for line in f:
87
+ if len(lines) >= 3: break
88
+ if line.strip(): lines.append(json.loads(line))
89
+ print(json.dumps(lines, indent=2))
90
+ "
91
+ ```
92
+
93
+ From the sample, map each field to a Weaviate data type:
94
+
95
+ | Value looks like | data_type |
96
+ |---|---|
97
+ | `"hello"`, any text | `text` |
98
+ | `123`, `"123"` | `int` |
99
+ | `1.5`, `"1.5"` | `number` |
100
+ | `true`/`false` | `boolean` |
101
+ | `"2024-01-15"`, `"2024-01-15T10:30:00Z"` | `date` |
102
+ | UUID-shaped string | `uuid` |
103
+ | List of strings | `text[]` |
104
+ | List of numbers | `int[]` or `number[]` |
105
+ | Nested object | `object` |
106
+
107
+ **Important:** `id`, `_id`, and `_additional` are reserved by Weaviate — never use them as property names. If they appear in your data, use `--skip-fields` or `--mapping` in `import.py` to handle them.
108
+
109
+ ## Examples
110
+
111
+ Basic collection:
112
+
113
+ ```bash
114
+ uv run scripts/create_collection.py Article \
115
+ --description "News articles with title and full body text." \
116
+ --properties '[
117
+ {"name": "title", "data_type": "text", "description": "Title of the article"},
118
+ {"name": "body", "data_type": "text", "description": "Full text body of the article"}
119
+ ]'
120
+ ```
121
+
122
+ Collection with various data types, descriptions, and recommended index flags:
123
+
124
+ ```bash
125
+ uv run scripts/create_collection.py Product \
126
+ --description "E-commerce product catalog with pricing, brand, stock status, and tags." \
127
+ --properties '[
128
+ {"name": "name", "data_type": "text", "description": "Name or title of the product"},
129
+ {"name": "sku", "data_type": "text", "index_searchable": false, "description": "Stock-keeping unit identifier"},
130
+ {"name": "price", "data_type": "number", "index_range_filters": true, "description": "Product price in US dollars (USD)"},
131
+ {"name": "created_at", "data_type": "date", "index_range_filters": true, "description": "Date the product was added to the catalog"},
132
+ {"name": "in_stock", "data_type": "boolean", "description": "Whether the product is currently in stock"},
133
+ {"name": "tags", "data_type": "text[]", "description": "List of descriptive tags for the product"}
134
+ ]'
135
+ ```
136
+
137
+ With explicit vectorizer:
138
+
139
+ ```bash
140
+ uv run scripts/create_collection.py Article \
141
+ --description "News articles with title and full body text." \
142
+ --properties '[{"name": "title", "data_type": "text", "description": "Title of the article"}]' \
143
+ --vectorizer "text2vec_openai"
144
+ ```
145
+
146
+ With multi-tenancy:
147
+
148
+ ```bash
149
+ uv run scripts/create_collection.py Workspace \
150
+ --properties '[{"name": "content", "data_type": "text"}]' \
151
+ --multi-tenancy --auto-tenant-creation
152
+ ```