weaviate-collection-manager — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited weaviate-collection-manager (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
This skill helps you manage Weaviate collections on your local Weaviate instance - creating new ones, viewing existing schemas, and managing collection configurations.
This skill is designed for LOCAL Weaviate instances only. Ensure you have Weaviate running locally in Docker before using this skill.
Manage the structure and configuration of your local Weaviate vector database collections.
Claude should verify these prerequisites before proceeding:
If any prerequisites are missing, Claude should:
import weaviate
# Assuming client is already connected
collections = client.collections.list_all()
print(f"Found {len(collections)} collections:\n")
for name, config in collections.items():
print(f"📦 {name}")
if hasattr(config, 'vectorizer_config'):
print(f" Vectorizer: {config.vectorizer_config}")
print()# Get specific collection
collection = client.collections.get("YourCollectionName")
# View configuration
config = collection.config.get()
print(f"Collection: {config.name}")
print(f"Vectorizer: {config.vectorizer}")
print(f"\nProperties:")
for prop in config.properties:
print(f" - {prop.name} ({prop.data_type})")#### Simple Text Collection
from weaviate.classes.config import Configure, Property, DataType
# Create collection with automatic vectorization
client.collections.create(
name="Articles",
description="Collection of article documents",
vectorizer_config=Configure.Vectorizer.text2vec_openai(),
properties=[
Property(
name="title",
data_type=DataType.TEXT,
description="Article title"
),
Property(
name="content",
data_type=DataType.TEXT,
description="Article content"
),
Property(
name="author",
data_type=DataType.TEXT,
skip_vectorization=True # Don't vectorize author names
),
Property(
name="publishDate",
data_type=DataType.DATE
)
]
)
print("✅ Collection 'Articles' created successfully!")#### Collection with Custom Vectors
# For when you bring your own vectors
client.collections.create(
name="CustomEmbeddings",
vectorizer_config=Configure.Vectorizer.none(), # No automatic vectorization
properties=[
Property(name="text", data_type=DataType.TEXT),
Property(name="metadata", data_type=DataType.TEXT)
]
)#### Multi-modal Collection (Text + Images)
client.collections.create(
name="ProductCatalog",
vectorizer_config=Configure.Vectorizer.multi2vec_clip(), # CLIP for images+text
properties=[
Property(name="name", data_type=DataType.TEXT),
Property(name="description", data_type=DataType.TEXT),
Property(name="image", data_type=DataType.BLOB), # Base64 encoded image
Property(name="price", data_type=DataType.NUMBER),
Property(name="category", data_type=DataType.TEXT)
]
)#### With Generative Module (for RAG)
from weaviate.classes.config import Configure
client.collections.create(
name="KnowledgeBase",
vectorizer_config=Configure.Vectorizer.text2vec_openai(),
generative_config=Configure.Generative.openai(model="gpt-4"), # Enable RAG
properties=[
Property(name="content", data_type=DataType.TEXT),
Property(name="source", data_type=DataType.TEXT)
]
)#### With Reranking
client.collections.create(
name="SearchableDocuments",
vectorizer_config=Configure.Vectorizer.text2vec_cohere(),
reranker_config=Configure.Reranker.cohere(), # Improve search relevance
properties=[
Property(name="title", data_type=DataType.TEXT),
Property(name="body", data_type=DataType.TEXT)
]
)# Delete collection (CAUTION: This is irreversible!)
client.collections.delete("CollectionName")
print("✅ Collection deleted")| DataType | Description | Example |
|---|---|---|
TEXT | String/text data | "Hello world" |
NUMBER | Numeric values | 42, 3.14 |
INT | Integer only | 42 |
BOOLEAN | True/False | True |
DATE | ISO 8601 dates | "2025-01-20T10:00:00Z" |
UUID | Unique identifiers | Auto-generated |
BLOB | Binary data (base64) | Images, files |
TEXT_ARRAY | Array of strings | ["tag1", "tag2"] |
NUMBER_ARRAY | Array of numbers | [1, 2, 3] |
| Vectorizer | Best For | Requires |
|---|---|---|
text2vec_openai | General text | OpenAI API key |
text2vec_cohere | Multilingual text | Cohere API key |
text2vec_huggingface | Custom models | HuggingFace model |
multi2vec_clip | Images + Text | CLIP model |
none | Bring your own vectors | Custom embeddings |
firstName, not first_name)skip_vectorization=True for IDs, dates, categoriesfrom weaviate.classes.config import Configure, Property, DataType
# Create a well-structured collection for a document database
client.collections.create(
name="TechnicalDocuments",
description="Technical documentation with RAG capabilities",
# Vectorization
vectorizer_config=Configure.Vectorizer.text2vec_openai(
model="text-embedding-3-small"
),
# Enable RAG for Q&A
generative_config=Configure.Generative.openai(
model="gpt-4o"
),
# Schema
properties=[
Property(
name="title",
data_type=DataType.TEXT,
description="Document title",
skip_vectorization=False
),
Property(
name="content",
data_type=DataType.TEXT,
description="Main document content",
skip_vectorization=False # This gets vectorized
),
Property(
name="section",
data_type=DataType.TEXT,
description="Document section/category",
skip_vectorization=True # Metadata, not for semantic search
),
Property(
name="page",
data_type=DataType.INT,
description="Page number"
),
Property(
name="hasImage",
data_type=DataType.BOOLEAN,
description="Whether page contains images"
),
Property(
name="tags",
data_type=DataType.TEXT_ARRAY,
description="Document tags",
skip_vectorization=True
)
]
)
print("✅ TechnicalDocuments collection created with RAG enabled!")# Check if collection exists first
if client.collections.exists("MyCollection"):
print("Collection already exists")
else:
client.collections.create(...)After creating collections:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.