lev-workshop
Lev Workshop
The workshop is where ideas become capabilities. It's the factory floor for building hooks, plugins, and integrations that extend lev's functionality.
Workshop Lifecycle
┌─────────────┐ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ INTAKE │ → │ ANALYSIS │ → │ POC │ → │ POLY │
│ │ │ │ │ │ │ INTEGRATION │
│ Raw idea or │ │ Understand │ │ Build │ │ Production │
│ requirement │ │ scope & │ │ working │ │ deployment │
│ │ │ approach │ │ prototype │ │ & routing │
└─────────────┘ └─────────────┘ └─────────────┘ └─────────────┘
│ │ │ │
▼ ▼ ▼ ▼
config_loader dependency_checker checkpoint_manager quality_gate
error_handler progress_reporter error_handler success_handler
quality_gate quality_gate escalation_handler
When to Use
| Trigger | Action |
|---|---|
| "workshop this" | Start intake for new capability |
| "analyze for workshop" | Deep-dive on requirements |
| "poc this" | Build proof of concept |
| "integrate to poly" | Promote POC to production |
| "workshop status" | Show items in each phase |
| "what's in poc?" | List active prototypes |
Phase Details
Phase 1: Intake
Purpose: Capture raw ideas, requirements, or problems that need solving.
Input: Natural language description, error message, feature request, or observed pattern.
Process:
config_loader- Load relevant domain contexterror_handler- If intake is from error, parse and classify- Classify intake type:
hook- Lifecycle hook meta-promptplugin- External integrationpattern- Reusable workflowfix- Bug fix or improvement
Output: Workshop item in ~/lev/workshop/intake/
# ~/lev/workshop/intake/item-001.yaml
id: ws-001
type: hook
title: "Retry with circuit breaker"
source: "Observed repeated failures in CB3 scraping"
created: "2026-01-13T10:00:00Z"
status: intake
raw_input: |
CB3 keeps hitting rate limits and retrying forever.
Need a circuit breaker pattern.
Phase 2: Analysis
Purpose: Understand scope, dependencies, and approach before building.
Process:
dependency_checker- What does this need?progress_reporter- Track analysis progress- Research existing implementations
- Define success criteria
quality_gate- Is analysis complete enough to proceed?
Questions to answer:
- What existing hooks/plugins does this interact with?
- What's the minimal viable implementation?
- What are the edge cases?
- How will we test it?
Output: Analysis document added to workshop item
# Updated item-001.yaml
analysis:
dependencies:
- error_handler (hook)
- checkpoint_manager (hook)
approach: |
1. Track failure count per operation
2. Open circuit after N failures
3. Half-open state for testing
4. Auto-close after cooldown
success_criteria:
- Circuit opens after 3 failures
- Half-open after 30s
- Full close after 3 successes
estimated_complexity: medium
analysis_complete: true
Phase 3: POC (Proof of Concept)
Purpose: Build a working prototype to validate the approach.
Process:
checkpoint_manager- Save state frequently during development- Build minimal implementation
error_handler- Handle development errors- Test against success criteria
quality_gate- Does POC meet criteria?
Location: ~/lev/workshop/poc/<item-id>/
POC requirements:
- Must run standalone
- Must have basic tests
- Must document usage
- Must log decisions
Output: Working prototype with test results
# Updated item-001.yaml
poc:
location: ~/lev/workshop/poc/ws-001/
files:
- circuit_breaker.py
- test_circuit_breaker.py
- README.md
test_results:
passed: 8
failed: 0
demo_command: "python circuit_breaker.py --demo"
poc_complete: true
Phase 4: Poly Integration
Purpose: Promote POC to production across multiple integration targets.
Process:
quality_gate- Final validation before integration- Identify integration targets (poly = multiple destinations)
success_handler- Route to each targetescalation_handler- Handle integration failures
Integration targets:
- lev-lifecycle - New hook added to hooks.md
- claude-agent-sdk - Pattern added to patterns.md
- Project-specific - CB3, TimeTravel, josh-imessage, etc.
- System -
~/lev/plugins/and project hooks for automated workflows
Poly routing abstraction:
# Integration targets can register as recipients
integration_targets:
lev_hooks:
type: hook
location: ~/.claude/skills/lev-lifecycle/references/hooks.md
format: yaml_block
agent_sdk_patterns:
type: pattern
location: ~/.claude/skills/claude-agent-sdk/references/patterns.md
format: python_code
cb3_tools:
type: tool
location: ~/cb3/src/tools/
format: python_module
timetravel_adapters:
type: adapter
location: ~/lev/research/timetravel/src/adapters/
format: typescript_module
Output: Integrated capability with routing info
# Updated item-001.yaml
integration:
status: complete
integrated_to:
- target: lev_hooks
location: ~/.claude/skills/lev-lifecycle/references/hooks.md
section: "Hook 11: Circuit Breaker"
- target: cb3_tools
location: ~/cb3/src/tools/circuit_breaker.py
routing_rules:
- pattern: "error_handler returns retry && retry_count >= 3"
route_to: circuit_breaker
post_integration_hooks:
- update_docs
- notify_user
Workshop Item Schema
id: ws-XXX
type: hook | plugin | pattern | fix
title: string
source: string # where this came from
created: timestamp
status: intake | analysis | poc | integrating | complete | archived
# Phase outputs
raw_input: string
analysis:
dependencies: array
approach: string
success_criteria: array
estimated_complexity: low | medium | high
analysis_complete: boolean
poc:
location: path
files: array
test_results: object
demo_command: string
poc_complete: boolean
integration:
status: pending | in_progress | complete | failed
integrated_to: array
routing_rules: array
post_integration_hooks: array
# Metadata
bd_issue: string # linked bd bead
related_items: array
tags: array
Process Tracking
Workshop items are tracked in bd for visibility across sessions:
# Create bd issue for workshop item
bd create "Workshop: Circuit Breaker Hook" -t feature -p 2 \
-d "Build circuit breaker pattern for retry logic"
# Link workshop item to bd
# In item-001.yaml:
# bd_issue: ws-circuit-breaker-001
# Query workshop status
bd list --label workshop --status open
CLI Commands
# Start new workshop item
lev workshop intake "Need circuit breaker for retries"
# Check workshop status
lev workshop status
# List items by phase
lev workshop list --phase poc
# Promote to next phase
lev workshop promote ws-001 --to analysis
lev workshop promote ws-001 --to poc
lev workshop promote ws-001 --to integration
# Run POC tests
lev workshop test ws-001
# Integrate to target
lev workshop integrate ws-001 --target lev_hooks
# Archive completed item
lev workshop archive ws-001
Example: Building a New Hook
# 1. Intake
lev workshop intake "Error handler should support circuit breaker pattern"
# → Creates ws-001 in intake phase
# 2. Analysis
lev workshop analyze ws-001
# Agent asks questions, researches existing hooks
# → Adds analysis section, promotes to analysis phase
# 3. POC
lev workshop poc ws-001
# Agent builds prototype in poc/ws-001/
# → Creates files, runs tests, promotes to poc phase
# 4. Integration
lev workshop integrate ws-001 --target lev_hooks
# Agent adds to hooks.md, updates references
# → Routes to all configured targets
# 5. Complete
lev workshop complete ws-001
# Archives item, updates bd issue
Integration with Claude Agent SDK
Workshop items that involve LLM decision points use the Claude Agent SDK:
from claude_agent_sdk import query, ClaudeAgentOptions
async def analyze_workshop_item(item_id: str):
"""Use agent to analyze workshop item requirements"""
async for msg in query(
prompt=f"""
Analyze workshop item {item_id} for implementation:
1. Read the raw input
2. Identify dependencies on existing hooks/plugins
3. Propose minimal implementation approach
4. Define success criteria
5. Estimate complexity
""",
options=ClaudeAgentOptions(
allowed_tools=["Read", "Grep", "Glob"],
permission_mode="bypassPermissions"
)
):
if hasattr(msg, "result"):
return msg.result
Hooks Used Per Phase
| Phase | Hooks | Purpose |
|---|---|---|
| Intake | config_loader, error_handler | Load context, parse errors |
| Analysis | dependency_checker, progress_reporter, quality_gate | Check requirements, track progress, validate completeness |
| POC | checkpoint_manager, error_handler, quality_gate | Save state, handle failures, validate prototype |
| Integration | quality_gate, success_handler, escalation_handler | Final validation, route to targets, handle failures |
References
~/.claude/skills/lev-lifecycle/- Parent lifecycle skill~/.claude/skills/lev-lifecycle/references/hooks.md- Hook meta-prompts~/.claude/skills/claude-agent-sdk/- Agent patterns for LLM integration~/lev/workshop/- Workshop storage
Relates
Master Router
- Lev Master Router (
lev/SKILL.md) - Routes all lev-* skills Parent skill that dispatches to this skill based on keywords/context
Technique Map
- Role definition - Clarifies operating scope and prevents ambiguous execution.
- Context enrichment - Captures required inputs before actions.
- Output structuring - Standardizes deliverables for consistent reuse.
- Step-by-step workflow - Reduces errors by making execution order explicit.
- Edge-case handling - Documents safe fallbacks when assumptions fail.
Technique Notes
These techniques improve reliability by making intent, inputs, outputs, and fallback paths explicit. Keep this section concise and additive so existing domain guidance remains primary.
Prompt Architect Overlay
Role Definition
You are the prompt-architect-enhanced specialist for lev-workshop, responsible for deterministic execution of this skill's guidance while preserving existing workflow and constraints.
Input Contract
- Required: clear user intent and relevant context for this skill.
- Preferred: repository/project constraints, existing artifacts, and success criteria.
- If context is missing, ask focused questions before proceeding.
Output Contract
- Provide structured, actionable outputs aligned to this skill's existing format.
- Include assumptions and next steps when appropriate.
- Preserve compatibility with existing sections and related skills.
Edge Cases & Fallbacks
- If prerequisites are missing, provide a minimal safe path and request missing inputs.
- If scope is ambiguous, narrow to the highest-confidence sub-task.
- If a requested action conflicts with existing constraints, explain and offer compliant alternatives.