2.3 KiB
2.3 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | |
|---|---|---|---|---|---|---|---|---|
| schema/enums | Define TypeBox categorical enum schemas and type aliases | completed |
|
narrow | trivial | component | implementation |
Description
Define all categorical enum schemas using Type.Union([Type.Literal(...)]) pattern per schemas.md. Each enum gets a schema constant (PascalCase + Enum suffix) and a Static<typeof> type alias (PascalCase, no suffix).
The six enums: TaskScopeEnum, TaskRiskEnum, TaskImpactEnum, TaskLevelEnum, TaskPriorityEnum, TaskStatusEnum.
Acceptance Criteria
src/schema/enums.tsexports all six enum schemas and their type aliases- Each enum uses
Type.Union([Type.Literal("value"), ...])pattern per typebox-patterns.md TaskScopeEnum:"single" | "narrow" | "moderate" | "broad" | "system"TaskRiskEnum:"trivial" | "low" | "medium" | "high" | "critical"TaskImpactEnum:"isolated" | "component" | "phase" | "project"TaskLevelEnum:"planning" | "decomposition" | "implementation" | "review" | "research"TaskPriorityEnum:"low" | "medium" | "high" | "critical"TaskStatusEnum:"pending" | "in-progress" | "completed" | "failed" | "blocked"- Type aliases derived via
Static<typeof>:TaskScope,TaskRisk,TaskImpact,TaskLevel,TaskPriority,TaskStatus - Naming convention matches spec:
Enumsuffix on schema constants only, never on type aliases src/schema/index.tsre-exports all schemas and types
References
- docs/architecture/schemas.md — enum definitions, naming convention
- docs/research/typebox-patterns.md — TypeBox enum patterns, naming convention
Notes
Also exported the Nullable helper generic (used by downstream schemas) and added JSDoc comments on each type alias.
Summary
Implemented all six categorical enum schemas using Type.Union([Type.Literal(...)]) pattern with Static<typeof> type aliases.
- Created:
src/schema/enums.ts(6 enum schemas + 6 type aliases + Nullable helper) - Modified:
test/schema.test.ts(21 enum-specific tests: Value.Check validation, Nullable helper, compile-time type alias verification) - Tests: 21 enum tests + 4 placeholders, all passing;
tsc --noEmitclean