커스터마이징
Rasen은 세 수준의 커스터마이징을 제공합니다:
| 수준 | 수행하는 것 | 최적 대상 |
|---|---|---|
| 프로젝트 설정 | 기본값 설정, 컨텍스트/규칙 주입 | 대부분의 팀 |
| 커스텀 스키마 | 자신만의 워크플로우 산출물 정의 | 고유한 프로세스가 있는 팀 |
| 글로벌 재정의 | 모든 프로젝트 간에 스키마 공유 | 고급 사용자 |
프로젝트 설정
rasen/config.yaml 파일은 팀을 위해 rasen을 커스터마이징하는 가장 쉬운 방법입니다. 그것이 당신을 하게 합니다:
- 기본 스키마 설정 - 모든 명령에
--schema생략 - 프로젝트 컨텍스트 주입 - AI가 기술 스택, 규칙 등을 봅니다
- 산출물별 규칙 추가 - 특정 산출물에 대한 커스텀 규칙
빠른 설정
rasen init
이것은 대화형으로 설정 생성을 안내합니다. 또는 수동으로 생성하세요:
# rasen/config.yaml
schema: spec-driven
context: |
Tech stack: TypeScript, React, Node.js, PostgreSQL
API style: RESTful, documented in docs/api.md
Testing: Jest + React Testing Library
We value backwards compatibility for all public APIs
rules:
proposal:
- Include rollback plan
- Identify affected teams
specs:
- Use Given/When/Then format
- Reference existing patterns before inventing new ones
작동 방식
기본 스키마:
# 설정 없이
rasen new change my-feature --schema spec-driven
# 설정과 함께 - 스키마 자동
rasen new change my-feature
컨텍스트와 규칙 주입:
산출물을 생성할 때, 컨텍스트와 규칙이 AI 프롬프트에 주입됩니다:
<context>
Tech stack: TypeScript, React, Node.js, PostgreSQL
...
</context>
<rules>
- Include rollback plan
- Identify affected teams
</rules>
<template>
[Schema's built-in template]
</template>
- 컨텍스트는 ALL 산출물에 나타남
- 규칙은 일치하는 산출물에만 나타남
스키마 해결 순서
Rasen이 스키마를 필요로 할 때, 이 순서로 확인합니다:
- CLI 플래그:
--schema <name> - 변경 메타데이터 (변경 폴더의
.openspec.yaml) - 프로젝트 설정 (
rasen/config.yaml) - 기본값 (
spec-driven)
커스텀 스키마
프로젝트 설정이 충분하지 않을 때, 완전히 커스텀 워크플로우로 자신만의 스키마를 생성하세요. 커스텀 스키마는 프로젝트의 rasen/schemas/ 디렉터리에 있고 코드와 함께 버전 제어됩니다.
your-project/
├── rasen/
│ ├── config.yaml # 프로젝트 설정
│ ├── schemas/ # 커스텀 스키마는 여기
│ │ └── my-workflow/
│ │ ├── schema.yaml
│ │ └── templates/
│ └── changes/ # 당신의 변경
└── src/
기존 스키마 포크
커스터마이징하는 가장 빠른 방법은 내장 스키마를 포크하는 것입니다:
rasen schema fork spec-driven my-workflow
이것은 전체 spec-driven 스키마를 rasen/schemas/my-workflow/에 복사하여 자유롭게 편집할 수 있도록 합니다.
가져오는 것:
rasen/schemas/my-workflow/
├── schema.yaml # 워크플로우 정의
└── templates/
├── proposal.md # 제안서 산출물을 위한 템플릿
├── spec.md # 스펙을 위한 템플릿
├── design.md # 설계를 위한 템플릿
└── tasks.md # 작업을 위한 템플릿
이제 schema.yaml을 편집하여 워크플로우를 변경하거나, 템플릿을 편집하여 AI가 생성하는 것을 변경하세요.
처음부터 스키마 생성
완전히 새로운 워크플로우의 경우:
# 대화형
rasen schema init research-first
# 비대화형
rasen schema init rapid \
--description "Rapid iteration workflow" \
--artifacts "proposal,tasks" \
--default
스키마 구조
스키마는 워크플로우의 산출물과 그들이 서로 어떻게 의존하는지 정의합니다:
# rasen/schemas/my-workflow/schema.yaml
name: my-workflow
version: 1
description: My team's custom workflow
artifacts:
- id: proposal
generates: proposal.md
description: Initial proposal document
template: proposal.md
instruction: |
Create a proposal that explains WHY this change is needed.
Focus on the problem, not the solution.
requires: []
- id: design
generates: design.md
description: Technical design
template: design.md
instruction: |
Create a design document explaining HOW to implement.
requires:
- proposal # Can't create design until proposal exists
- id: tasks
generates: tasks.md
description: Implementation checklist
template: tasks.md
requires:
- design
apply:
requires: [tasks]
tracks: tasks.md
주요 필드:
| 필드 | 목적 |
|---|---|
id |
고유 식별자, 명령과 규칙에서 사용 |
generates |
출력 파일명 (glob 같은 specs/**/*.md 지원) |
template |
templates/ 디렉터리의 템플릿 파일 |
instruction |
이 산출물을 생성하기 위한 AI 명령 |
requires |
의존성 - 먼저 존재해야 할 산출물 |
템플릿
템플릿은 AI를 안내하는 마크다운 파일입니다. 그 산출물을 생성할 때 프롬프트에 주입됩니다.
<!-- templates/proposal.md -->
## Why
<!-- Explain the motivation for this change. What problem does this solve? -->
## What Changes
<!-- Describe what will change. Be specific about new capabilities or modifications. -->
## Impact
<!-- Affected code, APIs, dependencies, systems -->
템플릿은 포함할 수 있습니다:
- AI가 채워야 할 섹션 헤더
- AI를 위한 지침이 있는 HTML 주석
- 예상 구조를 보여주는 예제 형식
스키마 검증
커스텀 스키마를 사용하기 전에 검증하세요:
rasen schema validate my-workflow
이것이 확인합니다:
schema.yaml구문이 정확함- 참조된 모든 템플릿이 존재함
- 순환 의존성 없음
- 산출물 ID가 유효함
커스텀 스키마 사용
생성 후, 다음으로 스키마를 사용하세요:
# 명령에서 지정
rasen new change feature --schema my-workflow
# 또는 config.yaml에서 기본값으로 설정
schema: my-workflow
스키마 해결 디버그
어떤 스키마가 사용되는지 확실하지 않나요? 확인하세요:
# 특정 스키마가 어디에서 해결되는지 확인
rasen schema which my-workflow
# 사용 가능한 모든 스키마 나열
rasen schema which --all
출력은 프로젝트, 사용자 디렉터리 또는 패키지에서 나타나는지 보여줍니다:
Schema: my-workflow
Source: project
Path: /path/to/project/rasen/schemas/my-workflow
참고: Rasen은 또한
~/.rasen/schemas/의 사용자 수준 스키마를 지원합니다 (위치를RASEN_HOME로 재정의) 프로젝트를 공유하기 위해, 하지만rasen/schemas/의 프로젝트 수준 스키마는 코드와 함께 버전 제어되므로 권장됩니다.
예제
빠른 반복 워크플로우
빠른 반복을 위한 최소 워크플로우:
# rasen/schemas/rapid/schema.yaml
name: rapid
version: 1
description: Fast iteration with minimal overhead
artifacts:
- id: proposal
generates: proposal.md
description: Quick proposal
template: proposal.md
instruction: |
Create a brief proposal for this change.
Focus on what and why, skip detailed specs.
requires: []
- id: tasks
generates: tasks.md
description: Implementation checklist
template: tasks.md
requires: [proposal]
apply:
requires: [tasks]
tracks: tasks.md
검토 산출물 추가
기본값을 포크하고 검토 단계를 추가하세요:
rasen schema fork spec-driven with-review
그 후 schema.yaml을 편집하여 추가하세요:
- id: review
generates: review.md
description: Pre-implementation review checklist
template: review.md
instruction: |
Create a review checklist based on the design.
Include security, performance, and testing considerations.
requires:
- design
- id: tasks
# ... existing tasks config ...
requires:
- specs
- design
- review # Now tasks require review too
커뮤니티 스키마
Rasen은 또한 독립 리포지토리를 통해 배포된 커뮤니티 유지 스키마를 지원합니다. 이것들은 github/spec-kit의 커뮤니티 확장 카탈로그가 spec-kit을 위해 하는 것과 유사하게, 다른 도구 또는 시스템과 rasen을 통합하는 의견이 있는 워크플로우를 제공합니다.
커뮤니티 스키마는 rasen 코어에 벤더링되지 않습니다 — 그들은 자신만의 릴리스 케이던스로 자신만의 리포지토리에 있습니다. 하나를 사용하려면, 스키마 번들을 프로젝트의 rasen/schemas/<schema-name>/ 디렉터리에 복사합니다 (각 리포 README에는 설치 지침이 있습니다).
| 스키마 | 유지자 | 리포지토리 | 설명 |
|---|---|---|---|
superpowers-bridge |
@JiangWay | JiangWay/openspec-schemas | rasen의 산출물 거버넌스를 obra/superpowers 실행 스킬 (브레인스토밍, 작성 계획, 서브에이전트를 통한 TDD, 코드 검토, 완료)과 통합합니다. Superpowers가 기본적으로 다루지 않는 간격을 채우는 증거 우선 retrospective 산출물을 추가합니다. |
커뮤니티 스키마를 기여하고 싶으세요? 리포지토리 링크로 이슈를 열거나, 이 표에 행을 추가하는 PR을 제출하세요.
참고
- CLI 참조: 스키마 명령 - 전체 명령 문서