Skip to content

feat: add Astro showcase site for GitHub Pages#27

Open
thomast1906 wants to merge 29 commits intomainfrom
thomast1906/criterional-demetrice
Open

feat: add Astro showcase site for GitHub Pages#27
thomast1906 wants to merge 29 commits intomainfrom
thomast1906/criterional-demetrice

Conversation

@thomast1906
Copy link
Copy Markdown
Owner

Why

The Astro showcase site was previously merged directly to main before it was ready for production. This PR moves that work to a proper review branch so it can be polished and merged when it's genuinely ready.

What's included

A complete Astro-powered showcase site deployed to GitHub Pages, surfacing all skills, agents, packages, and MCP servers in this repo:

  • Pages: Home, Skills (index + detail), Agents, Packages, Getting Started
  • Components: Reusable cards (SkillCard, AgentCard, PackageCard), layout (Header, Footer, BaseLayout), UI primitives (Button, CategoryBadge, CodeBlock, StatusBadge), and section components (Hero, CTASection, etc.)
  • Content collections: Markdown-driven content for skills, agents, packages, and MCP servers under src/content/
  • Styling: CSS custom properties (tokens.css), reset, and global styles
  • CI/CD: GitHub Actions workflow (deploy.yml) that builds and deploys to GitHub Pages on pushes to main only
  • Dynamic hero stats: Counts for skills, agents, and packages are derived at build time from the content collections

Notes

  • The deploy workflow is gated to main only — no accidental deploys from this branch
  • Content in src/content/ mirrors what's already in the repo's packages/ skill definitions
  • CONTRIBUTING.md is included with guidance on adding new content entries

thomast1906 and others added 8 commits April 6, 2026 21:03
- Full static site built with Astro 4.x + Content Collections
- 19 static HTML pages: homepage, skills catalog, 14 skill detail pages,
  agents, packages, getting-started
