Grades are a hygiene check, not a security guarantee.

Claude Code, Skill

Quarkus Agentic Scaffolding

Three-skill flow for building Quarkus + LangChain4j agentic AI applications: setup-agentic-scaffolding (prerequisites: toolchain, Quarkus Agents MCP + context7, conventions file), scaffold-project (create projects and add AI services, agents, RAG, and MCP clients/servers), and au

Compatibility: Not stated.

Grade D

Two or more Medium findings, or a High. Only try it in a sandbox.

Graded by PlugVetRubric v2

Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.

INSTALL_REMOTE_SCRIPT AGENT_IGNORE_INSTRUCTIONS

Why this grade

  • INSTALL_REMOTE_SCRIPT Medium

    Fetches a script from the network and runs it (a pipe to a shell, or an install hook with a URL).

    CHANGELOG.md, line 495 `curl -Ls https://sh.jbang.dev | bash` no longer appears anywhere: the JBang last resort is now

  • AGENT_IGNORE_INSTRUCTIONS Medium

    Text tells the agent to ignore earlier instructions.

    evals/effectiveness/results/2026-10-05-round-2/results.json, line 580 "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests, start the app, or call a model, so `POST /classif

Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.

If you think this grade is wrong, email [email protected] with the entry link and your evidence. We aim to acknowledge within two working days and decide within seven. If we confirm an error, we aim to correct it within 24 hours of confirming it. These are aims, not guarantees.

Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.

What was checked

