@dusky-bluehour/agent-service 0.6.7 → 0.6.8

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 (61) hide show
  1. package/README.md +263 -36
  2. package/catalog/tool-catalog.ko.json +17 -43
  3. package/claude-code/README.md +84 -66
  4. package/codex/README.md +55 -33
  5. package/common/settings/security-policy.json +1 -1
  6. package/common/skills/skill-catalog.json +368 -136
  7. package/common/workflows/workflow-catalog.json +89 -1238
  8. package/gemini/README.md +104 -0
  9. package/{antigravity/commands/definitions/cmd-dev-be-api.md → gemini/commands/definitions/cmd-dev-be-api.toml} +13 -21
  10. package/{antigravity/commands/definitions/cmd-dev-fe-hook-separate.md → gemini/commands/definitions/cmd-dev-fe-hook-separate.toml} +13 -21
  11. package/{antigravity/commands/definitions/cmd-dev-fe-ui-componentize.md → gemini/commands/definitions/cmd-dev-fe-ui-componentize.toml} +13 -21
  12. package/{antigravity/commands/definitions/cmd-dev-perf-optimize.md → gemini/commands/definitions/cmd-dev-perf-optimize.toml} +13 -21
  13. package/{antigravity/commands/definitions/cmd-dev-sequential-autorun.md → gemini/commands/definitions/cmd-dev-sequential-autorun.toml} +13 -21
  14. package/{antigravity/commands/definitions/cmd-doc-handoff.md → gemini/commands/definitions/cmd-doc-handoff.toml} +13 -21
  15. package/{antigravity/commands/definitions/cmd-improve-techdebt.md → gemini/commands/definitions/cmd-improve-techdebt.toml} +13 -21
  16. package/{antigravity/commands/definitions/cmd-incident-triage.md → gemini/commands/definitions/cmd-incident-triage.toml} +13 -21
  17. package/{antigravity/commands/definitions/cmd-ops-ci-cd-gate.md → gemini/commands/definitions/cmd-ops-ci-cd-gate.toml} +13 -21
  18. package/{antigravity/commands/definitions/cmd-ops-deploy.md → gemini/commands/definitions/cmd-ops-deploy.toml} +13 -21
  19. package/{antigravity/commands/definitions/cmd-ops-monitoring.md → gemini/commands/definitions/cmd-ops-monitoring.toml} +13 -21
  20. package/{antigravity/commands/definitions/cmd-plan-arch-decision.md → gemini/commands/definitions/cmd-plan-arch-decision.toml} +13 -21
  21. package/{antigravity/commands/definitions/cmd-plan-implementation-bootstrap.md → gemini/commands/definitions/cmd-plan-implementation-bootstrap.toml} +13 -21
  22. package/{antigravity/commands/definitions/cmd-plan-prd-details.md → gemini/commands/definitions/cmd-plan-prd-details.toml} +13 -21
  23. package/{antigravity/commands/definitions/cmd-plan-prd-master.md → gemini/commands/definitions/cmd-plan-prd-master.toml} +13 -21
  24. package/{antigravity/commands/definitions/cmd-plan-req-lock.md → gemini/commands/definitions/cmd-plan-req-lock.toml} +13 -21
  25. package/{antigravity/commands/definitions/cmd-review-code.md → gemini/commands/definitions/cmd-review-code.toml} +13 -21
  26. package/{antigravity/commands/definitions/cmd-sec-dependency-audit.md → gemini/commands/definitions/cmd-sec-dependency-audit.toml} +13 -21
  27. package/{antigravity/commands/definitions/cmd-sec-threat-model.md → gemini/commands/definitions/cmd-sec-threat-model.toml} +13 -21
  28. package/{antigravity/commands/definitions/cmd-test-unit-integration.md → gemini/commands/definitions/cmd-test-unit-integration.toml} +13 -21
  29. package/gemini/gemini-extension.json +6 -0
  30. package/{antigravity → gemini}/settings/editor-policy.json +1 -1
  31. package/{antigravity → gemini}/skills/change-safety-review/SKILL.md +8 -6
  32. package/{antigravity → gemini}/skills/code-review-and-improvement/SKILL.md +8 -3
  33. package/gemini/skills/frontend-repetition-pack/SKILL.md +44 -0
  34. package/gemini/skills/incident-response/SKILL.md +44 -0
  35. package/{antigravity → gemini}/skills/prd-to-production-pipeline/SKILL.md +13 -4
  36. package/{antigravity → gemini}/skills/release-and-operations/SKILL.md +11 -3
  37. package/gemini/skills/security-hardening/SKILL.md +43 -0
  38. package/gemini/skills/service-lifecycle-orchestration/SKILL.md +46 -0
  39. package/{antigravity → gemini}/workflows/workflow-catalog.json +1 -1
  40. package/package.json +4 -4
  41. package/scripts/generate-from-common.mjs +99 -70
  42. package/scripts/init.mjs +41 -21
  43. package/scripts/validate.mjs +66 -33
  44. package/antigravity/README.md +0 -50
  45. package/antigravity/skills/frontend-repetition-pack/SKILL.md +0 -35
  46. package/antigravity/skills/incident-response/SKILL.md +0 -35
  47. package/antigravity/skills/security-hardening/SKILL.md +0 -35
  48. package/antigravity/skills/service-lifecycle-orchestration/SKILL.md +0 -36
  49. package/claude-code/workflows/workflow-catalog.json +0 -688
  50. package/codex/workflows/workflow-catalog.json +0 -450
  51. /package/{antigravity/agents → common/gemini}/agent-catalog.json +0 -0
  52. /package/{antigravity/artifacts → common/gemini}/artifact-catalog.json +0 -0
  53. /package/{common/antigravity → gemini/agents}/agent-catalog.json +0 -0
  54. /package/{common/antigravity → gemini/artifacts}/artifact-catalog.json +0 -0
  55. /package/{antigravity → gemini}/commands/command-catalog.json +0 -0
  56. /package/{antigravity/instructions/WORKSPACE-RULES.template.md → gemini/instructions/GEMINI.template.md} +0 -0
  57. /package/{antigravity → gemini}/workflows/definitions/WF-FRONTEND-REFACTOR.workflow.yaml +0 -0
  58. /package/{antigravity → gemini}/workflows/definitions/WF-INCIDENT-RESPONSE.workflow.yaml +0 -0
  59. /package/{antigravity → gemini}/workflows/definitions/WF-PRD-TO-PRODUCTION.workflow.yaml +0 -0
  60. /package/{antigravity → gemini}/workflows/definitions/WF-SECURITY-HARDENING.workflow.yaml +0 -0
  61. /package/{antigravity → gemini}/workflows/definitions/WF-SERVICE-E2E.workflow.yaml +0 -0
