oh-my-customcode 0.12.1 → 0.12.3

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 (134) hide show
  1. package/README.md +8 -11
  2. package/dist/cli/index.js +137 -336
  3. package/dist/index.js +99 -260
  4. package/package.json +2 -4
  5. package/templates/.claude/skills/codex-exec/SKILL.md +123 -0
  6. package/templates/.claude/skills/codex-exec/scripts/codex-wrapper.cjs +413 -0
  7. package/templates/CLAUDE.md.en +1 -0
  8. package/templates/CLAUDE.md.ko +1 -0
  9. package/templates/.codex/agents/arch-documenter.md +0 -33
  10. package/templates/.codex/agents/arch-speckit-agent.md +0 -47
  11. package/templates/.codex/agents/be-express-expert.md +0 -30
  12. package/templates/.codex/agents/be-fastapi-expert.md +0 -43
  13. package/templates/.codex/agents/be-go-backend-expert.md +0 -43
  14. package/templates/.codex/agents/be-nestjs-expert.md +0 -28
  15. package/templates/.codex/agents/be-springboot-expert.md +0 -40
  16. package/templates/.codex/agents/db-postgres-expert.md +0 -36
  17. package/templates/.codex/agents/db-redis-expert.md +0 -36
  18. package/templates/.codex/agents/db-supabase-expert.md +0 -35
  19. package/templates/.codex/agents/de-airflow-expert.md +0 -34
  20. package/templates/.codex/agents/de-dbt-expert.md +0 -34
  21. package/templates/.codex/agents/de-kafka-expert.md +0 -81
  22. package/templates/.codex/agents/de-pipeline-expert.md +0 -32
  23. package/templates/.codex/agents/de-snowflake-expert.md +0 -36
  24. package/templates/.codex/agents/de-spark-expert.md +0 -36
  25. package/templates/.codex/agents/fe-svelte-agent.md +0 -29
  26. package/templates/.codex/agents/fe-vercel-agent.md +0 -37
  27. package/templates/.codex/agents/fe-vuejs-agent.md +0 -30
  28. package/templates/.codex/agents/infra-aws-expert.md +0 -47
  29. package/templates/.codex/agents/infra-docker-expert.md +0 -47
  30. package/templates/.codex/agents/lang-golang-expert.md +0 -43
  31. package/templates/.codex/agents/lang-java21-expert.md +0 -39
  32. package/templates/.codex/agents/lang-kotlin-expert.md +0 -43
  33. package/templates/.codex/agents/lang-python-expert.md +0 -43
  34. package/templates/.codex/agents/lang-rust-expert.md +0 -43
  35. package/templates/.codex/agents/lang-typescript-expert.md +0 -43
  36. package/templates/.codex/agents/mgr-claude-code-bible.md +0 -58
  37. package/templates/.codex/agents/mgr-creator.md +0 -39
  38. package/templates/.codex/agents/mgr-gitnerd.md +0 -45
  39. package/templates/.codex/agents/mgr-sauron.md +0 -161
  40. package/templates/.codex/agents/mgr-supplier.md +0 -35
  41. package/templates/.codex/agents/mgr-sync-checker.md +0 -38
  42. package/templates/.codex/agents/mgr-updater.md +0 -33
  43. package/templates/.codex/agents/qa-engineer.md +0 -32
  44. package/templates/.codex/agents/qa-planner.md +0 -73
  45. package/templates/.codex/agents/qa-writer.md +0 -27
  46. package/templates/.codex/agents/sys-memory-keeper.md +0 -43
  47. package/templates/.codex/agents/sys-naggy.md +0 -37
  48. package/templates/.codex/agents/tool-bun-expert.md +0 -26
  49. package/templates/.codex/agents/tool-npm-expert.md +0 -30
  50. package/templates/.codex/agents/tool-optimizer.md +0 -34
  51. package/templates/.codex/codex-native-hash.txt +0 -1
  52. package/templates/.codex/contexts/dev.md +0 -20
  53. package/templates/.codex/contexts/ecomode.md +0 -63
  54. package/templates/.codex/contexts/index.yaml +0 -41
  55. package/templates/.codex/contexts/research.md +0 -28
  56. package/templates/.codex/contexts/review.md +0 -23
  57. package/templates/.codex/hooks/hooks.json +0 -150
  58. package/templates/.codex/install-hooks.sh +0 -100
  59. package/templates/.codex/rules/MAY-optimization.md +0 -29
  60. package/templates/.codex/rules/MUST-agent-design.md +0 -57
  61. package/templates/.codex/rules/MUST-agent-identification.md +0 -29
  62. package/templates/.codex/rules/MUST-continuous-improvement.md +0 -25
  63. package/templates/.codex/rules/MUST-intent-transparency.md +0 -42
  64. package/templates/.codex/rules/MUST-language-policy.md +0 -27
  65. package/templates/.codex/rules/MUST-orchestrator-coordination.md +0 -128
  66. package/templates/.codex/rules/MUST-parallel-execution.md +0 -97
  67. package/templates/.codex/rules/MUST-permissions.md +0 -30
  68. package/templates/.codex/rules/MUST-safety.md +0 -23
  69. package/templates/.codex/rules/MUST-sync-verification.md +0 -125
  70. package/templates/.codex/rules/MUST-tool-identification.md +0 -82
  71. package/templates/.codex/rules/SHOULD-agent-teams.md +0 -39
  72. package/templates/.codex/rules/SHOULD-ecomode.md +0 -37
  73. package/templates/.codex/rules/SHOULD-error-handling.md +0 -33
  74. package/templates/.codex/rules/SHOULD-hud-statusline.md +0 -32
  75. package/templates/.codex/rules/SHOULD-interaction.md +0 -34
  76. package/templates/.codex/rules/SHOULD-memory-integration.md +0 -39
  77. package/templates/.codex/rules/index.yaml +0 -141
  78. package/templates/.codex/skills/airflow-best-practices/SKILL.md +0 -56
  79. package/templates/.codex/skills/audit-agents/SKILL.md +0 -116
  80. package/templates/.codex/skills/aws-best-practices/SKILL.md +0 -280
  81. package/templates/.codex/skills/claude-code-bible/SKILL.md +0 -100
  82. package/templates/.codex/skills/claude-code-bible/scripts/fetch-docs.js +0 -272
  83. package/templates/.codex/skills/create-agent/SKILL.md +0 -91
  84. package/templates/.codex/skills/dbt-best-practices/SKILL.md +0 -54
  85. package/templates/.codex/skills/de-lead-routing/SKILL.md +0 -243
  86. package/templates/.codex/skills/dev-lead-routing/SKILL.md +0 -94
  87. package/templates/.codex/skills/dev-refactor/SKILL.md +0 -123
  88. package/templates/.codex/skills/dev-review/SKILL.md +0 -81
  89. package/templates/.codex/skills/docker-best-practices/SKILL.md +0 -275
  90. package/templates/.codex/skills/fastapi-best-practices/SKILL.md +0 -270
  91. package/templates/.codex/skills/fix-refs/SKILL.md +0 -107
  92. package/templates/.codex/skills/go-backend-best-practices/SKILL.md +0 -338
  93. package/templates/.codex/skills/go-best-practices/SKILL.md +0 -203
  94. package/templates/.codex/skills/help/SKILL.md +0 -125
  95. package/templates/.codex/skills/intent-detection/SKILL.md +0 -215
  96. package/templates/.codex/skills/intent-detection/patterns/agent-triggers.yaml +0 -349
  97. package/templates/.codex/skills/kafka-best-practices/SKILL.md +0 -52
  98. package/templates/.codex/skills/kotlin-best-practices/SKILL.md +0 -256
  99. package/templates/.codex/skills/lists/SKILL.md +0 -78
  100. package/templates/.codex/skills/memory-management/SKILL.md +0 -195
  101. package/templates/.codex/skills/memory-recall/SKILL.md +0 -152
  102. package/templates/.codex/skills/memory-save/SKILL.md +0 -126
  103. package/templates/.codex/skills/monitoring-setup/SKILL.md +0 -115
  104. package/templates/.codex/skills/npm-audit/SKILL.md +0 -72
  105. package/templates/.codex/skills/npm-publish/SKILL.md +0 -63
  106. package/templates/.codex/skills/npm-version/SKILL.md +0 -75
  107. package/templates/.codex/skills/optimize-analyze/SKILL.md +0 -55
  108. package/templates/.codex/skills/optimize-bundle/SKILL.md +0 -67
  109. package/templates/.codex/skills/optimize-report/SKILL.md +0 -74
  110. package/templates/.codex/skills/pipeline-architecture-patterns/SKILL.md +0 -83
  111. package/templates/.codex/skills/postgres-best-practices/SKILL.md +0 -66
  112. package/templates/.codex/skills/python-best-practices/SKILL.md +0 -222
  113. package/templates/.codex/skills/qa-lead-routing/SKILL.md +0 -290
  114. package/templates/.codex/skills/react-best-practices/SKILL.md +0 -101
  115. package/templates/.codex/skills/redis-best-practices/SKILL.md +0 -83
  116. package/templates/.codex/skills/result-aggregation/SKILL.md +0 -164
  117. package/templates/.codex/skills/rust-best-practices/SKILL.md +0 -267
  118. package/templates/.codex/skills/sauron-watch/SKILL.md +0 -144
  119. package/templates/.codex/skills/secretary-routing/SKILL.md +0 -203
  120. package/templates/.codex/skills/snowflake-best-practices/SKILL.md +0 -65
  121. package/templates/.codex/skills/spark-best-practices/SKILL.md +0 -52
  122. package/templates/.codex/skills/springboot-best-practices/SKILL.md +0 -218
  123. package/templates/.codex/skills/status/SKILL.md +0 -153
  124. package/templates/.codex/skills/supabase-postgres-best-practices/SKILL.md +0 -99
  125. package/templates/.codex/skills/typescript-best-practices/SKILL.md +0 -321
  126. package/templates/.codex/skills/update-docs/SKILL.md +0 -140
  127. package/templates/.codex/skills/update-external/SKILL.md +0 -149
  128. package/templates/.codex/skills/vercel-deploy/SKILL.md +0 -73
  129. package/templates/.codex/skills/web-design-guidelines/SKILL.md +0 -118
  130. package/templates/.codex/skills/writing-clearly-and-concisely/SKILL.md +0 -64
  131. package/templates/.codex/uninstall-hooks.sh +0 -52
  132. package/templates/AGENTS.md.en +0 -39
  133. package/templates/AGENTS.md.ko +0 -39
  134. package/templates/manifest.codex.json +0 -43
