113 lines
5.2 KiB
Markdown
113 lines
5.2 KiB
Markdown
---
|
|
name: create-domain-rule
|
|
version: 1.0.0
|
|
description: 새로운 도메인 rules.md 파일을 생성하기 위한 범용 스킬
|
|
---
|
|
|
|
# Create Domain Rule
|
|
|
|
## 목적
|
|
|
|
`agent-ops/rules/project/domain/<domain-name>/rules.md` 파일을 올바른 형식으로 생성한다.
|
|
실제 프로젝트 폴더 구조를 분석하여 경로와 구성 요소를 자동으로 채운다.
|
|
생성 후 `rules/project/rules.md`의 도메인 룰 로딩 안내와 도메인 매핑 테이블을 갱신한다.
|
|
|
|
## 언제 호출할지
|
|
|
|
- 새로운 도메인 영역의 코드를 처음 변경하기 전에
|
|
- 기존 domain rule이 없는 경로에 대해 규칙이 필요할 때
|
|
- 사용자가 특정 도메인의 rule 파일을 만들어 달라고 요청할 때
|
|
- agent-ops 초기 scaffold 이후 도메인을 추가 확장할 때
|
|
|
|
## 입력
|
|
|
|
- `domain-name`: 생성할 도메인 이름, kebab-case (필수)
|
|
- `domain-type`: `core` / `supporting` / `generic` 중 하나 (필수)
|
|
- `path-hints`: 이 도메인에 해당하는 경로 힌트 목록 (선택, 없으면 자동 탐색)
|
|
|
|
## 먼저 확인할 것
|
|
|
|
- [ ] `agent-ops/rules/project/domain/<domain-name>/rules.md` 가 이미 존재하는지 확인
|
|
- [ ] `agent-ops/rules/common/_templates/domain-rule-template.md` 를 읽어 최신 템플릿 형식 파악
|
|
- [ ] `agent-ops/rules/project/domain/` 하위 기존 domain rule 목록을 확인하여 중복·유사 도메인 여부 판단
|
|
|
|
## 실행 절차
|
|
|
|
1. **중복 확인**
|
|
- `agent-ops/rules/project/domain/<domain-name>/` 폴더 존재 여부 확인
|
|
- 책임이 겹치는 기존 domain rule 이 있으면 사용자에게 알리고 중단한다
|
|
|
|
2. **경로 탐색**
|
|
- `path-hints` 가 제공된 경우: 해당 경로를 기준으로 폴더 구조 확인
|
|
- `path-hints` 가 없는 경우: `domain-name` 과 연관된 폴더명·파일명으로 프로젝트를 탐색
|
|
- 실제로 존재하는 경로만 포함 경로에 기재한다
|
|
- 존재하지 않는 경로는 기재하지 않는다
|
|
|
|
3. **도메인 분석**
|
|
- 탐색된 경로의 주요 파일·모듈을 읽어 아래를 도출한다
|
|
- 도메인의 목적 / 책임 한 줄 요약
|
|
- 포함 경로 목록
|
|
- 제외 경로 (인접 도메인과 겹칠 수 있는 경로)
|
|
- 주요 구성 요소 (파일, 모듈, 클래스, 함수 등)
|
|
- 유지할 패턴 (네이밍 규칙, 아키텍처 패턴 등)
|
|
- 다른 도메인과의 경계
|
|
- 금지 사항
|
|
|
|
4. **도메인 rules.md 생성**
|
|
- 경로: `agent-ops/rules/project/domain/<domain-name>/rules.md`
|
|
- `domain-rule-template.md` 형식을 따른다
|
|
- 실제 코드에서 확인된 내용만 기재한다
|
|
- 불확실한 항목은 `<!-- TODO: 확인 필요 -->` 주석으로 남긴다
|
|
|
|
5. **rules/project/rules.md 업데이트**
|
|
- `agent-ops/rules/project/rules.md` 를 읽는다
|
|
- `## 도메인 룰 로딩` 섹션이 없으면 `## 도메인 매핑` 바로 위에 아래 형식으로 추가한다
|
|
```
|
|
## 도메인 룰 로딩
|
|
|
|
- 아래 도메인 매핑에 해당하는 작업에서 해당 domain 최초 진입 시 domain rule을 1회 읽는다.
|
|
- 이미 읽은 domain rule은 같은 세션에서 반복해서 읽지 않는다.
|
|
```
|
|
- 도메인 매핑 테이블에 아래 형식으로 추가한다
|
|
```
|
|
| `<path-pattern>` | <domain-name> | `agent-ops/rules/project/domain/<domain-name>/rules.md` |
|
|
```
|
|
- 경로 패턴은 실제 포함 경로를 기준으로 작성한다
|
|
- 기존 로딩 섹션과 테이블 항목을 삭제하거나 재정렬하지 않는다
|
|
|
|
6. **결과 보고**
|
|
- 생성한 파일 경로
|
|
- rules/project/rules.md 에 추가한 항목
|
|
- 불확실하여 TODO로 남긴 항목 (해당 시)
|
|
|
|
## 출력 형식
|
|
|
|
```
|
|
## 생성 완료
|
|
|
|
- Domain Rule 경로: agent-ops/rules/project/domain/<domain-name>/rules.md
|
|
- 도메인 유형: <core | supporting | generic>
|
|
- 도메인 룰 로딩 섹션: <추가함 | 이미 존재함>
|
|
- rules/project/rules.md 추가 경로 패턴: <path-pattern>
|
|
|
|
## TODO 항목 (확인 필요)
|
|
- <불확실하여 직접 확인이 필요한 항목> (해당 시)
|
|
```
|
|
|
|
## 실행 결과 검증
|
|
|
|
- [ ] `agent-ops/rules/project/domain/<domain-name>/rules.md` 파일이 생성되었는가
|
|
- [ ] 생성된 파일이 `domain-rule-template.md`의 모든 섹션(목적, 포함 경로, 제외 경로, 주요 구성 요소, 유지할 패턴, 경계, 금지 사항)을 포함하는가
|
|
- [ ] `rules/project/rules.md`에 도메인 룰 로딩 섹션이 존재하는가
|
|
- [ ] `rules/project/rules.md`의 도메인 매핑 테이블에 해당 도메인 항목이 추가되었는가
|
|
- [ ] 포함 경로에 기재된 경로가 실제로 프로젝트에 존재하는가
|
|
- 검증 실패 시: 누락된 섹션 또는 잘못된 경로를 사용자에게 알리고 해당 부분만 보완한다
|
|
|
|
## 금지 사항
|
|
|
|
- 이미 존재하는 rules.md 를 덮어쓰지 않는다
|
|
- 실제 존재하지 않는 경로를 포함 경로에 넣지 않는다
|
|
- 추측으로 패턴이나 금지 사항을 채우지 않는다 — 확인된 내용만 기재한다
|
|
- rules/project/rules.md 의 기존 로딩 섹션과 테이블 항목을 삭제하거나 재정렬하지 않는다
|
|
- 하나의 domain rule 에 여러 독립 도메인의 책임을 묶지 않는다
|
|
- 코드 변경을 수행하지 않는다 — 이 skill 은 rule 파일 생성만 담당한다
|