@@ -1,76 +1,94 @@
1
1
  # Claude Code 운영팩
2
2
 
3
- 이 폴더는 Claude Code에서 서비스 운영 전체(기획-개발-배포-운영-보안-개선)를 실행하실 수 있도록 스킬, 서브에이전트, 팀, 워크플로우 정의를 담고 있습니다.
4
- 정의 원천은 저장소 `common/*`이며, 이 폴더의 파일은 생성 스크립트(`npm run generate`) 결과입니다.
5
- 직접 수정 대신 공통 원천을 수정한 뒤 재생성해 주세요.
3
+ Claude Code에서 서비스 운영 전체(기획-개발-배포-운영-보안-개선)를 실행할 수 있도록 스킬, 서브에이전트, 팀, 명령 정의를 제공합니다.
6
4
 
7
- ## 폴더 구성
8
-
9
- - `skills/`: Claude Skills (`SKILL.md` 기반)
10
- - `subagents/`: 역할별 서브에이전트 프롬프트
11
- - `agent-teams/team-catalog.json`: 팀 구성과 기본 워크플로우 매핑
12
- - `workflows/workflow-catalog.json`: 단계형 실행 정의
13
- - `commands/command-catalog.json`: 공통 명령 계약
14
- - `commands/native/*.md`: Claude Custom Slash Command용 네이티브 명령 프롬프트
15
- - `instructions/CLAUDE.template.md`: 프로젝트 루트 `CLAUDE.md` 자동 생성용 템플릿
16
- - `settings/settings.json`, `settings/settings.local.json`: 프로젝트/로컬 설정 파일 템플릿
17
-
18
- ## 빠른 시작
19
-
20
- 1. 워크플로우를 선택해 주세요: `WF-SERVICE-E2E`(E2E), `WF-CODE-REVIEW-LOOP`(리뷰 루프), `WF-SECURITY-HARDENING`(보안), `WF-INCIDENT-RESPONSE`(장애 대응), `WF-PRD-TO-PRODUCTION`(PRD→구현)
21
- 2. 단계별 명령을 실행해 주세요: 각 stage의 `commands` ID 순서대로 실행
22
- 3. 품질 검증을 확인해 주세요: stage `exit_criteria`를 모두 충족해야 다음 단계로 이동
23
-
24
- ## Claude 네이티브 커맨드 사용
25
-
26
- `commands/native/*.md`는 `common/commands/command-catalog.json`에서 자동 변환된 Claude Custom Slash Command 파일입니다.
27
-
28
- - 설치 경로: `<repo>/.claude/commands/*.md` 또는 `~/.claude/commands/*.md`
29
- - 실행 예시: `/cmd-plan-req-lock`, `/cmd-dev-be-api`
30
- - 추가 컨텍스트는 명령 뒤 인자로 전달합니다.
31
-
32
- `command-catalog.json`은 계약 원본(SSOT)이고, 실제 실행은 `commands/native/*.md`를 기준으로 하시면 됩니다.
33
-
34
- ## 프로젝트 규칙 파일 (자동 생성)
35
-
36
- 설치 시 프로젝트 루트에 `CLAUDE.md`가 자동 생성됩니다(기존 파일이 있으면 유지).
37
- 템플릿 원본은 `instructions/CLAUDE.template.md`입니다.
5
+ > 폴더의 파일은 `npm run generate`로 `common/*`에서 자동 생성됩니다. 직접 수정하지 마세요.
38
6
 
