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.

726 lines (508 loc) 18.9 kB
--- title: 1 5 Quality Loops dimension: things category: cascade tags: agent, ai 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-5-quality-loops.md Purpose: Documents feature 1-5: quality loops and problem solving Related dimensions: knowledge, people For AI agents: Read this to understand 1 5 quality loops. --- # Feature 1-5: Quality Loops and Problem Solving **Assigned to:** Quality Agent (agent-quality.md) + Problem Solver (agent-problem-solver.md) **Status:** ⚠️ SIMPLIFIED - Quality loop is workflow, not infrastructure **Plan:** 1-create-workflow **Priority:** Medium (mostly documentation) **Dependencies:** 1-1 (Agent prompts define quality/problem-solver behavior) --- ## Simplified Approach: Quality Loop as Workflow **Key Insight:** We don't need quality infrastructure. Claude Code already has everything needed for quality loops. ### Why No Code Needed 1. **Test Definition = markdown file** - Claude (as quality agent) reads agent-quality.md - Creates tests.md with user flows + acceptance criteria + technical tests - Uses Write tool, follows template 2. **Test Execution = Bash commands** - Claude runs tests using Bash tool: `bun test`, `npm run test`, `bunx astro check` - Sees pass/fail output naturally - No test runner infrastructure needed 3. **Failure Analysis = ultrathink + agent prompt** - Claude reads agent-problem-solver.md - Analyzes failure in deep thinking mode - Searches lessons-learned.md (grep) for similar issues - Proposes solution naturally 4. **Fix Loop = natural iteration** - Claude implements fix (reads specialist prompt) - Re-runs tests (Bash) - If fail analyzes again - If pass appends lesson, moves on 5. **Lesson Capture = markdown append** - Claude appends lesson to lessons-learned.md (Edit tool) - Future iterations benefit automatically **What we actually need:** Test templates + problem-solving workflow documentation (mostly done in agent prompts). --- ## Feature Specification ### What We're Documenting A quality validation and problem-solving workflow where Claude: 1. Defines tests (reads quality agent prompt, creates tests.md) 2. Runs tests (uses Bash tool) 3. Analyzes failures (reads problem-solver prompt, uses ultrathink) 4. Fixes issues (reads specialist prompt, implements fix) 5. Captures lessons (appends to lessons-learned.md) **Philosophy:** Quality is a loop, not code. Claude follows the workflow naturally. --- ## Ontology Types ### Things - `test` - Validation criteria (user flow, acceptance, technical) - Properties: `type`, `name`, `criteria`, `status` - `problem` - Issue identified by quality agent - Properties: `testId`, `error`, `rootCause`, `solution` ### Connections - `tests_for` - Test validates feature - `validates` - Quality agent validates implementation - `solves` - Problem solver fixes issue - `learns_from` - Lesson captured from problem ### Events - `quality_check_started` - Quality begins review - `quality_check_complete` - Review finished - Metadata: `status` (approved/rejected), `testsCreated`, `issuesFound` - `test_started` - Test execution begins - `test_passed` - Test succeeded - `test_failed` - Test failed - Metadata: `testName`, `error`, `stackTrace` - `problem_analysis_started` - Problem solver investigates - `solution_proposed` - Fix identified - Metadata: `rootCause`, `solution`, `assignedTo` - `fix_started` - Specialist begins fix - `fix_complete` - Fix implemented - `lesson_learned_added` - Knowledge captured --- ## Core Components ### 1. Quality Agent (Test Definition) **Purpose:** Define what success looks like before implementation **Process:** 1. Receives feature specification 2. Defines **user flows** (what users must accomplish) 3. Defines **acceptance criteria** (how we know it works) 4. Defines **technical tests** (implementation validation) 5. Creates test document **User Flow Template:** ```markdown ### Flow [N]: [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] - [ ] [Another criterion] - [ ] [Performance criterion with metric] ``` **Technical Test Template:** ```markdown ### Unit Tests - [ ] [ServiceName].[method]() [expected behavior] - [ ] [Another test case] ### Integration Tests - [ ] API: [METHOD] /[path] [status code] + [response] - [ ] [Another API test] ### E2E Tests - [ ] Complete Flow [N] in < [time budget] - [ ] [Another flow] ``` **Output:** `[featureId]/tests.md` file --- ### 2. Quality Agent (Validation) **Purpose:** Verify implementation meets all criteria **Process:** 1. Receives implementation complete event 2. Reviews code against ontology structure 3. Runs user flows (manual or automated) 4. Checks acceptance criteria 5. Executes technical tests 6. Logs results **Validation checklist:** - [ ] Code follows ontology structure (correct types, connections, events) - [ ] All user flows work as specified - [ ] All acceptance criteria met - [ ] All unit tests pass - [ ] All integration tests pass - [ ] All e2e tests pass - [ ] Design matches specifications - [ ] Accessibility requirements met - [ ] Performance targets achieved **Outcomes:** - **PASS:** Log `quality_check_complete` (status: approved) Documenter writes docs - **FAIL:** Log `quality_check_complete` (status: rejected) Problem Solver analyzes --- ### 3. Problem Solver Agent (Ultrathink Mode) **Purpose:** Analyze failures and propose solutions **Activation:** Subscribes to `test_failed` events **Process (Ultrathink):** 1. **Gather context:** - Failed test details (name, error, stack trace) - Implementation code - Feature specification - Test criteria - Ontology structure - Recent lessons learned (search for similar issues) 2. **Analyze root cause:** - What is the actual error? - Why did it fail? (logic error, missing dependency, wrong pattern, etc.) - Is this a known issue? (check lessons learned) - What pattern was missed? 3. **Propose solution:** - Minimum fix required - Specific code changes - Which pattern to apply - Which specialist should fix 4. **Create solution document:** ```markdown # Problem: [Test Name] Failed **Feature:** [Feature ID] **Test:** [Test name] **Error:** [Error message] ## Root Cause (Ultrathink Analysis) [Detailed analysis of why it failed] ## Similar Issues [References to lessons learned if found] ## Proposed Solution [Specific fix with code examples] ## Delegation - **Assigned to:** [Specialist type] - **Priority:** [Low/Medium/High] - **Expected fix time:** [Estimate] ## Pattern to Apply [Reference to relevant pattern if applicable] ``` 5. **Log events:** - `problem_analysis_started` - `solution_proposed` (with metadata) --- ### 4. Fix Loop **Purpose:** Execute fixes and re-validate **Flow:** ``` Test Failed Problem Solver analyzes (ultrathink) Solution proposed Event logged Specialist receives solution (subscribes to solution_proposed) Specialist implements fix Specialist captures lesson learned Events logged: fix_started, fix_complete, lesson_learned_added Quality Agent re-runs tests (subscribes to fix_complete) Tests pass? Yes: Continue to documentation No: Loop back to Problem Solver ``` **Retry limit:** 3 attempts per test - After 3 failures, escalate to human developer - Log escalation event --- ### 5. Lesson Capture Integration **Purpose:** Ensure every fix adds to knowledge base **Process:** 1. Specialist implements fix 2. Tests pass 3. **Before marking fix_complete:** - Specialist adds lesson to `knowledge/lessons-learned.md` - Uses template from Feature 1-4 - References problem, solution, pattern 4. Log `lesson_learned_added` event 5. Mark fix complete **Enforcement:** - Problem Solver checks for lesson in knowledge base - If lesson not added, remind specialist - Quality metrics track lesson capture rate --- ## Quality Loop Examples ### Example 1: Missing Event Log **Test fails:** ``` Test: CourseService.create() should log course_created event Error: Expected event not found in events table ``` **Problem Solver analyzes:** ````markdown # Problem: Event Logging Missing ## Root Cause CourseService.create() calls db.insert() but doesn't log event. Missing: await ctx.db.insert('events', { type: 'course_created', ... }) ## Similar Issues Found 2 similar issues in lessons learned: - Feature 1-1: Forgot agent_prompt_created event - Feature 2-1: Same issue with lesson_created ## Pattern to Apply backend/event-logging.md: Always log {entity}\_created after db.insert() ## Proposed Solution Add event logging after line 15 in CourseService.create(): ```typescript async create(course: Course) { const id = await ctx.db.insert('courses', course) // ADD THIS: await ctx.db.insert('events', { type: 'course_created', actorId: course.creatorId, targetId: id, metadata: { title: course.title } }) return id } ``` ```` ## Delegation - Assigned to: Backend Specialist - Priority: High (blocking quality) - Expected fix time: 5 minutes ```` **Specialist fixes:** 1. Adds event logging code 2. Tests pass 3. **Adds lesson:** ```markdown ### Always Log Events After Entity Creation **Date:** 2025-01-15 **Feature:** 2-1-course-crud **Problem:** Forgot to log course_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:** See backend/event-logging.md pattern **Related:** Similar to features 1-1 and 2-1 issues ```` 4. Logs `fix_complete` and `lesson_learned_added` events **System now smarter:** - Lesson captured (3rd occurrence of same issue) - Pattern reinforced - Future features less likely to miss this - Eventually, pattern becomes automatic context for all backend work --- ### Example 2: Performance Failure **Test fails:** ``` Test: Complete Flow 1 (Create Course) in < 10 seconds Error: Flow took 15.3 seconds (53% over budget) ``` **Problem Solver analyzes:** ```markdown # Problem: Performance Target Missed ## Root Cause 1. Course form makes 3 sequential API calls (creator check, validation, create) 2. Each call: 4-5 seconds = 15 seconds total 3. Could be parallelized or eliminated ## Analysis - Creator check: Unnecessary (auth already validates) - Validation: Could be client-side - Create: Required ## Proposed Solution 1. Remove creator check (already done by auth) 2. Move validation to client side 3. Single API call: Create course Expected time: ~5 seconds (50% under budget) ## Delegation - Assigned to: Frontend Specialist - Priority: Medium (quality criterion not met) - Expected fix time: 20 minutes ``` **Specialist fixes, captures lesson:** ```markdown ### Validate Client-Side Before API Calls **Date:** 2025-01-15 **Feature:** 2-1-course-crud **Problem:** Sequential API calls caused 15s delay (10s budget) **Solution:** Moved validation to client, eliminated redundant check **Pattern:** Validate locally first, minimize API roundtrips **Context:** When performance budgets are tight (< 10s) **Example:** Reduced 3 calls to 1 call, 15s 5s **Related:** See pattern frontend/form-validation.md ``` --- ## Scope ### In Scope (Documentation) - Quality agent test definition workflow (documented in agent-quality.md) - Quality agent validation workflow (documented in agent-quality.md) - Problem solver ultrathink analysis (documented in agent-problem-solver.md) - Fix loop workflow (iteration pattern) - Lesson capture workflow (append to lessons-learned.md) - Test templates (user flows + acceptance criteria + technical tests) ### Out of Scope (Don't Build) - Quality validation TypeScript infrastructure (Claude follows prompts) - Problem solver TypeScript code (Claude uses ultrathink naturally) - Fix loop coordination code (Claude iterates naturally) - Test runner infrastructure (use existing: bun test, npm test, etc.) - Automated test execution framework (Bash tool runs tests) - Event system for quality events (optional, Feature 1-3) - Performance monitoring tools (use existing) --- ## Files to Create **Test definition templates** (markdown): ``` one/knowledge/patterns/test/ ├── user-flow-template.md # How to write user flows ├── acceptance-criteria-template.md # How to write acceptance criteria └── technical-test-template.md # How to write technical tests ``` **Per-feature test files** (created by Claude): ``` one/things/features/[featureId]/ └── tests.md # Created by quality agent ``` **No TypeScript infrastructure needed** - Claude follows agent prompts and uses existing test runners. --- ## Integration Points ### With Feature 1-1 (Agent Prompts) - Quality agent prompt defines validation criteria - Problem solver prompt defines analysis approach - Specialist prompts include fix responsibilities ### With Feature 1-3 (Events) - All quality events logged - Problem solver subscribes to test_failed - Specialists subscribe to solution_proposed - Quality subscribes to fix_complete ### With Feature 1-4 (Knowledge) - Problem solver searches lessons learned - Specialists apply patterns - Lesson capture after every fix - Pattern discovery from repeated lessons ### With Feature 1-2 (Orchestrator) - Orchestrator invokes quality at stages 4 and 6 - Orchestrator manages fix loop retries - Orchestrator escalates after 3 failures --- ## Success Criteria ### Immediate - [ ] Quality agent can define tests for features - [ ] Quality agent can validate implementations - [ ] Problem solver analyzes failures correctly - [ ] Fix loop executes and re-tests - [ ] Lessons captured after fixes ### Near-term (Month 1) - [ ] 90%+ tests pass on first try (learning effect) - [ ] Average fix time < 15 minutes - [ ] 100% lesson capture rate - [ ] Repeated problems decrease over time ### Long-term (Quarter 1) - [ ] 95%+ tests pass on first try - [ ] Average fix time < 5 minutes - [ ] Problems rarely repeat (3rd occurrence triggers pattern) - [ ] Quality improves continuously - [ ] Developer confidence in system high --- ## Performance Requirements ### Quality Validation - Test definition: < 5 minutes per feature - Validation execution: < 2 minutes per feature - Pass/fail determination: < 30 seconds ### Problem Solving - Analysis (ultrathink): < 2 minutes per problem - Solution proposal: < 1 minute - Total problem solution: < 5 minutes ### Fix Loop - Average fix time: < 15 minutes (target) - Re-test time: < 2 minutes - Total loop: < 20 minutes --- ## Testing Strategy ### Unit Tests - Quality agent creates valid test documents - Problem solver identifies root causes correctly - Fix loop coordinates events properly - Lesson capture validates format ### Integration Tests - Complete quality loop (fail analyze fix re-test pass) - Multiple failures handled correctly - Lessons integrated into knowledge base - Patterns referenced in solutions ### Long-term Tests - Track quality improvement over time - Measure repeated problem reduction - Measure fix time reduction - Measure lesson capture rate --- ## Error Handling ### Test Definition Errors - Invalid test format Validation error - Missing criteria Warning + default - Unclear criteria Request clarification ### Validation Errors - Test execution fails Log error, retry - Timeout Escalate after 5 minutes - Unclear results Request specialist review ### Problem Solving Errors - Can't determine root cause Escalate to human - No similar lessons found Document as new issue - Solution unclear Propose investigation tasks ### Fix Loop Errors - Fix doesn't work (3x) Escalate to human - Lesson not captured Reminder + block completion - Re-test fails Back to problem solver --- ## Metrics to Track ### Quality Metrics - Tests passing on first try (% over time) - Average test definition time - Average validation time - Issues found per feature ### Problem Solving Metrics - Average analysis time - Average fix time - Fix success rate (1st attempt) - Repeated problems (count over time) ### Learning Metrics - Lessons captured per week - Patterns promoted from lessons - Knowledge search frequency - Pattern application rate --- ## Next Steps **Create test templates** (3 markdown files): 1. `one/knowledge/patterns/test/user-flow-template.md` 2. `one/knowledge/patterns/test/acceptance-criteria-template.md` 3. `one/knowledge/patterns/test/technical-test-template.md` **Already implemented:** - agent-quality.md (defines test creation + validation workflow) - agent-problem-solver.md (defines failure analysis + solution workflow) - Specialist agent prompts (implement fixes) **Workflow ready to use** - Claude can follow quality loop workflow now. --- ## References - **Plan:** `one/things/plans/1-create-workflow.md` - **Workflow spec:** `one/things/plans/workflow.md` (Quality Loops section) - **Feature 1-1:** Agent prompts (quality + problem solver already exist) - **Feature 1-4:** Knowledge management (lessons-learned.md for lesson capture) - **Feature 1-2:** Workflow guide (Stage 4: Tests, Stage 6: Implementation with validation) --- **Status:** ⚠️ REQUIRES SETUP (Create 3 test template files) **Key insights:** 1. **Tests ARE markdown files** - User flows + acceptance criteria + technical tests 2. **Bash IS the test runner** - `bun test`, `npm test`, existing tools 3. **Ultrathink IS problem solving** - Claude's deep analysis mode 4. **Iteration IS the fix loop** - Claude naturally retries after fixes 5. **Quality IS a workflow** - Not infrastructure, just following agent prompts **How the quality loop works:** ``` Claude (as quality agent) Creates tests.md Defines pass criteria Claude (as specialist) Implements feature Runs tests (Bash) Tests fail Claude (as problem-solver) Analyzes with ultrathink Searches lessons-learned.md Finds/doesn't find similar issue Proposes fix Implements fix Re-runs tests Tests pass Appends lesson to lessons-learned.md Done Next time Similar problem avoided (lesson found) Faster, better ``` **This is how continuous quality improvement works - every failure becomes institutional knowledge.** 🎯