diff --git a/.cursor/commands/implement-issue.md b/.cursor/commands/implement-spec.md similarity index 94% rename from .cursor/commands/implement-issue.md rename to .cursor/commands/implement-spec.md index b208949b1..29f0ded8b 100644 --- a/.cursor/commands/implement-issue.md +++ b/.cursor/commands/implement-spec.md @@ -1,13 +1,13 @@ -# implement-issue +# implement-spec ## Purpose -Deliver a GitHub issue through an approved implementation plan or a validated OpenSpec task list. +Deliver an approved implementation plan or validated OpenSpec task list through controlled implementation. ## Usage ```text -/implement-issue [task-or-group] [constraints] +/implement-spec [task-or-group] [constraints] ``` ## Accepted inputs @@ -28,14 +28,14 @@ A bare issue is context, not an execution contract. When repository policy requi - If the command runner is not `@robot-tech-lead`, immediately delegate the whole command execution to `@robot-tech-lead` and wait for its result. - `@robot-tech-lead` MUST invoke the selected implementation agent for implementation, test, and verification work; naming an agent in the response is not delegation. -- If agent invocation is unavailable in the current environment, stop and report that `/implement-issue` cannot proceed instead of implementing directly. +- If agent invocation is unavailable in the current environment, stop and report that `/implement-spec` cannot proceed instead of implementing directly. - Before any implementation agent starts, pass the branch/worktree gate below and report the selected isolation strategy. ## Branch/worktree gate - Before choosing a branch or worktree strategy, inspect the workspace with `git status --short`. - If the workspace is dirty, stop immediately and report the changed/untracked paths. Do not create a feature branch, create a worktree, delegate implementation, or ask for approval to continue in the dirty checkout. -- Continue only after the user cleans, commits, or stashes the workspace and reruns `/implement-issue`. +- Continue only after the user cleans, commits, or stashes the workspace and reruns `/implement-spec`. - Determine whether the selected artifact should run in the current checkout, a new feature branch, or one or more linked worktrees. - If the work is serial and the current checkout is not already a safe, suitable feature branch, execute `/create-feature-branch` before delegating implementation. - If independent groups can run in parallel or need isolation, execute `/create-worktree` for each independent branch/worktree before delegating implementation. diff --git a/.github/workflows/maven.yaml b/.github/workflows/maven.yaml index 2235fd750..0f8ece360 100644 --- a/.github/workflows/maven.yaml +++ b/.github/workflows/maven.yaml @@ -191,7 +191,7 @@ jobs: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - name: Scan generated skills with Snyk Agent Scan run: | - set -o pipefail + set +e uvx snyk-agent-scan@latest scan .agents/skills \ --ci \ --no-bootstrap \ @@ -200,7 +200,20 @@ jobs: --verbose \ --print-errors \ --print-full-descriptions \ - | tee snyk-agent-scan-report.txt + 2>&1 | tee snyk-agent-scan-report.txt + scan_status=${PIPESTATUS[0]} + set -e + + if [ "${scan_status}" -eq 0 ]; then + exit 0 + fi + + if grep -Eq "X007|Could not reach analysis server|API timeout while scanning discovered servers" snyk-agent-scan-report.txt; then + echo "::warning title=Snyk Agent Scan unavailable::Snyk Agent Scan could not reach the analysis server. Treating this infrastructure timeout as non-blocking; review the uploaded report." + exit 0 + fi + + exit "${scan_status}" env: SNYK_TOKEN: ${{ secrets.SNYK_TOKEN }} - name: Upload Snyk Agent Scan report diff --git a/CHANGELOG.md b/CHANGELOG.md index 2e5ecff2b..6b3b4c7fa 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). -## [0.17.0] 2026-07-06 +## [0.17.0] 2026-07-13 ### Added @@ -32,6 +32,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Skills**: - Hardened Maven and Mongock skill guidance for Snyk Agent Scan by requiring allowlisted XML query output for POM analysis and gating MongoDB container verification behind explicit approval and pinned/project-approved images (#938) + - Hardened architecture diagram, profiling refactor, and Spring Boot acceptance-test skills for Snyk Agent Scan by replacing runtime PlantUML container execution with trusted local tooling and adding explicit trust gates for profiling and Gherkin prose inputs (`@033-architecture-diagrams`, `@163-java-profiling-refactor`, `@323-frameworks-spring-boot-testing-acceptance-tests`) - Expanded Flyway and Mongock migration guidance for Spring Boot, Quarkus, and Micronaut with migration safety, antipattern, and parallel-change coverage (#901, #908, #909) - Improved design pattern, Java testing strategy, acceptance testing, OpenAPI, and WireMock guidance with richer examples and reference structure (#943) - Split Maven search guidance into Maven Central lookup and project version update workflows (`@114-java-maven-search`) (#948) diff --git a/README.md b/README.md index d55eaa984..04b182880 100644 --- a/README.md +++ b/README.md @@ -120,7 +120,7 @@ MCP Servers Implement and improve Java applications with Maven, design, coding, testing, security, documentation, Spring Boot, Quarkus, Micronaut, OpenAPI, and WireMock guidance. ```text -/implement-issue +/implement-spec @robot-tech-lead /create-feature-branch /create-worktree diff --git a/README_ES.md b/README_ES.md index 56d49df8c..a4f0bce3f 100644 --- a/README_ES.md +++ b/README_ES.md @@ -105,7 +105,7 @@ Plan @robot-business-analyst Build - /implement-issue + /implement-spec @robot-tech-lead /create-feature-branch /create-worktree @@ -157,7 +157,7 @@ Implementa y mejora aplicaciones Java con orientación sobre Maven, diseño, pro | Recurso | Opciones disponibles | | --- | --- | -| **Commands** | [`/create-feature-branch`](./.cursor/commands/create-feature-branch.md) · [`/create-worktree`](./.cursor/commands/create-worktree.md) · [`/implement-issue`](./.cursor/commands/implement-issue.md) | +| **Commands** | [`/create-feature-branch`](./.cursor/commands/create-feature-branch.md) · [`/create-worktree`](./.cursor/commands/create-worktree.md) · [`/implement-spec`](./.cursor/commands/implement-spec.md) | | **Agents** | `@robot-tech-lead` · `@robot-no-java` · `@robot-java-coder` · `@robot-java-spring-boot-coder` · `@robot-java-quarkus-coder` · `@robot-java-micronaut-coder` | | **Skills** | [110-java-maven-best-practices](https://www.skills.sh/jabrena/plinth/110-java-maven-best-practices) · [111-java-maven-dependencies](https://www.skills.sh/jabrena/plinth/111-java-maven-dependencies) · [121-java-object-oriented-design](https://www.skills.sh/jabrena/plinth/121-java-object-oriented-design) · [124-java-secure-coding](https://www.skills.sh/jabrena/plinth/124-java-secure-coding) · [143-java-functional-exception-handling](https://www.skills.sh/jabrena/plinth/143-java-functional-exception-handling) | | **MCP Servers** | [Jbang-Quarkus-JDBC](https://github.com/quarkiverse/quarkus-mcp-servers/blob/main/jdbc/README.md) · [MongoDB](https://github.com/mongodb-js/mongodb-mcp-server) · [JavaDocs](https://www.javadocs.dev/mcp) · [Serena-LSP](https://oraios.github.io/serena/01-about/000_intro.html) | diff --git a/README_ZH.md b/README_ZH.md index 064911125..1e96d7f0d 100644 --- a/README_ZH.md +++ b/README_ZH.md @@ -105,7 +105,7 @@ Plan @robot-business-analyst Build - /implement-issue + /implement-spec @robot-tech-lead /create-feature-branch /create-worktree @@ -157,7 +157,7 @@ MCP Servers | 资源 | 可用选项 | | --- | --- | -| **Commands** | [`/create-feature-branch`](./.cursor/commands/create-feature-branch.md) · [`/create-worktree`](./.cursor/commands/create-worktree.md) · [`/implement-issue`](./.cursor/commands/implement-issue.md) | +| **Commands** | [`/create-feature-branch`](./.cursor/commands/create-feature-branch.md) · [`/create-worktree`](./.cursor/commands/create-worktree.md) · [`/implement-spec`](./.cursor/commands/implement-spec.md) | | **Agents** | `@robot-tech-lead` · `@robot-no-java` · `@robot-java-coder` · `@robot-java-spring-boot-coder` · `@robot-java-quarkus-coder` · `@robot-java-micronaut-coder` | | **Skills** | [110-java-maven-best-practices](https://www.skills.sh/jabrena/plinth/110-java-maven-best-practices) · [111-java-maven-dependencies](https://www.skills.sh/jabrena/plinth/111-java-maven-dependencies) · [121-java-object-oriented-design](https://www.skills.sh/jabrena/plinth/121-java-object-oriented-design) · [124-java-secure-coding](https://www.skills.sh/jabrena/plinth/124-java-secure-coding) · [143-java-functional-exception-handling](https://www.skills.sh/jabrena/plinth/143-java-functional-exception-handling) | | **MCP Servers** | [Jbang-Quarkus-JDBC](https://github.com/quarkiverse/quarkus-mcp-servers/blob/main/jdbc/README.md) · [MongoDB](https://github.com/mongodb-js/mongodb-mcp-server) · [JavaDocs](https://www.javadocs.dev/mcp) · [Serena-LSP](https://oraios.github.io/serena/01-about/000_intro.html) | diff --git a/docs/2/index.html b/docs/2/index.html index befd923b8..c8e89d244 100644 --- a/docs/2/index.html +++ b/docs/2/index.html @@ -5,10 +5,10 @@ - Skills & Agents for Java + Plinth - + @@ -35,7 +35,7 @@ -Skills & Agents for Java +Plinth -
-

