ai-ops-cli 0.2.6 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ko.md +195 -0
- package/README.md +126 -155
- package/data/context-layer/AGENTS.md +30 -0
- package/data/context-layer/CLAUDE.md +14 -0
- package/data/context-layer/GEMINI.md +14 -0
- package/data/context-layer/docs/agent/checks/impact-checklist.md +16 -0
- package/data/context-layer/docs/agent/checks/review-checklist.md +17 -0
- package/data/context-layer/docs/agent/maps/codebase-map.md +16 -0
- package/data/context-layer/docs/agent/rules/00-agent-baseline.md +47 -0
- package/data/context-layer/docs/agent/rules/doc-update-rules.md +22 -0
- package/data/context-layer/docs/agent/rules/routing-rules.md +22 -0
- package/data/context-layer/docs/agent/rules/stop-rules.md +20 -0
- package/data/context-layer/docs/agent/workflow.md +25 -0
- package/data/context-layer/docs/business/business-rules.md +16 -0
- package/data/context-layer/docs/docs-status.md +14 -0
- package/data/packs/pack-registry.json +8 -0
- package/data/packs/spec-lifecycle/docs/specs/README.ko.md +28 -0
- package/data/packs/spec-lifecycle/docs/specs/README.md +28 -0
- package/data/packs/spec-lifecycle/docs/specs/baseline/.gitkeep +1 -0
- package/data/packs/spec-lifecycle/docs/specs/initial-build/.gitkeep +1 -0
- package/data/skills/README.ko.md +184 -0
- package/data/skills/README.md +29 -2
- package/data/skills/skill-registry.json +64 -16
- package/data/skills/task-skills/doc-impact-reviewer/SKILL.md +101 -0
- package/data/skills/task-skills/doc-impact-reviewer/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-baseline-sync/SKILL.md +134 -0
- package/data/skills/task-skills/spec-baseline-sync/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-baseline-sync/references/template.md +14 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/SKILL.md +78 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-01-idea-to-brief/references/template.md +36 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/SKILL.md +91 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-02-brief-to-technical-context/references/template.md +58 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/SKILL.md +85 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-03-brief-to-product-spec/references/template.md +41 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/SKILL.md +93 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/references/stitch-prompt-template.md +41 -0
- package/data/skills/task-skills/spec-product-04-product-spec-to-ui-spec/references/ui-spec-template.md +39 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/SKILL.md +157 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/references/stitch-html-review.md +25 -0
- package/data/skills/task-skills/spec-product-05-spec-to-work-packets/references/work-packet-template.md +67 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/SKILL.md +102 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/agents/openai.yaml +6 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/references/checklist.md +36 -0
- package/data/skills/task-skills/spec-shared-glossary-sync/references/template.md +58 -0
- package/data/subagents/README.ko.md +49 -0
- package/data/subagents/README.md +49 -0
- package/data/subagents/security-gate/PROMPT.md +18 -0
- package/data/subagents/security-gate/claude.frontmatter.yaml +8 -0
- package/data/subagents/security-gate/codex.frontmatter.toml +6 -0
- package/data/subagents/security-gate/gemini.frontmatter.yaml +6 -0
- package/data/subagents/security-reviewer/PROMPT.md +17 -0
- package/data/subagents/security-reviewer/claude.frontmatter.yaml +9 -0
- package/data/subagents/security-reviewer/codex.frontmatter.toml +6 -0
- package/data/subagents/security-reviewer/gemini.frontmatter.yaml +6 -0
- package/data/subagents/subagent-registry.json +14 -0
- package/dist/bin/index.js +2103 -1713
- package/dist/bin/index.js.map +1 -1
- package/package.json +2 -2
- package/data/presets.yaml +0 -35
- package/data/rules/code-philosophy.yaml +0 -35
- package/data/rules/communication.yaml +0 -12
- package/data/rules/naming-convention.yaml +0 -10
- package/data/rules/plan-mode.yaml +0 -32
- package/data/rules/role-persona.yaml +0 -14
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Reserved
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: project
|
|
5
|
+
read_when:
|
|
6
|
+
- codebase_navigation
|
|
7
|
+
update_when:
|
|
8
|
+
- architecture_changes
|
|
9
|
+
---
|
|
10
|
+
# Codebase Map
|
|
11
|
+
|
|
12
|
+
이 문서는 Reserved 상태입니다. 프로젝트가 실제 구조를 보강하기 전까지 현재 판단 근거로 사용하지 마세요.
|
|
13
|
+
|
|
14
|
+
## 주요 영역
|
|
15
|
+
|
|
16
|
+
- TBD
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Active
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: ai-ops
|
|
5
|
+
read_when:
|
|
6
|
+
- before_task
|
|
7
|
+
update_when:
|
|
8
|
+
- baseline_rule_changes
|
|
9
|
+
---
|
|
10
|
+
# Agent Baseline Rules
|
|
11
|
+
|
|
12
|
+
이 문서는 모든 작업 전에 먼저 적용할 기본 협업 규칙이다. 세부 routing, workflow, stop rule보다 앞서 읽고, 프로젝트별 Active 문서가 더 구체적인 판단 근거를 제공하면 그 문서를 우선한다.
|
|
13
|
+
|
|
14
|
+
## 협업 태도
|
|
15
|
+
|
|
16
|
+
- 사용자를 초보자로 낮춰 설명하지 않는다.
|
|
17
|
+
- 사용자는 senior developer라고 가정하되, 특정 도메인이나 패턴에 익숙하지 않을 수 있음을 고려한다.
|
|
18
|
+
- 패턴, 라이브러리, 아키텍처를 고를 때는 중요한 선택 이유를 짧게 설명한다.
|
|
19
|
+
- 아키텍처, edge case, 성능, 유지보수성을 우선해 판단한다.
|
|
20
|
+
|
|
21
|
+
## 커뮤니케이션
|
|
22
|
+
|
|
23
|
+
- "Certainly", "Of course", "Here is the code", "I understand", "Great question" 같은 filler phrase로 시작하지 않는다.
|
|
24
|
+
- 사용자가 명시적으로 영어를 요청하지 않는 한, 코드와 inline code comment를 제외한 응답은 한국어로 작성한다.
|
|
25
|
+
- 불확실한 내용은 단정하지 않고 확인 가능한 근거, 추론, 남은 리스크를 구분한다.
|
|
26
|
+
|
|
27
|
+
## 코드 철학
|
|
28
|
+
|
|
29
|
+
- clever하거나 opaque한 코드보다 의도가 드러나는 명시적인 코드를 우선한다.
|
|
30
|
+
- Rule of Three 이전에는 공통 abstraction을 서두르지 않는다.
|
|
31
|
+
- core business logic에는 side effect를 섞지 않고, functional core / imperative shell 구조를 선호한다.
|
|
32
|
+
- 상태 변경은 가능한 한 immutable update로 처리한다.
|
|
33
|
+
- 복잡한 business rule은 실패하는 테스트를 먼저 두고 구현한다.
|
|
34
|
+
- 파일 내부 선언은 types, constants, validators/guards, helper functions, main logic/exports 순서로 배치한다.
|
|
35
|
+
- 한 파일에 의미가 다른 그룹이 둘 이상 있으면 `// ----- types -----` 같은 section divider comment로 경계를 표시한다.
|
|
36
|
+
|
|
37
|
+
## 네이밍
|
|
38
|
+
|
|
39
|
+
- directory name은 kebab-case를 사용한다.
|
|
40
|
+
- 새 파일과 문서 이름은 역할이 드러나는 구체적인 이름을 사용한다.
|
|
41
|
+
|
|
42
|
+
## 계획과 다이어그램
|
|
43
|
+
|
|
44
|
+
- flow, sequence, state, structure를 설명할 때 긴 bullet list보다 Mermaid diagram을 우선 검토한다.
|
|
45
|
+
- UX/control flow와 decision tree는 `flowchart`, request/response와 service interaction은 `sequenceDiagram`, entity/schema relationship은 `erDiagram`, lifecycle/state transition은 `stateDiagram-v2`를 사용한다.
|
|
46
|
+
- Mermaid diagram은 fenced `mermaid` code block으로 작성한다.
|
|
47
|
+
- plan 문서를 저장할 때는 `YYYYMMDD_<topic>.md` 형식을 사용하고, topic은 kebab-case로 작성한다.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Active
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: ai-ops
|
|
5
|
+
read_when:
|
|
6
|
+
- document_change
|
|
7
|
+
update_when:
|
|
8
|
+
- document_policy_changes
|
|
9
|
+
---
|
|
10
|
+
# Document Update Rules
|
|
11
|
+
|
|
12
|
+
## 갱신 기준
|
|
13
|
+
|
|
14
|
+
- 구현 동작이 바뀌면 해당 동작을 설명하는 `Active` 문서를 갱신한다.
|
|
15
|
+
- 문서 상태/frontmatter 관리는 모든 Markdown이 아니라 context-layer와 `docs/docs-status.md`에 등록된 operating-layer 문서를 기준으로 한다.
|
|
16
|
+
- `Reserved` 문서를 실제 판단 근거로 승격하려면 frontmatter와 `docs/docs-status.md`를 함께 갱신한다.
|
|
17
|
+
- 오래된 문서는 삭제보다 `Archived` 전환을 우선 검토한다.
|
|
18
|
+
|
|
19
|
+
## 금지
|
|
20
|
+
|
|
21
|
+
- project-owned create-only 문서를 자동 update로 덮어쓰지 않는다.
|
|
22
|
+
- 도구 adapter에 canonical 운영 규칙을 중복 작성하지 않는다.
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Active
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: ai-ops
|
|
5
|
+
read_when:
|
|
6
|
+
- before_task
|
|
7
|
+
update_when:
|
|
8
|
+
- routing_changes
|
|
9
|
+
---
|
|
10
|
+
# Routing Rules
|
|
11
|
+
|
|
12
|
+
## 판단 순서
|
|
13
|
+
|
|
14
|
+
1. 요청이 코드 변경인지, 리뷰인지, 문서 정리인지 구분한다.
|
|
15
|
+
2. repo 내부의 계획 문서가 지정되면 실제 diff와 직접 비교한다.
|
|
16
|
+
3. 외부 사실이나 최신 정보가 필요한 경우 현재 출처를 확인한다.
|
|
17
|
+
4. 프로젝트 문서가 `Reserved`이면 현재 사실로 인용하지 않는다.
|
|
18
|
+
|
|
19
|
+
## 범위
|
|
20
|
+
|
|
21
|
+
- project scope: `AGENTS.md`, `GEMINI.md`, `CLAUDE.md`, `docs/agent/*`, `docs/business/*`, `docs/docs-status.md`, `.ai-ops/*`
|
|
22
|
+
- global scope: skills, subagents, tool-specific reusable assets
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Active
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: ai-ops
|
|
5
|
+
read_when:
|
|
6
|
+
- before_destructive_action
|
|
7
|
+
- before_external_side_effect
|
|
8
|
+
update_when:
|
|
9
|
+
- safety_policy_changes
|
|
10
|
+
---
|
|
11
|
+
# Stop Rules
|
|
12
|
+
|
|
13
|
+
## 멈추고 확인할 때
|
|
14
|
+
|
|
15
|
+
- 삭제, reset, 강제 overwrite처럼 복구가 어려운 작업이 필요한 경우
|
|
16
|
+
- credential, 개인 정보, 운영 데이터가 노출될 수 있는 경우
|
|
17
|
+
- 계획 문서와 실제 코드 구조가 충돌해 임의 판단이 위험한 경우
|
|
18
|
+
- 검증 실패 원인이 환경 문제인지 구현 문제인지 구분되지 않는 경우
|
|
19
|
+
|
|
20
|
+
확인이 필요한 지점은 짧게 설명하고, 안전한 대안이 있으면 함께 제시한다.
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Active
|
|
3
|
+
layer: agent
|
|
4
|
+
owner: ai-ops
|
|
5
|
+
read_when:
|
|
6
|
+
- before_task
|
|
7
|
+
update_when:
|
|
8
|
+
- workflow_changes
|
|
9
|
+
---
|
|
10
|
+
# Workflow
|
|
11
|
+
|
|
12
|
+
## 기본 흐름
|
|
13
|
+
|
|
14
|
+
1. 요청 범위와 현재 작업 디렉터리를 확인한다.
|
|
15
|
+
2. 관련 문서의 `status`를 확인하고 `Active` 문서만 판단 근거로 사용한다.
|
|
16
|
+
3. 코드 변경 전 현재 diff를 확인한다.
|
|
17
|
+
4. 변경은 가능한 작은 단위로 적용한다.
|
|
18
|
+
5. 변경 범위에 맞는 검증을 실행한다.
|
|
19
|
+
6. 결과, 검증, 남은 리스크를 짧게 보고한다.
|
|
20
|
+
|
|
21
|
+
## 보존 원칙
|
|
22
|
+
|
|
23
|
+
- 사용자 변경으로 보이는 diff는 되돌리지 않는다.
|
|
24
|
+
- project-owned 문서는 CLI update가 덮어쓰지 않는다.
|
|
25
|
+
- global skills와 subagents는 project operating layer uninstall 대상이 아니다.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Reserved
|
|
3
|
+
layer: business
|
|
4
|
+
owner: project
|
|
5
|
+
read_when:
|
|
6
|
+
- business_rule_check
|
|
7
|
+
update_when:
|
|
8
|
+
- business_rule_changes
|
|
9
|
+
---
|
|
10
|
+
# Business Rules
|
|
11
|
+
|
|
12
|
+
이 문서는 Reserved 상태입니다. 프로젝트가 실제 규칙을 보강하기 전까지 현재 판단 근거로 사용하지 마세요.
|
|
13
|
+
|
|
14
|
+
## 규칙
|
|
15
|
+
|
|
16
|
+
- TBD
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Reserved
|
|
3
|
+
layer: spec
|
|
4
|
+
owner: project
|
|
5
|
+
read_when:
|
|
6
|
+
- spec_lifecycle
|
|
7
|
+
update_when:
|
|
8
|
+
- spec_lifecycle_changes
|
|
9
|
+
---
|
|
10
|
+
# Specs
|
|
11
|
+
|
|
12
|
+
[English](./README.md)
|
|
13
|
+
|
|
14
|
+
이 문서는 Reserved 상태입니다. 프로젝트가 실제 spec lifecycle 문서를 보강하기 전까지 현재 판단 근거로 사용하지 마세요.
|
|
15
|
+
|
|
16
|
+
## 디렉토리 구조
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
docs/specs/
|
|
20
|
+
├── baseline/
|
|
21
|
+
└── initial-build/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## 기준
|
|
25
|
+
|
|
26
|
+
- `baseline/`은 승인된 제품/기술/UI 기준 문서를 둡니다.
|
|
27
|
+
- `initial-build/`는 초기 구현 work packet과 관련 산출물을 둡니다.
|
|
28
|
+
- 실제 판단 근거로 쓰기 전에 각 문서의 frontmatter와 `docs/docs-status.md` 상태를 갱신합니다.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
---
|
|
2
|
+
status: Reserved
|
|
3
|
+
layer: spec
|
|
4
|
+
owner: project
|
|
5
|
+
read_when:
|
|
6
|
+
- spec_lifecycle
|
|
7
|
+
update_when:
|
|
8
|
+
- spec_lifecycle_changes
|
|
9
|
+
---
|
|
10
|
+
# Specs
|
|
11
|
+
|
|
12
|
+
[Korean](./README.ko.md)
|
|
13
|
+
|
|
14
|
+
This document is Reserved. Do not use this document as current decision-making evidence until the project fills in real spec lifecycle documents.
|
|
15
|
+
|
|
16
|
+
## Directory Structure
|
|
17
|
+
|
|
18
|
+
```text
|
|
19
|
+
docs/specs/
|
|
20
|
+
├── baseline/
|
|
21
|
+
└── initial-build/
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
|
|
26
|
+
- `baseline/` contains approved product, technical, and UI baseline documents.
|
|
27
|
+
- `initial-build/` contains initial implementation work packets and related artifacts.
|
|
28
|
+
- Before using any document as decision-making evidence, update its frontmatter and its status in `docs/docs-status.md`.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Skill 작성 가이드
|
|
2
|
+
|
|
3
|
+
[English](./README.md)
|
|
4
|
+
|
|
5
|
+
이 디렉터리는 설치 가능한 agent skill의 source of truth입니다.
|
|
6
|
+
|
|
7
|
+
## 용어
|
|
8
|
+
|
|
9
|
+
### Reference Skill
|
|
10
|
+
|
|
11
|
+
`reference skill`은 lazy-load되는 지식 pack입니다.
|
|
12
|
+
|
|
13
|
+
- 정식 상세 내용은 `references/reference.md`에 둡니다.
|
|
14
|
+
- `SKILL.md`는 얇게 유지하고, agent가 언제 skill을 써야 하는지와 무엇을 먼저 읽어야 하는지만 안내합니다.
|
|
15
|
+
- 표준, stack 가이드, 큰 도메인 reference에 사용합니다.
|
|
16
|
+
|
|
17
|
+
### Task Skill
|
|
18
|
+
|
|
19
|
+
`task skill`은 절차형 workflow입니다.
|
|
20
|
+
|
|
21
|
+
- 정식 절차는 `SKILL.md`에 둡니다.
|
|
22
|
+
- `references/`는 선택적인 보조 자료입니다.
|
|
23
|
+
- 반복 가능한 점검, 작업, guided workflow에 사용합니다.
|
|
24
|
+
|
|
25
|
+
### Task Skill 사용
|
|
26
|
+
|
|
27
|
+
반복되는 운영 절차는 task skill로 둡니다. 예를 들어 `doc-impact-reviewer`는 변경 완료 또는 커밋 직전에 diff를 확인하고, 갱신 후보 문서를 `required / recommended / not needed`로 제안한 뒤 사용자 승인 후 승인된 문서만 수정합니다.
|
|
28
|
+
|
|
29
|
+
승인이 필요한 task skill은 자동 호출을 막습니다.
|
|
30
|
+
|
|
31
|
+
- Codex: `agents/openai.yaml`에 `policy.allow_implicit_invocation: false`를 둡니다.
|
|
32
|
+
- Claude Code: `SKILL.md` frontmatter에 `disable-model-invocation: true`를 둡니다.
|
|
33
|
+
- Gemini CLI: skill-level explicit-only flag가 없으므로 본문에 명시 호출 전용 규칙을 적습니다.
|
|
34
|
+
|
|
35
|
+
설치 예시:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ai-ops skill install doc-impact-reviewer --tool codex
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## 디렉터리 구조
|
|
42
|
+
|
|
43
|
+
```text
|
|
44
|
+
apps/cli/data/skills/
|
|
45
|
+
README.md
|
|
46
|
+
README.ko.md
|
|
47
|
+
skill-registry.json
|
|
48
|
+
reference-skills/
|
|
49
|
+
<skill-name>/
|
|
50
|
+
SKILL.md
|
|
51
|
+
agents/ # optional
|
|
52
|
+
references/ # required for reference skills
|
|
53
|
+
assets/ # optional
|
|
54
|
+
scripts/ # optional
|
|
55
|
+
task-skills/
|
|
56
|
+
<skill-name>/
|
|
57
|
+
SKILL.md
|
|
58
|
+
references/ # optional
|
|
59
|
+
assets/ # optional
|
|
60
|
+
scripts/ # optional
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## 작성 규칙
|
|
64
|
+
|
|
65
|
+
1. 디렉터리 이름은 frontmatter `name`과 정확히 일치해야 합니다.
|
|
66
|
+
2. `SKILL.md`는 YAML frontmatter로 시작해야 합니다.
|
|
67
|
+
3. `kind`, `supported_tools`, preset grouping, `source_path`는 `skill-registry.json`에 둡니다.
|
|
68
|
+
4. `reference` skill은 `reference-skills/` 아래에 두고 `references/reference.md`를 포함해야 합니다.
|
|
69
|
+
5. `task` skill은 `task-skills/` 아래에 두고 실행 절차를 `SKILL.md`에 둡니다.
|
|
70
|
+
6. 같은 상세 내용을 `SKILL.md`와 `references/`에 중복하지 않습니다.
|
|
71
|
+
7. 도구별 metadata는 skill source 안에 직접 작성하고 CLI가 그대로 복사합니다.
|
|
72
|
+
8. Codex와 Gemini는 `.agents/skills/<skill-name>`에 설치합니다. Claude는 `.claude/skills/<skill-name>`에 설치합니다.
|
|
73
|
+
9. CLI는 skill 디렉터리 트리 전체를 그대로 복사하므로 `agents/`, `references/`, `assets/`, `scripts/` 아래 파일은 변경 없이 설치됩니다.
|
|
74
|
+
|
|
75
|
+
## Frontmatter 필드
|
|
76
|
+
|
|
77
|
+
`SKILL.md` frontmatter는 이제 agent-facing 용도입니다. CLI는 아래 필수 필드를 검증하고, 추가 도구별 frontmatter 필드는 무시합니다.
|
|
78
|
+
|
|
79
|
+
| 필드 | 필수 | 예시 | 의미 |
|
|
80
|
+
| --- | --- | --- | --- |
|
|
81
|
+
| `name` | 예 | `graphql-contract` | 고유 skill 이름과 설치 디렉터리 key |
|
|
82
|
+
| `description` | 예 | `Use when changing GraphQL schema contracts.` | discovery/autotrigger 요약 |
|
|
83
|
+
|
|
84
|
+
## Registry 필드
|
|
85
|
+
|
|
86
|
+
`skill-registry.json`은 install/catalog SSOT입니다.
|
|
87
|
+
|
|
88
|
+
| 필드 | 필수 | 예시 | 의미 |
|
|
89
|
+
| --- | --- | --- | --- |
|
|
90
|
+
| `id` | 예 | `graphql-contract` | canonical skill id |
|
|
91
|
+
| `kind` | 예 | `reference` / `task` | skill category |
|
|
92
|
+
| `supported_tools` | 예 | `["claude-code", "codex", "gemini"]` | 설치 가능한 도구 |
|
|
93
|
+
| `groups` | 예 | `["frontend-web"]` | 표시/discovery grouping |
|
|
94
|
+
| `included_in_presets` | 예 | `["frontend-web", "backend-ts"]` | `ai-ops init`에서 이 skill을 노출하는 preset |
|
|
95
|
+
| `source_path` | 예 | `reference-skills/graphql-contract` | skill source가 있는 상대 디렉터리 |
|
|
96
|
+
|
|
97
|
+
## Content 배치
|
|
98
|
+
|
|
99
|
+
### Reference Skill
|
|
100
|
+
|
|
101
|
+
- `SKILL.md`: 짧은 routing note
|
|
102
|
+
- `references/reference.md`: 전체 상세 내용
|
|
103
|
+
|
|
104
|
+
### Task Skill
|
|
105
|
+
|
|
106
|
+
- `SKILL.md`: 실행 가능한 전체 절차
|
|
107
|
+
- `references/`: 선택적인 배경 자료
|
|
108
|
+
- `scripts/`: 선택적인 실행 helper
|
|
109
|
+
|
|
110
|
+
## 도구별 호출 제어
|
|
111
|
+
|
|
112
|
+
skill을 explicit-only로 만들어야 하면 skill 작성자가 도구별 metadata를 직접 추가해야 합니다.
|
|
113
|
+
|
|
114
|
+
### Codex
|
|
115
|
+
|
|
116
|
+
`agents/openai.yaml`을 직접 만듭니다.
|
|
117
|
+
|
|
118
|
+
```yaml
|
|
119
|
+
allow_implicit_invocation: false
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
- Codex가 description만 보고 skill을 자동 호출하면 안 될 때 사용합니다.
|
|
123
|
+
- CLI가 전체 디렉터리 트리를 복사하므로 `agents/openai.yaml`은 그대로 설치됩니다.
|
|
124
|
+
|
|
125
|
+
### Claude Code
|
|
126
|
+
|
|
127
|
+
`SKILL.md` frontmatter에 `disable-model-invocation: true`를 직접 추가합니다.
|
|
128
|
+
|
|
129
|
+
```yaml
|
|
130
|
+
---
|
|
131
|
+
name: deploy-script
|
|
132
|
+
description: Runs the deployment workflow.
|
|
133
|
+
disable-model-invocation: true
|
|
134
|
+
---
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
- Claude가 명시적인 `/skill-name` 호출로만 skill을 로드해야 할 때 사용합니다.
|
|
138
|
+
- CLI는 이 추가 frontmatter 필드를 보존하고 자동 생성하지 않습니다.
|
|
139
|
+
|
|
140
|
+
### Gemini CLI
|
|
141
|
+
|
|
142
|
+
Gemini CLI는 현재 implicit invocation 비활성화를 위한 skill-level frontmatter flag를 제공하지 않습니다.
|
|
143
|
+
|
|
144
|
+
- Gemini에서 explicit-only 동작이 필요하면 custom command를 사용합니다.
|
|
145
|
+
- 가짜 Gemini 전용 필드를 `SKILL.md`에 추가하지 마세요. Gemini가 해석하지 않습니다.
|
|
146
|
+
|
|
147
|
+
## 예시
|
|
148
|
+
|
|
149
|
+
### Reference Skill Skeleton
|
|
150
|
+
|
|
151
|
+
```text
|
|
152
|
+
reference-skills/graphql-contract/
|
|
153
|
+
SKILL.md
|
|
154
|
+
agents/
|
|
155
|
+
openai.yaml # optional
|
|
156
|
+
references/
|
|
157
|
+
reference.md
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
### Task Skill Skeleton
|
|
161
|
+
|
|
162
|
+
```text
|
|
163
|
+
task-skills/skill-load-check/
|
|
164
|
+
SKILL.md
|
|
165
|
+
scripts/
|
|
166
|
+
loaded.js
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
## 임시 검증 Skill
|
|
170
|
+
|
|
171
|
+
`skill-load-check`는 임시 검증 skill 예시입니다.
|
|
172
|
+
|
|
173
|
+
- description은 좁고 test-focused하게 유지합니다.
|
|
174
|
+
- 본문은 짧고 절차형으로 유지합니다.
|
|
175
|
+
- install/load workflow가 검증된 뒤에는 나중에 삭제해도 됩니다.
|
|
176
|
+
|
|
177
|
+
## 운영 Task Skill
|
|
178
|
+
|
|
179
|
+
`doc-impact-reviewer`는 운영 문서 영향도를 수동으로 검토하는 task skill입니다.
|
|
180
|
+
|
|
181
|
+
- git status, diff, 변경 파일, 관련 operating-layer 문서를 읽습니다.
|
|
182
|
+
- 편집 전에 문서 후보와 리스크를 보고합니다.
|
|
183
|
+
- 사용자 확인 전에는 편집하지 않습니다.
|
|
184
|
+
- staging, commit, hook 설치를 직접 수행하지 않습니다.
|
package/data/skills/README.md
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# Skill Authoring Guide
|
|
2
2
|
|
|
3
|
+
[Korean](./README.ko.md)
|
|
4
|
+
|
|
3
5
|
This directory is the source of truth for installable agent skills.
|
|
4
6
|
|
|
5
7
|
## Terms
|
|
@@ -20,11 +22,28 @@ A `task skill` is a procedural workflow.
|
|
|
20
22
|
- `references/` is optional supporting material only
|
|
21
23
|
- Use it for repeatable checks, actions, and guided workflows
|
|
22
24
|
|
|
25
|
+
### Task Skill Usage
|
|
26
|
+
|
|
27
|
+
Keep repeatable operating procedures as task skills. For example, `doc-impact-reviewer` checks the diff when work is finished or just before commit, classifies document update candidates as `required / recommended / not needed`, and edits only the documents the user approves.
|
|
28
|
+
|
|
29
|
+
Disable automatic invocation for task skills that require explicit approval.
|
|
30
|
+
|
|
31
|
+
- Codex: add `policy.allow_implicit_invocation: false` to `agents/openai.yaml`.
|
|
32
|
+
- Claude Code: add `disable-model-invocation: true` to the `SKILL.md` frontmatter.
|
|
33
|
+
- Gemini CLI: there is no skill-level explicit-only flag, so write the explicit-invocation rule in the skill body.
|
|
34
|
+
|
|
35
|
+
Install example:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
ai-ops skill install doc-impact-reviewer --tool codex
|
|
39
|
+
```
|
|
40
|
+
|
|
23
41
|
## Directory Shape
|
|
24
42
|
|
|
25
43
|
```text
|
|
26
44
|
apps/cli/data/skills/
|
|
27
45
|
README.md
|
|
46
|
+
README.ko.md
|
|
28
47
|
skill-registry.json
|
|
29
48
|
reference-skills/
|
|
30
49
|
<skill-name>/
|
|
@@ -45,7 +64,7 @@ apps/cli/data/skills/
|
|
|
45
64
|
|
|
46
65
|
1. Directory name must exactly match frontmatter `name`.
|
|
47
66
|
2. `SKILL.md` must start with YAML frontmatter.
|
|
48
|
-
3. `kind`, `supported_tools`,
|
|
67
|
+
3. `kind`, `supported_tools`, preset grouping, and `source_path` live in `skill-registry.json`.
|
|
49
68
|
4. A `reference` skill must live under `reference-skills/` and include `references/reference.md`.
|
|
50
69
|
5. A `task` skill must live under `task-skills/` and keep its executable procedure in `SKILL.md`.
|
|
51
70
|
6. Do not duplicate the same detailed content across `SKILL.md` and `references/`.
|
|
@@ -71,7 +90,6 @@ apps/cli/data/skills/
|
|
|
71
90
|
| `id` | Yes | `graphql-contract` | Canonical skill id |
|
|
72
91
|
| `kind` | Yes | `reference` / `task` | Skill category |
|
|
73
92
|
| `supported_tools` | Yes | `["claude-code", "codex", "gemini"]` | Where the skill may be installed |
|
|
74
|
-
| `install_scopes` | Yes | `["project", "user"]` | Allowed install scopes |
|
|
75
93
|
| `groups` | Yes | `["frontend-web"]` | Display/discovery grouping |
|
|
76
94
|
| `included_in_presets` | Yes | `["frontend-web", "backend-ts"]` | Presets that surface this skill in `ai-ops init` |
|
|
77
95
|
| `source_path` | Yes | `reference-skills/graphql-contract` | Relative directory that contains the skill source |
|
|
@@ -155,3 +173,12 @@ task-skills/skill-load-check/
|
|
|
155
173
|
- Keep the description narrow and test-focused
|
|
156
174
|
- Keep the body short and procedural
|
|
157
175
|
- It is acceptable to delete this skill later once the install/load workflow is proven
|
|
176
|
+
|
|
177
|
+
## Operating Task Skills
|
|
178
|
+
|
|
179
|
+
`doc-impact-reviewer` is a task skill for manually reviewing operating-document impact.
|
|
180
|
+
|
|
181
|
+
- It reads git status, diffs, changed files, and related operating-layer documents.
|
|
182
|
+
- It reports document candidates and risk before editing.
|
|
183
|
+
- It does not edit before user confirmation.
|
|
184
|
+
- It does not stage, commit, or install hooks by itself.
|