- 25 Markdown content files (14 skills, 4 agents, 3 packages, 4 MCP servers)
- Zod schemas for all 4 content collections (src/content.config.ts)
- 15 components: cards, sections, layout, UI primitives
- Dark GitHub-inspired theme with CSS custom properties
- GitHub Actions workflow: builds on squad/**, deploys to Pages on main
- CONTRIBUTING.md: copy-paste templates for adding new skills/agents/packages
- .gitignore: excludes node_modules, dist, .astro, .env*

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Astro reserves the 'setup' key in .md frontmatter for the legacy MDX
component import syntax. Renaming to 'installation' clears the WARN
and the resulting build cancellation in CI.

Changes:
- src/content/mcp-servers/*.md: setup -> installation
- src/content.config.ts: schema field rename
- src/components/sections/MCPServerCard.astro: data access update
- src/pages/skills/[slug].astro: data access update
- CONTRIBUTING.md: template + description updated

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
These steps require GitHub Pages to be enabled in repo settings.
On squad/** branches we only need the build to pass — no Pages
configuration or artifact upload required.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
feat: add complete Astro showcase site for GitHub Pages
Skills, Agents, and Packages counts are now driven by the actual
number of .md files in each content collection. Adding a new skill,
agent, or package file auto-updates the hero counter on next build.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Configure-pages, upload-artifact, and the deploy job now only run on
pushes to main. The build step still runs on all branches (including
feat/** and squad/**) so CI validates the site on every push.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…, nav link, local dev docs

- Add /agents/[slug].astro detail page showing skills, packages and GitHub source link
- Add /packages/[slug].astro detail page with install command, agents, skills, MCP requirements
- Add /mcp-servers/ browse page using existing MCPServerCard component
- Wire AgentCard to link to internal detail page (GitHub source as secondary link)
- Add MCP Servers nav link to Header
- Fix featuredPackages: homepage now uses filtered list instead of all packages
- Add PR build validation workflow (.github/workflows/validate-site.yml)
- Add local dev instructions to CONTRIBUTING.md
- Build verified: 27 pages generated cleanly

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread .github/workflows/validate-site.yml Fixed
…nt collections

- Move Astro site into docs/ subdirectory for clean repo root
- Upgrade Astro 4 → 6.1.6 (latest)
- Remove duplicate src/content/ — skills, agents, packages now read
  directly from .github/skills/, .github/agents/, packages/ via
  custom Content Layer loaders (gray-matter + yaml)
- Add docs/src/site.config.ts for presentation-only overlay data and
  MCP server definitions (replacing mcp-servers content collection)
- Rewrite docs/src/content.config.ts with three custom loaders
- Update entry.slug → entry.id throughout (Astro 5+ Content Layer API)
- Update cards/pages: use data.description instead of entry.body
- MCPServerCard now accepts McpServer type from site.config
- Update GitHub Actions workflows to run from docs/ subdirectory
- Update .gitignore for docs/node_modules, docs/dist, docs/.astro

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Comment thread .github/workflows/validate-site.yml Fixed
thomast1906 and others added 19 commits April 14, 2026 20:42
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Replace raw Copilot spec rendering on skill pages with useful human-readable content:
  description, invoke-hint box, example prompts, and a GitHub source link
- Add argument-hint and examples frontmatter to all 14 SKILL.md files
- Add examples frontmatter to all 4 .agent.md files
- Fix MCP ID matching bug: site.config.ts and content.config.ts now use server IDs
  ('azure-mcp', 'drawio-mcp') instead of display names ('Azure MCP', 'Draw.io MCP')
- Fix azure-architect agentMeta: remove cost-optimization (not in packages/architect/apm.yml)
- Show example prompts and tool pill-tags on agent detail pages
- Improve Getting Started page: add try-it-out examples for all 3 packages
- Add CSS for new examples/tools sections on agent pages

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- All 14 SKILL.md: remove argument-hint, move examples to metadata.examples
- All 4 .agent.md: move examples to metadata.examples (new metadata block)
- content.config.ts: read examples from data.metadata.examples, drop argumentHint field+schema
- skills/[slug].astro: remove invoke-hint block (HTML + CSS)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Previous script failed silently for skills without an existing metadata block.
Recovered examples from git history and added metadata.examples to all 8 affected skills.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Each example now includes real service names, concrete numbers, specific
constraints, and actionable context rather than generic one-liners.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add category, status, featured, mcp to all 14 SKILL.md metadata blocks
- Add skills list to all 4 .agent.md metadata blocks
- Remove skillMeta and agentMeta from site.config.ts (no more manual config maintenance)
- content.config.ts reads all fields directly from source frontmatter
- Add azureServices, version, lastUpdated optional fields to skills Zod schema
- skills/[slug].astro: surface azure-services tags, version and last-updated in header
- agents/[slug].astro: add @agent-id invocation box; derive relatedPackages dynamically

Adding a new skill/agent no longer requires updating site.config.ts.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Add .default([]) to azureServices Zod schema to prevent runtime crash
  when Astro content cache lacks the field (e.g. apm-package-author)
- Add featured: true/false directly to each packages/*/apm.yml
- Remove PackageMeta/packageMeta from site.config.ts
- Remove packageMeta import from content.config.ts
- Packages are now fully dynamic — no manual config on add

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… link

- Add /contributing page: skill, agent, package frontmatter specs with field
  tables, numbered steps, guidelines, and local dev instructions
- Complete getting-started CSS: recommended-badge, divider-label, steps-list,
  packages-preview, packages-grid now have full styles
- Add 'Contributing' link to header nav (with aria-current active state)
- Build: 28 pages, 0 errors

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…workflow permissions fix

- Add custom 404 page with home/skills/getting-started links
- Add @astrojs/sitemap integration (sitemap-index.xml generated)
- Add mcpJson field to McpServer interface and all 4 server configs
- MCPServerCard now shows copyable .vscode/mcp.json config block
- Skill detail page quick-install row: CSS + copy-to-clipboard script
- Fix hardcoded skill count in skills/index.astro (now dynamic)
- Add Contributing link to Footer resources section
- Fix validate-site.yml missing GITHUB_TOKEN permissions block

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- SkillCard, AgentCard, PackageCard: -webkit-line-clamp: 2 on descriptions
- CodeBlock: overflow-x: auto on pre so long install commands don't blow out cards
- PackageCard + packages grid: min-width: 0 to prevent grid cell blowout
- Reduce packages grid minmax from 320px to 280px for tighter fit

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…-col layout