Plain notes from the hygiene checks.

  • Permissions

    Note

    requests shell access. The manifest names this permission.

    PERMISSION_SHELL_DECLARED

    ci/check_mcp_java_floor.py, line 50

    process = subprocess.Popen(command, stdin=subprocess.PIPE, stdout=subprocess.PIPE,

    ci/test_bob_references.py, line 14

    subprocess.run(command, check=True, capture_output=True)

    ci/test_bob_references.py, line 21

    subprocess.run(command, check=True, capture_output=True)

    Show more

    ci/test_eval_preflight.py, line 40

    script = "import subprocess,sys; from pathlib import Path; p=subprocess.Popen([sys.executable,'-c','import time; time.sleep(60)']); Path(sys.argv[1]).write_text(str(p.pid))"

    ci/test_eval_preflight.py, line 50

    state = subprocess.run(['ps', '-o', 'stat=', '-p', pid], capture_output=True, text=True).stdout.strip()

    ci/test_mcp_java_floor.py, line 89

    popen = subprocess.Popen

    ci/test_mcp_java_floor.py, line 106

    with patch("check_mcp_java_floor.subprocess.Popen", side_effect=spawn), \

    ci/test_mcp_java_floor.py, line 133

    with patch("check_mcp_java_floor.subprocess.Popen", return_value=process), \

  • Install and update

    Serious

    install fetches a script from the network.

    INSTALL_REMOTE_SCRIPT

    CHANGELOG.md, line 495

    `curl -Ls https://sh.jbang.dev | bash` no longer appears anywhere: the JBang last resort is now

    CHANGELOG.md, line 584

    - *Piped installer.* Phase A led with `curl -Ls https://sh.jbang.dev | bash` as a way to install

  • Network

    Concern

    can reach a host that is not written as a fixed address.

    NETWORK_NO_FIXED_HOST

    ci/build-from-templates.sh, line 20

    # Maven Central. Any URL curl accepts works, file:// included (that is how the test

    ci/build-from-templates.sh, line 23

    # a JDK 25+, and curl (only when PLATFORM_VERSION is resolved from Maven Central).

    ci/build-from-templates.sh, line 58

    metadata="$(curl -fsSL "$PLATFORM_METADATA_URL")" || {

    Show more

    skills/scaffold-project/templates/Agent.java.template, line 275

    @WebSocket(path = "/ws/triage")

  • Secrets

    Concern

    reads a credential or environment file.

    SECRETS_ENV_READ SECRETS_PATH_UNCONFIRMED

    evals/effectiveness/run.py, line 349

    if os.environ.get('ANTHROPIC_API_KEY'):

    renovate.json, line 9

    "managerFilePatterns": ["/^ci/baseline\\.env$/"],

  • Agent instructions

    Serious

    instructions tell the agent to ignore earlier instructions.

    AGENT_IGNORE_INSTRUCTIONS

    evals/effectiveness/results/2026-10-05-round-2/results.json, line 580

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests, start the app, or call a model, so `POST /classif

    evals/effectiveness/results/2026-10-05-round-2/results.json, line 1204

    "final_message": "The project is in `./app` (`org.acme:order-tools`) and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests or the app. I also did not run the w

    evals/effectiveness/results/2026-10-05-round-2/results.json, line 1620

    "final_message": "The project is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I haven't run any tests, so the workflow itself is untested. I also haven't run the

    Show more

    evals/effectiveness/results/2026-10-05-round-2/results.json, line 3076

    "final_message": "The project is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes with BUILD SUCCESS. I did not run the tests or call a model, so `POST /chat` is untes

    evals/effectiveness/results/2026-10-05-round-2/runs/classifier-r3-skill.json, line 60

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests, start the app, or call a model, so `POST /classif

    evals/effectiveness/results/2026-10-05-round-2/runs/mcp-server-r3-skill.json, line 60

    "final_message": "The project is in `./app` (`org.acme:order-tools`) and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests or the app. I also did not run the w

    evals/effectiveness/results/2026-10-05-round-2/runs/parallel-r2-skill.json, line 60

    "final_message": "The project is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I haven't run any tests, so the workflow itself is untested. I also haven't run the

    evals/effectiveness/results/2026-10-05-round-2/runs/tools-r3-skill.json, line 60

    "final_message": "The project is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes with BUILD SUCCESS. I did not run the tests or call a model, so `POST /chat` is untes

    evals/effectiveness/results/2026-10-05-round-3/results.json, line 164

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run the tests, and nothing was run against a live model.\n\

    evals/effectiveness/results/2026-10-05-round-3/results.json, line 372

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run any tests, so the endpoint and the smoke test have not

    evals/effectiveness/results/2026-10-05-round-3/results.json, line 580

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests, start the app or call a model, so `POST /classify

    evals/effectiveness/results/2026-10-05-round-3/runs/classifier-r1-skill.json, line 60

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run the tests, and nothing was run against a live model.\n\

    evals/effectiveness/results/2026-10-05-round-3/runs/classifier-r2-skill.json, line 60

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run any tests, so the endpoint and the smoke test have not

    evals/effectiveness/results/2026-10-05-round-3/runs/classifier-r3-skill.json, line 60

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes. I did not run the tests, start the app or call a model, so `POST /classify

    evals/effectiveness/results/2026-10-05/results.json, line 355

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes there. I did not run the tests or call a live model, so `POST /classify` ha

    evals/effectiveness/results/2026-10-05/results.json, line 1755

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run the tests, and nothing was run against Ollama or a live

    evals/effectiveness/results/2026-10-05/results.json, line 2155

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes. I didn't run the app or the test, call a model, or commit anything, so none of the ru

    evals/effectiveness/results/2026-10-05/runs/classifier-r2-skill.json, line 55

    "final_message": "The ticket classifier is in `./app`, and `mvn -B -ntp -DskipTests test-compile` passes there. I did not run the tests or call a live model, so `POST /classify` ha

    evals/effectiveness/results/2026-10-05/runs/parallel-r3-skill.json, line 55

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes (BUILD SUCCESS). I did not run the tests, and nothing was run against Ollama or a live

    evals/effectiveness/results/2026-10-05/runs/rag-r2-skill.json, line 55

    "final_message": "The project is in `./app` and `mvn -B -ntp -DskipTests test-compile` passes. I didn't run the app or the test, call a model, or commit anything, so none of the ru

  • Obfuscation

    Pass

    No encoded or minified payload found.

  • Licence

    Pass

    A licence file is present (LICENSE).

  • Maintainer activity

    Pass

    The latest commit is within the last 365 days.

Note

Hygiene check of commit 296c4314dded. requests shell access. The manifest names this permission. install fetches a script from the network. can reach a host that is not written as a fixed address. reads a credential or environment file. instructions tell the agent to ignore earlier instructions.

Date and source

Date checked:

View source

github.com

Commit graded: 296c4314dded2628d6e45243d41eaed25d00f8c3

This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.

Read how this letter is chosen