Skip to content

feat(ag-p01): Astro project scaffold, BaseLayout, fonts, design-system import#851

Merged
ashleyshaw merged 15 commits into
developfrom
feat/ag-p01-scaffold
Jun 6, 2026
Merged

feat(ag-p01): Astro project scaffold, BaseLayout, fonts, design-system import#851
ashleyshaw merged 15 commits into
developfrom
feat/ag-p01-scaffold

Conversation

@ashleyshaw
Copy link
Copy Markdown
Member

@ashleyshaw ashleyshaw commented Jun 6, 2026

Linked issues

Closes #850

Changelog

Added

  • Astro project scaffold in website/ directory with static output adapter
  • BaseLayout.astro with mandatory theme-init guard script and design-system CSS imports
  • Design-system token CSS files copied to website/public/design-system/
  • Font files (Inter, Manrope) copied to website/public/fonts/
  • Brand SVG assets (LS Agency logos) copied to website/public/assets/
  • site-tokens.css stub ready for Phase 02 implementation

Changed

  • Updated astro.config.mjs with base path /awesome-github/ for GitHub Pages deployment
  • Configured Astro build output to static mode with _assets directory
  • Updated package.json with @astrojs/sitemap integration
  • Simplified index.astro to Phase 01 placeholder pending Phase 05 content
  • Fixed font URLs in colors_and_type.css to resolve correctly from /design-system/ (use ../fonts/ relative paths)

Removed

  • /talk/* pages and slideshow routes (not part of Phase 01 scope; will be re-implemented in Phase 05)
  • SearchPalette Svelte component from build (disabled due to Astro/Svelte compatibility; can be re-enabled with fixes in Phase 02+)

Risk Assessment

Risk Level: Low

Potential Impact:

  • This is a foundational scaffold phase with no user-facing functionality beyond the placeholder
  • Talk/slides pages are explicitly removed as they are beyond Phase 01 scope
  • Changes are isolated to build configuration and layout structure
  • Existing agent/skill/instruction pages continue to function with updated layouts

Mitigation Steps:

  • Build verified with npm run build producing 220 pages with zero errors
  • Dev server verified running at http://localhost:4321/awesome-github/
  • No changes to production content or core functionality
  • All changes in isolated website/ directory
  • Talk pages will be re-implemented in Phase 05

How to Test

Prerequisites

  • Node.js environment available
  • Git branch feat/ag-p01-scaffold checked out

Test Steps

  1. Build verification: Run npm run build from website/ directory — should complete with zero errors (220 pages)
  2. Dev server: Run npm run dev from website/ directory — should start serving at http://localhost:4321/awesome-github/
  3. Page render: Open http://localhost:4321/awesome-github/ in browser — should display placeholder "Phase 01 scaffold" message
  4. Asset loading: Verify console has no errors or warnings about missing fonts
  5. Agent pages: Verify agent list and detail pages render correctly (removed talk/slides links)

Expected Results

  • Build completes successfully (220 pages)
  • Dev server starts without errors
  • Placeholder page renders correctly at /awesome-github/ path
  • No console errors or missing asset warnings
  • Fonts load correctly (../fonts/ relative paths resolve)
  • Agent pages display without broken links

Edge Cases to Verify

  • Build with clean node_modules
  • Dev server responsive to file changes
  • Base path correctly set for GitHub Pages /awesome-github/ routing
  • Font paths resolve correctly from design-system CSS

Checklist (Global DoD / PR)

  • All AC met and demonstrated
  • Tests verified (build passes, dev server runs)
  • No accessibility concerns at this phase (placeholder content only)
  • Changelog updated above
  • Risk assessment completed
  • Testing instructions provided
  • CI validation (build & dev verification complete)
  • Code review feedback addressed (font paths, lang attribute, colorScheme)

References

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 6, 2026

✅ Template check passed after update. Thanks for fixing the PR description.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Jun 6, 2026

Review Change Stack

Warning

Review limit reached

@ashleyshaw, we couldn't start this review because you've reached your PR review rate limit.

More reviews will be available in 46 minutes and 10 seconds. Learn how PR review limits work.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available.

Please see our Fair Usage Limits Policy for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: 602005e1-2208-403d-a5fe-805a03433d45

📥 Commits

Reviewing files that changed from the base of the PR and between 41f354c and 457bb27.

⛔ Files ignored due to path filters (7)
  • website/package-lock.json is excluded by !**/package-lock.json
  • website/public/assets/LS-Agency-Logo-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Logo-White.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-Light-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-White.svg is excluded by !**/*.svg
  • website/public/assets/wapuu-rocket.svg is excluded by !**/*.svg
