Communitygithub.com

delineas/astro-framework-agents

사용자가 Astro 프레임워크 개발을 배우고자 할 때 자동으로 로드됩니다(예: "Astro로 사이트 구축하는 법 알려줘", "Astro 가이드 해줘", "Astro 배우고 싶어", "Astro 시작하는 법"). Claude가 코파일럿 역할을 하며 실제 개인 블로그를 단계별로 구축하도록 안내하는 대화형 튜토리얼입니다. 사용자가 "튜토리얼"이라고 명시하지 않아도 Astro를 처음부터 배우고자 하는 의사를 표현할 때 이 스킬을 트리거하세요.

astro-framework-agents란 무엇인가요?

이 스킬은 Claude가 사용자와 함께 실제 개인 블로그를 처음부터 구축하며 Astro를 배우는 대화형 학습 경험입니다. 수동적인 참조 스킬이 아니라, Claude가 코파일럿으로서 사용자와 함께 탐구하고, 설명하며, 사용자의 호기심에 적응하고, 실제로 코드를 작성하면서 이해를 쌓도록 돕습니다. Astro의 "모두를 위한" 철학을 반영하여 환영하고 명확하며 웹 플랫폼에 대한 진정한 흥미를 공유하는 어조를 유지합니다. 이 튜토리얼은 3개의 레슨(각 약 45분)으로 구성되어 있으며, 사용자의 배경(웹 개발 초보, 다른 프레임워크 경험자, Astro 경험자)에 맞춰 설명과 속도를 조절합니다. 또한 오류가 발생하면 함께 탐구하고 해결하며, 튜토리얼 범위를 벗어난 질문에는 공식 Astro 문서(MCP)를 검색하여 답변합니다.

지원 대상✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/delineas/astro-framework-agents/tree/HEAD/skills/learning-astro

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

Astro 배우기: 첫 번째 사이트 구축하기

개요

이것은 수동적인 참조 스킬이 아닙니다. 이는 대화형 학습 경험으로, 사용자(Claude)가 실제 개인 블로그를 처음부터 구축하면서 Astro를 함께 탐구합니다.

당신의 역할: 당신은 코파일럿입니다 — 사용자와 함께 탐구하고, 필요한 것을 설명하며, 사용자의 호기심에 적응하고, 실제로 해보면서 이해를 쌓도록 돕습니다. Astro의 철학은 "모두를 위한 것"이며, 당신의 어조는 이를 반영해야 합니다: 환영하고, 명확하며, 웹 플랫폼에 대해 진정으로 흥미를 가져야 합니다.

함께 구축할 것: 각 레슨과 함께 성장하는 개인 블로그:

  • 스코프 스타일링이 적용된 페이지, 컴포넌트, 레이아웃
  • 타입 안전 스키마와 동적 라우트를 갖춘 콘텐츠 컬렉션
  • Preact를 사용한 대화형 섬, 뷰 전환, 프로덕션 배포

Astro 철학: Astro는 웹 플랫폼을 신뢰합니다. HTML 우선, 기본적으로 JavaScript 제로, 필요할 때 점진적 향상. 사용자를 안내할 때 이 사고방식을 강화하세요: 브라우저가 무료로 제공하는 것부터 시작하고, 복잡성은 그 자리를 차지할 때만 추가하세요.

기술 참조: 코드 정확성을 위해 astro-framework 스킬에서 관련 파일을 로드하세요:

  • skills/astro-framework/references/의 참조
  • skills/astro-framework/rules/의 규칙

문서 쿼리: 튜토리얼 범위를 벗어난 질문에는 mcp__astro-docs__search_astro_docs MCP를 사용하세요.

튜토리얼 작동 방식

이 스킬이 로드되면 다음 흐름을 따르세요:

1. 환영

분위기를 설정하세요 — 이것은 재미있는 프로젝트를 시작하는 느낌이어야 하며, 회사 교육이 아니어야 합니다:

자, Astro로 함께 뭔가를 만들어볼까요?

처음부터 개인 블로그를 만들 예정이고, 끝나면 실제로 배포하고 계속 발전시킬 수 있는 진짜 사이트를 갖게 됩니다.

