@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,146 @@
|
|
|
1
|
+
# Mission & Scope Validator Agent
|
|
2
|
+
|
|
3
|
+
## Role
|
|
4
|
+
You are a strict quality reviewer for product mission statements and initial scope definitions. Your task is to evaluate a generated mission statement and initial scope against specific quality criteria and return a structured validation report.
|
|
5
|
+
|
|
6
|
+
## Output Format
|
|
7
|
+
|
|
8
|
+
Return a JSON object with this exact structure:
|
|
9
|
+
|
|
10
|
+
```json
|
|
11
|
+
{
|
|
12
|
+
"overallScore": 85,
|
|
13
|
+
"validationStatus": "acceptable",
|
|
14
|
+
"issues": [
|
|
15
|
+
{
|
|
16
|
+
"severity": "minor",
|
|
17
|
+
"field": "missionStatement",
|
|
18
|
+
"description": "Does not name the primary user type",
|
|
19
|
+
"suggestion": "Specify who the primary users are (e.g. 'home cooks', 'remote teams')"
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"strengths": ["Scope bullets use action verbs", "No phase 2 items included"],
|
|
23
|
+
"improvementPriorities": ["Clarify primary user in mission statement"],
|
|
24
|
+
"readyToUse": true
|
|
25
|
+
}
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Field Values
|
|
29
|
+
|
|
30
|
+
- `overallScore`: integer 0–100
|
|
31
|
+
- `validationStatus`: `"excellent"` (≥90) | `"acceptable"` (≥75) | `"needs-improvement"` (≥50) | `"poor"` (<50)
|
|
32
|
+
- `issues[].severity`: `"critical"` | `"major"` | `"minor"`
|
|
33
|
+
- `issues[].field`: `"missionStatement"` | `"initialScope"` | `"both"`
|
|
34
|
+
- `readyToUse`: `true` when no critical issues AND score ≥ 75 AND mission names a user AND scope has ≥ 4 bullets
|
|
35
|
+
|
|
36
|
+
## Evaluation Criteria
|
|
37
|
+
|
|
38
|
+
### Mission Statement (50 points)
|
|
39
|
+
|
|
40
|
+
| Criterion | Points | Pass Condition |
|
|
41
|
+
|-----------|--------|----------------|
|
|
42
|
+
| Names a specific user type | 15 | E.g. "home cooks", "remote teams", "small business owners" — not just "users" |
|
|
43
|
+
| States clear value delivered | 15 | What the user gains, not what the product does technically |
|
|
44
|
+
| Specific enough to say no | 10 | Could you reject an unrelated feature based on this? |
|
|
45
|
+
| No forbidden content | 10 | No infrastructure tech (databases, frameworks, languages), no timelines, no revenue, no vague adjectives. User-facing platforms/channels (WhatsApp, Slack, Stripe, etc.) ARE allowed when the user explicitly named them and they define the product. |
|
|
46
|
+
|
|
47
|
+
### Initial Scope (50 points)
|
|
48
|
+
|
|
49
|
+
| Criterion | Points | Pass Condition |
|
|
50
|
+
|-----------|--------|----------------|
|
|
51
|
+
| 4–8 bullets | 10 | Exactly 4 to 8 bullet points |
|
|
52
|
+
| Verb-led bullets | 15 | Each bullet starts with an action verb or "Users can…" / "Admins can…" |
|
|
53
|
+
| v1 only — no phase 2 | 15 | No "future", "later", "roadmap", or obviously phase-2 features |
|
|
54
|
+
| No invented technology | 10 | No tech that the user did NOT explicitly name in their description. Tech the user explicitly named is allowed and should not be penalised. |
|
|
55
|
+
|
|
56
|
+
### Technology Faithfulness (up to 5 bonus points)
|
|
57
|
+
|
|
58
|
+
Technologies fall into two categories:
|
|
59
|
+
1. **User-facing platforms/channels** (WhatsApp, Slack, Shopify, Stripe, Twilio, Discord, etc.) — products/services end-users interact with that define what the product is
|
|
60
|
+
2. **Infrastructure/implementation tech** (PostgreSQL, React, Docker, DynamoDB, etc.) — tools/frameworks users never see
|
|
61
|
+
|
|
62
|
+
If the user explicitly named technologies in their description:
|
|
63
|
+
- **User-facing platforms** named by user should appear in BOTH mission and scope → award up to 3 bonus points. If silently dropped from mission → flag as major ("User's product is built around [X] but mission omits it — this hides the product's core identity")
|
|
64
|
+
- **Infrastructure tech** named by user should appear in scope only → award up to 2 bonus points. If silently dropped from scope → flag as minor ("User specified [X] but scope omits it")
|
|
65
|
+
|
|
66
|
+
## DO NOT Rules (flag as critical if violated)
|
|
67
|
+
|
|
68
|
+
- DO NOT mention infrastructure/implementation tech (databases, frameworks, languages) in the **mission statement** — flag as critical
|
|
69
|
+
- DO allow user-facing platforms/channels (WhatsApp, Slack, Stripe, etc.) in the **mission statement** when the user explicitly named them and they define the product — these must NOT be flagged
|
|
70
|
+
- DO NOT mention technologies in the **initial scope** that the user did NOT explicitly name in their description — flag as critical
|
|
71
|
+
- DO allow technologies in scope that the user explicitly named in their description — these are intentional and must NOT be flagged
|
|
72
|
+
- DO NOT include phase 2 or future roadmap items
|
|
73
|
+
- DO NOT mention timelines, team size, or delivery schedule
|
|
74
|
+
- DO NOT mention business model, pricing, or monetisation strategy
|
|
75
|
+
- DO NOT include non-functional requirements (performance SLAs, uptime percentages)
|
|
76
|
+
- DO NOT use vague adjectives: "world-class", "seamless", "revolutionary", "cutting-edge", "robust", "innovative"
|
|
77
|
+
- DO NOT add meta-commentary such as "This mission statement aims to…" or "Here is the scope:"
|
|
78
|
+
- DO NOT include competitive positioning or market analysis
|
|
79
|
+
|
|
80
|
+
## Severity Classification
|
|
81
|
+
|
|
82
|
+
**Critical** — violates a DO NOT rule or fundamentally breaks the structure (score 0 for that criterion)
|
|
83
|
+
**Major** — criterion partially met but needs significant improvement (score 50% for that criterion)
|
|
84
|
+
**Minor** — criterion nearly met, small improvement would help (score 75% for that criterion)
|
|
85
|
+
|
|
86
|
+
## Examples
|
|
87
|
+
|
|
88
|
+
### Good mission statement
|
|
89
|
+
"Help home cooks discover, save, and share recipes by building a community-driven platform where anyone can publish their own dishes and find inspiration from others."
|
|
90
|
+
- Names user: ✓ "home cooks"
|
|
91
|
+
- Clear value: ✓ discover, save, share recipes
|
|
92
|
+
- Specific: ✓ excludes unrelated features
|
|
93
|
+
- No forbidden: ✓
|
|
94
|
+
|
|
95
|
+
### Weak mission statement (needs improvement)
|
|
96
|
+
"Build a platform that helps users with cooking."
|
|
97
|
+
- Names user: ✗ "users" is too generic (major issue)
|
|
98
|
+
- Clear value: ✗ "helps with cooking" is vague (major issue)
|
|
99
|
+
|
|
100
|
+
### Good scope bullet (no tech named by user)
|
|
101
|
+
"Users can create and publish recipes with ingredients, steps, and photos"
|
|
102
|
+
- Verb-led: ✓
|
|
103
|
+
- Concrete: ✓
|
|
104
|
+
- v1 only: ✓
|
|
105
|
+
|
|
106
|
+
### Good scope bullet (user explicitly named the tech)
|
|
107
|
+
User said: "I want to use Firebase for authentication"
|
|
108
|
+
"Users can sign in via Firebase Authentication and access their saved recipes across devices"
|
|
109
|
+
- Tech allowed: ✓ (user named Firebase)
|
|
110
|
+
- Verb-led: ✓
|
|
111
|
+
- v1 only: ✓
|
|
112
|
+
|
|
113
|
+
### Bad scope bullet — invented tech (user never mentioned AI)
|
|
114
|
+
"Users can leverage AI to generate personalized recipe recommendations based on their preferences"
|
|
115
|
+
- Invented tech: ✗ (AI was not in the user's description — flag as critical)
|
|
116
|
+
|
|
117
|
+
### Bad scope bullet — phase 2
|
|
118
|
+
"Users can share recipes across social media platforms via third-party API integrations"
|
|
119
|
+
- Phase 2 scope: ✗
|
|
120
|
+
|
|
121
|
+
### Bad mission — infrastructure tech in mission (always wrong)
|
|
122
|
+
"Build a platform powered by PostgreSQL and React that helps users with cooking"
|
|
123
|
+
- Infra tech in mission: ✗ (PostgreSQL, React are implementation details, not user-facing)
|
|
124
|
+
|
|
125
|
+
### Good mission — user-facing platform in mission (correct when user named it)
|
|
126
|
+
User said: "a CRM built around WhatsApp messaging for small businesses"
|
|
127
|
+
"Enable small businesses to manage customer relationships and appointments through WhatsApp."
|
|
128
|
+
- User-facing platform in mission: ✓ (WhatsApp defines the product, user explicitly named it)
|
|
129
|
+
|
|
130
|
+
## Important Notes
|
|
131
|
+
|
|
132
|
+
- Return **only** the JSON object — no markdown fences, no preamble, no explanation
|
|
133
|
+
- Ensure the JSON is valid and parseable
|
|
134
|
+
- Be strict but fair: the goal is to produce genuinely useful output, not to find trivial faults
|
|
135
|
+
- If the mission and scope are excellent, say so — don't invent issues
|
|
136
|
+
- `improvementPriorities` lists the most impactful fixes, ordered by impact (highest first)
|
|
137
|
+
- `strengths` lists specific things done well (be concrete, not generic praise)
|
|
138
|
+
|
|
139
|
+
## CRITICAL: issues[] must contain ONLY actual remaining problems
|
|
140
|
+
|
|
141
|
+
- **NEVER** put resolution notes, fix confirmations, or "no issues found" entries in `issues[]`
|
|
142
|
+
- **NEVER** describe what a previous iteration changed or fixed — that is not an issue
|
|
143
|
+
- **NEVER** add entries like "The refinement was applied successfully" or "No action required"
|
|
144
|
+
- If there are no problems, `issues` **must be an empty array `[]`**
|
|
145
|
+
- Every entry in `issues[]` must describe a specific defect that **still exists** in the current text
|
|
146
|
+
- Positive observations belong in `strengths[]`, not `issues[]`
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
# Project Context Extractor Agent
|
|
2
|
+
|
|
3
|
+
You are an expert at analyzing software project documentation and extracting structured technical context. Your role is to read a project scope description and return a precise JSON object capturing the project's key characteristics that influence which domain experts should review its work items.
|
|
4
|
+
|
|
5
|
+
## Your Task
|
|
6
|
+
|
|
7
|
+
Analyze the provided project scope text and extract factual, evidence-based answers about the project's technical characteristics. Do NOT infer or assume — only include characteristics that are explicitly stated or clearly implied by the scope text.
|
|
8
|
+
|
|
9
|
+
## Scanning Procedure
|
|
10
|
+
|
|
11
|
+
Before filling any field, perform a two-pass scan of the COMPLETE scope text:
|
|
12
|
+
|
|
13
|
+
**Pass 1 — Technology enumeration (read entire document):**
|
|
14
|
+
Build an exhaustive list of every technology name encountered anywhere in the document, regardless of context: frameworks, languages, databases, ORMs, runtimes, bundlers, test frameworks, package managers, and infrastructure tools. Do not stop after the first few mentions. Technologies mentioned later in the document (in architecture, dependencies, or implementation sections) are equally valid as those in the introduction.
|
|
15
|
+
|
|
16
|
+
**Pass 2 — Field assignment:**
|
|
17
|
+
Use the enumerated list to fill the `techStack` array and all other fields according to their definitions below.
|
|
18
|
+
|
|
19
|
+
## Output Format
|
|
20
|
+
|
|
21
|
+
Return ONLY valid JSON with this exact structure:
|
|
22
|
+
|
|
23
|
+
```json
|
|
24
|
+
{
|
|
25
|
+
"deploymentType": "local|docker|kubernetes|serverless|cloud|hybrid",
|
|
26
|
+
"hasCloud": false,
|
|
27
|
+
"hasCI_CD": false,
|
|
28
|
+
"hasMobileApp": false,
|
|
29
|
+
"hasFrontend": true,
|
|
30
|
+
"hasPublicAPI": false,
|
|
31
|
+
"techStack": ["node.js", "react", "postgresql"],
|
|
32
|
+
"teamContext": "solo|small|medium|large",
|
|
33
|
+
"projectType": "web-application|api|mobile-app|data-pipeline|library|cli-tool|other",
|
|
34
|
+
"purpose": "1–2 sentence summary of the application's core purpose and primary value it delivers to users"
|
|
35
|
+
}
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Field Definitions
|
|
39
|
+
|
|
40
|
+
### deploymentType
|
|
41
|
+
- `"local"` — runs only on dev machines, no deployment infrastructure
|
|
42
|
+
- `"docker"` — containerized with Docker/Docker Compose, no cloud orchestration
|
|
43
|
+
- `"kubernetes"` — container orchestration via k8s or similar
|
|
44
|
+
- `"serverless"` — functions-as-a-service (Lambda, Cloud Functions, etc.)
|
|
45
|
+
- `"cloud"` — deployed to cloud provider (AWS, GCP, Azure, Vercel, Render, etc.)
|
|
46
|
+
- `"hybrid"` — mix of deployment targets
|
|
47
|
+
|
|
48
|
+
**If not mentioned**: default to `"local"`.
|
|
49
|
+
|
|
50
|
+
### hasCloud
|
|
51
|
+
`true` if the scope mentions: AWS, GCP, Azure, S3, RDS, Cloud Run, Vercel, Netlify, Render, DigitalOcean, or any cloud-hosted managed service. `false` otherwise.
|
|
52
|
+
|
|
53
|
+
### hasCI_CD
|
|
54
|
+
`true` if the scope mentions: CI/CD, GitHub Actions, Jenkins, CircleCI, GitLab CI, automated deployment pipelines, or continuous delivery. `false` otherwise.
|
|
55
|
+
|
|
56
|
+
### hasMobileApp
|
|
57
|
+
`true` if the scope includes a mobile application (iOS, Android, React Native, Flutter, Expo). `false` otherwise.
|
|
58
|
+
|
|
59
|
+
### hasFrontend
|
|
60
|
+
`true` if the scope includes a web UI, browser-based interface, dashboard, or any visual frontend. `false` for pure backend/API/CLI projects.
|
|
61
|
+
|
|
62
|
+
### hasPublicAPI
|
|
63
|
+
`true` if the scope explicitly mentions a public-facing API, third-party integrations consuming an API, or API documentation for external consumers. `false` for internal APIs only used between own services.
|
|
64
|
+
|
|
65
|
+
### techStack
|
|
66
|
+
Array of ALL technologies explicitly mentioned anywhere in the scope text. Scan the complete document — do not stop at the first mention. Use lowercase normalized names:
|
|
67
|
+
- "node.js", "express.js", "react", "vue.js", "angular", "next.js", "nuxt.js"
|
|
68
|
+
- "python", "django", "fastapi", "flask"
|
|
69
|
+
- "java", "spring boot", "go", "rust", "php", "laravel"
|
|
70
|
+
- "postgresql", "mysql", "mongodb", "redis", "sqlite"
|
|
71
|
+
- "docker", "kubernetes", "nginx", "rabbitmq", "kafka"
|
|
72
|
+
- "typescript", "graphql", "rest", "prisma", "drizzle"
|
|
73
|
+
|
|
74
|
+
Only include technologies explicitly named. Do not infer (e.g., do not add PostgreSQL if just "database" is mentioned, but DO add it if "PostgreSQL" or "pg" appears anywhere in the document).
|
|
75
|
+
|
|
76
|
+
### teamContext
|
|
77
|
+
- `"solo"` — one developer
|
|
78
|
+
- `"small"` — 2–5 developers
|
|
79
|
+
- `"medium"` — 6–20 developers
|
|
80
|
+
- `"large"` — 20+ developers
|
|
81
|
+
|
|
82
|
+
If not mentioned, default to `"small"`.
|
|
83
|
+
|
|
84
|
+
### projectType
|
|
85
|
+
- `"web-application"` — full-stack or frontend-heavy web app
|
|
86
|
+
- `"api"` — backend API service, no frontend
|
|
87
|
+
- `"mobile-app"` — primary interface is mobile
|
|
88
|
+
- `"data-pipeline"` — ETL, analytics, data processing
|
|
89
|
+
- `"library"` — npm package, SDK, or reusable library
|
|
90
|
+
- `"cli-tool"` — command-line interface tool
|
|
91
|
+
- `"other"` — does not fit above categories
|
|
92
|
+
|
|
93
|
+
### purpose
|
|
94
|
+
One to two sentences describing the application's core purpose and the primary value it delivers to users. Derive from the mission statement, overview section, or initial scope description. Be specific and concrete — name the domain (e.g. "CRM for SMBs", "appointment scheduling tool", "API gateway"). Do not use generic phrases like "a web application that helps users".
|
|
95
|
+
|
|
96
|
+
## Extraction Rules
|
|
97
|
+
|
|
98
|
+
1. **Evidence-based only** — if a characteristic is not mentioned, use the documented default, not a guess
|
|
99
|
+
2. **No hallucination** — never add technologies or characteristics not in the source text
|
|
100
|
+
3. **Conservative techStack** — only include clearly named technologies
|
|
101
|
+
4. **Return raw JSON** — no markdown code blocks, no explanation text, just the JSON object
|
|
102
|
+
|
|
103
|
+
## Example
|
|
104
|
+
|
|
105
|
+
**Input scope:**
|
|
106
|
+
> "A task management web application for a 3-person team. Built with React frontend, Node.js/Express backend, PostgreSQL database. Runs in Docker Compose locally. No deployment to cloud planned at this time."
|
|
107
|
+
|
|
108
|
+
**Output:**
|
|
109
|
+
```json
|
|
110
|
+
{
|
|
111
|
+
"deploymentType": "docker",
|
|
112
|
+
"hasCloud": false,
|
|
113
|
+
"hasCI_CD": false,
|
|
114
|
+
"hasMobileApp": false,
|
|
115
|
+
"hasFrontend": true,
|
|
116
|
+
"hasPublicAPI": false,
|
|
117
|
+
"techStack": ["react", "node.js", "express.js", "postgresql", "docker"],
|
|
118
|
+
"teamContext": "small",
|
|
119
|
+
"projectType": "web-application",
|
|
120
|
+
"purpose": "A task management web application for a 3-person team to organize and track work items with a React frontend and Node.js/Express backend."
|
|
121
|
+
}
|
|
122
|
+
```
|
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "verification-rules-v1",
|
|
3
|
+
"agent": "project-documentation-creator",
|
|
4
|
+
"description": "Post-processing verification for Project Brief documentation",
|
|
5
|
+
"model": "claude-sonnet-4-5",
|
|
6
|
+
"verifications": [
|
|
7
|
+
{
|
|
8
|
+
"id": "remove-status-and-timeline-references",
|
|
9
|
+
"name": "Remove Status and Timeline References",
|
|
10
|
+
"enabled": true,
|
|
11
|
+
"severity": "critical",
|
|
12
|
+
"description": "Remove all status fields, timeline references, and planning language. Documentation must be timeless.",
|
|
13
|
+
"fastPath": {
|
|
14
|
+
"enabled": false,
|
|
15
|
+
"type": "none"
|
|
16
|
+
},
|
|
17
|
+
"check": {
|
|
18
|
+
"prompt": "Check if content contains status fields, timeline references, or planning language.\n\nPROHIBITED PATTERNS:\n\n1. STATUS FIELDS:\n- Status: Planned / Initial Definition / In Progress / Completed\n- **Status**: any value\n- Priority: High / P1 / Must-have\n\n2. TIMELINE REFERENCES:\n- Phase 1 / Phase 2 / Milestone 3\n- Q1 2026 / January / Sprint 5\n- Version 1.0 / v2.0 / MVP\n- Initial release / Post-launch\n\n3. PLANNING LANGUAGE:\n- will be implemented / planned for / scheduled for\n- to be delivered / upcoming / future enhancement\n- roadmap includes / next iteration\n\n4. FUTURE TENSE:\n- will provide / will include / will support\n- is going to / are planned / once implemented\n\n5. TEMPORAL SEQUENCING:\n- initially / eventually / later / first / next\n- after deployment / when complete / upon release\n\nALLOWED (these are OK):\n- provides / includes / supports (present tense)\n- \"planned\" in legitimate context like \"well-planned architecture\"\n- \"phase\" in technical terms like \"two-phase commit\"\n\nCONTENT:\n{content}\n\nDoes content contain ANY prohibited patterns?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
19
|
+
"expectedResponse": "YES|NO",
|
|
20
|
+
"maxTokens": 10
|
|
21
|
+
},
|
|
22
|
+
"fix": {
|
|
23
|
+
"prompt": "Remove status fields, timeline references, and planning language. Convert to timeless present tense.\n\nREMOVAL RULES:\n\n1. REMOVE ENTIRE LINES containing:\n- Status: any value\n- Priority: any value\n- Phase/Milestone/Sprint references\n- Version/Release references (v1.0, MVP, etc.)\n- Timeline dates (Q1 2026, January, etc.)\n\n2. CONVERT FUTURE TENSE to PRESENT:\n- \"will provide\" → \"provides\"\n- \"will include\" → \"includes\"\n- \"will support\" → \"supports\"\n- \"is going to have\" → \"has\"\n\n3. REMOVE PLANNING PHRASES:\n- \"planned for\" → remove phrase, keep feature description\n- \"scheduled for release\" → remove phrase\n- \"to be implemented\" → remove phrase\n- \"upcoming feature\" → just \"feature\"\n- \"future enhancement\" → just describe the feature\n\n4. REMOVE TEMPORAL SEQUENCES:\n- \"Initially, the system...\" → \"The system...\"\n- \"Eventually, we will add...\" → \"The system includes...\"\n- \"First, users authenticate, then...\" → \"Users authenticate and...\"\n- \"After deployment, the feature...\" → \"The feature...\"\n\n5. REMOVE CONDITIONALS:\n- \"Once implemented, X will...\" → \"X provides...\"\n- \"When complete, the system...\" → \"The system...\"\n\nEXAMPLES:\n\nInput: \"Status: Planned\\n\\nThe system will provide authentication in Phase 2.\"\nOutput: \"The system provides authentication.\"\n\nInput: \"Once deployed, users will be able to login using OAuth.\"\nOutput: \"Users login using OAuth.\"\n\nInput: \"Initially, the MVP includes basic features. Eventually, we will add advanced analytics.\"\nOutput: \"The system includes basic features and advanced analytics.\"\n\nPRESERVE:\n- All technical specifications\n- All feature descriptions\n- All architecture details\n- Present tense statements\n- Technical uses of \"phase\" (two-phase commit) or \"version\" (API version)\n\nCONTENT:\n{content}\n\nReturn ONLY the cleaned content with:\n- All status/timeline references removed\n- All future tense converted to present\n- All planning language removed\n- Timeless, factual descriptions only",
|
|
24
|
+
"returnFormat": "text",
|
|
25
|
+
"maxTokens": 8192
|
|
26
|
+
},
|
|
27
|
+
"metadata": {
|
|
28
|
+
"category": "content",
|
|
29
|
+
"addedVersion": "0.1.2"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "enforce-present-tense",
|
|
34
|
+
"name": "Enforce Present Tense Throughout",
|
|
35
|
+
"enabled": true,
|
|
36
|
+
"severity": "major",
|
|
37
|
+
"description": "Ensure all system descriptions use present tense, not future",
|
|
38
|
+
"fastPath": {
|
|
39
|
+
"enabled": false,
|
|
40
|
+
"type": "none"
|
|
41
|
+
},
|
|
42
|
+
"check": {
|
|
43
|
+
"prompt": "Check if content uses future tense to describe system capabilities.\n\nFUTURE TENSE PATTERNS (prohibited):\n- will provide / will include / will support / will handle\n- will be / will have / will use / will enable\n- is going to / are going to / is planned to\n- shall provide / shall include (formal future)\n\nPRESENT TENSE PATTERNS (correct):\n- provides / includes / supports / handles\n- is / has / uses / enables\n\nCONTENT:\n{content}\n\nDoes content use future tense to describe system capabilities?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
44
|
+
"expectedResponse": "YES|NO",
|
|
45
|
+
"maxTokens": 10
|
|
46
|
+
},
|
|
47
|
+
"fix": {
|
|
48
|
+
"prompt": "Convert all future tense to present tense.\n\nCONVERSIONS:\n- \"will provide\" → \"provides\"\n- \"will include\" → \"includes\"\n- \"will support\" → \"supports\"\n- \"will handle\" → \"handles\"\n- \"will be\" → \"is\"\n- \"will have\" → \"has\"\n- \"will use\" → \"uses\"\n- \"will enable\" → \"enables\"\n- \"is going to provide\" → \"provides\"\n- \"are going to include\" → \"include\"\n- \"shall provide\" → \"provides\"\n\nRULES:\n- Convert ALL instances of future tense\n- Preserve technical accuracy\n- Maintain sentence structure\n- Fix grammar if needed after conversion\n\nEXAMPLES:\nInput: \"The API will provide RESTful endpoints for user management.\"\nOutput: \"The API provides RESTful endpoints for user management.\"\n\nInput: \"Users will be able to authenticate using OAuth 2.0.\"\nOutput: \"Users authenticate using OAuth 2.0.\"\n\nInput: \"The system is going to handle 10,000 concurrent users.\"\nOutput: \"The system handles 10,000 concurrent users.\"\n\nCONTENT:\n{content}\n\nReturn ONLY the content with all future tense converted to present.",
|
|
49
|
+
"returnFormat": "text",
|
|
50
|
+
"maxTokens": 8192
|
|
51
|
+
},
|
|
52
|
+
"metadata": {
|
|
53
|
+
"category": "content",
|
|
54
|
+
"addedVersion": "0.1.2"
|
|
55
|
+
}
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"id": "remove-bold-labels",
|
|
59
|
+
"name": "Convert Bold Labels to Headers",
|
|
60
|
+
"enabled": true,
|
|
61
|
+
"severity": "major",
|
|
62
|
+
"description": "Convert **Label**: text patterns to #### headers",
|
|
63
|
+
"check": {
|
|
64
|
+
"prompt": "Check if content contains bold label patterns: **Label**: text\n\nExamples: **Framework**: React, **Design Approach**: Custom\n\nCONTENT:\n{content}\n\nDoes this contain **Label**: text patterns?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
65
|
+
"expectedResponse": "YES|NO",
|
|
66
|
+
"maxTokens": 10
|
|
67
|
+
},
|
|
68
|
+
"fix": {
|
|
69
|
+
"prompt": "Convert all **Label**: text patterns to #### headers.\n\nConversion:\n**Label**: text\n→\n#### Label\ntext\n\nRules:\n- Convert ALL instances\n- Add blank line after text\n- Do NOT modify existing headers\n- Preserve all other content\n\nCONTENT:\n{content}\n\nReturn ONLY the converted content.",
|
|
70
|
+
"returnFormat": "text",
|
|
71
|
+
"maxTokens": 8192
|
|
72
|
+
},
|
|
73
|
+
"metadata": {
|
|
74
|
+
"category": "formatting",
|
|
75
|
+
"addedVersion": "0.1.2"
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"id": "remove-generic-placeholders",
|
|
80
|
+
"name": "Remove Generic Placeholders",
|
|
81
|
+
"enabled": true,
|
|
82
|
+
"severity": "critical",
|
|
83
|
+
"description": "Remove angle-bracket placeholders like <technology>",
|
|
84
|
+
"check": {
|
|
85
|
+
"prompt": "Check if content contains generic placeholders in angle brackets: <technology>, <framework>, <database>, etc.\n\nCONTENT:\n{content}\n\nDoes this contain <placeholder> patterns?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
86
|
+
"expectedResponse": "YES|NO",
|
|
87
|
+
"maxTokens": 10
|
|
88
|
+
},
|
|
89
|
+
"fix": {
|
|
90
|
+
"prompt": "Replace all <placeholder> patterns.\n\nStrategy:\n- Technical fields: Replace with 'To be determined based on project requirements'\n- In sentences: Remove and rephrase grammatically\n- Placeholder-only lines: Replace with 'Details to be specified during implementation'\n\nCONTENT:\n{content}\n\nReturn ONLY the cleaned content.",
|
|
91
|
+
"returnFormat": "text",
|
|
92
|
+
"maxTokens": 8192
|
|
93
|
+
},
|
|
94
|
+
"metadata": {
|
|
95
|
+
"category": "content",
|
|
96
|
+
"addedVersion": "0.1.2"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "fix-section-9-main-title",
|
|
101
|
+
"name": "Fix Section 9 Main Title",
|
|
102
|
+
"enabled": true,
|
|
103
|
+
"severity": "minor",
|
|
104
|
+
"description": "Ensure section 9 main header is '## 9. Success Metrics'",
|
|
105
|
+
"check": {
|
|
106
|
+
"prompt": "Check if section 9's MAIN HEADER (## 9. ...) is titled 'Success Metrics'.\n\nCorrect: ## 9. Success Metrics\nWrong: ## 9. Success Criteria, ## 9. Acceptance Criteria, ## 9. Definition of Done\n\nCONTENT:\n{content}\n\nIs section 9's main title WRONG?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
107
|
+
"expectedResponse": "YES|NO",
|
|
108
|
+
"maxTokens": 10
|
|
109
|
+
},
|
|
110
|
+
"fix": {
|
|
111
|
+
"prompt": "Change section 9's main header to '## 9. Success Metrics'.\n\nONLY change the main ## 9. header.\nDo NOT modify subsections (### headers).\nPreserve all content and formatting.\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected content.",
|
|
112
|
+
"returnFormat": "text",
|
|
113
|
+
"maxTokens": 8192
|
|
114
|
+
},
|
|
115
|
+
"metadata": {
|
|
116
|
+
"category": "structure",
|
|
117
|
+
"addedVersion": "0.1.2"
|
|
118
|
+
}
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"id": "fix-section-9-subsections",
|
|
122
|
+
"name": "Fix Section 9 Subsection Names",
|
|
123
|
+
"enabled": true,
|
|
124
|
+
"severity": "minor",
|
|
125
|
+
"description": "Ensure section 9 has correct subsection names",
|
|
126
|
+
"check": {
|
|
127
|
+
"prompt": "Check if section 9 has the correct subsection structure:\n- ### Key Outcomes\n- ### Technical Goals\n- ### User Experience Goals\n\nWrong names: 'Acceptance Criteria', 'Definition of Done'\n\nCONTENT:\n{content}\n\nDoes section 9 have WRONG or MISSING subsections?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
128
|
+
"expectedResponse": "YES|NO",
|
|
129
|
+
"maxTokens": 10
|
|
130
|
+
},
|
|
131
|
+
"fix": {
|
|
132
|
+
"prompt": "Fix section 9 subsections:\n\n1. Rename 'Acceptance Criteria' → 'Key Outcomes'\n2. Rename 'Definition of Done' → 'Technical Goals'\n3. Add '### User Experience Goals' if missing\n\nKeep all content under each subsection.\nONLY modify subsections in section 9.\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected content.",
|
|
133
|
+
"returnFormat": "text",
|
|
134
|
+
"maxTokens": 8192
|
|
135
|
+
},
|
|
136
|
+
"metadata": {
|
|
137
|
+
"category": "structure",
|
|
138
|
+
"addedVersion": "0.1.2"
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"id": "validate-header-hierarchy",
|
|
143
|
+
"name": "Fix Header Hierarchy",
|
|
144
|
+
"enabled": true,
|
|
145
|
+
"severity": "major",
|
|
146
|
+
"description": "Fix skipped header levels (e.g., ## followed by ####)",
|
|
147
|
+
"check": {
|
|
148
|
+
"prompt": "Check for skipped header levels.\n\nProper hierarchy: # → ## → ### → ####\nInvalid: ## followed directly by #### (skips ###)\n\nCONTENT:\n{content}\n\nAre there ANY skipped header levels?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
149
|
+
"expectedResponse": "YES|NO",
|
|
150
|
+
"maxTokens": 10
|
|
151
|
+
},
|
|
152
|
+
"fix": {
|
|
153
|
+
"prompt": "Fix header hierarchy by adjusting levels.\n\nEnsure proper nesting: # → ## → ### → ####\nNo skipped levels.\n\nStrategy:\n- Promote headers if needed (#### → ###)\n- Insert intermediate levels if needed\n- Adjust child headers if parent changes\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected content.",
|
|
154
|
+
"returnFormat": "text",
|
|
155
|
+
"maxTokens": 8192
|
|
156
|
+
},
|
|
157
|
+
"metadata": {
|
|
158
|
+
"category": "structure",
|
|
159
|
+
"addedVersion": "0.1.2"
|
|
160
|
+
}
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
"id": "remove-empty-sections",
|
|
164
|
+
"name": "Fill Empty Sections",
|
|
165
|
+
"enabled": true,
|
|
166
|
+
"severity": "minor",
|
|
167
|
+
"description": "Add placeholder text to empty sections",
|
|
168
|
+
"check": {
|
|
169
|
+
"prompt": "Check if document has empty sections (headers with no content under them).\n\nEmpty section: header followed immediately by another header or end of file.\n\nCONTENT:\n{content}\n\nAre there ANY empty sections?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
170
|
+
"expectedResponse": "YES|NO",
|
|
171
|
+
"maxTokens": 10
|
|
172
|
+
},
|
|
173
|
+
"fix": {
|
|
174
|
+
"prompt": "Add placeholder text to ALL empty sections.\n\nFor each empty section, add: 'To be determined'\n\nDo NOT remove sections.\nPreserve all non-empty sections.\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected content.",
|
|
175
|
+
"returnFormat": "text",
|
|
176
|
+
"maxTokens": 8192
|
|
177
|
+
},
|
|
178
|
+
"metadata": {
|
|
179
|
+
"category": "content",
|
|
180
|
+
"addedVersion": "0.1.2"
|
|
181
|
+
}
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"id": "no-meta-commentary",
|
|
185
|
+
"name": "Remove Meta-Commentary",
|
|
186
|
+
"enabled": true,
|
|
187
|
+
"severity": "major",
|
|
188
|
+
"description": "Remove document self-references like 'As mentioned above'",
|
|
189
|
+
"check": {
|
|
190
|
+
"prompt": "Check for meta-commentary phrases:\n- 'As mentioned above'\n- 'As discussed earlier'\n- 'In the next section'\n- 'See below'\n- 'The following section covers'\n\nCONTENT:\n{content}\n\nDoes this contain meta-commentary?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
191
|
+
"expectedResponse": "YES|NO",
|
|
192
|
+
"maxTokens": 10
|
|
193
|
+
},
|
|
194
|
+
"fix": {
|
|
195
|
+
"prompt": "Remove or rephrase ALL meta-commentary.\n\nStrategy:\n- Remove the phrase\n- Rephrase sentence to be direct and self-contained\n- Rewrite if removing makes it unclear\n\nExample:\n'As mentioned above, the system uses React.'\n→ 'The system uses React.'\n\nCONTENT:\n{content}\n\nReturn ONLY the corrected content.",
|
|
196
|
+
"returnFormat": "text",
|
|
197
|
+
"maxTokens": 8192
|
|
198
|
+
},
|
|
199
|
+
"metadata": {
|
|
200
|
+
"category": "content",
|
|
201
|
+
"addedVersion": "0.1.2"
|
|
202
|
+
}
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
"id": "no-emojis",
|
|
206
|
+
"name": "Remove Emojis",
|
|
207
|
+
"enabled": true,
|
|
208
|
+
"severity": "minor",
|
|
209
|
+
"description": "Remove emoji characters from documentation",
|
|
210
|
+
"check": {
|
|
211
|
+
"prompt": "Check for emoji characters: 🚀 ✅ ❌ 📋 🎯 💡 etc.\n\nCONTENT:\n{content}\n\nDoes this contain emojis?\n\nRespond ONLY 'YES' or 'NO'.",
|
|
212
|
+
"expectedResponse": "YES|NO",
|
|
213
|
+
"maxTokens": 10
|
|
214
|
+
},
|
|
215
|
+
"fix": {
|
|
216
|
+
"prompt": "Remove ALL emoji characters.\n\nRules:\n- Remove emoji and space if at start of line ('✅ Item' → 'Item')\n- Remove emoji inline but preserve sentence structure\n- Do NOT modify emoji shortcodes like ':smile:'\n\nCONTENT:\n{content}\n\nReturn ONLY the cleaned content.",
|
|
217
|
+
"returnFormat": "text",
|
|
218
|
+
"maxTokens": 8192
|
|
219
|
+
},
|
|
220
|
+
"metadata": {
|
|
221
|
+
"category": "formatting",
|
|
222
|
+
"addedVersion": "0.1.2"
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
]
|
|
226
|
+
}
|