📒 Files selected for processing (31)
  • .github/workflows/awesome-github-site.yml
  • .github/workflows/changelog-validate.yml
  • .github/workflows/checks.yml
  • .github/workflows/labeling.yml
  • .github/workflows/meta.yml
  • .github/workflows/planner.yml
  • .github/workflows/readme-regen.yml
  • .github/workflows/reviewer.yml
  • .gitignore
  • CHANGELOG.md
  • website/astro.config.mjs
  • website/package.json
  • website/public/design-system/colors_and_type.css
  • website/public/design-system/components.css
  • website/public/design-system/spacing_and_effects.css
  • website/src/components/.Slideshow.svelte.disabled
  • website/src/components/.SlideshowViewer.svelte.disabled
  • website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled
  • website/src/content.config.ts
  • website/src/layouts/AwesomeGithubLayout.astro
  • website/src/layouts/BaseLayout.astro
  • website/src/lib/wceuSlides.ts
  • website/src/pages/agents/[slug].astro
  • website/src/pages/agents/index.astro
  • website/src/pages/index.astro
  • website/src/pages/slideshow.astro
  • website/src/pages/talk/index.astro
  • website/src/pages/talk/slides/[slug].astro
  • website/src/pages/talk/slides/index.astro
  • website/src/pages/talk/slideshow/index.astro
  • website/src/styles/site-tokens.css
📝 Walkthrough

Walkthrough

This PR completes Phase 01 of the website scaffold, establishing a design-system-driven Astro project structure. The config is updated for GitHub Pages, comprehensive design-system tokens and typography are introduced, BaseLayout is rebuilt as a minimal theme-aware wrapper, and old component-heavy pages are removed in favour of a static scaffold approach.

Changes

Phase 01 Website Scaffold

Layer / File(s) Summary
Astro Configuration & Sitemap Integration
website/astro.config.mjs, website/package.json
The Astro config now targets GitHub Pages deployment with base: '/awesome-github', switches from Svelte integration to sitemap, and updates the build assets directory to _assets. The @astrojs/sitemap dependency is added.
Design-System Tokens & Typography Foundation
website/public/design-system/colors_and_type.css
A comprehensive 361-line design-system token stylesheet introduces colour primitives, semantic light/dark-mode variables, typography scales (families, sizes, weights, line-heights, tracking), spacing, radii, shadows, motion timings, and semantic typography classes (.ls-display-*, .ls-h*, body, eyebrow, lead, code, link, etc.) plus accessible focus-visible styling. Fonts (Inter, Manrope) are imported via Google Fonts and local @font-face entries.
BaseLayout Refactor: Minimal Design-Aware Shell
website/src/layouts/BaseLayout.astro
BaseLayout is rebuilt from a full chrome shell (navigation, footer, theme toggle UI) to a minimal 48-line wrapper that imports global and design-system tokens, implements a single inline theme-guard IIFE to set data-theme from localStorage or prefers-color-scheme, and renders only a <slot />. The <head> now includes lang en, theme-guard script, design-system CSS links, and a favicon, all using BASE_URL.
Disable SearchPalette & Remove Talk Routes
website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled, website/src/layouts/AwesomeGithubLayout.astro, website/src/pages/slideshow.astro, website/src/pages/talk/...
SearchPalette is disabled (TypeScript props removed), AwesomeGithubLayout no longer mounts the SearchPalette component, and all talk-related pages are removed: talk/index.astro, talk/slides/[slug].astro, talk/slides/index.astro, talk/slideshow/index.astro, and the root slideshow.astro.
Homepage & Placeholder Stubs
website/src/pages/index.astro, website/public/design-system/components.css, website/public/design-system/spacing_and_effects.css, website/src/styles/site-tokens.css
The homepage is simplified to use BaseLayout with a static Phase 01 scaffold <main> section instead of the previous dynamic awesome-github component tree. Placeholder CSS files and site-tokens comments are added to indicate Phase 02 completion points.

Sequence Diagram(s)

sequenceDiagram
  participant Browser
  participant BaseLayout
  participant ThemeGuard
  participant localStorage
  participant prefersColorScheme
  Browser->>BaseLayout: Render page
  BaseLayout->>ThemeGuard: Execute theme-init IIFE
  ThemeGuard->>localStorage: Check stored theme
  alt Theme found in localStorage
    ThemeGuard->>ThemeGuard: Use stored theme
  else No stored theme
    ThemeGuard->>prefersColorScheme: Check system preference
    ThemeGuard->>ThemeGuard: Use system preference
  end
  ThemeGuard->>BaseLayout: Set data-theme on document
  BaseLayout->>Browser: Render slot with theme applied
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • lightspeedwp/.github#769: Both PRs heavily modify the site shell around website/src/layouts/BaseLayout.astro and the WCEU 2026/talk page routes (retrieved PR adds/polishes them, whilst the main PR removes the talk-related page structure and simplifies BaseLayout, eliminating the header/footer shell).
  • lightspeedwp/.github#755: Both PRs touch the core site scaffold—especially website/src/layouts/BaseLayout.astro (main radically simplifies/removes chrome whilst retrieved introduces full header/footer layout) and the homepage (website/src/pages/index.astro)—so the changes are directly related at the layout/page level.

