ai-ops-cli 1.3.0 → 1.4.0

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.
Files changed (23) hide show
  1. package/README.ko.md +13 -2
  2. package/README.md +13 -2
  3. package/data/context-layer/AGENTS.md +4 -3
  4. package/data/context-layer/docs/agent/rules/00-agent-baseline.md +2 -1
  5. package/data/context-layer/docs/agent/terminology.md +39 -0
  6. package/data/context-layer/docs/business/terminology.md +61 -0
  7. package/data/packs/spec-lifecycle/docs/specs/README.ko.md +1 -0
  8. package/data/packs/spec-lifecycle/docs/specs/README.md +1 -0
  9. package/data/skills/skill-registry.json +2 -2
  10. package/data/skills/task-skills/context-promotion-review/SKILL.md +26 -16
  11. package/data/skills/task-skills/{spec-shared-glossary-sync → project-terminology-sync}/SKILL.md +25 -16
  12. package/data/skills/task-skills/project-terminology-sync/agents/openai.yaml +6 -0
  13. package/data/skills/task-skills/{spec-shared-glossary-sync → project-terminology-sync}/references/checklist.md +5 -5
  14. package/data/skills/task-skills/{spec-shared-glossary-sync → project-terminology-sync}/references/template.md +19 -18
  15. package/data/skills/task-skills/spec-baseline-sync/SKILL.md +4 -4
  16. package/data/skills/task-skills/spec-product-01-idea-to-brief/SKILL.md +3 -3
  17. package/data/skills/task-skills/spec-product-02-brief-to-technical-context/SKILL.md +3 -3
  18. package/data/skills/task-skills/spec-product-03-brief-to-product-spec/SKILL.md +3 -3
  19. package/data/skills/task-skills/spec-product-05-spec-to-work-packets/SKILL.md +3 -3
  20. package/dist/bin/index.js +1210 -316
  21. package/dist/bin/index.js.map +1 -1
  22. package/package.json +1 -1
  23. package/data/skills/task-skills/spec-shared-glossary-sync/agents/openai.yaml +0 -6
package/README.ko.md CHANGED
@@ -44,11 +44,13 @@ GEMINI.md
44
44
  CLAUDE.md
45
45
  docs/agent/rules/00-agent-baseline.md
46
46
  docs/agent/workflow.md
47
+ docs/agent/terminology.md
47
48
  docs/agent/rules/routing-rules.md
48
49
  docs/agent/rules/doc-update-rules.md
49
50
  docs/agent/rules/stop-rules.md
50
51
  docs/agent/checks/impact-checklist.md
51
52
  docs/agent/maps/codebase-map.md
53
+ docs/business/terminology.md
52
54
  docs/business/business-rules.md
53
55
  docs/docs-status.md
54
56
  .ai-ops/manifest.json
