Skip to content

feat(site): Context Overflow-inspired makeover with robot art - #297

Merged
kolatts merged 1 commit into
mainfrom
kolatts/296-site-makeover-robots
Aug 5, 2026
Merged

feat(site): Context Overflow-inspired makeover with robot art#297
kolatts merged 1 commit into
mainfrom
kolatts/296-site-makeover-robots

Conversation

@kolatts

@kolatts kolatts commented Aug 5, 2026

Copy link
Copy Markdown
Owner

What changed

Full visual makeover of the GitHub Pages site in the Context Overflow art direction, plus content-pipeline fixes. Closes #296.

Design system

  • Charcoal #1e1e20 / cream #f2ead9 / signal-gold #d9b84f palette, Fraunces 900 display type, sticker-style buttons (thick cream outline, hard offset shadow), halftone grain, rubber-stamp section eyebrows
  • Dark theme only — the light theme and toggle are removed (DarkModeToggle.astro deleted, color-scheme: dark)
  • Gray section divider lines removed everywhere; vertical rhythm tightened (~⅓ less section padding; homepage 5055px → 4424px tall)
  • pncli wordmark + favicons recolored to the new palette (pixel-exact hue remap, letterforms unchanged)

Robot art & effects

  • New illustrations generated in the Context Overflow sticker style, using the original robot art as edit references: MUNDANE dumping a filing drawer on a buried developer ("Cut through the red tape" band), a new sticker-style hero (developer in a paper mountain split by a gold beam), and a MAVERICK badge anchoring a new callout + footer link to Context Overflow as a resource for learning agentic engineering
  • All art is true-transparency RGBA (edge-connected flood-fill background removal) so it composites seamlessly on the page grain
  • Animated four-point sparkles (hero + subtle ambient layers in six sections), breathing beam glow, rising motes, and scroll parallax at varied depths — reduced-motion aware, transform-only, overflow-free at 390px, zero console errors

Content

  • Root NOTICE restored as source of truth: the full 21-clause compliance notice is back in the actual NOTICE file (ships in repo + npm); /notice renders it at build time via raw import; Pages workflow redeploys on NOTICE changes
  • Getting-started now leads with pncli skills marketplace setup / sync and a provenance explainer (pncli-origin.json, pull-and-skip behavior) — every claim verified against src/services/skills/commands.ts
  • Parse-script fixes: markdown stripped from changelog summaries, blockquotes render properly, --flags as code spans (smartypants disabled), strict semver ordering on all changelog surfaces
  • Commands parser now reconstructs nested command paths: fixes 5 previously-wrong Checkmarx names, adds Dynatrace/ServiceNow/Contrast groups (160 → 198 commands, 19 services)
  • Service grid: Jira/Confluence/Azure DevOps bumped to beta; GitHub + Dynatrace added at basic; IBM UDeploy removed from all public surfaces (commented skip-lists for easy re-add; CLI and distributed skill untouched)
  • Feedback community card renamed Beyond Boring → Context Overflow

Screenshots

Hero MUNDANE band
Services grid MAVERICK + What's new
Marketplace docs NOTICE page
Mobile (390px)

Mobile

Reviewer notes

  • Verified via repeated playwright passes (every page, mobile width, reduced-motion, console) — final rounds passed 17/17 + 4/4 checks with zero defects
  • Root npm run typecheck / lint / test all pass (404/404); site/ npm run build passes (40 pages)
  • The 5 changed Checkmarx command names in the reference were already wrong before this PR (parser emitted duplicated flat names); they now match the real CLI
  • Historical changelog entries intentionally still mention UDeploy/Beyond Boring
  • Effects are dependency-free (inline SVG/CSS + one small shared parallax.ts)

🤖 Generated with Claude Code

Full visual redesign of the GitHub Pages site plus content fixes:

- New charcoal/cream/signal-gold design system with Fraunces display
  type, sticker-style buttons, halftone grain; dark theme only (toggle
  removed)
- Robot illustrations generated in the Context Overflow art style:
  MUNDANE dumping paperwork on a developer, a new sticker-style hero,
  and a MAVERICK badge linking to the Context Overflow site as a
  resource for learning agentic engineering
- True-transparency art assets, animated sparkles, breathing beam glow,
  and scroll parallax (reduced-motion aware, overflow-safe at 390px)
- pncli wordmark and favicons recolored to the new palette
- Gray section dividers removed; vertical rhythm tightened site-wide
- Root NOTICE file restored as the single source of truth; the /notice
  page now renders it at build time, and Pages redeploys on its change
