skills/knowledge/knowledge-manager/SKILL.md
Loads relevant patterns and known errors before track planning. Searches conductor/knowledge/ for solutions we've used before and errors we've encountered. Injects findings into the planner prompt to prevent reinventing solutions and repeating mistakes. Triggered automatically by orchestrator before PLAN step.
npx skillsauth add Ibrahim-3d/orchestrator-supaconductor knowledge-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Searches the knowledge base for relevant patterns and errors before a track begins, injecting institutional memory into the planning process.
Automatically — The orchestrator calls this agent BEFORE dispatching the loop-planner for any track.
read_file the track's spec.md and extract relevant keywords:
const keywords = extractKeywords(spec);
// Example: ["authentication", "Supabase", "login", "signup", "OAuth"]
Keywords come from:
Search conductor/knowledge/patterns.md for matching patterns. Score each entry by keyword overlap and return only the top 3 highest-scoring results (skip zero-score entries):
## Relevant Patterns Found (top 3 by relevance)
### Pattern: Supabase Client Singleton
**Category**: Integration
**Relevance score**: 3/5 keywords matched
**Summary**: Use singleton pattern with server/client separation
**Key Code**:
```tsx
// lib/supabase/server.ts
export const createClient = async () => { /* ... */ };
Category: API Relevance score: 2/5 keywords matched Summary: Wrap all server actions with try/catch and typed responses
### 3. Search Error Registry
Search `conductor/knowledge/errors.json` for errors related to this track type. Score each entry by keyword overlap and **return only the top 3 highest-scoring results**:
```markdown
## Known Errors to Watch For
### Error: Hydration Mismatch (err-003)
**Pattern**: "Hydration failed because the initial UI does not match"
**Context**: Auth state can differ between server and client
**Prevention**: Wrap auth-dependent UI in useEffect or client component
### Error: NEXT_REDIRECT in try/catch (err-004)
**Pattern**: "NEXT_REDIRECT"
**Context**: Server actions with redirect after login
**Prevention**: Re-throw NEXT_REDIRECT errors or move redirect outside try/catch
Output a knowledge brief that gets injected into the planner's prompt. Total output must not exceed 500 tokens. If the top-3 patterns + top-3 errors would exceed this budget, truncate lower-scored entries first:
# Knowledge Brief for [Track ID]
## Relevant Patterns (Apply These)
1. **Supabase Client Singleton** — Use separate server/client clients
2. **Server Actions with Error Handling** — Typed responses with try/catch
## Known Errors (Avoid These)
1. **Hydration Mismatch** — Don't render auth-dependent UI on server
2. **NEXT_REDIRECT** — Handle redirect() specially in try/catch
## Previous Similar Work
- Track `auth-flow_20260115` implemented similar auth flow
- See `conductor/tracks/auth-flow_20260115/plan.md` for reference
## Recommendations
- Consider using the existing auth patterns from previous track
- Watch for SSR/client hydration issues with auth state
The Knowledge Manager returns a structured brief:
{
"patterns_found": [
{
"name": "Supabase Client Singleton",
"category": "Integration",
"relevance": "high",
"summary": "...",
"code_snippet": "..."
}
],
"errors_to_watch": [
{
"id": "err-003",
"pattern": "Hydration mismatch",
"prevention": "..."
}
],
"similar_tracks": [
{
"track_id": "auth-flow_20260115",
"relevance": "Implemented OAuth flow"
}
],
"recommendations": [
"Reuse auth patterns from previous track",
"Watch for hydration issues"
]
}
The orchestrator injects this brief into the planner's dispatch:
// In conductor-orchestrator
async function dispatchPlanner(trackId: string) {
// 1. Run Knowledge Manager first
const knowledgeBrief = await Task({
subagent_type: "general-purpose",
description: "Load knowledge for track",
prompt: `You are the knowledge-manager agent.
Track: ${trackId}
Spec: ${specContent}
Search conductor/knowledge/patterns.md and errors.json.
Return a knowledge brief with relevant patterns and errors.`
});
// 2. Dispatch planner WITH knowledge brief
await Task({
subagent_type: "general-purpose",
description: "Create track plan",
prompt: `You are the loop-planner agent.
${knowledgeBrief.output}
Create plan.md using the patterns above where applicable.
Avoid the known errors listed.`
});
}
Match track type to pattern/error categories:
Fuzzy match keywords from spec against pattern descriptions and error contexts.
Prioritize patterns from recent tracks (more likely to be relevant to current codebase state).
The Knowledge Manager is read_file-only. Writing to the knowledge base is done by:
If no relevant patterns or errors are found, return:
{
"patterns_found": [],
"errors_to_watch": [],
"similar_tracks": [],
"recommendations": ["No prior patterns found. Document solutions discovered in this track."]
}
This is fine — it means we're doing something new. The retrospective will capture learnings after.
testing
Use when creating new skills, editing existing skills, or verifying skills work before deployment
development
Use when you have a spec or requirements for a multi-step task, before touching code
data-ai
Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions