28 KiB
Document 3 — SAG Interlinking Specification (Linker Module)
Detailed Section Plan
Version: 1.0 | March 2026 Status: Plan — Ready for section-by-section build Dependency: SAG-IGNY8-Implementation.md (Section 14 pipeline, Section 16 data models, blueprint JSON) Target Format: Markdown (.md) for IGNY8 repo use with Claude Code Estimated Length: ~800-1,000 lines
Current State Summary (inputs to this document)
What Exists in IGNY8 Today
- Linker module: Backend at
business/linking/, API atmodules/linker/, frontend atpages/Linker/andapi/linker.api.ts— all INACTIVE behindlinker_enabledfeature flag - Existing Linker capability (pre-SAG): Finds link candidates based on content similarity, injects links with varied anchor text, configurable link density limits
- Blueprint JSON already has
internal_linking_mapfield (currently{"rules_reference": "SAG-Interlinking-Specification.md"}— pointing to THIS document),linked_attribute_termsper cluster,cross_cluster_linksper cluster, andlink_coverage_scoreon SAGCluster model - Content model has
sag_cluster_idfield (planned) — links content back to its cluster for linking rules - Pipeline Stage 7 (SAG-enhanced): "Pre-computed internal links ready" at review queue — means links are generated BEFORE publish, not after
What SAG-IGNY8-Implementation.md Already Defines
- Page types: Blog Post, Cluster Hub Page, Product Page, Service Page, Category Page, Attribute Term Page, Brand Page, Comparison Page
- Cluster types: Product/Service Category, Condition/Problem, Feature, Brand, Informational, Comparison — each has different hub page style
- Blueprint stores
linked_attribute_terms(which taxonomy terms a cluster connects to) andcross_cluster_links(which other clusters share attribute values) - Execution priority: Phase 1 = category pages + top hubs, Phase 2 = remaining hubs + first blogs, Phase 3 = attribute term pages, Phase 4 = additional blogs + brand comparisons
- Health monitoring already tracks "internal link coverage" as one of the weekly health check items
What the Niche Definition Process (Doc 2) Defines
- Each cluster has 1 hub page + 3-8 supporting content pieces
- Clusters form at 2+ attribute value intersections — two clusters sharing an attribute value are cross-link candidates
- Max 50 clusters per sector, backlink campaigns target top 25-30 — the other 20-25 rank purely through internal authority flow
What Content Types Plan Defines
- Taxonomy landing pages include "key subtopics + internal links" and "internal links to related clusters" as default sections
- Cluster hub pages aggregate related terms + posts + products
What the Taxonomy Term Content Plan Defines
- Term pages need "internal links to related clusters" as a standard section
- Cluster Hub Manager handles "cluster landing pages and cross-links"
Section Plan
Section 1: Purpose & Scope
Content:
- Why SAG interlinking is fundamentally different from generic internal linking tools
- Generic linkers scan content for keyword matches and insert links randomly — SAG linking follows deterministic rules derived from the dimensional structure
- Every link has a structural purpose: it flows authority from backlinked pages down through the hierarchy and connects dimensionally-related content
- This document is the rules engine specification — it tells the IGNY8 Linker module exactly what links to create, where, with what anchor text, and in what priority order
- Scope: WordPress implementation first, platform-agnostic rules that translate to any CMS
- Dependency: Requires an active SAG Blueprint with populated clusters, published content, and WordPress taxonomies created
Inputs from existing docs: SAG-IGNY8-Implementation.md Section 14.1 (Post-Publish → "Linker creates SAG-compliant internal links")
Section 2: Page Types in the Link Graph
Content: Define every page type that participates in the link graph, its role, and its WordPress implementation. Each type has different linking behavior.
| Page Type | SAG Role | WordPress Implementation | Link Behavior |
|---|---|---|---|
| Homepage | T1 — authority entry point | Front page | Links to sector landing pages and top cluster hubs |
| Sector Landing Page | Sector overview | Page (or custom page template) | Links to all cluster hubs within sector |
| Cluster Hub Page | T2/T3 — authority distribution node | Page with hub template | Links DOWN to supporting content, ACROSS to related cluster hubs, UP to sector landing |
| Supporting Blog Post | T4 — content depth | Post | Links UP to its cluster hub (mandatory), ACROSS to sibling blogs in same cluster, ACROSS to related cluster hubs |
| Attribute Term Page | Taxonomy node connecting clusters | Custom taxonomy term archive with rich content | Links to ALL cluster hubs that use this attribute value |
| Product Page | Commercial page | WooCommerce product | Links to its cluster hub, to relevant attribute term pages |
| Service Page | Commercial page | Page with service template | Links to its cluster hub, to relevant attribute term pages |
| Category Page | Top-level grouping | Category archive with rich content | Links to cluster hubs within this category |
| Brand Page | Brand overview | Post or page | Links to cluster hubs featuring this brand |
| Comparison Page | Decision-stage content | Post | Links to both compared cluster hubs |
Key rule: Every page except homepage must link to at least ONE cluster hub. No orphan pages in a SAG site.
Inputs from existing docs: SAG-IGNY8-Implementation.md Section 11.2 (content type table), Section 12.2 (platform mapping table), Content_Types_Writing_Plan.md Section 2
Section 3: Link Relationship Types
Content: Define the 7 directional link types the system generates. Each has specific rules.
Type 1: Vertical Upward (Supporting → Hub)
- Every supporting blog post MUST link to its cluster hub page
- This is mandatory, not optional — enforced at content generation time
- Anchor text uses cluster's primary keyword or hub page title variant
- Placement: First mention of cluster topic in content body, ideally within first 2 paragraphs
- Count: Exactly 1 link to own hub per supporting article
Type 2: Vertical Downward (Hub → Supporting)
- Every cluster hub page links to ALL its published supporting content
- Placement: Hub pages have a structured "Related Articles" or "In This Guide" section
- Plus contextual in-body links where naturally relevant
- Anchor text: Article title or primary keyword of the supporting piece
Type 3: Horizontal Sibling (Supporting ↔ Supporting within same cluster)
- Supporting articles within the same cluster link to each other where topically relevant
- Not mandatory for every pair — only where semantic overlap creates a natural link opportunity
- Maximum 2 sibling links per article to avoid link dilution
- Anchor text: Natural descriptive phrases, varied per link
Type 4: Cross-Cluster (Hub ↔ Hub sharing attribute value)
- Two cluster hubs that share an attribute value are cross-link candidates
- Example: "Foot × Neuropathy" and "Foot × EMS" both have Target Area = Foot → cross-link
- Maximum 2 cross-cluster links per hub page to avoid diluting the hub's primary focus
- Selection: Highest-value cross-links chosen by shared keyword volume overlap
- Anchor text: The linked hub's primary keyword or a natural variant
Type 5: Taxonomy Contextual (Term Page → Cluster Hubs)
- Each attribute term page links to EVERY cluster hub that uses that attribute value
- Example: "Neuropathy" term page links to "Foot × Neuropathy", "EMS × Neuropathy", "Heated × Neuropathy"
- This is the dimensional connecting layer — term pages are the linking nodes of the grid
- Anchor text: Hub page title or cluster primary keyword
Type 6: Breadcrumb Structural
- Every page has a breadcrumb path: Home → Sector → [Attribute Term or Category] → Hub → Current Page
- These are navigational links, always present in page template
- Not counted toward content link density limits
Type 7: Related Content (Cross-Cluster, Semantic)
- For supporting blogs, a "Related Reading" or "You May Also Like" section with 2-3 links to content in OTHER clusters
- Selected by: shared attribute values (not same cluster), complementary topics, user journey logic
- This is the weakest link type — lowest priority, most likely to be omitted if link density cap is reached
Inputs from existing docs: Blueprint JSON linked_attribute_terms field (Type 5), cross_cluster_links field (Type 4), Taxonomy_Term_Content_Plan.md Section 7 item 5 ("internal links to related clusters")
Section 4: Authority Flow Model
Content: How external backlink authority distributes through the SAG structure via internal links. This is the mechanism behind the "compounding authority effect."
Flow path:
- External backlinks hit homepage (T1) and top 25-30 cluster hub pages (T2/T3)
- Hub pages distribute authority DOWN to 3-8 supporting articles each
- Supporting articles link BACK UP to hub (reinforcing) and ACROSS to siblings (spreading)
- Attribute term pages act as horizontal connectors — they link to ALL hubs sharing that attribute value, creating cross-cluster authority flow
- Clusters WITHOUT direct backlinks receive authority through: cross-cluster links from backlinked hubs, term page connections from shared attribute values, and sibling blog cross-references
Why this compounds:
- Every new piece of content in a cluster strengthens the hub (more upward links)
- Every new cluster that shares an attribute value strengthens the term page (more hub links feeding into it)
- The term page then distributes that combined authority to ALL connected hubs
- Result: A site at DR 29 can dominate country-level rankings for thousands of queries because the internal structure amplifies whatever external authority exists
Maximum hop distance: Any page should be reachable from a backlinked page within 3 link hops. If a page requires 4+ hops, it needs a direct cross-link from a higher-authority page.
Visualization: Include a flow diagram showing Homepage → Sector → Hubs (backlinked) → Supporting Content → Term Pages → Other Hubs (not backlinked) with authority flow arrows
Inputs from existing docs: Transcript discussion of T1-T5 tier system, SAG-IGNY8-Implementation.md Section 14.3 (health monitoring tracks link coverage), SAG compounding authority evidence from MassagerSmart (DR 29 dominating country rankings)
Section 5: Link Scoring & Priority Algorithm
Content: When the Linker has multiple potential links to create (especially for cross-cluster and related content links), it needs a scoring system to select the highest-value links.
Scoring factors:
| Factor | Weight | Logic |
|---|---|---|
| Shared attribute values | 40% | More shared values = stronger topical relevance |
| Target page authority | 25% | Pages with backlinks or higher link_coverage_score get priority |
| Keyword overlap | 20% | Cluster keyword lists compared — higher overlap = more relevant link |
| Content recency | 10% | Newer content gets slight priority to accelerate indexing |
| Current link count gap | 5% | Pages below minimum inbound links get priority |
Priority ordering for link creation:
- Mandatory links first (Type 1: supporting → hub — always created)
- Hub → supporting links (Type 2 — always created for published content)
- Term page → hub links (Type 5 — always created)
- Cross-cluster hub links (Type 4 — top 2 by score)
- Sibling links (Type 3 — top 2 by score)
- Related content links (Type 7 — fill remaining capacity)
Inputs from existing docs: SAGCluster model has link_coverage_score field, blueprint health monitoring tracks internal link coverage
Section 6: Anchor Text Generation Rules
Content: Anchor text strategy per link type to avoid over-optimization while maximizing keyword relevance.
| Link Type | Anchor Text Strategy | Examples |
|---|---|---|
| Supporting → Hub | Primary keyword of hub (60%), hub title variant (30%), natural phrase (10%) | "foot massagers for neuropathy", "our neuropathy foot massager guide", "learn more about neuropathy relief" |
| Hub → Supporting | Article title (70%), primary keyword (20%), descriptive (10%) | "Doctor-Recommended Foot Massagers for Neuropathy", "doctor-recommended neuropathy massagers" |
| Sibling → Sibling | Natural contextual phrase (60%), article keyword (30%), generic (10%) | "comparing EMS and TENS therapy", "EMS vs TENS for neuropathy" |
| Cross-Cluster Hub → Hub | Target hub primary keyword (50%), descriptive (40%), generic (10%) | "EMS foot massagers", "explore our EMS foot massager guide" |
| Term Page → Hub | Hub primary keyword (50%), hub title (40%), descriptive (10%) | "best foot massagers for neuropathy", "Foot Massagers for Neuropathy Guide" |
| Breadcrumb | Page title (100%) | Always the page title — no variation |
| Related Content | Natural phrase (80%), generic (20%) | "you might also find this helpful", "related: heated massagers for circulation" |
Hard rules:
- No exact-match anchor text used more than 3 times across the entire site for the same target URL
- Anchor text must be grammatically natural in context — never force a keyword phrase that breaks sentence flow
- Never use "click here", "read more", or "this article" as anchor text
- Maximum anchor text length: 8 words
- Minimum anchor text length: 2 words
Section 7: Link Density Enforcement
Content: Maximum and minimum outbound/inbound link counts per page type to prevent over-linking or under-linking.
| Page Type | Min Outbound | Max Outbound | Min Inbound | Notes |
|---|---|---|---|---|
| Homepage | 5 | 15 | N/A (external) | Links to top hubs + sector pages |
| Cluster Hub | 5 | 20 | 3 | Must link to all supporting + 2 cross-cluster |
| Supporting Blog (<1000 words) | 2 | 5 | 1 | Must include hub link |
| Supporting Blog (1000-2000 words) | 3 | 8 | 1 | Must include hub link |
| Supporting Blog (2000+ words) | 4 | 12 | 1 | Must include hub link |
| Attribute Term Page | 3 | unlimited | 0 | Links to ALL connected hubs (no cap) |
| Product Page | 2 | 5 | 1 | Hub + relevant term pages |
| Service Page | 2 | 5 | 1 | Hub + relevant term pages |
Override logic:
- If a hub has 10+ supporting articles, max outbound for hub increases to 25 (listing them all adds value)
- If content is a mega-guide (3000+ words), max outbound increases to 15
- User can manually override density limits per page in IGNY8 UI
Density ratio: Outbound links per 300 words of content, with a target of 1-2 links per 300 words for body content. Navigational sections (related articles, breadcrumbs) don't count toward this ratio.
Section 8: Cross-Cluster & Cross-Sector Linking Logic
Content: Detailed rules for when and how to create links between clusters.
Cross-cluster within same sector:
- Two clusters are cross-link candidates when they share at least 1 attribute value
- Example: "Foot × Neuropathy" and "Foot × Plantar Fasciitis" share Target Area = Foot
- The Linker checks
attribute_intersectionJSON of both clusters for shared values - Maximum 2 cross-cluster outbound links per hub page
- Selection: Score all candidates by the scoring algorithm (Section 5), pick top 2
Cross-sector (multi-sector sites):
- Same logic but across sectors — two clusters from different sectors sharing an attribute value
- These are rarer and higher-value because they connect separate topical areas
- Example: "Agile PM Tools" (PM sector) and "Sprint Planning CRM" (CRM sector) both have Use Case = Agile
- Cross-sector links get a 1.5x score multiplier because they're harder for competitors to replicate
- Maximum 1 cross-sector link per hub page (don't dilute primary sector authority)
Shared attribute value check (pseudocode):
for each cluster_a.hub_page:
candidates = []
for each cluster_b in blueprint.clusters:
if cluster_b == cluster_a: skip
shared = intersection(cluster_a.attribute_values, cluster_b.attribute_values)
if len(shared) >= 1:
score = calculate_link_score(cluster_a, cluster_b, shared)
candidates.append((cluster_b, score))
sort candidates by score desc
create_links(top 2 candidates)
Inputs from existing docs: Blueprint JSON cross_cluster_links field already stores these relationships per cluster
Section 9: Link Injection Method
Content: Where exactly in the content links get placed.
During content generation (New Content Mode):
- AI content generation prompts include link injection instructions
- Links are placed BEFORE content enters the review queue (pipeline Stage 7 reference)
- Writer module receives link targets from the Linker as part of the task context
Link placement zones per page type:
Blog Posts / Supporting Content:
- Zone 1: In-body contextual (primary) — links woven into paragraph text where topically natural
- Hub link: Within first 2 paragraphs, at first natural mention of cluster topic
- Sibling links: In relevant body sections, natural context
- Cross-cluster links: In sections discussing related topics
- Zone 2: "Related Reading" section at end of article (2-3 links)
- Zone 3: Breadcrumb at top (structural, always present)
Cluster Hub Pages:
- Zone 1: In-body contextual — links to supporting content within guide sections
- Zone 2: "Articles in This Guide" / "Complete Guide Contents" section — all supporting articles listed
- Zone 3: "Related Topics" section — cross-cluster hub links (max 2)
- Zone 4: Breadcrumb at top
Attribute Term Pages:
- Zone 1: Intro paragraph — link to the primary cluster hub for this term
- Zone 2: "Explore by Topic" section — all connected cluster hubs listed with brief descriptions
- Zone 3: "Top [Term] Products/Services" — links to relevant products/services
- Zone 4: "Related Guides" — links to supporting blogs across clusters
Product/Service Pages:
- Zone 1: In description — link to cluster hub this product belongs to
- Zone 2: "Specifications" or "Details" section — links to attribute term pages for the product's attribute values
- Zone 3: "Related Products" — sibling products in same cluster
Section 10: Existing Content Audit Mode
Content: How the Linker scans already-published content and identifies missing SAG links.
Trigger: User clicks "Audit Links" in Linker module, or automatic weekly scan via blueprint health monitoring
Audit process:
- Load active blueprint — get all clusters, page types, expected link relationships
- Crawl all published content (from IGNY8 content records, not live site)
- For each page, extract all outbound links (parse HTML content)
- Compare actual links vs expected links per the rules in Sections 3-8
- Generate gap report
Gap report output per page:
- Missing mandatory links (e.g., blog post has no link to its hub)
- Missing cross-cluster links (hub has 0 of 2 recommended)
- Missing attribute term links
- Over-linked pages (exceeding density limits)
- Orphan pages (no inbound links from any SAG page)
Recommendation generation:
- For each missing link: target URL, suggested anchor text (3 variants), suggested placement zone
- For over-linked pages: which links to remove (lowest-scoring by algorithm)
- Priority ordering: mandatory gaps first, then high-authority gaps, then nice-to-haves
User workflow: Linker presents recommendations → user approves/rejects per link → approved links auto-injected into content → content republished to WordPress
Section 11: New Content Mode
Content: How links are automatically inserted during content generation, before the content enters the review queue.
Integration point: Pipeline Stage 4 (Content Generation) → Linker adds link context to Writer task
Flow:
- Writer task created with
sag_cluster_idandblueprint_context - Before content generation, Linker calculates required links for this content piece:
- What cluster is this? → Mandatory link to cluster hub
- What page type is this? → Apply density rules
- What sibling content exists in this cluster? → Sibling link candidates
- What cross-cluster opportunities exist? → Cross-cluster candidates
- Link targets + anchor text suggestions passed to AI content generation prompt
- AI generates content WITH links embedded
- Post-generation link validation: verify all mandatory links present, density within limits
- Content enters review queue with links pre-inserted
Prompt enhancement (added to Thinker prompts):
Link requirements for this content:
- MANDATORY: Link to [hub_url] with anchor text "[primary_keyword]" within first 2 paragraphs
- RECOMMENDED: Link to [sibling_url_1] with anchor "[suggested_anchor]" where contextually relevant
- RECOMMENDED: Link to [cross_cluster_url] with anchor "[suggested_anchor]" if topic comes up naturally
- Total outbound links: [min]-[max] based on content length
- Do NOT use "click here" or "read more" as anchor text
Section 12: Link Health Monitoring
Content: Ongoing monitoring that feeds into the SAG Health Score.
Checks (run weekly or on-demand):
- Broken links: Published URLs that return 404 or redirect chains
- Orphan pages: Pages with 0 inbound SAG links (every page should have at least 1)
- Authority flow gaps: Clusters where hub has backlinks but supporting content has <2 inbound links
- Over-linked pages: Pages exceeding density maximums
- Missing mandatory links: Any supporting blog without a hub link
- Stale cross-links: Cross-cluster links pointing to hubs whose clusters have been restructured
- Anchor text over-optimization: Same exact anchor pointing to same URL more than 3 times site-wide
Health score contribution: The link coverage score (0-100) on SAGCluster model is calculated as:
- Hub page published and has all mandatory links? (25 points)
- All supporting content links back to hub? (25 points)
- At least 1 cross-cluster link on hub? (15 points)
- All attribute term pages link to this hub? (15 points)
- No broken links within cluster? (10 points)
- Density within limits for all cluster pages? (10 points)
Alert thresholds:
- Cluster link score < 50: Flag as "needs attention" in dashboard
- Orphan page detected: Immediate alert
- Broken link detected: Add to fix queue
- 3+ same exact anchor text: Over-optimization warning
Section 13: Reporting & Visualization
Content: What the Linker module shows in the IGNY8 UI.
Cluster-Level Link Coverage Report:
- Table showing all clusters with: cluster name, hub status (published/draft/missing), supporting content count, link coverage score, missing links count
- Color coding: green (score 80+), yellow (50-79), red (<50)
- Click into cluster → see all pages, all links, all gaps
Site-Wide Link Map:
- Visual showing clusters as nodes, with lines connecting cross-linked hubs
- Attribute term pages as connecting nodes between clusters
- Thickness of lines = number of links between nodes
- Helps users see which parts of the grid are well-connected vs isolated
Link Audit Dashboard:
- Total links site-wide
- Missing mandatory links count
- Orphan pages count
- Over-linked pages count
- Top 10 most-linked pages (should be hubs)
- Top 10 least-linked pages (should be investigated)
- Average links per page by type
Gap Analysis Export:
- Downloadable report of all missing links with recommendations
- Format matching existing IGNY8 export patterns
Section 14: Data Models
Content: New models and fields needed for the Linker module.
SAGLink (new model)
- id (UUID)
- blueprint_id (FK → SAGBlueprint)
- source_content_id (FK → Content)
- target_content_id (FK → Content, nullable — for external/term page targets)
- target_url (String — for term pages or external)
- link_type (Enum: hub_upward, hub_downward, sibling, cross_cluster, taxonomy_contextual, breadcrumb, related_content)
- anchor_text (String)
- placement_zone (Enum: in_body, related_section, breadcrumb, specification, guide_contents)
- status (Enum: planned, injected, published, broken, removed)
- score (Float — from scoring algorithm)
- created_at, injected_at
SAGLinkAudit (new model)
- id (UUID)
- blueprint_id (FK → SAGBlueprint)
- audit_date (DateTime)
- total_links (Integer)
- missing_mandatory (Integer)
- orphan_pages (Integer)
- broken_links (Integer)
- over_linked_pages (Integer)
- cluster_scores (JSON — {cluster_id: score} map)
- recommendations (JSON — array of link recommendations)
Modified existing models:
- SAGCluster:
link_coverage_scorealready defined — this doc defines how it's calculated (Section 12) - Content: Add
outbound_link_count(Integer),inbound_link_count(Integer) — cached counters
Section 15: Integration with IGNY8 Pipeline
Content: How the Linker module fits into the existing IGNY8 workflow and automation.
Manual mode:
- User publishes content → clicks "Generate Links" in Linker → reviews recommendations → approves → links injected
- User runs "Audit Links" → sees gap report → approves fixes → links updated
Automation mode (pipeline extension):
- After Stage 7 (images generated), new Stage 8: Link Generation
- Load blueprint, get cluster context for this content
- Generate required links per rules
- Inject into content HTML
- Content enters review queue with links already present
- After publish → async link audit checks all pages in cluster for completeness
WordPress plugin integration:
- When content publishes to WordPress, links are already in the HTML
- Plugin does NOT need to do link processing — IGNY8 app handles all link logic
- Plugin reports back published URL → IGNY8 updates SAGLink records with final published URLs
Section 16: MassagerSmart Reference Example
Content: Walk through the complete interlinking architecture for MassagerSmart.com as the reference implementation.
Example cluster: "Foot Massagers for Neuropathy"
- Hub page: "Best Foot Massagers for Neuropathy & Nerve Pain Relief"
- Links DOWN to: "Doctor-Recommended Foot Massagers for Neuropathy", "EMS vs TENS for Neuropathy", "Does a Foot Massager Actually Help Neuropathy?"
- Links ACROSS to: "EMS Foot Massagers" hub (shared value: Foot), "Heated Foot Massagers" hub (shared value: Foot)
- Links UP to: Sector landing page
- Supporting blog: "Doctor-Recommended Foot Massagers for Neuropathy"
- Links UP to: Hub page (mandatory)
- Links to SIBLING: "EMS vs TENS for Neuropathy" (shared cluster)
- Links to RELATED: "Shiatsu Foot Massagers" hub (different cluster, related topic)
- Attribute Term Page: "Neuropathy"
- Links to: "Foot Massagers for Neuropathy" hub, "EMS Massagers for Neuropathy" hub, "Heated Massagers for Neuropathy" hub — all hubs where Relief Focus = Neuropathy
Show the complete link map for 3-4 clusters demonstrating all 7 link types in practice.
Section 17: Cross-References
Content:
- SAG Master Document — Pure methodology reference
- SAG Implementation for IGNY8 — Three-layer architecture, blueprint JSON, data models, pipeline integration (primary dependency)
- SAG Niche Definition Process — Cluster formation rules that determine link structure (Document 2)
- SAG Backlink Campaign Specification — External links that feed the internal authority flow (Document 4)
Build Plan
This document will be built as Markdown (.md) for the IGNY8 repo, matching the format of SAG-IGNY8-Implementation.md. Estimated 800-1,000 lines across 17 sections. Can be built section by section in one session, or split into 2 sessions if needed.
Sections 1-4 establish the conceptual framework (page types, link types, authority flow). Sections 5-8 define the rules engine (scoring, anchors, density, cross-cluster). Sections 9-11 define the two operating modes (audit existing, generate for new). Sections 12-13 define monitoring and reporting. Sections 14-15 define data models and pipeline integration. Section 16 is the worked example. Section 17 is cross-references.