[ contents ]
가이드

커스터마이징

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이 스키마를 필요로 할 때, 이 순서로 확인합니다:

  1. CLI 플래그: --schema <name>
  2. 변경 메타데이터 (변경 폴더의 .openspec.yaml)
  3. 프로젝트 설정 (rasen/config.yaml)
  4. 기본값 (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을 제출하세요.


참고