스마트 규칙 엔진
스마트 규칙 엔진은 지식 베이스의 MORAYA.md를 AI 어시스턴트를 위한 효율적인 온디맨드 컨텍스트 시스템으로 바꿔 줍니다 — 이제 큰 규칙 파일이 매 메시지마다 강제로 잘리거나 전체가 과금되는 일이 없습니다.
해결하는 문제
이전에는 MORAYA.md가 고정된 글자 수 제한과 함께 AI 시스템 프롬프트에 주입되었습니다. 이로 인해 세 가지 문제가 발생했습니다. 규칙이 문장 중간에서 잘릴 수 있었고, 큰 파일은 매 요청마다 토큰 비용을 늘렸으며, AI는 언제 파일을 다시 읽어야 할지 추측해야 했습니다.
규칙 엔진은 “단일 파일 잘라내기”를 자동 분할 + 색인 기반 온디맨드 로딩으로 대체합니다. 여전히 하나의 파일만 유지하면, Moraya가 이를 규칙 세그먼트로 컴파일하여 AI가 관련이 있을 때만 로드합니다.
작동 방식
MORAYA.md를 저장하면 Moraya는 내용의 해시를 비교합니다. 변경된 경우, 파일은 최상위 제목을 기준으로 세그먼트로 분할되어 파생된 .moraya/rules/ 디렉토리 아래에 저장됩니다.
- Glob 태그 세그먼트 —
<!-- globs: ... -->로 주석 처리된 세그먼트는 일치하는 파일을 편집할 때마다 자동으로 로드됩니다(우선순위 높은 조건부 로딩). - 태그 없는 세그먼트 — 제목으로 색인되며, AI가 필요할 때 파일 도구를 통해 전체 세그먼트를 읽습니다.
- 제목 구조 없음 — 파일은 전체 파일 주입으로 대체되며(기존 동작 유지), UI가 제목 추가를 제안합니다.
그러면 시스템 프롬프트는 전체 파일 대신 간결한 색인과 glob에 일치하는 세그먼트 내용을 담게 됩니다.
설계 원칙
| 원칙 | 의미 |
|---|---|
| 단일 진실 공급원 | MORAYA.md만 유지하면 되며, .moraya/rules/는 생성된 산출물입니다 |
| 학습 곡선 없음 | glob 문법 불필요 — 좋은 마크다운 제목만 작성하면 됩니다 |
| 모두에게 이득 | 문서 전체를 볼 수 있고, AI는 세그먼트를 읽으며, 과금은 필요할 때 로드됩니다 |
| 자가 복구 | .moraya/는 Git에 커밋되지 않으며, 새 기기에서 자동으로 재구축됩니다 |
| 하위 호환 | 제목이 없는 파일은 이전과 정확히 동일하게 동작합니다 |
조건부 규칙 추가
규칙을 특정 파일로 한정하려면 제목 아래에 glob 주석을 추가하세요.
## API documentation style
<!-- globs: docs/api/**/*.md -->
- Every endpoint must document its error responses.
- Use `snake_case` for JSON field names.
이제 이 섹션은 docs/api/ 아래의 파일을 편집할 때만 주입됩니다. glob 주석이 없는 섹션은 색인에 남아 있다가 대화와 관련이 있을 때 AI가 가져옵니다.
팁
- 각 규칙은 명확하고 설명적인 제목 아래에 두세요 — 제목이 AI가 매칭하는 색인 항목이 됩니다.
- 폭넓게 적용되는 규칙(어조, 용어)은 glob 없이 묶고, 좁은 범위의 규칙(폴더별 관례)은 glob으로 한정하세요.
- 파생된
.moraya/디렉토리는 삭제해도 안전합니다 — 다음 저장 시 재구축됩니다.