UNPKG

oneie

Version:

Build apps, websites, and AI agents in English. Zero-interaction setup for AI agents (Claude Code, Cursor, Windsurf). Download to your computer, run in the cloud, deploy to the edge. Open source and free forever.

666 lines (474 loc) 16.9 kB
--- title: Design dimension: things category: cascade tags: agent, ai, auth, backend, knowledge related_dimensions: knowledge, people scope: global created: 2025-11-03 updated: 2025-11-03 version: 1.0.0 ai_context: | This document is part of the things dimension in the cascade category. Location: one/things/cascade/docs/examples/1-4-knowledge-management/design.md Purpose: Documents design for feature 1-4: knowledge management Related dimensions: knowledge, people For AI agents: Read this to understand design. --- # Design for Feature 1-4: Knowledge Management **Feature:** 1-4-knowledge-management **Status:** Design Implementation **Design Agent:** agent-designer.md --- ## Design Goal Enable continuous learning through markdown-based lessons learned and pattern library. Design focuses on how Claude Code naturally reads patterns, searches lessons, and captures new knowledge without building knowledge system infrastructure. --- ## CLI Context **Knowledge is implicit** - No explicit commands needed. Claude: - Reads patterns when implementing features - Searches lessons when solving problems - Captures lessons after fixes - User can optionally query knowledge **Optional commands:** ```bash /one lessons # Show recent lessons learned /one lessons backend # Filter by category /one patterns # List available patterns /one pattern backend/service # Show specific pattern /one knowledge "authentication" # Search all knowledge ``` --- ## Design Decisions (Test-Driven) ### Decision 1: Markdown Files ARE the Knowledge Base **Test requirement:** Claude can search knowledge in < 100ms **Design solution:** - Lessons: `one/knowledge/lessons-learned.md` (append-only) - Patterns: `one/knowledge/patterns/{category}/*.md` (template files) - Claude uses Grep to search: `grep "authentication" one/knowledge/lessons-learned.md` - Claude uses Read to load patterns - No database needed **Reasoning:** Markdown is fast, searchable, git-tracked, and human-readable. --- ### Decision 2: Lesson Capture Is Automatic After Fixes **Test requirement:** 100% lesson capture rate **Design solution:** ``` Test fails Problem solved Fix implemented Before marking complete: "Capture lesson learned" Claude appends to lessons-learned.md Lesson available for future searches ``` **Reasoning:** Automatic capture ensures knowledge compounds over time. --- ### Decision 3: Patterns Discovered From Repeated Lessons **Test requirement:** After 3 similar issues, promote to pattern **Design solution:** - Problem solver notices repeated lessons - Suggests pattern promotion - Integration specialist creates pattern template - Future features reference pattern **Example:** ``` Month 1: 3 features forgot to log events after entity creation Month 2: Pattern created: backend/event-logging.md Month 3+: All features use pattern, no more forgotten events ``` **Reasoning:** Patterns emerge naturally from actual problems, not speculation. --- ### Decision 4: Context Loading References Knowledge **Test requirement:** Specialists load relevant patterns in < 50ms **Design solution:** ``` Claude Code (Backend Specialist): Implementing feature 2-1-course-crud... Loading context: Ontology types (200 tokens) Backend patterns (500 tokens) - service-template.md - event-logging.md - mutation-template.md Recent lessons (300 tokens) - Always log events after entity creation - Validate ownership before delete - Use transactions for multi-step operations Implementation with patterns applied... ``` **Reasoning:** Patterns and lessons become default context for specialists. --- ### Decision 5: Knowledge Grows With Each Feature **Test requirement:** Measurable knowledge accumulation **Design solution:** ``` Week 1: 0 lessons, 8 patterns (templates) Month 1: 20 lessons, 8 patterns Month 3: 60 lessons, 15 patterns (7 promoted) Quarter 1: 150 lessons, 25 patterns Year 1: 500 lessons, 50 patterns ``` **Reasoning:** Knowledge compounds naturally. System becomes "expert" over time. --- ## Component Architecture ### 1. Lessons Learned File (Append-Only Markdown) **File:** `one/knowledge/lessons-learned.md` **Structure:** ````markdown # Lessons Learned ## Backend Patterns ### Always Log Events After Entity Creation **Date:** 2025-01-15 **Feature:** 1-1-agent-prompts **Problem:** Forgot to log agent_prompt_created event **Solution:** Added event logging after db.insert() **Pattern:** Every entity creation must log corresponding event **Context:** All thing_created events are mandatory per ontology **Example:** ```typescript // Bad const id = await ctx.db.insert("entities", data); return id; // Good const id = await ctx.db.insert("entities", data); await ctx.db.insert("events", { type: "entity_created", actorId: ctx.userId, targetId: id, metadata: { ...relevantFields }, }); return id; ``` ```` **Related:** See pattern backend/event-logging.md ### Validate Ownership Before Delete Operations **Date:** 2025-01-16 **Feature:** 2-1-course-crud ... ``` **Claude appends lessons using Edit tool** - No database writes needed. --- ### 2. Pattern Library (Template Files) **Directory structure:** ``` one/knowledge/patterns/ ├── backend/ ├── service-template.md ├── mutation-template.md ├── query-template.md └── event-logging.md ├── frontend/ ├── page-template.md ├── component-template.md └── form-template.md ├── design/ ├── wireframe-template.md └── component-architecture.md └── test/ ├── user-flow-template.md ├── acceptance-criteria-template.md └── unit-test-template.md ```` **Pattern file format:** ```markdown # Pattern: Event Logging After Entity Creation **Category:** backend **Context:** Every time you create an entity in the database **Problem:** Forgetting to log creation event breaks audit trail **Solution:** Always log {entity}_created event after db.insert() ## Template ```typescript async create{Entity}(data: {Entity}Data) { // Create entity const id = await ctx.db.insert('{entities}', data) // ALWAYS log creation event await ctx.db.insert('events', { type: '{entity}_created', actorId: data.creatorId || ctx.userId, targetId: id, metadata: { ...relevantFields } }) return id } ```` ## Usage 1. Replace {Entity} with your entity name (capitalized) 2. Replace {entity} with lowercase entity name 3. Replace {entities} with table name 4. Include relevant metadata fields ## Common Mistakes - Forgetting event log Use this pattern - Wrong metadata structure See event-coordination.md spec - Missing actorId Default to ctx.userId ## Related Patterns - mutation-template.md - General mutation structure - event-coordination.md - Event metadata standards ```` **Claude reads patterns using Read tool** - No pattern loader needed. --- ### 3. Knowledge Query Patterns (Grep-Based) ```bash # How Claude searches knowledge naturally # Search all lessons for keyword grep -i "authentication" one/knowledge/lessons-learned.md # Find backend-specific lessons grep -A 10 "## Backend" one/knowledge/lessons-learned.md # Search patterns grep -r "authentication" one/knowledge/patterns/ # Get recent lessons (last 5) tail -50 one/knowledge/lessons-learned.md # Find patterns by category ls one/knowledge/patterns/backend/*.md ```` **No search API to build** - Grep is fast and flexible. --- ## Wireframes (CLI Outputs) ### Wireframe 1: Automatic Lesson Capture (Invisible) ``` $ /one implement 2-1 Claude Code (Backend Specialist): Implementing feature 2-1-course-crud... Running tests... CourseService.create() should log course_created event Claude Code (Problem Solver): Analyzing failure... Root cause: Missing event log after db.insert() Proposing fix... Claude Code (Backend Specialist): Implementing fix... Added event logging All tests passing [Claude automatically captures lesson] Capturing lesson learned... Appended to one/knowledge/lessons-learned.md Feature 2-1 complete! [User doesn't see lesson capture details - it happens automatically] ``` --- ### Wireframe 2: Pattern Application (Visible Context) ``` $ /one implement 3-1 Claude Code (Backend Specialist): Implementing feature 3-1-enrollment-service... Loading context: Ontology types (200 tokens) Backend patterns (500 tokens) - service-template.md - event-logging.md Learned from feature 1-1 - ownership-validation.md Learned from feature 2-1 - transaction-pattern.md Learned from feature 2-3 Recent lessons (300 tokens) - Always log events (occurred 3x) - Validate ownership (occurred 2x) - Use transactions (occurred 2x) Applying patterns: Using service-template.md structure Will log enrollment_created event (event-logging pattern) Will validate student access (ownership-validation pattern) Will use transaction for enrollment + payment (transaction-pattern) Implementing with patterns... ``` **User sees:** Patterns being applied proactively **Result:** Implementation is faster and correct on first try --- ### Wireframe 3: Knowledge Query (Optional Command) ``` $ /one lessons Claude Code: Recent lessons learned (last 10): 1. [2025-01-20] Always Use Transactions for Multi-Step Operations Feature: 2-3-payment-processing Problem: Payment recorded but enrollment failed inconsistent state Solution: Wrap in transaction Category: Backend 2. [2025-01-18] Validate Ownership Before Mutations Feature: 2-2-lesson-management Problem: Users could edit other creators' lessons Solution: Check ownership in mutation Category: Backend 3. [2025-01-16] Client-Side Validation Reduces API Calls Feature: 2-1-course-crud Problem: Sequential API calls caused 15s delay (10s budget) Solution: Validate locally first, minimize roundtrips Category: Frontend 4. [2025-01-15] Always Log Events After Entity Creation Feature: 1-1-agent-prompts Problem: Forgot to log agent_prompt_created event Solution: Added event logging after db.insert() Category: Backend ... Total lessons: 23 Categories: Backend (15), Frontend (5), Integration (3) View all: one/knowledge/lessons-learned.md ``` --- ### Wireframe 4: Pattern Promotion (Proactive Suggestion) ``` $ /one implement 4-1 Claude Code (Problem Solver): ⚠️ Pattern Detected! I've noticed the same issue 3 times: - Feature 1-1: Forgot to log agent_prompt_created event - Feature 2-1: Forgot to log course_created event - Feature 3-1: Forgot to log enrollment_created event This should be a pattern! Would you like me to create a pattern template? [Y/n] y Claude Code (Integration Specialist): Creating pattern: backend/event-logging.md... Pattern created: one/knowledge/patterns/backend/event-logging.md This pattern will now be included in default context for all backend features. Future implementations will apply this automatically. Updated lessons-learned.md to reference pattern. ``` **User sees:** Proactive pattern discovery **Result:** Repeated problems become institutionalized solutions --- ### Wireframe 5: Knowledge Search (Debugging) ``` $ /one knowledge "authentication" Claude Code: Searching knowledge base for "authentication"... [Claude runs: grep -i "authentication" one/knowledge/lessons-learned.md one/knowledge/patterns/**/*.md] Found 5 matches: ## Lessons Learned 1. **Use Better Auth for All Authentication** (2025-01-10) Feature: 0-1-auth-setup Solution: Better Auth provides 6 methods out of the box File: one/knowledge/lessons-learned.md:45 2. **Store Session Tokens Securely** (2025-01-12) Feature: 0-2-session-management Solution: Use httpOnly cookies, never localStorage File: one/knowledge/lessons-learned.md:67 ## Patterns 3. **Authentication Middleware Pattern** Category: backend Context: Protect API routes requiring authentication File: one/knowledge/patterns/backend/auth-middleware.md 4. **User Context Pattern** Category: backend Context: Access authenticated user in mutations/queries File: one/knowledge/patterns/backend/user-context.md 5. **Protected Route Pattern** Category: frontend Context: Restrict pages to authenticated users only File: one/knowledge/patterns/frontend/protected-route.md Read full details: /one pattern backend/auth-middleware ``` --- ### Wireframe 6: Knowledge Growth Over Time ``` $ /one knowledge stats Claude Code: Knowledge Base Statistics Current Status (Quarter 1): Lessons learned: 156 Patterns: 23 Knowledge Growth: Week 1: 0 lessons, 8 patterns (templates) Month 1: 22 lessons, 8 patterns Month 2: 58 lessons, 15 patterns (7 promoted) Month 3: 96 lessons, 18 patterns (3 more promoted) Today: 156 lessons, 23 patterns (5 more promoted) Lesson Breakdown by Category: Backend: 89 lessons (57%) Frontend: 38 lessons (24%) Integration: 21 lessons (13%) Testing: 8 lessons (5%) Pattern Application Rate: Month 1: 30% of features apply patterns Month 2: 65% of features apply patterns Month 3: 92% of features apply patterns Quality Impact: Month 1: 80% first-try pass rate Month 2: 87% first-try pass rate Month 3: 94% first-try pass rate Velocity Impact: Month 1: Average feature time: 45 minutes Month 2: Average feature time: 32 minutes (-29%) Month 3: Average feature time: 24 minutes (-47%) Knowledge is compounding! 📈 ``` --- ## Design Tokens ### Knowledge Type Icons ``` 📚 Lessons learned 🎯 Patterns 💡 Insights 🔍 Search results 📊 Knowledge stats ⚠️ Pattern detected (promotion suggestion) ``` ### Category Labels ``` [Backend] - Services, mutations, queries, schemas [Frontend] - Components, pages, state management [Integration] - Connections, data flows, APIs [Testing] - Unit, integration, e2e [Design] - UI/UX, accessibility, performance [Workflow] - Process improvements, coordination ``` --- ## Accessibility ### Screen Reader Friendly - Lesson titles spoken clearly - Dates in readable format (not just timestamps) - Category labels explicit - Pattern names descriptive ### Keyboard Navigation - All knowledge commands text-based - No mouse required for searches - Tab completion for categories: `/one lessons [tab]` ### Error Recovery - No lessons found: "No lessons for category X yet" - Pattern doesn't exist: "Pattern X not found. Available: [list]" - Search no results: "No matches for 'keyword'. Try broader search?" --- ## Success Criteria from Tests ### User Flows - Claude captures lesson after every fix (< 50ms) - Claude searches lessons when solving problems (< 100ms) - Claude loads patterns when implementing (< 50ms) - System promotes patterns after 3 similar lessons - Knowledge accumulates measurably over time ### Acceptance Criteria - Lesson capture: < 50ms (append to file) - Knowledge search: < 100ms (grep) - Pattern loading: < 50ms (read file) - 100% lesson capture rate - Knowledge compounds: 0→20→60→150+ lessons over time --- ## Implementation Notes **No knowledge system to build** - Just conventions: 1. Lesson file format defined (in Feature 1-4 spec) 2. Pattern directory structure (organized by category) 3. Search patterns (grep examples) 4. Capture workflow (append after fixes) **Claude Code handles knowledge** by: - Appending lessons using Edit tool - Searching using Grep tool - Loading patterns using Read tool - Promoting patterns when detected --- ## Next Steps Ready for Level 6 (Implementation): - Lesson format documented (Feature 1-4 spec) - Pattern templates ready (8 initial templates) - Search patterns documented (grep examples) - CLI patterns documented (this document) - Implementation is using knowledge naturally --- **Status:** Design Complete **Key Design Insights:** 1. **Markdown is the database** - No knowledge system infrastructure 2. **Automatic capture** - Lessons after every fix 3. **Pattern emergence** - From repeated lessons (3x rule) 4. **Compounding growth** - Knowledge accumulates over time 5. **Velocity multiplier** - Each lesson makes future work faster **The design is append-only markdown + grep + pattern discovery from repetition.** 🎯 **Knowledge impact:** ``` Month 1: 20 lessons 80% first-try pass 45 min/feature Month 3: 60 lessons 90% first-try pass 32 min/feature (-29%) Year 1: 500 lessons 97% first-try pass 15 min/feature (-67%) ``` **Every problem solved becomes institutional intelligence.** 🧠