AGENT SKILL

astro-developer

Comprehensive guide for developing in the Astro monorepo. Covers architecture, debugging, testing, and critical constraints. Use when working on features, fixes, tests, or understanding the codebase structure.

适用职业开发工程师
使用场景测试与质量
License 许可
MIT
最近更新
2026-11-12
Stars
★ 514
Forks
41

01 前言 Front Matter

name
astro-developer
description
Comprehensive guide for developing in the Astro monorepo. Covers architecture, debugging, testing, and critical constraints. Use when working on features, fixes, tests, or understanding the codebase structure.

02 资源文件 5

03 SKILL.md 正文

Astro Developer Skill

Context-loading skill for AI agents and developers working in the Astro monorepo. Loads relevant documentation based on your task.

Quick Decision Matrix

What are you doing? → Read these files:

Task Primary Docs Supporting Docs
Adding a core feature architecture.md, constraints.md testing.md
Fixing a bug debugging.md architecture.md
Writing/fixing tests testing.md constraints.md
Creating an integration Explore packages/integrations/ for examples testing.md
Understanding architecture architecture.md -
Dealing with errors debugging.md, constraints.md testing.md
Understanding constraints constraints.md architecture.md

Critical Warnings

Before you start, be aware of these common pitfalls:

  1. Prefer Unit Tests: Write unit-testable code by default. Use integration tests only when necessary → testing.md
  2. Node.js API Restrictions: Cannot use Node.js APIs in runtime/ code → constraints.md
  3. Test Isolation: Must set unique outDir for each integration test → testing.md
  4. Runtime Boundaries: Core vs Vite vs Browser execution contexts → architecture.md
  5. Prerelease Mode: Changesets target origin/next branch (check .changeset/config.json)

Quick Command Reference

# Development
pnpm install                                    # Install (root only)
pnpm run build                                  # Build all packages
pnpm run dev                                    # Watch mode
pnpm run lint                                   # Lint codebase

# Testing
pnpm -C packages/astro exec astro-scripts test "test/**/*.test.js"  # All tests
pnpm -C packages/astro exec astro-scripts test -m "pattern"         # Filter tests
pnpm run test:e2e                               # E2E tests
node --test test/file.test.js                   # Single test

# Examples
pnpm --filter @example/minimal run dev          # Run example

# Changesets
pnpm exec changeset --empty                     # Create changeset, no interactive mode

Key File Paths

packages/astro/src/
├── core/              # Node.js execution context (build/dev commands)
├── runtime/
│   ├── server/        # Vite SSR execution context
│   └── client/        # Browser execution context
├── virtual-modules/   # Virtual module entry points
├── content/           # Content layer system
├── vite-plugin-*/     # Vite plugins
└── types/             # Centralized TypeScript types

packages/integrations/  # Official integrations
examples/              # Test your changes here
test/fixtures/         # Test fixtures

Note: Error stack traces in node_modules/ map to source in packages/. See architecture.md for details.

Usage

This skill loads relevant context—it doesn't orchestrate workflows. After loading appropriate docs:

  1. Read the recommended files for your task
  2. Apply the patterns and constraints described
  3. Use the commands and file paths provided
  4. Search docs for error messages if you encounter issues

Architecture Quick Summary

Three Execution Contexts:

  • core/ → Node.js, build/dev commands, avoid Node APIs except in Vite plugins
  • runtime/server/ → Vite SSR, CANNOT use Node APIs
  • runtime/client/ → Browser, CANNOT use Node APIs at all

Five Pipeline Types:

  • RunnablePipeline → astro dev with Vite loader system
  • NonRunnablePipeline → astro dev without runtime module loading (Cloudflare adapter)
  • BuildPipeline → astro build + prerendering
  • AppPipeline → Production serverless/SSR
  • ContainerPipeline → Container API

See architecture.md for complete details.

Testing Quick Summary