What's new in Cursor rules for Java 0.12.0?

- - - -
-
- What are Cursor rules for Java? -A curated collection of System prompts & Skills for Java Enterprise development that help software engineers and pipelines in their daily programming work. -Recently, we reached the milestone of 300+ ⭐ on GitHub. Many thanks to the users in Lanzhou, Singapore, Pontiac, Boardman, and Shanghai. 👋👋👋 -What's new in this release? -In this release, the project introduc... -

- [Read More] -
-
-
diff --git a/docs/3/index.html b/docs/3/index.html index 61b14a7a5..56f5a2d2e 100644 --- a/docs/3/index.html +++ b/docs/3/index.html @@ -5,10 +5,10 @@ - Skills & Agents for Java + Plinth - + @@ -35,7 +35,7 @@ -Skills & Agents for Java +Plinth -
-

What's new in Cursor rules for Java 0.9.0?

- - - -
-
- What are Cursor rules for Java? -Cursor Rules for Java is an Open Source project that provides a set of interactive system prompts for Java that help software engineers in their daily work. - -In this new release, the project includes the following features: -Added Version control -Added a new rule about 127-java-functional-exception-handling -Added Consultative Interaction Technique in the majority of R... -

- [Read More] -
-
-
diff --git a/docs/4/index.html b/docs/4/index.html index 00fee4936..4c092dd9e 100644 --- a/docs/4/index.html +++ b/docs/4/index.html @@ -5,10 +5,10 @@ - Skills & Agents for Java + Plinth - + @@ -35,7 +35,7 @@ -Skills & Agents for Java +Plinth diff --git a/docs/tags/agents.html b/docs/tags/agents.html index 299ef1b61..476714d2b 100644 --- a/docs/tags/agents.html +++ b/docs/tags/agents.html @@ -5,10 +5,10 @@ - Skills & Agents for Java + Plinth - + @@ -34,7 +34,7 @@ -Skills & Agents for Java +Plinth