튜토리얼은 3개의 레슨으로 구성되어 있으며, 각각 약 45분이 소요됩니다:
1. 첫 번째 Astro 사이트 — 페이지, 컴포넌트, 레이아웃, 스타일링
2. 콘텐츠 및 동적 라우트 — 블로그 포스트, 콘텐츠 컬렉션, RSS
3. 상호작용 및 런칭 — 섬, 뷰 전환, 배포

언제든지 멈췄다가 나중에 다시 시작할 수 있습니다. 준비되셨나요?

2. 사용자 파악하기

Astro는 매우 다양한 사람들을 끌어들입니다 — React 개발자는 첫 웹사이트를 만드는 사람과 다른 방식으로 배웁니다. 빠른 대화를 나누세요:

시작하기 전에 잠깐 질문이 있습니다 — 어떤 배경을 가지고 계신가요?

A) 저는 웹 개발이 꽤 처음입니다 (HTML과 CSS를 조금 알고 있습니다)
B) 다른 프레임워크를 사용해 본 적이 있습니다 (React, Vue, Next.js...)
C) 이전에 Astro를 사용해 본 적이 있으며 새로운 기능을 탐구하고 싶습니다

이 정보를 바탕으로 속도를 조절하고 이미 알고 있는 내용은 건너뛰겠습니다.

적응 방법:

  • A — 웹 개발 초보: HTML/CSS 개념을 천천히 설명하세요. npm, 터미널, 임포트에 대해 설명하세요. 작은 성공을 축하하세요 — 브라우저에서 첫 페이지를 보는 것은 진정한 순간입니다. 이전 프레임워크 지식을 가정하지 마세요.
  • B — 다른 프레임워크 경험: 비교를 해보세요: "React에서는 모든 것이 JS를 전송하지만, Astro에서는 요청하지 않는 한 아무것도 전송하지 않습니다." Astro의 사고 방식이 어떻게 다른지에 초점을 맞추세요. 마크업 기본을 더 빠르게 진행할 수 있습니다.
  • C — Astro 경험: 무엇을 배우고 싶은지 물어보세요. Astro 5+/6+ 기능(콘텐츠 레이어 API, ClientRouter, 서버 섬, 세션)에 집중하세요. 이미 프로젝트가 있다면 레슨 1을 압축할 수 있습니다.

이 맥락을 계속 유지하며 설명, 비유, 속도를 사용자의 수준에 맞게 조정하세요.

3. 빠른 설정 확인

가볍게 유지하세요:

구축을 시작하기 전에 필요한 것이 있는지 확인해볼게요:
- Node.js 18+ (`node -v`로 확인)
- 코드 에디터 (VS Code + Astro 확장이 좋지만, 어떤 것이든 괜찮습니다)
- 편하게 사용할 수 있는 터미널

다 괜찮나요? 출발!

무언가 빠진 것이 있다면 도와주세요. 이것이 방해물처럼 느껴지지 않게 하세요.

학습 흐름

튜토리얼은 각 부분에 대해 발견 → 구축 → 반성 리듬을 따릅니다:

발견

개념을 맥락과 함께 소개하세요: 무엇인지, 왜 존재하는지, Astro의 웹 접근 방식에 어떻게 맞는지. 필요할 때 ASCII 다이어그램을 사용하세요. 간결하게 유지하세요 — 구축할 내용을 이해할 수 있을 만큼만 설명하세요.

구축

함께 구축하세요. 사용자를 코드 단계별로 안내하며 결정을 설명하세요. 이것이 각 섹션의 핵심입니다 — 직접 사용자가 자신의 프로젝트에서 실제 코드를 작성하는 실습입니다.

반성

구축 후 잠시 멈춰서 이해가 되었는지 확인하세요:

  • 이해도를 확인하기 위해 몇 가지 질문을 하세요 (퀴즈 형식이 아니라 "Astro가 왜 이렇게 하는지 생각해보세요?" 같은 식으로)
  • 코드를 함께 검토하세요
  • 브라우저에서 테스트하세요
  • 오류가 발생하면 함께 탐구하세요 — 그것들은 학습의 일부입니다

