diff --git a/agent-ops/skills/create-domain-rule/SKILL.md b/agent-ops/skills/create-domain-rule/SKILL.md new file mode 100644 index 000000000..903cc1d3e --- /dev/null +++ b/agent-ops/skills/create-domain-rule/SKILL.md @@ -0,0 +1,96 @@ +--- +name: create-domain-rule +description: 새로운 도메인 rules.md 파일을 생성하기 위한 범용 스킬 +version: 1.0.0 +--- + +# Create Domain Rule + +## 목적 + +`agent-ops/rules/domain//rules.md` 파일을 올바른 형식으로 생성한다. +실제 프로젝트 폴더 구조를 분석하여 경로와 구성 요소를 자동으로 채운다. +생성 후 router.md 의 코드 변경 라우팅 테이블에 항목을 추가한다. + +## 언제 호출할지 + +- 새로운 도메인 영역의 코드를 처음 변경하기 전에 +- 기존 domain rule이 없는 경로에 대해 규칙이 필요할 때 +- 사용자가 특정 도메인의 rule 파일을 만들어 달라고 요청할 때 +- agent-ops 초기 scaffold 이후 도메인을 추가 확장할 때 + +## 입력 + +- `domain-name`: 생성할 도메인 이름, kebab-case (필수) +- `domain-type`: `core` / `supporting` / `generic` 중 하나 (필수) +- `path-hints`: 이 도메인에 해당하는 경로 힌트 목록 (선택, 없으면 자동 탐색) + +## 먼저 확인할 것 + +- [ ] `agent-ops/rules/domain//rules.md` 가 이미 존재하는지 확인 +- [ ] `agent-ops/rules/_templates/domain-rule-template.md` 를 읽어 최신 템플릿 형식 파악 +- [ ] `agent-ops/rules/domain/` 하위 기존 domain rule 목록을 확인하여 중복·유사 도메인 여부 판단 + +## 실행 절차 + +1. **중복 확인** + - `agent-ops/rules/domain//` 폴더 존재 여부 확인 + - 책임이 겹치는 기존 domain rule 이 있으면 사용자에게 알리고 중단한다 + +2. **경로 탐색** + - `path-hints` 가 제공된 경우: 해당 경로를 기준으로 폴더 구조 확인 + - `path-hints` 가 없는 경우: `domain-name` 과 연관된 폴더명·파일명으로 프로젝트를 탐색 + - 실제로 존재하는 경로만 포함 경로에 기재한다 + - 존재하지 않는 경로는 기재하지 않는다 + +3. **도메인 분석** + - 탐색된 경로의 주요 파일·모듈을 읽어 아래를 도출한다 + - 도메인의 목적 / 책임 한 줄 요약 + - 포함 경로 목록 + - 제외 경로 (인접 도메인과 겹칠 수 있는 경로) + - 주요 구성 요소 (파일, 모듈, 클래스, 함수 등) + - 유지할 패턴 (네이밍 규칙, 아키텍처 패턴 등) + - 다른 도메인과의 경계 + - 금지 사항 + +4. **rules.md 생성** + - 경로: `agent-ops/rules/domain//rules.md` + - `domain-rule-template.md` 형식을 따른다 + - 실제 코드에서 확인된 내용만 기재한다 + - 불확실한 항목은 `` 주석으로 남긴다 + +5. **router.md 업데이트** + - `agent-ops/skills/router.md` 를 읽는다 + - 코드 변경 섹션의 경로-도메인 라우팅 테이블에 아래 형식으로 추가한다 + ``` + | `` | `agent-ops/rules/domain//rules.md` | + ``` + - 경로 패턴은 실제 포함 경로를 기준으로 작성한다 + - 기존 테이블 항목을 삭제하거나 재정렬하지 않는다 + +6. **결과 보고** + - 생성한 파일 경로 + - router.md 에 추가한 항목 + - 불확실하여 TODO로 남긴 항목 (해당 시) + +## 출력 형식 + +``` +## 생성 완료 + +- Domain Rule 경로: agent-ops/rules/domain//rules.md +- 도메인 유형: +- router.md 추가 경로 패턴: + +## TODO 항목 (확인 필요) +- <불확실하여 직접 확인이 필요한 항목> (해당 시) +``` + +## 금지 사항 + +- 이미 존재하는 rules.md 를 덮어쓰지 않는다 +- 실제 존재하지 않는 경로를 포함 경로에 넣지 않는다 +- 추측으로 패턴이나 금지 사항을 채우지 않는다 — 확인된 내용만 기재한다 +- router.md 의 기존 항목을 삭제하거나 재정렬하지 않는다 +- 하나의 domain rule 에 여러 독립 도메인의 책임을 묶지 않는다 +- 코드 변경을 수행하지 않는다 — 이 skill 은 rule 파일 생성만 담당한다 diff --git a/agent-ops/skills/create-skill/SKILL.md b/agent-ops/skills/create-skill/SKILL.md new file mode 100644 index 000000000..fd29fa16d --- /dev/null +++ b/agent-ops/skills/create-skill/SKILL.md @@ -0,0 +1,83 @@ +--- +name: create-skill +description: 새로운 SKILL.md 파일을 생성하기 위한 범용 스킬 +version: 1.0.0 +--- + +# Create Skill + +## 목적 + +`agent-ops/skills//SKILL.md` 파일을 올바른 형식으로 생성한다. +기존 skill-template.md 를 기반으로, 요청 목적에 맞는 내용을 채워 넣는다. +생성 후 router.md 에 라우팅 항목을 추가한다. + +## 언제 호출할지 + +- 새로운 반복 작업 패턴이 생겨 skill로 정의해야 할 때 +- 기존 skill이 없는 작업 유형을 처음 수행하기 전에 +- 사용자가 특정 작업을 skill로 만들어 달라고 요청할 때 + +## 입력 + +- `skill-name`: 생성할 skill 이름, kebab-case (필수) +- `purpose`: 이 skill이 해결하는 문제 한 줄 요약 (필수) +- `trigger-cases`: 이 skill을 호출해야 하는 상황 목록 (선택) + +## 먼저 확인할 것 + +- [ ] `agent-ops/skills/` 하위에 동일 이름의 디렉터리가 이미 존재하는지 확인 +- [ ] `agent-ops/skills/router.md` 에 이미 유사한 라우팅 항목이 있는지 확인 +- [ ] `agent-ops/skills/_templates/skill-template.md` 를 읽어 최신 템플릿 형식 파악 + +## 실행 절차 + +1. **중복 확인** + - `agent-ops/skills//` 폴더 존재 여부 확인 + - 기능이 겹치는 기존 skill이 있으면 사용자에게 알리고 중단한다 + +2. **목적 분석** + - `purpose` 와 `trigger-cases` 를 바탕으로 아래 항목을 도출한다 + - 언제 호출할지 (2~4개) + - 필요한 입력 파라미터 + - 사전 확인 항목 + - 실행 절차 (3~7단계) + - 출력 형식 + - 금지 사항 + +3. **SKILL.md 생성** + - 경로: `agent-ops/skills//SKILL.md` + - `skill-template.md` 형식을 따른다 + - 프로젝트 특화 내용보다 범용 절차를 우선한다 + - 절차는 구체적이되 지나치게 세부 구현을 기술하지 않는다 + +4. **router.md 업데이트** + - `agent-ops/skills/router.md` 를 읽는다 + - 이 skill이 속할 라우팅 축(구조 분석/코드 변경/흐름 추적 등)을 판단한다 + - 해당 축에 `→ agent-ops/skills//SKILL.md` 항목을 추가한다 + - 기존 라우팅 구조를 깨지 않는다 + +5. **결과 보고** + - 생성한 파일 경로 + - router.md 에 추가한 항목 + - 이 skill이 다루지 않는 범위(필요 시) + +## 출력 형식 + +``` +## 생성 완료 + +- SKILL 경로: agent-ops/skills//SKILL.md +- router.md 추가 항목: <라우팅 축> → + +## 주의사항 (해당 시) +- <이 skill이 다루지 않는 범위 또는 주의할 점> +``` + +## 금지 사항 + +- 이미 존재하는 skill 을 덮어쓰지 않는다 +- 프로젝트 특화 경로(예: `app/screens/`)를 skill 본문에 하드코딩하지 않는다 +- skill 생성과 무관한 코드 파일을 수정하지 않는다 +- router.md 의 기존 항목을 삭제하거나 재정렬하지 않는다 +- 하나의 skill 에 여러 독립적인 책임을 묶지 않는다 diff --git a/agent-ops/skills/router.md b/agent-ops/skills/router.md new file mode 100644 index 000000000..9bbd25e30 --- /dev/null +++ b/agent-ops/skills/router.md @@ -0,0 +1,48 @@ +--- +name: router +description: 작업 유형별 skill / domain rule 라우팅 +version: 1.0.0 +--- + +# Skill Router + +작업 유형에 따라 필요한 skill 또는 domain rule만 로드한다. + +## 라우팅 축 + +### 구조 분석 / 스캐폴드 +→ `agent-ops/skills/find-domain/SKILL.md` +→ `agent-ops/rules/global.md` + +### 새 Skill 생성 +→ `agent-ops/skills/create-skill/SKILL.md` + +### 새 Domain Rule 생성 +→ `agent-ops/skills/create-domain-rule/SKILL.md` + +### 도메인 판별 +→ `agent-ops/skills/find-domain/SKILL.md` + +### 코드 변경 +→ `agent-ops/skills/code-change/SKILL.md` +→ 변경 대상 경로에 해당하는 domain rule 로드 + +| 경로 패턴 | Domain Rule | +|---|---| +| `app/products/agents/` | `agent-ops/rules/domain/products-agents/rules.md` | +| `app/products/calls/` | `agent-ops/rules/domain/products-calls/rules.md` | +| `app/database/`, `app/queries/` | `agent-ops/rules/domain/database/rules.md` | +| `app/components/`, `app/screens/`, `app/hooks/` | `agent-ops/rules/domain/ui/rules.md` | +| `app/actions/`, 채널/포스트/스레드 관련 | `agent-ops/rules/domain/messaging/rules.md` | + +### 흐름 추적 +→ 흐름에 관련된 domain rule 로드 +→ `agent-ops/skills/find-domain/SKILL.md`로 경로 판별 후 진행 + +### 문서 / 릴리즈 정리 +→ `agent-ops/rules/global.md` +→ `docs/` 폴더 직접 확인 + +## 원칙 +- 필요한 rule만 로드한다. 전체를 로드하지 않는다. +- 불확실한 도메인은 `find-domain` skill로 먼저 판별한다.