.agents/skills/guides/SKILL.md
Use this skill for standalone tutorial work in micronaut-projects/micronaut-guides. Start from the caller's local Micronaut repository to understand the API, module, or behavior being taught, then do the guide implementation in a current clone of micronaut-guides.
Do not use this skill for ordinary module documentation under src/main/docs/guide; use the docs skill for that work. Do not use it for generic non-Micronaut tutorials.
Produce a reviewable pull request against micronaut-projects/micronaut-guides with source-backed guide content, validation evidence, and a PDF export of the rendered guide page for maintainers.
micronaut-guides and deduplicate against existing guides.Work from current upstream facts, not this skill's snapshot:
git clone https://github.com/micronaut-projects/micronaut-guides.git
cd micronaut-guides
git fetch origin
git switch master
git pull --ff-only
Before creating a new guide, inventory guides/*/metadata.json and nearby guide source. Check titles, slugs, tags, categories, apps, base, publish, and guide bodies for duplicates or near-duplicates. Treat publish: false guides as base or partial guides, not public topics, but inspect them when a new guide could reuse them.
If an existing guide already teaches the task, update that guide instead of creating a duplicate. If overlap is ambiguous, stop and ask for maintainer direction.
Always read these current upstream files before editing:
README.mdbuild.gradlebuildSrc/src/main/java/io/micronaut/guides/core/Guide.javabuildSrc/src/main/java/io/micronaut/guides/Category.javabuildSrc/src/main/resources/guide-metadata.schema.jsonUse references/repository-workflow.md for clone, branch, build-output, task naming, and validation details. Use references/guide-authoring-conventions.md for metadata, directory layout, macros, placeholders, and base-guide rules.
guides/<slug>/metadata.json.<slug>.adoc unless current metadata conventions require asciidoctor.languages in metadata and explain why in the PR.default. For multi-app guides, mirror existing app-directory patterns and declare each app in metadata.common:, source:, resource:, test:, testResource:, callout:, external:, dependency:, and guideLink: instead of manually duplicating generated paths.:exclude-for-languages: and :exclude-for-build: for language-specific or build-tool-specific text.Convert the guide slug from kebab-case to lowerCamelCase for dynamic tasks:
./gradlew <guideLowerCamel>Build
./gradlew <guideLowerCamel>RunTestScript
For broad validation or shared infrastructure changes, run:
./gradlew build
Generated applications are under build/code. Rendered HTML and site assets are under build/dist. For cloud, credentialed, or cost-incurring guides, do not run provisioning commands without explicit confirmation; document skipped validation and the reason.
After rendering, export the reviewed HTML page to PDF. Prefer a headless browser export when available, and fall back to a manual browser "Print to PDF" export when needed. Keep the PDF as local review evidence or attach it to the PR; do not commit generated PDFs unless maintainers explicitly request that.
The PR body must include:
See references/pdf-export-and-pr.md for the export workflow and PR checklist.
.env files, or generated PDFs containing private data.Use this skill for:
micronaut-guides for this module."Do not use this skill for:
src/main/docs/guide/toc.yml in this module."micronaut-guides was cloned or fetched before writing.publish: false bases were checked for duplicates.README.md, metadata schema, category source, and nearby guide examples were inspected.build/dist.references/repository-workflow.mdreferences/guide-authoring-conventions.mdreferences/guide-inventory.mdreferences/pdf-export-and-pr.md