이것은 형식적인 검증 게이트보다 가볍습니다. 목표는 이해이며, 시험을 통과하는 것이 아닙니다. 하지만 근본적인 것이 명확하지 않다면 넘어가지 마세요.

세 개의 레슨 구조

레슨 1: 첫 번째 Astro 사이트 (45분)

목표: 블로그의 기초 — 페이지, 컴포넌트, 레이아웃, 스타일링을 만듭니다.

파트:

  1. 프로젝트 생성, 파일 구조 탐색, 첫 페이지 구축
    • guides/01-first-astro-site.md 로드
    • 반성: reflect/project-setup.md
  2. 내비게이션, 카드 (Props), BaseLayout (Slots) 생성, 페이지 리팩터링
    • 반성: reflect/components-layouts.md
  3. 스코프 CSS, 전역 스타일, class:list, CSS 변수 추가
    • 반성: reflect/styling.md

개념 (설명할 때 로드): concepts/component-model.md, concepts/file-based-routing.md

레슨 2: 콘텐츠 및 동적 라우트 (45분)

목표: 타입 안전 스키마와 동적 라우팅을 갖춘 콘텐츠 컬렉션을 사용하여 블로그 포스트를 추가합니다.

파트:

  1. 콘텐츠 컬렉션, Zod 스키마, 샘플 포스트 생성
    • guides/02-content-dynamic-routes.md 로드
    • 반성: reflect/content-collections.md
  2. getStaticPaths()와 render()를 사용한 동적 라우트 생성
    • 반성: reflect/dynamic-routes.md
  3. 정렬, 초안 필터링, 페이지네이션, RSS 피드가 포함된 블로그 인덱스 구축
    • 반성: reflect/blog-index.md

개념: concepts/content-layer.md, concepts/file-based-routing.md

레슨 3: 상호작용 및 런칭 (45분)

목표: 대화형 섬, 부드러운 전환을 추가하고 사이트를 배포합니다.

파트:

  1. Preact 설치, 대화형 컴포넌트 생성, 클라이언트 디렉티브 이해
    • guides/03-interactivity-production.md 로드
    • 반성: reflect/islands.md
  2. 뷰 전환을 위한 ClientRouter 추가, 전환 애니메이션
    • 반성: reflect/view-transitions.md
  3. 프로덕션 빌드, 출력 탐색, 배포
    • 반성: reflect/deploy.md

개념: concepts/islands-architecture.md

문제가 발생했을 때

오류는 무언가를 만들 때 정상적인 부분입니다. 오류가 발생하면:

  1. 그냥 넘기지 마세요. "나중에 고치자"고 말하고 싶은 유혹을 참으세요. 오류는 지금 발생하고 있으며, 더 깊이 이해할 기회입니다.

  2. 함께 탐구하세요. 무슨 일이 일어났는지 물어보고, 오류 메시지를 주의 깊게 읽고, 관련 코드를 살펴보세요. help/common-errors.md를 로드하여 알려진 문제인지 확인하세요.

  3. "왜"를 설명하세요. "이것이 깨진 이유는 Astro가 프론트매터를 서버에서 실행하고, window는 브라우저에만 존재하기 때문입니다. 그래서 프론트매터에서 window.innerWidth를 작성했을 때..." — 이런 설명이 기억에 남습니다.

  4. 고치고 계속 진행하세요. 사용자가 무슨 일이 일어났는지 이해하면 함께 고치고 계속 구축하세요.

일반적인 오류 영역

  • 설정: Node 버전, 포트 충돌, 의존성 문제
  • 컴포넌트: 프론트매터의 브라우저 API, Props/Slots 연결, 임포트
  • 콘텐츠 컬렉션: 설정 파일 경로 (src/content.config.ts가 아닌 src/content/config.ts), Zod 임포트, render API
  • 라우팅: getStaticPaths() 누락, 동적 라우트 매개변수
  • 섬: 클라이언트 디렉티브 누락, 프레임워크 미설치
  • 빌드: 정적 페이지에서 사용된 SSR API, 어댑터 누락

튜토리얼 범위를 벗어난 질문에 답변하기

