* Some layout tweaks
* SSR resource listing pages
Render resource listing pages in Astro for first paint and hydrate client filtering/search behavior on top.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Fixing font path
* removing feature plugin reference as we don't track that anymore
* button alignment
* rendering markdown
* Improve skills modal file browsing
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Improving the layout of the search/filter section
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Initial plan
* feat: add contributors page to website
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
* feat: add footer with contributors link and fix emoji-only display
- Add custom Starlight Footer component with 'Made with ❤️ by our
amazing contributors' linking to /contributors/
- Filter out contribution types without emoji mappings in the
contributor data generation so only emojis (🎭🎁🧭⌨️🧰) are
shown on the contributors page, not text labels like 'code' or 'doc'
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat: use all-contributors HTML output for contributors page
- Restyle all-contributors generated table as a responsive card grid
using CSS grid on tbody with card-styled td cells
- Remove old custom JS search/filter UI and contributors.ts script
- Remove generateContributorsData from data pipeline (no longer needed)
- Keep all-contributors markers for bot regeneration
- Include updated contributor data from .all-contributorsrc
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* fix: CSS fixes for contributors page Starlight compatibility
- Override Starlight table width/overflow to prevent clipping
- Force td width: 100% to counteract HTML width="14.28%" attribute
- Set emoji links to display: inline to prevent vertical stacking
- Improve border visibility with lighter gray color
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: aaronpowell <434140+aaronpowell@users.noreply.github.com>
Co-authored-by: Aaron Powell <me@aaron-powell.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add search functionality to Learning Hub index page
Add a client-side search bar that filters articles by title, description,
and tags. Sections with no matching results are hidden automatically.
Uses the existing .search-bar CSS pattern from the cookbook page.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* chore: remove deprecated layouts, theme script, and learning-hub config
Phase 5 cleanup of Starlight migration:
- Delete BaseLayout.astro (replaced by StarlightPage)
- Delete ArticleLayout.astro (replaced by Starlight docs rendering)
- Delete theme.ts (Starlight has built-in theme toggle)
- Delete src/config/learning-hub.ts (sidebar order now in astro.config.mjs)
- Replace learning-hub glob collection with Starlight docs collection in content.config.ts
- Keep search.ts (still used by homepage and all resource page scripts)
Build verified: 23 pages, no errors.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Migrate website to Starlight with full-text resource search
- Replace bespoke Astro layouts with Starlight integration
- Homepage and resource pages use StarlightPage wrapper
- Learning Hub articles rendered via Starlight docs collection
- Starlight provides search, theme toggle, sidebar, ToC, a11y
- Add custom Pagefind integration for resource search
- All 614 agents/skills/instructions/hooks/workflows/plugins
indexed as custom records with deep-link URLs
- Type filter pills (horizontal pill toggles) above results
- Search results link directly to resource modals via #file= hash
- Move global.css to src/styles/ for Vite processing
- Scope CSS reset to #main-content to avoid Starlight conflicts
- Full-width page gradient via body:has(#main-content)
- Light/dark theme support with Starlight gray scale inversion
- Delete old layouts (BaseLayout, ArticleLayout), theme.ts, config
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Address PR review feedback
- Fix pagefind-resources.ts header comment (pagefind:true not false)
- Remove unused base variable in cookbook/index.astro
- Replace hardcoded /awesome-copilot/ paths with relative links in index.md
- Delete stale public/styles/global.css (source of truth is src/styles/)
- Replace fragile getBasePath() with Astro config base in pagefind integration
- Document pagefind:true reasoning in astro.config.mjs
- Use proper visually-hidden pattern + :focus-visible ring for filter pills
- Remove dead header/nav/theme CSS from global.css (~160 lines)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat(schema): add external recipe fields to cookbook schema
Add optional external, url, and author fields to the recipe schema
in cookbook.schema.json. When external is true, url is required via
conditional validation. Author supports name (required) and url
(optional) for attribution.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat(data): support external recipes in data generator
- External recipes (external: true) skip local file validation
- Validate URL format for external recipes
- Pass through external, url, and author fields to output JSON
- Add per-recipe languages array: derived from resolved variant keys
for local recipes, and from tags matching known language IDs for
external recipes
- Collect language IDs in a first pass before processing recipes
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat(website): render external recipe cards on cookbook page
- Extend Recipe interface with external, url, author, and languages
- Render external recipes with Community badge, author attribution,
and View on GitHub link instead of View Recipe/View Example buttons
- Language filter uses per-recipe languages array uniformly
- Remove Nerd Font icons from select dropdown options (native selects
cannot render custom web fonts)
- Add CSS for external recipe cards (dashed border, badge, author)
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat(cookbook): add community samples section with first external recipe
Add a Community Samples cookbook section to cookbook.yml with the
Node.js Agentic Issue Resolver as the first external recipe entry,
linking to https://github.com/Impesud/nodejs-copilot-issue-resolver.
Resolves the use case from PR #613 for supporting external samples.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* feat(cookbook): add Copilot SDK Web App to community samples
Add aaronpowell/copilot-sdk-web-app — a full-stack chat app built with
the GitHub Copilot SDK, .NET Aspire, and React.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
* Add contribution CTA to all listing/search pages
Add a reusable ContributeCTA component that encourages visitors to
contribute their own resources. The CTA appears at the bottom of every
resource listing page (agents, instructions, skills, hooks, workflows,
plugins, tools) with:
- Contextual text that adapts to the resource type
- 'Contribute yours' primary button linking to CONTRIBUTING.md
- 'Request a resource' outline button linking to new issue creation
- Gradient top bar matching existing card design patterns
- Responsive layout that stacks on mobile
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add Contribute button to page header on all listing pages
Place an outlined Contribute button in each page-header section so it's
immediately visible without scrolling. Uses accent purple border that
fills on hover with a glow effect. Stacks below description on mobile
via a 600px breakpoint.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* Add screenshots for contribution CTA PR
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
* didn't mean to commit them
* Extract PageHeader component to deduplicate header markup
Address PR review feedback: the header Contribute link (URL, SVG icon,
classes) was duplicated across all 7 listing pages. Extract into a
reusable PageHeader.astro component that accepts title and description
props, with a slot for rich HTML descriptions (used by workflows page).
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
---------
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Move duplicated fundamentalsOrder and referenceOrder arrays from
index.astro and ArticleLayout.astro into a shared config file at
src/config/learning-hub.ts. Both consumers now import from the
single source of truth.
Addresses PR review comment about maintenance burden of keeping
two copies in sync.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- New article covering plugin concepts, finding/installing/managing plugins,
marketplace browsing, and how this repo serves as a plugin marketplace
- Add 'installing-and-using-plugins' to fundamentalsOrder in index.astro
and ArticleLayout.astro
- Add Plugin entry to terminology glossary
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a left sidebar to the Learning Hub index page matching the pattern
already used on individual article pages. The sidebar lists all articles
grouped by section (Fundamentals, Reference, Hands-on) and stays sticky
while scrolling, reducing vertical scroll for the now 10-article list.
Also update ArticleLayout.astro fundamentalsOrder to include the 4 new
articles added in the previous commit.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add four high-priority articles identified by gap analysis against
nishanil/copilot-guide:
- Building Custom Agents: personas, tools, MCP integration, patterns
- Understanding MCP Servers: what MCP is, configuration, agent usage
- Automating with Hooks: lifecycle events, hooks.json, practical examples
- Using the Copilot Coding Agent: setup steps, issue assignment, PR workflow
Update index.astro fundamentalsOrder to include all 10 articles.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add card-with-count class to the Learning Hub card so its emoji icon
aligns horizontally with the title, matching all other cards in the
grid. Previously it used the base card class which stacked the icon
above the content.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace all prompt file references with skills guidance throughout the
Learning Hub. Skills are the preferred customization primitive because
they support agent discovery via extended frontmatter, can bundle
reference files and scripts, and are portable across coding agent
systems via the Agent Skills specification.
- Create what-are-agents-skills-instructions.md (replaces prompts article)
- Create creating-effective-skills.md (replaces prompts tutorial)
- Delete what-are-agents-prompts-instructions.md and creating-effective-prompts.md
- Update copilot-configuration-basics.md directory structure and examples
- Update defining-custom-instructions.md comparisons and cross-references
- Update glossary: deprecate Prompt entry, add Skill definition
- Update understanding-copilot-context.md and before-after examples
- Update learning-hub index.astro slugs
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update parseWorkflowMetadata to extract triggers from the 'on'
property keys (e.g. schedule, issue_comment) instead of a separate
'triggers' field. Remove tags support from workflows since workflows
don't use tags.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Add a new /workflows/ page for browsing agentic workflow definitions
with search, trigger/tag filters, and sorting. Follows the same
patterns as the existing hooks page.
New files:
- website/src/pages/workflows.astro
- website/src/scripts/pages/workflows.ts
Updated files:
- BaseLayout.astro: add Workflows nav link
- index.astro: add Workflows card to homepage
- pages/index.ts: add workflows to counts
- utils.ts: add workflow type to icons, labels, and getResourceType
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove the prompts page, navigation link, homepage card, and all
references to prompts across the website source code. The repo no
longer contains prompt files, so the website should not reference them.
Files removed:
- website/src/pages/prompts.astro
- website/src/scripts/pages/prompts.ts
Files updated:
- BaseLayout.astro: remove nav link and update description
- index.astro: remove prompts card and update text
- llms.txt.ts: remove prompts import and section
- plugins.astro: update description text
- utils.ts: remove prompt type from install config, icons, labels
- pages/index.ts: remove prompts from counts
- modal.ts: update JSDoc comment
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Replace Collections with Plugins as first-class citizens in the repo.
With the Copilot CLI v0.409 release making plugins an on-by-default
marketplace, collections are redundant overhead.
## What changed
### Plugin Infrastructure
- Created eng/validate-plugins.mjs (replaces validate-collections.mjs)
- Created eng/create-plugin.mjs (replaces create-collection.mjs)
- Enhanced all 42 plugin.json files with tags, featured, display, and
items metadata from their corresponding collection.yml files
### Build & Website
- Updated eng/update-readme.mjs to generate plugin docs
- Updated eng/generate-website-data.mjs to emit plugins.json with full
items array for modal rendering
- Renamed website collections page to plugins (/plugins/)
- Fixed plugin modal to use <div> instead of <pre> for proper styling
- Updated README.md featured section from Collections to Plugins
### Documentation & CI
- Updated CONTRIBUTING.md, AGENTS.md, copilot-instructions.md, PR template
- Updated CI workflows to validate plugins instead of collections
- Replaced docs/README.collections.md with docs/README.plugins.md
### Cleanup
- Removed eng/validate-collections.mjs, eng/create-collection.mjs,
eng/collection-to-plugin.mjs
- Removed entire collections/ directory (41 .collection.yml + .md files)
- Removed parseCollectionYaml from yaml-parser.mjs
- Removed COLLECTIONS_DIR from constants.mjs
Closes#711
- Rename samples page to /learning-hub/cookbook/
- Remove Samples from top navigation bar
- Add Cookbook to learning hub sidebar under Hands-on section
- Add Cookbook card to learning hub index page
- Add redirect from /samples/ to /learning-hub/cookbook/
- Add breadcrumb navigation back to Learning Hub
- Add Astro Content Collection for learning-hub articles
- Move 5 fundamentals articles into website/src/content/learning-hub/
- Create ArticleLayout.astro for rendering markdown articles
- Create index page listing all articles in recommended reading order
- Create dynamic [slug].astro route for individual articles
- Add Learning Hub to main navigation and homepage cards
- Add article prose and index page CSS styles
- Update internal links to use website URLs
- Create website/src/pages/llms.txt.ts as an Astro static endpoint
- Remove generateLlmsTxt function from generate-website-data.mjs
- llms.txt is now generated at build time by Astro alongside other pages
- Add git-dates.mjs utility to extract file modification dates from git history
- Include lastUpdated field in JSON data for all resource types
- Display relative time (e.g., '3 days ago') with full date on hover
- Add 'Recently Updated' sort option to agents, prompts, instructions, and skills pages
- Update deploy-website.yml to use fetch-depth: 0 for full git history
CI overhead: ~20-30s additional for full git checkout
- Add Monaspace Argon NF font for dev icons
- Update cookbook.yml with unicode codepoints for language icons:
- TypeScript: \uE628
- Python: \uE73C
- C#/.NET: \uF81A
- Go: \uE626
- Style .lang-tab and .lang-indicator with Nerd Font family
Integrates the cookbook/ folder into the website's Samples page:
Data Structure:
- Add cookbook/cookbook.yml manifest defining cookbooks and recipes
- Add .schemas/cookbook.schema.json for validation
- Add COOKBOOK_DIR constant to eng/constants.mjs
Build Integration:
- Add generateSamplesData() to generate samples.json from cookbook.yml
- Include recipe variants with file paths for each language
- Add samples count to manifest.json
Website UI:
- Create samples.ts with FuzzySearch, language/tag filtering
- Replace placeholder samples.astro with functional recipe browser
- Recipe cards with language indicators and action buttons
- Language tabs for switching between implementations
- View Recipe/View Example buttons open modal
- GitHub link for each recipe
Features:
- Search recipes by name/description
- Filter by programming language (Node.js, Python, .NET, Go)
- Filter by tags (multi-select with Choices.js)
- 5 recipes across 4 languages = 20 recipe variants
- Remove separate hero-stats section
- Add card-count element to each resource card
- Update JS to populate counts from manifest
- Add card-with-count CSS for layout with count badge
- Reduces vertical space on home page