Big-Link-Man/docs/prd/epic-3-pre-deployment.md

3.3 KiB

Epic 3: Pre-Deployment, URL Generation & Interlinking

Epic Goal

To loop through each article in a batch, validate/create its cloud target, generate its final URL, and then inject all required interlinks (batch "wheel," home page, and tiered) into the HTML content before deployment.

Stories

Story 3.1: Generate and Validate Article URLs

As a developer, I want to loop through every article in my batch, validate or create its specific cloud bucket, and generate its final public URL, so that I have a definitive list of all new URLs before I try to interlink them.

Acceptance Criteria A script iterates through each new article in the batch.

  • A script iterates through each new article in the batch.
  • For each article, it identifies the target cloud bucket (one bucket per article).
  • It checks if that specific bucket exists and is accessible.
  • If the bucket does not exist, it creates it.
  • If bucket validation/creation fails for any article, the script halts with a clear error for that article.
  • Using the bucket's base URL and the FQDN mapping logic, it constructs the final, absolute URL for the article.
  • The script outputs a complete list/map of all newly generated URLs for the batch (e.g., [{ title: 'Article 1', url: '...' }, { title: 'Article 2', url: '...' }]).

Story 3.2: Find Tiered Links

As a developer, I want a module that finds all required tiered links (money site or lower-tier) based on the current batch's tier, so I have them ready for injection.

Acceptance Criteria:

  • The module checks the current batch's Tier.
  • If Tier 1: It gets the money_site_url from the project settings.
  • If Tier 2 or higher: It queries the urls table for 2-4 random URLs from the tier immediately below it (e.g., a T2 batch gets T1 URLs).
  • It returns an object containing the required links (e.g., { money_site_url: '...' } or { lower_tier_urls: [...] }).

Story 3.3: Content Interlinking Injection

As a User, I want the system to inject all required links (batch "wheel", home page, and tiered/money site) into each new article using the finalized URL list.

Acceptance Criteria:

  • A script takes the raw HTML content (from Epic 2), the list of new URLs (from 3.1), the tiered links (from 3.2), and the project JSON (for anchor text).
  • Wheel/Home Page Links:
    • For each article in the new_article_urls list, it injects a "next" and "previous" link.
    • The "next" link points to the next article in the list. The last article's "next" link must loop back and point to the first article.
    • The "previous" link points to the previous article in the list. The first article's "previous" link must loop back and point to the last article.
    • Each article must also contain a link to its bucket's home page (derived from its URL in 3.1).
  • Tiered/Anchor Text Links:
    • It loads the anchor text lists (T1, T2, etc.) from the project JSON.
    • If Tier 1: It scans the HTML for anchor text from the T1 list and links the first instance to the money_site_url.
    • If Tier 2 or higher: It scans the HTML for anchor text from the appropriate tier's list. For each of the 2-4 anchor texts found, it inserts a link to one of the lower_tier_urls.
  • The script produces the final, fully interlinked HTML content, ready for deployment in Epic 4.