Suggested labels

priority:normal, status:needs-review, type:feature, area:assets, area:documentation, lang:css, lang:js, lang:md, meta:needs-changelog, area:theme

Suggested reviewers

  • krugazul
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and specifically summarises the main changes: Astro project scaffold, BaseLayout component, and design-system/fonts imports.
Linked Issues check ✅ Passed All deliverables from issue #850 are met: Astro project initialised, astro.config.mjs configured for GitHub Pages, design-system CSS/fonts copied, BaseLayout.astro created with theme-init and CSS imports, site-tokens.css stub added, and build verified.
Out of Scope Changes check ✅ Passed All changes are within scope of Phase 01 scaffold objectives. The removal of slideshow/talk pages and SearchPalette component aligns with the foundational restructuring for the new Astro setup.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description check ✅ Passed The pull request description is comprehensive, well-structured, and follows the required template with all major sections completed: linked issues, detailed changelog (Added/Changed/Removed), risk assessment, testing instructions, and checklist.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/ag-p01-scaffold

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Jun 6, 2026

🔍 Reviewer Summary for PR #851

CI Status:success
Files changed: 38
Risk Distribution: 8 critical, 2 high, 15 medium, 13 low

Recommendations

  • ⚠️ 8 critical-risk file(s) modified (workflows, secrets)
  • ⚠️ Security-sensitive files modified (review carefully)
  • ⚠️ Large deletion detected (>500 lines removed)

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request refactors the website's layout and introduces a new design system, including CSS tokens and updated assets, while scaffolding the home page. The review feedback highlights several critical issues: a CSS standard violation where an '@import' rule is placed incorrectly, a missing 'is:inline' directive on the theme guard script that could cause a flash of unstyled content, an overreaching universal focus-visible border-radius style, a mismatch in the 'localStorage' theme keys across layouts, and an unnecessary downgrade of Svelte from version 5 to 4.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment on lines +10 to +26
@font-face {
font-family: "Inter";
src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"),
url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2");
font-weight: 100 900;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "Manrope";
src: url("fonts/Manrope-VariableFont_wght.woff2") format("woff2-variations"),
url("fonts/Manrope-VariableFont_wght.woff2") format("woff2");
font-weight: 200 800;
font-style: normal;
font-display: swap;
}
@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap');
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.

high

According to the CSS specification, @import rules must precede all other types of rules in a style sheet (except @charset or @layer). Placing the Google Fonts @import statement after the @font-face rules violates this standard, causing compliant browsers to ignore the import entirely. This means the IBM Plex Mono and Lora fonts will fail to load.

Moving the @import statement to the very top of the file resolves this issue.

@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap');\n\n@font-face {\n  font-family: \"Inter\";\n  src: url(\"fonts/Inter-VariableFont_opsz_wght.woff2\") format(\"woff2-variations\"),\n       url(\"fonts/Inter-VariableFont_opsz_wght.woff2\") format(\"woff2\");\n  font-weight: 100 900;\n  font-style: normal;\n  font-display: swap;\n}\n@font-face {\n  font-family: \"Manrope\";\n  src: url(\"fonts/Manrope-VariableFont_wght.woff2\") format(\"woff2-variations\"),\n       url(\"fonts/Manrope-VariableFont_wght.woff2\") format(\"woff2\");\n  font-weight: 200 800;\n  font-style: normal;\n  font-display: swap;\n}

Comment thread website/src/layouts/BaseLayout.astro Outdated
<html lang="en" data-theme="light">
<head>
<!-- MANDATORY: theme guard MUST be first script, before any stylesheet -->
<script>
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.

high

The theme guard script is missing the is:inline directive. By default, Astro processes, bundles, and defers <script> tags. For a theme guard script to effectively prevent a flash of unstyled content (FOUC), it must execute synchronously and inline before any stylesheets or HTML elements are rendered. Adding is:inline ensures Astro leaves the script as-is in the final HTML.

  <script is:inline>

Comment on lines +357 to +361
*:focus-visible {
outline: 2px solid var(--border-focus);
outline-offset: 2px;
border-radius: 4px;
}
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.

medium

Applying border-radius: 4px; to the universal selector *:focus-visible is highly problematic. Because * matches every element, this rule will force a 4px border-radius on any focused element, overriding custom shapes (such as pill-shaped buttons with --radius-pill or circular avatars). This causes jarring layout shifts and visual glitches when elements receive focus.

