aeoptimize 0.5.2 → 0.6.0
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/.claude-plugin/marketplace.json +5 -5
- package/.claude-plugin/plugin.json +4 -4
- package/CHANGELOG.md +27 -0
- package/CONTRIBUTING.md +37 -0
- package/README.md +88 -119
- package/ROADMAP.md +31 -0
- package/SECURITY.md +15 -0
- package/agents/aeo-ai-scorer.md +10 -39
- package/agents/aeo-analyzer.md +9 -55
- package/dist/cli/index.js +19 -19
- package/dist/cli/index.js.map +1 -1
- package/dist/core/ai-prompt.js +8 -6
- package/dist/core/ai-prompt.js.map +1 -1
- package/dist/core/generator.js +17 -47
- package/dist/core/generator.js.map +1 -1
- package/dist/core/merger.js +2 -2
- package/dist/core/merger.js.map +1 -1
- package/dist/core/rules.js +92 -154
- package/dist/core/rules.js.map +1 -1
- package/dist/core/scanner.js +2 -20
- package/dist/core/scanner.js.map +1 -1
- package/dist/plugins/next.js +2 -2
- package/dist/plugins/next.js.map +1 -1
- package/dist/plugins/vite.js +2 -2
- package/dist/plugins/vite.js.map +1 -1
- package/docs/methodology.md +78 -0
- package/docs/release-v0.6.md +72 -0
- package/examples/github-action-sample/.github/workflows/aeoptimize.yml +18 -0
- package/examples/github-action-sample/README.md +9 -0
- package/examples/github-action-sample/site/index.html +38 -0
- package/fixtures/v0.6/rule-corpus.ts +314 -0
- package/package.json +26 -12
- package/scripts/verify-release-v0.6.sh +172 -0
- package/skills/aeo-generate/SKILL.md +21 -39
- package/skills/aeo-scan/SKILL.md +17 -64
- package/skills/aeo-transform/SKILL.md +20 -72
package/skills/aeo-scan/SKILL.md
CHANGED
|
@@ -1,78 +1,31 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: aeo-scan
|
|
3
|
-
description: Use when auditing a website or build output for
|
|
3
|
+
description: Use when auditing a website or build output for deterministic content-readiness regressions and evidence-bounded discovery checks
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# AEO Scan —
|
|
6
|
+
# AEO Scan — Content Readiness Audit
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Scoring Dimensions (0-100)
|
|
11
|
-
|
|
12
|
-
| Dimension | Max | What it measures |
|
|
13
|
-
|-----------|-----|------------------|
|
|
14
|
-
| Structure | 25 | Heading hierarchy, paragraph length, FAQ presence, list usage |
|
|
15
|
-
| Citability | 25 | Self-contained statements, data/stats, definitions, attribution |
|
|
16
|
-
| Schema | 20 | JSON-LD presence, completeness, AI-relevant types |
|
|
17
|
-
| AI Metadata | 15 | llms.txt, robots.txt AI config, meta description |
|
|
18
|
-
| Content Density | 15 | Content vs boilerplate, keyword stuffing, uniqueness |
|
|
8
|
+
Run aeoptimize against a URL or build directory. The deterministic report is suitable for regression checks; optional Gemini, Copilot, or Claude reviews are experimental and do not predict ranking, indexing, rich results, visibility, or citation.
|
|
19
9
|
|
|
20
10
|
## Workflow
|
|
21
11
|
|
|
22
|
-
1.
|
|
23
|
-
|
|
24
|
-
2. **Detect AI CLIs.** Check which AI tools are available:
|
|
25
|
-
```
|
|
26
|
-
which gemini && which copilot
|
|
27
|
-
```
|
|
28
|
-
Report which are found. If both are available, offer multi-AI scoring.
|
|
29
|
-
|
|
30
|
-
3. **Run scan.** Choose based on available CLIs:
|
|
12
|
+
1. Identify the URL, file, or build directory.
|
|
13
|
+
2. Run the deterministic scan with machine-readable output:
|
|
31
14
|
|
|
32
|
-
|
|
33
|
-
```
|
|
34
|
-
npx aeoptimize scan <target> --multi-ai --json
|
|
35
|
-
```
|
|
36
|
-
This runs the rule engine + dispatches gemini/copilot for parallel scoring.
|
|
37
|
-
|
|
38
|
-
**If no external CLIs:**
|
|
39
|
-
```
|
|
15
|
+
```bash
|
|
40
16
|
npx aeoptimize scan <target> --json
|
|
17
|
+
npx aeoptimize scan <directory> --dir --json
|
|
41
18
|
```
|
|
42
|
-
Then use the `aeo-ai-scorer` agent to add Claude's AI-level analysis on top of the rule engine score.
|
|
43
|
-
|
|
44
|
-
4. **Present results.** Show:
|
|
45
|
-
- **Consensus score** (rule engine + AI weighted average)
|
|
46
|
-
- **Per-scorer breakdown** (Rule Engine, Claude, Gemini, Copilot — whichever are available)
|
|
47
|
-
- Dimensions scoring below 60% of their max
|
|
48
|
-
- All critical issues
|
|
49
|
-
- **AI insights** — each AI's one-sentence summary of the biggest issue
|
|
50
|
-
|
|
51
|
-
5. **Discuss improvements.** For each weak dimension, explain:
|
|
52
|
-
- Why it matters for AI search visibility
|
|
53
|
-
- Concrete steps to improve
|
|
54
|
-
- Expected score impact
|
|
55
|
-
- Cross-reference insights from different AI scorers if they agree/disagree
|
|
56
|
-
|
|
57
|
-
6. **Deep analysis (optional).** If the user wants detailed per-page analysis, dispatch the `aeo-analyzer` agent with the page HTML and scan report. It provides issue-by-issue breakdown with before/after examples.
|
|
58
|
-
|
|
59
|
-
7. **Offer next steps:**
|
|
60
|
-
- Score below 50? Suggest running `/aeo-transform` on the worst pages
|
|
61
|
-
- Missing llms.txt or schema? Suggest `/aeo-generate`
|
|
62
|
-
- Score above 80? Congratulate and suggest monitoring over time
|
|
63
|
-
|
|
64
|
-
## Multi-AI Scoring Methodology
|
|
65
19
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
| Rule engine only | 100% rule engine |
|
|
20
|
+
3. Report the deterministic score, methodology version, critical findings, and heuristic limitations.
|
|
21
|
+
4. Use `--multi-ai` only when the user explicitly asks for a subjective review. Label the result an experimental blend and keep the deterministic score separate.
|
|
22
|
+
5. Prioritize sourced quantitative claims, unintentional `noindex`, malformed or misleading structured data, and reproducible content regressions.
|
|
23
|
+
6. Suggest `/aeo-generate` only for an optional artifact preview. State that `llms.txt` is an unscored proposal.
|
|
71
24
|
|
|
72
|
-
##
|
|
25
|
+
## Boundaries
|
|
73
26
|
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
77
|
-
- If
|
|
78
|
-
-
|
|
27
|
+
- FAQ content and `llms.txt` have no score impact.
|
|
28
|
+
- A score increase is not evidence of a ranking or citation increase.
|
|
29
|
+
- Generated schema must match visible content and current feature documentation.
|
|
30
|
+
- If a URL scan fails, use an authorized local build instead of bypassing access controls.
|
|
31
|
+
- Always use `--json` when another tool will consume the result.
|
|
@@ -1,84 +1,32 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: aeo-transform
|
|
3
|
-
description: Use when
|
|
3
|
+
description: Use when proposing evidence-bounded readability and structure edits without inventing content, ranking claims, or structured data
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# AEO Transform —
|
|
6
|
+
# AEO Transform — Evidence-Bounded Content Restructuring
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
## Transformation Strategies
|
|
11
|
-
|
|
12
|
-
| Strategy | What it does | Impact |
|
|
13
|
-
|----------|-------------|--------|
|
|
14
|
-
| **Split paragraphs** | Break long paragraphs (>150 words) into self-contained statements | High |
|
|
15
|
-
| **Extract FAQ** | Find implicit Q&A content and convert to explicit FAQ with schema | High |
|
|
16
|
-
| **Remove keyword stuffing** | Replace repeated keywords with natural synonyms | High |
|
|
17
|
-
| **Improve headings** | Rewrite vague headings as specific, question-format headings | Medium |
|
|
18
|
-
| **Add structured data** | Inject JSON-LD based on content analysis | Medium |
|
|
19
|
-
| **Fix dangling references** | Rewrite paragraphs starting with "This", "It", "They" to be self-contained | Medium |
|
|
8
|
+
Propose focused edits while preserving meaning, voice, provenance, and recoverability.
|
|
20
9
|
|
|
21
10
|
## Workflow
|
|
22
11
|
|
|
23
|
-
1.
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
- Identify which strategies apply based on the issues found
|
|
29
|
-
|
|
30
|
-
3. **Transform incrementally.** Apply one strategy at a time:
|
|
31
|
-
- Show the proposed change as a diff
|
|
32
|
-
- Explain why this change improves AI readability
|
|
33
|
-
- Wait for user approval before applying
|
|
34
|
-
- Move to the next strategy
|
|
35
|
-
|
|
36
|
-
4. **Preserve voice.** Critical rules:
|
|
37
|
-
- Never invent new content or add claims not in the original
|
|
38
|
-
- Preserve the author's writing style and tone
|
|
39
|
-
- Only restructure — do not rewrite meaning
|
|
40
|
-
- Keep all existing data, quotes, and references intact
|
|
41
|
-
|
|
42
|
-
5. **Verify improvement.** After all transforms:
|
|
43
|
-
- Re-run `npx aeoptimize scan <file> --json`
|
|
44
|
-
- Show before/after score comparison
|
|
45
|
-
- Highlight which dimensions improved
|
|
46
|
-
|
|
47
|
-
## Strategy Details
|
|
48
|
-
|
|
49
|
-
### Split Paragraphs
|
|
50
|
-
For each paragraph over 150 words:
|
|
51
|
-
- Identify distinct ideas within the paragraph
|
|
52
|
-
- Split at natural boundaries (topic shifts, "Additionally", "However")
|
|
53
|
-
- Ensure each new paragraph is self-contained (has its own subject, not just "It..." or "This...")
|
|
54
|
-
|
|
55
|
-
### Extract FAQ
|
|
56
|
-
Look for patterns like:
|
|
57
|
-
- Heading followed by a short answer paragraph
|
|
58
|
-
- "What is X?" / "How does X work?" patterns in body text
|
|
59
|
-
- Implicit questions answered in the content
|
|
60
|
-
|
|
61
|
-
Convert to:
|
|
62
|
-
- Explicit `<h3>` question headings
|
|
63
|
-
- Concise answer paragraphs
|
|
64
|
-
- FAQPage JSON-LD schema
|
|
12
|
+
1. Read one authorized file and run the deterministic scan.
|
|
13
|
+
2. Classify each finding as an official requirement, deterministic check, heuristic, or experiment.
|
|
14
|
+
3. Show a focused diff before changing the file.
|
|
15
|
+
4. Change only what improves readability, factual provenance, or a documented technical requirement.
|
|
16
|
+
5. Rerun the same scan and report the reproducible output change separately from any external outcome.
|
|
65
17
|
|
|
66
|
-
|
|
67
|
-
When a word appears >3% of content (excluding stop words):
|
|
68
|
-
- Replace some occurrences with synonyms or related terms
|
|
69
|
-
- Remove redundant mentions that don't add meaning
|
|
70
|
-
- Ensure remaining usage feels natural
|
|
18
|
+
## Allowed transformations
|
|
71
19
|
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
-
|
|
76
|
-
-
|
|
20
|
+
- Split a long paragraph where comprehension improves.
|
|
21
|
+
- Repair a genuinely confusing document outline; multiple H1 elements are not automatically wrong.
|
|
22
|
+
- Cite or remove unsupported quantitative claims.
|
|
23
|
+
- Reduce repetitive wording without changing meaning.
|
|
24
|
+
- Propose structured data only when it matches visible content and current documentation.
|
|
25
|
+
- Clarify genuine reader questions without auto-generating FAQ schema.
|
|
77
26
|
|
|
78
|
-
##
|
|
27
|
+
## Boundaries
|
|
79
28
|
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
84
|
-
- Supports `.html` and `.md` files
|
|
29
|
+
- Never invent facts, statistics, sources, quotes, authors, dates, or benefits.
|
|
30
|
+
- Never describe a score increase as evidence of ranking, indexing, rich results, or citation.
|
|
31
|
+
- Never batch-transform files without explicit scope.
|
|
32
|
+
- Preserve a reviewable diff and the user's original voice.
|