agentsclimarketplace

Kora core master meta skill

Skill kora-projects/kora-skills/plugins/kora-v1/skills/kora-core-master-meta-skill

Build Java/Kotlin services on Kora Framework (ru.tinkoff.kora). Compile-time DI, reflection-free, annotation-processor (Java) or KSP (Kotlin) driven. Triggers - any Kora task, @KoraApp, @Component, @Module, @KoraSubmodule, @HttpController, @HttpClient, @Repository, @Query, @KafkaListener, @KafkaPublisher, gRPC, SOAP/WSDL, @S3.Client, MapStruct, @KoraAppTest, Testcontainers, @ConfigSource HOCON/YAML, OpenAPI codegen, @Json, metrics (Micrometer/Prometheus), tracing (OpenTelemetry OTLP), logging, probes, @Valid/@Validate, @Log/@Mdc, @CircuitBreaker/@Retry/@Timeout/@Fallback, @Schedule*, @Cacheable/@CachePut/@CacheInvalidate, JDBC/Hikari/Undertow. Use when - Kora build/setup/project/dependency/services/concept/asks mentioned.From its SKILL.md

Install
npx -y skills add kora-projects/kora-skills --skill kora-core-master-meta-skill

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
  • runs commandsInstructs the agent to run 7 commands, including `./gradlew clean classes` and 6 more.

SKILL.md

22.8 KB, ~6.2k tokens by cl100k_base, as published. Nobody here has run it

Kora Developer — Meta-skill for development on the Kora Framework

Kora Version: 1.x (for the latest version see the changelog)
Languages: Java (JDK 25), Kotlin 1.9+ (JDK 21) Build: Gradle 9.5.1+ (recommended)


READ THIS FIRST — CORE RULES

Three non-negotiable rules that apply to EVERY Kora task, from the FIRST session load:

RuleWhatWhy
CORE RULE #1Follow navigation priority: CLAUDE.md → SKILL.md → references/ → search journal → .kora-agent/Sub-skills + references are primary; journal has recent discoveries
CORE RULE #2Kora-only development — NO Spring/other frameworks, NO unnecessary comments/JavadocKora is compile-time DI; code should be self-explanatory
CORE RULE #3Journal Kora Framework incorrect usage (agent self-realized or user-pointed)Journal feeds skill improvements and prevents repeating Kora mistakes

WORKFLOW: Minimal code → compile (./gradlew clean classes) → tests → run (./gradlew test). Stuck? ./gradlew --stop.

CORE RULE #3 SCOPE: ONLY for Kora Framework incorrect usage — NOT for project-specific business logic, domain rules, or non-Kora issues.

VIOLATION RESPONSE: If you catch yourself violating any rule — STOP immediately, acknowledge the violation, and restart from the correct step.


Introduction

This meta-skill is the single entry point for Kora Framework development. It routes to 39 specialized domain skills, each with its own narrow area of expertise.

Read this file first when:

  • Starting a new Kora microservice project from scratch (Java or Kotlin)
  • Adding or refactoring @KoraApp application graph with *Module interfaces
  • Choosing which Kora modules to plug in (HTTP, Database, Kafka, gRPC, SOAP, S3, Telemetry)
  • Debugging DI container issues ("dependency not found", ambiguous bindings, graph build failures)
  • Configuring typed config with @ConfigSource and environment variable substitution
  • Planning a multi-module Gradle project with @KoraSubmodule boundaries

CORE RULES — Detailed

These three rules are NON-NEGOTIABLE. Read and follow them at EVERY session start, before ANY Kora task, and continuously throughout the work.

CORE RULE #1: Navigation Priority

ALWAYS follow this order — NO EXCEPTIONS:

1. This meta-skill (CLAUDE.md) — navigation + architectural principles
        ↓
2. Relevant sub-skill (SKILL.md in ../<name>/) — concentrated expertise with templates
        ↓
3. Reference documents inside sub-skill (references/) — detailed patterns
        ↓
4. Search kora-journal (~/.kora-journal/) — check for existing solutions
        ↓
5. External docs/examples (.kora-agent/) — ONLY if steps 1-4 don't cover the case

VIOLATION: Jumping straight to Kora documentation or examples without reading the sub-skill first → STOP AND RESTART from step 2.

WHY: Sub-skills contain battle-tested patterns, scripts, and templates. External docs may be outdated or miss Kora-specific nuances.

