feat: Enhance language-specific guidelines for Kotlin and Python in codex-skill.yaml

This commit is contained in:
2026-01-05 03:07:17 +00:00
parent 38862416d5
commit 821c207915

View File

@@ -4,6 +4,7 @@
style:
paradigm: "OO"
framework_bias: "Spring-like layering"
layering_bias: "Controller -> Service -> Repository with explicit domain/data layers"
class_file_bias: "small"
dataclass_bias: "strong"
@@ -39,6 +40,20 @@ layering_by_language:
domain: ["domain", "entities", "value-objects"]
dto: ["dto", "contracts", "types"]
mapping: ["mappers"]
kotlin:
controller: ["@RestController", "Controller"]
service: ["@Service", "UseCase"]
repository: ["@Repository"]
domain: ["domain"]
dto: ["dto"]
mapping: ["mapper"]
python:
controller: ["controllers", "routes"]
service: ["services", "use_cases"]
repository: ["repositories", "adapters", "ports"]
domain: ["domain", "entities", "value_objects"]
dto: ["dto", "contracts", "types"]
mapping: ["mappers"]
cpp:
controller: ["api", "handlers", "endpoints"]
service: ["services", "use_cases"]
@@ -48,8 +63,9 @@ layering_by_language:
mapping: ["mappers"]
size_limits:
class_file_lines_target: [50, 200]
methods_lines_soft_cap: 25
class_file_lines_target: [40, 160]
class_file_lines_soft_cap: 200
methods_lines_soft_cap: 20
cyclomatic_complexity_soft_cap: 8
one_top_level_class_per_file: true
@@ -73,21 +89,33 @@ naming:
repository_suffix: "Repository"
dto_suffixes: ["Request", "Response", "Dto"]
mapper_suffix: "Mapper"
exception_suffix: "Exception"
exception_suffixes: ["Exception"]
naming_by_language:
kotlin:
controller_suffixes: ["Controller"]
service_suffixes: ["Service", "UseCase"]
repository_suffixes: ["Repository"]
dto_suffixes: ["Request", "Response", "Dto"]
exception_suffixes: ["Exception"]
python:
controller_suffixes: ["Controller", "Routes"]
service_suffixes: ["Service", "UseCase"]
repository_suffixes: ["Repository", "Port", "Adapter"]
dto_suffixes: ["Request", "Response", "Dto"]
exception_suffixes: ["Error"]
typescript:
controller_suffixes: ["Controller", "Routes"]
service_suffixes: ["Service", "UseCase"]
repository_suffixes: ["Repository", "Port", "Adapter"]
dto_suffixes: ["Request", "Response", "Dto"]
error_suffixes: ["Error"]
exception_suffixes: ["Error"]
cpp:
controller_suffixes: ["Handler", "Endpoint"]
service_suffixes: ["Service", "UseCase"]
repository_suffixes: ["Repository", "Port", "Adapter"]
dto_suffixes: ["Request", "Response", "Dto"]
error_suffixes: ["Error"]
exception_suffixes: ["Error"]
dependencies:
domain_must_not_depend_on_framework: true
@@ -97,10 +125,12 @@ dependencies:
typescript_rules:
module_structure:
- "Prefer one exported class per file (with small helper types allowed)."
- "DTO files may export multiple related types (no behavior)."
- "Avoid deep barrel exports that obscure dependency direction."
types:
- "Prefer explicit types at boundaries."
- "Use readonly properties; prefer Readonly<T> for DTO shapes."
- "Use type/interface for DTOs; use classes for behavior."
runtime_validation:
- "If validation is needed, keep it at boundaries (e.g., schema/validator) not inside controllers."
async:
@@ -125,6 +155,8 @@ testing:
testing_by_language:
java: ["JUnit5", "SpringBootTest when needed"]
kotlin: ["JUnit5 or Kotest"]
python: ["Pytest"]
typescript: ["Jest"]
cpp: ["GoogleTest (if present) or Catch2 (if present); otherwise provide minimal harness"]