- Getting-started now documents pncli skills marketplace setup/sync
  with a provenance explainer verified against the command source
- Parse-script fixes: markdown stripped from changelog summaries,
  blockquote rendering, flags as code spans (smartypants off), semver
  ordering; parser now reconstructs nested command paths (fixes
  Checkmarx names; adds Dynatrace, ServiceNow, Contrast groups)
- Service grid: Jira/Confluence/Azure DevOps at beta, GitHub and
  Dynatrace added at basic, IBM UDeploy removed from the public site
- Feedback page community card renamed to Context Overflow

Closes #296

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@claude

claude Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Claude finished @kolatts's task in 4m 37s —— View job


PR Review: feat(site): Context Overflow-inspired makeover with robot art

  • Clean up previous Claude comments
  • Read PR diff and key changed files
  • Review design/CSS changes
  • Review content pipeline scripts
  • Review Astro component changes
  • Check for bugs, security, and edge cases
  • Post summary and inline comments

Summary

Clean, well-executed makeover. The parallax runtime, animation system, and content pipeline fixes are all solid. No blocking issues. A few minor items worth flagging below.


Findings

parallax.ts — view-mode centering (correct, but worth documenting)

The view-mode algorithm at site/src/scripts/parallax.ts:29-31:

const center = rect.top + rect.height / 2 - item.last;
delta = (center - vh / 2) * item.speed;

Subtracting item.last correctly "un-transforms" the painted rect to get the natural center before computing the new delta. The steady-state proof holds: if scroll doesn't change, rect.top shifts by the same amount item.last shifts, keeping center stable. This is correct.

notice.astroset:html XSS safety

The escapeHtml helper in site/src/pages/notice.astro correctly escapes &, <, > before the content is wrapped in <span> tags with compile-time color constants. set:html is safe here. The NOTICE-as-raw-import pattern is also a good way to guarantee the page and the file stay in sync.

sortChangelogEntries — semver comparator

site/src/lib/changelog.ts — the numeric split-compare is correct and handles 1.10.0 > 1.9.0 properly, which date-sorting doesn't. One unguarded edge: if a version string ever carries a pre-release suffix like 1.2.0-beta, Number('0-beta')NaN and the comparator silently misbehaves. Not a current issue since the changelog uses strict X.Y.Z, but worth a one-liner guard if pre-release tags are ever adopted.

parse-commands.mjs — COMMAND_RE global regex with matchAll

COMMAND_RE is defined at module scope with the /g flag and reused in both Pass 1 and Pass 2 via matchAll. JS spec has matchAll copy the regex internally, so lastIndex is never mutated on the shared COMMAND_RE. Safe.

smartypants: false — global, not changelog-scoped

The markdown: { smartypants: false } in site/astro.config.mjs is the right fix for --output-file → em dash in changelog bodies, but it applies globally. Skill docs, getting-started prose, and any future MDX content lose smart quotes and proper em dashes. Not a showstopper, but worth knowing the tradeoff — if it becomes annoying, remark-smartypants can be configured per-collection.

Token naming inversion

global.css swaps the semantic intent of cream and ink to avoid touching every utility class:

--color-cream: #1e1e20;   /* now charcoal */
--color-ink: #f2ead9;     /* now paper */

The comment explains it well. Just make sure whoever touches the design tokens next reads it before wondering why bg-cream is charcoal.

Nit: rel inconsistency on external links

Discord link in Footer.astro uses rel="noopener noreferrer". The Context Overflow links in index.astro and Footer.astro use only rel="noopener". Neither is wrong for a friendly outbound link, but picking one convention and applying it consistently would remove a future "why is this different?" question.


No blocking issues. The animation system is clean, accessible, and dependency-free. The content pipeline fixes are correct. Good to merge.

@kolatts
kolatts enabled auto-merge (squash) August 5, 2026 03:30

@claude claude Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Clean, well-executed makeover. The parallax runtime, animation system, and content pipeline fixes are all solid.

A few minor items called out in my comment (smartypants global scope, token naming inversion, rel consistency), but nothing blocking. The set:html in notice.astro is safe given the escapeHtml pass, the parallax view-mode centering is mathematically correct, and the semver comparator handles the multi-digit case properly.

Good to ship.

@kolatts
kolatts merged commit ee08f76 into main Aug 5, 2026
2 checks passed
@kolatts
kolatts deleted the kolatts/296-site-makeover-robots branch August 5, 2026 03:34
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.

Site makeover: Context Overflow-inspired restyle with robot art

1 participant