Skip to content

fix(seo): add missing journal post to sitemap.xml#61

Open
VaultSparkStudios wants to merge 4 commits into
mainfrom
fix/sitemap-missing-journal-post
Open

fix(seo): add missing journal post to sitemap.xml#61
VaultSparkStudios wants to merge 4 commits into
mainfrom
fix/sitemap-missing-journal-post

Conversation

@VaultSparkStudios

Copy link
Copy Markdown
Owner

What

Add the missing journal/building-vault-membership/ URL to sitemap.xml.

Why

The journal post "Building The Vault Membership Portal" (/journal/building-vault-membership/) has been live since 2026-03-10 with full metadata (title, description, og tags, JSON-LD BlogPosting schema, canonical URL) but was absent from sitemap.xml. It is the only journal post not listed there — all 11 other posts under /journal/ are included.

Without a sitemap entry, Google and other crawlers can only discover this page through internal link crawling, not via the sitemap signal. The page has been live ~4.5 months without this coverage.

Change

Single URL entry added in alphabetical order between journal/archive/ and journal/community-enters-the-vault/:

<url>
  <loc>https://vaultsparkstudios.com/journal/building-vault-membership/</loc>
  <lastmod>2026-03-10</lastmod>
  <changefreq>monthly</changefreq>
  <priority>0.8</priority>
</url>

Uses the article's actual publish date as lastmod (more accurate than the batch build stamp used elsewhere), and monthly changefreq since published articles are static.

What to verify

  • sitemap.xml validates at https://www.xml-sitemaps.com/validate-xml-sitemap.html
  • The URL https://vaultsparkstudios.com/journal/building-vault-membership/ loads the correct page
  • Google Search Console shows the URL as discovered/indexed after the next sitemap fetch (may take a few days post-merge)

Scope

sitemap.xml only. No HTML, CSS, JS, or logic changes.


Generated by Claude Code

journal/building-vault-membership/ has been live since 2026-03-10 but
was absent from sitemap.xml, leaving it undiscoverable via sitemap-driven
crawls. Uses the article's actual publish date as lastmod and monthly
changefreq since static published posts don't change.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUgeNRM67gsx4b63a5wYLc

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1d324f463f

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread sitemap.xml
<priority>0.8</priority>
</url>
<url>
<loc>https://vaultsparkstudios.com/journal/building-vault-membership/</loc>

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Fix the generator exclusion so this entry survives

For this new URL, the Generate Sitemap workflow will immediately drop it again: .github/workflows/sitemap.yml uses an unanchored EXCLUDE containing vault-member, which also matches journal/building-vault-membership/index.html, so the same find ... | grep -vE "$EXCLUDE" pipeline excludes this page and the bot regenerates sitemap.xml without this <loc> on the next push or manual workflow run. Narrow the exclusion to the actual /vault-member/ route (or otherwise update the generator) so this public journal page remains discoverable in sitemap.xml.

AGENTS.md reference: AGENTS.md:L226-L227

Useful? React with 👍 / 👎.

claude added 2 commits July 23, 2026 04:14
Two follow-up fixes from the review:

1. sitemap.yml EXCLUDE was unanchored — "vault-member" matched
   journal/building-vault-membership/ and would drop it on the next
   automated sitemap run. Changed to "^\./vault-member/" so only the
   private /vault-member/ route is excluded.

2. api/release-proof.json had drifted: api/staging-health.json was
   refreshed at 03:06 UTC but the committed proof still carried the
   00:57 UTC generatedAt. Regenerated to clear the compliance drift.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUgeNRM67gsx4b63a5wYLc
changelog/index.html had drifted from its source — pre-existing gap
unrelated to the sitemap change. Running the generator to clear the
compliance check at step 48.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUgeNRM67gsx4b63a5wYLc

Copy link
Copy Markdown
Owner Author

CI status update

Step 100 (check-proof-surfacecheck-intelligence-hydration) is failing on this run, but this is pre-existing on main and unrelated to this PR.

What this PR changed

  • sitemap.xml — added the missing journal/building-vault-membership/ URL
  • .github/workflows/sitemap.yml — anchored the vault-member exclude regex so the generator won't drop the entry again (addressed Codex review comment)
  • api/release-proof.json — regenerated to clear timestamp drift from a stale staging-health.json (pre-existing)
  • changelog/index.html — SSR regen to clear you-asked-shipped drift (pre-existing)

Root cause of step 100 failure

check-intelligence-hydration requires api/public-intelligence.json to have a non-empty activityHeatmap. The generator (generate-public-intelligence.mjs) builds the heatmap from portfolio/events.ndjson — but all recent events in that file are for the vaultsparkstudios-website slug, which is explicitly excluded from the heatmap. Result: generator produces activityHeatmap: [].

This state exists on main too — the committed api/public-intelligence.json on main (at 0c92720) also has activityHeatmap: []. The check will fail on any branch built from this base until activity from other projects (games, tools) flows through the pipeline and the intelligence feed is regenerated.

This PR's change (one XML <url> entry) has no connection to the heatmap or the intelligence pipeline. Unblocking this check requires a studio session that produces events for non-website projects.


Generated by Claude Code

Auto-generated outputs from scripts run during CI diagnosis (build
check suite, proof-surface check, public-intelligence regen, heartbeat).
No logic changes — data files only.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01WUgeNRM67gsx4b63a5wYLc
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants