Docs
Get started
A project is generated from a copy of the repository, fetched by the plugin or cloned. It is born next to that copy and carries its own .claude/.
Requirements: JDK 21+gitcurlgh (optional, for the push)
Guides: /init-project/arch-adopt/platform-upgrade
New project
A · With the plugin, no clone
- Install the plugin and open Claude Code in the directory that will hold the projects.
- Run
/nerviz:new-project: it fetches the latest release intonerviz-<tag>/and prints the session to open there. - In that session, accept the trust prompt, confirm enforcement is active, then generate.
- Open a new session inside the generated project and ask for the first use case.
claude plugin marketplace add nerviz-ai/marketplace claude plugin install nerviz@nerviz cd ~/dev && claude # the directory that will hold the projects › /nerviz:new-project # fetches the latest release into nerviz-<tag>/ # accept the trust prompt: the hooks enforce the architecture cd ~/dev/nerviz-<tag> && claude › /arch-doctor › /init-project --blueprint hexagonal --build maven --name my-api # then develop inside the generated project cd ~/dev/my-api && claude › /new-feature <the first use case>
--ref <tag|sha|main>pins another version. Running again with the same tag reuses the tree; oldernerviz-*trees are listed as safe to delete, never deleted.- It refuses to run inside a project (
pom.xmlorbuild.gradlein the directory): there, use/nerviz:arch-adopt. /init-projectwrites outside the tree (../<artifactId>), so the sibling-folder permission prompt appears. To approve it once, runmkdir ~/dev/my-apiand/add-dir ../my-apifirst.
B · With a clone, the path for contributors
- Clone next to where projects will live, and open Claude Code in the clone.
- Confirm enforcement is active, then generate.
- Open a new session inside the generated project and ask for the first use case.
# clone next to where the projects will live cd ~/dev git clone --depth 1 https://github.com/nerviz-ai/nerviz cd nerviz && claude # confirm enforcement is active on this machine › /arch-doctor › /init-project --blueprint hexagonal --build maven --name my-api # then develop inside the generated project cd ../my-api && claude › /new-feature <the first use case>
Existing project
The same plugin serves both: install it once, then adopt from inside the Java project. Review with git diff; undo with git checkout -- .claude.
claude plugin marketplace add nerviz-ai/marketplace claude plugin install nerviz@nerviz # inside the Java project › /nerviz:arch-adopt
Below Spring Boot 4.0: /platform-upgrade first
/arch-adopt refuses a project on a Spring Boot line below 4.0: export exits 2 before writing a byte. /platform-upgrade is the way up. It moves the build to the line the Initializr serves today, leaves it green and the diff uncommitted, and ends by printing /arch-adopt.
- Start from a clean worktree, with a JDK the build accepts, a Maven or Gradle wrapper at the project root, and network access to the Initializr and the engine's repositories.
- Run
/nerviz:platform-upgradeinside the project. It is manual only: it rewrites your build and sources, so it runs only when you ask for it by name. - Review the diff, then run
/nerviz:arch-adopt.
# inside the Java project, on a line below 4.0 › /nerviz:platform-upgrade # review the diff, then adopt › /nerviz:arch-adoptThe /platform-upgrade guide →
Silent failures to know about
| Symptom | Cause | Check |
|---|---|---|
| Hooks never fire | Developing in the session opened in the clone | Open claude inside the generated project |
| Hooks fail on every OS | java not on PATH | /arch-doctor |
| Tests never run on Stop | No HEAD: the first git-publish gate was declined | /arch-doctor |