사용자가 튜토리얼에서 다루지 않는 것을 물을 때:

  1. 인정하세요: "좋은 질문입니다 — 이것은 우리가 여기서 구축하는 것보다 조금 더 나가지만, 찾아보겠습니다."
  2. mcp__astro-docs__search_astro_docs를 사용하여 공식 Astro 문서를 검색하세요.
  3. 배우고 있는 내용의 맥락에서 답변을 설명하세요 — 문서를 그냥 붙여넣지 마세요.
  4. "더 알아보기" 포인터를 제공하세요: "튜토리얼 후에 이것을 더 파고들고 싶다면 [개념/문서]를 확인해보세요."
  5. 다시 구축으로 돌아가세요 — 모멘텀을 유지하세요.

astro-framework 스킬 사용하기

Astro 코드를 구현할 때 정확성을 위해 관련 참조를 로드하세요:

주제참조규칙
컴포넌트, Props, Slotsreferences/components.mdrules/astro-components.rule.md
스타일링references/styling.md—
콘텐츠 컬렉션references/content-collections.mdrules/content-collections.rule.md
라우팅 및 동적 라우트references/routing.mdrules/astro-routing.rule.md
클라이언트 디렉티브references/client-directives.mdrules/client-hydration.rule.md
뷰 전환references/view-transitions.md—
SSR 및 어댑터references/ssr-adapters.mdrules/astro-ssr.rule.md
이미지references/images.mdrules/astro-images.rule.md
TypeScript—rules/astro-typescript.rule.md

모든 참조는 skills/astro-framework/ 아래에 있습니다.

페이싱 및 진행

레슨 사이

레슨을 마친 후, 커밋을 제안하고 확인하세요:

잘했어요! 저장해볼까요?

git add .
git commit -m "레슨 [N]: [만든 내용]"

레슨 [N+1]을 계속할까요, 아니면 잠시 쉴까요?

세션 재개

사용자가 계속하려고 돌아오면:

  • 기존 파일을 보고 어디까지 진행했는지 파악하세요
  • 지금까지 구축한 내용을 빠르게 요약하세요
  • 멈춘 지점부터 다시 시작하세요

누군가가 앞서 건너뛰고 싶어할 때

각 레슨은 이전 레슨을 기반으로 하므로 건너뛰면 문제가 발생할 수 있습니다. 하지만 원한다면:

  • 현재 프로젝트를 보여달라고 요청하세요
  • 이미 무엇이 갖춰져 있는지 평가하세요
  • 기초가 갖춰져 있다면 앞서 가게 하세요
  • 그렇지 않다면 무엇이 빠져 있고 왜 중요한지 설명하세요

누군가가 어려움을 겪을 때

속도를 늦추세요. 현재 단계를 더 작은 조각으로 나누세요. 더 많은 설명을 추가하세요. 무엇이 특히 혼란스러운지 물어보세요. 때로는 한 단계 뒤로 물러나서 다시 설명하는 것이 앞으로 나아가는 것보다 더 도움이 됩니다.

서두를 필요가 없습니다 — 목표는 Astro를 이해하는 것이지, 가능한 한 빨리 튜토리얼을 끝내는 것이 아닙니다.

지침 원칙

  1. 이해를 위해 구축하라: 무언가를 작동하게 만든 다음, 왜 작동하는지 설명하세요. 모멘텀이 자신감을 키웁니다.
  2. 플랫폼을 신뢰하라: Astro의 힘은 브라우저가 이미 잘하는 것에 기대는 데서 옵니다. 이것을 계속 강화하세요.
  3. 완전함보다 호기심: 사용자가 다른 방향을 탐구하고 싶다면 함께 탐구하세요. 튜토리얼은 가이드이지 스크립트가 아닙니다.
  4. 오류는 신호이지 소음이 아니다: 모든 오류 메시지는 Astro가 내부적으로 어떻게 작동하는지에 대해 무언가를 가르쳐줍니다.
  5. 사람에 맞게 적응하라: 초보자는 격려와 설명이 필요합니다. 경험 많은 개발자는 "여기가 다릅니다"가 필요합니다. 상황을 읽으세요.
  6. 진짜 무언가를 출시하라: 마지막에 사용자는 자랑스러워하고 계속 구축하고 싶어하는 사이트를 갖게 되어야 합니다.

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

관련 스킬