- SkillCard: category chip with icon+color, 3-line description, up to 2 example
  prompt chips on the card, azure services tags in footer, cat-color accent top
  border that changes on hover, 'View skill →' hint revealed on hover
- AgentCard: robot icon, skill count badge, 3-line description, no raw skill IDs,
  accent top border, 'View agent →' hover hint
- skills/index.astro: 2-column grid (was 3-column at 1024px)
- agents/index.astro: 2-column grid (was 4-column at 1024px)
- categories.ts: icon emojis per category (committed alongside card changes)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Skills → /skills/, Agents → /agents/, Packages → /packages/,
MCP Integrations → /getting-started/#mcp-setup

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…n, grid layouts

- agents/[slug].astro: add missing baseUrl fallback (was undefined on some envs)
- index.astro: fix #mcp-setup anchor → #mcp (matches actual section id)
- content.config.ts: add .default(false) to skills.featured; add .default([]) to agents tools/examples/skills fields
- PackageCard.astro: full redesign — clickable link to /packages/[slug]/, counts (N agents · N skills) instead of raw IDs, accent top border, hover hint
- packages/index.astro: grid 3-col → 2-col at desktop
- packages/[slug].astro: skills grid 3-col → 2-col at desktop

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ts schema

Mirror the SKILL.md/agent.md structure where category, status, featured,
mcp, examples, azureServices, version, lastUpdated are nested under
a metadata: block in the YAML front-matter.

Skills schema: examples, category, status, featured, mcp, azureServices,
  version, lastUpdated moved from skill.data.* to skill.data.metadata.*
Agents schema: examples and skills moved from agent.data.* to
  agent.data.metadata.*

Updated all consumers:
- content.config.ts loader + z.object schema
- pages/index.astro (featured filter)
- pages/skills/[slug].astro (mcp, examples, azureServices, status, category, version, lastUpdated)
- pages/agents/[slug].astro (skills, examples)
- components/cards/SkillCard.astro (category, examples, azureServices, status)
- components/cards/AgentCard.astro (skills count)

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…nav reorder

- Fix ViewTransitions → ClientRouter (Astro 6 rename, import from astro:transitions)
- Wrap hamburger menu and copy button scripts in astro:page-load listener
- Create SearchModal.astro with Pagefind UI dialog (lazy-loaded JS/CSS, Cmd/Ctrl+K shortcut)
- Add search button to Header nav
- Add GitHub star button with live count fetched from API (localStorage cache, 5-min TTL)
- Reorder nav: Getting Started first, then Skills, Agents, Packages, MCP Servers, Contributing
- Install @astrojs/check, typescript, pagefind devDeps; update build script

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
… moderate)

yaml 2.0.0-2.8.2 is vulnerable to stack overflow via deeply nested YAML
(GHSA-48c2-rrv3-qjmp). The chain is @astrojs/language-server ->
volar-service-yaml -> yaml-language-server -> yaml@<2.8.3.

npm audit fix cannot resolve this automatically, so an overrides block
forces yaml-language-server to use yaml@^2.8.3 (the patched version).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…UI bugs

- Render full SKILL.md / agent .md body via Astro render() in slug pages
- Add styled .prose section with typography for headings, code, lists, links
- Create/update SearchModal: uses PagefindUI dialog, opens on search-btn click or Cmd/Ctrl+K
- Wire SearchModal into BaseLayout; add search-trigger button to Header
- Fix infinite HMR loop: path-filter watcher handlers in content.config.ts
- Fix header flashing: transition:persist on <header>
- Fix scroll bounce: remove scroll-behavior: smooth from html element
- Update site title to include Thomas Thornton in 6 locations

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
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