It is recommended to remove border-radius from the universal focus-visible style and let elements retain their natural shapes.

*:focus-visible {\n  outline: 2px solid var(--border-focus);\n  outline-offset: 2px;\n}

Comment thread website/src/layouts/BaseLayout.astro Outdated
localStorage.setItem(storageKey, next);
} catch (_) {
/* ignore storage errors */
var t = localStorage.getItem('ag-theme');
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.

medium

There is a mismatch in the localStorage key used for theme persistence. BaseLayout.astro uses 'ag-theme', while AwesomeGithubLayout.astro uses 'awesome-github-theme'. This inconsistency will prevent the user's theme preference from persisting when navigating between pages that use different layouts. Using a consistent key like 'awesome-github-theme' across all layouts resolves this.

      var t = localStorage.getItem('awesome-github-theme');

Comment thread website/package.json Outdated
Comment on lines +24 to +28
"@astrojs/svelte": "^5.1.0",
"@phosphor-icons/core": "^2.1.1",
"astro": "^5.11.0",
"gray-matter": "^4.0.3",
"svelte": "^5.0.0"
"svelte": "^4.2.0"
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.

medium

Svelte has been downgraded from ^5.0.0 to ^4.2.0 (and @astrojs/svelte from ^5.7.3 to ^5.1.0). Svelte 5 is the current stable major version and offers significant performance and reactivity improvements (such as runes). Unless there is a specific blocking issue, it is highly recommended to keep Svelte 5 to ensure the project remains modern and future-proof.

Suggested change
"@astrojs/svelte": "^5.1.0",
"@phosphor-icons/core": "^2.1.1",
"astro": "^5.11.0",
"gray-matter": "^4.0.3",
"svelte": "^5.0.0"
"svelte": "^4.2.0"
\"@astrojs/svelte\": \"^5.7.3\",\n \"@phosphor-icons/core\": \"^2.1.1\",\n \"astro\": \"^5.11.0\",\n \"gray-matter\": \"^4.0.3\",\n \"svelte\": \"^5.0.0\"

@ashleyshaw ashleyshaw requested a review from Copilot June 6, 2026 13:29
@ashleyshaw ashleyshaw marked this pull request as ready for review June 6, 2026 13:30
@github-actions github-actions Bot added status:needs-review Awaiting code review type:feature Feature or enhancement priority:normal Default priority area:assets Assets (images, fonts, static files) lang:css Stylesheets (CSS/Sass/etc.) labels Jun 6, 2026
@ashleyshaw ashleyshaw self-assigned this Jun 6, 2026
@github-actions github-actions Bot added the lang:json JSON config/content label Jun 6, 2026
@github-actions github-actions Bot added type:chore Chore / small hygiene change meta:needs-changelog Requires a changelog entry before merge labels Jun 6, 2026
@coderabbitai coderabbitai Bot requested a review from krugazul June 6, 2026 13:31
@coderabbitai coderabbitai Bot added area:theme Theme & styles lang:js JavaScript/TypeScript lang:md Markdown content/docs area:documentation Docs & guides labels Jun 6, 2026
@github-actions github-actions Bot removed the type:chore Chore / small hygiene change label Jun 6, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR moves the website/ Astro app into a Phase 01 “scaffold” state by simplifying the home page, introducing a new minimal BaseLayout, and wiring in design-system token CSS plus sitemap generation for GitHub Pages deployment under /awesome-github/.

Changes:

  • Added a minimal BaseLayout.astro with a theme-init guard and design-system CSS imports; added a site-tokens.css stub for Phase 02.
  • Updated Astro configuration for static builds with a GitHub Pages base path and _assets output directory; added @astrojs/sitemap.
  • Removed the existing /talk/* pages and slideshow routes; disabled Svelte components related to the talk/slideshow.

Reviewed changes

Copilot reviewed 15 out of 24 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
website/src/styles/site-tokens.css Adds Phase 02 placeholder for site-specific token overrides.
website/src/pages/talk/slideshow/index.astro Removes talk slideshow page route.
website/src/pages/talk/slides/index.astro Removes talk “all slides” index route.
website/src/pages/talk/slides/[slug].astro Removes per-slide static route and related content logic.
website/src/pages/talk/index.astro Removes talk landing page route.
website/src/pages/slideshow.astro Removes standalone slideshow viewer route.
website/src/pages/index.astro Replaces the existing homepage with a Phase 01 placeholder using BaseLayout.
website/src/layouts/BaseLayout.astro Replaces the prior full shell layout with a minimal layout + theme guard + design-system CSS.
website/src/layouts/AwesomeGithubLayout.astro Removes Svelte SearchPalette import/render from the main layout.
website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled Further disables the search palette component (drops TS typing).
website/src/components/.SlideshowViewer.svelte.disabled Adds disabled slideshow viewer component source (not active in build).
website/src/components/.Slideshow.svelte.disabled Adds disabled slideshow component source (not active in build).
website/public/design-system/spacing_and_effects.css Adds placeholder/stub design-system token file.
website/public/design-system/components.css Adds placeholder/stub component styles file.
website/public/design-system/colors_and_type.css Adds design-system tokens + font-face declarations.
website/public/assets/LS-Agency-Site-Icon-White.svg Adds brand icon asset.
website/public/assets/LS-Agency-Site-Icon-Light-Blue.svg Adds brand icon asset.
website/public/assets/LS-Agency-Site-Icon-Blue.svg Adds brand icon asset (used as favicon in BaseLayout).
website/public/assets/LS-Agency-Logo-White.svg Adds brand logo asset.
website/public/assets/LS-Agency-Logo-Blue.svg Adds brand logo asset.
website/package.json Adds @astrojs/sitemap dependency (Svelte deps remain).
website/package-lock.json Updates lockfile for sitemap + dependency updates.
website/astro.config.mjs Sets base, output: static, sitemap integration, and _assets build directory.
Files not reviewed (1)
  • website/package-lock.json: Language not supported
Comments suppressed due to low confidence (1)

website/package.json:28

  • @astrojs/svelte and svelte are still listed as runtime dependencies, but there are no active Svelte components referenced under website/src/ (only .svelte.disabled files) and astro.config.mjs no longer registers the Svelte integration. Keeping these adds install surface area for no functional benefit.
    "@astrojs/svelte": "^5.7.3",
    "@phosphor-icons/core": "^2.1.1",
    "astro": "^5.11.0",
    "gray-matter": "^4.0.3",
    "svelte": "^5.0.0"

Comment on lines +14 to +15
src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"),
url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2");
Comment on lines +22 to +23
src: url("fonts/Manrope-VariableFont_wght.woff2") format("woff2-variations"),
url("fonts/Manrope-VariableFont_wght.woff2") format("woff2");
Comment thread website/src/layouts/BaseLayout.astro Outdated
let saved = null;

<!doctype html>
<html lang="en" data-theme="light">
Comment on lines +28 to +29
document.documentElement.setAttribute('data-theme', t);
} catch(e) {}
Comment on lines +4 to +7
<BaseLayout title="Awesome GitHub — Home">
<main style="padding: 2rem; font-family: sans-serif;">
<h1>Phase 01 scaffold — page content coming in Phase 05</h1>
</main>
Copy link
Copy Markdown

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

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: 41f354cdb0

ℹ️ 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 website/astro.config.mjs Outdated
site: "https://github.lightspeedwp.agency",
integrations: [svelte()],
site: 'https://github.lightspeedwp.agency',
base: '/awesome-github',
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Remove the project base for the custom-domain deploy

For the Pages workflow I checked .github/workflows/awesome-github-site.yml, which uploads website/dist, and website/public/CNAME points the site at the root custom domain github.lightspeedwp.agency. With base: '/awesome-github', BaseLayout now prefixes the design-system CSS and favicon with /awesome-github/, but those public files are emitted at the site root for this custom-domain deploy, so the deployed homepage will request missing assets and render unstyled unless the site is actually served from that subpath.

Useful? React with 👍 / 👎.

Comment on lines -1 to -5
---
import BaseLayout from "../../../layouts/BaseLayout.astro";
import { getWceuSlides, resolveWceuReferenceHref } from "../../../lib/wceuSlides";

export async function getStaticPaths() {
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 Keep aliases for linked talk slide routes

This deletes the /talk/slides/[slug]/ route while existing pages still link to it; I checked with rg and website/src/pages/agents/index.astro plus website/src/pages/agents/[slug].astro still have hard-coded /talk/slides/13/, /talk/slides/14/, and /talk/slides/ CTAs. After this deploy those navigation paths become 404s unless redirects or compatibility routes are kept, so either preserve the old talk aliases or update those links to the replacement /wceu-2026/slides/... routes in the same change.

Useful? React with 👍 / 👎.

Comment on lines +14 to +15
src: url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2-variations"),
url("fonts/Inter-VariableFont_opsz_wght.woff2") format("woff2");
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 Point design-system font URLs at the committed files

Because this stylesheet is served from /design-system/colors_and_type.css, url("fonts/Inter-VariableFont_opsz_wght.woff2") resolves to /design-system/fonts/...; I checked website/public and the committed font files are under public/fonts, not public/design-system/fonts. The local Inter font therefore 404s (and the Manrope rule below has the same problem), so use the correct relative path such as ../fonts/... or move the fonts into the referenced directory.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🧹 Nitpick comments (1)
website/src/layouts/BaseLayout.astro (1)

20-31: ⚡ Quick win

Consider adding colorScheme for native browser theming

The theme guard script sets data-theme but doesn't set document.documentElement.style.colorScheme like the similar script in AwesomeGithubLayout.astro does. Setting colorScheme helps browsers apply native dark/light styling to form controls, scrollbars, and other UA-styled elements.

✨ Proposed enhancement
   <script is:inline>
   (function(){
     try {
       var t = localStorage.getItem('awesome-github-theme');
       if (t !== 'light' && t !== 'dark') {
         t = window.matchMedia && matchMedia('(prefers-color-scheme:dark)').matches
           ? 'dark' : 'light';
       }
       document.documentElement.setAttribute('data-theme', t);
+      document.documentElement.style.colorScheme = t;
     } catch(e) {}
   })();
   </script>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@website/src/layouts/BaseLayout.astro` around lines 20 - 31, The theme guard
IIFE sets data-theme but doesn't update the browser color-scheme; inside the
same IIFE (the anonymous function that reads localStorage into variable t and
calls document.documentElement.setAttribute('data-theme', t)), also set
document.documentElement.style.colorScheme = t (or an appropriate mapping for
'dark'/'light') so native form controls, scrollbars and UA elements follow the
selected theme; place it after the setAttribute call and keep it inside the
existing try block.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@website/public/design-system/colors_and_type.css`:
- Around line 339-347: Add a dark‑mode override for the inline code rule
(.ls-code, code.ls-code, kbd.ls-code) so the text color is readable on
--bg-muted in dark themes; for example, add a selector for your dark theme (e.g.
.dark .ls-code or `@media` (prefers-color-scheme: dark)) and set color:
var(--c-light-blue) or another light token that meets WCAG 2.2 AA contrast
(>=4.5:1) instead of var(--c-brand-blue-deep), keeping other properties intact.
- Around line 12-27: The `@font-face` rules in colors_and_type.css for font-family
"Inter" and "Manrope" use url("fonts/...") which resolves to a non-existent
subfolder; update both src URLs in those `@font-face` blocks to point to the
actual files by using ../fonts/... (i.e., change
url("fonts/Inter-VariableFont_opsz_wght.woff2") and
url("fonts/Manrope-VariableFont_wght.woff2") to
url("../fonts/Inter-VariableFont_opsz_wght.woff2") and
url("../fonts/Manrope-VariableFont_wght.woff2") respectively) so the browser
loads the .woff2 files from website/public/fonts/.

---

Nitpick comments:
In `@website/src/layouts/BaseLayout.astro`:
- Around line 20-31: The theme guard IIFE sets data-theme but doesn't update the
browser color-scheme; inside the same IIFE (the anonymous function that reads
localStorage into variable t and calls
document.documentElement.setAttribute('data-theme', t)), also set
document.documentElement.style.colorScheme = t (or an appropriate mapping for
'dark'/'light') so native form controls, scrollbars and UA elements follow the
selected theme; place it after the setAttribute call and keep it inside the
existing try block.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Organization UI (inherited)

Review profile: CHILL

Plan: Pro

Run ID: bcc9d562-fc3b-421d-a410-faeb092cdec6

📥 Commits

Reviewing files that changed from the base of the PR and between 0470026 and 41f354c.

⛔ Files ignored due to path filters (7)
  • website/package-lock.json is excluded by !**/package-lock.json
  • website/public/assets/LS-Agency-Logo-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Logo-White.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-Light-Blue.svg is excluded by !**/*.svg
  • website/public/assets/LS-Agency-Site-Icon-White.svg is excluded by !**/*.svg
  • website/public/assets/wapuu-rocket.svg is excluded by !**/*.svg
📒 Files selected for processing (17)
  • website/astro.config.mjs
  • website/package.json
  • website/public/design-system/colors_and_type.css
  • website/public/design-system/components.css
  • website/public/design-system/spacing_and_effects.css
  • website/src/components/.Slideshow.svelte.disabled
  • website/src/components/.SlideshowViewer.svelte.disabled
  • website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled
  • website/src/layouts/AwesomeGithubLayout.astro
  • website/src/layouts/BaseLayout.astro
  • website/src/pages/index.astro
  • website/src/pages/slideshow.astro
  • website/src/pages/talk/index.astro
  • website/src/pages/talk/slides/[slug].astro
  • website/src/pages/talk/slides/index.astro
  • website/src/pages/talk/slideshow/index.astro
  • website/src/styles/site-tokens.css
💤 Files with no reviewable changes (6)
  • website/src/pages/talk/slideshow/index.astro
  • website/src/pages/slideshow.astro
  • website/src/pages/talk/slides/index.astro
  • website/src/pages/talk/index.astro
  • website/src/pages/talk/slides/[slug].astro
  • website/src/layouts/AwesomeGithubLayout.astro
📜 Review details
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (1)
  • GitHub Check: copilot-pull-request-reviewer
🧰 Additional context used
📓 Path-based instructions (3)
**/*.{php,js,jsx,ts,tsx,css,scss,html}

📄 CodeRabbit inference engine (AGENTS.md)

Follow WordPress Coding Standards (CSS, HTML, JavaScript, PHP) and inline-documentation standards at all times

Files:

  • website/public/design-system/components.css
  • website/public/design-system/spacing_and_effects.css
  • website/src/styles/site-tokens.css
  • website/public/design-system/colors_and_type.css
**/*.{php,html,css,scss}

📄 CodeRabbit inference engine (CLAUDE.md)

Ensure WCAG 2.2 AA minimum accessibility compliance with semantic HTML, keyboard support, and sufficient contrast

Files:

  • website/public/design-system/components.css
  • website/public/design-system/spacing_and_effects.css
  • website/src/styles/site-tokens.css
  • website/public/design-system/colors_and_type.css
**/package.json

⚙️ CodeRabbit configuration file

**/package.json: Review package.json:

  • Check for security vulnerabilities and outdated packages.
  • Ensure scripts are documented with clear, descriptive names.
  • Validate semantic versioning and proper version pinning.
  • Confirm devDependencies vs dependencies separation.
  • Ensure scripts follow org standards (lint, test, build, format).

Files:

  • website/package.json
🧠 Learnings (2)
📚 Learning: 2026-06-03T17:57:58.761Z
Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-06-03T17:57:58.761Z
Learning: Applies to **/*.{php,html,css,scss} : Ensure WCAG 2.2 AA minimum accessibility compliance with semantic HTML, keyboard support, and sufficient contrast

Applied to files:

  • website/public/design-system/colors_and_type.css
📚 Learning: 2026-06-03T17:57:58.761Z
Learnt from: CR
Repo: lightspeedwp/.github PR: 0
File: CLAUDE.md:0-0
Timestamp: 2026-06-03T17:57:58.761Z
Learning: Run `npm ci` to install dependencies, `npm test` to run all tests, `npm run lint:md` to lint Markdown files, `npm run lint:js` to lint JS/TS files, `npm run format` to format files, and `npm run validate:frontmatter` to validate frontmatter

Applied to files:

  • website/package.json
🪛 Stylelint (17.12.0)
website/public/design-system/colors_and_type.css

[error] 13-13: Expected no quotes around "Inter" (font-family-name-quotes)

(font-family-name-quotes)


[error] 21-21: Expected no quotes around "Manrope" (font-family-name-quotes)

(font-family-name-quotes)


[error] 7-7: Expected "url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap')" to be "'https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Lora:ital,wght@0,400;0,500;1,400;1,500&display=swap'" (import-notation)

(import-notation)


[error] 184-184: Expected "Consolas" to be "consolas" (value-keyword-case)

(value-keyword-case)


[error] 185-185: Expected "Georgia" to be "georgia" (value-keyword-case)

(value-keyword-case)


[error] 274-274: Expected "optimizeLegibility" to be "optimizelegibility" (value-keyword-case)

(value-keyword-case)


[error] 355-355: Expected "currentColor" to be "currentcolor" (value-keyword-case)

(value-keyword-case)

🔇 Additional comments (13)
website/astro.config.mjs (1)

5-11: LGTM!

website/package.json (1)

22-24: Move @astrojs/sitemap to devDependencies

@astrojs/sitemap is only referenced at build/config time via website/astro.config.mjs (import sitemap from '@astrojs/sitemap' / integrations: [sitemap()]), so it doesn’t need to ship as a production runtime dependency.

Suggested tweak
   "dependencies": {
-    "`@astrojs/sitemap`": "^3.2.2",
     "`@astrojs/svelte`": "^5.7.3",
     "`@phosphor-icons/core`": "^2.1.1",
     "astro": "^5.11.0",
     "gray-matter": "^4.0.3",
     "svelte": "^5.0.0"
+  },
+  "devDependencies": {
+    "`@astrojs/sitemap`": "^3.2.2"
   }
website/src/pages/index.astro (1)

4-8: LGTM!

website/public/design-system/components.css (1)

1-2: LGTM!

website/public/design-system/spacing_and_effects.css (1)

1-2: LGTM!

website/src/styles/site-tokens.css (1)

1-2: LGTM!

website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled (1)

1-100: Fix TypeScript syntax vs missing lang="ts" in disabled Svelte file

website/src/components/AwesomeGithub/.SearchPalette.svelte.disabled removes lang="ts" but still contains TypeScript-only syntax (e.g., : HTMLInputElement, HTMLElement | null, as HTMLElement, typed event params, Record<string, string>). Either restore lang="ts" or strip the TS syntax—otherwise re-enabling/renaming to a real .svelte file will likely faceplant the build.

website/public/design-system/colors_and_type.css (4)

7-7: 💤 Low value

Stylelint flags several case and notation preferences

Your linter has flagged a handful of stylistic inconsistencies:

  • Line 7: @import url(...) preferred as a plain string
  • Lines 184-185: Consolasconsolas, Georgiageorgia
  • Line 274: optimizeLegibilityoptimizelegibility
  • Line 355: currentColorcurrentcolor

These are all valid CSS and won't break anything — just your linter's feelings! If you're enforcing Stylelint in CI, you may want to tidy these up or adjust the rules if the capitalisation is intentional.

Also applies to: 184-185, 274-274, 355-355

Source: Linters/SAST tools


357-361: LGTM!


29-137: LGTM!

Also applies to: 148-233, 235-261, 267-337


124-125: WCAG AA contrast for --fg-link looks good on light backgrounds

--fg-link (--c-brand-blue #1E6AFF on #FFFFFF) has a contrast ratio of 4.60:1, which meets WCAG 2.2 AA (normal text ≥ 4.5:1). The alt pairing --fg-link-alt-bg (#1557E0 on #F9FAFB) is 5.79:1—also compliant. No contrast fix needed for these tokens.

website/src/layouts/BaseLayout.astro (2)

16-49: LGTM!


1-14: LGTM!

Comment thread website/public/design-system/colors_and_type.css
Comment thread website/public/design-system/colors_and_type.css
claude added 2 commits June 6, 2026 16:07
…ependencies

- Add dark mode override for .ls-code class to use light-blue color for better contrast on dark backgrounds
- Move @astrojs/sitemap to devDependencies (build-time only, not needed at runtime)

https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
@ashleyshaw ashleyshaw force-pushed the feat/ag-p01-scaffold branch from 600b20c to 5962d43 Compare June 6, 2026 14:09
@ashleyshaw ashleyshaw added the meta:no-changelog No changelog needed label Jun 6, 2026
@github-actions github-actions Bot added the area:ci Build and CI pipelines label Jun 6, 2026
@ashleyshaw ashleyshaw removed the meta:no-changelog No changelog needed label Jun 6, 2026
claude and others added 6 commits June 6, 2026 14:34
- Downgrade astro from ^5.11.0 to ^4.16.0 for compatibility with @astrojs/svelte
- Downgrade svelte from ^5.0.0 to ^4.0.0 to match Astro 4.x ecosystem
- Remove @astrojs/sitemap due to incompatibility issues with Astro 4.x
- Remove sitemap integration from astro.config.mjs
- Regenerate package-lock.json with compatible dependency tree

This fixes npm ci failures in CI environments that don't use --legacy-peer-deps.
Website now builds successfully with 220 pages.

https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
Resolves npm ci failures in CI environment by regenerating lock file with correct dependency tree.

https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
Allows Astro build to proceed when the slides directory doesn't exist, returning empty array instead of throwing ENOENT error.

https://claude.ai/code/session_01Fdipuy78tJkHUfMAtxYCqd
@ashleyshaw ashleyshaw removed the request for review from krugazul June 6, 2026 14:44
@ashleyshaw ashleyshaw enabled auto-merge (squash) June 6, 2026 14:46
@ashleyshaw ashleyshaw merged commit 298694a into develop Jun 6, 2026
24 checks passed
@ashleyshaw ashleyshaw deleted the feat/ag-p01-scaffold branch June 6, 2026 14:48
ashleyshaw added a commit that referenced this pull request Jun 6, 2026
…#854)

PR #851 replaced index.astro with a scaffold placeholder
('Phase 01 scaffold — page content coming in Phase 05').
Restores the full AwesomeGithubLayout-based homepage from
d6e17d7 so the deployed site shows the correct content.

Fixes #851
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:assets Assets (images, fonts, static files) area:ci Build and CI pipelines area:documentation Docs & guides area:theme Theme & styles lang:css Stylesheets (CSS/Sass/etc.) lang:js JavaScript/TypeScript lang:json JSON config/content lang:md Markdown content/docs meta:needs-changelog Requires a changelog entry before merge priority:normal Default priority status:needs-review Awaiting code review type:feature Feature or enhancement

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Phase 01] Astro project scaffold, BaseLayout, fonts, design-system import

4 participants