Philosophy: Prefer unit tests over integration tests. Write unit-testable code by default.

Unit tests (fast, preferred):

  • Test pure functions and business logic
  • Extract business logic from infrastructure
  • Use dependency injection

Integration tests (slow, use sparingly):

  • Only for features that cannot be unit tested (virtual modules, full build pipeline)
  • Always set unique outDir to avoid cache pollution

See testing.md for complete patterns and examples.

When NOT to Use This Skill

  • Bug triage: Use the triage skill instead
  • GitHub Actions analysis: Use the analyze-github-action-logs skill
  • Simple questions: Just ask directly, don't load this skill

Related Documentation

04 同仓库更多 Skills

managedcode
managedcode/dotnet-skills

xtwitter-scraper

Use XTwitterScraper when a .NET application needs typed access to Xquik's X automation REST API for tweet search, user lookup, posting workflows, extraction jobs, monitors, webhooks, or giveaway draws. USE FOR: integrating the XTwitterScraper NuGet package; reviewing Xquik API client usage; modeling API-key configuration, pagination, binary exports, raw responses, retries, and webhook/event flows in .NET. DO NOT USE FOR: unrelated stacks; direct browser automation; generic social-media strategy; or code that does not call Xquik. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.

开发工程师后端与接口
★ 514
managedcode
managedcode/dotnet-skills

sep

Use Sep for high-performance separated-value parsing and writing in .NET, including delimiter inference, explicit parser/writer options, and low-allocation row/column workflows. USE FOR: delimited data needs are performance-sensitive and allocation-aware; project needs explicit control over separator inference, escaping, trimming, and header behavior;. DO NOT USE FOR: unrelated stacks; generic tasks that do not need this specific guidance. INVOKES: inspect the repository context, edit targeted files, and run relevant build, test, lint, or validation commands when changes are made.

内容创作者写作与文案
★ 514
managedcode
managedcode/dotnet-skills

webgpu-threejs-tsl

Comprehensive guide for developing WebGPU-enabled Three.js applications using TSL (Three.js Shading Language). Covers WebGPU renderer setup, TSL syntax and node materials, compute shaders, post-processing effects, and WGSL integration. Use this skill when working with Three.js WebGPU, TSL shaders, node materials, or GPU compute in Three.js.

★ 514
managedcode
managedcode/dotnet-skills

roslynk

Use Roslynk for semantic inspection and edits of *.cs, *.razor and *.cshtml solution files.

★ 514
managedcode
managedcode/dotnet-skills

system-text-json-net11

Imperative guidance for the System.Text.Json APIs added in .NET 11: the built-in `JsonNamingPolicy.PascalCase` naming policy, and the strongly-typed generic `JsonSerializerOptions.GetTypeInfo` and `JsonSerializerOptions.TryGetTypeInfo` metadata accessors (generic overloads that return a typed `JsonTypeInfo`). USE ONLY when the user is targeting net11.0 or later and needs PascalCase JSON property or dictionary-key names without writing a custom naming policy, a strongly-typed generic `JsonTypeInfo` instead of the non-generic `JsonTypeInfo`, or a no-throw way to probe whether a type's serialization metadata is resolved. DO NOT USE when the target is earlier than net11.0, the requested behavior uses an established pre-net11 naming policy, or the user explicitly selected another JSON library.

★ 514
managedcode
managedcode/dotnet-skills

process-api-net11

Provides guidance on the new System.Diagnostics.Process APIs introduced in .NET 11: Process.Run, Process.RunAndCaptureText, Process.StartAndForget, Process.ReadAllText/Bytes/Lines, KillOnParentExit, InheritedHandles, and StartDetached. USE FOR: starting, orchestrating, or capturing output from external processes in applications targeting net11.0 or later. DO NOT USE FOR: applications targeting .NET 10 or earlier, or basic pre-.NET 11 Process.Start usage without new APIs.

开发工程师后端与接口
★ 514