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.

861 lines (614 loc) 20.5 kB
--- title: Design dimension: things category: cascade tags: agent, ai related_dimensions: events, 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-5-quality-loops/design.md Purpose: Documents design for feature 1-5: quality loops and problem solving Related dimensions: events, knowledge, people For AI agents: Read this to understand design. --- # Design for Feature 1-5: Quality Loops and Problem Solving **Feature:** 1-5-quality-loops **Status:** Design Implementation **Design Agent:** agent-designer.md --- ## Design Goal Enable continuous quality improvement through test-driven validation and intelligent problem solving. Design focuses on how Claude Code naturally follows the quality loop (test validate analyze fix learn) without building quality infrastructure. --- ## CLI Context **Quality is a workflow, not infrastructure.** Claude: - Defines tests before implementation - Runs tests naturally (using Bash tool) - Analyzes failures with ultrathink mode - Implements fixes and retests - Captures lessons automatically **Commands:** ```bash /one test 1-1 # Define tests (Stage 4) /one implement 1-1 # Implement + validate (Stage 6) /one validate 1-1 # Explicitly run validation /one fix 1-1 # Analyze + fix failures ``` --- ## Design Decisions (Test-Driven) ### Decision 1: Tests ARE Markdown Files, Not Test Code **Test requirement:** Quality agent defines tests in < 5 minutes **Design solution:** - Test document: `one/things/features/{N}-{M}/tests.md` - Contains: User flows + acceptance criteria + technical tests - Claude reads this to know what success looks like - Claude runs actual test commands: `bun test`, `npm test`, etc. **Reasoning:** Markdown tests define "what", existing test runners handle "how". --- ### Decision 2: Quality Loop Visible to User **Test requirement:** User understands validation process **Design solution:** ``` Claude Code (Backend Specialist): Implementing feature 1-1... Created files Running tests... 🧪 Test Results: Prompt loading works (12/12) Context assembly within budget (5/5) Event emission test failed (0/3) Claude Code (Problem Solver - Ultrathink Mode): Analyzing failure... Root cause: Invalid metadata structure Solution: Update event examples in agent-director.md Expected fix time: < 5 minutes Claude Code (Backend Specialist): Implementing fix... Updated agent-director.md Re-running tests... All tests passing (20/20) Capturing lesson learned... Lesson: Event metadata consistency Feature 1-1 complete! ``` **Reasoning:** Transparent quality process builds confidence and understanding. --- ### Decision 3: Problem Solver Uses Ultrathink Mode **Test requirement:** Root cause analysis in < 2 minutes **Design solution:** - Problem solver reads failure details - Activates deep thinking mode - Searches lessons learned for similar issues - Analyzes root cause systematically - Proposes specific solution **Example ultrathink process:** ``` 1. What is the actual error? "Expected event not found in events table" 2. Why did it fail? CourseService.create() calls db.insert() but doesn't log event 3. Is this a known issue? [Searches lessons-learned.md] Found 2 similar: Feature 1-1, Feature 2-1 (same issue!) 4. What pattern was missed? backend/event-logging.md: Always log after db.insert() 5. Propose solution: Add event logging after line 15 in CourseService.create() Specific code example provided ``` **Reasoning:** Systematic analysis beats trial-and-error guessing. --- ### Decision 4: Fix Loop Has Retry Limit **Test requirement:** Don't loop forever on persistent failures **Design solution:** ``` Attempt 1: Test fails Analyze Fix Retest Still failing Attempt 2: Test fails Analyze deeper Fix Retest Still failing Attempt 3: Test fails Analyze with more context Fix Retest Still failing Escalate: Notify user, request human intervention ``` **Limit:** 3 attempts per test failure **Escalation message:** ``` ⚠️ Unable to resolve test failure after 3 attempts Feature: 2-1-course-crud Test: CourseService.create() should complete in < 10 seconds Issue: Performance target not met (15.3s observed) Attempted fixes: 1. Parallelized API calls Still 12s 2. Client-side validation Still 11s 3. Removed redundant checks Still 10.5s (close but not met) This may require architectural changes. Manual review recommended. Debug info: one/things/features/2-1-course-crud/debug.md ``` **Reasoning:** Infinite loops waste time. Human judgment needed for complex issues. --- ### Decision 5: Quality Improves Measurably Over Time **Test requirement:** Track improvement metrics **Design solution:** ``` Month 1: 80% first-try pass rate (learning phase) Month 2: 87% first-try pass rate (patterns emerging) Month 3: 94% first-try pass rate (patterns applied consistently) Average fix time: Month 1: 15 minutes (figuring out patterns) Month 2: 8 minutes (applying known patterns) Month 3: 5 minutes (mostly automated by patterns) Repeated problems: Month 1: 12 repeated issues Month 2: 5 repeated issues (7 patterns promoted) Month 3: 1 repeated issue (4 more patterns promoted) ``` **Reasoning:** Measurable improvement validates the quality loop approach. --- ## Component Architecture ### 1. Quality Loop Flow (Claude's Mental Model) ``` Stage 4: Tests (Quality Agent) Define tests (user flows + acceptance + technical) Create: one/things/features/{N}-{M}/tests.md Stage 6: Implementation (Specialist) Write code according to spec + design Run tests (bun test, npm test, etc.) Tests pass? Yes: Capture lesson (if learned), document, complete No: Quality Loop Problem Solver (Ultrathink Mode) Analyze failure: - What's the error? - Why did it fail? - Is this known? (search lessons) - What pattern applies? - Propose specific fix Specialist Implements Fix Re-run tests Tests pass? Yes: Capture lesson, continue No: Retry loop (max 3 attempts) After 3 failures Escalate to human ``` **No code needed** - Claude follows this flow naturally from agent prompts. --- ### 2. Test Definition Template (Markdown) **File:** `one/things/features/{N}-{M}/tests.md` **Structure:** ```markdown # Tests for Feature {N}-{M}: {Name} ## User Flows ### Flow 1: {Goal} **User goal:** {What user wants to achieve} **Time budget:** {Expected completion time} **Steps:** 1. {Action 1} 2. {Action 2} 3. {Expected result} **Acceptance Criteria:** - [ ] {Specific measurable criterion} - [ ] {Performance criterion with metric} ## Acceptance Criteria ### Functional - [ ] {Feature works correctly} - [ ] {Edge cases handled} ### Performance - [ ] {Operation completes in < X seconds} ### Quality - [ ] {Code follows ontology structure} - [ ] {All events logged} ## Technical Tests ### Unit Tests - [ ] {Service}.{method}() {expected behavior} ### Integration Tests - [ ] API: {METHOD} /{path} {status} + {response} ### E2E Tests - [ ] Complete Flow 1 in < {time budget} ``` **Claude creates this using agent-quality.md instructions** - No test framework needed for definition. --- ### 3. Problem Analysis Output (Markdown) **Created when tests fail:** `one/things/features/{N}-{M}/problem-{timestamp}.md` **Structure:** ```markdown # Problem: {Test Name} Failed **Feature:** {N}-{M}-{name} **Test:** {Test name} **Error:** {Error message} **Stack Trace:** {If available} ## Root Cause (Ultrathink Analysis) {Detailed analysis of why it failed} ### Similar Issues Found {References to lessons learned if found} ### Pattern to Apply {Reference to relevant pattern if applicable} ## Proposed Solution {Specific fix with code examples} ### Expected Changes - File: {path} - Lines: {line numbers} - Change: {what to modify} ### Test After Fix {Which tests should pass after fix} ## Delegation - **Assigned to:** {Specialist type} - **Priority:** {Low/Medium/High} - **Expected fix time:** {Estimate} ``` **Claude creates this using agent-problem-solver.md instructions** - No bug tracker needed. --- ## Wireframes (CLI Outputs) ### Wireframe 1: Test Definition (Stage 4) ``` $ /one test 1-1 Claude Code (Quality Agent - Stage 4: Tests): Defining tests for Feature 1-1 (Agent Prompts)... Creating test criteria: User Flows (5): 1. Agent understands role in < 5 seconds 2. Agent coordinates via events in < 1 second 3. Agent uses context within budget (1500 tokens) 4. Agent makes decisions using framework 5. Agent captures examples correctly Acceptance Criteria (12): Functional requirements (8) Performance requirements (2) Quality requirements (2) Technical Tests (15): Unit tests (8): Prompt loading, context assembly, events Integration tests (5): Agent coordination, workflow execution E2E tests (2): Complete workflow flows Tests defined! File: one/things/features/1-1-agent-prompts/tests.md User flows: 5 Acceptance criteria: 12 Technical tests: 15 Next: Stage 5 (Design) or Stage 6 (Implementation) /one design 1-1 /one implement 1-1 ``` --- ### Wireframe 2: Implementation with Quality Loop (Success) ``` $ /one implement 1-1 Claude Code (Backend Specialist - Stage 6: Implementation): Implementing feature 1-1-agent-prompts... Loading context: Feature spec Tests (5 flows, 12 criteria, 15 tests) Design Backend patterns Creating files: one/things/agents/agent-director.md (39KB) one/things/agents/agent-backend.md (7.5KB) one/things/agents/agent-frontend.md (47KB) one/things/agents/agent-integration.md (6.6KB) one/things/agents/agent-quality.md (7.4KB) one/things/agents/agent-designer.md (54KB) one/things/agents/agent-problem-solver.md (10KB) one/things/agents/agent-documenter.md (9.5KB) Running tests... 🧪 Test Results: User Flows: Flow 1: Agent understands role (2.1s < 5s budget) Flow 2: Agent coordinates via events (0.3s < 1s budget) Flow 3: Agent uses context (1200 tokens < 1500 budget) Flow 4: Agent makes decisions Flow 5: Agent captures examples Acceptance Criteria: All 12 criteria met Technical Tests: Unit tests: 8/8 passing Integration tests: 5/5 passing E2E tests: 2/2 passing All tests passing (20/20)! Writing documentation... AGENTS.md updated Feature 1-1 complete! Duration: 15 minutes Tests: 20/20 passing (100%) Files created: 8 + 1 doc First-try success: Yes ``` --- ### Wireframe 3: Quality Loop with Fix (Test Failure) ```` $ /one implement 2-1 Claude Code (Backend Specialist): Implementing feature 2-1-course-crud... Creating files: backend/services/CourseService.ts backend/schema.ts (added course schema) backend/mutations/courses.ts backend/queries/courses.ts Running tests... 🧪 Test Results: CourseService.create() creates course CourseService.list() filters by creator CourseService.create() should log course_created event CourseService.delete() checks ownership Tests: 3/4 passing (75%) Claude Code (Problem Solver - Ultrathink Mode): 🔍 Analyzing test failure... Error: Expected event not found in events table Test: CourseService.create() should log course_created event Root Cause Analysis: 1. CourseService.create() calls db.insert() 2. Returns course ID 3. But doesn't log event Searching lessons learned... Found 2 similar issues: - Feature 1-1: Forgot agent_prompt_created event - Feature 1-8: Forgot user_created event Pattern Identified: backend/event-logging.md "Always log {entity}_created after db.insert()" Proposed Solution: File: backend/services/CourseService.ts Line: After line 15 (after db.insert) Add event logging: ```typescript await ctx.db.insert('events', { type: 'course_created', actorId: course.creatorId, targetId: id, metadata: { title: course.title } }) ```` Expected fix time: < 5 minutes Claude Code (Backend Specialist): Implementing fix... Added event logging after course creation Followed event-logging pattern Re-running tests... 🧪 Test Results: CourseService.create() creates course CourseService.list() filters by creator CourseService.create() should log course_created event CourseService.delete() checks ownership All tests passing (4/4)! Capturing lesson learned... Appended to one/knowledge/lessons-learned.md Lesson: Always log events after entity creation (3rd occurrence) Note: This pattern should be promoted to default context Feature 2-1 complete! Duration: 12 minutes Tests: 4/4 passing (100%) Fix time: 4 minutes Lesson captured: Yes ``` --- ### Wireframe 4: Multiple Fix Attempts ``` $ /one implement 2-3 Claude Code (Backend Specialist): Implementing feature 2-3-course-ui... [Implementation] Running tests... Flow 1: Create course in < 10 seconds Observed: 15.3 seconds (53% over budget) Claude Code (Problem Solver - Attempt 1/3): Analyzing performance issue... Root cause: 3 sequential API calls (creator check, validation, create) Solution: Parallelize calls Claude Code (Frontend Specialist): Implementing fix (attempt 1)... Parallelized API calls Re-running tests... Flow 1: 12.0 seconds (20% over budget) Claude Code (Problem Solver - Attempt 2/3): Deeper analysis... Root cause: Validation call unnecessary (auth already validates) Solution: Remove validation call, client-side only Claude Code (Frontend Specialist): Implementing fix (attempt 2)... Moved validation to client side Re-running tests... Flow 1: 10.5 seconds (5% over budget - close!) Claude Code (Problem Solver - Attempt 3/3): Final analysis... Root cause: Creator check redundant (auth provides creator) Solution: Remove creator check Claude Code (Frontend Specialist): Implementing fix (attempt 3)... Removed redundant creator check Re-running tests... Flow 1: 8.7 seconds (13% under budget) All tests passing! Capturing lesson learned... Lesson: Minimize API roundtrips for tight time budgets Context: 3 calls 1 call, 15s 8.7s (42% improvement) Feature 2-3 complete! Fix attempts: 3/3 (finally resolved) Lesson: Validate client-side, minimize API calls ``` --- ### Wireframe 5: Escalation After 3 Failures ``` $ /one implement 2-5 [Implementation and testing] Running tests... Flow 1: Process payment in < 5 seconds Observed: 8.2 seconds Claude Code (Problem Solver - Attempt 1/3): [Analysis and fix] Re-running tests... Still 7.8 seconds Claude Code (Problem Solver - Attempt 2/3): [Deeper analysis and fix] Re-running tests... Still 7.1 seconds Claude Code (Problem Solver - Attempt 3/3): [Final analysis and fix] Re-running tests... Still 6.9 seconds (better, but not < 5s) ⚠️ Unable to resolve after 3 attempts Feature: 2-5-payment-processing Test: Flow 1 - Process payment in < 5 seconds Issue: Performance target not met Progress: Initial: 8.2s After attempt 1: 7.8s (-5%) After attempt 2: 7.1s (-13%) After attempt 3: 6.9s (-16%) Target: 5.0s (still 38% over) This may require: - Payment API optimization (external dependency) - Caching strategy - Background processing - Or relaxed time budget (consider 7s target?) Manual review recommended. Debug info saved: one/things/features/2-5-payment-processing/debug.md Lessons saved: one/knowledge/lessons-learned.md Next steps: 1. Review debug.md for analysis details 2. Decide: Optimize further OR adjust time budget 3. Continue: /one fix 2-5 (after manual changes) ``` --- ### Wireframe 6: Quality Metrics Over Time ``` $ /one quality stats Claude Code (Quality Agent): Quality Statistics Overall Quality (Quarter 1): Features completed: 45 First-try pass rate: 91% (41/45) Average test coverage: 97% Average fix time: 6.2 minutes Quality Improvement Over Time: Month 1 (Features 1-15): First-try pass: 80% (12/15) Average fix time: 14.3 minutes Repeated issues: 8 Patterns applied: 2 Month 2 (Features 16-30): First-try pass: 93% (14/15) Average fix time: 7.1 minutes Repeated issues: 3 Patterns applied: 8 Month 3 (Features 31-45): First-try pass: 100% (15/15) Average fix time: 0 minutes (no fixes needed!) Repeated issues: 0 Patterns applied: 15 Learning Impact: Lessons captured: 23 Patterns promoted: 11 Known issues avoided: 31 (via lessons) Test Failure Analysis: Missing event logs: 5 failures Pattern promoted (Month 1) Ownership validation: 3 failures Pattern promoted (Month 2) Performance issues: 4 failures Best practices documented Other: 2 failures Unique issues, lessons captured Velocity Impact: Month 1: Avg 42 min/feature Month 2: Avg 28 min/feature (-33%) Month 3: Avg 18 min/feature (-57% from Month 1) Quality loop is working! 📈 Every failure became knowledge. Knowledge became speed. ``` --- ## Design Tokens ### Quality Status Icons ``` 🧪 Testing All tests passing Test failed 🔍 Analyzing failure (ultrathink mode) 💡 Solution proposed 🔧 Implementing fix 🔄 Re-running tests 📚 Capturing lesson ⚠️ Escalation (after 3 attempts) 📊 Quality metrics 📈 Improvement trend ``` ### Test Result Formatting ``` Test Results: {Test name} {Test name} {Error details} Tests: {passed}/{total} passing ({percentage}%) ``` --- ## Accessibility ### Screen Reader Friendly - Test results spoken clearly - Pass/fail explicit (not just colors) - Problem analysis narrated - Fix attempts numbered ### Keyboard Navigation - All quality commands text-based - No mouse required for validation - Tab completion for commands ### Error Recovery - Clear error messages with context - Suggestions for fixes - Escalation path after retries - Help available (`/one help quality`) --- ## Success Criteria from Tests ### User Flows - Quality agent defines tests (< 5 minutes) - Tests validate implementation correctly - Problem solver analyzes failures (< 2 minutes) - Fix loop executes and retests automatically - System improves continuously (measurable) ### Acceptance Criteria - Test definition: < 5 minutes per feature - Test execution: < 2 minutes per feature - Problem analysis: < 2 minutes per issue - Fix implementation: < 15 minutes average - Quality improvement: 80%→90%→95%+ over time --- ## Implementation Notes **No quality infrastructure to build** - Just workflow: 1. Test templates defined (Feature 1-5 spec) 2. Quality loop documented (this document) 3. Problem solver workflow (agent-problem-solver.md) 4. Lesson capture workflow (Feature 1-4) **Claude Code handles quality** by: - Reading test criteria from tests.md - Running tests using Bash tool (existing runners) - Following problem-solver prompt for analysis - Implementing fixes and retesting - Capturing lessons automatically --- ## Next Steps Ready for Level 6 (Implementation): - Test templates complete (Feature 1-5 spec) - Quality loop workflow documented (this document) - Agent prompts ready (quality + problem-solver) - Implementation is following quality loop --- **Status:** Design Complete **Key Design Insights:** 1. **Tests are markdown** - Define success criteria, not test code 2. **Bash runs tests** - Use existing test runners, no framework 3. **Ultrathink analyzes** - Systematic root cause analysis 4. **Fix loop transparent** - User sees validation process 5. **Quality compounds** - Every failure becomes lesson **The design is test definitions + validation loop + ultrathink problem solving.** 🎯 **Quality loop in action:** ``` Month 1: 80% first-try 15 min fix time Learning Month 2: 90% first-try 7 min fix time Patterns emerging Month 3: 95% first-try 3 min fix time Excellence Year 1: 97% first-try 1 min fix time Mastery ``` **Every test failure makes the system smarter.** 🧠 ```