
sibyl
by hyperb1iss
Collective intelligence runtime for AI agents. Knowledge graph + orchestration + persistent memory.
SKILL.md
name: sibyl description: Graph-RAG knowledge system with CLI interface. Use for semantic search, task management, knowledge capture, project audits, and sprint planning. Invoke when you need persistent memory across sessions, pattern/learning lookup, or task tracking. Requires FalkorDB running. allowed-tools: Bash, Grep, Glob, Read
Sibyl
Sibyl gives you persistent memory across coding sessions. Search patterns, track tasks, capture learnings—all stored in a knowledge graph.
Quick Start
# Link your directory to a project (one-time setup)
sibyl project list # Find your project ID
sibyl project link proj_a1b2c3d4e5f6 # Link cwd to that project
# Check current context
sibyl context
# Now task commands auto-scope to your project!
sibyl task list --status todo # Only shows tasks for linked project
# Search for knowledge
sibyl search "authentication patterns"
# Quickly add a learning
sibyl add "Redis insight" "Connection pool must be >= concurrent requests"
# Start a task
sibyl task start task_a1b2c3d4e5f6
# Complete with learnings
sibyl task complete task_a1b2c3d4e5f6 --learnings "OAuth tokens expire..."
Pro tips:
- Link your project first - then task commands just work without
--project - Table output is default - use
--jsononly for scripting - Use
--allflag to bypass context and see all projects
The Agent Feedback Loop
1. SEARCH -> sibyl search "topic"
2. RETRIEVE -> sibyl entity show <id> (get full content by ID from search)
3. CHECK TASKS -> sibyl task list --status doing
4. WORK & CAPTURE -> sibyl add "Title" "Learning..."
5. COMPLETE -> sibyl task complete --learnings "..."
Key insight: Search shows IDs. Use sibyl entity show <id> to fetch full content.
Task Data Model
Task States
backlog <-> todo <-> doing <-> blocked <-> review <-> done -> archived
Priority Levels
| Priority | When to Use |
|---|---|
critical | Production bugs, security issues, blockers |
high | Core functionality bugs, blocking features |
medium | Standard features, improvements |
low | Nice-to-haves, polish, future work |
someday | Backlog parking lot |
Common Tags
backend, frontend, database, devops, bug, feature, refactor, chore, security,
performance, testing
Core Commands
Search - Find Knowledge by Meaning
# Semantic search across all types
sibyl search "error handling patterns"
# Filter by entity type
sibyl search "OAuth" --type pattern
# Limit results
sibyl search "debugging redis" --limit 5
# Search across all projects (bypass context)
sibyl search "python conventions" --all
Output includes:
- Document name and source
- Section path (heading hierarchy)
- Content preview
- Full entity ID for retrieval
Two-step retrieval pattern:
# 1. Search to find relevant knowledge
sibyl search "redis connection pooling"
# Output shows full IDs like: convention:abe924cb-8cee-4cb5-...
# 2. Fetch full content by ID (copy from search output)
sibyl entity show "convention:abe924cb-8cee-4cb5-9dd1-818201c1c946"
When to use: Before implementing anything. Find existing patterns, past solutions, gotchas.
Add - Quick Knowledge Capture
# Basic: title and content
sibyl add "Title" "What you learned..."
# With metadata
sibyl add "OAuth insight" "Token refresh timing..." -c authentication -l python
# Create a pattern instead of episode
sibyl add "Retry pattern" "Exponential backoff..." --type pattern
When to use: After discovering something non-obvious. Quick way to capture learnings.
Task Management - Full Lifecycle
# CREATE a task (project auto-resolves from linked directory)
sibyl task create --title "Implement OAuth"
sibyl task create --title "Add rate limiting" --priority high --epic epic_a1b2c3d4e5f6
IMPORTANT: Use --title for the task name. Project auto-resolves from linked directory.
# List tasks (table output is default, comma-separated values supported)
sibyl task list --status todo,doing,blocked
sibyl task list --priority critical,high
sibyl task list --tags bug,urgent
# Filter by epic
sibyl task list --epic epic_a1b2c3d4e5f6 # Tasks in specific epic
sibyl task list --no-epic # Tasks without any epic (orphaned/unplanned)
# Combine filters
sibyl task list --status todo --priority high --feature backend
# Semantic search within tasks (powerful!)
sibyl task list -q "authentication" # Find tasks by meaning, not just text match
# Show task details
sibyl task show task_a1b2c3d4e5f6
# Start working (generates branch name)
sibyl task start task_a1b2c3d4e5f6
# Block with reason
sibyl task block task_a1b2c3d4e5f6 --reason "Waiting on API keys"
# Resume blocked task
sibyl task unblock task_a1b2c3d4e5f6
# Submit for review
sibyl task review task_a1b2c3d4e5f6 --pr "github.com/.../pull/42"
# ⚠️ COMPLETE WITH LEARNINGS - always use this to finish tasks!
# This marks done AND creates a searchable episode in the knowledge graph
sibyl task complete task_a1b2c3d4e5f6 --hours 4.5 --learnings "Token refresh needs..."
# Archive single task
sibyl task archive task_a1b2c3d4e5f6 --reason "Superseded by new approach"
# Direct update (use sparingly - prefer `complete --learnings` for finishing work)
sibyl task update task_a1b2c3d4e5f6 --status done --priority high
# Add a note DURING work (progress breadcrumbs, NOT for completion)
sibyl task note task_a1b2c3d4e5f6 "Found the root cause"
sibyl task note task_a1b2c3d4e5f6 "Implemented fix" --agent
# List notes for a task
sibyl task notes task_a1b2c3d4e5f6
Task States: backlog <-> todo <-> doing <-> blocked <-> review <-> done <-> archived
Project Management
# List all projects
sibyl project list
# Show project details
sibyl project show proj_a1b2c3d4e5f6
# Create a project
sibyl project create --name "Auth System" --description "OAuth and JWT implementation"
Epic Management (Feature Grouping)
Epics group related tasks into larger features or initiatives.
sibyl epic list # List epics
sibyl epic create --title "Auth System" # Create epic
sibyl epic show epic_abc123 # Show with progress
sibyl epic start epic_abc123 # Start epic
sibyl epic tasks epic_abc123 # List tasks in epic
sibyl epic complete epic_abc123 # Complete epic
sibyl epic roadmap # Generate markdown summary
sibyl epic roadmap -o roadmap.md --include-done # Save to file with done tasks
Workflow: Create epic → create tasks with --epic flag → work tasks → epic roadmap to review
→ complete
Project Context (Directory Linking)
Link directories to projects for automatic task scoping.
# First, find your project ID
sibyl project list
# Link current directory to a project
sibyl project link proj_a1b2c3d4e5f6 # Requires project ID
# Check current context
sibyl context
# List all directory-to-project links
sibyl project links
# Remove a link
sibyl project unlink
One project per repo: Each repository should link to exactly one Sibyl project. This enables
automatic task scoping without needing --project flags.
Entity Operations - Generic CRUD
# List entities by type
sibyl entity list --type pattern
sibyl entity list --type episode
# Show entity details (use ID from search)
sibyl entity show epsd_a1b2c3d4e5f6
# Create an entity (for capturing learnings)
sibyl entity create --type episode --name "Redis insight" --content "Discovered that..."
# Find related entities
sibyl entity related epsd_a1b2c3d4e5f6
# Delete (with confirmation)
sibyl entity delete epsd_a1b2c3d4e5f6
Entity Types: pattern, rule, template, tool, topic, episode, task, project, source, document
Graph Exploration
# Find related entities (1-hop)
sibyl explore related ptrn_a1b2c3d4e5f6
# Multi-hop traversal
sibyl explore traverse ptrn_a1b2c3d4e5f6 --depth 2
# Task dependency chain
sibyl explore dependencies task_a1b2c3d4e5f6
# Find path between entities
sibyl explore path ptrn_a1b2c3d4e5f6 task_d4e5f6a1b2c3
Admin & Health
# Check system health
sibyl health
# Show statistics
sibyl stats
# Show config
sibyl config
Common Workflows
Starting a New Session
# 1. Check current context
sibyl context
# 2. Check for in-progress work
sibyl task list --status doing
# 3. Or find todo tasks
sibyl task list --status todo
# 4. Start working
sibyl task start task_a1b2c3d4e5f6
Research Before Implementation
sibyl search "what you're implementing" --type pattern
sibyl search "related topic" --type episode
sibyl search "common mistakes" --type episode
# Get full content from any result (use ID from search output)
sibyl entity show <id>
Capture a Learning
sibyl add "Descriptive title" "What you learned and why it matters"
Complete Task with Learnings
sibyl task complete task_a1b2c3d4e5f6 --hours 4.5 --learnings "Key insight: The OAuth flow requires..."
Output Formats
- Table (default): Human-readable, clean output
- JSON: Add
--jsonfor scripting - CSV: Add
--csvfor spreadsheet export
Key Principles
- Search Before Implementing - Always check for existing knowledge
- Project-First for Tasks - Filter tasks by project, not globally
- Capture Non-Obvious Learnings - If it took time to figure out, save it
- Complete with Learnings - Always capture insights when finishing tasks
- Use Entity Types Properly:
episode- Temporal insights, debugging discoveriespattern- Reusable coding patternsrule- Hard constraints, must-follow rulestask- Work items with lifecycle
Concurrency & Locking
Sibyl uses distributed locks to prevent data corruption when multiple agents update the same entity concurrently. This is important because graph operations (especially via Graphiti) can take 20+ seconds.
How It Works
- Entity updates and deletes acquire a lock before modifying the graph
- Lock TTL is 30 seconds - automatically released if the process dies
- Concurrent requests wait up to 45 seconds for the lock to become available
- 409 Conflict is returned if the lock cannot be acquired
Handling Lock Conflicts
If you get a 409 error, the entity is being modified by another process. Simply retry:
# If this fails with "locked by another process"
sibyl task update task_a1b2c3d4e5f6 --status doing
# Wait a moment and retry
sleep 2
sibyl task update task_a1b2c3d4e5f6 --status doing
For Agents
When making API calls programmatically:
import httpx
import asyncio
async def update_with_retry(task_id: str, updates: dict, max_retries: int = 3):
for attempt in range(max_retries):
response = await client.patch(f"/api/tasks/{task_id}", json=updates)
if response.status_code == 409: # Locked
await asyncio.sleep(2 ** attempt) # Exponential backoff
continue
response.raise_for_status()
return response.json()
raise Exception(f"Failed to update {task_id} after {max_retries} retries")
Valid Task Statuses
When updating task status, use these exact values:
backlog- Future work, not committedtodo- Committed to sprintdoing- Active development (NOTin_progress)blocked- Waiting on somethingreview- In code reviewdone- Completedarchived- Terminal state (no longer active)
Common mistake: Using in_progress instead of doing. The API will reject invalid status
values with a 422 validation error.
Troubleshooting
Connection errors
sibyl health
If unhealthy, verify the Sibyl server and FalkorDB are running.
Task list shows wrong project's tasks
sibyl context # See which project you're linked to
sibyl project list # Find correct project ID
sibyl project link project_xxx # Link to correct project
sibyl task list --all # Bypass context to see all
Common Pitfalls
| Wrong | Correct |
|---|---|
sibyl task add "..." | sibyl task create --title "..." |
sibyl task list --todo | sibyl task list --status todo |
sibyl task create -t "..." | sibyl task create --title "..." (!) |
sibyl task update --learnings | sibyl task complete --learnings (!) |
sibyl task note for completion | sibyl task complete --learnings (!) |
Notes vs Learnings
These are different things with different purposes:
| Command | When | Purpose | Creates |
|---|---|---|---|
sibyl task note <id> "..." | During work | Progress breadcrumbs | Note (task metadata) |
sibyl task complete <id> --learnings "..." | At completion | Capture insights | Episode (searchable knowledge) |
Wrong: Using task note when completing a task Right: Using task complete --learnings -
this marks done AND creates a searchable episode
# WRONG - notes are for ongoing work, not completion
sibyl task update task_xxx --status done
sibyl task note task_xxx "What I learned..."
# RIGHT - complete with learnings does both
sibyl task complete task_xxx --learnings "What I learned..."
Full task IDs are required - always use the complete ID returned by list/search commands:
sibyl task show task_c24fc3228e7c # Full ID required (17 chars)
Prerequisites
sibyl health # Check connectivity
sibyl setup # First-time setup
スコア
総合スコア
リポジトリの品質指標に基づく評価
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
1ヶ月以内に更新
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
レビュー
レビュー機能は近日公開予定です