@@ -76,7 +78,7 @@ receipts/config/*
76
78
 
77
79
  ### 사용자가 직접 수정해야 하는 파일은 무엇인가요?
78
80
 
79
- 프로젝트 지식은 project-owned 문서에 적습니다. 기본 project-owned 문서는 `docs/agent/maps/codebase-map.md`, `docs/business/business-rules.md`, `docs/docs-status.md`입니다. `docs/agent/maps/codebase-map.md`와 `docs/business/business-rules.md`는 처음에는 Reserved 템플릿이지만, 프로젝트가 실제 내용을 채운 뒤에는 update가 자동으로 덮어쓰지 않습니다.
81
+ 프로젝트 지식은 project-owned 문서에 적습니다. 기본 project-owned 문서는 `docs/agent/maps/codebase-map.md`, `docs/business/terminology.md`, `docs/business/business-rules.md`, `docs/docs-status.md`입니다. `docs/agent/maps/codebase-map.md`, `docs/business/terminology.md`, `docs/business/business-rules.md`는 처음에는 Reserved 템플릿이지만, 프로젝트가 실제 내용을 채운 뒤에는 update가 자동으로 덮어쓰지 않습니다.
80
82
 
81
83
  `docs/docs-status.md`는 project-owned 문서이지만 자유 메모장이 아니라 context-layer registry입니다. 문서 status/frontmatter를 바꿀 때 함께 맞추는 파일이며, update 과정에서 manifest와 실제 문서 frontmatter 기준으로 테이블이 정리될 수 있습니다.
82
84
 
@@ -100,6 +102,7 @@ Commands:
100
102
  skill Manage skill components
101
103
  subagent Manage subagent components
102
104
  pack Manage optional project operating layer packs
105
+ studio Generate read-only Studio snapshot contracts
103
106
  integration Manage user/global runtime integrations
104
107
  context-promotion Manage context promotion review receipts
105
108
  codex-hook Manage Codex hook components
@@ -107,6 +110,14 @@ Commands:
107
110
 
108
111
  `--tool`은 유지합니다. Codex, Claude Code, Gemini CLI가 서로 다른 discovery 위치와 adapter 파일을 사용하기 때문입니다.
109
112
 
113
+ Studio read-only snapshot 명령:
114
+
115
+ ```bash
116
+ ai-ops studio snapshot --json
117
+ ```
118
+
119
+ 이 명령은 ai-ops Studio가 소비할 JSON contract를 출력합니다. Desktop app을 실행하거나 project/runtime 파일을 수정하지 않고 project context layer, audit 상태, user/global runtime 상태만 읽습니다.
120
+
110
121
  Integration lifecycle 명령:
111
122
 
112
123
  ```bash
@@ -176,7 +187,7 @@ ai-ops pack update spec-lifecycle
176
187
  ai-ops pack uninstall spec-lifecycle
177
188
  ```
178
189
 
179
- `spec-lifecycle` pack은 `docs/specs/README.md`, `docs/specs/README.ko.md`, `docs/specs/baseline/.gitkeep`, `docs/specs/initial-build/.gitkeep`를 설치합니다. Markdown 문서만 context-layer와 `docs/docs-status.md` 감사 대상이고, `.gitkeep`은 manifest의 일반 pack file로만 기록됩니다.
190
+ `spec-lifecycle` pack은 `docs/specs/README.md`, `docs/specs/README.ko.md`, `docs/specs/baseline/.gitkeep`, `docs/specs/initial-build/.gitkeep`를 설치합니다. Markdown 문서만 context-layer와 `docs/docs-status.md` 감사 대상이고, `.gitkeep`은 manifest의 일반 pack file로만 기록됩니다. 프로젝트 용어는 계속 `docs/business/terminology.md`에서 중앙 관리합니다.
180
191
 
181
192
  ## Deprecated Old Model
182
193
 
package/README.md CHANGED
@@ -44,11 +44,13 @@ GEMINI.md
44
44
  CLAUDE.md
45
45
  docs/agent/rules/00-agent-baseline.md
46
46
  docs/agent/workflow.md
47
+ docs/agent/terminology.md
47
48
  docs/agent/rules/routing-rules.md
48
49
  docs/agent/rules/doc-update-rules.md
49
50
  docs/agent/rules/stop-rules.md
50
51
  docs/agent/checks/impact-checklist.md
51
52
  docs/agent/maps/codebase-map.md
53
+ docs/business/terminology.md
52
54
  docs/business/business-rules.md
53
55
  docs/docs-status.md
54
56
  .ai-ops/manifest.json
@@ -76,7 +78,7 @@ receipts/config/*
76
78
 
77
79
  ### Which files should users edit directly?
78
80
 
79
- Project knowledge belongs in project-owned documents. The default project-owned documents are `docs/agent/maps/codebase-map.md`, `docs/business/business-rules.md`, and `docs/docs-status.md`. `docs/agent/maps/codebase-map.md` and `docs/business/business-rules.md` start as Reserved templates, but once the project fills them with real content, update does not automatically overwrite them.
81
+ Project knowledge belongs in project-owned documents. The default project-owned documents are `docs/agent/maps/codebase-map.md`, `docs/business/terminology.md`, `docs/business/business-rules.md`, and `docs/docs-status.md`. `docs/agent/maps/codebase-map.md`, `docs/business/terminology.md`, and `docs/business/business-rules.md` start as Reserved templates, but once the project fills them with real content, update does not automatically overwrite them.
80
82
 
81
83
  `docs/docs-status.md` is project-owned, but it is not a free-form notebook. It is the context-layer registry. Update it together with document status/frontmatter changes; the update flow may also normalize its table from the manifest and current document frontmatter.
82
84
 
@@ -100,6 +102,7 @@ Commands:
100
102
  skill Manage skill components
101
103
  subagent Manage subagent components
102
104
  pack Manage optional project operating layer packs
105
+ studio Generate read-only Studio snapshot contracts
103
106
  integration Manage user/global runtime integrations
104
107
  context-promotion Manage context promotion review receipts
105
108
  codex-hook Manage Codex hook components
@@ -107,6 +110,14 @@ Commands:
107
110
 
108
111
  `--tool` remains because Codex, Claude Code, and Gemini CLI use different discovery locations and adapter files.
109
112
 
113
+ Studio read-only snapshot command:
114
+
115
+ ```bash
116
+ ai-ops studio snapshot --json
117
+ ```
118
+
119
+ This emits the JSON contract consumed by ai-ops Studio. It reads the project context layer, audit state, and user/global runtime status without launching the desktop app or mutating project/runtime files.
120
+
110
121
  Integration lifecycle commands:
111
122
 
112
123
  ```bash
@@ -176,7 +187,7 @@ ai-ops pack update spec-lifecycle
176
187
  ai-ops pack uninstall spec-lifecycle
177
188
  ```
178
189
 
179
- The `spec-lifecycle` pack installs `docs/specs/README.md`, `docs/specs/README.ko.md`, `docs/specs/baseline/.gitkeep`, and `docs/specs/initial-build/.gitkeep`. Only Markdown documents are audited by the context-layer and `docs/docs-status.md`; `.gitkeep` files are tracked only as regular pack files in the manifest.
190
+ The `spec-lifecycle` pack installs `docs/specs/README.md`, `docs/specs/README.ko.md`, `docs/specs/baseline/.gitkeep`, and `docs/specs/initial-build/.gitkeep`. Only Markdown documents are audited by the context-layer and `docs/docs-status.md`; `.gitkeep` files are tracked only as regular pack files in the manifest. Project terminology remains centralized in `docs/business/terminology.md`.
180
191
 
181
192
  ## Deprecated Old Model
182
193
 
@@ -16,9 +16,10 @@ update_when:
16
16
  1. `AGENTS.md`
17
17
  2. `docs/agent/rules/00-agent-baseline.md`
18
18
  3. `docs/agent/workflow.md`
19
- 4. 나머지 `docs/agent/rules/*.md`
20
- 5. 변경 영향 확인이 필요하면 `docs/agent/checks/impact-checklist.md`
21
- 6. `docs/docs-status.md`
19
+ 4. `docs/agent/terminology.md`
20
+ 5. 나머지 `docs/agent/rules/*.md`
21
+ 6. 변경 영향 확인이 필요하면 `docs/agent/checks/impact-checklist.md`
22
+ 7. `docs/docs-status.md`
22
23
 
23
24
  ## 문서 신뢰도
24
25
 
@@ -7,6 +7,7 @@ read_when:
7
7
  update_when:
8
8
  - baseline_rule_changes
9
9
  ---
10
+
10
11
  # Agent Baseline Rules
11
12
 
12
13
  이 문서는 모든 작업 전에 먼저 적용할 기본 협업 규칙이다. 세부 routing, workflow, stop rule보다 앞서 읽고, 프로젝트별 Active 문서가 더 구체적인 판단 근거를 제공하면 그 문서를 우선한다.
@@ -44,4 +45,4 @@ update_when:
44
45
  - flow, sequence, state, structure를 설명할 때 긴 bullet list보다 Mermaid diagram을 우선 검토한다.
45
46
  - UX/control flow와 decision tree는 `flowchart`, request/response와 service interaction은 `sequenceDiagram`, entity/schema relationship은 `erDiagram`, lifecycle/state transition은 `stateDiagram-v2`를 사용한다.
46
47
  - Mermaid diagram은 fenced `mermaid` code block으로 작성한다.
47
- - plan 문서를 저장할 때는 `YYYYMMDD_<topic>.md` 형식을 사용하고, topic은 kebab-case로 작성한다.
48
+ - plan 문서를 저장할 때는 `YYYYMMDDHH_<topic>.md` 형식을 사용하고, topic은 kebab-case로 작성한다.
@@ -0,0 +1,39 @@
1
+ ---
2
+ status: Active
3
+ layer: agent
4
+ owner: ai-ops
5
+ read_when:
6
+ - before_task
7
+ - terminology_check
8
+ update_when:
9
+ - operating_layer_changes
10
+ - terminology_changes
11
+ ---
12
+ # Agent Terminology
13
+
14
+ 이 문서는 project operating layer를 해석하는 데 필요한 최소 용어만 정의한다. `ai-ops-cli`의 release, 내부 구현, phase history, integration catalog 구현 세부사항은 사용자 프로젝트의 기본 운영 문서에 포함하지 않는다.
15
+
16
+ ## 핵심 용어
17
+
18
+ | 용어 | 정의 |
19
+ | --- | --- |
20
+ | agent operating layer | 프로젝트 안에서 에이전트가 읽고 따르는 운영 문서와 상태 파일의 묶음이다. |
21
+ | context layer | operating layer 문서의 경로, 상태, 읽기 조건, 갱신 조건, content hash를 추적하는 문맥 index다. |
22
+ | `docs/docs-status.md` | operating layer 문서의 status와 owner를 사람이 확인할 수 있게 기록하는 project-owned registry다. |
23
+ | `.ai-ops/context-layer.json` | 에이전트와 CLI가 문서 계층을 빠르게 탐색하고 audit할 수 있게 생성하는 index 파일이다. |
24
+ | `Active` | 현재 판단 근거로 사용할 수 있는 문서 상태다. |
25
+ | `Reserved` | 자리만 만든 문서 상태다. 프로젝트가 실제 내용을 보강하기 전까지 판단 근거로 사용하지 않는다. |
26
+ | `Draft` | 작성 중인 문서 상태다. 현재 판단 근거로 쓰기 전에 검토가 필요하다. |
27
+ | `Archived` | 과거 기록 상태다. 현재 운영 판단에 사용하지 않는다. |
28
+ | ai-ops managed | CLI 템플릿이 관리하는 문서 또는 문서 영역이다. update 시 현재 CLI 템플릿으로 다시 적용될 수 있다. |
29
+ | project-owned | 프로젝트가 직접 채우고 유지하는 문서다. CLI update는 사용자 내용을 보존해야 한다. |
30
+ | optional pack | 필요한 프로젝트에만 설치하는 추가 문서 묶음이다. 기본 operating layer와 별도의 lifecycle을 가진다. |
31
+ | `read_when` | 에이전트가 이 문서를 읽어야 하는 상황을 나타내는 frontmatter 필드다. |
32
+ | `update_when` | 문서를 갱신해야 하는 변경 상황을 나타내는 frontmatter 필드다. |
33
+
34
+ ## 범위 밖
35
+
36
+ - `ai-ops-cli` release model
37
+ - `ai-ops-cli` 내부 phase history
38
+ - CLI 구현 파일이나 schema의 내부 구조
39
+ - integration catalog의 구현 세부사항
@@ -0,0 +1,61 @@
1
+ ---
2
+ status: Reserved
3
+ layer: business
4
+ owner: project
5
+ read_when:
6
+ - terminology_check
7
+ - business_rule_check
8
+ - spec_lifecycle
9
+ update_when:
10
+ - terminology_changes
11
+ - business_rule_changes
12
+ - spec_lifecycle_changes
13
+ ---
14
+ # Terminology
15
+
16
+ 이 문서는 Reserved 상태입니다. 프로젝트가 실제 용어를 보강하기 전까지 현재 판단 근거로 사용하지 마세요.
17
+
18
+ 프로젝트의 비즈니스, spec, UI, work packet, plan 용어는 이 문서를 source of truth로 사용합니다. `docs/specs/`가 설치되어 있어도 별도 용어 문서를 두지 않고 이 문서를 읽고 갱신합니다.
19
+
20
+ ## 용어 표기 원칙
21
+
22
+ - 사용자-facing 또는 domain 용어는 한국어를 우선합니다.
23
+ - code-facing name, API field, library/service name, protocol, file path, 표준 technical term은 영어 원형이 더 명확하면 그대로 씁니다.
24
+ - 같은 개념은 하나의 canonical term으로 통일합니다.
25
+ - 불확실한 용어는 확정하지 말고 `검토 중인 용어`에 기록합니다.
26
+
27
+ ## 핵심 용어
28
+
29
+ | 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
30
+ | --- | --- | --- | --- | --- | --- | --- |
31
+ | TBD | TBD | TBD | TBD | TBD | TBD | TBD |
32
+
33
+ ## 엔티티 용어
34
+
35
+ | 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
36
+ | --- | --- | --- | --- | --- | --- | --- |
37
+ | TBD | TBD | TBD | TBD | TBD | TBD | TBD |
38
+
39
+ ## 상태 용어
40
+
41
+ | 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
42
+ | --- | --- | --- | --- | --- | --- | --- |
43
+ | TBD | TBD | TBD | TBD | TBD | TBD | TBD |
44
+
45
+ ## UI 용어
46
+
47
+ | 용어 | 영문 / 코드명 | 정의 | 사용 범위 | 허용 별칭 | 금지 표현 | 관련 문서 |
48
+ | --- | --- | --- | --- | --- | --- | --- |
49
+ | TBD | TBD | TBD | TBD | TBD | TBD | TBD |
50
+
51
+ ## 금지하거나 피할 표현
52
+
53
+ | 표현 | 이유 | 대신 사용할 표현 |
54
+ | --- | --- | --- |
55
+ | TBD | TBD | TBD |
56
+
57
+ ## 검토 중인 용어
58
+
59
+ | 항목 | 후보 표현 | 충돌 / 불확실성 | 판단 메모 | 관련 문서 |
60
+ | --- | --- | --- | --- | --- |
61
+ | TBD | TBD | TBD | TBD | TBD |
@@ -25,4 +25,5 @@ docs/specs/
25
25
 
26
26
  - `baseline/`은 승인된 제품/기술/UI 기준 문서를 둡니다.
27
27
  - `initial-build/`는 초기 구현 work packet과 관련 산출물을 둡니다.
28
+ - 프로젝트 용어는 `docs/business/terminology.md`를 기준으로 관리합니다. 이 optional spec pack은 별도 용어 source of truth를 만들지 않습니다.
28
29
  - 실제 판단 근거로 쓰기 전에 각 문서의 frontmatter와 `docs/docs-status.md` 상태를 갱신합니다.
@@ -25,4 +25,5 @@ docs/specs/
25
25
 
26
26
  - `baseline/` contains approved product, technical, and UI baseline documents.
27
27
  - `initial-build/` contains initial implementation work packets and related artifacts.
28
+ - Project terminology is tracked in `docs/business/terminology.md`; this optional spec pack does not create a separate terminology source of truth.
28
29
  - Before using any document as decision-making evidence, update its frontmatter and its status in `docs/docs-status.md`.
@@ -169,11 +169,11 @@
169
169
  "source_path": "task-skills/spec-product-05-spec-to-work-packets"
170
170
  },
171
171
  {
172
- "id": "spec-shared-glossary-sync",
172
+ "id": "project-terminology-sync",
173
173
  "kind": "task",
174
174
  "supported_tools": ["claude-code", "codex", "gemini"],
175
175
  "groups": ["spec-lifecycle"],
176
- "source_path": "task-skills/spec-shared-glossary-sync"
176
+ "source_path": "task-skills/project-terminology-sync"
177
177
  },
178
178
  {
179
179
  "id": "typescript-language",
@@ -5,56 +5,66 @@ description: 방금 완료된 작업 커밋에서 core, project-local, global로
5
5
 
6
6
  # context-promotion-review
7
7
 
8
- 이 skill은 사용자가 명시적으로 호출했거나 `ai-ops` Codex PostToolUse hook이 작업 커밋 직후 후속 검토를 요청했을 때만 사용한다. CLI가 AI 판단을 하지 않으므로, 승격 후보 판정은 현재 Codex 대화 맥락과 방금 만든 `HEAD` 커밋을 바탕으로 이 skill에서 수행한다.
8
+ 이 skill은 사용자가 명시적으로 호출했거나 `ai-ops` Codex PostToolUse hook이 작업 커밋 직후 후속 검토를 요청했을 때만 사용한다. CLI가 AI 판단을 하지 않으므로, 승격 후보 판정은 현재 Codex 대화/리뷰 루프에서 반복되거나 사용자가 교정한 운영 판단과 방금 만든 `HEAD` 커밋을 바탕으로 이 skill에서 수행한다.
9
9
 
10
10
  hook이 전달한 Project root가 이 검토의 유일한 프로젝트 기준이다. 먼저 해당 Project root로 shell 기준을 맞추고, 다른 repo, parent directory, 이전 대화의 workspace, 웹 검색, 외부 문서를 사용하지 않는다. `AGENTS.md`, `docs/agent/*`, `docs/docs-status.md`, `.ai-ops/context-layer.json` 같은 context layer 파일이 없으면 없다고 보고하며 다른 repo 파일로 대체하지 않는다.
11
11
 
12
12
  ## 목적
13
13
 
14
- 방금 완료된 작업 커밋에서 반복 가능한 운영 지식, 명령 루틴, 판단 기준이 생겼는지 확인하고, 사용자에게 승격 여부를 묻는다.
14
+ 방금 완료된 작업 커밋과 현재 대화/리뷰 루프에서 반복 가능한 운영 지식, 명령 루틴, 판단 기준이 생겼는지 확인하고, 사용자에게 승격 여부를 묻는다.
15
15
 
16
16
  검토 결과는 다음 다섯 가지로만 정리한다.
17
17
 
18
18
  - `core`: 모든 ai-ops 설치 프로젝트에 적용되어야 하는 제품 계약, CLI/Studio/schema/hook 동작
19
19
  - `project-local`: 현재 프로젝트에서만 반복 적용되는 agent rule, workflow, QA, business/spec 운영 기준
20
20
  - `global`: 여러 프로젝트에서 재사용할 skill, subagent, Codex hook 같은 runtime asset
21
- - `already-covered`: 이미 기존 context layer에 있는 기준이라 새 승격이 필요 없는 내용
21
+ - `already-covered`: 기존 Active context layer에 같은 agent 행동 규칙이 있어 새 승격이 필요 없는 내용
22
22
  - `no-promotion`: 일회성 구현 세부사항, 임시 디버깅, 승격 가치가 없는 내용
23
23
 
24
24
  ## 절차
25
25
 
26
26
  1. hook 또는 사용자 요청에 표시된 Project root로 이동한다. Project root 밖 파일은 읽지 않는다.
27
27
  2. `ai-ops context-promotion status`를 실행해 현재 `HEAD`, fingerprint, receipt 상태를 확인한다.
28
- 3. 방금 완료된 작업 커밋을 확인한다.
28
+ 3. 현재 post-commit worktree 상태를 확인한다.
29
+ - `git status --short`
30
+ - `git diff --name-only`
31
+ - `git diff --cached --name-only`
32
+ - `git ls-files --others --exclude-standard`
33
+ 4. 방금 완료된 작업 커밋을 확인한다.
29
34
  - `git show --stat HEAD`
30
35
  - `git show --name-only HEAD`
31
36
  - 필요 시 `git show HEAD`
32
- 4. 기존 context layer를 cross-check한다.
37
+ 5. 기존 context layer를 cross-check한다.
33
38
  - `AGENTS.md`
34
39
  - `docs/docs-status.md`
35
40
  - `.ai-ops/context-layer.json`
36
41
  - `docs/agent/rules/*`
37
42
  - `docs/agent/checks/impact-checklist.md`
38
- 5. context layer 파일이 없으면 absent로 기록하고, 다른 repo에서 대체 근거를 찾지 않는다.
39
- 6. 이미 있는 규칙이면 `already-covered`로 보고하고 승격 후보로 만들지 않는다.
40
- 7. 후보가 있으면 `core`, `project-local`, `global` 하나 이상으로 분류하고, 추천 위치를 제안한다.
41
- 8. 후보가 없으면 `no-promotion` 결정을 제안한다.
42
- 9. 사용자 승인 전에는 파일을 수정하지 않는다.
43
- 10. 승인된 범위만 수정한다.
44
- 11. 마지막에 반드시 `ai-ops context-promotion resolve ...`를 실행한다.
45
- 12. 다시 `ai-ops context-promotion status`를 실행해 현재 `HEAD` receipt 확인을 한다.
46
- 13. 승격 파일을 수정했더라도 직접 commit하지 않고 사용자 검사 대기 상태로 멈춘다.
43
+ 6. 현재 대화/리뷰 루프에서 반복되거나 사용자가 교정한 운영 판단을 확인한다.
44
+ - 사용자 교정, 반복 리뷰 지적, 새로 안정화한 명령 루틴을 후보로 본다.
45
+ - dirty worktree, untracked 파일, changeset pollution, staging scope 같은 커밋 hygiene 이슈가 반복되거나 교정되면 `project-local` 후보로 검토한다.
46
+ 7. context layer 파일이 없으면 absent로 기록하고, 다른 repo에서 대체 근거를 찾지 않는다.
47
+ 8. 이미 있는 규칙이면 `already-covered`로 보고하고 새 승격 후보로 만들지 않는다.
48
+ 9. 후보가 있으면 `core`, `project-local`, `global` 중 하나 이상으로 분류하고, 추천 위치를 제안한다.
49
+ 10. 최종 승격 후보가 없더라도 `near-miss / discarded candidates`를 먼저 짧게 보고한 뒤 `no-promotion` 결정을 제안한다.
50
+ 11. 사용자 승인 전에는 파일을 수정하지 않는다.
51
+ 12. 승인된 범위만 수정한다.
52
+ 13. 마지막에 반드시 `ai-ops context-promotion resolve ...`를 실행한다.
53
+ 14. 다시 `ai-ops context-promotion status`를 실행해 현재 `HEAD` receipt 확인을 한다.
54
+ 15. 승격 파일을 수정했더라도 직접 commit하지 않고 사용자 검사 대기 상태로 멈춘다.
47
55
 
48
56
  ## 보고 형식
49
57
 
50
58
  사용자에게 먼저 다음 형식으로 짧게 보고한다.
51
59
 
52
60
  - `new candidates`: 새로 승격할 후보와 추천 scope/위치
53
- - `already-covered`: 기존 context layer에 이미 있는 규칙과 근거 파일
61
+ - `already-covered`: 기존 Active context layer에 이미 있는 같은 agent 행동 규칙과 근거 파일
62
+ - `near-miss / discarded candidates`: 검토했지만 최종 승격 후보로 올리지 않은 항목과 이유
54
63
  - `no-promotion`: 승격하지 않을 항목과 이유
55
64
  - `ask`: 사용자가 선택해야 할 결정
56
65
 
57
66
  보고에는 각 후보의 근거를 함께 둔다. 근거는 현재 대화에서 반복된 판단, 사용자가 교정한 문장, 실행한 명령 루틴, 방금 완료된 `HEAD` 커밋 중 하나 이상이어야 한다.
67
+ plan, test, README, runbook, operator docs는 후보 근거가 될 수 있지만, Active context layer에 같은 agent 행동 규칙이 없으면 자동으로 `already-covered`가 되지 않는다.
58
68
 
59
69
  ## Resolve 규칙
60
70
 
@@ -83,6 +93,6 @@ ai-ops context-promotion resolve --decision no-promotion --summary "이번 작
83
93
  - 웹 검색 금지: 이 검토는 외부 문서나 웹 검색을 사용하지 않는다.
84
94
  - 다른 repo 탐색 금지: parent directory, sibling repo, 이전 대화 workspace를 cross-check 근거로 사용하지 않는다.
85
95
  - receipt 확인 필수: 완료 전에 `ai-ops context-promotion status`에서 현재 `HEAD` receipt가 `found`인지 확인한다.
86
- - 기존 규칙 중복 금지: 이미 있는 규칙은 새 문서나 중복 문장으로 승격하지 않는다.
96
+ - 기존 규칙 중복 금지: Active context layer에 이미 같은 agent 행동 규칙이 있으면 새 문서나 중복 문장으로 승격하지 않는다.
87
97
  - `Reserved` 승격 금지: 명시 승인 없이 `Reserved` 문서를 현재 판단 근거로 바꾸지 않는다.
88
98
  - 직접 commit 금지: 승격 수정 후에도 commit하지 않고 사용자 검사 대기 상태로 멈춘다.
@@ -1,12 +1,12 @@
1
1
  ---
2
- name: spec-shared-glossary-sync
3
- description: Create or update a Korean 01_glossary.md inside the current project's docs/specs/baseline directory by standardizing domain terms, entities, states, UI labels, and English code-facing names across baseline docs and active .codex/plans.
2
+ name: project-terminology-sync
3
+ description: Create or update the current project's docs/business/terminology.md by standardizing project-wide domain terms, entities, states, UI labels, and English code-facing names across business docs, specs, active .codex/plans, and work packets.
4
4
  disable-model-invocation: true
5
5
  ---
6
6
 
7
- # spec-shared-glossary-sync
7
+ # project-terminology-sync
8
8
 
9
- Use this skill when the project needs a shared glossary or when existing docs/specs/plans have begun to drift in terminology.
9
+ Use this skill when the project needs canonical terminology or when existing business docs, specs, plans, or packets have begun to drift in terminology.
10
10
 
11
11
  Typical high-value run points are:
12
12
 
@@ -14,6 +14,7 @@ Typical high-value run points are:
14
14
  - after `product spec`
15
15
  - after `ui spec`
16
16
  - during `spec-baseline-sync` if implemented terminology changed
17
+ - after business rule changes introduce new domain language
17
18
  - whenever naming drift is noticed
18
19
 
19
20
  Usually skip automatic reruns after small plans unless new shared terminology was introduced.
@@ -21,18 +22,18 @@ Usually skip automatic reruns after small plans unless new shared terminology wa
21
22
  ## Output Location
22
23
 
23
24
  - Write into the current workspace.
24
- - Default output path: `./docs/specs/baseline/01_glossary.md`
25
+ - Default output path: `./docs/business/terminology.md`
25
26
 
26
27
  ## Language Rules
27
28
 
28
- - Write the glossary in Korean.
29
+ - Write terminology content in Korean.
29
30
  - Keep code-facing English identifiers, API field names, library/service names, protocol names, file paths, and standard technical terms in their natural English form when clearer.
30
31
  - Do not invent awkward Koreanized spellings for standard English technical terms.
31
32
  - If a term needs explanation, keep the standard term and add a short Korean definition.
32
33
 
33
34
  ## Objective
34
35
 
35
- Maintain one canonical vocabulary so briefs, specs, UI docs, plans, packets, and baseline sync entries use the same terms for the same concepts.
36
+ Maintain one canonical project vocabulary so business docs, briefs, specs, UI docs, plans, packets, and baseline sync entries use the same terms for the same concepts.
36
37
 
37
38
  The default output style is:
38
39
 
@@ -42,10 +43,14 @@ The default output style is:
42
43
 
43
44
  ## Create Or Update Rules
44
45
 
45
- - If `./docs/specs/baseline/01_glossary.md` does not exist, create it from currently approved specs and relevant active plans.
46
+ - If `./docs/business/terminology.md` does not exist, create it with operating-layer frontmatter from `references/template.md`.
46
47
  - If it exists, update it instead of replacing it blindly.
48
+ - Preserve existing frontmatter unless the document is being promoted from `Reserved` to `Active`.
49
+ - When the document receives real terminology content, set frontmatter `status: Active`.
50
+ - If `docs/docs-status.md` exists, update the `docs/business/terminology.md` row to match the frontmatter status and owner.
51
+ - If `.ai-ops/context-layer.json` exists, update the `docs/business/terminology.md` entry so status, read/update conditions, and content hash match the file.
47
52
  - Preserve stable canonical terms unless there is a strong reason to change them.
48
- - If a newly found term conflicts with an existing definition, keep the current canonical term and record the conflict in `정의 충돌 / 검토 필요`.
53
+ - If a newly found term conflicts with an existing definition, keep the current canonical term and record the conflict in `검토 중인 용어`.
49
54
  - Normalize synonyms toward one preferred term.
50
55
  - Prefer Korean for user-facing/domain wording, but keep standard English when clearer, more stable, or already established in the project.
51
56
 
@@ -53,13 +58,14 @@ The default output style is:
53
58
 
54
59
  Read relevant files that exist:
55
60
 
61
+ - `./docs/business/terminology.md`
62
+ - `./docs/business/business-rules.md`
56
63
  - `./docs/specs/baseline/00_brief.md`
57
64
  - `./docs/specs/baseline/05_technical-context.md`
58
65
  - `./docs/specs/baseline/10_product-spec.md`
59
66
  - `./docs/specs/baseline/20_ui-spec.md`
60
67
  - active `./.codex/plans/*.md` when terminology from a current change needs to become canonical
61
68
  - `./docs/specs/initial-build/<topic>/30_work-packets/*.md` when reviewing initial build terminology
62
- - existing `./docs/specs/baseline/01_glossary.md`
63
69
 
64
70
  Use only files that are present and relevant.
65
71
 
@@ -71,9 +77,11 @@ Use only files that are present and relevant.
71
77
  4. Attach English code-facing counterpart when needed.
72
78
  5. Capture harmless synonyms only when useful.
73
79
  6. List discouraged or banned wording when ambiguity is likely.
74
- 7. Write most glossary content as tables.
75
- 8. Move only hard cases into detailed sections.
76
- 9. Update the glossary without deleting still-valid prior decisions.
80
+ 7. Promote `docs/business/terminology.md` from `Reserved` to `Active` if real terminology is written.
81
+ 8. Write most terminology content as tables.
82
+ 9. Move only hard cases into detailed sections.
83
+ 10. Update `docs/docs-status.md` and `.ai-ops/context-layer.json` when they exist.
84
+ 11. Update terminology without deleting still-valid prior decisions.
77
85
 
78
86
  Use these references while drafting:
79
87
 
@@ -87,13 +95,14 @@ Use these references while drafting:
87
95
  - `상태 용어`
88
96
  - `UI 용어`
89
97
  - `금지하거나 피할 표현`
90
- - `복잡한 개념 상세 설명`
91
- - `정의 충돌 / 검토 필요`
98
+ - `검토 중인 용어`
92
99
 
93
100
  ## Quality Bar
94
101
 
95
- The glossary is not ready if:
102
+ The terminology document is not ready if:
96
103
 
104
+ - frontmatter is missing or the document has real terminology but still says `status: Reserved`
105
+ - `docs/docs-status.md` or `.ai-ops/context-layer.json` disagree with the terminology document status when those files exist
97
106
  - simple vocabulary that should be in tables is expanded into unnecessary prose
98
107
  - the same concept still appears under multiple primary names
99
108
  - terms are listed without definitions
@@ -0,0 +1,6 @@
1
+ interface:
2
+ display_name: "project-terminology-sync"
3
+ short_description: "Standardize project terms into docs/business/terminology.md."
4
+ default_prompt: "Use $project-terminology-sync to create or update docs/business/terminology.md, standardizing project-wide terms across business docs, specs, active .codex/plans, and work packets."
5
+ policy:
6
+ allow_implicit_invocation: false
@@ -1,6 +1,6 @@
1
- # Glossary Sync Checklist
1
+ # Project Terminology Sync Checklist
2
2
 
3
- Use this checklist before finalizing `01_glossary.md`.
3
+ Use this checklist before finalizing `docs/business/terminology.md`.
4
4
 
5
5
  ## Look For
6
6
 
@@ -30,7 +30,7 @@ Use this checklist before finalizing `01_glossary.md`.
30
30
 
31
31
  ## Update Rule
32
32
 
33
- - merge new terms into the existing glossary
33
+ - merge new terms into the existing terminology document
34
34
  - do not delete stable terms unless they are clearly wrong
35
- - when uncertain, add the conflict to `정의 충돌 / 검토 필요`
36
- - keep simple terms in tables; avoid turning the whole glossary into long prose
35
+ - when uncertain, add the conflict to `검토 중인 용어`
36
+ - keep simple terms in tables; avoid turning the whole terminology document into long prose
@@ -1,7 +1,20 @@
1
- # 01_glossary.md Template
1
+ # docs/business/terminology.md Template
2
2
 
3
3
  ```md
4
- # 01 Glossary
4
+ ---
5
+ status: Active
6
+ layer: business
7
+ owner: project
8
+ read_when:
9
+ - terminology_check
10
+ - business_rule_check
11
+ - spec_lifecycle
12
+ update_when:
13
+ - terminology_changes
14
+ - business_rule_changes
15
+ - spec_lifecycle_changes
16
+ ---
17
+ # Terminology
5
18
 
6
19
  용어 표기 원칙:
7
20
 
@@ -38,21 +51,9 @@
38
51
  |---|---|---|
39
52
  | 표현 1 | 왜 피해야 하는지 | 표준 표현 |
40
53
 
41
- ## 복잡한 개념 상세 설명
54
+ ## 검토 중인 용어
42
55
 
43
- ### 개념 1
44
-
45
- - 개념이 표만으로는 충분하지 않은지 설명
46
- - 어떤 문맥에서 다른 표현과 충돌하는지 설명
47
-
48
- ```mermaid
49
- flowchart TD
50
- A["개념 A"] --> B["개념 B"]
51
- ```
52
-
53
- ## 정의 충돌 / 검토 필요
54
-
55
- | 항목 | 현재 표준 | 충돌 표현 | 판단 메모 |
56
- |---|---|---|---|
57
- | 충돌 항목 | 현재 표준 표현 | 새로 발견된 표현 | 판단 메모 |
56
+ | 항목 | 후보 표현 | 충돌 / 불확실성 | 판단 메모 | 관련 문서 |
57
+ |---|---|---|---|---|
58
+ | 충돌 항목 | 새로 발견된 표현 | 현재 표준 표현과의 차이 | 판단 메모 | `10_product-spec.md` |
58
59
  ```
@@ -10,7 +10,7 @@ Use this skill after a post-MVP change has been implemented and verified, and th
10
10
 
11
11
  ## Output Location
12
12
 
13
- - Update only affected files under `./docs/specs/baseline/`.
13
+ - Update only affected files under `./docs/specs/baseline/` and `./docs/business/terminology.md` when project terminology changed.
14
14
  - Move the completed plan from `./.codex/plans/<plan>.md` to `./.codex/plans/archived/YYYY-MM/<plan>.md`.
15
15
  - Append a compact entry to `./.codex/CHANGE_LOG.md`.
16
16
 
@@ -31,7 +31,7 @@ Read the relevant available inputs before updating baseline:
31
31
  2. implemented code changes, PR diff, commit diff, or implementation notes
32
32
  3. verification results and known skipped tests
33
33
  4. optional issue or PR link
34
- 5. existing `./docs/specs/baseline/01_glossary.md`
34
+ 5. existing `./docs/business/terminology.md`
35
35
  6. existing `./docs/specs/baseline/05_technical-context.md`
36
36
  7. existing `./docs/specs/baseline/10_product-spec.md`
37
37
  8. existing `./docs/specs/baseline/20_ui-spec.md`
@@ -64,7 +64,7 @@ Baseline sync is implementation-confirming work.
64
64
 
65
65
  1. Identify the plan being closed and the implementation evidence.
66
66
  2. Compare shipped behavior against current baseline docs.
67
- 3. Decide which baseline docs are affected among `01,05,10,20,22,24`.
67
+ 3. Decide whether project terminology or baseline docs among `05,10,20,22,24` are affected.
68
68
  4. Update only affected baseline docs while preserving still-valid prior decisions.
69
69
  5. Append one changelog entry summarizing what changed, why, evidence, baseline impact, and follow-up.
70
70
  6. Move the plan into `.codex/plans/archived/YYYY-MM/`.
@@ -74,7 +74,7 @@ Use [references/template.md](references/template.md) for the changelog entry sha
74
74
 
75
75
  ## Baseline Update Rules
76
76
 
77
- - `./docs/specs/baseline/01_glossary.md`: update only when the implementation introduced or normalized meaningful shared terms.
77
+ - `./docs/business/terminology.md`: update only when the implementation introduced or normalized meaningful shared terms.
78
78
  - `./docs/specs/baseline/05_technical-context.md`: update only when architecture, stack, boundaries, integrations, or deployment assumptions changed materially.
79
79
  - `./docs/specs/baseline/10_product-spec.md`: update for implemented user-flow, feature, entity, rule, edge-case, or success-criteria changes.
80
80
  - `./docs/specs/baseline/20_ui-spec.md`: update for implemented screens, states, interactions, or UI constraints.
@@ -20,10 +20,10 @@ Use this skill when the input is still rough and the next artifact should be `./
20
20
  - Do not force awkward phonetic transliterations such as `소스 오브 트루스`, `타겟 플랫폼`, or `워크 패킷`.
21
21
  - If an English technical term needs explanation, keep the English term and add a short Korean gloss on first mention, for example `source of truth(가장 신뢰하는 기준)`.
22
22
 
23
- ## Glossary Rule
23
+ ## Terminology Rule
24
24
 
25
- - Check `./docs/specs/baseline/01_glossary.md` only if it exists and the brief introduces product terms, user-facing labels, or domain nouns that may collide with existing terminology.
26
- - After writing the target document, `spec-shared-glossary-sync` is recommended because briefs often introduce new canonical terms.
25
+ - Check `./docs/business/terminology.md` if it exists and the brief introduces product terms, user-facing labels, or domain nouns that may collide with existing terminology.
26
+ - After writing the target document, `project-terminology-sync` is recommended because briefs often introduce new canonical terms.
27
27
 
28
28
  ## Objective
29
29
 
@@ -20,10 +20,10 @@ Use this skill after `./docs/specs/baseline/00_brief.md` is approved and before
20
20
  - Do not force awkward phonetic transliterations such as `소스 오브 트루스`, `타겟 플랫폼`, or `워크 패킷`.
21
21
  - If an English technical term needs explanation, keep the English term and add a short Korean gloss on first mention, for example `source of truth(가장 신뢰하는 기준)`.
22
22
 
23
- ## Glossary Rule
23
+ ## Terminology Rule
24
24
 
25
- - Check `./docs/specs/baseline/01_glossary.md` only if it exists and the document introduces stack names, architectural terms, or labels that should align with existing terminology.
26
- - After writing the target document, run `spec-shared-glossary-sync` only if new technical terms, product-facing labels, or collisions were introduced.
25
+ - Check `./docs/business/terminology.md` if it exists and the document introduces stack names, architectural terms, or labels that should align with existing terminology.
26
+ - After writing the target document, run `project-terminology-sync` only if new technical terms, product-facing labels, or collisions were introduced.
27
27
 
28
28
  ## Default Stack Preferences
29
29