@@ -1,203 +0,0 @@
1
- ---
2
- name: secretary-routing
3
- description: Routes agent management tasks to the correct manager agent. Use when user requests agent creation, updates, audits, git operations, sync checks, or verification.
4
- user-invocable: false
5
- ---
6
-
7
- # Secretary Routing Skill
8
-
9
- ## Purpose
10
-
11
- Routes agent management tasks to the appropriate manager agent. This skill contains the coordination logic for orchestrating manager agents (mgr-creator, mgr-updater, mgr-supplier, mgr-gitnerd, mgr-sync-checker, mgr-sauron).
12
-
13
- ## Manager Agents
14
-
15
- | Agent | Purpose | Triggers |
16
- |-------|---------|----------|
17
- | mgr-creator | Create new agents | "create agent", "new agent" |
18
- | mgr-updater | Update external agents | "update agent", "sync" |
19
- | mgr-supplier | Validate dependencies | "audit", "check deps" |
20
- | mgr-gitnerd | Git operations | "commit", "push", "pr" |
21
- | mgr-sync-checker | Sync verification | "sync check", "verify sync" |
22
- | mgr-sauron | R016 auto-verification | "verify", "full check" |
23
- | mgr-claude-code-bible | Codex spec compliance | "spec check", "verify compliance" |
24
- | sys-memory-keeper | Memory operations | "save memory", "recall", "memory search" |
25
- | sys-naggy | TODO management | "todo", "track tasks", "task list" |
26
-
27
- ## Command Routing
28
-
29
- ```
30
- User Input → Routing → Manager Agent
31
-
32
- create → mgr-creator
33
- update → mgr-updater
34
- audit → mgr-supplier
35
- git → mgr-gitnerd
36
- sync → mgr-sync-checker
37
- verify → mgr-sauron
38
- spec → mgr-claude-code-bible
39
- memory → sys-memory-keeper
40
- todo → sys-naggy
41
- batch → multiple (parallel)
42
- ```
43
-
44
- ## Routing Rules
45
-
46
- ### 1. Single Task Routing
47
-
48
- ```
49
- 1. Parse user command and identify intent
50
- 2. Select appropriate manager agent:
51
- - "create agent X" → mgr-creator
52
- - "update agent Y" → mgr-updater
53
- - "audit agent Z" → mgr-supplier
54
- - "git commit/push/pr" → mgr-gitnerd
55
- - "sync check" → mgr-sync-checker
56
- - "verify" → mgr-sauron
57
- - "spec check" → mgr-claude-code-bible
58
- - "save/recall memory" → sys-memory-keeper
59
- - "todo/task list" → sys-naggy
60
- 3. Spawn Task with selected agent role
61
- 4. Monitor execution
62
- 5. Report result to user
63
- ```
64
-
65
- ### 2. Batch/Parallel Task Routing
66
-
67
- When command requires multiple independent operations:
68
-
69
- ```
70
- 1. Break down into sub-tasks
71
- 2. Identify parallelizable tasks (max 4)
72
- 3. Spawn parallel Task instances
73
- 4. Coordinate execution following R009
74
- 5. Aggregate results following R013 (ecomode)
75
- 6. Report summary to user
76
- ```
77
-
78
- Example:
79
- ```
80
- User: "Create golang, python, rust expert agents"
81
-
82
- Route:
83
- Task(mgr-creator role → create lang-golang-expert, model: "balanced")
84
- Task(mgr-creator role → create lang-python-expert, model: "balanced")
85
- Task(mgr-creator role → create lang-rust-expert, model: "balanced")
86
-
87
- Result: 3 agents created in parallel
88
- ```
89
-
90
- ## Sub-agent Model Selection
91
-
92
- Use Task tool's `model` parameter to optimize cost and performance:
93
-
94
- ### Model Mapping
95
-
96
- | Agent | Recommended Model | Reason |
97
- |-------|-------------------|--------|
98
- | mgr-creator | `balanced` | File generation, balanced |
99
- | mgr-updater | `balanced` | External sync, web fetch |
100
- | mgr-supplier | `fast` | File scan, validation |
101
- | mgr-gitnerd | `balanced` | Commit message quality |
102
- | mgr-sync-checker | `fast` | Fast verification |
103
- | mgr-sauron | `balanced` | Multi-round verification |
104
- | mgr-claude-code-bible | `balanced` | Spec compliance checks |
105
- | sys-memory-keeper | `balanced` | Memory operations, search |
106
- | sys-naggy | `fast` | Simple TODO tracking |
107
-
108
- ### Task Call Examples
109
-
110
- ```
111
- # Complex analysis (rare)
112
- Task(
113
- subagent_type: "general-purpose",
114
- prompt: "Analyze agent dependencies and suggest improvements",
115
- model: "reasoning"
116
- )
117
-
118
- # Standard manager task (create agent)
119
- Task(
120
- subagent_type: "general-purpose",
121
- prompt: "Create new lang-golang-expert agent following mgr-creator workflow",
122
- model: "balanced"
123
- )
124
-
125
- # Simple file operation
126
- Task(
127
- subagent_type: "general-purpose",
128
- prompt: "Search for all AGENT.md files and validate symlinks",
129
- model: "fast"
130
- )
131
- ```
132
-
133
- ## Parallel Execution
134
-
135
- Following R009:
136
- - Maximum 4 parallel instances
137
- - Only non-orchestrator agents
138
- - Independent tasks only
139
- - Proper resource management
140
-
141
- ## Display Format
142
-
143
- When spawning parallel tasks, use format: `{task-name}:{model}`
144
-
145
- ```
146
- [Parallel] Spawning 3 instances...
147
-
148
- [Instance 1] create-golang:balanced → lang-golang-expert
149
- [Instance 2] create-python:balanced → lang-python-expert
150
- [Instance 3] create-rust:balanced → lang-rust-expert
151
-
152
- [Progress] ████████░░░░ 2/3
153
-
154
- [Instance 1] create-golang:balanced ✓ lang-golang-expert created
155
- [Instance 2] create-python:balanced ✓ lang-python-expert created
156
- [Instance 3] create-rust:balanced ✓ lang-rust-expert created
157
-
158
- [Summary] 3/3 tasks completed successfully
159
- ```
160
-
161
- ## Ecomode Integration
162
-
163
- When 4+ parallel tasks are spawned, activate ecomode (R013):
164
- - Compact output format (status + 1-2 sentence summary)
165
- - Skip intermediate steps
166
- - Return essential results only
167
- - Aggregate with icons: ✓ (success), ✗ (failed), ⚠ (partial)
168
-
169
- ## Error Handling
170
-
171
- ```yaml
172
- retry_policy:
173
- max_retries: 3
174
- backoff: exponential
175
-
176
- failure_modes:
177
- single_failure: Report and continue
178
- critical_failure: Stop and escalate
179
- timeout: Retry or skip with notice
180
- ```
181
-
182
- ## Agent Teams Awareness
183
-
184
- Before routing via Task tool, check if Agent Teams is available (`CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS=1` or TeamCreate/SendMessage tools present).
185
-
186
- **Self-check:** Does this task need 3+ agents, shared state, or inter-agent communication? If yes, prefer Agent Teams over Task tool. See R018 for the full decision matrix.
187
-
188
- | Scenario | Preferred |
189
- |----------|-----------|
190
- | Single manager task | Task Tool |
191
- | Batch agent creation (3+) | Agent Teams |
192
- | Multi-round verification (sauron) | Task Tool |
193
- | Agent audit + fix cycle | Agent Teams |
194
-
195
- ## Usage
196
-
197
- This skill is NOT user-invocable. It should be automatically triggered when the main conversation detects agent management intent.
198
-
199
- Detection criteria:
200
- - User mentions agent creation/update/audit
201
- - Command starts with manager agent name
202
- - System operation requires coordination
203
- - Batch operation on agents/skills/guides
@@ -1,65 +0,0 @@
1
- ---
2
- name: snowflake-best-practices
3
- description: Snowflake best practices for cloud data warehouse design, query optimization, and cost management
4
- user-invocable: false
5
- ---
6
-
7
- # Snowflake Best Practices
8
-
9
- ## Warehouse Design
10
-
11
- ### Sizing (CRITICAL)
12
- - Start small (XS or S), scale up as needed
13
- - Enable auto-scaling for concurrency
14
- - Enable auto-suspend (1 minute idle)
15
- - Separate warehouses for different workloads
16
-
17
- ### Multi-Cluster Warehouses
18
- - Use for high concurrency (many users)
19
- - Set min/max clusters based on load
20
- - Scaling policy: Standard (default) or Economy
21
-
22
- ## Query Optimization
23
-
24
- ### Clustering Keys (CRITICAL)
25
- - Define clustering keys for frequently filtered columns
26
- - Improves micro-partition pruning
27
- - Monitor clustering depth
28
- - Automatic clustering: `ALTER TABLE ... CLUSTER BY (...)`
29
-
30
- ### Result Caching
31
- - 24-hour cache for identical queries
32
- - Use SHOW PARAMETERS to check cache status
33
- - Bypass cache with query hint: `/*+ NO_RESULT_CACHE */`
34
-
35
- ### Materialized Views
36
- - For repeated aggregations
37
- - Automatically refreshed on base table changes
38
- - Cost: storage + refresh compute
39
-
40
- ## Data Loading
41
-
42
- ### COPY INTO (CRITICAL)
43
- - Batch load from stages (S3/GCS/Azure)
44
- - File size: 100-250MB compressed (optimal)
45
- - Use pattern matching for multiple files
46
-
47
- ### Snowpipe
48
- - Continuous ingestion
49
- - Event-driven (S3 notifications)
50
- - Serverless compute
51
-
52
- ## Cost Optimization
53
-
54
- ### Resource Monitors
55
- - Set credit quotas per warehouse
56
- - Alerts and suspend actions
57
- - Track consumption with WAREHOUSE_METERING_HISTORY
58
-
59
- ### Storage
60
- - Use zero-copy cloning for dev/test
61
- - Time travel retention: 1 day (standard), 90 days (enterprise)
62
- - Fail-safe: 7 days (not configurable)
63
-
64
- ## References
65
- - [Snowflake Best Practices](https://docs.snowflake.com/en/user-guide/best-practices)
@@ -1,52 +0,0 @@
1
- ---
2
- name: spark-best-practices
3
- description: Apache Spark best practices for PySpark and Scala distributed data processing
4
- user-invocable: false
5
- ---
6
-
7
- # Apache Spark Best Practices
8
-
9
- ## Performance Optimization
10
-
11
- ### Broadcast Joins (CRITICAL)
12
- - Use `broadcast(small_df)` for small-large table joins
13
- - Default broadcast threshold: 10MB (`spark.sql.autoBroadcastJoinThreshold`)
14
- - Avoid broadcast for tables > 100MB
15
-
16
- ### Shuffles (CRITICAL)
17
- - Minimize shuffles: expensive operations
18
- - Use `coalesce()` to reduce partitions without shuffle
19
- - Use `repartition()` only when necessary (causes shuffle)
20
- - Predicate pushdown: filter before joins
21
-
22
- ### Caching
23
- - Cache DataFrames used multiple times: `df.cache()` or `df.persist()`
24
- - Choose storage level: MEMORY_ONLY, MEMORY_AND_DISK, DISK_ONLY
25
- - Unpersist when done: `df.unpersist()`
26
-
27
- ## Resource Management
28
-
29
- ### Executor Configuration
30
- - Executor memory: 80% of available memory per executor
31
- - Executor cores: 4-5 cores per executor (optimal)
32
- - Dynamic allocation: enable for varying workloads
33
-
34
- ### Partitioning
35
- - Optimal partition size: 100-200MB
36
- - Too few partitions: underutilized cluster
37
- - Too many partitions: task overhead
38
-
39
- ## Data Processing
40
-
41
- ### UDFs
42
- - Prefer built-in functions over UDFs
43
- - Use Pandas UDF for vectorized operations
44
- - Avoid Python UDFs (serialization overhead)
45
-
46
- ### Storage Formats
47
- - Parquet: default for analytics (columnar, compression)
48
- - ORC: alternative to Parquet
49
- - Delta/Iceberg: ACID transactions, time travel
50
-
51
- ## References
52
- - [Spark Performance Tuning](https://spark.apache.org/docs/latest/tuning.html)
@@ -1,218 +0,0 @@
1
- ---
2
- name: springboot-best-practices
3
- description: Spring Boot patterns for enterprise Java applications
4
- user-invocable: false
5
- ---
6
-
7
- ## Rules
8
-
9
- ### 1. Project Structure
10
- Layered architecture: controller (REST), service (business logic), repository (data access), model/entity, dto, config, exception.
11
-
12
- ### 2. Dependency Injection
13
- Constructor injection preferred. Use @RequiredArgsConstructor with final fields. Avoid field injection with @Autowired.
14
-
15
- ```java
16
- // GOOD: Constructor injection
17
- @Service
18
- @RequiredArgsConstructor
19
- public class UserService {
20
- private final UserRepository userRepository;
21
- private final EmailService emailService;
22
- }
23
- ```
24
-
25
- ### 3. REST API Design
26
- @RestController + @RequestMapping. Use @Validated for input, ResponseEntity for responses, proper HTTP status codes.
27
-
28
- ```java
29
- @RestController
30
- @RequestMapping("/api/v1/users")
31
- @RequiredArgsConstructor
32
- public class UserController {
33
- private final UserService userService;
34
-
35
- @GetMapping("/{id}")
36
- public ResponseEntity<UserResponse> getUser(@PathVariable Long id) {
37
- return ResponseEntity.ok(userService.findById(id));
38
- }
39
-
40
- @PostMapping
41
- @ResponseStatus(HttpStatus.CREATED)
42
- public UserResponse createUser(@Valid @RequestBody UserRequest request) {
43
- return userService.create(request);
44
- }
45
- }
46
- ```
47
-
48
- ### 4. Service Layer
49
- Business logic in services. @Transactional boundaries at service level. Interface + implementation pattern.
50
-
51
- ```java
52
- @Service
53
- @Transactional(readOnly = true)
54
- @RequiredArgsConstructor
55
- public class UserServiceImpl implements UserService {
56
- private final UserRepository userRepository;
57
-
58
- @Override
59
- public UserResponse findById(Long id) {
60
- User user = userRepository.findById(id)
61
- .orElseThrow(() -> new UserNotFoundException(id));
62
- return userMapper.toResponse(user);
63
- }
64
-
65
- @Override
66
- @Transactional
67
- public UserResponse create(UserRequest request) {
68
- User user = userMapper.toEntity(request);
69
- return userMapper.toResponse(userRepository.save(user));
70
- }
71
- }
72
- ```
73
-
74
- ### 5. Data Access
75
- Spring Data JPA. @Query or method naming for custom queries. @Entity with proper JPA annotations.
76
-
77
- ```java
78
- public interface UserRepository extends JpaRepository<User, Long> {
79
- Optional<User> findByEmail(String email);
80
-
81
- @Query("SELECT u FROM User u WHERE u.status = :status")
82
- List<User> findByStatus(@Param("status") UserStatus status);
83
- }
84
-
85
- @Entity
86
- @Table(name = "users")
87
- @Getter
88
- @NoArgsConstructor(access = AccessLevel.PROTECTED)
89
- public class User {
90
- @Id
91
- @GeneratedValue(strategy = GenerationType.IDENTITY)
92
- private Long id;
93
-
94
- @Column(nullable = false, unique = true)
95
- private String email;
96
-
97
- @Enumerated(EnumType.STRING)
98
- private UserStatus status;
99
- }
100
- ```
101
-
102
- ### 6. Exception Handling
103
- @RestControllerAdvice for global handling. Domain-specific exceptions with proper HTTP status mapping.
104
-
105
- ```java
106
- @RestControllerAdvice
107
- public class GlobalExceptionHandler {
108
- @ExceptionHandler(UserNotFoundException.class)
109
- @ResponseStatus(HttpStatus.NOT_FOUND)
110
- public ErrorResponse handleUserNotFound(UserNotFoundException ex) {
111
- return new ErrorResponse("USER_NOT_FOUND", ex.getMessage());
112
- }
113
-
114
- @ExceptionHandler(MethodArgumentNotValidException.class)
115
- @ResponseStatus(HttpStatus.BAD_REQUEST)
116
- public ErrorResponse handleValidation(MethodArgumentNotValidException ex) {
117
- List<String> errors = ex.getBindingResult()
118
- .getFieldErrors()
119
- .stream()
120
- .map(e -> e.getField() + ": " + e.getDefaultMessage())
121
- .toList();
122
- return new ErrorResponse("VALIDATION_ERROR", errors);
123
- }
124
- }
125
- ```
126
-
127
- ### 7. Configuration
128
- Profile-based: application-{profile}.yml. @ConfigurationProperties for type-safe config. Externalize sensitive values.
129
-
130
- ```yaml
131
- # application.yml
132
- spring:
133
- profiles:
134
- active: ${SPRING_PROFILES_ACTIVE:local}
135
- datasource:
136
- url: ${DATABASE_URL}
137
- username: ${DATABASE_USERNAME}
138
- password: ${DATABASE_PASSWORD}
139
- ```
140
-
141
- ```java
142
- @Configuration
143
- @ConfigurationProperties(prefix = "app")
144
- @Validated
145
- public class AppProperties {
146
- @NotBlank
147
- private String name;
148
-
149
- @Min(1)
150
- private int maxConnections;
151
- }
152
- ```
153
-
154
- ### 8. Security
155
- Spring Security with SecurityFilterChain. Externalize secrets. Proper authentication/authorization patterns.
156
-
157
- ```java
158
- @Configuration
159
- @EnableWebSecurity
160
- @RequiredArgsConstructor
161
- public class SecurityConfig {
162
- @Bean
163
- public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
164
- return http
165
- .csrf(csrf -> csrf.disable())
166
- .sessionManagement(session ->
167
- session.sessionCreationPolicy(SessionCreationPolicy.STATELESS))
168
- .authorizeHttpRequests(auth -> auth
169
- .requestMatchers("/api/v1/auth/**").permitAll()
170
- .requestMatchers("/api/v1/admin/**").hasRole("ADMIN")
171
- .anyRequest().authenticated())
172
- .build();
173
- }
174
- }
175
- ```
176
-
177
- ### 9. Testing
178
- @WebMvcTest (controller), @DataJpaTest (repository), @SpringBootTest (integration), @MockBean for mocking.
179
-
180
- ```java
181
- // Controller test
182
- @WebMvcTest(UserController.class)
183
- class UserControllerTest {
184
- @Autowired
185
- private MockMvc mockMvc;
186
-
187
- @MockBean
188
- private UserService userService;
189
-
190
- @Test
191
- void getUser_shouldReturnUser() throws Exception {
192
- given(userService.findById(1L))
193
- .willReturn(new UserResponse(1L, "test@example.com"));
194
-
195
- mockMvc.perform(get("/api/v1/users/1"))
196
- .andExpect(status().isOk())
197
- .andExpect(jsonPath("$.email").value("test@example.com"));
198
- }
199
- }
200
-
201
- // Repository test
202
- @DataJpaTest
203
- class UserRepositoryTest {
204
- @Autowired
205
- private UserRepository userRepository;
206
-
207
- @Test
208
- void findByEmail_shouldReturnUser() {
209
- User user = userRepository.save(new User("test@example.com"));
210
- Optional<User> found = userRepository.findByEmail("test@example.com");
211
- assertThat(found).isPresent();
212
- }
213
- }
214
- ```
215
-
216
- ## Application
217
-
218
- Always: constructor injection, layered architecture, DTOs, global exception handling, externalized config, proper security, layer-appropriate tests.
@@ -1,153 +0,0 @@
1
- ---
2
- name: status
3
- description: Show system status and health checks
4
- argument-hint: "[--verbose] [--health]"
5
- ---
6
-
7
- # System Status Skill
8
-
9
- Show comprehensive system status including agents, skills, guides, and health checks.
10
-
11
- ## Options
12
-
13
- ```
14
- --verbose, -v Detailed status
15
- --health, -h Health checks only
16
- ```
17
-
18
- ## Output Format
19
-
20
- ### Default Status
21
- ```
22
- AI Agent System - Status
23
-
24
- System:
25
- Rules: 10 loaded (R000-R009)
26
-
27
- Agents:
28
- Orchestrator: 1 (secretary)
29
- Manager: 3 (mgr-creator, mgr-updater, mgr-supplier)
30
- SW Engineer: 6
31
- Backend Engineer: 3
32
- Infra Engineer: 2
33
- Total: 15 agents
34
-
35
- Skills:
36
- Development: 8
37
- Backend: 3
38
- Infrastructure: 2
39
- Total: 13 skills
40
-
41
- Guides: 12 loaded
42
- Commands: 10 available
43
-
44
- Health: ✓ OK
45
- ```
46
-
47
- ### Verbose Status
48
- ```
49
- status --verbose
50
-
51
- AI Agent System - Detailed Status
52
-
53
- Rules:
54
- MUST:
55
- ✓ R000 language-policy
56
- ✓ R001 safety
57
- ✓ R002 permissions
58
- ✓ R006 agent-design
59
-
60
- SHOULD:
61
- ✓ R003 interaction
62
- ✓ R004 error-handling
63
- ✓ R007 agent-identification
64
- ✓ R008 tool-identification
65
-
66
- MAY:
67
- ✓ R005 optimization
68
- ✓ R009 parallel-execution
69
-
70
- Agents:
71
- orchestrator/
72
- ✓ secretary (internal)
73
-
74
- manager/
75
- ✓ mgr-creator (internal)
76
- ✓ mgr-updater (internal)
77
- ✓ mgr-supplier (internal)
78
-
79
- sw-engineer/
80
- ✓ lang-golang-expert (internal)
81
- ✓ lang-python-expert (internal)
82
- ✓ lang-rust-expert (internal)
83
- ✓ lang-kotlin-expert (internal)
84
- ✓ lang-typescript-expert (internal)
85
- ✓ fe-vercel-agent (external v1.0.0)
86
-
87
- sw-engineer/backend/
88
- ✓ be-fastapi-expert (internal)
89
- ✓ be-springboot-expert (internal)
90
- ✓ be-go-backend-expert (internal)
91
-
92
- infra-engineer/
93
- ✓ infra-docker-expert (internal)
94
- ✓ infra-aws-expert (internal)
95
-
96
- Skills:
97
- development/
98
- ✓ go-best-practices
99
- ✓ python-best-practices
100
- ✓ rust-best-practices
101
- ✓ kotlin-best-practices
102
- ✓ typescript-best-practices
103
- ✓ react-best-practices
104
- ✓ web-design-guidelines
105
- ✓ vercel-deploy
106
-
107
- backend/
108
- ✓ fastapi-best-practices
109
- ✓ springboot-best-practices
110
- ✓ go-backend-best-practices
111
-
112
- infrastructure/
113
- ✓ docker-best-practices
114
- ✓ aws-best-practices
115
-
116
- Guides:
117
- ✓ claude-code, web-design
118
- ✓ golang, python, rust, kotlin, typescript
119
- ✓ fastapi, springboot, go-backend
120
- ✓ docker, aws
121
-
122
- Commands:
123
- system: lists, status, help
124
- manager: create-agent, update-docs, update-external, audit-agents, fix-refs
125
- dev: dev-review, dev-refactor
126
-
127
- All systems operational.
128
- ```
129
-
130
- ### Health Check
131
- ```
132
- status --health
133
-
134
- Health Checks:
135
-
136
- Agents:
137
- ✓ 15/15 agents valid
138
- ✓ All agent files exist in .codex/agents/
139
-
140
- Dependencies:
141
- ✓ All skill references valid
142
- ✓ All guide references valid
143
-
144
- External Sources:
145
- ✓ fe-vercel-agent (github: reachable)
146
-
147
- Documentation:
148
- ✓ AGENTS.md in sync
149
- ✓ All .codex/agents/*.md files valid
150
- ✓ All .codex/skills/*/SKILL.md files valid
151
-
152
- Result: HEALTHY
153
- ```