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.

257 lines (191 loc) 6.96 kB
--- title: Tests dimension: things category: cascade tags: agent related_dimensions: events, 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-6-numbering-structure/tests.md Purpose: Documents tests for feature 1-6: numbering and file structure Related dimensions: events, people For AI agents: Read this to understand tests. --- # Tests for Feature 1-6: Numbering and File Structure **Feature:** 1-6-numbering-structure **Status:** Tests Defined → Design Phase **Quality Agent:** agent-quality.md --- ## User Flows ### Flow 1: Assign Plan Number **User goal:** Director assigns unique plan number **Time budget:** < 1 second **Steps:** 1. Idea validated 2. Director queries existing plans 3. Director assigns next number (maxPlanNumber + 1) 4. Plan ID: `N-plan-name` 5. File created: `plans/N-plan-name.md` 6. Event logged **Acceptance Criteria:** - [ ] Plan number unique (no duplicates) - [ ] Plan number sequential (no gaps unless intentional) - [ ] File created in correct location - [ ] Filename matches ID - [ ] Assignment time: < 1 second - [ ] Event logged with plan number --- ### Flow 2: Assign Feature Numbers **User goal:** Director assigns feature numbers within plan **Time budget:** < 2 seconds for 5 features **Steps:** 1. Plan created with ID: `2-course-platform` 2. Director breaks into 4 features 3. Features numbered: `2-1`, `2-2`, `2-3`, `2-4` 4. Files created: `features/2-1-course-crud.md`, etc. 5. Events logged **Acceptance Criteria:** - [ ] Feature numbers inherit plan number - [ ] Feature numbers sequential within plan - [ ] Files created in correct location - [ ] Filenames match IDs - [ ] Total time: < 2 seconds - [ ] Events logged --- ### Flow 3: Create Task List **User goal:** Director creates numbered tasks for feature **Time budget:** < 3 seconds for 6 tasks **Steps:** 1. Feature approved: `2-1-course-crud` 2. Director creates task list 3. Tasks numbered: `2-1-task-1`, `2-1-task-2`, ..., `2-1-task-6` 4. File created: `features/2-1-course-crud/tasks.md` 5. Event logged **Acceptance Criteria:** - [ ] Task numbers inherit feature number - [ ] Task numbers sequential - [ ] Task list file in feature subdirectory - [ ] Filename: `{featureId}/tasks.md` - [ ] Total time: < 3 seconds - [ ] Event logged --- ### Flow 4: Parse and Validate IDs **User goal:** System understands hierarchical IDs **Time budget:** < 10ms per ID **Steps:** 1. System receives ID (e.g., `2-1-task-3`) 2. System parses: plan=2, feature=1, task=3 3. System validates format 4. System extracts components 5. System uses for file operations **Acceptance Criteria:** - [ ] Parses plan IDs: `N-name` - [ ] Parses feature IDs: `N-M-name` - [ ] Parses task IDs: `N-M-task-K` - [ ] Rejects invalid formats - [ ] Parse time: < 10ms - [ ] Extracted components correct --- ### Flow 5: Navigate Hierarchy via IDs **User goal:** Developer finds all related files quickly **Time budget:** < 5 seconds **Steps:** 1. Developer has feature ID: `2-1-course-crud` 2. Developer searches: `grep "2-1-" -r .` 3. System returns all files: - `features/2-1-course-crud.md` - `features/2-1-course-crud/tests.md` - `features/2-1-course-crud/design.md` - `features/2-1-course-crud/tasks.md` - `events/completed/2-1-course-crud-complete.md` 4. Developer navigates hierarchy **Acceptance Criteria:** - [ ] Search finds all related files - [ ] Hierarchy clear from IDs - [ ] Search time: < 5 seconds - [ ] Files sort naturally (1-1 before 1-2) - [ ] No ambiguity - [ ] Easy to navigate --- ## Technical Tests ### Unit Tests **Number Assignment:** - [ ] `assignPlanNumber()` returns next number - [ ] `assignPlanNumber()` increments correctly (1, 2, 3, ...) - [ ] `assignFeatureNumber(planId)` returns next feature number - [ ] `assignFeatureNumber("2-*")` returns 2-1, 2-2, 2-3, ... - [ ] `assignTaskNumber(featureId)` returns task numbers - [ ] `assignTaskNumber("2-1-*")` returns 2-1-task-1, 2-1-task-2, ... **ID Parsing:** - [ ] `parseId("1-workflow")` returns { type: "plan", planNumber: 1, name: "workflow" } - [ ] `parseId("2-1-course-crud")` returns { type: "feature", planNumber: 2, featureNumber: 1, name: "course-crud" } - [ ] `parseId("2-1-task-3")` returns { type: "task", planNumber: 2, featureNumber: 1, taskNumber: 3 } - [ ] `parseId("invalid")` throws error **ID Validation:** - [ ] `validateId("1-workflow", "plan")` returns true - [ ] `validateId("2-1-feature", "feature")` returns true - [ ] `validateId("2-1-task-1", "task")` returns true - [ ] `validateId("invalid", "plan")` returns false - [ ] `validateId("1-workflow", "feature")` returns false (wrong type) **File Creation:** - [ ] `createPlanFile(planId)` creates file in `plans/` - [ ] `createFeatureFile(featureId)` creates file in `features/` - [ ] `createTaskFile(featureId)` creates file in `features/{featureId}/` - [ ] Files created with correct names - [ ] Directories created automatically if missing --- ### Integration Tests **Complete Numbering Flow:** - [ ] Idea validated → Plan number assigned (1) - [ ] Plan created → Features numbered (1-1, 1-2, 1-3) - [ ] Features approved → Tasks numbered (1-1-task-1, ...) - [ ] All files created in correct locations - [ ] All events logged with numbers **Multiple Plans:** - [ ] Plan 1 created (features 1-1, 1-2, 1-3) - [ ] Plan 2 created (features 2-1, 2-2, 2-3, 2-4) - [ ] Plan 3 created (features 3-1, 3-2) - [ ] No number conflicts - [ ] All hierarchies independent **Search and Navigation:** - [ ] Search "1-1-" finds all feature 1-1 files - [ ] Search "2-\*" finds all plan 2 files - [ ] Files sort correctly (ls shows natural order) - [ ] Navigation clear and intuitive --- ### E2E Tests **Complete Workflow with Numbering:** - [ ] Idea → Plan 2 (`2-course-platform`) - [ ] Plan → Features (2-1, 2-2, 2-3, 2-4) - [ ] Feature 2-1 → Tasks (2-1-task-1, ..., 2-1-task-6) - [ ] All files in correct locations - [ ] All IDs parse correctly - [ ] Hierarchy clear from IDs **Scale Test:** - [ ] 10 plans created - [ ] 50 features total (varying per plan) - [ ] 200 tasks total - [ ] All numbers unique - [ ] All files organized correctly - [ ] Search performance acceptable **Developer Experience:** - [ ] New developer understands hierarchy in < 5 minutes - [ ] ID reveals relationships (2-1-task-3 = Plan 2, Feature 1, Task 3) - [ ] Search finds files quickly - [ ] Git operations natural (sort, branch names, commit messages) --- ## Definition of Done - [ ] Numbering system documented - [ ] File structure defined - [ ] ID parsing works correctly - [ ] Validation catches errors - [ ] Directories created automatically - [ ] Hierarchy clear from IDs - [ ] System scales to 100+ features - [ ] All tests pass --- **Next:** Design phase - Numbering logic and file system architecture