anymorph 0.4.0 → 0.5.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.
Files changed (76) hide show
  1. package/README.md +3 -3
  2. package/dist/index.js +78 -6
  3. package/package.json +1 -1
  4. package/dist/skillpacks/geo/scaffold/AGENTS.md +0 -38
  5. package/dist/skillpacks/geo/scaffold/CLAUDE.md +0 -33
  6. package/dist/skillpacks/geo/shared/evidence-principles.md +0 -35
  7. package/dist/skillpacks/geo/shared/geo-principles.md +0 -281
  8. package/dist/skillpacks/geo/shared/vertical-playbooks/beauty.md +0 -65
  9. package/dist/skillpacks/geo/shared/vertical-playbooks/commerce.md +0 -65
  10. package/dist/skillpacks/geo/shared/vertical-playbooks/ota.md +0 -62
  11. package/dist/skillpacks/geo/shared/vertical-playbooks/saas.md +0 -64
  12. package/dist/skillpacks/geo/skills/brand-owned-diagnosis/SKILL.md +0 -54
  13. package/dist/skillpacks/geo/skills/brand-owned-diagnosis/agents/openai.yaml +0 -4
  14. package/dist/skillpacks/geo/skills/brand-owned-diagnosis/references/diagnosis-contract.md +0 -95
  15. package/dist/skillpacks/geo/skills/brand-owned-diagnosis/references/workflow.md +0 -194
  16. package/dist/skillpacks/geo/skills/geo-generating-actions/SKILL.md +0 -188
  17. package/dist/skillpacks/geo/skills/geo-generating-actions/agents/openai.yaml +0 -4
  18. package/dist/skillpacks/geo/skills/geo-generating-actions/references/orchestrator.workflow.md +0 -440
  19. package/dist/skillpacks/geo/skills/geo-generating-actions/scripts/geo-scaffold.mjs +0 -358
  20. package/dist/skillpacks/geo/skills/geo-generating-actions/scripts/geo.mjs +0 -66
  21. package/dist/skillpacks/geo/skills/geo-initializing-strategy/SKILL.md +0 -50
  22. package/dist/skillpacks/geo/skills/geo-initializing-strategy/agents/openai.yaml +0 -4
  23. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/external-authority-diagnosis.md +0 -66
  24. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/foundation-diagnosis.md +0 -86
  25. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/memory-contract.md +0 -15
  26. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/semantic-clusters-diagnosis.md +0 -58
  27. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/strategy-map-contract.md +0 -26
  28. package/dist/skillpacks/geo/skills/geo-initializing-strategy/references/visibility-diagnosis.md +0 -50
  29. package/dist/skillpacks/geo/skills/geo-local-setup/SKILL.md +0 -66
  30. package/dist/skillpacks/geo/skills/geo-local-setup/agents/openai.yaml +0 -4
  31. package/dist/skillpacks/geo/skills/geo-page-writer/SKILL.md +0 -81
  32. package/dist/skillpacks/geo/skills/geo-page-writer/agents/openai.yaml +0 -4
  33. package/dist/skillpacks/geo/skills/geo-page-writer/references/research.md +0 -61
  34. package/dist/skillpacks/geo/skills/geo-page-writer/references/validation.md +0 -59
  35. package/dist/skillpacks/geo/skills/geo-page-writer/references/writing.md +0 -55
  36. package/dist/skillpacks/geo/skills/geo-page-writer/scripts/check-page-mdx.mjs +0 -210
  37. package/dist/skillpacks/geo/skills/geo-page-writer/scripts/collect-page-sources.mjs +0 -303
  38. package/dist/skillpacks/geo/skills/geo-pages-diagnosis/SKILL.md +0 -51
  39. package/dist/skillpacks/geo/skills/geo-pages-diagnosis/agents/openai.yaml +0 -4
  40. package/dist/skillpacks/geo/skills/geo-pages-diagnosis/references/diagnosis-contract.md +0 -125
  41. package/dist/skillpacks/geo/skills/geo-pages-diagnosis/references/workflow.md +0 -269
  42. package/dist/skillpacks/geo/skills/geo-writer/SKILL.md +0 -234
  43. package/dist/skillpacks/geo/skills/geo-writer/agents/openai.yaml +0 -4
  44. package/dist/skillpacks/geo/skills/geo-writer/references/content-writer-contract.md +0 -316
  45. package/dist/skillpacks/geo/skills/geo-writer/references/direct-sql.md +0 -187
  46. package/dist/skillpacks/geo/skills/geo-writer/references/seo-geo-insights.md +0 -269
  47. package/dist/skillpacks/geo/skills/seo-ecommerce-opportunity/SKILL.md +0 -82
  48. package/dist/skillpacks/geo/skills/seo-ecommerce-opportunity/agents/openai.yaml +0 -5
  49. package/dist/skillpacks/geo/skills/seo-ecommerce-opportunity/references/ecommerce-rules.md +0 -31
  50. package/dist/skillpacks/geo/skills/seo-internal-link-opportunity/SKILL.md +0 -57
  51. package/dist/skillpacks/geo/skills/seo-internal-link-opportunity/agents/openai.yaml +0 -5
  52. package/dist/skillpacks/geo/skills/seo-internal-link-opportunity/references/link-rules.md +0 -28
  53. package/dist/skillpacks/geo/skills/seo-opportunity-audit/SKILL.md +0 -141
  54. package/dist/skillpacks/geo/skills/seo-opportunity-audit/agents/openai.yaml +0 -5
  55. package/dist/skillpacks/geo/skills/seo-opportunity-audit/references/action-contract.md +0 -62
  56. package/dist/skillpacks/geo/skills/seo-opportunity-audit/scripts/seo-toolkit.mjs +0 -248
  57. package/dist/skillpacks/geo/skills/seo-page-diagnosis/SKILL.md +0 -56
  58. package/dist/skillpacks/geo/skills/seo-page-diagnosis/agents/openai.yaml +0 -5
  59. package/dist/skillpacks/geo/skills/seo-page-diagnosis/references/page-checks.md +0 -38
  60. package/dist/skillpacks/geo/skills/seo-serp-opportunity-research/SKILL.md +0 -66
  61. package/dist/skillpacks/geo/skills/seo-serp-opportunity-research/agents/openai.yaml +0 -5
  62. package/dist/skillpacks/geo/skills/seo-serp-opportunity-research/references/page-type-taxonomy.md +0 -40
  63. package/dist/skillpacks/geo/skills/seo-serp-opportunity-research/references/serp-methodology.md +0 -38
  64. package/dist/skillpacks/geo/skills/seo-technical-diagnosis/SKILL.md +0 -64
  65. package/dist/skillpacks/geo/skills/seo-technical-diagnosis/agents/openai.yaml +0 -5
  66. package/dist/skillpacks/geo/skills/seo-technical-diagnosis/references/checks.md +0 -58
  67. package/dist/skillpacks/geo/skills/third-party-diagnosis/SKILL.md +0 -54
  68. package/dist/skillpacks/geo/skills/third-party-diagnosis/agents/openai.yaml +0 -4
  69. package/dist/skillpacks/geo/skills/third-party-diagnosis/references/diagnosis-contract.md +0 -111
  70. package/dist/skillpacks/geo/skills/third-party-diagnosis/references/workflow.md +0 -174
  71. package/dist/skillpacks/geo/skills/third-party-execution-planning/SKILL.md +0 -64
  72. package/dist/skillpacks/geo/skills/third-party-execution-planning/agents/openai.yaml +0 -4
  73. package/dist/skillpacks/geo/skills/third-party-execution-planning/references/execution-contract.md +0 -90
  74. package/dist/skillpacks/geo/skills/third-party-execution-planning/references/non-social-surface-playbooks.md +0 -123
  75. package/dist/skillpacks/geo/skills/third-party-execution-planning/references/reddit-rules.md +0 -69
  76. package/dist/skillpacks/geo/skills/third-party-execution-planning/references/social-platform-playbooks.md +0 -59