39
- ## Claude 설정 템플릿 사용
40
-
41
- `settings/settings.json`을 프로젝트 기본 설정으로 사용하실 수 있습니다.
7
+ ## 폴더 구성
42
8
 
43
- - 설치 결과 템플릿: `<repo>/.claude/settings/settings.json`, `<repo>/.claude/settings/settings.local.json`
44
- - 프로젝트 공용(활성 파일): `<repo>/.claude/settings.json`
45
- - 개인 오버라이드(활성 파일): `<repo>/.claude/settings.local.json`
9
+ ```
10
+ claude-code/
11
+ skills/<name>/SKILL.md 8개 운영 스킬
12
+ subagents/<role>.md 15개 서브에이전트 프롬프트
13
+ agent-teams/team-catalog.json 3개 팀 구성
14
+ commands/
15
+ command-catalog.json 공통 명령 계약 (SSOT)
16
+ native/*.md 20개 네이티브 슬래시 명령
17
+ instructions/CLAUDE.template.md CLAUDE.md 자동 생성 템플릿
18
+ settings/
19
+ settings.json 프로젝트 설정 템플릿
20
+ settings.local.json 로컬 설정 템플릿
21
+ ```
22
+
23
+ ## 설치 시 생성 구조
24
+
25
+ ```
26
+ <project>/
27
+ .claude/
28
+ skills/<name>/SKILL.md 스킬 자동 인식
29
+ agents/<role>.md 서브에이전트 프롬프트
30
+ agent-teams/team-catalog.json 팀 카탈로그
31
+ commands/<name>.md /cmd-* 슬래시 명령
32
+ instructions/CLAUDE.template.md
33
+ settings/settings.json
34
+ CLAUDE.md 프로젝트 규칙 파일 (기존 파일 유지)
35
+ ```
36
+
37
+ ## 사용 방법
38
+
39
+ ### 스킬 사용
40
+
41
+ `.claude/skills/<name>/SKILL.md`를 Claude Code가 자동 인식합니다. 사용자 요청에 매칭되면 스킬의 상세 절차를 실행합니다.
42
+
43
+ | 스킬 | 역할 |
44
+ |------|------|
45
+ | `change-safety-review` | 변경사항 회귀 검증 + 코드 리뷰 |
46
+ | `code-review-and-improvement` | 코드 품질 개선 + 기술부채 정리 |
47
+ | `frontend-repetition-pack` | UI 컴포넌트화 → Hook 분리 → 성능 최적화 |
48
+ | `incident-response` | 장애 트리아지 → 근본원인 수정 → 포스트모템 |
49
+ | `prd-to-production-pipeline` | PRD 작성 → 순차 자동 구현 |
50
+ | `release-and-operations` | CI/CD 게이트 → 배포 → 모니터링 |
51
+ | `security-hardening` | 위협 모델링 → 취약점 감사 → 하드닝 |
52
+ | `service-lifecycle-orchestration` | 전체 수명주기 오케스트레이션 |
53
+
54
+ ### 네이티브 슬래시 명령
55
+
56
+ `commands/native/*.md`가 Claude Custom Slash Command로 설치됩니다.
57
+
58
+ ```bash
59
+ # 실행 예시
60
+ /cmd-plan-req-lock
61
+ /cmd-dev-be-api
62
+ /cmd-review-code
63
+ /cmd-sec-threat-model
64
+ ```
65
+
66
+ 명령 뒤에 추가 컨텍스트를 인자로 전달할 수 있습니다.
67
+
68
+ ### 서브에이전트 & 팀
69
+
70
+ 리드(`lead-orchestrator`)가 전문 서브에이전트에게 작업을 위임하는 구조입니다.
71
+
72
+ **15개 서브에이전트:**
73
+ `lead-orchestrator`, `backend-engineer`, `frontend-engineer`, `ui-component-engineer`, `hook-refactor-engineer`, `performance-engineer`, `security-engineer`, `code-reviewer`, `qa-engineer`, `product-planner`, `prd-writer`, `solution-architect`, `incident-commander`, `sre-release-engineer`, `operations-owner`
74
+
75
+ **3개 팀:**
76
+
77
+ | 팀 ID | 구성 | 용도 |
78
+ |-------|------|------|
79
+ | `TEAM-SVC-DELIVERY` | 리드 + 개발/QA/보안 | 서비스 딜리버리 |
80
+ | `TEAM-SEC-HARDENING` | 리드 + 보안/개발/QA | 보안 강화 |
81
+ | `TEAM-INCIDENT` | 리드 + 장애대응/개발/운영 | 장애 워룸 |
82
+
83
+ `agent-teams/team-catalog.json`을 단일 진입점으로 사용합니다.
84
+
85
+ ### 설정 템플릿
86
+
87
+ - 프로젝트 공용: `<repo>/.claude/settings.json`
88
+ - 개인 오버라이드: `<repo>/.claude/settings.local.json`
46
89
  - 전역 공용: `~/.claude/settings.json`
