ai-ops-cli 0.2.6 → 1.0.1
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 +170 -0
- package/README.md +109 -163
- package/data/context-layer/AGENTS.md +29 -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/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 +26 -0
- package/data/packs/spec-lifecycle/docs/specs/README.md +26 -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 +182 -0
- package/data/skills/README.md +27 -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 +47 -0
- package/data/subagents/README.md +47 -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 +2101 -1712
- package/dist/bin/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# 01_glossary.md Template
|
|
2
|
+
|
|
3
|
+
```md
|
|
4
|
+
# 01 Glossary
|
|
5
|
+
|
|
6
|
+
용어 표기 원칙:
|
|
7
|
+
|
|
8
|
+
- `용어` 칼럼은 한국어 우선이지만, 업계 표준 영어가 더 명확하면 영어 원형을 그대로 쓴다.
|
|
9
|
+
- `소스 오브 트루스` 같은 어색한 음역 대신 `source of truth` 또는 한국어 설명형 표현을 사용한다.
|
|
10
|
+
|
|
11
|
+
## 핵심 용어
|
|
12
|
+
|
|
13
|
+
| 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
|
|
14
|
+
|---|---|---|---|---|---|---|
|
|
15
|
+
| 용어 1 | `termName` | 짧은 정의 | brief / spec / ui | 별칭 1 | 금지 표현 1 | `10_product-spec.md` |
|
|
16
|
+
|
|
17
|
+
## 엔티티 용어
|
|
18
|
+
|
|
19
|
+
| 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
|
|
20
|
+
|---|---|---|---|---|---|---|
|
|
21
|
+
| 엔티티 1 | `entityName` | 짧은 정의 | spec / packet | 별칭 1 | 금지 표현 1 | `10_product-spec.md` |
|
|
22
|
+
|
|
23
|
+
## 상태 용어
|
|
24
|
+
|
|
25
|
+
| 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
|
|
26
|
+
|---|---|---|---|---|---|---|
|
|
27
|
+
| 상태 1 | `draft` | 짧은 정의 | spec / ui / packet | 별칭 1 | 금지 표현 1 | `10_product-spec.md` |
|
|
28
|
+
|
|
29
|
+
## UI 용어
|
|
30
|
+
|
|
31
|
+
| 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
|
|
32
|
+
|---|---|---|---|---|---|---|
|
|
33
|
+
| UI 용어 1 | `labelName` | 짧은 정의 | ui / packet | 별칭 1 | 금지 표현 1 | `20_ui-spec.md` |
|
|
34
|
+
|
|
35
|
+
## 금지하거나 피할 표현
|
|
36
|
+
|
|
37
|
+
| 표현 | 이유 | 대신 사용할 표현 |
|
|
38
|
+
|---|---|---|
|
|
39
|
+
| 표현 1 | 왜 피해야 하는지 | 표준 표현 |
|
|
40
|
+
|
|
41
|
+
## 복잡한 개념 상세 설명
|
|
42
|
+
|
|
43
|
+
### 개념 1
|
|
44
|
+
|
|
45
|
+
- 왜 이 개념이 표만으로는 충분하지 않은지 설명
|
|
46
|
+
- 어떤 문맥에서 다른 표현과 충돌하는지 설명
|
|
47
|
+
|
|
48
|
+
```mermaid
|
|
49
|
+
flowchart TD
|
|
50
|
+
A["개념 A"] --> B["개념 B"]
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 정의 충돌 / 검토 필요
|
|
54
|
+
|
|
55
|
+
| 항목 | 현재 표준 | 충돌 표현 | 판단 메모 |
|
|
56
|
+
|---|---|---|---|
|
|
57
|
+
| 충돌 항목 | 현재 표준 표현 | 새로 발견된 표현 | 판단 메모 |
|
|
58
|
+
```
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Subagent 작성 가이드
|
|
2
|
+
|
|
3
|
+
이 디렉터리는 global agent subagent의 source of truth입니다.
|
|
4
|
+
|
|
5
|
+
## 디렉터리 구조
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
apps/cli/data/subagents/
|
|
9
|
+
README.md
|
|
10
|
+
README.ko.md
|
|
11
|
+
subagent-registry.json
|
|
12
|
+
<subagent-id>/
|
|
13
|
+
PROMPT.md
|
|
14
|
+
claude.frontmatter.yaml
|
|
15
|
+
codex.frontmatter.toml
|
|
16
|
+
gemini.frontmatter.yaml
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## 작성 규칙
|
|
20
|
+
|
|
21
|
+
1. `subagent-registry.json`만 catalog 노출 여부를 결정합니다.
|
|
22
|
+
2. `id`와 세 frontmatter의 `name`은 모두 같은 kebab-case 값이어야 합니다.
|
|
23
|
+
3. `supported_tools`는 `claude-code`, `codex`, `gemini` 중 하나 이상이어야 합니다.
|
|
24
|
+
4. `PROMPT.md`는 도구 공통 developer instruction 본문입니다.
|
|
25
|
+
5. Claude/Gemini는 YAML frontmatter와 `PROMPT.md`를 합친 Markdown 파일로 렌더링됩니다.
|
|
26
|
+
6. Codex는 TOML metadata, `developer_instructions`, `[[skills.config]]`로 렌더링됩니다.
|
|
27
|
+
7. Codex `skill_names`는 최종 파일에 그대로 남기지 않고 `AI_OPS_HOME/.agents/skills/<skill>/SKILL.md` 절대 경로로 변환합니다.
|
|
28
|
+
8. 필요한 skill이 없어도 설치는 실패하지 않습니다. CLI는 경고만 출력합니다.
|
|
29
|
+
9. subagent는 항상 global tool home에만 설치합니다. project repo에는 `.codex/agents`, `.claude/agents`, `.gemini/agents`, `.ai-ops/subagents-manifest.json`을 만들지 않습니다.
|
|
30
|
+
|
|
31
|
+
## Registry 필드
|
|
32
|
+
|
|
33
|
+
| 필드 | 필수 | 예시 | 의미 |
|
|
34
|
+
| --- | --- | --- | --- |
|
|
35
|
+
| `id` | 예 | `security-gate` | canonical subagent id |
|
|
36
|
+
| `supported_tools` | 예 | `["claude-code", "codex", "gemini"]` | 설치 가능한 도구 목록 |
|
|
37
|
+
| `source_path` | 예 | `security-gate` | 상대 source 디렉터리 |
|
|
38
|
+
|
|
39
|
+
## 출력 경로
|
|
40
|
+
|
|
41
|
+
| 도구 | 출력 경로 |
|
|
42
|
+
| --- | --- |
|
|
43
|
+
| Codex | `.codex/agents/<id>.toml` |
|
|
44
|
+
| Claude Code | `.claude/agents/<id>.md` |
|
|
45
|
+
| Gemini CLI | `.gemini/agents/<id>.md` |
|
|
46
|
+
|
|
47
|
+
상태 파일은 `.ai-ops/subagents-manifest.json`입니다. Skill 상태 파일인 `.ai-ops/skills-manifest.json`과 서로 읽거나 쓰지 않습니다.
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
# Subagent Authoring Guide
|
|
2
|
+
|
|
3
|
+
This directory is the source of truth for global agent subagents.
|
|
4
|
+
|
|
5
|
+
## Directory Shape
|
|
6
|
+
|
|
7
|
+
```text
|
|
8
|
+
apps/cli/data/subagents/
|
|
9
|
+
README.md
|
|
10
|
+
README.ko.md
|
|
11
|
+
subagent-registry.json
|
|
12
|
+
<subagent-id>/
|
|
13
|
+
PROMPT.md
|
|
14
|
+
claude.frontmatter.yaml
|
|
15
|
+
codex.frontmatter.toml
|
|
16
|
+
gemini.frontmatter.yaml
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
## Authoring Rules
|
|
20
|
+
|
|
21
|
+
1. Only `subagent-registry.json` decides whether a subagent is exposed in the catalog.
|
|
22
|
+
2. `id` and the `name` in all three frontmatter files must be the same kebab-case value.
|
|
23
|
+
3. `supported_tools` must contain at least one of `claude-code`, `codex`, or `gemini`.
|
|
24
|
+
4. `PROMPT.md` is the shared developer instruction body for all tools.
|
|
25
|
+
5. Claude/Gemini render as Markdown files that combine YAML frontmatter with `PROMPT.md`.
|
|
26
|
+
6. Codex renders as TOML metadata, `developer_instructions`, and `[[skills.config]]`.
|
|
27
|
+
7. Codex `skill_names` are not kept verbatim in the final file; they are converted to absolute `AI_OPS_HOME/.agents/skills/<skill>/SKILL.md` paths.
|
|
28
|
+
8. Installation does not fail when required skills are missing. The CLI only prints a warning.
|
|
29
|
+
9. Subagents are always installed only in the global tool home. The project repo must not receive `.codex/agents`, `.claude/agents`, `.gemini/agents`, or `.ai-ops/subagents-manifest.json`.
|
|
30
|
+
|
|
31
|
+
## Registry Fields
|
|
32
|
+
|
|
33
|
+
| Field | Required | Example | Meaning |
|
|
34
|
+
| ----------------- | -------- | ------------------------------------ | ------------------------- |
|
|
35
|
+
| `id` | Yes | `security-gate` | Canonical subagent id |
|
|
36
|
+
| `supported_tools` | Yes | `["claude-code", "codex", "gemini"]` | Tools that can install it |
|
|
37
|
+
| `source_path` | Yes | `security-gate` | Relative source directory |
|
|
38
|
+
|
|
39
|
+
## Output Paths
|
|
40
|
+
|
|
41
|
+
| Tool | Output path |
|
|
42
|
+
| ----------- | ------------------------- |
|
|
43
|
+
| Codex | `.codex/agents/<id>.toml` |
|
|
44
|
+
| Claude Code | `.claude/agents/<id>.md` |
|
|
45
|
+
| Gemini CLI | `.gemini/agents/<id>.md` |
|
|
46
|
+
|
|
47
|
+
The state file is `.ai-ops/subagents-manifest.json`. It is separate from the skill state file, `.ai-ops/skills-manifest.json`; neither lifecycle reads or writes the other.
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
You are `security-gate`, a lightweight security triage subagent.
|
|
2
|
+
|
|
3
|
+
Your job is to decide whether the provided spec artifact or code change needs deeper security review.
|
|
4
|
+
|
|
5
|
+
Use the loaded `spec-security-01-triage` skill as the source of truth. Prefer compact Korean output and fail closed:
|
|
6
|
+
|
|
7
|
+
- if a clear high-risk trigger exists, require review
|
|
8
|
+
- if the change is obviously low-risk, allow no-review
|
|
9
|
+
- if anything is ambiguous, return `UNSURE` and treat it as review-required
|
|
10
|
+
|
|
11
|
+
Do not perform a full security review unless the parent explicitly asks for one. Focus on triage only:
|
|
12
|
+
|
|
13
|
+
- decide `mode=spec` or `mode=code` from the parent request
|
|
14
|
+
- identify the concrete triggers
|
|
15
|
+
- list required controls briefly
|
|
16
|
+
- say whether follow-up review is required
|
|
17
|
+
|
|
18
|
+
Output should stay short and structured around the triage contract.
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
You are `security-reviewer`, a focused security review subagent.
|
|
2
|
+
|
|
3
|
+
Use the loaded security skills as the source of truth. Start by checking whether the change is truly review-worthy. If the request is explicitly for security review, or if triage is `REVIEW_REQUIRED` or `UNSURE`, perform the full review.
|
|
4
|
+
|
|
5
|
+
Your review must stay findings-first, severity-first, and in Korean.
|
|
6
|
+
|
|
7
|
+
Focus on material security risks such as:
|
|
8
|
+
|
|
9
|
+
- authentication and authorization gaps
|
|
10
|
+
- sensitive data exposure
|
|
11
|
+
- unsafe input handling, injection, or template/rendering issues
|
|
12
|
+
- SSRF or unsafe external fetch behavior
|
|
13
|
+
- file upload/download risks
|
|
14
|
+
- tenant isolation and destructive action safety
|
|
15
|
+
- missing security-relevant validation, auditability, or regression coverage
|
|
16
|
+
|
|
17
|
+
Do not spend time on style or general cleanup unless no material issue exists. If no deep review is needed, say that briefly and explain why.
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
name: security-reviewer
|
|
2
|
+
description: Review a code or contract change for material security risks and missing controls.
|
|
3
|
+
tools: Read, Glob, Grep
|
|
4
|
+
model: sonnet
|
|
5
|
+
permissionMode: plan
|
|
6
|
+
maxTurns: 10
|
|
7
|
+
skills:
|
|
8
|
+
- spec-security-01-triage
|
|
9
|
+
- spec-security-02-review
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
name = "security-reviewer"
|
|
2
|
+
description = "Review a code or contract change for material security risks and missing controls."
|
|
3
|
+
model = "gpt-5.4"
|
|
4
|
+
model_reasoning_effort = "high"
|
|
5
|
+
sandbox_mode = "read-only"
|
|
6
|
+
skill_names = ["spec-security-01-triage", "spec-security-02-review"]
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"subagents": [
|
|
3
|
+
{
|
|
4
|
+
"id": "security-gate",
|
|
5
|
+
"supported_tools": ["claude-code", "codex", "gemini"],
|
|
6
|
+
"source_path": "security-gate"
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
"id": "security-reviewer",
|
|
10
|
+
"supported_tools": ["claude-code", "codex", "gemini"],
|
|
11
|
+
"source_path": "security-reviewer"
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|