Search commands:

# Search by keywords (in content + tags)
python kora-journal/scripts/kora_journal.py search "http interceptor auth" --limit 5

# Search by tags only (more precise)
python kora-journal/scripts/kora_journal.py search "auth oauth2" --by-tags

# Filter by status
python kora-journal/scripts/kora_journal.py search "Principal" --status pending

If journal has relevant entry:

  1. Read the entry file (~/.kora-journal/<project>/<module>/YYYY-MM-DD_slug.md)
  2. Apply the solution from the entry
  3. If entry is pending and you applied it → mark as integrated
  4. If entry helped but needs update → add new entry with improvements

If journal has NO relevant entry:

  • Continue to step 5 (external docs/examples)
  • After solving → add new entry to journal (CORE RULE #3)

CORE RULE #2: Kora-Only Development

Kora is an AUTHENTIC framework with its own annotations, classes, libraries, and modules.

NEVER:

  • Use Spring annotations (@Autowired, @Service, @Repository, @Configuration, etc.)
  • Use Micronaut/Quarkus/Helidon annotations
  • Hallucinate non-existent Kora annotations
  • Apply patterns from other frameworks without verifying in Kora skills first
  • Write comments or Javadoc in code UNLESS user explicitly requested OR truly complex logic (byte operations, encodings, cryptography, etc.)

ALWAYS:

  • Use ONLY Kora annotations (@KoraApp, @Component, @Module, @HttpController, @Repository, etc.)
  • Verify every annotation/class in the relevant Kora sub-skill BEFORE using
  • Follow Kora's compile-time DI model (no reflection, no runtime proxies)
  • Write self-explanatory code with clear names — let code speak for itself

VIOLATION: Using Spring/other framework patterns → STOP, DELETE, REWRITE using Kora skills. VIOLATION: Writing unnecessary comments/Javadoc → REMOVE unless user requested or complexity justifies it.


CORE RULE #3: Continuous Improvement Journal

ALWAYS use the kora-journal to record Kora Framework incorrect usage discovered during development.

SCOPE — Kora Incorrect Usage ONLY:

✅ Record in Journal❌ Do NOT Record
Agent used wrong Kora annotation (self-realized or user-pointed)Application business logic
Agent hallucinated non-existent Kora APIProject-specific domain rules
Agent misapplied Kora pattern (DI, AOP, config, etc.)Temporary project workarounds
Agent violated Kora best practices from skillsUI/UX preferences
Skill documentation was unclear/wrongNon-Kora framework issues
Agent wrote unnecessary comments/Javadoc (user didn't request)

Trigger: When YOU (agent) realize OR USER points out that you used Kora Framework incorrectly.

Location: ~/.kora-journal/<project>/<module>/<YYYY-MM-DD>_slug.md — each entry is a separate file, shared across ALL sessions and projects.

# Add a journal entry AFTER discovering Kora incorrect usage
python kora-journal/scripts/kora_journal.py add "Wrong annotation used" \
  --context "What we were doing" \
  --problem "What Kora pattern was misused" \
  --solution "Correct Kora pattern" \
  --files ../kora-xxx/SKILL.md

WHY: Journal entries become the source of truth for future improvements. They feed back into skill updates and prevent repeating Kora mistakes.

VIOLATION: Discovering Kora incorrect usage without recording it → GO BACK AND ADD a journal entry.


ENFORCEMENT: These three CORE RULES apply to EVERY Kora task, from the FIRST session load and continuously thereafter. If you catch yourself violating any rule — STOP immediately, acknowledge the violation, and restart from the correct step.


Sub-skill Navigation

39 granular domain skills organized by domain. Read the SKILL.md of the relevant sub-skill before writing code and then follow CORE RULE #1 if required.

Foundation (start here for new projects)

TaskSub-skillPath
Gradle scaffolding, wrapper, build scripts, project structurekora-project-setup-java../kora-project-setup-java/SKILL.md
Gradle scaffolding (Kotlin), KSP, Kotlin DSLkora-project-setup-kotlin../kora-project-setup-kotlin/SKILL.md
Kora BOM, modules, dependencies, annotation processorskora-project-dependencies../kora-project-dependencies/SKILL.md
Project generator, Spring Initializr style, working exampleskora-project-dependencies (generator)../kora-project-dependencies/scripts/generate_project.py
HOCON config, typed @ConfigSource, env substitutionkora-config-hocon../kora-config-hocon/SKILL.md
YAML config (alternative to HOCON)kora-config-yaml../kora-config-yaml/SKILL.md

Dependency Injection

TaskSub-skillPath
Compile-time DI, @KoraApp, @Component, @Module, factorieskora-di-compile../kora-di-compile/SKILL.md
Runtime DI, @Root, Lifecycle, @Tag, All<T>, ValueOf<T>kora-di-runtime../kora-di-runtime/SKILL.md

Database

TaskSub-skillPath
JDBC repositories, @EntityJdbc, @Query, SQL macros, transactionskora-database-jdbc../kora-database-jdbc/SKILL.md
Cassandra, @EntityCassandra, @UDT, CQL, profileskora-database-cassandra../kora-database-cassandra/SKILL.md
Flyway and Liquibase migrations, SQL-based versioningkora-database-migration../kora-database-migration/SKILL.md

Testing

TaskSub-skillPath
JUnit 5 component tests, @KoraAppTest, @TestComponent, mockskora-testing-junit-java../kora-testing-junit-java/SKILL.md
JUnit 5 component tests (Kotlin), MockKkora-testing-junit-kotlin../kora-testing-junit-kotlin/SKILL.md
Black-box E2E tests, AppContainer, Testcontainers, Dockerkora-testing-blackbox../kora-testing-blackbox/SKILL.md

Communication

TaskSub-skillPath
HTTP server, @HttpController, @HttpRoute, @Path, @Query, @Jsonkora-http-server../kora-http-server/SKILL.md
HTTP server auth, BasicAuth, Bearer, API keys, SecurityContextkora-http-server-auth../kora-http-server-auth/SKILL.md
HTTP client, @HttpClient, declarative interfaces, interceptorskora-http-client../kora-http-client/SKILL.md
HTTP client auth, BasicAuth, Bearer, API keyskora-http-client-auth../kora-http-client-auth/SKILL.md
gRPC server, GrpcServerModule, @Component handlerskora-grpc-server../kora-grpc-server/SKILL.md
gRPC client, GrpcClientModule, @Tag stub injectionkora-grpc-client../kora-grpc-client/SKILL.md
SOAP client, WSDL-to-Java, SoapClientModule, generated clientskora-soap-client../kora-soap-client/SKILL.md
Kafka producer, @KafkaPublisher, transactionalkora-kafka-producer../kora-kafka-producer/SKILL.md
Kafka consumer, @KafkaListener, batch, error handlingkora-kafka-consumer../kora-kafka-consumer/SKILL.md
OpenAPI server codegen, delegates, controllerskora-openapi-generator-server../kora-openapi-generator-server/SKILL.md
OpenAPI client codegen, typed Api interfaceskora-openapi-generator-client../kora-openapi-generator-client/SKILL.md
OpenAPI management, Swagger UI, RapiDoc, spec publishingkora-openapi-management../kora-openapi-management/SKILL.md

Telemetry

TaskSub-skillPath
OpenTelemetry tracing, OTLP, spans, Jaeger/Zipkinkora-telemetry-tracing../kora-telemetry-tracing/SKILL.md
Micrometer metrics, Prometheus scrape, custom metricskora-telemetry-metrics../kora-telemetry-metrics/SKILL.md
SLF4J/Logback, structured logging, KoraAsyncAppenderkora-telemetry-logging../kora-telemetry-logging/SKILL.md

AOP

TaskSub-skillPath
@Retry, @CircuitBreaker, @Timeout, @Fallbackkora-aop-resilient../kora-aop-resilient/SKILL.md
@Log, @Mdc, method logging aspectkora-aop-logging../kora-aop-logging/SKILL.md
@Cacheable, @CachePut, @CacheInvalidate, Caffeine/Rediskora-aop-caching../kora-aop-caching/SKILL.md
@ScheduleAtFixedRate, @ScheduleWithCronkora-aop-scheduling-jdk../kora-aop-scheduling-jdk/SKILL.md
Quartz scheduling, cron jobs, clusteredkora-aop-scheduling-quartz../kora-aop-scheduling-quartz/SKILL.md
@Valid, @Validate, JSR-380 constraintskora-aop-validation../kora-aop-validation/SKILL.md

Other

TaskSub-skillPath
JSON DTOs, sealed discriminators, custom (de)serializationkora-json../kora-json/SKILL.md
S3 object storage, AWS S3/MinIO, @S3.Client, multipart uploadskora-s3../kora-s3/SKILL.md
MapStruct mappers, DTO ↔ entity mappingkora-mapstruct../kora-mapstruct/SKILL.md

Development Tools

TaskSub-skillPath
Continuous improvement journal, Kora incorrect usage trackingkora-journal../kora-journal/SKILL.md
Learn Kora from scratch, guided tutorials, explain conceptskora-teacher../kora-teacher/SKILL.md

Development & Architecture

Workflow (MANDATORY)

StepCommandWhen
1. Write minimal incrementsOne change at a time — single annotation/method/class
2. Compile./gradlew clean classesAfter any Kora annotation change, before tests
3. Write integration testsUse @KoraAppTest + Testcontainers; test real endpoints/queries/messages
4. Run tests./gradlew testAfter compilation succeeds, before commit
5. Stop daemons if stuck./gradlew --stopWhen builds hang or clean fails with "Unable to delete directory"

Architectural Principles

Compile-time first: Kora avoids reflection, dynamic proxies, and runtime bytecode generation. All magic happens at compile time (DI → *ComponentImpl.java, HTTP → *HttpRouter.java, AOP → *Aspect.java, JSON → *JsonReader.java/*JsonWriter.java, Repositories → *RepositoryImpl.java).

Validate by compiling + testing: If code compiles and tests pass — implementation is correct.

Don't mix paradigms: If you generate a controller from OpenAPI — use the delegate, don't write a manual controller. If you use Kora @HttpClient — don't use OkHttp by hand for the same target.


Debugging & Troubleshooting

Look at generated code

Kora is compile-time. If DI, AOP, or other mechanisms are unclear:

  1. Open $buildDir/generated/sources/annotationProcessor/ (Java) or $buildDir/generated/ksp/ (Kotlin)
  2. Find generated class (*ComponentImpl, *Graph, *Aspect, *Delegate)
  3. Study how code is wired together

OpenAPI delegates: Before implementing, check generated *Delegate interface — methods to implement, return types (ApiResponses), HTTP status handling.

Build problems

ProblemSolution
Build hangs / fails after clean./gradlew --stop — terminate daemons, retry
Generated classes broken after refactorClean build/generated/, rebuild
"Required dependency not found: Foo"Check: @Component on class, extends *Module on @KoraApp, @KoraSubmodule for multi-module
ApplicationGraph missing after cleanRun ./gradlew classes — annotation processors must run first
IDE shows errors but compilation passesIDE caching — invalidate caches / restart

Documentation & Resources

Setup (CORE RULE #2 PREREQUISITE)

Clone docs and examples BEFORE any Kora development:

mkdir -p .kora-agent
git clone --depth 1 https://github.com/kora-projects/kora-docs.git .kora-agent/kora-docs
git clone --depth 1 https://github.com/kora-projects/kora-examples.git .kora-agent/kora-examples
rm -rf .kora-agent/kora-docs/.git .kora-agent/kora-examples/.git
echo ".kora-agent/" >> .gitignore

Verify: .kora-agent/ must contain both kora-docs/ and kora-examples/.

Quick Reference

ModuleDocsGuidesGuide appsExample apps
Bootstrapconfig.md, container.md, general.mdgetting-started.md, dependency-injection.md, config-hocon.md, config-yaml.mdkora-java-guide-getting-started-app, kora-java-guide-dependency-injection-introduction-app, kora-java-guide-config-hocon-app, kora-java-guide-config-yaml-appkora-java-helloworld, kora-java-config-hocon
HTTP Serverhttp-server.mdhttp-server.md, http-server-advanced.mdkora-java-guide-http-server-app, kora-java-guide-http-server-advanced-appkora-java-http-server, kora-java-http-server-undertow
HTTP Clienthttp-client.mdhttp-client.md, http-client-advanced.mdkora-java-guide-http-client-app, kora-java-guide-http-client-advanced-appkora-java-http-client, kora-java-http-client-apache
OpenAPIopenapi.mdopenapi-http-server.md, openapi-http-server-advanced.md, openapi-http-client.mdkora-java-guide-openapi-http-server-app, kora-java-guide-openapi-http-server-advanced-app, kora-java-guide-openapi-http-client-appkora-java-openapi-generator-http-server/client
Database JDBCdatabase-jdbc.md, database-repository.mddatabase-jdbc.md, database-jdbc-advanced.mdkora-java-guide-database-jdbc-app, kora-java-guide-database-jdbc-advanced-appkora-java-database-jdbc, kora-java-crud
Database Cassandradatabase-cassandra.mddatabase-cassandra.mdkora-java-guide-database-cassandra-appkora-java-database-cassandra
gRPCgrpc.mdgrpc-server.md, grpc-server-advanced.md, grpc-client.md, grpc-client-advanced.mdkora-java-guide-grpc-server-app, kora-java-guide-grpc-server-advanced-app, kora-java-guide-grpc-client-app, kora-java-guide-grpc-client-advanced-appkora-java-grpc-server, kora-java-grpc-client
Kafkakafka.mdmessaging-kafka.mdkora-java-guide-messaging-kafka-appkora-java-kafka, kora-java-kafka-batch
JSONjson.mdjson.mdkora-java-guide-json-appkora-java-json, kora-java-json-module
Validationvalidation.mdvalidation.mdkora-java-guide-validation-appkora-java-validation
Telemetrytelemetry.md, metrics.md, tracing.mdobservability.md, observability-metrics.md, observability-tracing.md, observability-probes.mdkora-java-guide-observability-appkora-java-telemetry, kora-java-metrics-micrometer
Logginglogging.mdobservability.mdkora-java-guide-observability-appkora-java-logging-logback
Cachecache-caffeine.md, cache-redis.mdcache.md, cache-multi-level.mdkora-java-guide-cache-app, kora-java-guide-cache-multi-level-appkora-java-cache-caffeine, kora-java-cache-redis
Resilienceresilient.mdresilient.mdkora-java-guide-resilient-appkora-java-resilient
Schedulingscheduling.mdkora-java-scheduling-jdk, kora-java-scheduling-quartz
S3s3.mds3.mdkora-java-guide-s3-appkora-java-s3-client-aws, kora-java-s3-client-minio
MapStructmapper.mdkora-java-mapper-mapstruct
Testingtesting-junit.md, testing-integration.md, testing-black-box.mdkora-java-guide-testing-junit-app, kora-java-guide-testing-integration-app, kora-java-guide-testing-black-box-app

Kotlin equivalents: All kora-java-* apps have Kotlin counterparts — replace javakotlin in the name (e.g., kora-kotlin-guide-http-server-app, kora-kotlin-http-server).

Paths: Docs: .kora-agent/kora-docs/mkdocs/docs/en/documentation/<module>.md | Guides: .kora-agent/kora-docs/mkdocs/docs/en/guides/<guide>.md | Examples apps: .kora-agent/kora-examples/examples/... | Guides apps: .kora-agent/kora-examples/guides/...

Limitations

Not covered (narrow use cases — read docs directly):

  • R2DBC / Vert.x drivers, Camunda (BPMN/REST, Zeebe), GraalVM native-image

Database drivers: This meta-skill covers JDBC as canonical path. Kora also provides database-r2dbc and database-vertx — but Kora maintainers do not recommend them. Start with JDBC + Hikari. Deviate only with hard requirement and prod-experience sign-off.

Source Priority

  1. Sub-skills — concentrated expertise with templates and scripts
  2. Reference documents inside each sub-skill (references/)
  3. Kora documentation or guides.kora-agent/kora-docs/docs/en/documentation/<module>.md or .kora-agent/kora-docs/mkdocs/docs/en/guides/<guide>.md
  4. Examples.kora-agent/kora-examples/examples/... or .kora-agent/kora-examples/guides/...
  5. Changeloghttps://raw.githubusercontent.com/kora-projects/kora-docs/refs/heads/master/mkdocs/docs/en/changelog/changelog.md

Discrepancy: Trust the source and update the skill.


Continuous Improvement Journal

See CORE RULE #3 (line 120) for full journal requirements.

Quick reference:

  • When: After discovering Kora incorrect usage (self-realized or user-pointed)
  • Where: ~/.kora-journal/<project>/<module>/<YYYY-MM-DD>_slug.md
  • Format: Separate Markdown file per entry
  • NOT for: Project business logic, domain rules, non-Kora issues
# Add journal entry
python kora-journal/scripts/kora_journal.py add "Title" \
  --context "..." --problem "..." --solution "..." --files "..."

Docs: ../kora-journal/SKILL.md

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 325,949. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.