anymorph 0.4.0 → 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.
Files changed (76) hide show
  1. package/README.md +3 -3
  2. package/dist/index.js +79 -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,269 +0,0 @@
1
- # SEO/GEO Insight Reference
2
-
3
- Canonical source distilled from:
4
-
5
- - `/Users/tachyon/brain/01-Projects/Content/SEO GEO insight/SEO GEO 실행 원칙.md`
6
- - `/Users/tachyon/brain/01-Projects/Content/SEO GEO insight/SEO GEO 콘텐츠 원칙.md`
7
-
8
- This reference is the operating law for `geo-writer`. Apply it before drafting, briefing, or calling page generation.
9
-
10
- ## Core Thesis
11
-
12
- SEO/GEO는 검색어를 노리는 일이 아니라 **발견되고, 이해되고, 신뢰되고, 선택되는 답변 자산을 운영하는 일**이다.
13
-
14
- SEO 콘텐츠는 검색 결과에서 선택될 페이지여야 한다. GEO 콘텐츠는 AI 답변 안에 합성될 근거여야 한다. 공통 기준은 `intent`, `answer`, `evidence`, `entity`, `trust`, `conversion`을 모두 갖추는 것이다.
15
-
16
- | Dimension | SEO | GEO |
17
- | --- | --- | --- |
18
- | Competition surface | 검색 결과 화면 | AI 답변 내부 |
19
- | Core unit | keyword, URL, SERP | prompt, entity, source, answer |
20
- | Success signal | ranking, CTR, click, conversion | mention, citation, framing, AI share of voice |
21
- | Main asset | 검색 의도에 맞는 페이지 | AI가 인용 가능한 근거 자산 |
22
- | Execution goal | 검색 결과에서 선택될 페이지 만들기 | AI 답변 안에 들어갈 신뢰 source 만들기 |
23
-
24
- SEO는 `page selection` 문제다. 검색엔진이 특정 문제를 가진 사람에게 페이지를 발견, 이해, 신뢰, 선택하게 만드는 것이다.
25
-
26
- GEO는 `answer inclusion` 문제다. AI가 답변을 합성할 때 브랜드, 콘텐츠, 데이터, 관점을 신뢰 가능한 근거로 선택하고 올바른 맥락으로 재서술하게 만드는 것이다.
27
-
28
- ## Execution Layers
29
-
30
- | Layer | SEO job | GEO job |
31
- | --- | --- | --- |
32
- | Accessibility | Googlebot/Bingbot이 crawl/index 가능하게 한다 | OAI-SearchBot, PerplexityBot, Bingbot, Googlebot 접근 정책을 점검한다 |
33
- | Discovery | sitemap, internal links, external links로 URL 발견성을 확보한다 | IndexNow, crawler allow, source feed, third-party surface를 관리한다 |
34
- | Understanding | title, heading, schema, canonical, topic cluster를 정리한다 | entity, brand, product, category, competitor 관계를 일관되게 정의한다 |
35
- | Content | search intent를 만족하는 페이지를 만든다 | AI가 답변에 바로 쓸 수 있는 answer block과 evidence block을 만든다 |
36
- | Trust | author, source, date, methodology, backlinks를 확보한다 | 독자적 데이터, benchmark, 고객 사례, 외부 검증 source를 확보한다 |
37
- | Selection | SERP에서 클릭받을 title/meta/format을 최적화한다 | 답변 내 mention, citation, framing, response position을 최적화한다 |
38
- | Measurement | impressions, clicks, CTR, position, conversion을 본다 | prompt coverage, citation share, AI share of voice, framing accuracy를 본다 |
39
-
40
- Important content must be accessible as HTML/text. If crawlers cannot read it, SEO/GEO cannot select it as a candidate.
41
-
42
- ## Common Operating Principles
43
-
44
- | Principle | Why it matters | Measurement |
45
- | --- | --- | --- |
46
- | Open crawler access | 접근 불가하면 후보에 못 들어간다 | indexed pages, crawl errors, crawler logs |
47
- | Link important URLs internally and in sitemaps | 발견되지 않는 페이지는 평가되지 않는다 | discovered/indexed URL ratio |
48
- | Clean canonical and duplicates | 대표 URL 신호 분산은 신뢰를 약화한다 | canonical status, duplicate warnings |
49
- | One URL, one primary intent | 의도가 섞이면 선택 확률이 낮아진다 | query-page match, engagement |
50
- | Add unique POV, data, or experience | generic content has no citation value | backlinks, citations, branded mentions |
51
- | Attach evidence to claims | users and AI trust evidence over assertions | citation frequency, source quality |
52
- | Make trust signals visible | who/how/why/source/method matter | author/source/methodology coverage |
53
- | Preserve page experience | slow or obstructive pages reduce satisfaction | Core Web Vitals, UX metrics |
54
- | Avoid spam optimization | keyword stuffing, schemes, scaled AI content create long-term risk | manual actions, ranking drops |
55
-
56
- ## SEO-Specific Principles
57
-
58
- | Principle | Rule |
59
- | --- | --- |
60
- | Search intent first | keyword보다 실제 의도와 검색 결과의 기대 형식을 분석한다 |
61
- | SERP format fit | guide, list, comparison, product page, calculator 등 현재 SERP가 원하는 형식에 맞춘다 |
62
- | Bottom-funnel priority | B2B에서는 alternatives, vs, pricing, integration page를 우선 만든다 |
63
- | Internal authority flow | hub/spoke 구조와 anchor text로 중요한 페이지에 발견성과 권위를 전달한다 |
64
- | Link-worthy asset | 외부에서 인용할 만한 원본 데이터, 도구, 표, 분석을 만든다 |
65
-
66
- ## GEO-Specific Principles
67
-
68
- | Principle | Rule |
69
- | --- | --- |
70
- | Prompt set first | keyword가 아니라 ICP가 AI에게 던질 target prompt set을 정의한다 |
71
- | Answer block | heading 직후 direct answer를 둔다 |
72
- | Fan-out coverage | 원 질문에서 파생되는 하위 질문까지 커버한다 |
73
- | Entity consistency | 브랜드, 제품, 카테고리, 경쟁사 대비 포지션을 일관되게 정의한다 |
74
- | Third-party corroboration | first-party 주장과 외부 검증 source가 충돌하지 않게 한다 |
75
- | Framing control | AI가 브랜드를 어떤 맥락으로 설명하는지 추적하고 교정한다 |
76
- | AI visibility measurement | GSC만 보지 말고 prompt coverage, citation share, AI share of voice를 별도로 본다 |
77
- | Influence tracking | click/referral뿐 아니라 AI 답변이 구매 판단에 미치는 영향도 본다 |
78
-
79
- GEO 콘텐츠는 AI가 문단 하나, 표 하나, 정의 하나만 떼어가도 의미가 유지되어야 한다.
80
-
81
- ## Content Quality Criteria
82
-
83
- | Criterion | Standard |
84
- | --- | --- |
85
- | Intent-first | 검색어가 아니라 buyer의 실제 질문과 prompt intent에 맞아야 한다 |
86
- | Answer-first | 핵심 답을 초반에 바로 줘야 한다 |
87
- | Evidence-dense | 주장마다 근거, 숫자, 사례, 출처가 있어야 한다 |
88
- | Non-commodity | 누구나 쓸 수 있는 일반론이 아니어야 한다 |
89
- | Entity-clear | 브랜드, 제품, 카테고리, 경쟁사, 사용 사례가 명확해야 한다 |
90
- | Focused | 한 페이지는 한 primary topic/intent에 집중해야 한다 |
91
- | Complete | 사용자가 다시 검색하지 않아도 될 만큼 충분해야 한다 |
92
- | Citable | 문장, 표, 정의, 데이터가 인용 가능한 단위여야 한다 |
93
- | Trustworthy | 누가, 왜, 어떻게 만들었는지가 보여야 한다 |
94
- | Fresh | 바뀌는 정보는 실제 최신 상태여야 한다 |
95
- | Crawlable | 중요한 내용은 HTML/text로 접근 가능해야 한다 |
96
- | Differentiated | 경험, 데이터, 고객 사례, 관점이 들어가야 한다 |
97
- | Conversion-aware | 읽은 뒤 다음 행동이 자연스러워야 한다 |
98
-
99
- ## Recommended Page Structure
100
-
101
- | Position | Must include | Standard |
102
- | --- | --- | --- |
103
- | Title | topic, intent, audience | 누가 왜 읽어야 하는지 즉시 보여야 한다 |
104
- | Intro | 2-3 sentence direct answer | 결론을 숨기지 않는다 |
105
- | Definition | standalone concept explanation | AI가 정의 문장으로 가져갈 수 있어야 한다 |
106
- | Context | why the problem matters | 변화와 배경을 설명한다 |
107
- | Framework | criteria, taxonomy, decision model | 독자가 생각을 정리할 수 있어야 한다 |
108
- | Evidence | numbers, examples, sources, methodology | 주장을 검증 가능하게 만든다 |
109
- | Comparison | alternatives and differences | buyer shortlist와 AI comparison에 들어가기 쉽다 |
110
- | Practical steps | ordered action path | 읽고 바로 행동할 수 있어야 한다 |
111
- | Caveats | limits, exceptions, non-fit cases | 과장 없이 신뢰를 높인다 |
112
- | CTA | next action | demo, template, audit, docs 등 자연스러운 전환 |
113
-
114
- First screen gives the answer, body builds evidence, ending creates the next action.
115
-
116
- ## SEO Content Checklist
117
-
118
- | Item | Requirement |
119
- | --- | --- |
120
- | Search intent | informational, commercial, transactional, navigational 중 어디를 노리는지 분명해야 한다 |
121
- | SERP fit | 현재 SERP가 원하는 형식과 맞아야 한다 |
122
- | Keyword coverage | primary keyword뿐 아니라 related query와 sub-intent를 자연스럽게 포함한다 |
123
- | Internal linking | hub/spoke 구조로 관련 페이지와 연결한다 |
124
- | Title/meta | 검색 결과에서 클릭할 이유가 분명해야 한다 |
125
- | Topic authority | 한 글이 아니라 topic cluster로 권위를 만든다 |
126
- | Backlink-worthiness | 외부에서 링크할 원본 데이터, 도구, 표, 분석이 있어야 한다 |
127
- | Conversion path | 정보 소비 후 다음 단계가 명확해야 한다 |
128
-
129
- ## GEO Content Checklist
130
-
131
- | Item | Requirement |
132
- | --- | --- |
133
- | Prompt fit | 사용자가 AI에게 물을 법한 자연어 질문에 답한다 |
134
- | Answer block | 각 주요 heading 아래에 바로 인용 가능한 답변을 둔다 |
135
- | Entity consistency | 브랜드명, 제품명, 카테고리, 경쟁사 대비 포지션이 일관된다 |
136
- | Evidence block | AI가 근거로 삼을 수 있는 숫자, 출처, 사례, quote가 있다 |
137
- | Comparison-ready | shortlist/recommendation 답변에 쓸 기준별 비교가 있다 |
138
- | Third-party alignment | 외부 정보와 모순되지 않는다 |
139
- | Sourceability | 문단, 표, FAQ, definition이 독립적으로 의미를 가진다 |
140
- | Framing control | 제품이 무엇이고, 누구에게 맞고, 누구에게 안 맞는지 명확하다 |
141
- | Citation likelihood | original data, benchmark, expert POV처럼 인용할 이유가 있다 |
142
-
143
- ## Content Type Standards
144
-
145
- | Type | SEO purpose | GEO purpose | Must include |
146
- | --- | --- | --- | --- |
147
- | What is | category understanding | AI base definition | short definition, scope, misconceptions, examples |
148
- | Guide | long-tail traffic | how-to answer source | steps, checklist, practical examples |
149
- | Comparison | commercial intent | shortlist/recommendation entry | criteria table, pros/cons, fit/non-fit |
150
- | Alternatives | competitor demand | vendor recommendation entry | audience-based recommendations, differentiation, migration points |
151
- | Benchmark | links/authority | citation source | data, methodology, sample, date |
152
- | Case study | proof | trust evidence | before/after, metric, context, limits |
153
- | Glossary | topic coverage | entity definition | clear definition, related concept links |
154
- | Docs/API | technical buyer support | implementation answer source | exact specs, examples, error handling |
155
- | Pricing/ROI | purchase decision | cost/value answer source | price logic, formula, assumptions |
156
- | Template/Tool | backlink asset | practical recommendation source | usable output, examples, explanation |
157
-
158
- ## B2B SaaS Priority Assets
159
-
160
- | Priority | Asset | Purpose |
161
- | --- | --- | --- |
162
- | 1 | category benchmark/report/original data | citation and authority |
163
- | 2 | competitor alternatives | high-intent buyer shortlist |
164
- | 3 | product comparison | comparison criteria for AI and buyers |
165
- | 4 | use-case implementation guide | proof of practical problem solving |
166
- | 5 | integration/migration guide | reduce adoption friction |
167
- | 6 | ROI/pricing calculator | quantify purchase decision |
168
- | 7 | customer story/teardown/before-after | proof and trust |
169
- | 8 | technical docs/API examples | technical evaluator and AI agent support |
170
- | 9 | third-party reviews/profiles/listicles | external corroboration |
171
-
172
- ## Paragraph Rules
173
-
174
- Every paragraph must pass these rules:
175
-
176
- | Rule | Standard |
177
- | --- | --- |
178
- | Independence | 문단 하나만 떼어도 의미가 유지된다 |
179
- | Directness | 질문에 대한 답이 첫 문장에 있다 |
180
- | Specificity | 추상 명사보다 구체적 기준, 숫자, 예시가 있다 |
181
- | Verifiability | 핵심 주장에는 source, methodology, date 중 하나 이상이 붙는다 |
182
- | Differentiation | 누구나 아는 말이 아니라 고유한 관점이나 경험이 있다 |
183
- | Connectivity | 다음에 읽을 관련 페이지로 자연스럽게 이어진다 |
184
-
185
- ## Table Rules
186
-
187
- Use a table only when it helps decisions or extraction.
188
-
189
- | Rule | Standard |
190
- | --- | --- |
191
- | Clear criteria | rows/columns directly help buyer decision |
192
- | Standalone citation | 표만 봐도 핵심 판단이 가능하다 |
193
- | No cherry-picking | 우리 제품에 유리한 기준만 만들지 않는다 |
194
- | Freshness | pricing, feature, ranking, benchmark에는 업데이트 날짜가 있다 |
195
- | Simple structure | AI가 항목을 추출하기 쉽다 |
196
-
197
- ## Operating Loop
198
-
199
- | Step | Question | Output |
200
- | --- | --- | --- |
201
- | 1. Define prompts | ICP가 AI에게 어떤 buying/research 질문을 던지는가? | target prompt set |
202
- | 2. Measure visibility | 그 질문에서 우리와 경쟁사는 어떻게 언급되는가? | AI visibility baseline |
203
- | 3. Analyze sources | 답변은 어떤 first-party/third-party source를 근거로 삼는가? | source map |
204
- | 4. Find gaps | 어떤 fan-out 질문, entity, proof, third-party source가 비어 있는가? | gap backlog |
205
- | 5. Build assets | 어떤 페이지, 데이터, 비교, 외부 검증을 만들어야 하는가? | content brief |
206
- | 6. Re-measure | mention, citation, framing, referral, pipeline이 개선됐는가? | visibility report |
207
-
208
- ## Measurement Framework
209
-
210
- | Goal | Metric | Meaning |
211
- | --- | --- | --- |
212
- | SEO traffic | impressions, clicks, CTR, position | 검색 결과에서 발견되고 클릭되는 정도 |
213
- | SEO quality | engagement, conversion, pipeline | traffic이 비즈니스 가치로 이어지는 정도 |
214
- | GEO visibility | prompt coverage | 목표 prompt 중 브랜드가 등장하는 비율 |
215
- | GEO authority | citation share | AI 답변 source/citation에 포함되는 비율 |
216
- | GEO positioning | framing accuracy | AI가 브랜드를 정확한 카테고리와 맥락으로 설명하는지 |
217
- | Competitive position | AI share of voice | 경쟁사 대비 답변 내 언급 점유율 |
218
- | Business impact | influenced pipeline | AI visibility가 pipeline에 영향을 준 정도 |
219
-
220
- ## Anti-Patterns and Myths
221
-
222
- | Bad belief or pattern | Reality |
223
- | --- | --- |
224
- | 글자 수가 길수록 좋다 | word count magic은 없다. 의도 충족이 중요하다 |
225
- | keyword를 많이 넣으면 된다 | keyword stuffing은 spam이다 |
226
- | SEO 1등이면 AI 답변에도 나온다 | AI citation은 fan-out과 source selection 때문에 organic rank와 부분적으로만 겹친다 |
227
- | `llms.txt`가 GEO 필수다 | Google은 AI search 노출에 특별 파일이 필요 없다고 설명한다 |
228
- | schema를 많이 넣으면 AI가 인용한다 | schema는 이해를 돕지만 보장하지 않는다. visible content와 정확성이 우선이다 |
229
- | fake mention을 만들면 된다 | inauthentic mention과 AI manipulation은 장기 리스크다 |
230
- | GEO는 SEO를 대체한다 | GEO는 SEO 위에 synthesis, citation, framing layer가 추가된 것이다 |
231
- | 검색어만 바꾼 복붙 페이지 | doorway/scaled content 리스크 |
232
- | AI로 대량 생성한 일반론 | non-commodity value가 없다 |
233
- | 출처 없는 통계 | 신뢰와 citation 가능성이 낮다 |
234
- | 과장된 title | 클릭 후 만족도와 신뢰가 낮아진다 |
235
- | 제품 억지 끼워넣기 | 문제 해결보다 홍보로 보인다 |
236
- | 오래된 날짜만 갱신 | freshness 조작으로 보일 수 있다 |
237
- | 경쟁사 왜곡 | AI와 사용자가 cross-check할 때 신뢰를 잃는다 |
238
- | 숨겨진 crawler-only text | cloaking/spam 리스크 |
239
- | schema와 visible content 불일치 | rich result/GEO 신뢰 모두 훼손 |
240
- | 너무 넓은 mega post | intent와 citation 단위가 흐려진다 |
241
-
242
- ## Minimum Acceptance Checklist
243
-
244
- Reject or repair the brief/content unless every answer is "yes":
245
-
246
- - 이 페이지가 답하는 primary question이 하나로 말해지는가?
247
- - 첫 5초 안에 핵심 답이 보이는가?
248
- - 사용자가 다시 검색하지 않아도 되는가?
249
- - 다른 글에는 없는 관점, 데이터, 경험이 있는가?
250
- - AI가 문장 하나를 떼어가도 의미가 유지되는가?
251
- - 주장에 근거가 붙어 있는가?
252
- - 브랜드, 제품, 카테고리, 경쟁사명이 일관되는가?
253
- - 관련 하위 질문으로 내부 링크가 이어지는가?
254
- - 최신 날짜와 실제 업데이트 내용이 맞는가?
255
- - 다음 행동이 명확한가?
256
-
257
- ## Formulas
258
-
259
- | Goal | Formula |
260
- | --- | --- |
261
- | SEO traffic | `Search intent x Useful answer x Technical accessibility x Authority` |
262
- | GEO visibility | `Prompt fit x Entity clarity x Evidence density x Third-party corroboration x Citation-ready structure` |
263
- | B2B pipeline | `High-intent topic x Trust proof x Clear differentiation x Conversion path` |
264
-
265
- ## Closing Standard
266
-
267
- 이 페이지가 사람에게는 결정을 돕고, AI에게는 신뢰 가능한 근거가 되는가?
268
-
269
- 이 질문에 `예`라고 답할 수 없는 콘텐츠는 SEO/GEO 자산이 아니다.
@@ -1,82 +0,0 @@
1
- ---
2
- name: seo-ecommerce-opportunity
3
- description: Use when diagnosing ecommerce SEO opportunities for product, category, collection, shopping-intent SERPs, Product schema, offers, reviews, availability, shipping, return policy, or merchant page actions.
4
- ---
5
-
6
- # SEO Ecommerce Opportunity
7
-
8
- Use this skill only when ecommerce signals exist. It adapts `claude-seo`
9
- ecommerce, schema, product, and competitor-page patterns to Anymorph action
10
- generation.
11
-
12
- ## Activation
13
-
14
- Activate when any of these are true:
15
-
16
- - product catalog exists.
17
- - URLs contain product, collection, category, cart, checkout, shop, or pricing
18
- product patterns.
19
- - Product or Offer schema exists or should exist.
20
- - DFS SERP shows shopping/product/category/listicle intent.
21
- - workspace business type is ecommerce or commerce-enabled.
22
-
23
- ## Artifact
24
-
25
- Write outputs under:
26
-
27
- ```text
28
- agent/seo/seo-ecommerce-opportunity/{runId}/
29
- ```
30
-
31
- ## References
32
-
33
- - `references/ecommerce-rules.md` for product/category/schema rules.
34
- - `../seo-opportunity-audit/references/action-contract.md` for output shape.
35
- - `../../shared/evidence-principles.md` for claim strength, source hierarchy,
36
- freshness, structured-data, and GEO/AEO framing rules.
37
- - `../../shared/vertical-playbooks/commerce.md` for general commerce patterns.
38
- - `../../shared/vertical-playbooks/beauty.md` instead of, or in addition to,
39
- `commerce.md` when the catalog is beauty, skincare, makeup, haircare, or
40
- personal care. Beauty rules take precedence for cosmetic, ingredient,
41
- review/UGC, and regulated-claim safety.
42
-
43
- Read only the matching vertical playbook(s). Treat vertical playbooks as
44
- heuristics for diagnosis and action selection, not as evidence for claims.
45
-
46
- ## Workflow
47
-
48
- 1. Read product catalog, intent-product mappings, CMS/GEO pages, and product URLs.
49
- 2. Load `../../shared/evidence-principles.md` and the matching commerce/beauty
50
- playbook when product, category, review, schema, or shopping-surface findings
51
- are in scope.
52
- 3. Inspect product and category pages for title/meta, product description,
53
- schema, offers, price, availability, reviews, shipping, return policy, images,
54
- and FAQ-like buyer objections.
55
- 4. Use DFS through the toolkit for shopping/product/listicle SERP evidence.
56
- 5. Detect opportunities:
57
- - product schema gap.
58
- - offer/availability gap.
59
- - review or aggregate rating evidence gap.
60
- - merchant policy gap.
61
- - category page gap.
62
- - product comparison/buying guide gap.
63
- - image/product rich result gap.
64
- 6. Map actions to product-linked GEO page creation, CMS updates, schema fixes,
65
- or third-party/manual tasks.
66
-
67
- ## Output Files
68
-
69
- - `products.json`
70
- - `findings.json`
71
- - `opportunities.json`
72
- - `actions.json`
73
- - `rationale.md`
74
-
75
- ## Guardrails
76
-
77
- - Do not invent prices, availability, reviews, ratings, shipping, or return
78
- policy details.
79
- - Do not recommend review markup unless review evidence is first-party and
80
- policy-safe.
81
- - Product-linked page actions must include product ids when available.
82
- - Comparison pages need factual, source-backed claims and a last-updated date.
@@ -1,5 +0,0 @@
1
- interface:
2
- display_name: "SEO Ecommerce Opportunity"
3
- short_description: "Find ecommerce SEO, product schema, and shopping-intent opportunities."
4
- default_prompt: "Use $seo-ecommerce-opportunity to diagnose product, category, schema, offer, review, and shopping SERP opportunities."
5
-
@@ -1,31 +0,0 @@
1
- # Ecommerce Rules
2
-
3
- ## Product Pages
4
-
5
- - Product title and description should be specific and useful.
6
- - Product schema should include verifiable Product identity.
7
- - Offer data must match visible page data.
8
- - Price, availability, currency, shipping, and return policy must not be invented.
9
- - Product images should have descriptive alt text and stable dimensions.
10
-
11
- ## Category and Collection Pages
12
-
13
- - category title and intro explain who the collection is for.
14
- - include comparison criteria, buying guidance, and links to key products.
15
- - avoid thin grids with no explanatory content.
16
- - add internal links from relevant guide/comparison pages.
17
-
18
- ## Reviews and Ratings
19
-
20
- - only use review/aggregateRating when evidence exists.
21
- - do not generate fake or extrapolated ratings.
22
- - flag missing review collection motion as third-party/manual when appropriate.
23
-
24
- ## Shopping SERP Opportunities
25
-
26
- - `best_of`, `comparison`, `alternatives`, and buying guide SERPs can justify new
27
- GEO/CMS pages when product fit is clear.
28
- - product/category SERPs can justify category improvement rather than blog posts.
29
- - marketplace-dominated SERPs may require third-party execution, not owned-page
30
- creation.
31
-
@@ -1,57 +0,0 @@
1
- ---
2
- name: seo-internal-link-opportunity
3
- description: Use when finding internal link opportunities, orphan pages, hub-and-spoke gaps, anchor text improvements, CMS/GEO page graph issues, or auto-applicable internal link actions.
4
- ---
5
-
6
- # SEO Internal Link Opportunity
7
-
8
- Use this skill for CMS, owned-page, and generated-page internal link analysis.
9
- It follows the `claude-seo` cluster link-matrix pattern and adapts it to
10
- Anymorph-managed actions.
11
-
12
- ## Artifact
13
-
14
- Write outputs under:
15
-
16
- ```text
17
- agent/seo/seo-internal-link-opportunity/{runId}/
18
- ```
19
-
20
- ## References
21
-
22
- - `references/link-rules.md` for matrix and anchor guidance.
23
- - `../seo-opportunity-audit/references/action-contract.md` for output shape.
24
-
25
- ## Workflow
26
-
27
- 1. Read CMS inventory, generated GEO pages, owned URLs, existing internal links,
28
- intents, products, and SERP clusters.
29
- 2. Build a page graph: source, target, anchor, page type, intent, product, status.
30
- 3. Detect:
31
- - orphan pages.
32
- - weak hub pages.
33
- - missing spoke-to-pillar links.
34
- - missing pillar-to-spoke links.
35
- - missing comparison/category/product support links.
36
- - poor or generic anchors.
37
- 4. Create action candidates only where source and target are controlled or
38
- editable through Anymorph/CMS.
39
- 5. Emit link action candidates with exact source page, target page, suggested
40
- anchor, placement rationale, and verification method.
41
-
42
- ## Output Files
43
-
44
- - `graph.json`
45
- - `opportunities.json`
46
- - `actions.json`
47
- - `rationale.md`
48
-
49
- ## Auto-Apply Rule
50
-
51
- Set `canAutoApply=true` only when:
52
-
53
- - the source page is managed by Anymorph or known CMS tooling.
54
- - the target URL is stable.
55
- - the suggested anchor is natural and context-compatible.
56
- - the change can be represented as a deterministic edit or generation action.
57
-
@@ -1,5 +0,0 @@
1
- interface:
2
- display_name: "SEO Internal Link Opportunity"
3
- short_description: "Find internal link, hub-spoke, and anchor opportunities."
4
- default_prompt: "Use $seo-internal-link-opportunity to find orphan pages, hub-spoke gaps, anchor improvements, and internal link actions."
5
-
@@ -1,28 +0,0 @@
1
- # Internal Link Rules
2
-
3
- ## Matrix
4
-
5
- - pillar to spoke: required for every planned spoke.
6
- - spoke to pillar: required for every spoke.
7
- - same-cluster spoke to spoke: 2-3 links when context supports it.
8
- - cross-cluster links: use sparingly for adjacent intent paths.
9
- - money/product/category pages should receive links from relevant informational
10
- pages, not unrelated pages.
11
-
12
- ## Anchors
13
-
14
- - descriptive, natural, and context-specific.
15
- - avoid repeated exact-match anchors across many pages.
16
- - avoid generic anchors such as "click here" or "read more" unless surrounding
17
- context makes target clear.
18
- - use product/category/comparison terminology only when the source paragraph
19
- supports it.
20
-
21
- ## Scorecard
22
-
23
- - orphan pages: target has zero controlled inbound links.
24
- - weak pages: target has fewer than two relevant controlled inbound links.
25
- - hub weakness: pillar does not link to all active spokes.
26
- - cannibalization risk: two pages target the same primary query without clear
27
- differentiation.
28
-
@@ -1,141 +0,0 @@
1
- ---
2
- name: seo-opportunity-audit
3
- description: Use when running a complete SEO opportunity pass across technical diagnosis, page diagnosis, DFS-backed SERP research, internal linking, and ecommerce-specific opportunity discovery.
4
- ---
5
-
6
- # SEO Opportunity Audit
7
-
8
- Use this as the integrated SEO workflow. It coordinates the five focused SEO
9
- skills and writes one consolidated artifact set under `agent/seo/`.
10
-
11
- This skill is diagnosis-to-action oriented. Every finding must become either an
12
- action candidate, a blocked/no-action record, or a verification task.
13
-
14
- ## Source Pattern
15
-
16
- Follow the structure and judgment style of `AgriciDaniel/claude-seo` where it
17
- fits Anymorph:
18
-
19
- - orchestrate first, then delegate to narrow skills.
20
- - use technical, page, SERP/SXO, cluster, ecommerce, and DFS evidence separately.
21
- - keep static rules in references.
22
- - prefer evidence-backed, falsifiable recommendations over generic SEO advice.
23
-
24
- Do not copy marketing footers, community CTAs, broad PDF/report workflow, or
25
- unbounded 500-page crawling defaults.
26
-
27
- ## Shared References
28
-
29
- Read shared references selectively:
30
-
31
- - `../../shared/evidence-principles.md` before writing or accepting claim,
32
- freshness, schema, feed, review, comparison, or compliance findings.
33
- - `../../shared/vertical-playbooks/{vertical}.md` when the tenant vertical is
34
- known. Use only the matching playbook(s). These files provide vertical
35
- heuristics for entity patterns, asset plays, measurement signals, and risk
36
- categories; they are not tenant evidence and do not override
37
- `agent/BRAND.md`, `agent/STRATEGY.md`, or source data.
38
-
39
- Vertical selection defaults:
40
-
41
- - beauty/skincare/makeup/haircare/personal care -> `beauty.md`
42
- - SaaS/software/subscription/developer tool -> `saas.md`
43
- - OTA/travel/hospitality/lodging/tours/things-to-do -> `ota.md`
44
- - ecommerce/consumer goods/retail outside beauty -> `commerce.md`
45
-
46
- ## Focused Skills
47
-
48
- Invoke or apply these in order:
49
-
50
- 1. `$seo-technical-diagnosis`
51
- 2. `$seo-page-diagnosis`
52
- 3. `$seo-serp-opportunity-research`
53
- 4. `$seo-internal-link-opportunity`
54
- 5. `$seo-ecommerce-opportunity` only when ecommerce signals exist.
55
-
56
- ## Artifact Setup
57
-
58
- All outputs go under:
59
-
60
- ```text
61
- agent/seo/seo-opportunity-audit/{runId}/
62
- agent/seo/seo-technical-diagnosis/{runId}/
63
- agent/seo/seo-page-diagnosis/{runId}/
64
- agent/seo/seo-serp-opportunity-research/{runId}/
65
- agent/seo/seo-internal-link-opportunity/{runId}/
66
- agent/seo/seo-ecommerce-opportunity/{runId}/
67
- ```
68
-
69
- Use the bundled script to create paths and validate JSON:
70
-
71
- ```bash
72
- SEO_TOOLKIT=.agents/skills/seo-opportunity-audit/scripts/seo-toolkit.mjs
73
- test -f "$SEO_TOOLKIT" || SEO_TOOLKIT=.claude/skills/seo-opportunity-audit/scripts/seo-toolkit.mjs
74
- node "$SEO_TOOLKIT" init-artifact --skill seo-opportunity-audit --run-id "$RUN_ID"
75
- ```
76
-
77
- If there is no host-provided `RUN_ID`, derive one from the current GEO run id.
78
- Only use a timestamp fallback for local exploratory work.
79
-
80
- ## Workflow
81
-
82
- 1. Read the GEO run context, tenant memory, product catalog, intents, and known
83
- page inventory before using external data.
84
- 2. Create the integrated audit artifact directory.
85
- 3. Run technical and page diagnosis first to establish crawl/index/page evidence.
86
- 4. Run DFS-backed SERP opportunity research. Use Firecrawl only to inspect
87
- concrete competitor pages or public pages after DFS identifies candidates.
88
- 5. Run internal link opportunity analysis against the CMS/GEO page inventory.
89
- 6. Run ecommerce opportunity only when ecommerce signals exist.
90
- 7. Merge outputs into `summary.json`, `actions.json`, and `rationale.md`.
91
- 8. Reject duplicate or weak findings. Prefer no action over speculative action.
92
-
93
- ## DFS Rule
94
-
95
- DFS API usage must be wrapped by the bundled script:
96
-
97
- ```bash
98
- node "$SEO_TOOLKIT" dfs-request --endpoint serp_organic_live_advanced --params '{"keyword":"example","location_name":"United States","language_code":"en"}'
99
- ```
100
-
101
- Then call the matching DataForSEO MCP/API tool. If direct DataForSEO credentials
102
- are available in the environment, use the same script for REST calls:
103
-
104
- ```bash
105
- node "$SEO_TOOLKIT" dfs-call --path /v3/dataforseo_labs/google/related_keywords/live --payload '[{"keyword":"example","location_name":"United States","language_code":"en","limit":10}]' > dfs-response.json
106
- ```
107
-
108
- In hosted GEO strategy runs,
109
- prefer the Anymorph MCP wrappers such as `mcp__anymorph__dataforseo_research`,
110
- `mcp__anymorph__search_keywords`, `mcp__anymorph__serp_snapshot`, and
111
- `mcp__anymorph__list_seo_opportunities` when direct DataForSEO tools are not
112
- available. Normalize the response:
113
-
114
- ```bash
115
- node "$SEO_TOOLKIT" dfs-normalize --endpoint serp_organic_live_advanced < dfs-response.json
116
- ```
117
-
118
- Do not call DFS broadly without a request artifact, estimated cost tier, and
119
- normalization output saved in the skill artifact directory.
120
-
121
- ## Consolidated Output
122
-
123
- Write:
124
-
125
- - `summary.json`: compact rollup and scorecard.
126
- - `actions.json`: action candidates with fingerprints.
127
- - `blocked.json`: rejected or blocked opportunities.
128
- - `rationale.md`: short human-readable decision record.
129
-
130
- Each final action must include:
131
-
132
- - `sourceSkill`
133
- - `opportunityType`
134
- - `target`
135
- - `evidence`
136
- - `confidence`: `confirmed`, `likely`, or `hypothesis`
137
- - `impact`, `effort`, and `priority`
138
- - `canAutoApply`
139
- - `requiresThirdPartyExecution`
140
- - `verificationMethod`
141
- - `actionFingerprint`
@@ -1,5 +0,0 @@
1
- interface:
2
- display_name: "SEO Opportunity Audit"
3
- short_description: "Run a complete SEO opportunity audit across focused SEO skills."
4
- default_prompt: "Use $seo-opportunity-audit to run technical, page, SERP, internal link, and ecommerce SEO opportunity analysis."
5
-