Skip to content

fix(seo): use real LinkedIn URL in AUTHOR_CONFIG.sameAs#404

Merged
mergify[bot] merged 1 commit into
mainfrom
fix/seo-real-linkedin-url
May 17, 2026
Merged

fix(seo): use real LinkedIn URL in AUTHOR_CONFIG.sameAs#404
mergify[bot] merged 1 commit into
mainfrom
fix/seo-real-linkedin-url

Conversation

@julianken
Copy link
Copy Markdown
Owner

Summary

Replace the LinkedIn placeholder /in/julian-kennon in two places with Julian's real URL /in/julian-k-ba6b5897.

Changes

  • src/lib/schema/config.tsAUTHOR_CONFIG.sameAs second entry.
  • docs/seo-strategy/drafts/julianken-profile-readme.md — LinkedIn link in the contact section.
  • tests/unit/lib/schema/profile-page.test.ts — mock AUTHOR_CONFIG.sameAs updated to match (test fixture follow-on from config change).

URL verified HTTP 200 at time of writing.

Test plan

  • pnpm lint, pnpm test:unit (584 passing), pnpm typecheck all pass
  • CI

Closes #403

The Tier C identity migration (#400) shipped with a placeholder LinkedIn
URL because the actual profile didn't exist yet. Julian confirmed his
real handle: julian-k-ba6b5897. Update both AUTHOR_CONFIG.sameAs and the
docs/seo-strategy/drafts/julianken-profile-readme.md draft.

A placeholder/404 URL in sameAs is an active-negative signal to Google's
entity graph - same class of issue the original broken github.com/detached-node
sameAs had. This closes the entity-graph gap.

Closes #403
@julianken julianken added status:in-review PR open, waiting for review area:seo SEO + AI-discovery strategy work labels May 17, 2026
Copy link
Copy Markdown
Collaborator

@julianken-bot julianken-bot left a comment

Choose a reason for hiding this comment

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

Verdict: APPROVE

Verification ledger

  • pnpm test:unit at PR HEAD c3d50c0: 584/584 passing across 37 files (including tests/unit/lib/schema/profile-page.test.ts)
  • pnpm typecheck at PR HEAD: clean
  • grep -rn "julian-kennon" src/ tests/: zero matches — all in-scope source/test references are updated
  • LinkedIn URL https://www.linkedin.com/in/julian-k-ba6b5897: curl -I returns 999 (LinkedIn's standard anti-bot response, expected; the PR body's "verified HTTP 200 from browser" claim is the right verification path here)
  • Bot collaborator permission on julianken/detached-node: write — APPROVE event valid

Findings

None.

Notes

Second-pass thoughts (R8) on potential improvements:

  • 8 strategy-archive files under docs/seo-strategy/phase-*/, context-packets/, and issues/C-body.md still reference julian-kennon. These are historical phase records (decisions captured at a point in time) and the closed source issue body; updating them would be revisionist and is explicitly out of the issue's stated scope. Correct call to leave alone.
  • Trailing-slash convention preserved: new URL has no trailing slash, matching the https://github.com/julianken entry — per the acceptance criterion in #403.

Bottom line

Three-line, well-scoped fix replacing a placeholder identifier with a verified real one. Tests + types green at HEAD. The companion test fixture update is the right amount of test maintenance for a config change — neither overshoots nor undershoots.

@julianken-bot

@julianken
Copy link
Copy Markdown
Owner Author

@Mergifyio queue

@mergify
Copy link
Copy Markdown
Contributor

mergify Bot commented May 17, 2026

Merge Queue Status

  • Entered queue2026-05-17 20:56 UTC · Rule: default
  • Checks skipped · PR is already up-to-date
  • Merged2026-05-17 20:56 UTC · at c3d50c0381f5edd90d3437a709ef2d77307c86e3 · squash

This pull request spent 16 seconds in the queue, including 2 seconds running CI.

Required conditions to merge
  • #approved-reviews-by >= 1 [🛡 GitHub branch protection]
  • #changes-requested-reviews-by = 0 [🛡 GitHub branch protection]
  • github-review-decision = APPROVED [🛡 GitHub branch protection]
  • any of [🛡 GitHub branch protection]:
    • check-success = ESLint
    • check-neutral = ESLint
    • check-skipped = ESLint
  • any of [🛡 GitHub branch protection]:
    • check-success = TypeScript
    • check-neutral = TypeScript
    • check-skipped = TypeScript
  • any of [🛡 GitHub branch protection]:
    • check-success = Vitest
    • check-neutral = Vitest
    • check-skipped = Vitest
  • any of [🛡 GitHub branch protection]:
    • check-success = Next.js Build
    • check-neutral = Next.js Build
    • check-skipped = Next.js Build
  • any of [🛡 GitHub branch protection]:
    • check-success = Analyze Bundle
    • check-neutral = Analyze Bundle
    • check-skipped = Analyze Bundle
  • any of [🛡 GitHub branch protection]:
    • check-success = CodeQL Analysis
    • check-neutral = CodeQL Analysis
    • check-skipped = CodeQL Analysis
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 1/4
    • check-neutral = E2E Shard 1/4
    • check-skipped = E2E Shard 1/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 2/4
    • check-neutral = E2E Shard 2/4
    • check-skipped = E2E Shard 2/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 3/4
    • check-neutral = E2E Shard 3/4
    • check-skipped = E2E Shard 3/4
  • any of [🛡 GitHub branch protection]:
    • check-success = E2E Shard 4/4
    • check-neutral = E2E Shard 4/4
    • check-skipped = E2E Shard 4/4

@mergify mergify Bot added the queued label May 17, 2026
@mergify mergify Bot merged commit 1347e68 into main May 17, 2026
13 checks passed
@mergify mergify Bot deleted the fix/seo-real-linkedin-url branch May 17, 2026 20:56
@mergify mergify Bot removed the queued label May 17, 2026
mergify Bot pushed a commit that referenced this pull request May 18, 2026
* chore(docs): drop seo-strategy folder; align README to renamed post slug

Removes docs/seo-strategy/ — research artifacts from the SEO + AI-
discovery analysis funnel, no longer load-bearing now that the
gate-1/2/3 work has shipped (#393 #394 #395 #396 #397 #400 #402 #404
#406 #408). History preserved in git.

README: align "Recent essays" entry with the renamed post
slug (where-agentic-patterns-actually-live →
agentic-patterns-in-your-coding-workflow). The rename satisfies Bing
Site Scan's 70-char title cap.

No redirect deployed — article is two days old, no significant
external link equity to preserve.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

* fix: defer README slug update; gitignore docs/seo-strategy

Address julianken-bot review of PR #409:

BLOCKER (README:75) — New slug URL serves an SSR 404 fallback because
the Payload post slug hasn't been renamed yet (intentionally deferred
until the in-flight Bing Site Scan completes). Reverting the README
link change here; it will land in a follow-up PR after the actual
Payload slug rename, so the link is never broken in main.

Plus: add /docs/seo-strategy/ to .gitignore so future analysis-funnel
artifacts (phase-*, context-packets, STATUS.md, issues/) stay on disk
without polluting the index.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:seo SEO + AI-discovery strategy work status:in-review PR open, waiting for review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

fix(seo): update LinkedIn sameAs to real URL

2 participants