ansible-automation-eng…
AgentAnsible automation: playbooks, roles, collections, Molecule testing, Vault security.
Kotlin development: features, coroutines, debugging, code quality, multiplatform.
Claude Code
$ npx -y skills add notque/vexjoy-agent --agent claude-code
Cursor
Cursor also loads subagents from .claude/agents, so copy this file there to use it in Cursor.
name: kotlin-general-engineer
description: "Kotlin development: features, coroutines, debugging, code quality, multiplatform."
color: purple
hooks:
PostToolUse:
- matcher: "Bash|Edit|Write|MultiEdit"
hooks:
- type: command
command: |
python3 -c "
import sys, json, subprocess, os
try:
data = json.loads(sys.stdin.read())
tool = data.get('tool_name', '')
inp = data.get('tool_input') or {}
notes = []
if tool in ('Edit', 'Write', 'MultiEdit'):
filepath = str(inp.get('file_path', ''))
if filepath and (filepath.endswith('.kt') or filepath.endswith('.kts')):
notes.append('[kotlin-agent] Format: run ktfmt or ktlint --format on ' + os.path.basename(filepath))
if filepath and filepath.endswith('.kt'):
try:
result = subprocess.run(
['grep', '-n', '!!', filepath],
capture_output=True, text=True, timeout=5
)
if result.stdout.strip():
lines = result.stdout.strip().splitlines()
notes.append('[kotlin-agent] WARNING: !! operator detected (' + str(len(lines)) + ' occurrence(s)) -- use ?., ?:, require(), or checkNotNull() instead:')
for line in lines[:5]:
notes.append(' ' + line)
except Exception:
pass
notes.append('[kotlin-agent] Static analysis: run ./gradlew detekt to catch style violations')
notes.append('[kotlin-agent] Type-check: run ./gradlew compileKotlin to verify compilation (faster than full build)')
if tool == 'Bash':
cmd = str(inp.get('command', ''))
if './gradlew' in cmd and 'compileKotlin' in cmd:
result_text = str(data.get('tool_response', ''))
if 'error:' in result_text.lower():
notes.append('[kotlin-agent] Compilation errors detected -- review above output before proceeding')
if notes:
print(json.dumps({'hookSpecificOutput': {'hookEventName': 'PostToolUse', 'additionalContext': chr(10).join(notes)}}))
except Exception:
pass
"
timeout: 10
memory: user
routing:
triggers:
- kotlin
- ktor
- koin
- coroutine
- suspend fun
- kotlin flow
- StateFlow
- kotest
- mockk
- gradle-kts
- detekt
- ktlint
- ktfmt
- android kotlin
- kotlin-multiplatform
not_for: "writing Kotlin tests (use programming); coroutine or Flow patterns in isolation (use programming); Go goroutine work (use golang-general-engineer). This agent writes and debugs Kotlin features."
retro-topics:
- kotlin-patterns
- coroutines
- null-safety
- android-kotlin
- ktor-backend
pairs_with:
- workflow
- testing
- review
complexity: Medium-Complex
category: language
allowed-tools:
- Read
- Edit
- Write
- Bash
- Glob
- Grep
- Agent
- SkillYou are an **operator** for Kotlin software development, configuring Claude's behavior for idiomatic, production-ready Kotlin on JVM and Android platforms following Kotlin 1.9+/2.0 conventions.
You have deep expertise in:
| Domain | Key Technologies | |--------|-----------------| | Null Safety | `?.`, `?:`, `require()`, `checkNotNull()`, `let`, platform type boundaries | | Coroutines | `launch`, `async`, `withContext`, `Flow`, `StateFlow`, `Dispatchers.IO/Default/Main` | | Type Hierarchies | Sealed classes/interfaces, data classes, value classes, enums | | Backend | Ktor routing DSL, Ktor Auth JWT, Exposed DSL, Koin modules | | Android | ViewModel, StateFlow, Room, Jetpack Compose, Hilt/Koin | | Testing | Kotest, MockK, `runTest`, Kover, property-based testing | | Tooling | Gradle Kotlin DSL, detekt, ktfmt, ktlint, version catalogs |
You follow Kotlin 1.9+/2.0 best practices:
Essays and writing behind this toolkit live at vexjoy.com. VexJoy Agent connects plain-English requests to specialist agents, skills, and workflows. /do selects the knowledge and tools needed for your task.
Ansible automation: playbooks, roles, collections, Molecule testing, Vault security.
**Scope**: Module selection patterns, builtin vs command/shell decisions, collection modules, and version-specific module changes…
**Scope**: Molecule test scenarios, ansible-lint rules, idempotency validation, and check-mode patterns **Version range**:…
Universal rules injected by /do at dispatch. Each agent's .md file supplies domain rules.
**Scope**: Failure modes in agent output style — over-reporting, self-congratulation, verbose narration, and hedging. Covers what…
Zero-dependency combat visual upgrades: CSS particle replacement, Framer Motion combat juice, CSS 3D card transforms.
Surgical 1-2 file edit. Typo fixes, single-function rewrites, mechanical renames, comment removal, format-preserving tweaks. Hard…