baldart 3.6.2
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/CHANGELOG.md +599 -0
- package/README.md +566 -0
- package/VERSION +1 -0
- package/bin/baldart.js +143 -0
- package/framework/.claude/agents/REGISTRY.md +169 -0
- package/framework/.claude/agents/api-perf-cost-auditor.md +291 -0
- package/framework/.claude/agents/code-reviewer.md +350 -0
- package/framework/.claude/agents/codebase-architect.md +391 -0
- package/framework/.claude/agents/coder.md +291 -0
- package/framework/.claude/agents/deep-human-insight.md +198 -0
- package/framework/.claude/agents/doc-reviewer.md +440 -0
- package/framework/.claude/agents/email-deliverability-architect.md +193 -0
- package/framework/.claude/agents/hybrid-ml-architect.md +285 -0
- package/framework/.claude/agents/hyper-gamification-designer.md +149 -0
- package/framework/.claude/agents/legal-counsel-gdpr.md +179 -0
- package/framework/.claude/agents/marketing-conversion-strategist.md +162 -0
- package/framework/.claude/agents/motion-expert.md +108 -0
- package/framework/.claude/agents/onboarding-architect-lead.md +230 -0
- package/framework/.claude/agents/plan-auditor.md +546 -0
- package/framework/.claude/agents/prd-card-writer.md +372 -0
- package/framework/.claude/agents/prd.md +744 -0
- package/framework/.claude/agents/qa-sentinel.md +305 -0
- package/framework/.claude/agents/remotion-animator-orchestrator.md +218 -0
- package/framework/.claude/agents/security-reviewer.md +276 -0
- package/framework/.claude/agents/senior-researcher.md +175 -0
- package/framework/.claude/agents/seo-analytics-strategist.md +156 -0
- package/framework/.claude/agents/skill-improver.md +61 -0
- package/framework/.claude/agents/ui-expert.md +191 -0
- package/framework/.claude/agents/visual-designer.md +190 -0
- package/framework/.claude/agents/website-orchestrator.md +118 -0
- package/framework/.claude/agents/wiki-curator.md +145 -0
- package/framework/.claude/commands/baldart-push.md +15 -0
- package/framework/.claude/commands/check.md +237 -0
- package/framework/.claude/commands/codexreview.md +203 -0
- package/framework/.claude/commands/design-review.md +11 -0
- package/framework/.claude/commands/issue-review.md +34 -0
- package/framework/.claude/commands/new.md +331 -0
- package/framework/.claude/commands/qa.md +257 -0
- package/framework/.claude/hooks/framework-edit-gate.js +208 -0
- package/framework/.claude/hooks/lint-before-commit.sh.template +66 -0
- package/framework/.claude/settings.local.json.example +32 -0
- package/framework/.claude/skills/api-design-principles/SKILL.md +567 -0
- package/framework/.claude/skills/api-design-principles/assets/api-design-checklist.md +155 -0
- package/framework/.claude/skills/api-design-principles/assets/rest-api-template.py +182 -0
- package/framework/.claude/skills/api-design-principles/references/graphql-schema-design.md +583 -0
- package/framework/.claude/skills/api-design-principles/references/rest-best-practices.md +408 -0
- package/framework/.claude/skills/baldart-push/SKILL.md +222 -0
- package/framework/.claude/skills/bug/SKILL.md +200 -0
- package/framework/.claude/skills/bug/references/logging-patterns.md +174 -0
- package/framework/.claude/skills/capture/SKILL.md +125 -0
- package/framework/.claude/skills/capture/references/synthesis-template.md +42 -0
- package/framework/.claude/skills/context-primer/SKILL.md +189 -0
- package/framework/.claude/skills/copywriting/SKILL.md +273 -0
- package/framework/.claude/skills/copywriting/references/copy-frameworks.md +338 -0
- package/framework/.claude/skills/copywriting/references/natural-transitions.md +252 -0
- package/framework/.claude/skills/doc-writing-for-rag/SKILL.md +119 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/before-after-examples.md +291 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/compact-templates.md +183 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/frontmatter-minimal.md +112 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/line-count-targets.md +110 -0
- package/framework/.claude/skills/doc-writing-for-rag/references/schemas-and-errors.md +129 -0
- package/framework/.claude/skills/find-skills/SKILL.md +133 -0
- package/framework/.claude/skills/frontend-design/LICENSE.txt +177 -0
- package/framework/.claude/skills/frontend-design/SKILL.md +84 -0
- package/framework/.claude/skills/gamification-design/SKILL.md +130 -0
- package/framework/.claude/skills/issue-review/SKILL.md +45 -0
- package/framework/.claude/skills/kie-ai/SKILL.md +262 -0
- package/framework/.claude/skills/kie-ai/references/models-catalog.md +272 -0
- package/framework/.claude/skills/kie-ai/scripts/kie_api.sh +209 -0
- package/framework/.claude/skills/kie-ai/scripts/remove_greenscreen.py +69 -0
- package/framework/.claude/skills/kie-ai/scripts/setup_api_key.sh +77 -0
- package/framework/.claude/skills/motion-design/LICENSE +21 -0
- package/framework/.claude/skills/motion-design/README.md +82 -0
- package/framework/.claude/skills/motion-design/SKILL.md +336 -0
- package/framework/.claude/skills/motion-design/director/choreography.md +93 -0
- package/framework/.claude/skills/motion-design/director/context-adaptation.md +83 -0
- package/framework/.claude/skills/motion-design/director/core-philosophy.md +53 -0
- package/framework/.claude/skills/motion-design/director/decision-framework.md +91 -0
- package/framework/.claude/skills/motion-design/director/disney-principles.md +102 -0
- package/framework/.claude/skills/motion-design/director/emotion-mapping.md +71 -0
- package/framework/.claude/skills/motion-design/director/motion-personality.md +89 -0
- package/framework/.claude/skills/motion-design/director/narrative-structure.md +62 -0
- package/framework/.claude/skills/motion-design/patterns/ambient-continuous.md +81 -0
- package/framework/.claude/skills/motion-design/patterns/entrance-exit.md +82 -0
- package/framework/.claude/skills/motion-design/patterns/multi-element.md +69 -0
- package/framework/.claude/skills/motion-design/patterns/state-feedback.md +96 -0
- package/framework/.claude/skills/motion-design/reference/property-selection.md +95 -0
- package/framework/.claude/skills/motion-design/reference/quality-checklist.md +67 -0
- package/framework/.claude/skills/motion-design/reference/timing-easing-tables.md +106 -0
- package/framework/.claude/skills/motion-design/reference/troubleshooting.md +73 -0
- package/framework/.claude/skills/new/SKILL.md +1687 -0
- package/framework/.claude/skills/playwright-skill/API_REFERENCE.md +652 -0
- package/framework/.claude/skills/playwright-skill/SKILL.md +157 -0
- package/framework/.claude/skills/playwright-skill/package.json +26 -0
- package/framework/.claude/skills/prd/SKILL.md +228 -0
- package/framework/.claude/skills/prd/assets/card-template.yml +232 -0
- package/framework/.claude/skills/prd/assets/epic-template.yml +190 -0
- package/framework/.claude/skills/prd/assets/prd-template.md +230 -0
- package/framework/.claude/skills/prd/assets/state-template.md +78 -0
- package/framework/.claude/skills/prd/references/api-perf-gate.md +152 -0
- package/framework/.claude/skills/prd/references/audit-phase.md +478 -0
- package/framework/.claude/skills/prd/references/backlog-phase.md +145 -0
- package/framework/.claude/skills/prd/references/discovery-phase.md +359 -0
- package/framework/.claude/skills/prd/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/prd/references/prd-add-phase.md +214 -0
- package/framework/.claude/skills/prd/references/prd-writing-phase.md +145 -0
- package/framework/.claude/skills/prd/references/research-phase.md +216 -0
- package/framework/.claude/skills/prd/references/ui-design-phase.md +61 -0
- package/framework/.claude/skills/prd/references/validation-phase.md +72 -0
- package/framework/.claude/skills/prd-add/SKILL.md +222 -0
- package/framework/.claude/skills/prd-add/references/impact-analysis.md +233 -0
- package/framework/.claude/skills/remotion-best-practices/SKILL.md +48 -0
- package/framework/.claude/skills/remotion-best-practices/rules/3d.md +86 -0
- package/framework/.claude/skills/remotion-best-practices/rules/animations.md +29 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/charts-bar-chart.tsx +173 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-typewriter.tsx +100 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.tsx +108 -0
- package/framework/.claude/skills/remotion-best-practices/rules/assets.md +78 -0
- package/framework/.claude/skills/remotion-best-practices/rules/audio.md +169 -0
- package/framework/.claude/skills/remotion-best-practices/rules/calculate-metadata.md +104 -0
- package/framework/.claude/skills/remotion-best-practices/rules/can-decode.md +75 -0
- package/framework/.claude/skills/remotion-best-practices/rules/charts.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/compositions.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/display-captions.md +184 -0
- package/framework/.claude/skills/remotion-best-practices/rules/extract-frames.md +229 -0
- package/framework/.claude/skills/remotion-best-practices/rules/fonts.md +152 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-audio-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-dimensions.md +68 -0
- package/framework/.claude/skills/remotion-best-practices/rules/get-video-duration.md +58 -0
- package/framework/.claude/skills/remotion-best-practices/rules/gifs.md +141 -0
- package/framework/.claude/skills/remotion-best-practices/rules/images.md +130 -0
- package/framework/.claude/skills/remotion-best-practices/rules/import-srt-captions.md +69 -0
- package/framework/.claude/skills/remotion-best-practices/rules/light-leaks.md +73 -0
- package/framework/.claude/skills/remotion-best-practices/rules/lottie.md +67 -0
- package/framework/.claude/skills/remotion-best-practices/rules/maps.md +401 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-dom-nodes.md +34 -0
- package/framework/.claude/skills/remotion-best-practices/rules/measuring-text.md +143 -0
- package/framework/.claude/skills/remotion-best-practices/rules/parameters.md +98 -0
- package/framework/.claude/skills/remotion-best-practices/rules/sequencing.md +118 -0
- package/framework/.claude/skills/remotion-best-practices/rules/subtitles.md +36 -0
- package/framework/.claude/skills/remotion-best-practices/rules/tailwind.md +11 -0
- package/framework/.claude/skills/remotion-best-practices/rules/text-animations.md +20 -0
- package/framework/.claude/skills/remotion-best-practices/rules/timing.md +179 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transcribe-captions.md +70 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transitions.md +197 -0
- package/framework/.claude/skills/remotion-best-practices/rules/transparent-videos.md +106 -0
- package/framework/.claude/skills/remotion-best-practices/rules/trimming.md +52 -0
- package/framework/.claude/skills/remotion-best-practices/rules/videos.md +171 -0
- package/framework/.claude/skills/seo-audit/SKILL.md +394 -0
- package/framework/.claude/skills/seo-audit/references/aeo-geo-patterns.md +279 -0
- package/framework/.claude/skills/seo-audit/references/ai-writing-detection.md +190 -0
- package/framework/.claude/skills/simplify/SKILL.md +137 -0
- package/framework/.claude/skills/skill-creator/LICENSE.txt +202 -0
- package/framework/.claude/skills/skill-creator/SKILL.md +356 -0
- package/framework/.claude/skills/skill-creator/references/output-patterns.md +82 -0
- package/framework/.claude/skills/skill-creator/references/workflows.md +28 -0
- package/framework/.claude/skills/skill-creator/scripts/init_skill.py +303 -0
- package/framework/.claude/skills/skill-creator/scripts/package_skill.py +110 -0
- package/framework/.claude/skills/skill-creator/scripts/quick_validate.py +95 -0
- package/framework/.claude/skills/ui-design/SKILL.md +199 -0
- package/framework/.claude/skills/ui-design/references/component-discovery.md +54 -0
- package/framework/.claude/skills/ui-design/references/evaluation.md +171 -0
- package/framework/.claude/skills/ui-design/references/generation.md +109 -0
- package/framework/.claude/skills/ui-design/references/inventory.md +59 -0
- package/framework/.claude/skills/webapp-testing/LICENSE.txt +202 -0
- package/framework/.claude/skills/webapp-testing/SKILL.md +123 -0
- package/framework/.claude/skills/webapp-testing/examples/console_logging.py +35 -0
- package/framework/.claude/skills/webapp-testing/examples/element_discovery.py +40 -0
- package/framework/.claude/skills/webapp-testing/examples/static_html_automation.py +33 -0
- package/framework/.claude/skills/webapp-testing/scripts/with_server.py +106 -0
- package/framework/.claude/skills/worktree-manager/SKILL.md +680 -0
- package/framework/AGENTS.md +240 -0
- package/framework/agents/api-contracts.md +137 -0
- package/framework/agents/architecture.md +145 -0
- package/framework/agents/coding-standards.md +148 -0
- package/framework/agents/data-model.md +110 -0
- package/framework/agents/deployment-protocol.md +232 -0
- package/framework/agents/design-review.md +172 -0
- package/framework/agents/env-reference.md +171 -0
- package/framework/agents/github-issue-subagent.md +252 -0
- package/framework/agents/index.md +261 -0
- package/framework/agents/llm-wiki-methodology.md +216 -0
- package/framework/agents/maintenance-protocol.md +305 -0
- package/framework/agents/observability.md +162 -0
- package/framework/agents/performance.md +155 -0
- package/framework/agents/project-context.md +145 -0
- package/framework/agents/runbook.md +208 -0
- package/framework/agents/security.md +168 -0
- package/framework/agents/skills-mapping.md +286 -0
- package/framework/agents/testing.md +111 -0
- package/framework/agents/workflows.md +215 -0
- package/framework/docs/PROJECT-CONFIGURATION.md +336 -0
- package/framework/docs/references/brand-guidelines.md +170 -0
- package/framework/docs/references/ui-guidelines.template.md +182 -0
- package/framework/routines/code-review.routine.yml +46 -0
- package/framework/routines/doc-review.routine.yml +45 -0
- package/framework/routines/ds-drift.routine.yml +52 -0
- package/framework/routines/full-sweep.routine.yml +51 -0
- package/framework/routines/index.yml +70 -0
- package/framework/routines/skill-improve.routine.yml +50 -0
- package/framework/routines/wiki-review.routine.yml +45 -0
- package/framework/templates/baldart.config.template.yml +113 -0
- package/framework/templates/breaking-change-checklist.md +484 -0
- package/framework/templates/feature-card.template.yml +125 -0
- package/framework/templates/overlays/README.md +44 -0
- package/framework/templates/overlays/copywriting.fidelity-example.md +62 -0
- package/framework/templates/overlays/ui-design.fidelity-example.md +75 -0
- package/framework/templates/skill-project-context.snippet.md +19 -0
- package/framework/templates/spec.template.md +208 -0
- package/package.json +51 -0
- package/src/commands/add.js +229 -0
- package/src/commands/configure.js +385 -0
- package/src/commands/doctor.js +486 -0
- package/src/commands/migrate.js +185 -0
- package/src/commands/push.js +0 -0
- package/src/commands/routines.js +269 -0
- package/src/commands/status.js +130 -0
- package/src/commands/update.js +419 -0
- package/src/commands/version.js +88 -0
- package/src/utils/contamination.js +400 -0
- package/src/utils/git.js +181 -0
- package/src/utils/hooks.js +152 -0
- package/src/utils/routine-adapters/claude-code-cloud.js +78 -0
- package/src/utils/routine-adapters/cron.js +138 -0
- package/src/utils/routine-adapters/github-actions.js +141 -0
- package/src/utils/routine-adapters/index.js +21 -0
- package/src/utils/routines.js +166 -0
- package/src/utils/state.js +143 -0
- package/src/utils/symlinks.js +425 -0
- package/src/utils/ui.js +133 -0
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
# AEO and GEO Content Patterns
|
|
2
|
+
|
|
3
|
+
Reusable content block patterns optimized for answer engines and AI citation.
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Answer Engine Optimization (AEO) Patterns
|
|
8
|
+
|
|
9
|
+
These patterns help content appear in featured snippets, AI Overviews, voice search results, and answer boxes.
|
|
10
|
+
|
|
11
|
+
### Definition Block
|
|
12
|
+
|
|
13
|
+
Use for "What is [X]?" queries.
|
|
14
|
+
|
|
15
|
+
```markdown
|
|
16
|
+
## What is [Term]?
|
|
17
|
+
|
|
18
|
+
[Term] is [concise 1-sentence definition]. [Expanded 1-2 sentence explanation with key characteristics]. [Brief context on why it matters or how it's used].
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
**Example:**
|
|
22
|
+
```markdown
|
|
23
|
+
## What is Answer Engine Optimization?
|
|
24
|
+
|
|
25
|
+
Answer Engine Optimization (AEO) is the practice of structuring content so AI-powered systems can easily extract and present it as direct answers to user queries. Unlike traditional SEO that focuses on ranking in search results, AEO optimizes for featured snippets, AI Overviews, and voice assistant responses. This approach has become essential as over 60% of Google searches now end without a click.
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
### Step-by-Step Block
|
|
29
|
+
|
|
30
|
+
Use for "How to [X]" queries. Optimal for list snippets.
|
|
31
|
+
|
|
32
|
+
```markdown
|
|
33
|
+
## How to [Action/Goal]
|
|
34
|
+
|
|
35
|
+
[1-sentence overview of the process]
|
|
36
|
+
|
|
37
|
+
1. **[Step Name]**: [Clear action description in 1-2 sentences]
|
|
38
|
+
2. **[Step Name]**: [Clear action description in 1-2 sentences]
|
|
39
|
+
3. **[Step Name]**: [Clear action description in 1-2 sentences]
|
|
40
|
+
4. **[Step Name]**: [Clear action description in 1-2 sentences]
|
|
41
|
+
5. **[Step Name]**: [Clear action description in 1-2 sentences]
|
|
42
|
+
|
|
43
|
+
[Optional: Brief note on expected outcome or time estimate]
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
**Example:**
|
|
47
|
+
```markdown
|
|
48
|
+
## How to Optimize Content for Featured Snippets
|
|
49
|
+
|
|
50
|
+
Earning featured snippets requires strategic formatting and direct answers to search queries.
|
|
51
|
+
|
|
52
|
+
1. **Identify snippet opportunities**: Use tools like Semrush or Ahrefs to find keywords where competitors have snippets you could capture.
|
|
53
|
+
2. **Match the snippet format**: Analyze whether the current snippet is a paragraph, list, or table, and format your content accordingly.
|
|
54
|
+
3. **Answer the question directly**: Provide a clear, concise answer (40-60 words for paragraph snippets) immediately after the question heading.
|
|
55
|
+
4. **Add supporting context**: Expand on your answer with examples, data, and expert insights in the following paragraphs.
|
|
56
|
+
5. **Use proper heading structure**: Place your target question as an H2 or H3, with the answer immediately following.
|
|
57
|
+
|
|
58
|
+
Most featured snippets appear within 2-4 weeks of publishing well-optimized content.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Comparison Table Block
|
|
62
|
+
|
|
63
|
+
Use for "[X] vs [Y]" queries. Optimal for table snippets.
|
|
64
|
+
|
|
65
|
+
```markdown
|
|
66
|
+
## [Option A] vs [Option B]: [Brief Descriptor]
|
|
67
|
+
|
|
68
|
+
| Feature | [Option A] | [Option B] |
|
|
69
|
+
|---------|------------|------------|
|
|
70
|
+
| [Criteria 1] | [Value/Description] | [Value/Description] |
|
|
71
|
+
| [Criteria 2] | [Value/Description] | [Value/Description] |
|
|
72
|
+
| [Criteria 3] | [Value/Description] | [Value/Description] |
|
|
73
|
+
| [Criteria 4] | [Value/Description] | [Value/Description] |
|
|
74
|
+
| Best For | [Use case] | [Use case] |
|
|
75
|
+
|
|
76
|
+
**Bottom line**: [1-2 sentence recommendation based on different needs]
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
### Pros and Cons Block
|
|
80
|
+
|
|
81
|
+
Use for evaluation queries: "Is [X] worth it?", "Should I [X]?"
|
|
82
|
+
|
|
83
|
+
```markdown
|
|
84
|
+
## Advantages and Disadvantages of [Topic]
|
|
85
|
+
|
|
86
|
+
[1-sentence overview of the evaluation context]
|
|
87
|
+
|
|
88
|
+
### Pros
|
|
89
|
+
|
|
90
|
+
- **[Benefit category]**: [Specific explanation]
|
|
91
|
+
- **[Benefit category]**: [Specific explanation]
|
|
92
|
+
- **[Benefit category]**: [Specific explanation]
|
|
93
|
+
|
|
94
|
+
### Cons
|
|
95
|
+
|
|
96
|
+
- **[Drawback category]**: [Specific explanation]
|
|
97
|
+
- **[Drawback category]**: [Specific explanation]
|
|
98
|
+
- **[Drawback category]**: [Specific explanation]
|
|
99
|
+
|
|
100
|
+
**Verdict**: [1-2 sentence balanced conclusion with recommendation]
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
### FAQ Block
|
|
104
|
+
|
|
105
|
+
Use for topic pages with multiple common questions. Essential for FAQ schema.
|
|
106
|
+
|
|
107
|
+
```markdown
|
|
108
|
+
## Frequently Asked Questions
|
|
109
|
+
|
|
110
|
+
### [Question phrased exactly as users search]?
|
|
111
|
+
|
|
112
|
+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
|
113
|
+
|
|
114
|
+
### [Question phrased exactly as users search]?
|
|
115
|
+
|
|
116
|
+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
|
117
|
+
|
|
118
|
+
### [Question phrased exactly as users search]?
|
|
119
|
+
|
|
120
|
+
[Direct answer in first sentence]. [Supporting context in 2-3 additional sentences].
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
**Tips for FAQ questions:**
|
|
124
|
+
- Use natural question phrasing ("How do I..." not "How does one...")
|
|
125
|
+
- Include question words: what, how, why, when, where, who, which
|
|
126
|
+
- Match "People Also Ask" queries from search results
|
|
127
|
+
- Keep answers between 50-100 words
|
|
128
|
+
|
|
129
|
+
### Listicle Block
|
|
130
|
+
|
|
131
|
+
Use for "Best [X]", "Top [X]", "[Number] ways to [X]" queries.
|
|
132
|
+
|
|
133
|
+
```markdown
|
|
134
|
+
## [Number] Best [Items] for [Goal/Purpose]
|
|
135
|
+
|
|
136
|
+
[1-2 sentence intro establishing context and selection criteria]
|
|
137
|
+
|
|
138
|
+
### 1. [Item Name]
|
|
139
|
+
|
|
140
|
+
[Why it's included in 2-3 sentences with specific benefits]
|
|
141
|
+
|
|
142
|
+
### 2. [Item Name]
|
|
143
|
+
|
|
144
|
+
[Why it's included in 2-3 sentences with specific benefits]
|
|
145
|
+
|
|
146
|
+
### 3. [Item Name]
|
|
147
|
+
|
|
148
|
+
[Why it's included in 2-3 sentences with specific benefits]
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## Generative Engine Optimization (GEO) Patterns
|
|
154
|
+
|
|
155
|
+
These patterns optimize content for citation by AI assistants like ChatGPT, Claude, Perplexity, and Gemini.
|
|
156
|
+
|
|
157
|
+
### Statistic Citation Block
|
|
158
|
+
|
|
159
|
+
Statistics increase AI citation rates by 15-30%. Always include sources.
|
|
160
|
+
|
|
161
|
+
```markdown
|
|
162
|
+
[Claim statement]. According to [Source/Organization], [specific statistic with number and timeframe]. [Context for why this matters].
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
**Example:**
|
|
166
|
+
```markdown
|
|
167
|
+
Mobile optimization is no longer optional for SEO success. According to Google's 2024 Core Web Vitals report, 70% of web traffic now comes from mobile devices, and pages failing mobile usability standards see 24% higher bounce rates. This makes mobile-first indexing a critical ranking factor.
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
### Expert Quote Block
|
|
171
|
+
|
|
172
|
+
Named expert attribution adds credibility and increases citation likelihood.
|
|
173
|
+
|
|
174
|
+
```markdown
|
|
175
|
+
"[Direct quote from expert]," says [Expert Name], [Title/Role] at [Organization]. [1 sentence of context or interpretation].
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
**Example:**
|
|
179
|
+
```markdown
|
|
180
|
+
"The shift from keyword-driven search to intent-driven discovery represents the most significant change in SEO since mobile-first indexing," says Rand Fishkin, Co-founder of SparkToro. This perspective highlights why content strategies must evolve beyond traditional keyword optimization.
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Authoritative Claim Block
|
|
184
|
+
|
|
185
|
+
Structure claims for easy AI extraction with clear attribution.
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
[Topic] [verb: is/has/requires/involves] [clear, specific claim]. [Source] [confirms/reports/found] that [supporting evidence]. This [explains/means/suggests] [implication or action].
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
**Example:**
|
|
192
|
+
```markdown
|
|
193
|
+
E-E-A-T is the cornerstone of Google's content quality evaluation. Google's Search Quality Rater Guidelines confirm that trust is the most critical factor, stating that "untrustworthy pages have low E-E-A-T no matter how experienced, expert, or authoritative they may seem." This means content creators must prioritize transparency and accuracy above all other optimization tactics.
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### Self-Contained Answer Block
|
|
197
|
+
|
|
198
|
+
Create quotable, standalone statements that AI can extract directly.
|
|
199
|
+
|
|
200
|
+
```markdown
|
|
201
|
+
**[Topic/Question]**: [Complete, self-contained answer that makes sense without additional context. Include specific details, numbers, or examples in 2-3 sentences.]
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
**Example:**
|
|
205
|
+
```markdown
|
|
206
|
+
**Ideal blog post length for SEO**: The optimal length for SEO blog posts is 1,500-2,500 words for competitive topics. This range allows comprehensive topic coverage while maintaining reader engagement. HubSpot research shows long-form content earns 77% more backlinks than short articles, directly impacting search rankings.
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
### Evidence Sandwich Block
|
|
210
|
+
|
|
211
|
+
Structure claims with evidence for maximum credibility.
|
|
212
|
+
|
|
213
|
+
```markdown
|
|
214
|
+
[Opening claim statement].
|
|
215
|
+
|
|
216
|
+
Evidence supporting this includes:
|
|
217
|
+
- [Data point 1 with source]
|
|
218
|
+
- [Data point 2 with source]
|
|
219
|
+
- [Data point 3 with source]
|
|
220
|
+
|
|
221
|
+
[Concluding statement connecting evidence to actionable insight].
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## Domain-Specific GEO Tactics
|
|
227
|
+
|
|
228
|
+
Different content domains benefit from different authority signals.
|
|
229
|
+
|
|
230
|
+
### Technology Content
|
|
231
|
+
- Emphasize technical precision and correct terminology
|
|
232
|
+
- Include version numbers and dates for software/tools
|
|
233
|
+
- Reference official documentation
|
|
234
|
+
- Add code examples where relevant
|
|
235
|
+
|
|
236
|
+
### Health/Medical Content
|
|
237
|
+
- Cite peer-reviewed studies with publication details
|
|
238
|
+
- Include expert credentials (MD, RN, etc.)
|
|
239
|
+
- Note study limitations and context
|
|
240
|
+
- Add "last reviewed" dates
|
|
241
|
+
|
|
242
|
+
### Financial Content
|
|
243
|
+
- Reference regulatory bodies (SEC, FTC, etc.)
|
|
244
|
+
- Include specific numbers with timeframes
|
|
245
|
+
- Note that information is educational, not advice
|
|
246
|
+
- Cite recognized financial institutions
|
|
247
|
+
|
|
248
|
+
### Legal Content
|
|
249
|
+
- Cite specific laws, statutes, and regulations
|
|
250
|
+
- Reference jurisdiction clearly
|
|
251
|
+
- Include professional disclaimers
|
|
252
|
+
- Note when professional consultation is advised
|
|
253
|
+
|
|
254
|
+
### Business/Marketing Content
|
|
255
|
+
- Include case studies with measurable results
|
|
256
|
+
- Reference industry research and reports
|
|
257
|
+
- Add percentage changes and timeframes
|
|
258
|
+
- Quote recognized thought leaders
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Voice Search Optimization
|
|
263
|
+
|
|
264
|
+
Voice queries are conversational and question-based. Optimize for these patterns:
|
|
265
|
+
|
|
266
|
+
### Question Formats for Voice
|
|
267
|
+
- "What is..."
|
|
268
|
+
- "How do I..."
|
|
269
|
+
- "Where can I find..."
|
|
270
|
+
- "Why does..."
|
|
271
|
+
- "When should I..."
|
|
272
|
+
- "Who is..."
|
|
273
|
+
|
|
274
|
+
### Voice-Optimized Answer Structure
|
|
275
|
+
- Lead with direct answer (under 30 words ideal)
|
|
276
|
+
- Use natural, conversational language
|
|
277
|
+
- Avoid jargon unless targeting expert audience
|
|
278
|
+
- Include local context where relevant
|
|
279
|
+
- Structure for single spoken response
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
# AI Writing Detection
|
|
2
|
+
|
|
3
|
+
Words, phrases, and punctuation patterns commonly associated with AI-generated text. Avoid these to ensure writing sounds natural and human.
|
|
4
|
+
|
|
5
|
+
Sources: Grammarly (2025), Microsoft 365 Life Hacks (2025), GPTHuman (2025), Walter Writes (2025), Textero (2025), Plagiarism Today (2025), Rolling Stone (2025), MDPI Blog (2025)
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## Em Dashes: The Primary AI Tell
|
|
10
|
+
|
|
11
|
+
**The em dash (—) has become one of the most reliable markers of AI-generated content.**
|
|
12
|
+
|
|
13
|
+
Em dashes are longer than hyphens (-) and are used for emphasis, interruptions, or parenthetical information. While they have legitimate uses in writing, AI models drastically overuse them.
|
|
14
|
+
|
|
15
|
+
### Why Em Dashes Signal AI Writing
|
|
16
|
+
- AI models were trained on edited books, academic papers, and style guides where em dashes appear frequently
|
|
17
|
+
- AI uses em dashes as a shortcut for sentence variety instead of commas, colons, or parentheses
|
|
18
|
+
- Most human writers rarely use em dashes because they don't exist as a standard keyboard key
|
|
19
|
+
- The overuse is so consistent that it has become the unofficial signature of ChatGPT writing
|
|
20
|
+
|
|
21
|
+
### What To Do Instead
|
|
22
|
+
| Instead of | Use |
|
|
23
|
+
|------------|-----|
|
|
24
|
+
| The results—which were surprising—showed... | The results, which were surprising, showed... |
|
|
25
|
+
| This approach—unlike traditional methods—allows... | This approach, unlike traditional methods, allows... |
|
|
26
|
+
| The study found—as expected—that... | The study found, as expected, that... |
|
|
27
|
+
| Communication skills—both written and verbal—are essential | Communication skills (both written and verbal) are essential |
|
|
28
|
+
|
|
29
|
+
### Guidelines
|
|
30
|
+
- Use commas for most parenthetical information
|
|
31
|
+
- Use colons to introduce explanations or lists
|
|
32
|
+
- Use parentheses for supplementary information
|
|
33
|
+
- Reserve em dashes for rare, deliberate emphasis only
|
|
34
|
+
- If you find yourself using more than one em dash per page, revise
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## Overused Verbs
|
|
39
|
+
|
|
40
|
+
| Avoid | Use Instead |
|
|
41
|
+
|-------|-------------|
|
|
42
|
+
| delve (into) | explore, examine, investigate, look at |
|
|
43
|
+
| leverage | use, apply, draw on |
|
|
44
|
+
| optimise | improve, refine, enhance |
|
|
45
|
+
| utilise | use |
|
|
46
|
+
| facilitate | help, enable, support |
|
|
47
|
+
| foster | encourage, support, develop, nurture |
|
|
48
|
+
| bolster | strengthen, support, reinforce |
|
|
49
|
+
| underscore | emphasise, highlight, stress |
|
|
50
|
+
| unveil | reveal, show, introduce, present |
|
|
51
|
+
| navigate | manage, handle, work through |
|
|
52
|
+
| streamline | simplify, make more efficient |
|
|
53
|
+
| enhance | improve, strengthen |
|
|
54
|
+
| endeavour | try, attempt, effort |
|
|
55
|
+
| ascertain | find out, determine, establish |
|
|
56
|
+
| elucidate | explain, clarify, make clear |
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## Overused Adjectives
|
|
61
|
+
|
|
62
|
+
| Avoid | Use Instead |
|
|
63
|
+
|-------|-------------|
|
|
64
|
+
| robust | strong, reliable, thorough, solid |
|
|
65
|
+
| comprehensive | complete, thorough, full, detailed |
|
|
66
|
+
| pivotal | key, critical, central, important |
|
|
67
|
+
| crucial | important, key, essential, critical |
|
|
68
|
+
| vital | important, essential, necessary |
|
|
69
|
+
| transformative | significant, important, major |
|
|
70
|
+
| cutting-edge | new, advanced, recent, modern |
|
|
71
|
+
| groundbreaking | new, original, significant |
|
|
72
|
+
| innovative | new, original, creative |
|
|
73
|
+
| seamless | smooth, easy, effortless |
|
|
74
|
+
| intricate | complex, detailed, complicated |
|
|
75
|
+
| nuanced | subtle, complex, detailed |
|
|
76
|
+
| multifaceted | complex, varied, diverse |
|
|
77
|
+
| holistic | complete, whole, comprehensive |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## Overused Transitions and Connectors
|
|
82
|
+
|
|
83
|
+
| Avoid | Use Instead |
|
|
84
|
+
|-------|-------------|
|
|
85
|
+
| furthermore | also, in addition, and |
|
|
86
|
+
| moreover | also, and, besides |
|
|
87
|
+
| notwithstanding | despite, even so, still |
|
|
88
|
+
| that being said | however, but, still |
|
|
89
|
+
| at its core | essentially, fundamentally, basically |
|
|
90
|
+
| to put it simply | in short, simply put |
|
|
91
|
+
| it is worth noting that | note that, importantly |
|
|
92
|
+
| in the realm of | in, within, regarding |
|
|
93
|
+
| in the landscape of | in, within |
|
|
94
|
+
| in today's [anything] | currently, now, today |
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## Phrases That Signal AI Writing
|
|
99
|
+
|
|
100
|
+
### Opening Phrases to Avoid
|
|
101
|
+
- "In today's fast-paced world..."
|
|
102
|
+
- "In today's digital age..."
|
|
103
|
+
- "In an era of..."
|
|
104
|
+
- "In the ever-evolving landscape of..."
|
|
105
|
+
- "In the realm of..."
|
|
106
|
+
- "It's important to note that..."
|
|
107
|
+
- "Let's delve into..."
|
|
108
|
+
- "Imagine a world where..."
|
|
109
|
+
|
|
110
|
+
### Transitional Phrases to Avoid
|
|
111
|
+
- "That being said..."
|
|
112
|
+
- "With that in mind..."
|
|
113
|
+
- "It's worth mentioning that..."
|
|
114
|
+
- "At its core..."
|
|
115
|
+
- "To put it simply..."
|
|
116
|
+
- "In essence..."
|
|
117
|
+
- "This begs the question..."
|
|
118
|
+
|
|
119
|
+
### Concluding Phrases to Avoid
|
|
120
|
+
- "In conclusion..."
|
|
121
|
+
- "To sum up..."
|
|
122
|
+
- "By [doing X], you can [achieve Y]..."
|
|
123
|
+
- "In the final analysis..."
|
|
124
|
+
- "All things considered..."
|
|
125
|
+
- "At the end of the day..."
|
|
126
|
+
|
|
127
|
+
### Structural Patterns to Avoid
|
|
128
|
+
- "Whether you're a [X], [Y], or [Z]..." (listing three examples after "whether")
|
|
129
|
+
- "It's not just [X], it's also [Y]..."
|
|
130
|
+
- "Think of [X] as [elaborate metaphor]..."
|
|
131
|
+
- Starting sentences with "By" followed by a gerund: "By understanding X, you can Y..."
|
|
132
|
+
|
|
133
|
+
---
|
|
134
|
+
|
|
135
|
+
## Filler Words and Empty Intensifiers
|
|
136
|
+
|
|
137
|
+
These words often add nothing to meaning. Remove them or find specific alternatives:
|
|
138
|
+
|
|
139
|
+
- absolutely
|
|
140
|
+
- actually
|
|
141
|
+
- basically
|
|
142
|
+
- certainly
|
|
143
|
+
- clearly
|
|
144
|
+
- definitely
|
|
145
|
+
- essentially
|
|
146
|
+
- extremely
|
|
147
|
+
- fundamentally
|
|
148
|
+
- incredibly
|
|
149
|
+
- interestingly
|
|
150
|
+
- naturally
|
|
151
|
+
- obviously
|
|
152
|
+
- quite
|
|
153
|
+
- really
|
|
154
|
+
- significantly
|
|
155
|
+
- simply
|
|
156
|
+
- surely
|
|
157
|
+
- truly
|
|
158
|
+
- ultimately
|
|
159
|
+
- undoubtedly
|
|
160
|
+
- very
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Academic-Specific AI Tells
|
|
165
|
+
|
|
166
|
+
| Avoid | Use Instead |
|
|
167
|
+
|-------|-------------|
|
|
168
|
+
| shed light on | clarify, explain, reveal |
|
|
169
|
+
| pave the way for | enable, allow, make possible |
|
|
170
|
+
| a myriad of | many, numerous, various |
|
|
171
|
+
| a plethora of | many, numerous, several |
|
|
172
|
+
| paramount | very important, essential, critical |
|
|
173
|
+
| pertaining to | about, regarding, concerning |
|
|
174
|
+
| prior to | before |
|
|
175
|
+
| subsequent to | after |
|
|
176
|
+
| in light of | because of, given, considering |
|
|
177
|
+
| with respect to | about, regarding, for |
|
|
178
|
+
| in terms of | regarding, for, about |
|
|
179
|
+
| the fact that | that (or rewrite sentence) |
|
|
180
|
+
|
|
181
|
+
---
|
|
182
|
+
|
|
183
|
+
## How to Self-Check
|
|
184
|
+
|
|
185
|
+
1. Read your text aloud. If phrases sound unnatural in speech, revise them
|
|
186
|
+
2. Ask: "Would I say this in a conversation with a colleague?"
|
|
187
|
+
3. Check for repetitive sentence structures
|
|
188
|
+
4. Look for clusters of the words listed above
|
|
189
|
+
5. Ensure varied sentence lengths (not all similar length)
|
|
190
|
+
6. Verify each intensifier adds genuine meaning
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: simplify
|
|
3
|
+
description: Review changed code for reuse, quality, and efficiency, then fix any issues found. Use when completing a coding task, after implementation, or when the user says /simplify. Covers deduplication (exact/near/inline), code quality patterns, and performance.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Simplify: Code Review, Deduplication, and Cleanup
|
|
7
|
+
|
|
8
|
+
## Project Context
|
|
9
|
+
|
|
10
|
+
**Reads from `baldart.config.yml`:** `paths.references_dir`, `paths.components_primitives`, `paths.components_root`, `paths.design_system`.
|
|
11
|
+
**Gated by features:** `features.has_design_system` (Design System check section is BLOCKING when `true`).
|
|
12
|
+
**Overlay:** loads `.baldart/overlays/simplify.md` if present — project-specific utility module paths, hook conventions.
|
|
13
|
+
**On missing/empty keys:** ask the user; do not assume defaults. See `framework/agents/project-context.md` § 3.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
You are a ruthless deduplication and cleanup agent. You do not suggest. You find issues and you eliminate them.
|
|
18
|
+
|
|
19
|
+
## Step 1: Identify What Changed
|
|
20
|
+
|
|
21
|
+
Run `git diff HEAD` and `git status` to get the full picture of what was added or modified. Parse the diff to extract:
|
|
22
|
+
|
|
23
|
+
- New functions, components, hooks, constants, types, and utilities
|
|
24
|
+
- New inline logic patterns (string manipulation, fetch calls, validation, type guards, env checks, path handling)
|
|
25
|
+
- New API route handlers and middleware
|
|
26
|
+
|
|
27
|
+
If the diff is empty (everything is committed), run `git diff HEAD~5..HEAD` to cover recent session commits.
|
|
28
|
+
|
|
29
|
+
If there are no git changes at all, review the most recently modified files that the user mentioned or that you edited earlier in this conversation.
|
|
30
|
+
|
|
31
|
+
## Step 2: Launch Three Review Agents in Parallel
|
|
32
|
+
|
|
33
|
+
Use the Agent tool to launch all three agents concurrently in a single message. Pass each agent the full diff so it has the complete context.
|
|
34
|
+
|
|
35
|
+
### Agent 1: Duplication & Reuse Review
|
|
36
|
+
|
|
37
|
+
For each new piece of code in the diff:
|
|
38
|
+
|
|
39
|
+
1. **Start with `${paths.references_dir}/component-registry.md`** — the authoritative inventory of all UI primitives, shared components, hooks, and utility modules. Scan the relevant tables before grepping. Then search for existing utilities and helpers that could replace newly written code in the project's utility roots (e.g. `${paths.components_root}/shared/`, `${paths.components_primitives}/`, and `src/lib/`, `src/hooks/` if they exist), and files adjacent to the changed ones.
|
|
40
|
+
2. **For each new component**, Grep the codebase for components with similar names, similar prop signatures, or similar JSX structure. Check for copy-pasted layout components (`layout.tsx` files with near-identical structure).
|
|
41
|
+
3. **For each new function/hook**, search for functions with similar signatures or logic patterns elsewhere. Check for duplicated page-level patterns (similar data fetching, similar error boundaries, similar loading states).
|
|
42
|
+
4. **Flag components that wrap the same underlying element** with minor style/prop differences.
|
|
43
|
+
|
|
44
|
+
Classify each finding as:
|
|
45
|
+
|
|
46
|
+
- **Exact duplicate** — same logic exists elsewhere. Use the existing one. Delete the new one.
|
|
47
|
+
- **Near duplicate** — similar logic with minor differences. Extract a shared version with parameters.
|
|
48
|
+
- **Inline reimplementation** — hand-rolled logic that an existing utility already handles. Replace with the utility call.
|
|
49
|
+
|
|
50
|
+
### Agent 2: Code Quality Review
|
|
51
|
+
|
|
52
|
+
Review the same changes for hacky patterns:
|
|
53
|
+
|
|
54
|
+
1. **Redundant state**: state that duplicates existing state, cached values that could be derived, observers/effects that could be direct calls
|
|
55
|
+
2. **Parameter sprawl**: adding new parameters to a function instead of generalizing or restructuring existing ones
|
|
56
|
+
3. **Copy-paste with slight variation**: near-duplicate code blocks that should be unified with a shared abstraction
|
|
57
|
+
4. **Leaky abstractions**: exposing internal details that should be encapsulated, or breaking existing abstraction boundaries
|
|
58
|
+
5. **Stringly-typed code**: using raw strings where constants, enums (string unions), or branded types already exist in the codebase
|
|
59
|
+
6. **Unnecessary JSX nesting**: wrapper Boxes/elements that add no layout value — check if inner component props (flexShrink, alignItems, etc.) already provide the needed behavior
|
|
60
|
+
7. **Unnecessary comments**: comments explaining WHAT the code does (well-named identifiers already do that), narrating the change, or referencing the task/caller — delete; keep only non-obvious WHY (hidden constraints, subtle invariants, workarounds)
|
|
61
|
+
|
|
62
|
+
### Agent 2b: Design System SSOT Compliance (MANDATORY for UI refactors)
|
|
63
|
+
|
|
64
|
+
When the diff includes files under `src/components/`, `src/app/**/*.tsx`, or any
|
|
65
|
+
`.css`/`.module.css`, the simplify pass MUST NOT introduce hardcoded design values while
|
|
66
|
+
refactoring. Run this as part of the quality review:
|
|
67
|
+
|
|
68
|
+
1. Read `${paths.design_system}/INDEX.md` (component index + Canonical Authority Matrix + Quick
|
|
69
|
+
rules MUST) before rewriting any component.
|
|
70
|
+
2. For each component in the diff, confirm against `${paths.design_system}/components/<Name>.md`
|
|
71
|
+
that variants/states/props remain honored after the refactor.
|
|
72
|
+
3. Replace hardcoded hex / shadow / border values with canonical tokens from the DS SSOT.
|
|
73
|
+
These are Quality issues to fix inline, not advisory.
|
|
74
|
+
4. Themed surfaces must preserve the token-pair contract documented in the
|
|
75
|
+
project's design-system patterns (e.g. `${paths.design_system}/patterns/<theme>.md`).
|
|
76
|
+
Never introduce hardcoded text colors on themed backgrounds.
|
|
77
|
+
5. Motion-related simplifications must honor `${paths.design_system}/patterns/animations.md`,
|
|
78
|
+
including reduced-motion fallbacks.
|
|
79
|
+
|
|
80
|
+
### Agent 3: Efficiency Review
|
|
81
|
+
|
|
82
|
+
Review the same changes for efficiency:
|
|
83
|
+
|
|
84
|
+
1. **Unnecessary work**: redundant computations, repeated file reads, duplicate network/API calls, N+1 patterns
|
|
85
|
+
2. **Missed concurrency**: independent operations run sequentially when they could run in parallel
|
|
86
|
+
3. **Hot-path bloat**: new blocking work added to startup or per-request/per-render hot paths
|
|
87
|
+
4. **Recurring no-op updates**: state/store updates inside polling loops, intervals, or event handlers that fire unconditionally — add a change-detection guard so downstream consumers aren't notified when nothing changed. Also: if a wrapper function takes an updater/reducer callback, verify it honors same-reference returns (or whatever the "no change" signal is) — otherwise callers' early-return no-ops are silently defeated
|
|
88
|
+
5. **Unnecessary existence checks**: pre-checking file/resource existence before operating (TOCTOU anti-pattern) — operate directly and handle the error
|
|
89
|
+
6. **Memory**: unbounded data structures, missing cleanup, event listener leaks
|
|
90
|
+
7. **Overly broad operations**: reading entire files when only a portion is needed, loading all items when filtering for one
|
|
91
|
+
|
|
92
|
+
## Step 3: Aggregate Findings
|
|
93
|
+
|
|
94
|
+
Collect results from all three agents. For each finding, categorize as:
|
|
95
|
+
|
|
96
|
+
1. **Exact duplicate** — same logic exists elsewhere. Use the existing one. Delete the new one.
|
|
97
|
+
2. **Near duplicate** — similar logic with minor differences. Extract a shared version with parameters.
|
|
98
|
+
3. **Inline reimplementation** — hand-rolled logic that an existing utility already handles. Replace with the utility call.
|
|
99
|
+
4. **Quality issue** — hacky pattern from Agent 2. Fix directly.
|
|
100
|
+
5. **Efficiency issue** — performance problem from Agent 3. Fix directly.
|
|
101
|
+
|
|
102
|
+
If no issues are found, say so and stop. Do not invent problems.
|
|
103
|
+
|
|
104
|
+
## Step 4: Fix Issues
|
|
105
|
+
|
|
106
|
+
For each finding, apply the fix directly:
|
|
107
|
+
|
|
108
|
+
- **Exact duplicates**: Delete the new code, import the existing version, update all references.
|
|
109
|
+
- **Near duplicates**: Extract a shared function/component/hook to the appropriate shared directory (`src/lib/`, `src/hooks/`, `src/components/shared/`). Update all call sites to use the shared version.
|
|
110
|
+
- **Inline reimplementations**: Replace inline code with calls to the existing utility. Add imports.
|
|
111
|
+
- **Quality issues**: Apply the fix inline (remove redundant state, simplify JSX nesting, replace string literals with constants, etc.).
|
|
112
|
+
- **Efficiency issues**: Apply the fix inline (parallelize independent calls, add change-detection guards, batch reads, etc.).
|
|
113
|
+
|
|
114
|
+
When extracting shared code:
|
|
115
|
+
- Place utilities in `src/lib/` (whichever module is closest in domain)
|
|
116
|
+
- Place shared components in `src/components/shared/` or `src/components/ui/`
|
|
117
|
+
- Place shared hooks in `src/hooks/`
|
|
118
|
+
- Do not create new directories if equivalent ones already exist
|
|
119
|
+
|
|
120
|
+
## Step 5: Verify
|
|
121
|
+
|
|
122
|
+
Run the linter and type checker:
|
|
123
|
+
|
|
124
|
+
```
|
|
125
|
+
npm run lint
|
|
126
|
+
npx tsc --noEmit
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
Run the project's test suite (if tests exist):
|
|
130
|
+
|
|
131
|
+
```
|
|
132
|
+
npm test
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
If tests or lint fail, fix the issues. The codebase must be in a passing state when you're done.
|
|
136
|
+
|
|
137
|
+
When done, briefly summarize what was fixed (or confirm the code was already clean).
|