101 lines
5 KiB
Markdown
101 lines
5 KiB
Markdown
---
|
|
name: create-skill
|
|
version: 1.0.0
|
|
description: 새로운 SKILL.md 파일을 생성하기 위한 범용 스킬
|
|
---
|
|
|
|
# Create Skill
|
|
|
|
## 목적
|
|
|
|
`agent-ops/skills/` 하위에 올바른 형식의 SKILL.md 파일을 생성한다.
|
|
기존 skill-template.md 를 기반으로, 요청 목적에 맞는 내용을 채워 넣는다.
|
|
생성 후 라우팅 항목을 추가한다.
|
|
|
|
이 스킬은 프로젝트 내부 `agent-ops` 라우터가 읽는 스킬을 만든다.
|
|
`$CODEX_HOME/skills`에 설치되어 Codex가 직접 discover하는 스킬을 만들 때는 시스템 `skill-creator` 규칙을 우선하고, frontmatter는 `name`과 `description`만 사용한다.
|
|
|
|
### 생성 위치 결정
|
|
- `.agent-ops-source` 파일이 **있으면** (공통 관리 레포): `agent-ops/skills/common/<skill-name>/SKILL.md`
|
|
- `.agent-ops-source` 파일이 **없으면** (타겟 프로젝트): `agent-ops/skills/project/<skill-name>/SKILL.md`
|
|
|
|
## 언제 호출할지
|
|
|
|
- 새로운 반복 작업 패턴이 생겨 skill로 정의해야 할 때
|
|
- 기존 skill이 없는 작업 유형을 처음 수행하기 전에
|
|
- 사용자가 특정 작업을 skill로 만들어 달라고 요청할 때
|
|
|
|
## 입력
|
|
|
|
- `skill-name`: 생성할 skill 이름, kebab-case (필수)
|
|
- `purpose`: 이 skill이 해결하는 문제 한 줄 요약 (필수)
|
|
- `trigger-cases`: 이 skill을 호출해야 하는 상황 목록 (선택)
|
|
|
|
## 먼저 확인할 것
|
|
|
|
- [ ] `agent-ops/skills/common/` 및 `agent-ops/skills/project/` 하위에 동일 이름의 디렉터리가 이미 존재하는지 확인
|
|
- [ ] `agent-ops/skills/common/router.md` 및 `agent-ops/rules/project/rules.md` 에 이미 유사한 라우팅 항목이 있는지 확인
|
|
- [ ] `agent-ops/skills/common/_templates/skill-template.md` 를 읽어 최신 템플릿 형식 파악
|
|
|
|
## 실행 절차
|
|
|
|
1. **중복 확인**
|
|
- `agent-ops/skills/common/<skill-name>/` 및 `agent-ops/skills/project/<skill-name>/` 폴더 존재 여부 확인
|
|
- 기능이 겹치는 기존 skill이 있으면 사용자에게 알리고 중단한다
|
|
|
|
2. **목적 분석**
|
|
- `purpose` 와 `trigger-cases` 를 바탕으로 아래 항목을 도출한다
|
|
- 언제 호출할지 (2~4개)
|
|
- 필요한 입력 파라미터
|
|
- 사전 확인 항목
|
|
- 실행 절차 (3~7단계)
|
|
- 출력 형식
|
|
- 금지 사항
|
|
|
|
3. **SKILL.md 생성**
|
|
- 경로: 생성 위치 결정 규칙에 따라 `common/` 또는 `project/` 하위에 생성
|
|
- `skill-template.md` 형식을 따른다
|
|
- agent-ops 내부 스킬은 기존 로컬 관례에 맞춰 `version`을 둘 수 있다. Codex 설치형 스킬로 배포할 목적이면 `version`이나 `depends` 같은 비표준 frontmatter를 넣지 않는다.
|
|
- 프로젝트 특화 내용보다 범용 절차를 우선한다
|
|
- 절차는 구체적이되 지나치게 세부 구현을 기술하지 않는다
|
|
|
|
4. **라우팅 업데이트**
|
|
- `.agent-ops-source` 마커가 **있으면** (공통 관리 레포): `agent-ops/skills/common/router.md`에 라우팅 항목 추가
|
|
- `.agent-ops-source` 마커가 **없으면** (타겟 프로젝트): `agent-ops/rules/project/rules.md`의 프로젝트 스킬 라우터 섹션에 라우팅 항목 추가
|
|
- 기존 공통 스킬을 수정해 trigger가 달라졌다면 새 skill을 만들지 말고 `agent-ops/skills/common/router.md`의 기존 행을 갱신한다
|
|
- 이 skill이 속할 라우팅 축(구조 분석/코드 변경/흐름 추적 등)을 판단한다
|
|
- 기존 라우팅 구조를 깨지 않는다
|
|
|
|
5. **결과 보고**
|
|
- 생성한 파일 경로
|
|
- 라우팅 항목을 추가한 파일과 내용
|
|
- 이 skill이 다루지 않는 범위(필요 시)
|
|
|
|
## 출력 형식
|
|
|
|
```
|
|
## 생성 완료
|
|
|
|
- SKILL 경로: agent-ops/skills/{common|project}/<skill-name>/SKILL.md
|
|
- 라우팅 추가: <대상 파일> → <라우팅 축> → <skill-name>
|
|
|
|
## 주의사항 (해당 시)
|
|
- <이 skill이 다루지 않는 범위 또는 주의할 점>
|
|
```
|
|
|
|
## 실행 결과 검증
|
|
|
|
- [ ] `agent-ops/skills/{common|project}/<skill-name>/SKILL.md` 파일이 생성되었는가
|
|
- [ ] 생성된 파일이 `skill-template.md`의 필수 섹션(목적, 언제 호출할지, 실행 절차, 실행 결과 검증, 출력 형식, 금지 사항)을 포함하는가
|
|
- [ ] frontmatter에 name, description이 올바르게 기재되었는가
|
|
- [ ] agent-ops 내부 스킬이면 version 등 로컬 관례를 따르고, Codex 설치형 스킬이면 시스템 `skill-creator` frontmatter 규칙을 따르는가
|
|
- [ ] 라우팅 대상 파일에 해당 스킬의 라우팅 항목이 추가되었는가
|
|
- 검증 실패 시: 누락된 섹션 또는 라우팅 항목을 사용자에게 알리고 해당 부분만 보완한다
|
|
|
|
## 금지 사항
|
|
|
|
- 이미 존재하는 skill 을 덮어쓰지 않는다
|
|
- 프로젝트 특화 경로(예: `app/screens/`)를 skill 본문에 하드코딩하지 않는다
|
|
- skill 생성과 무관한 코드 파일을 수정하지 않는다
|
|
- 라우팅 대상 파일의 기존 항목을 삭제하거나 재정렬하지 않는다
|
|
- 하나의 skill 에 여러 독립적인 책임을 묶지 않는다
|