Blue User Tags Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Render @mention user tags in posts in blue so they stand out from body text.

Architecture: Render-only change. All post text flows through one component, components/feed/RMHarkContent.tsx, which tokenizes text and styles @mentions. Switch the mention className from the purple site accent to the same blue already used for hashtags.

Tech Stack: React, TanStack Router, Tailwind CSS v4.

Global Constraints

  • Tailwind CSS v4, utility classes inline in className (no config file).

  • No new theme tokens; reuse existing text-sky-400 / text-sky-300.

  • Only mentions change; URLs keep text-site-accent.


Task 1: Color mentions blue

Files:

  • Modify: components/feed/RMHarkContent.tsx:35

Interfaces:

  • Consumes: nothing new.

  • Produces: nothing new (visual change only).

  • Step 1: Change the mention className

In the @mention branch (the if (/^@\w+$/.test(part)) block), change the <Link> className from:

className="text-site-accent hover:underline"

to (matching the hashtag styling on the adjacent branch):

className="text-sky-400 hover:text-sky-300 hover:underline"
  • Step 2: Verify it compiles / lints

Run: npx tsc --noEmit (or the project’s typecheck/lint command) Expected: no new errors. This is a className string change, so types are unaffected.

  • Step 3: Visual verification

Render a post containing an @handle (feed card, post detail, or comment) and confirm the mention shows blue, matching hashtags, with hover still working. No unit test — a Tailwind class swap has no meaningful assertable logic (per spec).

  • Step 4: Commit

git add components/feed/RMHarkContent.tsx
git commit -m "feat(feed): render @mention user tags in blue"

Self-Review

  • Spec coverage: Spec’s single change (mention className → blue) is covered by Task 1. ✓

  • Placeholder scan: None. ✓

  • Type consistency: No types involved; className string only. ✓