@@ -1,65 +0,0 @@
1
- # Commerce SEO/GEO/AEO Playbook
2
-
3
- ## Scope
4
-
5
- Reusable guidance for ecommerce and consumer goods outside beauty-specific use cases. Use this for vertical strategy, diagnosis, and page planning.
6
-
7
- ## Entity And Demand Patterns
8
-
9
- - Map demand across category, subcategory, product type, product family, SKU, and variant.
10
- - Common patterns: `category x use case`, `product type x audience`, `product x comparison`, `product x review`, `product x problem/compatibility`, and `SKU/model x spec/fit/size/material`.
11
- - Category pages are broad-intent assets. PDPs are exact product entity assets. Buying guides, comparisons, and reviews are decision-stage assets.
12
- - Variant pages and feeds are evidence layers for size, color, material, bundle, price, availability, and compatibility.
13
- - Prefer stable identifiers: brand, MPN, GTIN/EAN/UPC, SKU, model, and variant group.
14
-
15
- ## Search And AI Surfaces
16
-
17
- - Web results, product rich results, merchant listings, shopping tabs, image/visual search, local inventory, retailer search, marketplace search, and AI answers that synthesize product and review content.
18
- - The same product should be understandable from page HTML, structured data, and feed data.
19
- - AI visibility is indirect and not guaranteed. The safest approach is crawlable, unique, evidence-backed product content plus fresh structured commerce data.
20
- - Owned pages, feeds, and marketplace/retailer listings should reinforce the same product entity facts.
21
-
22
- ## Asset Plays
23
-
24
- - Category x use-case pages: pair category terms with real jobs-to-be-done, occasions, constraints, and product routing.
25
- - PDP upgrades: exact title, core attributes, specs, compatibility, materials, dimensions, images, shipping, returns, price, stock, reviews, and schema.
26
- - SKU-level evidence: publish model/SKU/GTIN/MPN where available and keep identifiers consistent across owned and syndicated surfaces.
27
- - Product schema and merchant listings: use Product/Offer data that matches visible content. Use variant grouping for product families.
28
- - Faceted navigation: control filters, sorts, and parameter URLs. Index only useful, distinct, demand-backed pages.
29
- - Variant strategy: define single PDP vs variant URL handling, canonicalization, inventory state, and ProductGroup data where appropriate.
30
- - Product feeds: maintain feed hygiene for large, fast-changing, or high-variant catalogs.
31
- - Reviews: support customer, expert, and editorial reviews with firsthand evidence, measurements, pros/cons, and best-fit context.
32
- - Comparison and buying guides: `best for X`, `A vs B`, `best under Y`, and `what to choose if Z`, with clear links to PDPs and category hubs.
33
- - Images/video: show the actual product, scale, setup, fit, usage, and variant differences.
34
-
35
- ## Evidence And Claim Safety
36
-
37
- - Prefer verifiable attributes over persuasion copy.
38
- - Separate fact from marketing language.
39
- - Only claim specs, compatibility, performance, material, certifications, warranty, or `best for` statements when evidence exists.
40
- - Regulated or high-risk goods need separate review: supplements, OTC drugs, alcohol, nicotine, medical devices, children’s products, electronics safety, automotive parts, and sustainability claims.
41
- - Comparisons and guides need measurements, criteria, firsthand observations, and explicit tradeoffs.
42
- - Keep page, schema, feed, and retailer facts synchronized.
43
- - Freshness-sensitive facts include price, availability, shipping, returns, sale windows, inventory, policy details, out-of-stock, discontinued, backorder, and promo states.
44
- - If reviews or comparisons monetize outbound links, keep disclosures and link handling compliant.
45
-
46
- ## Measurement Signals
47
-
48
- - Indexation and crawl coverage for categories, PDPs, and variant pages.
49
- - Product rich result and merchant listing eligibility, errors, and warnings.
50
- - Feed disapprovals, mismatch rates, attribute completeness, and freshness latency.
51
- - Impressions/clicks by category, use-case, comparison, PDP, and SKU query classes.
52
- - PDP conversion, add-to-cart, category-to-PDP CTR, and marketplace/retailer share.
53
- - Review coverage, rating volume, product identifier coverage, and valid schema coverage.
54
- - AI mention, owned citation, cited source mix, and branded query lift after guide/review publication.
55
-
56
- ## Anti-Patterns
57
-
58
- - One thin PDP template repeated across many SKUs.
59
- - Category pages that are only product grids.
60
- - Query-fanout pages for every wording variation.
61
- - `Best` or review pages with no firsthand evidence, measurements, or tradeoffs.
62
- - Variant facts hidden behind JS selectors or collapsed product families.
63
- - Price, stock, shipping, or return mismatches between page, schema, feed, and retailer.
64
- - Missing or unstable product identifiers across syndication channels.
65
- - Treating GEO/AEO as separate from product data quality, crawlability, and evidence.
@@ -1,62 +0,0 @@
1
- # OTA / Travel SEO/GEO/AEO Playbook
2
-
3
- ## Scope
4
-
5
- Reusable guidance for OTA, travel marketplace, destination, lodging, tour, and things-to-do businesses. Use this for vertical strategy, diagnosis, and page planning.
6
-
7
- ## Entity And Demand Patterns
8
-
9
- - Travel demand mixes entity-led planning with date, price, availability, route, and booking-led transactions.
10
- - Core entities: destination, neighborhood, property, operator, attraction, route, itinerary, traveler type, season, event, availability, price, review, and policy.
11
- - Durable patterns include `destination x traveler type`, `destination x use case`, `destination x season`, `destination x trip length`, `destination x things-to-do`, `destination x where-to-stay`, and `property/tour x availability + price + review`.
12
- - Best travel pages connect entities across trip planning, local context, inventory, and booking instead of treating keywords as isolated posts.
13
-
14
- ## Search And AI Surfaces
15
-
16
- - Web results, maps/local packs, rich results, review surfaces, partner/affiliate listings, tourism boards, and AI travel-planning answers.
17
- - Travel planning pages should answer: who it is for, when to go, how long to spend, what to do in order, where to stay, cost assumptions, what is included, and what may be unavailable or seasonal.
18
- - Strong travel content is specific, itinerary-shaped, comparison-friendly, source-aware, and explicit about freshness and uncertainty.
19
- - Maps/local visibility is part of SEO for physical travel entities, not a separate concern.
20
-
21
- ## Asset Plays
22
-
23
- - Destination hubs: neighborhoods, attractions, maps, audience fit, seasonality, and links to stays/tours/itineraries.
24
- - Itinerary pages: common durations, ordered plans, timing, transport, tradeoffs, alternatives, and booking modules.
25
- - Things-to-do pages: attraction entities with hours, access, cost/free status, location, seasonality, and best-fit traveler types.
26
- - Where-to-stay pages: neighborhood fit, accommodation types, budget bands, transit access, practical considerations, and inventory links.
27
- - Property/tour pages: price, availability, amenities, images, geo, cancellation, inclusions, exclusions, and review evidence.
28
- - Local readiness: name, address, geo, hours, category, business details, review signals, and profile consistency.
29
- - Partner/affiliate surfaces: keep names, location data, inventory facts, ratings, images, and policies consistent across syndicated listings.
30
-
31
- ## Evidence And Claim Safety
32
-
33
- - Never publish stale availability or stale prices as if live.
34
- - Label prices, taxes, mandatory fees, `from` pricing, seasonal ranges, currency, cancellation terms, and uncertain timing clearly.
35
- - Distinguish live, feed-supplied, estimated, seasonal, and stale facts.
36
- - Separate evergreen editorial guidance from volatile booking facts.
37
- - Structured data must match visible page content and page purpose.
38
- - Do not mark up hidden, fake, misleading, or irrelevant review content.
39
- - Distinguish editorial recommendation, user review, partner-supplied fact, live feed fact, and estimated itinerary timing.
40
- - Safety content should use sourced, dated practical considerations. Do not declare areas categorically safe or unsafe without authoritative sourcing and review.
41
- - Use Google Business Profile, VacationRental, and things-to-do markup/feed concepts only when the tenant is eligible and the data matches visible content.
42
- - Freshness-sensitive facts include availability, hours, closures, seasonal access, review dates, policy changes, taxes, fees, inclusions, and cancellation terms.
43
-
44
- ## Measurement Signals
45
-
46
- - Destination, itinerary, things-to-do, and where-to-stay impressions.
47
- - Indexation and rich-result coverage for key entity pages.
48
- - Booking conversion, inventory clickthrough, partner outbound CTR, and assisted conversions.
49
- - Map/profile visibility, direction/call/website actions, review volume, rating, and reply rate.
50
- - Freshness coverage for price, availability, hours, and policy fields.
51
- - AI mention, owned citation, itinerary answer inclusion, and cited source mix.
52
-
53
- ## Anti-Patterns
54
-
55
- - Thin `best things to do` pages with no entity depth.
56
- - Destination pages with no traveler, season, or use-case segmentation.
57
- - Generic itinerary copy reused across destinations.
58
- - Mixing evergreen advice with stale booking facts.
59
- - Schema that does not match visible content.
60
- - Review markup without trustworthy visible reviews.
61
- - Hiding fees, blackout periods, closures, or booking constraints.
62
- - Contradictory partner and first-party listings.
@@ -1,64 +0,0 @@
1
- # SaaS SEO/GEO/AEO Playbook
2
-
3
- ## Scope
4
-
5
- Reusable guidance for B2B SaaS and software-led subscription businesses. Use this for vertical strategy, diagnosis, and page planning. Keep tenant-specific positioning and bets in `agent/STRATEGY.md`.
6
-
7
- ## Entity And Demand Patterns
8
-
9
- - SaaS demand is entity-led: category, problem, role, workflow, use case, feature, integration, competitor, pricing model, security standard, and deployment model.
10
- - Map demand by buying stage: problem, use case, workflow, integration, evaluation, validation, implementation, and support.
11
- - Common patterns: `role x problem`, `workflow x tool`, `integration x integration`, `feature x use case`, `competitor x alternative`, `category x industry`.
12
- - Treat docs, integrations, trust pages, and comparisons as demand capture assets, not only support material.
13
- - Build pages that stand alone for users and search systems: clear scope, crawlable text, explicit product facts, stable terminology, self-contained answers, and proof near claims.
14
-
15
- ## Search And AI Surfaces
16
-
17
- - Web search, AI answer surfaces, Bing/Copilot-style citation layers, review platforms, docs, help centers, changelogs, trust centers, and status/security pages.
18
- - Review platforms such as G2, Capterra, TrustRadius, and analyst-style marketplaces influence validation and external authority.
19
- - Documentation can capture high-intent implementation queries and assist activation when it links to product value and next steps.
20
- - AI search experiences may synthesize information from multiple indexed sources. Make product facts crawlable, current, and unambiguous, but do not assume any specific page type will be cited.
21
-
22
- ## Asset Plays
23
-
24
- - Category pages: define the category, who it is for, differentiation, proof, pricing path, and links to deeper assets.
25
- - Problem pages: explain pain, root causes, measurable outcomes, and product fit. Avoid generic thought leadership.
26
- - Use-case pages: role, industry, scenario, inputs, outputs, success metrics, and examples.
27
- - Workflow pages: before/after process, systems touched, time/risk savings, and fit constraints.
28
- - Integration pages: what connects, triggers/actions, setup path, limitations, related docs, and adjacent integrations.
29
- - Alternative/comparison pages: objective criteria, current facts, tradeoffs, methodology, and buyer-help framing.
30
- - Docs-assisted activation: prerequisites, architecture notes, examples, demos, templates, and product pathways.
31
- - Trust pages: verified security, privacy, compliance, and admin-control facts with artifact paths. Do not list controls or certifications unless currently supported.
32
- - Proof assets: case studies, testimonials, review profiles, benchmarks, analyst mentions, and compliant review coverage/recency.
33
-
34
- ## Evidence And Claim Safety
35
-
36
- - Attribute substantive claims to first-party product facts, public docs, customer evidence, third-party reviews, benchmarks, or trust artifacts.
37
- - Separate product facts from positioning. `Supports SAML SSO` is not the same as `best enterprise security`.
38
- - Comparison claims must be truthful, current, non-deceptive, and clear about methodology.
39
- - Do not imply certifications, integrations, customer logos, uptime, ROI, feature parity, or compliance posture without proof.
40
- - Security, compliance, privacy, and regulated-industry claims need an artifact path: trust center, policy page, release note, support doc, or certification.
41
- - Do not claim AI capability, autonomy, accuracy, compliance suitability, legal/medical/security adequacy, or productivity gains without product evidence and disclaimers.
42
- - Pricing, plan limits, edition availability, API limits, add-ons, and enterprise-only capabilities must match product docs and pricing pages.
43
- - Use careful ROI language. Prefer scenarios, ranges, and case-backed examples over universal promises.
44
- - AI-assisted content needs human editorial control; scaled low-value SaaS pages are a quality risk.
45
-
46
- ## Measurement Signals
47
-
48
- - Indexation and crawl health by page type.
49
- - Non-brand impressions and rankings for category, problem, integration, workflow, and comparison intents.
50
- - AI citation, supporting-link appearance, and answer inclusion for tracked prompts.
51
- - Demo/trial starts, product-qualified signups, qualified pipeline, and win-rate influence.
52
- - Docs-to-signup assists, docs-to-demo assists, docs CTA CTR, and activation by doc cluster.
53
- - Review-platform completeness, rating, review coverage, recency, representativeness, and compliant solicitation.
54
- - Trust-page engagement and enterprise conversion assists.
55
-
56
- ## Anti-Patterns
57
-
58
- - Thin `best X`, industry, or city pages with no real differentiation.
59
- - Treating GEO as separate from crawlability, canonical hygiene, and helpful content.
60
- - Hiding product facts behind JS, login walls, PDFs, or vague marketing copy.
61
- - Attack-style comparison pages.
62
- - Docs that rank but never route users to activation.
63
- - Security or compliance claims without proof paths.
64
- - Schema, AI text generation, or review widgets used as shortcuts to trust.
@@ -1,54 +0,0 @@
1
- ---
2
- name: brand-owned-diagnosis
3
- description: Use when diagnosing customer-owned discovered pages for GEO strategy actions, owned-site visibility gaps, content coverage issues, or technical page fixes.
4
- ---
5
-
6
- # Brand-Owned Diagnosis
7
-
8
- Use this skill for customer-owned pages that are not Anymorph-generated GEO pages.
9
-
10
- The output is a compact diagnosis plus action candidates for `assetType="brand_owned"`.
11
-
12
- ## Scope
13
-
14
- Diagnose:
15
-
16
- - Existing brand-owned page coverage.
17
- - Content clarity, proof, comparison, and entity gaps.
18
- - Technical or crawl blockers on customer-owned pages.
19
- - GSC, SERP, AI response, and competitor gaps tied to a known owned URL.
20
-
21
- Do not propose:
22
-
23
- - Generated GEO page work.
24
- - Third-party outreach or external profile work.
25
- - New page generation when an existing generated GEO page is the right surface.
26
-
27
- ## Workflow
28
-
29
- Read these references before producing proposals:
30
-
31
- - `references/workflow.md` for the full brand-owned product workflow, candidate rules, root causes, action families, scoring, and no-action cases.
32
- - `references/diagnosis-contract.md` for the exact runtime diagnosis contract and artifact submission shape.
33
-
34
- 1. Read shared run context and the brand-owned candidate slice.
35
- 2. Use `list_brand_owned_candidates` before broad SQL.
36
- 3. Use `get_geo_intent_diagnostic` for intent-level explanation.
37
- 4. Read page content or source only when the recommendation depends on the body or technical implementation.
38
- 5. Return accepted proposals, rejected candidates, and no-action rationale.
39
-
40
- ## Output Contract
41
-
42
- Return proposals that can be merged into final GEO actions.
43
-
44
- Each proposal should include:
45
-
46
- - intent or proposed intent.
47
- - existing page URL or page id when known.
48
- - root cause.
49
- - operation family.
50
- - priority and confidence.
51
- - evidence references.
52
- - concise change brief.
53
-
54
- Use no action when the owned page is not the bottleneck.
@@ -1,4 +0,0 @@
1
- interface:
2
- display_name: "Brand-Owned Diagnosis"
3
- short_description: "Diagnose customer-owned pages for GEO strategy actions."
4
- default_prompt: "Use $brand-owned-diagnosis to diagnose owned-page GEO gaps for this workspace."
@@ -1,95 +0,0 @@
1
- # GEO Strategy: Brand-Owned Diagnosis
2
-
3
- You diagnose customer-owned discovered pages.
4
-
5
- ## Scope
6
-
7
- Work only on pages where the tenant/customer site owns the page and the page is not an Anymorph-generated GEO page.
8
-
9
- Cases:
10
-
11
- - page exists but visibility is low
12
- - page is cited but the brand is not mentioned
13
- - brand is mentioned but not recommended
14
-
15
- Do not propose GEO page generation unless the orchestrator explicitly asks you to compare update-vs-create.
16
-
17
- ## Evidence Order
18
-
19
- Use the cheapest sufficient evidence.
20
-
21
- 1. Common run context and candidate rows from the orchestrator.
22
- 2. `list_brand_owned_candidates` for the first brand-owned candidate slice.
23
- 3. `get_geo_intent_diagnostic` for one intent before deeper checks.
24
- 4. `get_page_insights` default compact mode for page decision evidence; use `mode: "full"`, `get_page_visibility`, or `list_ai_responses` only when raw evidence changes the recommendation.
25
- 5. `get_page_content` only when content or technical diagnosis depends on the page body.
26
- 6. `web_scrape` only for a specific competitor URL that changes the recommendation.
27
-
28
- Do not scrape broadly.
29
-
30
- ## Root Cause Buckets
31
-
32
- Allowed buckets:
33
-
34
- - `intent_coverage_gap`
35
- - `content_depth_gap`
36
- - `entity_clarity_gap`
37
- - `generic_content_gap`
38
- - `proof_gap`
39
- - `comparison_gap`
40
- - `technical_issue`
41
- - `authority_gap`
42
- - `prompt_mismatch`
43
- - `not_a_problem`
44
- - `insufficient_evidence`
45
-
46
- Use `authority_gap` only with external citation evidence or repeated competitor recommendation reasons.
47
-
48
- ## Action Families
49
-
50
- Allowed families:
51
-
52
- - `update_existing_page`
53
- - `retarget_existing_page`
54
- - `merge_or_redirect_page`
55
- - `no_action`
56
-
57
- Keep specific fixes such as proof, entity clarity, comparison coverage, and technical repairs in `rootCauses` and `operations`, not as separate action families.
58
-
59
- ## Output
60
-
61
- Produce one `brand_owned` diagnosis object in this shape.
62
-
63
- Do not write intermediate diagnosis JSON files directly.
64
-
65
- Do not include `workspaceId`, `runId`, `channel`, final action id, or final `assetType`; the orchestrator can derive them.
66
-
67
- Use this shape:
68
-
69
- ```json
70
- {
71
- "summary": "Short diagnosis.",
72
- "proposals": [
73
- {
74
- "intentId": "intent_123",
75
- "candidateType": "page_exists_low_visibility",
76
- "target": { "pageId": "page_123", "url": "https://example.com/page" },
77
- "rootCauses": [
78
- { "bucket": "proof_gap", "confidence": 0.72, "evidence": ["Specific evidence summary"] }
79
- ],
80
- "actionFamily": "update_existing_page",
81
- "operations": ["Add customer proof near the answer block"],
82
- "priority": "high",
83
- "confidence": "medium",
84
- "evidence": [
85
- { "type": "signal", "ref": "geo_recommendation_quadrants:intent_123", "summary": "Mentioned but not recommended dominates." }
86
- ],
87
- "whyNow": "Why this matters this week.",
88
- "risks": ["Uncertainty or dependency"]
89
- }
90
- ],
91
- "rejected": [
92
- { "ref": "intent_456", "reason": "Suppressed by recent action mask." }
93
- ]
94
- }
95
- ```
@@ -1,194 +0,0 @@
1
- # Brand-Owned Diagnosis Workflow
2
-
3
- ## Role
4
-
5
- The `brand_owned` channel diagnosis diagnoses and proposes actions for customer-owned discovered pages.
6
-
7
- It works on pages where:
8
-
9
- - `source = discovered`
10
- - the page belongs to the tenant/customer site
11
- - the action would improve an existing natural page or recommend a customer-site content action
12
-
13
- ## Non-Goals
14
-
15
- - Do not iterate generated GEO pages.
16
- - Do not decide final routes for generated pages.
17
- - Do not propose third-party outreach.
18
- - Do not perform deep URL tree planning in MVP.
19
- - Do not require `PageContentLabel`.
20
-
21
- ## Inputs
22
-
23
- - candidate rows routed by the orchestrator
24
- - tenant `agent/BRAND.md`
25
- - tenant `agent/STRATEGY.md`
26
- - tenant `agent/LEARNINGS.md`
27
- - relevant rows from:
28
- - `geo_pages`
29
- - `geo_intent_coverage`
30
- - `geo_recommendation_quadrants`
31
- - `geo_page_intent_visibility_gaps`
32
- - `geo_page_performance`
33
- - `geo_strategy_actions_recent`
34
- - page scrape when needed
35
- - AI answer samples when needed
36
- - competitor page scrape when needed
37
-
38
- ## Workflow
39
-
40
- ### 1. Filter Candidates
41
-
42
- Keep candidates where:
43
-
44
- - page source is `discovered`
45
- - page has an intent
46
- - intent is weak, or quadrant state indicates a fixable issue
47
-
48
- Drop candidates when:
49
-
50
- - page is not indexable and the tenant strategy forbids technical page edits
51
- - recent action mask suppresses the same action
52
- - evidence is too thin to justify an action
53
-
54
- ### 2. Classify Candidate Case
55
-
56
- Assign one primary case.
57
-
58
- #### A. Page Exists But Visibility Is Low
59
-
60
- Use when:
61
-
62
- - discovered page exists
63
- - `current_visibility` is low
64
- - quadrant is mostly `absent`, `cited_unnamed`, or `mentioned_not_recommended`
65
-
66
- Diagnosis questions:
67
-
68
- 1. Does the page directly answer the intent?
69
- 2. Is coverage deep enough for representative prompts?
70
- 3. Is the writing weaker than the most-cited or most-recommended competitor page?
71
- 4. Is there a visible technical issue?
72
- 5. Is authority the likely bottleneck, or only a weak hypothesis?
73
-
74
- #### B. Cited But Not Mentioned
75
-
76
- Use when:
77
-
78
- - our page/source is cited
79
- - brand is not clearly mentioned
80
-
81
- Diagnosis questions:
82
-
83
- 1. Is the page clearly tied to the tenant brand?
84
- 2. Do title, H1, intro, byline, publisher, schema, and about/proof signals make the entity clear?
85
- 3. Is the content too generic to make the brand worth mentioning?
86
-
87
- #### C. Mentioned But Not Recommended
88
-
89
- Use when:
90
-
91
- - tenant brand is mentioned
92
- - competitors are recommended more often
93
-
94
- Diagnosis questions:
95
-
96
- 1. Which brands were recommended?
97
- 2. What reasons did the AI answer give or imply?
98
- 3. What content-level weakness exists on the tenant page?
99
-
100
- ### 3. Gather Evidence
101
-
102
- Use the cheapest sufficient evidence.
103
-
104
- Default evidence:
105
-
106
- - view rows
107
- - page title/H1/path/status
108
- - quadrant rates
109
- - page performance summary
110
- - AI answer excerpt
111
-
112
- Fetch page scrape when:
113
-
114
- - diagnosis depends on content coverage, proof, comparison, or entity clarity
115
-
116
- Fetch competitor page scrape when:
117
-
118
- - the answer repeatedly recommends or cites a competitor page
119
- - the proposed action depends on competitor comparison
120
-
121
- Do not scrape everything.
122
-
123
- ### 4. Pick Root Cause Buckets
124
-
125
- Allowed buckets:
126
-
127
- - `intent_coverage_gap`
128
- - `content_depth_gap`
129
- - `entity_clarity_gap`
130
- - `generic_content_gap`
131
- - `proof_gap`
132
- - `comparison_gap`
133
- - `technical_issue`
134
- - `authority_gap`
135
- - `prompt_mismatch`
136
- - `not_a_problem`
137
- - `insufficient_evidence`
138
-
139
- Use `authority_gap` only when supported by external citation evidence or repeated competitor recommendation reasons.
140
-
141
- ### 5. Route Action
142
-
143
- Allowed action families:
144
-
145
- - `update_existing_page`
146
- - `retarget_existing_page`
147
- - `merge_or_redirect_page`
148
- - `no_action`
149
-
150
- Use `update_existing_page` when the owned page is the right surface and needs content, proof, entity clarity, comparison coverage, internal linking, or technical fixes.
151
-
152
- Use `retarget_existing_page` when the page is a useful owned surface but should target a different intent or query cluster than the one being evaluated.
153
-
154
- Use `merge_or_redirect_page` when the page should not remain an independent surface because it duplicates, cannibalizes, or conflicts with a stronger owned page.
155
-
156
- Prefer owned-page updates over generated GEO page creation when an existing discovered page clearly owns the intent.
157
-
158
- ### 6. Output
159
-
160
- Return a compact diagnosis for each accepted action:
161
-
162
- - candidate type
163
- - page URL/pageId
164
- - intentId
165
- - root cause buckets with confidence
166
- - recommended action family
167
- - concrete operations
168
- - evidence references
169
- - why other actions were rejected
170
-
171
- ## Examples
172
-
173
- ### Covered But Weak
174
-
175
- If a discovered page exists, visibility is low, and the page only gives generic education while competitor pages provide comparison criteria and proof:
176
-
177
- - root cause: `comparison_gap`, `proof_gap`
178
- - action family: `update_existing_page`
179
- - operation: add comparison criteria and customer proof to the existing page
180
-
181
- ### Cited But Not Mentioned
182
-
183
- If the page is cited but the AI answer does not name the tenant brand:
184
-
185
- - root cause: `entity_clarity_gap`
186
- - action family: `update_existing_page`
187
- - operation: strengthen brand naming, publisher schema, and product/company relationship in the answer block
188
-
189
- ## Guardrails
190
-
191
- - Do not propose creating a generated GEO page from this channel diagnosis unless the orchestrator explicitly routes no-page candidates here.
192
- - Do not over-index on page type labels.
193
- - Do not call content "thin" without page scrape or word-count/section evidence.
194
- - Do not diagnose authority from low visibility alone.