本文へ移動
cccskills
無料GitHub で公開

progen

Use when the user wants to create/generate/scaffold a new Spring Boot project (Maven or Gradle, REST API / Web App / Spring Boot + Angular full stack). Derives progen CLI inputs from the user's plain-English project description, asks for any missing mandatory info, ensures the progen binary is available, and runs it to generate the project. If the user asks for features progen doesn't support natively, generate the base project first, then add those features on top of the generated code.

インストール方法を見る

含まれるファイル(2)

  • SKILL.md10.8 KB
  • agents/openai.yaml182 B

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

progen: Spring Boot Project Generator

progen is an offline, single-binary Go CLI (https://github.com/sivaprasadreddy/progen) that scaffolds a complete, production-ready Spring Boot project: build files, Java source, tests, Docker Compose, GitHub Actions, DB migrations, security, and more.

This skill's job: turn a user's description of the app they want into a .progen.json config, fill gaps by asking the user, run progen to generate the project, and — if the user asked for anything progen can't do natively — layer that on afterward by editing the generated code.

Step 1 — Ensure progen is available

Check for a working binary:

progen --version

If not found (or version looks outdated and the user wants latest), download the right asset for the current OS/arch from the latest release:

# Example for macOS arm64 — adapt OS/ARCH from `uname -s` / `uname -m`
curl -L -o progen.tar.gz \
  "https://github.com/sivaprasadreddy/progen/releases/latest/download/progen_<os>_<arch>.tar.gz"
tar -xzf progen.tar.gz
chmod +x progen
sudo mv progen /usr/local/bin/   # or anywhere on PATH
progen --version

If the exact asset naming isn't obvious, fetch the releases page (https://github.com/sivaprasadreddy/progen/releases) to find the correct filename for the user's OS/architecture before downloading. If a Go toolchain is available, go install github.com/sivaprasadreddy/progen@latest also works and avoids the asset-naming problem entirely.

On macOS, downloaded binaries may trigger a Gatekeeper "cannot be opened because the developer cannot be verified" error — tell the user to right-click → Open once in Finder to approve it (or xattr -d com.apple.quarantine progen if working non-interactively is fine with them).

Step 2 — Config schema (.progen.json)

progen takes no scaffolding info via flags — everything goes through a JSON config file consumed as progen -c <file> (interactive prompts are the only other input path, and are not used by this skill). Field names below are exactly as marshaled to JSON (Go field names, capitalized).

FieldType / allowed valuesDefaultRequired
AppNamestring (used as output directory name)myappYes — ask if not derivable
GroupIDstring, e.g. com.mycompanycom.mycompanyYes — ask if not derivable
ArtifactIDstring, e.g. boot-demomyappYes — ask if not derivable
AppVersionstring, e.g. 1.0.01.0.0No
BasePackagestring, e.g. com.mycompany.myappderived from GroupID+ArtifactIDNo
AppType"REST API" | "Web App" | "Spring Boot + Angular Full Stack""REST API"No (but shapes many other choices)
BuildTool"Maven" | "Gradle""Maven"No
PersistenceType"Spring Data JPA" | "Spring JdbcClient" | "jOOQ""Spring Data JPA"No
DbType"PostgreSQL" | "MySQL" | "MariaDB""PostgreSQL"No
DbMigrationTool"Flyway" | "Liquibase""Flyway"No
SpringCloudAWSSupportboolfalseNo
ThymeleafSupportbool — set automatically to true when AppType is "Web App"; leave false otherwisefalseNo (don't ask; derive from AppType)
HTMXSupportbool — only meaningful when AppType is "Web App"falseNo
EmailSupportboolfalseNo
RabbitMQSupportboolfalseNo
RedisCachingSupportboolfalseNo
OpenTelemetrySupportboolfalseNo
K8sSupportbool — generates Kubernetes manifestsfalseNo

Notes:

  • Spring Modulith package structure, Docker Compose, Testcontainers, JUnit, Spotless, SDKMAN, GitHub Actions, Renovate, and .editorconfig/AI-assistant config files are always generated — there's no toggle for them.
  • "Spring Boot + Angular Full Stack" additionally scaffolds an Angular + TailwindCSS frontend; HTMXSupport and ThymeleafSupport don't apply to it.
  • Get a fresh copy of these defaults any time with progen init, which writes a .progen.json pre-filled with the defaults above into the current directory.

Step 3 — Derive config from the user's description

Read the user's description and map it onto the fields above:

  • App/artifact identity: look for an explicit name, company/org (→ GroupID), or repo-style slug (→ ArtifactID, AppName). If genuinely absent, this is mandatory — ask (see Step 4).
  • Kind of app: "API", "backend", "microservice" → RestApi. "website", "server-rendered pages", "HTMX" → WebApp (and set HTMXSupport if HTMX is mentioned). "Angular", "SPA", "single page app" → SpringBootAngularFullStack.
  • Build tool: "Maven"/"Gradle" mentioned explicitly → use it; otherwise default Maven.
  • Persistence: "JPA"/"Hibernate" → SpringDataJPA; "JdbcClient"/"plain JDBC"/"no ORM" → SpringJdbcClient; "jOOQ" → SpringJOOQ.
  • Database: "Postgres" → PostgreSQL; "MySQL" → MySQL; "MariaDB" → MariaDB.
  • Migrations: "Flyway" or unspecified → Flyway; "Liquibase" → Liquibase.
  • Feature keywords → booleans:
    • AWS/S3/SQS/Cloud → SpringCloudAWSSupport;
    • email/SMTP/notifications → EmailSupport;
    • RabbitMQ/messaging/queue → RabbitMQSupport;
    • caching/Redis → RedisCachingSupport;
    • tracing/observability/OpenTelemetry → OpenTelemetrySupport;
    • Kubernetes/k8s/Helm-adjacent manifests → K8sSupport.
  • Anything not mentioned: leave at its default rather than asking — only the identity fields in Step 4 are worth interrupting the user for.

Step 4 — Ask about missing mandatory info

Only pause to ask when AppName, GroupID, or ArtifactID cannot be reasonably derived from the description (progen's own prompt flow treats these three as required; everything else has a sane default). Ask concisely, e.g.:

What should the app/artifact be called, and what's the group id (e.g. com.acme)?

Don't ask about AppType, BuildTool, PersistenceType, DbType, DbMigrationTool, or the feature booleans — apply the Step 3 mapping and fall back to defaults silently.

Step 5 — Generate the project

Write the derived config to a .progen.json file, then run progen non-interactively:

cat > .progen.json <<'EOF'
{
 "AppType": "REST API",
 "AppName": "orders-service",
 "GroupID": "com.acme",
 "ArtifactID": "orders-service",
 "AppVersion": "1.0.0",
 "BasePackage": "com.acme.ordersservice",
 "BuildTool": "Maven",
 "PersistenceType": "Spring Data JPA",
 "DbType": "PostgreSQL",
 "DbMigrationTool": "Flyway",
 "SpringCloudAWSSupport": false,
 "ThymeleafSupport": false,
 "HTMXSupport": false,
 "EmailSupport": false,
 "RabbitMQSupport": false,
 "RedisCachingSupport": false,
 "OpenTelemetrySupport": false,
 "K8sSupport": false
}
EOF
progen -c .progen.json

This creates a new directory named after AppName containing the generated project (and drops a copy of the resolved config as <AppName>/.progen.json). Any invalid enum value is replaced with its default and a WARNING: is printed — check the command output for these.

Step 6 — Features progen doesn't support

progen only knows the fields in Step 2's table. If the user asked for something outside that list (e.g. GraphQL, a specific cloud provider integration beyond Spring Cloud AWS, a particular auth provider, gRPC, a non-listed database, CI platform other than GitHub Actions):

  1. Generate the base project first using the closest matching config from Steps 3–5.
  2. Then add the extra feature by hand-editing the generated project — treat it as a normal Spring Boot codebase from that point on (respect its existing conventions: package layout under BasePackage, the chosen persistence/build tool, existing test setup, etc.).

Don't block project generation waiting on unsupported-feature design decisions — scaffold first, layer the custom feature on top second.

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

Apply the changes from all open Renovate bot pull requests of a GitHub repository into the local working tree. Use this skill when asked to apply, merge locally, consolidate, batch, or try out Renovate/dependabot-style dependency update PRs so the combined upgrade can be built and tested in one go. This skill only modifies local files; it never commits, pushes, merges, or closes anything on GitHub.

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

Review Java code for bugs, duplicate code, correctness risks, maintainability improvements, and missing tests. By default review files modified in git; when the user explicitly names files, classes, packages, or a diff, review that scope instead. Generate a detailed review.md report with actionable comments and fixes.

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

Use this skill when asked to perform any of the following actions in a Java project: - To add jspecify support - To prevent NullPointerExceptions - To better handle Nullability This skill will add jspecify dependency, configure Maven or Gradle build to automatically use jspecify for checking Nullability issues.

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

Collaboratively design, implement, review, and refine software features with a human developer using an iterative pair programming workflow. Prioritize understanding, explicit approval, small reviewable changes, and synchronized specifications.

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

Build Spring Boot 4.x applications following the best practices. Use this skill: * When developing Spring Boot applications using Spring MVC, Spring Data JPA, Spring Modulith, Spring Security * To create recommended Spring Boot package structure * To implement REST APIs, entities/repositories, service layer, modular monoliths * To use Thymeleaf view templates for building web applications * To write tests for REST APIs and Web applications * To write ArchUnit tests for testing architecture * To configure the recommended plugins and configurations to improve code quality, and testing while using Maven. * To use Spring Boot's Docker Compose support for local development * To create Taskfile for easier execution of common tasks while working with a Spring Boot application

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

Verifies whether code follows Spring Modulith code structure or not. Show list of violations along with recommendations on how to fix them. Use this skill: * When reviewing Spring Boot applications which uses Spring Modulith * When verifying whether Spring Boot application code follows Spring Modulith package structure

日本語の概要は準備中です。原文の説明を表示しています。

sivaprasadreddy/sivalabs-agent-skills1892026年10月12日 更新

sivaprasadreddy のスキルをすべて見る

このスキルの問題を報告する