agileflow 3.3.0 → 3.4.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/CHANGELOG.md +10 -0
- package/README.md +6 -6
- package/lib/skill-loader.js +0 -1
- package/package.json +1 -1
- package/scripts/agileflow-statusline.sh +81 -0
- package/scripts/agileflow-welcome.js +79 -0
- package/scripts/claude-tmux.sh +90 -23
- package/scripts/claude-watchdog.sh +225 -0
- package/scripts/generators/agent-registry.js +14 -1
- package/scripts/generators/inject-babysit.js +22 -9
- package/scripts/generators/inject-help.js +19 -9
- package/scripts/lib/ac-test-matcher.js +452 -0
- package/scripts/lib/audit-cleanup.js +250 -0
- package/scripts/lib/audit-registry.js +304 -0
- package/scripts/lib/configure-features.js +35 -0
- package/scripts/lib/feature-catalog.js +3 -3
- package/scripts/lib/gate-enforcer.js +295 -0
- package/scripts/lib/model-profiles.js +118 -0
- package/scripts/lib/quality-gates.js +163 -0
- package/scripts/lib/signal-detectors.js +44 -1
- package/scripts/lib/skill-catalog.js +557 -0
- package/scripts/lib/skill-recommender.js +311 -0
- package/scripts/lib/status-writer.js +255 -0
- package/scripts/lib/story-claiming.js +128 -45
- package/scripts/lib/task-sync.js +32 -38
- package/scripts/lib/tdd-phase-manager.js +455 -0
- package/scripts/lib/team-events.js +34 -3
- package/scripts/lib/tmux-audit-monitor.js +611 -0
- package/scripts/lib/tmux-group-colors.js +113 -0
- package/scripts/lib/tool-registry.yaml +241 -0
- package/scripts/lib/tool-shed.js +441 -0
- package/scripts/messaging-bridge.js +209 -1
- package/scripts/native-team-observer.js +219 -0
- package/scripts/obtain-context.js +14 -0
- package/scripts/ralph-loop.js +30 -5
- package/scripts/smart-detect.js +21 -0
- package/scripts/spawn-audit-sessions.js +877 -0
- package/scripts/team-manager.js +56 -16
- package/scripts/tmux-close-windows.sh +180 -0
- package/src/core/agents/a11y-analyzer-aria.md +155 -0
- package/src/core/agents/a11y-analyzer-forms.md +162 -0
- package/src/core/agents/a11y-analyzer-keyboard.md +175 -0
- package/src/core/agents/a11y-analyzer-semantic.md +153 -0
- package/src/core/agents/a11y-analyzer-visual.md +158 -0
- package/src/core/agents/a11y-consensus.md +248 -0
- package/src/core/agents/ads-audit-budget.md +181 -0
- package/src/core/agents/ads-audit-compliance.md +169 -0
- package/src/core/agents/ads-audit-creative.md +164 -0
- package/src/core/agents/ads-audit-google.md +226 -0
- package/src/core/agents/ads-audit-meta.md +183 -0
- package/src/core/agents/ads-audit-tracking.md +197 -0
- package/src/core/agents/ads-consensus.md +396 -0
- package/src/core/agents/ads-generate.md +145 -0
- package/src/core/agents/ads-performance-tracker.md +197 -0
- package/src/core/agents/api-quality-analyzer-conventions.md +148 -0
- package/src/core/agents/api-quality-analyzer-docs.md +176 -0
- package/src/core/agents/api-quality-analyzer-errors.md +183 -0
- package/src/core/agents/api-quality-analyzer-pagination.md +171 -0
- package/src/core/agents/api-quality-analyzer-versioning.md +143 -0
- package/src/core/agents/api-quality-consensus.md +214 -0
- package/src/core/agents/arch-analyzer-circular.md +148 -0
- package/src/core/agents/arch-analyzer-complexity.md +171 -0
- package/src/core/agents/arch-analyzer-coupling.md +146 -0
- package/src/core/agents/arch-analyzer-layering.md +151 -0
- package/src/core/agents/arch-analyzer-patterns.md +162 -0
- package/src/core/agents/arch-consensus.md +227 -0
- package/src/core/agents/brainstorm-analyzer-features.md +169 -0
- package/src/core/agents/brainstorm-analyzer-growth.md +161 -0
- package/src/core/agents/brainstorm-analyzer-integration.md +172 -0
- package/src/core/agents/brainstorm-analyzer-market.md +147 -0
- package/src/core/agents/brainstorm-analyzer-ux.md +167 -0
- package/src/core/agents/brainstorm-consensus.md +237 -0
- package/src/core/agents/completeness-consensus.md +5 -5
- package/src/core/agents/perf-consensus.md +2 -2
- package/src/core/agents/security-consensus.md +2 -2
- package/src/core/agents/seo-analyzer-content.md +167 -0
- package/src/core/agents/seo-analyzer-images.md +187 -0
- package/src/core/agents/seo-analyzer-performance.md +206 -0
- package/src/core/agents/seo-analyzer-schema.md +176 -0
- package/src/core/agents/seo-analyzer-sitemap.md +172 -0
- package/src/core/agents/seo-analyzer-technical.md +144 -0
- package/src/core/agents/seo-consensus.md +289 -0
- package/src/core/agents/test-consensus.md +2 -2
- package/src/core/commands/adr.md +1 -0
- package/src/core/commands/ads/audit.md +375 -0
- package/src/core/commands/ads/budget.md +97 -0
- package/src/core/commands/ads/competitor.md +112 -0
- package/src/core/commands/ads/creative.md +85 -0
- package/src/core/commands/ads/generate.md +238 -0
- package/src/core/commands/ads/google.md +112 -0
- package/src/core/commands/ads/health.md +327 -0
- package/src/core/commands/ads/landing.md +119 -0
- package/src/core/commands/ads/linkedin.md +112 -0
- package/src/core/commands/ads/meta.md +91 -0
- package/src/core/commands/ads/microsoft.md +115 -0
- package/src/core/commands/ads/plan.md +321 -0
- package/src/core/commands/ads/test-plan.md +317 -0
- package/src/core/commands/ads/tiktok.md +129 -0
- package/src/core/commands/ads/track.md +288 -0
- package/src/core/commands/ads/youtube.md +124 -0
- package/src/core/commands/ads.md +140 -0
- package/src/core/commands/assign.md +1 -0
- package/src/core/commands/audit.md +43 -6
- package/src/core/commands/babysit.md +315 -1266
- package/src/core/commands/baseline.md +1 -0
- package/src/core/commands/blockers.md +1 -0
- package/src/core/commands/board.md +1 -0
- package/src/core/commands/changelog.md +1 -0
- package/src/core/commands/choose.md +1 -0
- package/src/core/commands/ci.md +1 -0
- package/src/core/commands/code/accessibility.md +347 -0
- package/src/core/commands/code/api.md +297 -0
- package/src/core/commands/code/architecture.md +297 -0
- package/src/core/commands/{audit → code}/completeness.md +72 -25
- package/src/core/commands/{audit → code}/legal.md +63 -16
- package/src/core/commands/{audit → code}/logic.md +64 -16
- package/src/core/commands/{audit → code}/performance.md +67 -20
- package/src/core/commands/{audit → code}/security.md +69 -19
- package/src/core/commands/{audit → code}/test.md +67 -20
- package/src/core/commands/configure.md +1 -0
- package/src/core/commands/council.md +1 -0
- package/src/core/commands/deploy.md +1 -0
- package/src/core/commands/diagnose.md +1 -0
- package/src/core/commands/docs.md +1 -0
- package/src/core/commands/epic/edit.md +213 -0
- package/src/core/commands/epic.md +1 -0
- package/src/core/commands/export.md +238 -0
- package/src/core/commands/help.md +16 -1
- package/src/core/commands/{discovery → ideate}/brief.md +12 -12
- package/src/core/commands/{discovery/new.md → ideate/discover.md} +20 -16
- package/src/core/commands/ideate/features.md +496 -0
- package/src/core/commands/ideate/new.md +158 -124
- package/src/core/commands/impact.md +1 -0
- package/src/core/commands/learn/explain.md +118 -0
- package/src/core/commands/learn/glossary.md +135 -0
- package/src/core/commands/learn/patterns.md +138 -0
- package/src/core/commands/learn/tour.md +126 -0
- package/src/core/commands/migrate/codemods.md +151 -0
- package/src/core/commands/migrate/plan.md +131 -0
- package/src/core/commands/migrate/scan.md +114 -0
- package/src/core/commands/migrate/validate.md +119 -0
- package/src/core/commands/multi-expert.md +1 -0
- package/src/core/commands/pr.md +1 -0
- package/src/core/commands/review.md +1 -0
- package/src/core/commands/seo/audit.md +373 -0
- package/src/core/commands/seo/competitor.md +174 -0
- package/src/core/commands/seo/content.md +107 -0
- package/src/core/commands/seo/geo.md +229 -0
- package/src/core/commands/seo/hreflang.md +140 -0
- package/src/core/commands/seo/images.md +96 -0
- package/src/core/commands/seo/page.md +198 -0
- package/src/core/commands/seo/plan.md +163 -0
- package/src/core/commands/seo/programmatic.md +131 -0
- package/src/core/commands/seo/references/cwv-thresholds.md +64 -0
- package/src/core/commands/seo/references/eeat-framework.md +110 -0
- package/src/core/commands/seo/references/quality-gates.md +91 -0
- package/src/core/commands/seo/references/schema-types.md +102 -0
- package/src/core/commands/seo/schema.md +183 -0
- package/src/core/commands/seo/sitemap.md +97 -0
- package/src/core/commands/seo/technical.md +100 -0
- package/src/core/commands/seo.md +107 -0
- package/src/core/commands/skill/list.md +68 -212
- package/src/core/commands/skill/recommend.md +216 -0
- package/src/core/commands/sprint.md +1 -0
- package/src/core/commands/status/undo.md +191 -0
- package/src/core/commands/status.md +1 -0
- package/src/core/commands/story/edit.md +204 -0
- package/src/core/commands/story/view.md +29 -7
- package/src/core/commands/story-validate.md +1 -0
- package/src/core/commands/story.md +1 -0
- package/src/core/commands/tdd-next.md +238 -0
- package/src/core/commands/tdd.md +211 -0
- package/src/core/commands/team/start.md +10 -6
- package/src/core/commands/tests.md +1 -0
- package/src/core/commands/verify.md +27 -1
- package/src/core/commands/workflow.md +2 -0
- package/src/core/experts/_core-expertise.yaml +105 -0
- package/src/core/experts/analytics/expertise.yaml +5 -99
- package/src/core/experts/codebase-query/expertise.yaml +3 -72
- package/src/core/experts/compliance/expertise.yaml +6 -72
- package/src/core/experts/database/expertise.yaml +9 -52
- package/src/core/experts/documentation/expertise.yaml +7 -140
- package/src/core/experts/integrations/expertise.yaml +7 -127
- package/src/core/experts/mentor/expertise.yaml +8 -35
- package/src/core/experts/monitoring/expertise.yaml +7 -49
- package/src/core/experts/performance/expertise.yaml +1 -26
- package/src/core/experts/security/expertise.yaml +9 -34
- package/src/core/experts/ui/expertise.yaml +6 -36
- package/src/core/knowledge/ads/ad-audit-checklist-scoring.md +424 -0
- package/src/core/knowledge/ads/ad-optimization-logic.md +590 -0
- package/src/core/knowledge/ads/ad-technical-specifications.md +385 -0
- package/src/core/knowledge/ads/definitive-advertising-reference-2026.md +506 -0
- package/src/core/knowledge/ads/paid-advertising-research-2026.md +445 -0
- package/src/core/teams/backend.json +41 -0
- package/src/core/teams/frontend.json +41 -0
- package/src/core/teams/qa.json +41 -0
- package/src/core/teams/solo.json +35 -0
- package/src/core/templates/agileflow-metadata.json +20 -1
- package/tools/cli/commands/setup.js +85 -3
- package/tools/cli/commands/update.js +42 -0
- package/tools/cli/installers/ide/_base-ide.js +42 -5
- package/tools/cli/installers/ide/claude-code.js +71 -3
- package/tools/cli/lib/content-injector.js +160 -12
- package/tools/cli/lib/docs-setup.js +1 -1
- package/src/core/commands/skill/create.md +0 -698
- package/src/core/commands/skill/delete.md +0 -316
- package/src/core/commands/skill/edit.md +0 -359
- package/src/core/commands/skill/test.md +0 -394
- package/src/core/commands/skill/upgrade.md +0 -552
- package/src/core/templates/skill-template.md +0 -117
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: SEO competitor comparison - analyze competing pages, generate feature matrices, and create comparison content with schema markup
|
|
3
|
+
argument-hint: "YOUR_URL COMPETITOR_URL [COMPETITOR_URL_2]"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: medium
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:seo:competitor - Competitor SEO comparison"
|
|
8
|
+
- "Fetch both your page and competitor page(s)"
|
|
9
|
+
- "Generate feature comparison matrix"
|
|
10
|
+
- "Produce comparison page content with Product schema"
|
|
11
|
+
state_fields:
|
|
12
|
+
- your_url
|
|
13
|
+
- competitor_urls
|
|
14
|
+
- comparison_matrix
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# /agileflow:seo:competitor
|
|
18
|
+
|
|
19
|
+
Analyze competitor pages and generate SEO-optimized comparison content with feature matrices and structured data.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Quick Reference
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/agileflow:seo:competitor https://you.com https://competitor.com # 1v1 comparison
|
|
27
|
+
/agileflow:seo:competitor https://you.com https://comp1.com https://comp2.com # Multi-competitor
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## Arguments
|
|
33
|
+
|
|
34
|
+
| Argument | Values | Default | Description |
|
|
35
|
+
|----------|--------|---------|-------------|
|
|
36
|
+
| YOUR_URL | Any valid URL | Required | Your product/service page |
|
|
37
|
+
| COMPETITOR_URL | Any valid URL(s) | Required | Competitor page(s) to compare (1-3) |
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## Process
|
|
42
|
+
|
|
43
|
+
### STEP 1: Fetch All Pages
|
|
44
|
+
|
|
45
|
+
Use WebFetch to retrieve your page and each competitor page. Extract:
|
|
46
|
+
- Product/service name
|
|
47
|
+
- Features list
|
|
48
|
+
- Pricing (if visible)
|
|
49
|
+
- Key differentiators
|
|
50
|
+
- Schema markup present
|
|
51
|
+
- Meta title/description
|
|
52
|
+
|
|
53
|
+
### STEP 2: Build Feature Matrix
|
|
54
|
+
|
|
55
|
+
Create a comparison matrix:
|
|
56
|
+
|
|
57
|
+
```markdown
|
|
58
|
+
| Feature | Your Product | Competitor A | Competitor B |
|
|
59
|
+
|---------|-------------|-------------|-------------|
|
|
60
|
+
| {feature 1} | Yes/No/Value | Yes/No/Value | Yes/No/Value |
|
|
61
|
+
| {feature 2} | Yes/No/Value | Yes/No/Value | Yes/No/Value |
|
|
62
|
+
| Pricing | {price} | {price} | {price} |
|
|
63
|
+
| Free Trial | Yes/No | Yes/No | Yes/No |
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### STEP 3: SEO Comparison
|
|
67
|
+
|
|
68
|
+
Compare SEO elements:
|
|
69
|
+
|
|
70
|
+
| Element | You | Competitor |
|
|
71
|
+
|---------|-----|-----------|
|
|
72
|
+
| Title tag | {length, keywords} | {length, keywords} |
|
|
73
|
+
| Meta description | {present, quality} | {present, quality} |
|
|
74
|
+
| H1 | {text} | {text} |
|
|
75
|
+
| Schema types | {types} | {types} |
|
|
76
|
+
| Word count | {count} | {count} |
|
|
77
|
+
| Internal links | {count} | {count} |
|
|
78
|
+
| Image optimization | {score} | {score} |
|
|
79
|
+
|
|
80
|
+
### STEP 4: Generate Comparison Content
|
|
81
|
+
|
|
82
|
+
Produce draft comparison page content:
|
|
83
|
+
|
|
84
|
+
```markdown
|
|
85
|
+
# {Your Product} vs {Competitor}: {Year} Comparison
|
|
86
|
+
|
|
87
|
+
## Quick Summary
|
|
88
|
+
|
|
89
|
+
{2-3 sentence overview}
|
|
90
|
+
|
|
91
|
+
## Feature Comparison
|
|
92
|
+
|
|
93
|
+
[Feature matrix table]
|
|
94
|
+
|
|
95
|
+
## {Your Product} Advantages
|
|
96
|
+
|
|
97
|
+
1. {advantage with evidence}
|
|
98
|
+
2. {advantage}
|
|
99
|
+
|
|
100
|
+
## When to Choose {Competitor}
|
|
101
|
+
|
|
102
|
+
{Fair, balanced assessment}
|
|
103
|
+
|
|
104
|
+
## Pricing Comparison
|
|
105
|
+
|
|
106
|
+
[Pricing table]
|
|
107
|
+
|
|
108
|
+
## Verdict
|
|
109
|
+
|
|
110
|
+
{Balanced recommendation}
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
### STEP 5: Generate Schema
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"@context": "https://schema.org",
|
|
118
|
+
"@type": "WebPage",
|
|
119
|
+
"name": "{Your Product} vs {Competitor}",
|
|
120
|
+
"description": "Compare {Your Product} and {Competitor} features, pricing, and capabilities",
|
|
121
|
+
"mainEntity": {
|
|
122
|
+
"@type": "ItemList",
|
|
123
|
+
"itemListElement": [
|
|
124
|
+
{
|
|
125
|
+
"@type": "Product",
|
|
126
|
+
"name": "{Your Product}",
|
|
127
|
+
"url": "{your_url}"
|
|
128
|
+
},
|
|
129
|
+
{
|
|
130
|
+
"@type": "Product",
|
|
131
|
+
"name": "{Competitor}",
|
|
132
|
+
"url": "{competitor_url}"
|
|
133
|
+
}
|
|
134
|
+
]
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
### STEP 6: Output
|
|
140
|
+
|
|
141
|
+
```markdown
|
|
142
|
+
# Competitor Analysis: {You} vs {Competitor(s)}
|
|
143
|
+
|
|
144
|
+
## SEO Comparison
|
|
145
|
+
[Side-by-side SEO element comparison]
|
|
146
|
+
|
|
147
|
+
## Feature Matrix
|
|
148
|
+
[Feature comparison table]
|
|
149
|
+
|
|
150
|
+
## Content Gaps
|
|
151
|
+
[What competitor has that you're missing]
|
|
152
|
+
|
|
153
|
+
## Generated Comparison Page
|
|
154
|
+
[Draft content ready to publish]
|
|
155
|
+
|
|
156
|
+
## Schema Markup
|
|
157
|
+
[JSON-LD for the comparison page]
|
|
158
|
+
|
|
159
|
+
## SEO Recommendations
|
|
160
|
+
1. {Priority improvement}
|
|
161
|
+
2. {Next priority}
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
---
|
|
165
|
+
|
|
166
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
167
|
+
## Compact Summary
|
|
168
|
+
|
|
169
|
+
**Command**: `/agileflow:seo:competitor` - Competitor SEO comparison
|
|
170
|
+
|
|
171
|
+
**Output**: Feature matrix, SEO comparison, draft comparison page content, schema markup
|
|
172
|
+
|
|
173
|
+
**Usage**: `/agileflow:seo:competitor YOUR_URL COMPETITOR_URL [COMPETITOR_URL_2]`
|
|
174
|
+
<!-- COMPACT_SUMMARY_END -->
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: E-E-A-T content quality analysis - trustworthiness, expertise, authoritativeness, experience scoring with AI content detection
|
|
3
|
+
argument-hint: "URL [TYPE=homepage|service|blog|product|location]"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: medium
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:seo:content - E-E-A-T content quality analysis"
|
|
8
|
+
- "Deploy seo-analyzer-content for comprehensive E-E-A-T assessment"
|
|
9
|
+
- "Score: Trust 30%, Expertise 25%, Authoritativeness 25%, Experience 20%"
|
|
10
|
+
- "Check content minimums by page type (from quality-gates.md)"
|
|
11
|
+
state_fields:
|
|
12
|
+
- target_url
|
|
13
|
+
- page_type
|
|
14
|
+
- eeat_score
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# /agileflow:seo:content
|
|
18
|
+
|
|
19
|
+
Analyze content quality using the E-E-A-T framework (Experience, Expertise, Authoritativeness, Trustworthiness). Includes AI content detection and citation readiness assessment.
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## Quick Reference
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
/agileflow:seo:content https://example.com # Homepage content analysis
|
|
27
|
+
/agileflow:seo:content https://example.com/blog/post TYPE=blog # Blog post analysis
|
|
28
|
+
/agileflow:seo:content https://example.com/services TYPE=service # Service page analysis
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Arguments
|
|
34
|
+
|
|
35
|
+
| Argument | Values | Default | Description |
|
|
36
|
+
|----------|--------|---------|-------------|
|
|
37
|
+
| URL | Any valid URL | Required | Page to analyze |
|
|
38
|
+
| TYPE | homepage, service, blog, product, location | Auto-detect | Page type (affects content minimums) |
|
|
39
|
+
|
|
40
|
+
---
|
|
41
|
+
|
|
42
|
+
## Process
|
|
43
|
+
|
|
44
|
+
### STEP 1: Deploy Content Analyzer
|
|
45
|
+
|
|
46
|
+
```xml
|
|
47
|
+
<invoke name="Task">
|
|
48
|
+
<parameter name="description">E-E-A-T content quality analysis</parameter>
|
|
49
|
+
<parameter name="prompt">TASK: Perform deep E-E-A-T content quality analysis.
|
|
50
|
+
|
|
51
|
+
TARGET URL: {url}
|
|
52
|
+
PAGE TYPE: {type or "auto-detect"}
|
|
53
|
+
|
|
54
|
+
Score each E-E-A-T factor:
|
|
55
|
+
- Trustworthiness (30%): HTTPS, contact, privacy, transparency, no deception
|
|
56
|
+
- Expertise (25%): Author credentials, citations, accuracy, depth
|
|
57
|
+
- Authoritativeness (25%): Brand signals, testimonials, certifications, NAP
|
|
58
|
+
- Experience (20%): First-hand accounts, original media, specific data, case studies
|
|
59
|
+
|
|
60
|
+
Also assess:
|
|
61
|
+
- Content depth vs minimums (homepage 500w, service 800w, blog 1500w, product 300w)
|
|
62
|
+
- Content uniqueness (boilerplate vs original)
|
|
63
|
+
- Readability level
|
|
64
|
+
- AI content red flags (generic phrasing, no insights, fabricated experience)
|
|
65
|
+
- AI citation readiness (self-contained blocks, specific facts, question headers)
|
|
66
|
+
|
|
67
|
+
OUTPUT: Content Quality Score X/100 with E-E-A-T breakdown.</parameter>
|
|
68
|
+
<parameter name="subagent_type">seo-analyzer-content</parameter>
|
|
69
|
+
</invoke>
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### STEP 2: Present Results
|
|
73
|
+
|
|
74
|
+
Show E-E-A-T breakdown with signal-level detail and remediation steps.
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## E-E-A-T Scoring
|
|
79
|
+
|
|
80
|
+
| Factor | Weight | Key Signals |
|
|
81
|
+
|--------|--------|-------------|
|
|
82
|
+
| Trustworthiness | 30% | HTTPS, contact info, privacy policy, editorial transparency |
|
|
83
|
+
| Expertise | 25% | Author bylines, cited sources, technical depth |
|
|
84
|
+
| Authoritativeness | 25% | Brand identity, certifications, media mentions |
|
|
85
|
+
| Experience | 20% | First-person accounts, original photos, specific data |
|
|
86
|
+
|
|
87
|
+
## Content Minimums (from quality-gates.md)
|
|
88
|
+
|
|
89
|
+
| Page Type | Min Words | Unique % |
|
|
90
|
+
|-----------|-----------|----------|
|
|
91
|
+
| Homepage | 500 | 100% |
|
|
92
|
+
| Service | 800 | 60% |
|
|
93
|
+
| Blog | 1,500 | 100% |
|
|
94
|
+
| Product | 300 | 40% |
|
|
95
|
+
| Location | 500 | 40% |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
100
|
+
## Compact Summary
|
|
101
|
+
|
|
102
|
+
**Command**: `/agileflow:seo:content` - E-E-A-T content quality analysis
|
|
103
|
+
|
|
104
|
+
**Scoring**: Trust 30%, Expertise 25%, Authority 25%, Experience 20%
|
|
105
|
+
|
|
106
|
+
**Usage**: `/agileflow:seo:content URL [TYPE=page_type]`
|
|
107
|
+
<!-- COMPACT_SUMMARY_END -->
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Generative Engine Optimization (GEO) - analyze and optimize content for AI search platforms like ChatGPT, Google AI Overviews, and Perplexity
|
|
3
|
+
argument-hint: "URL"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: medium
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:seo:geo - AI search optimization"
|
|
8
|
+
- "Assess 5 GEO dimensions: Citability, Structure, Multimodal, Authority, Technical Access"
|
|
9
|
+
- "Check robots.txt for AI bot access (GPTBot, ClaudeBot, PerplexityBot)"
|
|
10
|
+
- "Check for /llms.txt file"
|
|
11
|
+
- "Optimize for 134-167 word citation blocks"
|
|
12
|
+
state_fields:
|
|
13
|
+
- target_url
|
|
14
|
+
- geo_score
|
|
15
|
+
- ai_bot_access
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
# /agileflow:seo:geo
|
|
19
|
+
|
|
20
|
+
Analyze and optimize content for AI search platforms (Generative Engine Optimization). Ensure your content gets cited by ChatGPT, Google AI Overviews, Perplexity, and Claude.
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Quick Reference
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
/agileflow:seo:geo https://example.com # Full GEO analysis
|
|
28
|
+
/agileflow:seo:geo https://example.com/blog/guide # Analyze specific content page
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
## Background
|
|
34
|
+
|
|
35
|
+
**GEO (Generative Engine Optimization)** optimizes content for AI-powered search platforms:
|
|
36
|
+
- Google AI Overviews
|
|
37
|
+
- ChatGPT (with Browse/Search)
|
|
38
|
+
- Perplexity
|
|
39
|
+
- Claude
|
|
40
|
+
|
|
41
|
+
**Key insight**: Brand correlation is 3x stronger than backlinks for AI visibility. 92% of AI citations come from top-10 traditional search results.
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## Arguments
|
|
46
|
+
|
|
47
|
+
| Argument | Values | Default | Description |
|
|
48
|
+
|----------|--------|---------|-------------|
|
|
49
|
+
| URL | Any valid URL | Required | Page or site to analyze |
|
|
50
|
+
|
|
51
|
+
---
|
|
52
|
+
|
|
53
|
+
## GEO Assessment Framework
|
|
54
|
+
|
|
55
|
+
### 1. Citability (25%)
|
|
56
|
+
|
|
57
|
+
AI platforms cite content that contains self-contained, quotable blocks:
|
|
58
|
+
|
|
59
|
+
| Signal | Good | Poor |
|
|
60
|
+
|--------|------|------|
|
|
61
|
+
| Answer blocks | 134-167 word self-contained paragraphs | Long unbroken paragraphs |
|
|
62
|
+
| Specific facts | Numbers, dates, names, percentages | Vague generalizations |
|
|
63
|
+
| Definitions | Clear "X is Y" statements | Implied definitions |
|
|
64
|
+
| Lists | Numbered/bulleted key points | Points buried in prose |
|
|
65
|
+
| Attribution | "According to [source]..." | Unsourced claims |
|
|
66
|
+
|
|
67
|
+
**Check**: Count paragraphs in the 134-167 word range. Assess whether they answer specific questions independently.
|
|
68
|
+
|
|
69
|
+
### 2. Structure (20%)
|
|
70
|
+
|
|
71
|
+
AI platforms parse structured content more effectively:
|
|
72
|
+
|
|
73
|
+
| Signal | Good | Poor |
|
|
74
|
+
|--------|------|------|
|
|
75
|
+
| Question headers | H2/H3 as questions (Who, What, How) | Generic headings |
|
|
76
|
+
| Short paragraphs | 2-4 sentences | Wall of text |
|
|
77
|
+
| Tables | Comparison data in tables | Comparisons in prose |
|
|
78
|
+
| Numbered steps | Step-by-step instructions | Instructions in paragraphs |
|
|
79
|
+
| TL;DR / Summary | Key takeaway at top or bottom | No summary |
|
|
80
|
+
|
|
81
|
+
### 3. Multimodal Content (15%)
|
|
82
|
+
|
|
83
|
+
Pages with multiple content types get 156% higher AI citation rates:
|
|
84
|
+
|
|
85
|
+
| Signal | Good | Poor |
|
|
86
|
+
|--------|------|------|
|
|
87
|
+
| Text + Images | Informative images with good alt text | Text only |
|
|
88
|
+
| Text + Video | Embedded video with transcript | No video |
|
|
89
|
+
| Text + Tables | Data visualization | Numbers in paragraphs |
|
|
90
|
+
| Interactive | Calculators, tools, quizzes | Static content only |
|
|
91
|
+
| Infographics | Visual summaries | No visual aids |
|
|
92
|
+
|
|
93
|
+
### 4. Authority (20%)
|
|
94
|
+
|
|
95
|
+
AI platforms prioritize authoritative sources:
|
|
96
|
+
|
|
97
|
+
| Signal | Good | Poor |
|
|
98
|
+
|--------|------|------|
|
|
99
|
+
| Author credentials | Named author with bio/credentials | No attribution |
|
|
100
|
+
| Publication dates | Recent, prominently displayed | No dates or old |
|
|
101
|
+
| Primary sources | Original data, research, case studies | Only secondary sources |
|
|
102
|
+
| Citations | Links to authoritative references | No outbound links |
|
|
103
|
+
| Brand presence | Wikipedia, Reddit, YouTube mentions | No cross-platform presence |
|
|
104
|
+
|
|
105
|
+
### 5. Technical Access (20%)
|
|
106
|
+
|
|
107
|
+
AI bots must be able to access your content:
|
|
108
|
+
|
|
109
|
+
| Signal | Good | Poor |
|
|
110
|
+
|--------|------|------|
|
|
111
|
+
| GPTBot allowed | Not blocked in robots.txt | Blocked |
|
|
112
|
+
| ClaudeBot allowed | Not blocked in robots.txt | Blocked |
|
|
113
|
+
| PerplexityBot allowed | Not blocked in robots.txt | Blocked |
|
|
114
|
+
| Google-Extended allowed | Not blocked | Blocked |
|
|
115
|
+
| `/llms.txt` present | Exists at root | Missing |
|
|
116
|
+
| Server-side rendering | Content in HTML source | JS-only rendering |
|
|
117
|
+
| Fast response | Quick TTFB | Slow or rate-limited |
|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
## Process
|
|
122
|
+
|
|
123
|
+
### STEP 1: Fetch Target Page
|
|
124
|
+
|
|
125
|
+
Use WebFetch to retrieve the page content.
|
|
126
|
+
|
|
127
|
+
### STEP 2: Fetch robots.txt
|
|
128
|
+
|
|
129
|
+
Check `{domain}/robots.txt` for AI bot rules:
|
|
130
|
+
```
|
|
131
|
+
User-agent: GPTBot
|
|
132
|
+
User-agent: ClaudeBot
|
|
133
|
+
User-agent: PerplexityBot
|
|
134
|
+
User-agent: Google-Extended
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### STEP 3: Check for llms.txt
|
|
138
|
+
|
|
139
|
+
Fetch `{domain}/llms.txt` - a machine-readable site description for AI platforms.
|
|
140
|
+
|
|
141
|
+
### STEP 4: Analyze Each Dimension
|
|
142
|
+
|
|
143
|
+
Score each of the 5 dimensions out of 100, then apply weights:
|
|
144
|
+
|
|
145
|
+
| Dimension | Weight |
|
|
146
|
+
|-----------|--------|
|
|
147
|
+
| Citability | 25% |
|
|
148
|
+
| Structure | 20% |
|
|
149
|
+
| Multimodal | 15% |
|
|
150
|
+
| Authority | 20% |
|
|
151
|
+
| Technical Access | 20% |
|
|
152
|
+
|
|
153
|
+
### STEP 5: Output Report
|
|
154
|
+
|
|
155
|
+
```markdown
|
|
156
|
+
# GEO Analysis: {URL}
|
|
157
|
+
|
|
158
|
+
## AI Search Readiness Score: {X}/100
|
|
159
|
+
|
|
160
|
+
| Dimension | Score | Weight | Weighted | Key Finding |
|
|
161
|
+
|-----------|-------|--------|----------|-------------|
|
|
162
|
+
| Citability | {X}/100 | 25% | {X} | {finding} |
|
|
163
|
+
| Structure | {X}/100 | 20% | {X} | {finding} |
|
|
164
|
+
| Multimodal | {X}/100 | 15% | {X} | {finding} |
|
|
165
|
+
| Authority | {X}/100 | 20% | {X} | {finding} |
|
|
166
|
+
| Technical Access | {X}/100 | 20% | {X} | {finding} |
|
|
167
|
+
|
|
168
|
+
## AI Bot Access Status
|
|
169
|
+
|
|
170
|
+
| Bot | Status | robots.txt |
|
|
171
|
+
|-----|--------|-----------|
|
|
172
|
+
| GPTBot (ChatGPT) | Allowed/Blocked | {rule or "No rule"} |
|
|
173
|
+
| ClaudeBot (Claude) | Allowed/Blocked | {rule or "No rule"} |
|
|
174
|
+
| PerplexityBot | Allowed/Blocked | {rule or "No rule"} |
|
|
175
|
+
| Google-Extended (AI Overviews) | Allowed/Blocked | {rule or "No rule"} |
|
|
176
|
+
|
|
177
|
+
## llms.txt: {Present/Missing}
|
|
178
|
+
|
|
179
|
+
## Citability Analysis
|
|
180
|
+
|
|
181
|
+
- Citation-ready blocks found: {N}
|
|
182
|
+
- Average paragraph length: {N} words
|
|
183
|
+
- Self-contained answer blocks: {N}
|
|
184
|
+
|
|
185
|
+
## Recommendations
|
|
186
|
+
|
|
187
|
+
### Quick Wins
|
|
188
|
+
1. {highest impact, easiest change}
|
|
189
|
+
2. {next priority}
|
|
190
|
+
|
|
191
|
+
### Content Improvements
|
|
192
|
+
1. {content change for better citability}
|
|
193
|
+
2. {structural improvement}
|
|
194
|
+
|
|
195
|
+
### Technical Changes
|
|
196
|
+
1. {robots.txt or llms.txt change}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
### STEP 6: Offer Next Steps
|
|
200
|
+
|
|
201
|
+
```xml
|
|
202
|
+
<invoke name="AskUserQuestion">
|
|
203
|
+
<parameter name="questions">[{
|
|
204
|
+
"question": "GEO analysis: AI Search Readiness {X}/100. {bot_status}. {N} citation-ready blocks found.",
|
|
205
|
+
"header": "Next steps",
|
|
206
|
+
"multiSelect": false,
|
|
207
|
+
"options": [
|
|
208
|
+
{"label": "Improve citability (Recommended)", "description": "Restructure content into 134-167 word answer blocks"},
|
|
209
|
+
{"label": "Fix AI bot access", "description": "Update robots.txt to allow GPTBot, ClaudeBot, PerplexityBot"},
|
|
210
|
+
{"label": "Create llms.txt", "description": "Generate machine-readable site description"},
|
|
211
|
+
{"label": "Run full SEO audit", "description": "/agileflow:seo:audit {domain}"}
|
|
212
|
+
]
|
|
213
|
+
}]</parameter>
|
|
214
|
+
</invoke>
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
220
|
+
## Compact Summary
|
|
221
|
+
|
|
222
|
+
**Command**: `/agileflow:seo:geo` - AI search optimization (Generative Engine Optimization)
|
|
223
|
+
|
|
224
|
+
**5 Dimensions**: Citability 25%, Structure 20%, Multimodal 15%, Authority 20%, Technical Access 20%
|
|
225
|
+
|
|
226
|
+
**Key Checks**: AI bot access in robots.txt, llms.txt presence, 134-167 word citation blocks
|
|
227
|
+
|
|
228
|
+
**Target Platforms**: Google AI Overviews, ChatGPT, Perplexity, Claude
|
|
229
|
+
<!-- COMPACT_SUMMARY_END -->
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Multi-language SEO validation - hreflang tag correctness, reciprocity checks, language code validation, and international targeting
|
|
3
|
+
argument-hint: "URL"
|
|
4
|
+
compact_context:
|
|
5
|
+
priority: medium
|
|
6
|
+
preserve_rules:
|
|
7
|
+
- "ACTIVE COMMAND: /agileflow:seo:hreflang - Multi-language SEO"
|
|
8
|
+
- "Check hreflang tags, reciprocity, language codes, x-default"
|
|
9
|
+
- "Verify all language versions reference each other"
|
|
10
|
+
state_fields:
|
|
11
|
+
- target_url
|
|
12
|
+
- languages_found
|
|
13
|
+
- reciprocity_issues
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
# /agileflow:seo:hreflang
|
|
17
|
+
|
|
18
|
+
Validate multi-language SEO implementation: hreflang tags, reciprocity, language codes, x-default, and international targeting.
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## Quick Reference
|
|
23
|
+
|
|
24
|
+
```
|
|
25
|
+
/agileflow:seo:hreflang https://example.com # Check hreflang implementation
|
|
26
|
+
/agileflow:seo:hreflang https://example.com/es/ # Check from Spanish version
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Arguments
|
|
32
|
+
|
|
33
|
+
| Argument | Values | Default | Description |
|
|
34
|
+
|----------|--------|---------|-------------|
|
|
35
|
+
| URL | Any valid URL | Required | Page to check hreflang |
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## What Gets Checked
|
|
40
|
+
|
|
41
|
+
### 1. Hreflang Tag Detection
|
|
42
|
+
|
|
43
|
+
Look for hreflang in three possible locations:
|
|
44
|
+
- HTML `<head>`: `<link rel="alternate" hreflang="es" href="...">`
|
|
45
|
+
- HTTP headers: `Link: <...>; rel="alternate"; hreflang="es"`
|
|
46
|
+
- XML sitemap: `<xhtml:link rel="alternate" hreflang="es" href="..."/>`
|
|
47
|
+
|
|
48
|
+
### 2. Validation Rules
|
|
49
|
+
|
|
50
|
+
| Rule | Check | Common Error |
|
|
51
|
+
|------|-------|-------------|
|
|
52
|
+
| **Valid language codes** | ISO 639-1 (2-letter) | "eng" instead of "en" |
|
|
53
|
+
| **Valid region codes** | ISO 3166-1 (2-letter) | "uk" instead of "gb" |
|
|
54
|
+
| **x-default present** | Fallback for unmatched | Missing x-default |
|
|
55
|
+
| **Self-referencing** | Page includes itself | Missing self-reference |
|
|
56
|
+
| **Reciprocity** | A→B means B→A | One-way hreflang |
|
|
57
|
+
| **Consistent URLs** | Match canonical | hreflang to non-canonical |
|
|
58
|
+
| **Absolute URLs** | Full https:// URLs | Relative paths |
|
|
59
|
+
| **Return 200** | All hreflang URLs live | 404 or redirect targets |
|
|
60
|
+
|
|
61
|
+
### 3. Reciprocity Check
|
|
62
|
+
|
|
63
|
+
For each language version:
|
|
64
|
+
1. Fetch the page
|
|
65
|
+
2. Check that it links back to all other versions
|
|
66
|
+
3. Flag any broken reciprocity chains
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
Page A (en) → B (es), C (fr)
|
|
70
|
+
Page B (es) → A (en), C (fr) ← Must reference A and C
|
|
71
|
+
Page C (fr) → A (en), B (es) ← Must reference A and B
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
### 4. Common Issues
|
|
75
|
+
|
|
76
|
+
| Issue | Severity | Fix |
|
|
77
|
+
|-------|----------|-----|
|
|
78
|
+
| Missing x-default | HIGH | Add x-default pointing to canonical version |
|
|
79
|
+
| Broken reciprocity | HIGH | Ensure all versions reference each other |
|
|
80
|
+
| Invalid language code | MEDIUM | Use ISO 639-1 codes |
|
|
81
|
+
| hreflang to redirect | MEDIUM | Point to final destination URL |
|
|
82
|
+
| hreflang to noindex | HIGH | Don't noindex alternate versions |
|
|
83
|
+
| Mixed implementation | LOW | Use one method consistently |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Process
|
|
88
|
+
|
|
89
|
+
### STEP 1: Fetch the Target Page
|
|
90
|
+
|
|
91
|
+
Use WebFetch to retrieve the page. Extract hreflang tags from HTML head.
|
|
92
|
+
|
|
93
|
+
### STEP 2: Map All Language Versions
|
|
94
|
+
|
|
95
|
+
Build a matrix of all language versions and their hreflang references.
|
|
96
|
+
|
|
97
|
+
### STEP 3: Verify Reciprocity
|
|
98
|
+
|
|
99
|
+
Fetch each alternate version and verify it references back to all other versions.
|
|
100
|
+
|
|
101
|
+
### STEP 4: Output Report
|
|
102
|
+
|
|
103
|
+
```markdown
|
|
104
|
+
# Hreflang Analysis: {URL}
|
|
105
|
+
|
|
106
|
+
## Language Versions Found
|
|
107
|
+
|
|
108
|
+
| Language | Region | URL | Status |
|
|
109
|
+
|----------|--------|-----|--------|
|
|
110
|
+
| en | - | https://example.com/ | 200 |
|
|
111
|
+
| es | - | https://example.com/es/ | 200 |
|
|
112
|
+
| fr | FR | https://example.com/fr/ | 200 |
|
|
113
|
+
| x-default | - | https://example.com/ | 200 |
|
|
114
|
+
|
|
115
|
+
## Reciprocity Matrix
|
|
116
|
+
|
|
117
|
+
| Page | → en | → es | → fr | → x-default |
|
|
118
|
+
|------|------|------|------|-------------|
|
|
119
|
+
| /en/ | self | yes | yes | yes |
|
|
120
|
+
| /es/ | yes | self | NO | yes |
|
|
121
|
+
| /fr/ | yes | yes | self | yes |
|
|
122
|
+
|
|
123
|
+
## Issues Found
|
|
124
|
+
|
|
125
|
+
[Detailed findings]
|
|
126
|
+
|
|
127
|
+
## Hreflang Score: X/100
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
---
|
|
131
|
+
|
|
132
|
+
<!-- COMPACT_SUMMARY_START -->
|
|
133
|
+
## Compact Summary
|
|
134
|
+
|
|
135
|
+
**Command**: `/agileflow:seo:hreflang` - Multi-language SEO validation
|
|
136
|
+
|
|
137
|
+
**Checks**: hreflang tags, reciprocity, language codes, x-default, canonical consistency
|
|
138
|
+
|
|
139
|
+
**Usage**: `/agileflow:seo:hreflang URL`
|
|
140
|
+
<!-- COMPACT_SUMMARY_END -->
|