47
90
 
48
- ## 역할 분리 기준
49
-
50
- - 반복 작업은 전문 역할로 분리합니다.
51
- - UI 컴포넌트화: `ui-component-engineer`
52
- - Hook 분리: `hook-refactor-engineer`
53
- - 최적화: `performance-engineer`
54
- - 변경점 안전 검토: `change-safety-review` + `code-reviewer`, `qa-engineer`, `performance-engineer`
55
- - PRD 작성: `prd-writer`
56
-
57
- ## 서브에이전트 팀 운영 기준
58
-
59
- - 리드: `lead-orchestrator`
60
- - 병렬 협업: `TEAM-SVC-DELIVERY`
61
- - 보안 배치: `TEAM-SEC-HARDENING`
62
- - 장애 워룸: `TEAM-INCIDENT`
63
-
64
- 2026-02-17 기준으로 Agent Teams를 사용하시면 리드가 전문 에이전트에게 작업을 분배하는 구조를 안정적으로 구성하실 수 있습니다. 구현 시에는 `agent-teams/team-catalog.json`을 단일 진입점으로 사용해 주세요.
65
-
66
- ## 실제 위치로 옮기실 때
67
-
68
- - Claude 사용자 전역: `~/.claude/agents/`, `~/.claude/skills/`
69
- - 프로젝트 로컬: `<repo>/.claude/agents/`, `<repo>/.claude/skills/`
70
-
71
- 이 폴더의 하위 파일을 위 경로로 복사하신 뒤, 프로젝트의 팀 규칙에 맞게 도구 권한과 모델을 조정해 주세요.
72
-
73
- ## 참고 문서 (검증일: 2026-02-17)
91
+ ## 참고 문서
74
92
 
