@agile-vibe-coding/avc 0.1.1 → 0.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/agent-loader.js +21 -0
- package/cli/agents/agent-selector.md +152 -0
- package/cli/agents/architecture-recommender.md +418 -0
- package/cli/agents/code-implementer.md +117 -0
- package/cli/agents/code-validator.md +80 -0
- package/cli/agents/context-reviewer-epic.md +101 -0
- package/cli/agents/context-reviewer-story.md +92 -0
- package/cli/agents/context-writer-epic.md +145 -0
- package/cli/agents/context-writer-story.md +111 -0
- package/cli/agents/database-deep-dive.md +470 -0
- package/cli/agents/database-recommender.md +634 -0
- package/cli/agents/doc-distributor.md +176 -0
- package/cli/agents/doc-writer-epic.md +42 -0
- package/cli/agents/doc-writer-story.md +43 -0
- package/cli/agents/documentation-updater.md +203 -0
- package/cli/agents/duplicate-detector.md +110 -0
- package/cli/agents/epic-story-decomposer.md +559 -0
- package/cli/agents/feature-context-generator.md +91 -0
- package/cli/agents/gap-checker-epic.md +52 -0
- package/cli/agents/impact-checker-story.md +51 -0
- package/cli/agents/migration-guide-generator.md +305 -0
- package/cli/agents/mission-scope-generator.md +143 -0
- package/cli/agents/mission-scope-validator.md +146 -0
- package/cli/agents/project-context-extractor.md +122 -0
- package/cli/agents/project-documentation-creator.json +226 -0
- package/cli/agents/project-documentation-creator.md +595 -0
- package/cli/agents/question-prefiller.md +269 -0
- package/cli/agents/refiner-epic.md +39 -0
- package/cli/agents/refiner-story.md +42 -0
- package/cli/agents/scaffolding-generator.md +99 -0
- package/cli/agents/seed-validator.md +71 -0
- package/cli/agents/story-doc-enricher.md +133 -0
- package/cli/agents/story-scope-reviewer.md +147 -0
- package/cli/agents/story-splitter.md +83 -0
- package/cli/agents/suggestion-business-analyst.md +88 -0
- package/cli/agents/suggestion-deployment-architect.md +263 -0
- package/cli/agents/suggestion-product-manager.md +129 -0
- package/cli/agents/suggestion-security-specialist.md +156 -0
- package/cli/agents/suggestion-technical-architect.md +269 -0
- package/cli/agents/suggestion-ux-researcher.md +93 -0
- package/cli/agents/task-subtask-decomposer.md +188 -0
- package/cli/agents/validator-documentation.json +183 -0
- package/cli/agents/validator-documentation.md +455 -0
- package/cli/agents/validator-selector.md +211 -0
- package/cli/ansi-colors.js +21 -0
- package/cli/api-reference-tool.js +368 -0
- package/cli/build-docs.js +29 -8
- package/cli/ceremony-history.js +369 -0
- package/cli/checks/catalog.json +76 -0
- package/cli/checks/code/quality.json +26 -0
- package/cli/checks/code/testing.json +14 -0
- package/cli/checks/code/traceability.json +26 -0
- package/cli/checks/cross-refs/epic.json +171 -0
- package/cli/checks/cross-refs/story.json +149 -0
- package/cli/checks/epic/api.json +114 -0
- package/cli/checks/epic/backend.json +126 -0
- package/cli/checks/epic/cloud.json +126 -0
- package/cli/checks/epic/data.json +102 -0
- package/cli/checks/epic/database.json +114 -0
- package/cli/checks/epic/developer.json +182 -0
- package/cli/checks/epic/devops.json +174 -0
- package/cli/checks/epic/frontend.json +162 -0
- package/cli/checks/epic/mobile.json +102 -0
- package/cli/checks/epic/qa.json +90 -0
- package/cli/checks/epic/security.json +184 -0
- package/cli/checks/epic/solution-architect.json +192 -0
- package/cli/checks/epic/test-architect.json +90 -0
- package/cli/checks/epic/ui.json +102 -0
- package/cli/checks/epic/ux.json +90 -0
- package/cli/checks/fixes/epic-fix-template.md +10 -0
- package/cli/checks/fixes/story-fix-template.md +10 -0
- package/cli/checks/story/api.json +186 -0
- package/cli/checks/story/backend.json +102 -0
- package/cli/checks/story/cloud.json +102 -0
- package/cli/checks/story/data.json +210 -0
- package/cli/checks/story/database.json +102 -0
- package/cli/checks/story/developer.json +168 -0
- package/cli/checks/story/devops.json +102 -0
- package/cli/checks/story/frontend.json +174 -0
- package/cli/checks/story/mobile.json +102 -0
- package/cli/checks/story/qa.json +210 -0
- package/cli/checks/story/security.json +198 -0
- package/cli/checks/story/solution-architect.json +230 -0
- package/cli/checks/story/test-architect.json +210 -0
- package/cli/checks/story/ui.json +102 -0
- package/cli/checks/story/ux.json +102 -0
- package/cli/coding-order.js +401 -0
- package/cli/command-logger.js +49 -12
- package/cli/components/static-output.js +63 -0
- package/cli/console-output-manager.js +94 -0
- package/cli/dependency-checker.js +72 -0
- package/cli/docs-sync.js +306 -0
- package/cli/epic-story-validator.js +659 -0
- package/cli/evaluation-prompts.js +1008 -0
- package/cli/execution-context.js +195 -0
- package/cli/generate-summary-table.js +340 -0
- package/cli/init-model-config.js +704 -0
- package/cli/init.js +1737 -278
- package/cli/kanban-server-manager.js +227 -0
- package/cli/llm-claude.js +150 -1
- package/cli/llm-gemini.js +109 -0
- package/cli/llm-local.js +493 -0
- package/cli/llm-mock.js +233 -0
- package/cli/llm-openai.js +454 -0
- package/cli/llm-provider.js +379 -3
- package/cli/llm-token-limits.js +211 -0
- package/cli/llm-verifier.js +662 -0
- package/cli/llm-xiaomi.js +143 -0
- package/cli/message-constants.js +49 -0
- package/cli/message-manager.js +334 -0
- package/cli/message-types.js +96 -0
- package/cli/messaging-api.js +291 -0
- package/cli/micro-check-fixer.js +335 -0
- package/cli/micro-check-runner.js +449 -0
- package/cli/micro-check-scorer.js +148 -0
- package/cli/micro-check-validator.js +538 -0
- package/cli/model-pricing.js +192 -0
- package/cli/model-query-engine.js +468 -0
- package/cli/model-recommendation-analyzer.js +495 -0
- package/cli/model-selector.js +270 -0
- package/cli/output-buffer.js +107 -0
- package/cli/process-manager.js +73 -2
- package/cli/prompt-logger.js +57 -0
- package/cli/repl-ink.js +4625 -1094
- package/cli/repl-old.js +3 -4
- package/cli/seed-processor.js +962 -0
- package/cli/sprint-planning-processor.js +4162 -0
- package/cli/template-processor.js +2149 -105
- package/cli/templates/project.md +25 -8
- package/cli/templates/vitepress-config.mts.template +5 -4
- package/cli/token-tracker.js +547 -0
- package/cli/tools/generate-story-validators.js +317 -0
- package/cli/tools/generate-validators.js +669 -0
- package/cli/update-checker.js +19 -17
- package/cli/update-notifier.js +4 -4
- package/cli/validation-router.js +667 -0
- package/cli/verification-tracker.js +563 -0
- package/cli/worktree-runner.js +654 -0
- package/kanban/README.md +386 -0
- package/kanban/client/README.md +205 -0
- package/kanban/client/components.json +20 -0
- package/kanban/client/dist/assets/index-D_KC5EQT.css +1 -0
- package/kanban/client/dist/assets/index-DjY5zqW7.js +351 -0
- package/kanban/client/dist/index.html +16 -0
- package/kanban/client/dist/vite.svg +1 -0
- package/kanban/client/index.html +15 -0
- package/kanban/client/package-lock.json +9442 -0
- package/kanban/client/package.json +44 -0
- package/kanban/client/postcss.config.js +6 -0
- package/kanban/client/public/vite.svg +1 -0
- package/kanban/client/src/App.jsx +651 -0
- package/kanban/client/src/components/ProjectFileEditorPopup.jsx +117 -0
- package/kanban/client/src/components/ceremony/AskArchPopup.jsx +420 -0
- package/kanban/client/src/components/ceremony/AskModelPopup.jsx +629 -0
- package/kanban/client/src/components/ceremony/CeremonyWorkflowModal.jsx +1133 -0
- package/kanban/client/src/components/ceremony/EpicStorySelectionModal.jsx +254 -0
- package/kanban/client/src/components/ceremony/ProviderSwitcherButton.jsx +290 -0
- package/kanban/client/src/components/ceremony/SponsorCallModal.jsx +686 -0
- package/kanban/client/src/components/ceremony/SprintPlanningModal.jsx +838 -0
- package/kanban/client/src/components/ceremony/steps/ArchitectureStep.jsx +150 -0
- package/kanban/client/src/components/ceremony/steps/CompleteStep.jsx +136 -0
- package/kanban/client/src/components/ceremony/steps/DatabaseStep.jsx +202 -0
- package/kanban/client/src/components/ceremony/steps/DeploymentStep.jsx +123 -0
- package/kanban/client/src/components/ceremony/steps/MissionStep.jsx +106 -0
- package/kanban/client/src/components/ceremony/steps/ReviewAnswersStep.jsx +329 -0
- package/kanban/client/src/components/ceremony/steps/RunningStep.jsx +249 -0
- package/kanban/client/src/components/kanban/CardDetailModal.jsx +646 -0
- package/kanban/client/src/components/kanban/EpicSection.jsx +146 -0
- package/kanban/client/src/components/kanban/FilterToolbar.jsx +222 -0
- package/kanban/client/src/components/kanban/GroupingSelector.jsx +63 -0
- package/kanban/client/src/components/kanban/KanbanBoard.jsx +211 -0
- package/kanban/client/src/components/kanban/KanbanCard.jsx +147 -0
- package/kanban/client/src/components/kanban/KanbanColumn.jsx +90 -0
- package/kanban/client/src/components/kanban/RefineWorkItemPopup.jsx +784 -0
- package/kanban/client/src/components/kanban/RunButton.jsx +162 -0
- package/kanban/client/src/components/kanban/SeedButton.jsx +176 -0
- package/kanban/client/src/components/layout/LoadingScreen.jsx +82 -0
- package/kanban/client/src/components/process/ProcessMonitorBar.jsx +80 -0
- package/kanban/client/src/components/settings/AgentEditorPopup.jsx +171 -0
- package/kanban/client/src/components/settings/AgentsTab.jsx +381 -0
- package/kanban/client/src/components/settings/ApiKeysTab.jsx +142 -0
- package/kanban/client/src/components/settings/CeremonyModelsTab.jsx +105 -0
- package/kanban/client/src/components/settings/CheckEditorPopup.jsx +507 -0
- package/kanban/client/src/components/settings/CostThresholdsTab.jsx +95 -0
- package/kanban/client/src/components/settings/ModelPricingTab.jsx +269 -0
- package/kanban/client/src/components/settings/OpenAIAuthSection.jsx +412 -0
- package/kanban/client/src/components/settings/ServersTab.jsx +121 -0
- package/kanban/client/src/components/settings/SettingsModal.jsx +84 -0
- package/kanban/client/src/components/stats/CostModal.jsx +384 -0
- package/kanban/client/src/components/ui/badge.jsx +27 -0
- package/kanban/client/src/components/ui/dialog.jsx +121 -0
- package/kanban/client/src/components/ui/tabs.jsx +85 -0
- package/kanban/client/src/hooks/__tests__/useGrouping.test.js +232 -0
- package/kanban/client/src/hooks/useGrouping.js +177 -0
- package/kanban/client/src/hooks/useWebSocket.js +120 -0
- package/kanban/client/src/lib/__tests__/api.test.js +196 -0
- package/kanban/client/src/lib/__tests__/status-grouping.test.js +94 -0
- package/kanban/client/src/lib/api.js +515 -0
- package/kanban/client/src/lib/status-grouping.js +154 -0
- package/kanban/client/src/lib/utils.js +11 -0
- package/kanban/client/src/main.jsx +10 -0
- package/kanban/client/src/store/__tests__/kanbanStore.test.js +164 -0
- package/kanban/client/src/store/ceremonyStore.js +172 -0
- package/kanban/client/src/store/filterStore.js +201 -0
- package/kanban/client/src/store/kanbanStore.js +123 -0
- package/kanban/client/src/store/processStore.js +65 -0
- package/kanban/client/src/store/sprintPlanningStore.js +33 -0
- package/kanban/client/src/styles/globals.css +59 -0
- package/kanban/client/tailwind.config.js +77 -0
- package/kanban/client/vite.config.js +28 -0
- package/kanban/client/vitest.config.js +28 -0
- package/kanban/dev-start.sh +47 -0
- package/kanban/package.json +12 -0
- package/kanban/server/index.js +537 -0
- package/kanban/server/routes/ceremony.js +454 -0
- package/kanban/server/routes/costs.js +163 -0
- package/kanban/server/routes/openai-oauth.js +366 -0
- package/kanban/server/routes/processes.js +50 -0
- package/kanban/server/routes/settings.js +736 -0
- package/kanban/server/routes/websocket.js +281 -0
- package/kanban/server/routes/work-items.js +487 -0
- package/kanban/server/services/CeremonyService.js +1441 -0
- package/kanban/server/services/FileSystemScanner.js +95 -0
- package/kanban/server/services/FileWatcher.js +144 -0
- package/kanban/server/services/HierarchyBuilder.js +196 -0
- package/kanban/server/services/ProcessRegistry.js +122 -0
- package/kanban/server/services/TaskRunnerService.js +261 -0
- package/kanban/server/services/WorkItemReader.js +123 -0
- package/kanban/server/services/WorkItemRefineService.js +510 -0
- package/kanban/server/start.js +49 -0
- package/kanban/server/utils/kanban-logger.js +132 -0
- package/kanban/server/utils/markdown.js +91 -0
- package/kanban/server/utils/status-grouping.js +107 -0
- package/kanban/server/workers/run-task-worker.js +121 -0
- package/kanban/server/workers/seed-worker.js +94 -0
- package/kanban/server/workers/sponsor-call-worker.js +92 -0
- package/kanban/server/workers/sprint-planning-worker.js +212 -0
- package/package.json +19 -7
- package/cli/agents/documentation.md +0 -302
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
# Task and Subtask Decomposition Agent
|
|
2
|
+
|
|
3
|
+
You are an expert software engineer specializing in breaking down user stories into implementable work units.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
Given a Story with its description and acceptance criteria, decompose it into:
|
|
8
|
+
1. **Tasks** (2-5 technical implementation units)
|
|
9
|
+
2. **Subtasks** (1-3 atomic work units per Task)
|
|
10
|
+
|
|
11
|
+
## Task Decomposition Rules
|
|
12
|
+
|
|
13
|
+
1. Each Task represents a **technical component or layer**
|
|
14
|
+
2. Tasks should be **independently testable**
|
|
15
|
+
3. Tasks should be **parallelizable** when possible
|
|
16
|
+
4. Each Task should have **clear technical scope**
|
|
17
|
+
5. Create 2-5 Tasks per Story
|
|
18
|
+
|
|
19
|
+
## Subtask Decomposition Rules
|
|
20
|
+
|
|
21
|
+
1. Each Subtask is **atomic** (cannot be split further)
|
|
22
|
+
2. Subtasks should be **implementable in 1-4 hours**
|
|
23
|
+
3. Each Subtask should have **clear input/output**
|
|
24
|
+
4. Subtasks should be **unit-testable**
|
|
25
|
+
5. Create 1-3 Subtasks per Task
|
|
26
|
+
|
|
27
|
+
## Decomposition Strategy
|
|
28
|
+
|
|
29
|
+
**Common Task Patterns:**
|
|
30
|
+
- **Backend Task**: API endpoints, business logic, data access
|
|
31
|
+
- **Frontend Task**: UI components, state management, user interactions
|
|
32
|
+
- **Database Task**: Schema, migrations, indexes
|
|
33
|
+
- **Testing Task**: Unit tests, integration tests, E2E tests
|
|
34
|
+
- **Infrastructure Task**: Deployment, configuration, monitoring
|
|
35
|
+
|
|
36
|
+
**Subtask Granularity:**
|
|
37
|
+
- Database: Create schema → Write migration → Add indexes
|
|
38
|
+
- API: Define interface → Implement handler → Add validation
|
|
39
|
+
- UI: Create component → Add styling → Wire up state
|
|
40
|
+
- Tests: Write unit tests → Write integration tests → Add edge cases
|
|
41
|
+
|
|
42
|
+
## Dependency Strategy
|
|
43
|
+
|
|
44
|
+
**Task-level:**
|
|
45
|
+
- Database tasks before Backend tasks
|
|
46
|
+
- Backend tasks before Frontend tasks
|
|
47
|
+
- Implementation tasks before Testing tasks
|
|
48
|
+
- Minimize cross-Task dependencies
|
|
49
|
+
|
|
50
|
+
**Subtask-level:**
|
|
51
|
+
- Sequential within a Task (define → implement → test)
|
|
52
|
+
- Parallel across Tasks when independent
|
|
53
|
+
|
|
54
|
+
## Output Format
|
|
55
|
+
|
|
56
|
+
Return JSON with this exact structure:
|
|
57
|
+
|
|
58
|
+
```json
|
|
59
|
+
{
|
|
60
|
+
"tasks": [
|
|
61
|
+
{
|
|
62
|
+
"id": "context-0001-0001-0001",
|
|
63
|
+
"name": "User Registration API",
|
|
64
|
+
"category": "backend",
|
|
65
|
+
"description": "Create REST API endpoint for user registration with validation",
|
|
66
|
+
"technicalScope": "Express.js route handler, bcrypt password hashing, email validation",
|
|
67
|
+
"acceptance": [
|
|
68
|
+
"POST /api/register endpoint accepts email, password, name",
|
|
69
|
+
"Password is hashed with bcrypt before storage",
|
|
70
|
+
"Email format is validated",
|
|
71
|
+
"Duplicate email returns 409 error"
|
|
72
|
+
],
|
|
73
|
+
"dependencies": [],
|
|
74
|
+
"subtasks": [
|
|
75
|
+
{
|
|
76
|
+
"id": "context-0001-0001-0001-0001",
|
|
77
|
+
"name": "Define Registration Interface",
|
|
78
|
+
"description": "Create TypeScript interface for registration request/response",
|
|
79
|
+
"technicalDetails": "Define RegisterRequest, RegisterResponse, validation rules",
|
|
80
|
+
"acceptance": [
|
|
81
|
+
"Interface exported from types/",
|
|
82
|
+
"All required fields typed correctly",
|
|
83
|
+
"JSDoc comments added"
|
|
84
|
+
],
|
|
85
|
+
"dependencies": []
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "context-0001-0001-0001-0002",
|
|
89
|
+
"name": "Implement Registration Handler",
|
|
90
|
+
"description": "Create route handler with validation and password hashing",
|
|
91
|
+
"technicalDetails": "Express handler, bcrypt.hash, email validator, error handling",
|
|
92
|
+
"acceptance": [
|
|
93
|
+
"Handler validates all inputs",
|
|
94
|
+
"Password hashed with cost factor 10",
|
|
95
|
+
"Returns 201 on success, 400/409 on error"
|
|
96
|
+
],
|
|
97
|
+
"dependencies": ["context-0001-0001-0001-0001"]
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "context-0001-0001-0001-0003",
|
|
101
|
+
"name": "Add Unit Tests",
|
|
102
|
+
"description": "Test registration handler with valid/invalid inputs",
|
|
103
|
+
"technicalDetails": "Jest tests, mock database, test all error paths",
|
|
104
|
+
"acceptance": [
|
|
105
|
+
"Test valid registration succeeds",
|
|
106
|
+
"Test duplicate email fails",
|
|
107
|
+
"Test invalid email fails",
|
|
108
|
+
"95% code coverage"
|
|
109
|
+
],
|
|
110
|
+
"dependencies": ["context-0001-0001-0001-0002"]
|
|
111
|
+
}
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
],
|
|
115
|
+
"validation": {
|
|
116
|
+
"taskCount": 3,
|
|
117
|
+
"subtaskCount": 7,
|
|
118
|
+
"dependencyGraphValid": true,
|
|
119
|
+
"allAcceptanceCriteriaMapped": true
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
## Task ID Format
|
|
125
|
+
|
|
126
|
+
Use Story ID + sequential number:
|
|
127
|
+
- Story 1, Task 1: `context-0001-0001-0001`
|
|
128
|
+
- Story 1, Task 2: `context-0001-0001-0002`
|
|
129
|
+
- Story 2, Task 1: `context-0001-0002-0001`
|
|
130
|
+
|
|
131
|
+
## Subtask ID Format
|
|
132
|
+
|
|
133
|
+
Use Task ID + sequential number:
|
|
134
|
+
- Task 1, Subtask 1: `context-0001-0001-0001-0001`
|
|
135
|
+
- Task 1, Subtask 2: `context-0001-0001-0001-0002`
|
|
136
|
+
- Task 2, Subtask 1: `context-0001-0001-0002-0001`
|
|
137
|
+
|
|
138
|
+
## Validation Checklist
|
|
139
|
+
|
|
140
|
+
Before returning, verify:
|
|
141
|
+
- [ ] 2-5 Tasks created per Story
|
|
142
|
+
- [ ] Each Task has 1-3 Subtasks
|
|
143
|
+
- [ ] All Story acceptance criteria mapped to Tasks
|
|
144
|
+
- [ ] Dependency graph is acyclic (no circular dependencies)
|
|
145
|
+
- [ ] Task categories are appropriate (backend, frontend, database, testing, infrastructure)
|
|
146
|
+
- [ ] Subtask acceptance criteria are concrete and testable
|
|
147
|
+
- [ ] Task names describe technical component
|
|
148
|
+
- [ ] Subtask names describe atomic work unit
|
|
149
|
+
- [ ] Each Subtask is truly atomic (cannot be split further)
|
|
150
|
+
|
|
151
|
+
## Example Task Categories
|
|
152
|
+
|
|
153
|
+
**Backend Development:**
|
|
154
|
+
- API endpoints
|
|
155
|
+
- Business logic services
|
|
156
|
+
- Data access layer
|
|
157
|
+
- Authentication/Authorization
|
|
158
|
+
- Background jobs
|
|
159
|
+
|
|
160
|
+
**Frontend Development:**
|
|
161
|
+
- UI components
|
|
162
|
+
- State management
|
|
163
|
+
- API integration
|
|
164
|
+
- Form handling
|
|
165
|
+
- Routing
|
|
166
|
+
|
|
167
|
+
**Database:**
|
|
168
|
+
- Schema design
|
|
169
|
+
- Migrations
|
|
170
|
+
- Indexes
|
|
171
|
+
- Stored procedures
|
|
172
|
+
- Data seeding
|
|
173
|
+
|
|
174
|
+
**Testing:**
|
|
175
|
+
- Unit tests
|
|
176
|
+
- Integration tests
|
|
177
|
+
- E2E tests
|
|
178
|
+
- Performance tests
|
|
179
|
+
- Security tests
|
|
180
|
+
|
|
181
|
+
**Infrastructure:**
|
|
182
|
+
- Deployment configuration
|
|
183
|
+
- CI/CD pipelines
|
|
184
|
+
- Monitoring setup
|
|
185
|
+
- Logging configuration
|
|
186
|
+
- Environment variables
|
|
187
|
+
|
|
188
|
+
Use appropriate categories based on the Story's technical requirements.
|
|
@@ -0,0 +1,183 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "verification-rules-v1",
|
|
3
|
+
"agent": "validator-documentation",
|
|
4
|
+
"description": "Post-processing verification for documentation validator outputs",
|
|
5
|
+
"model": "claude-haiku-4-5",
|
|
6
|
+
"verifications": [
|
|
7
|
+
{
|
|
8
|
+
"id": "valid-json",
|
|
9
|
+
"name": "Ensure Valid JSON",
|
|
10
|
+
"enabled": true,
|
|
11
|
+
"severity": "critical",
|
|
12
|
+
"description": "Validator output must be valid JSON",
|
|
13
|
+
"fastPath": {
|
|
14
|
+
"enabled": true,
|
|
15
|
+
"type": "json-parse"
|
|
16
|
+
},
|
|
17
|
+
"check": {
|
|
18
|
+
"prompt": "Check if content is valid JSON.\n\nCONTENT:\n{content}\n\nIs this valid JSON?\n\nRespond ONLY 'YES' (if valid) or 'NO' (if invalid).",
|
|
19
|
+
"expectedResponse": "YES|NO",
|
|
20
|
+
"maxTokens": 10
|
|
21
|
+
},
|
|
22
|
+
"fix": {
|
|
23
|
+
"prompt": "Fix JSON syntax errors:\n- Missing/extra commas\n- Unquoted keys\n- Unescaped quotes\n- Trailing commas\n- Missing brackets/braces\n\nPreserve all data.\n\nCONTENT:\n{content}\n\nReturn ONLY valid JSON.",
|
|
24
|
+
"returnFormat": "json",
|
|
25
|
+
"maxTokens": 4096
|
|
26
|
+
},
|
|
27
|
+
"metadata": {
|
|
28
|
+
"category": "validation",
|
|
29
|
+
"addedVersion": "0.1.2"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "required-fields",
|
|
34
|
+
"name": "Validate Required Fields",
|
|
35
|
+
"enabled": true,
|
|
36
|
+
"severity": "critical",
|
|
37
|
+
"description": "Must have all required fields",
|
|
38
|
+
"fastPath": {
|
|
39
|
+
"enabled": true,
|
|
40
|
+
"type": "json-fields",
|
|
41
|
+
"requiredFields": [
|
|
42
|
+
"validationStatus",
|
|
43
|
+
"overallScore",
|
|
44
|
+
"structuralIssues",
|
|
45
|
+
"contentIssues",
|
|
46
|
+
"applicationFlowGaps",
|
|
47
|
+
"strengths",
|
|
48
|
+
"improvementPriorities",
|
|
49
|
+
"readyForPublication"
|
|
50
|
+
]
|
|
51
|
+
},
|
|
52
|
+
"check": {
|
|
53
|
+
"prompt": "Check if JSON has ALL required fields:\n- validationStatus\n- overallScore\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n- readyForPublication\n\nCONTENT:\n{content}\n\nDoes it have ALL required fields?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
54
|
+
"expectedResponse": "YES|NO",
|
|
55
|
+
"maxTokens": 10
|
|
56
|
+
},
|
|
57
|
+
"fix": {
|
|
58
|
+
"prompt": "Add missing required fields with defaults:\n- validationStatus: 'needs-improvement'\n- overallScore: 50\n- structuralIssues: []\n- contentIssues: []\n- applicationFlowGaps: []\n- strengths: ['Document structure present']\n- improvementPriorities: []\n- readyForPublication: false\n\nPreserve existing fields.\n\nCONTENT:\n{content}\n\nReturn ONLY complete JSON.",
|
|
59
|
+
"returnFormat": "json",
|
|
60
|
+
"maxTokens": 4096
|
|
61
|
+
},
|
|
62
|
+
"metadata": {
|
|
63
|
+
"category": "validation",
|
|
64
|
+
"addedVersion": "0.1.2"
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"id": "score-range",
|
|
69
|
+
"name": "Validate Score Range",
|
|
70
|
+
"enabled": true,
|
|
71
|
+
"severity": "critical",
|
|
72
|
+
"description": "overallScore must be 0-100",
|
|
73
|
+
"fastPath": {
|
|
74
|
+
"enabled": true,
|
|
75
|
+
"type": "json-score-range",
|
|
76
|
+
"field": "overallScore",
|
|
77
|
+
"min": 0,
|
|
78
|
+
"max": 100
|
|
79
|
+
},
|
|
80
|
+
"check": {
|
|
81
|
+
"prompt": "Check if overallScore is valid (integer 0-100).\n\nCONTENT:\n{content}\n\nIs overallScore INVALID?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
82
|
+
"expectedResponse": "YES|NO",
|
|
83
|
+
"maxTokens": 10
|
|
84
|
+
},
|
|
85
|
+
"fix": {
|
|
86
|
+
"prompt": "Fix overallScore:\n- If >100, set to 100\n- If <0, set to 0\n- If not number, set to 50\n- If decimal, round to integer\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
|
|
87
|
+
"returnFormat": "json",
|
|
88
|
+
"maxTokens": 4096
|
|
89
|
+
},
|
|
90
|
+
"metadata": {
|
|
91
|
+
"category": "validation",
|
|
92
|
+
"addedVersion": "0.1.2"
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"id": "valid-severity",
|
|
97
|
+
"name": "Validate Severity Values",
|
|
98
|
+
"enabled": true,
|
|
99
|
+
"severity": "major",
|
|
100
|
+
"description": "Severity must be critical/major/minor",
|
|
101
|
+
"fastPath": {
|
|
102
|
+
"enabled": true,
|
|
103
|
+
"type": "json-enum-deep",
|
|
104
|
+
"field": "severity",
|
|
105
|
+
"allowedValues": ["critical", "major", "minor"],
|
|
106
|
+
"searchArrays": ["structuralIssues", "contentIssues"]
|
|
107
|
+
},
|
|
108
|
+
"check": {
|
|
109
|
+
"prompt": "Check if all severity fields use ONLY: 'critical', 'major', 'minor'\n\nInvalid: 'high', 'low', 'medium'\n\nCONTENT:\n{content}\n\nAre there invalid severity values?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
110
|
+
"expectedResponse": "YES|NO",
|
|
111
|
+
"maxTokens": 10
|
|
112
|
+
},
|
|
113
|
+
"fix": {
|
|
114
|
+
"prompt": "Fix severity values:\n- 'high' → 'critical'\n- 'medium' → 'major'\n- 'low' → 'minor'\n- Other → 'major'\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
|
|
115
|
+
"returnFormat": "json",
|
|
116
|
+
"maxTokens": 4096
|
|
117
|
+
},
|
|
118
|
+
"metadata": {
|
|
119
|
+
"category": "validation",
|
|
120
|
+
"addedVersion": "0.1.2"
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "valid-status",
|
|
125
|
+
"name": "Validate Status Values",
|
|
126
|
+
"enabled": true,
|
|
127
|
+
"severity": "critical",
|
|
128
|
+
"description": "validationStatus must be needs-improvement/acceptable/excellent",
|
|
129
|
+
"fastPath": {
|
|
130
|
+
"enabled": true,
|
|
131
|
+
"type": "json-enum",
|
|
132
|
+
"field": "validationStatus",
|
|
133
|
+
"allowedValues": ["needs-improvement", "acceptable", "excellent"]
|
|
134
|
+
},
|
|
135
|
+
"check": {
|
|
136
|
+
"prompt": "Check if validationStatus is: 'needs-improvement', 'acceptable', or 'excellent'\n\nCONTENT:\n{content}\n\nIs validationStatus INVALID?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
137
|
+
"expectedResponse": "YES|NO",
|
|
138
|
+
"maxTokens": 10
|
|
139
|
+
},
|
|
140
|
+
"fix": {
|
|
141
|
+
"prompt": "Fix validationStatus based on overallScore:\n- 90-100 → 'excellent'\n- 75-89 → 'acceptable'\n- 0-74 → 'needs-improvement'\n\nIf no score, use 'needs-improvement'.\n\nCONTENT:\n{content}\n\nReturn ONLY corrected JSON.",
|
|
142
|
+
"returnFormat": "json",
|
|
143
|
+
"maxTokens": 4096
|
|
144
|
+
},
|
|
145
|
+
"metadata": {
|
|
146
|
+
"category": "validation",
|
|
147
|
+
"addedVersion": "0.1.2"
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"id": "array-fields",
|
|
152
|
+
"name": "Validate Array Fields",
|
|
153
|
+
"enabled": true,
|
|
154
|
+
"severity": "major",
|
|
155
|
+
"description": "Issue fields must be arrays",
|
|
156
|
+
"fastPath": {
|
|
157
|
+
"enabled": true,
|
|
158
|
+
"type": "json-arrays",
|
|
159
|
+
"arrayFields": [
|
|
160
|
+
"structuralIssues",
|
|
161
|
+
"contentIssues",
|
|
162
|
+
"applicationFlowGaps",
|
|
163
|
+
"strengths",
|
|
164
|
+
"improvementPriorities"
|
|
165
|
+
]
|
|
166
|
+
},
|
|
167
|
+
"check": {
|
|
168
|
+
"prompt": "Check if these fields are ARRAYS (not strings, not objects, not null):\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n\nExamples:\n✅ \"structuralIssues\": [] (valid - empty array)\n✅ \"contentIssues\": [{...}] (valid - array of objects)\n❌ \"strengths\": \"Good structure\" (INVALID - string not array)\n❌ \"improvementPriorities\": null (INVALID - null not array)\n\nCONTENT:\n{content}\n\nAre ALL these fields proper arrays ([], [{...}])?\n\nRespond ONLY 'YES' (all are arrays) or 'NO' (one or more not array).",
|
|
169
|
+
"expectedResponse": "YES|NO",
|
|
170
|
+
"maxTokens": 10
|
|
171
|
+
},
|
|
172
|
+
"fix": {
|
|
173
|
+
"prompt": "Convert these fields to arrays:\n- structuralIssues\n- contentIssues\n- applicationFlowGaps\n- strengths\n- improvementPriorities\n\nConversion rules:\n- If missing → add empty array []\n- If null → change to []\n- If string → wrap in array [\"string\"]\n- If single object → wrap in array [{...}]\n- If already array → keep unchanged\n\nPreserve ALL other fields exactly as they are.\nPreserve ALL other content.\nReturn ONLY valid JSON (not wrapped in code fences).\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected JSON.",
|
|
174
|
+
"returnFormat": "json",
|
|
175
|
+
"maxTokens": 4096
|
|
176
|
+
},
|
|
177
|
+
"metadata": {
|
|
178
|
+
"category": "validation",
|
|
179
|
+
"addedVersion": "0.1.2"
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
}
|