chore(deps): bump the npm-dependencies group with 7 updates Bumps the npm-dependencies group with 7 updates: | Package | From | To | | --- | --- | --- | | [@fontsource-variable/geist](https://github.com/fontsource/font-files/tree/HEAD/fonts/variable/geist) | `5.2.9` | `5.3.0` | | [@fontsource/inter](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/inter) | `5.2.8` | `5.3.0` | | [@fontsource/jost](https://github.com/fontsource/font-files/tree/HEAD/fonts/google/jost) | `5.2.8` | `5.3.0` | | [astro](https://github.com/withastro/astro/tree/HEAD/packages/astro) | `7.1.0` | `7.1.1` | | [radix-ui](https://github.com/radix-ui/primitives/tree/HEAD/packages/react/radix-ui) | `1.6.2` | `1.6.3` | | [shadcn](https://github.com/shadcn-ui/ui/tree/HEAD/packages/shadcn) | `4.13.0` | `4.13.1` | | [lucide-react](https://github.com/lucide-icons/lucide/tree/HEAD/packages/lucide-react) | `1.24.0` | `1.25.0` | Updates `@fontsource-variable/geist` from 5.2.9 to 5.3.0 - [Changelog](https://github.com/fontsource/font-files/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/variable/geist) Updates `@fontsource/inter` from 5.2.8 to 5.3.0 - [Changelog](https://github.com/fontsource/font-files/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/inter) Updates `@fontsource/jost` from 5.2.8 to 5.3.0 - [Changelog](https://github.com/fontsource/font-files/blob/main/CHANGELOG.md) - [Commits](https://github.com/fontsource/font-files/commits/HEAD/fonts/google/jost) Updates `astro` from 7.1.0 to 7.1.1 - [Release notes](https://github.com/withastro/astro/releases) - [Changelog](https://github.com/withastro/astro/blob/main/packages/astro/CHANGELOG.md) - [Commits](https://github.com/withastro/astro/commits/astro@7.1.1/packages/astro) Updates `radix-ui` from 1.6.2 to 1.6.3 - [Changelog](https://github.com/radix-ui/primitives/blob/main/packages/react/radix-ui/CHANGELOG.md) - [Commits](https://github.com/radix-ui/primitives/commits/HEAD/packages/react/radix-ui) Updates `shadcn` from 4.13.0 to 4.13.1 - [Release notes](https://github.com/shadcn-ui/ui/releases) - [Changelog](https://github.com/shadcn-ui/ui/blob/main/packages/shadcn/CHANGELOG.md) - [Commits](https://github.com/shadcn-ui/ui/commits/shadcn@4.13.1/packages/shadcn) Updates `lucide-react` from 1.24.0 to 1.25.0 - [Release notes](https://github.com/lucide-icons/lucide/releases) - [Commits](https://github.com/lucide-icons/lucide/commits/1.25.0/packages/lucide-react) --- updated-dependencies: - dependency-name: "@fontsource-variable/geist" dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-dependencies - dependency-name: "@fontsource/inter" dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-dependencies - dependency-name: "@fontsource/jost" dependency-version: 5.3.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: npm-dependencies - dependency-name: astro dependency-version: 7.1.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: radix-ui dependency-version: 1.6.3 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: shadcn dependency-version: 4.13.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: npm-dependencies - dependency-name: lucide-react dependency-version: 1.25.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: npm-dependencies ... Signed-off-by: dependabot[bot] <support@github.com>
Landing page and documentation hub for Apache Magpie, an AI assistant that helps open-source maintainers handle the repetitive parts of running a project — triage, mentoring, drafting fixes, and security-report handling — so they can focus on the work that needs a human.
Status: Apache Top-Level Project. Project source lives at apache/magpie; this repo holds the public website.
| Layer | Tool |
|---|---|
| Framework | Astro 6 (static output) |
| UI | React 19 + Tailwind CSS 4 |
| Animations | Magic UI (Particles, BorderBeam, BlurFade, TextAnimate, ShimmerButton) via motion |
| Icons | lucide-react + inline SVG for brand marks |
| Docs | Astro content collections, markdown synced from apache/magpie/docs |
Zero runtime dependency on closed-source design tooling. All components are owned in-tree.
npm install npm run sync-docs # one-time fetch of markdown from apache/magpie npm run dev # http://localhost:4321
Always start the dev server with npm run dev — it runs scripts/dev.sh, which sets ASTRO_TELEMETRY_DISABLED=1 before launching astro dev. Without that, Astro tries to write to its telemetry config dir (e.g. ~/Library/Preferences/astro) and the dev server fails to start in sandboxed environments. Pass extra flags through, e.g. npm run dev -- --port 3000.
The prebuild hook runs sync-docs automatically, so npm run build always pulls a fresh copy of docs before generating the static site.
| Command | Purpose |
|---|---|
npm run dev | Dev server with HMR (telemetry disabled via scripts/dev.sh) |
npm run sync-docs | Clone apache/magpie (sparse, docs/ + images/) into src/content/docs/ and public/docs-assets/ |
npm run build | Static build to dist/ (runs sync-docs first) |
npm run preview | Serve the built site locally |
npm run astro | Astro CLI passthrough |
| Var | Default | Purpose |
|---|---|---|
MAGPIE_DOCS_REPO | https://github.com/apache/magpie.git | Source repo for markdown |
MAGPIE_DOCS_BRANCH | main | Branch to sync from |
website/ ├── scripts/ │ └── sync-docs.sh # sparse-clone docs/ + images/ from source repo ├── src/ │ ├── components/ │ │ ├── Badge/ # Subframe-derived primitives (owned) │ │ ├── Button/ │ │ ├── IconButton/ │ │ ├── landing/ # LP + SiteHeader/SiteFooter │ │ └── ui/ # Magic UI / shadcn primitives │ ├── content/ │ │ └── docs/ # synced markdown (gitignored) │ ├── content.config.ts # docs collection schema │ ├── layouts/ │ │ ├── BaseLayout.astro │ │ └── DocsLayout.astro │ ├── lib/utils.ts # cn() helper │ ├── pages/ │ │ ├── index.astro # / │ │ └── docs/ │ │ ├── index.astro # /docs │ │ └── [...slug].astro # /docs/<any> │ ├── styles/global.css │ └── theme.css # design tokens (brand, neutral, text sizes) ├── public/ # static assets (logos, favicons, /docs-assets) └── astro.config.mjs
The website is decoupled from the docs source. The markdown lives in apache/magpie/docs; this repo fetches it at build time and renders it through Astro content collections.
apache/magpie/docs/*.md
│
▼ scripts/sync-docs.sh (sparse clone)
src/content/docs/*.md
│
▼ Astro content collection
dist/docs/**/*.html (one static page per markdown file)
Image references inside markdown (../../images/foo.png) are rewritten to /docs-assets/foo.png during sync so they resolve against public/docs-assets/.
GitHub Actions workflow .github/workflows/build.yml runs on every push and PR to main:
astro check (warn-only)astro buildmain: copy .asf.yaml into dist/ and force-push the build to the publish branchThe site is published by ASF infrastructure, not GitHub Pages. On every push to main, CI builds the static site and force-pushes dist/ (an orphan, single-commit history) to the publish branch. The root .asf.yaml — carried into that branch — tells ASF infra to serve it:
publish: whoami: publish
ASF infra serves the publish branch at the project's inferred hostname — magpie-site → magpie.apache.org (served at the apex root). The hostname must not be set explicitly via a hostname: field; asfyaml forbids naming your own $project.apache.org (“it has to be inferred to prevent abuse”), and doing so stops the site from publishing.
The site is built with base: '/' so all links and assets resolve against the apex domain. Set SITE_BASE / SITE_URL to preview under a subpath (e.g. GitHub Pages).
One-time infra setup (outside this repo): for a brand-new project, ASF Infra may still need to provision DNS/TLS for
magpie.apache.orgbefore the inferred hostname resolves.
This repo adopts the apache/magpie framework via a snapshot mechanism, making its maintainer-facing agent skills available in harnesses such as Claude Code.
The framework is not vendored — it lives as a gitignored snapshot under .apache-magpie/, fetched on demand from the version pinned in the committed .apache-magpie.lock. The only framework artefact committed to this repo is the setup skill at .agents/skills/magpie-setup/; everything else is a gitignored symlink the setup skill wires up.
This site currently wires the framework's always-on setup-* (secure-agent setup, status, upstream-fix) and list-* (skill discovery) families. The opt-in families (pr-management, security, issue) are not installed; add them later by re-running /magpie-setup.
A fresh clone needs the snapshot populated before any framework skill is invocable. In your agent harness, run:
/magpie-setup
(or follow .agents/skills/magpie-setup/) to fetch the snapshot per the committed lock, scaffold the gitignored symlinks, and install the post-checkout hook that re-creates them on each worktree checkout.
Adopter-specific modifications to framework workflows live in .apache-magpie-overrides/ (committed) — never edit the snapshot directly. Framework changes go via PR to apache/magpie.