75
93
  - [Claude Code Subagents](https://docs.anthropic.com/en/docs/claude-code/sub-agents)
76
94
  - [Claude Code Agent Teams](https://docs.anthropic.com/en/docs/claude-code/agent-teams)
package/codex/README.md CHANGED
@@ -1,53 +1,75 @@
1
1
  # Codex 운영팩
2
2
 
3
- 이 폴더는 Codex에서 서비스 운영형 작업(기획-개발-검증-보안-배포-운영)을 반복 가능하게 구성하시도록 스킬/워크플로우/지침 세트를 제공합니다.
4
- 정의 원천은 저장소 `common/*`이며, 이 폴더의 파일은 생성 스크립트(`npm run generate`) 결과입니다.
5
- 직접 수정 대신 공통 원천을 수정한 재생성해 주세요.
3
+ Codex에서 서비스 운영형 작업(기획-개발-검증-보안-배포-운영)을 반복 가능하게 구성하는 스킬/지침/자동화 세트를 제공합니다.
4
+
5
+ > 폴더의 파일은 `npm run generate`로 `common/*`에서 자동 생성됩니다. 직접 수정하지 마세요.
6
6
 
7
7
  ## 폴더 구성
8
8
 
9
- - `skills/`: Codex Skills (`SKILL.md` + `agents/openai.yaml`)
10
- - `skills/cmd-*/`: 공통 명령 계약에서 변환된 Codex 명령 스킬
11
- - `workflows/workflow-catalog.json`: 단계형 실행 표준
12
- - `commands/command-catalog.json`: 공통 명령 계약
13
- - `settings/runtime-policy.json`: 프로젝트 권한/실행 정책 템플릿
14
- - `instructions/AGENTS.template.md`: 프로젝트용 AGENTS 템플릿
15
- - `instructions/AGENTS.permissions.generated.md`: 권한 정책용 AGENTS 스니펫(자동 생성)
16
- - `automations/automation-recipes.toml`: 반복 작업 자동화 레시피
9
+ ```
10
+ codex/
11
+ skills/<name>/SKILL.md 8개 운영 스킬
12
+ skills/<name>/agents/openai.yaml 에이전트 정의
13
+ skills/cmd-*/SKILL.md 20개 명령 스킬 (공통 명령 변환)
14
+ skills/cmd-*/agents/openai.yaml 명령 스킬 에이전트 정의
15
+ automations/automation-recipes.toml 반복 작업 자동화 레시피
16
+ commands/command-catalog.json 공통 명령 계약 (SSOT)
17
+ instructions/
18
+ AGENTS.template.md AGENTS.md 자동 생성 템플릿
19
+ AGENTS.permissions.generated.md 권한 정책 스니펫 (자동 생성)
20
+ settings/runtime-policy.json 런타임 권한 정책
21
+ ```
17
22
 
18
- ## 빠른 시작
23
+ ## 설치 시 생성 구조
19
24
 
20
- 1. 설치 시 프로젝트 루트에 `AGENTS.md`가 자동 생성됩니다(기존 파일이 있으면 유지). 필요 시 보완해 주세요.
21
- 2. 작업 유형에 맞는 워크플로우(`WF-SERVICE-E2E`~`WF-INCIDENT-RESPONSE`, `WF-PRD-TO-PRODUCTION`)를 선택해 주세요.
22
- 3. 명령 ID를 기준으로 실행하시고, 검증 단계에서 `/review`를 수행해 주세요.
23
- 4. 명령 단위 실행이 필요하면 `cmd-*` 스킬(`skills/cmd-*/`)을 직접 호출해 주세요.
25
+ ```
26
+ <project>/
27
+ .codex/
28
+ skills/<name>/SKILL.md 8개 스킬
29
+ skills/<name>/agents/openai.yaml
30
+ skills/cmd-*/SKILL.md 20개 명령 스킬
31
+ automations/automation-recipes.toml
32
+ commands/command-catalog.json
33
+ instructions/AGENTS.template.md
34
+ settings/runtime-policy.json
35
+ AGENTS.md 프로젝트 규칙 파일 (기존 파일 유지)
36
+ ```
24
37
 
25
- ## Codex 명령 실행 방식 (중요)
38
+ ## 사용 방법
26
39
 
27
- 2026-02-19 기준 Codex는 Claude처럼 별도 커스텀 명령 폴더(`.codex/commands/*.md`)를 공식 포맷으로 제공하지 않습니다.
28
- 이 패키지는 공통 명령 계약을 Codex 네이티브 방식으로 변환해 `skills/cmd-*/` 스킬로 제공합니다.
40
+ ### 스킬 사용
29
41
 
30
- - 계약 원본(SSOT): `commands/command-catalog.json`
31
- - Codex 실행 아티팩트: `skills/cmd-*/SKILL.md`, `skills/cmd-*/agents/openai.yaml`
42
+ 8개 운영 스킬 + 20개 명령 스킬이 Codex 네이티브 스킬 UI로 표시됩니다.
32
43
 
33
- ## 스킬 설치 위치
44
+ | 스킬 | 역할 |
45
+ |------|------|
46
+ | `change-safety-review` | 변경사항 회귀 검증 + 코드 리뷰 |
47
+ | `code-review-and-improvement` | 코드 품질 개선 + 기술부채 정리 |
48
+ | `frontend-repetition-pack` | UI 컴포넌트화 → Hook 분리 → 성능 최적화 |
49
+ | `incident-response` | 장애 트리아지 → 근본원인 수정 → 포스트모템 |
50
+ | `prd-to-production-pipeline` | PRD 작성 → 순차 자동 구현 |
51
+ | `release-and-operations` | CI/CD 게이트 → 배포 → 모니터링 |
52
+ | `security-hardening` | 위협 모델링 → 취약점 감사 → 하드닝 |
53
+ | `service-lifecycle-orchestration` | 전체 수명주기 오케스트레이션 |
34
54
 
35
- - 프로젝트 로컬: `<repo>/.codex/skills/<skill-name>/SKILL.md`
36
- - 사용자 전역: `~/.codex/skills/<skill-name>/SKILL.md`
55
+ ### 명령 실행
56
+
57
+ Codex는 별도 커스텀 명령 폴더를 공식 지원하지 않으므로, 공통 명령 계약을 `skills/cmd-*/` 스킬로 변환하여 네이티브 실행 경로를 제공합니다.
37
58
 
38
- 현재 폴더의 `skills/` 하위 디렉터리를 위 경로로 복사하시면 재사용하실 수 있습니다.
59
+ - 계약 원본: `commands/command-catalog.json`
60
+ - 실행 아티팩트: `skills/cmd-*/SKILL.md` + `agents/openai.yaml`
39
61
 
40
- ## 반복 작업 역할 분리
62
+ ### 자동화 레시피
41
63
 
42
- - UI 컴포넌트화: `frontend-repetition-pack` + `CMD-DEV-FE-UI-COMPONENTIZE`
43
- - Hook 분리: `frontend-repetition-pack` + `CMD-DEV-FE-HOOK-SEPARATE`
44
- - 성능 최적화: `frontend-repetition-pack` + `CMD-DEV-PERF-OPTIMIZE`
45
- - 변경점 안전 검토: `change-safety-review` + `CMD-TEST-UNIT-INTEGRATION`, `CMD-REVIEW-CODE`
46
- - PRD 파이프라인: `prd-to-production-pipeline` + `WF-PRD-TO-PRODUCTION`
64
+ `automations/automation-recipes.toml`에 주기 점검, 보안 배치, 리뷰 자동화 프리셋이 포함됩니다.
65
+
66
+ ### 스킬 설치 위치
67
+
68
+ - 프로젝트 로컬: `<repo>/.codex/skills/<skill-name>/SKILL.md`
69
+ - 사용자 전역: `~/.codex/skills/<skill-name>/SKILL.md`
47
70
 
48
- ## 참고 문서 (검증일: 2026-02-17)
71
+ ## 참고 문서
49
72
 
50
73
  - [Codex Agent Skills](https://developers.openai.com/codex/agents/)
51
- - [Codex Workflows](https://developers.openai.com/codex/workflows/)
52
74
  - [Codex AGENTS.md Guide](https://developers.openai.com/codex/config/)
53
75
  - [Codex Automations](https://developers.openai.com/codex/automations/)
@@ -195,7 +195,7 @@
195
195
  "additional_directories": []
196
196
  }
197
197
  },
198
- "antigravity": {
198
+ "gemini": {
199
199
  "editor_settings": {
200
200
  "autonomy_level": "balanced",
201
201
  "require_approval": {