Cycles strict rules
April 16, 2026 · View on GitHub
Git Rules — STRICT
- ALWAYS use native git for ALL commits and pushes
- NEVER use mcp__github__ tools for committing or pushing
- Use mcp__github__ ONLY for: PRs, Issues, GitHub Actions
- Write commit messages to a temp file, then:
git commit -F <file> - NEVER use --no-gpg-sign flag
Cycles strict rules
- yaml API specs always the authority
- always update AUDIT.md files when making changes to server, admin, client repos
- maintain at least 95% or higher test coverage for all code repos
Cycles Server Admin
Maven Builds
In Claude Code remote environments, use mvn-proxy instead of mvn for all Maven commands.
The session start hook (.claude/session-start-maven-proxy.sh) automatically sets this up.
# Use this:
mvn-proxy -B verify --file cycles-admin-service/pom.xml
# NOT this (will fail with DNS/proxy errors):
mvn -B verify --file cycles-admin-service/pom.xml
Why: The remote environment routes traffic through an egress proxy. Java's JAVA_TOOL_OPTIONS
proxy config resolves DNS locally (which fails). mvn-proxy uses MAVEN_OPTS instead and
forces single-threaded downloads to avoid proxy auth race conditions.
Integration Tests
Integration tests require Docker (Testcontainers + Redis). Exclude them when Docker is unavailable:
mvn-proxy -B verify --file cycles-admin-service/pom.xml \
-Dtest='!*IntegrationTest' -Dsurefire.failIfNoSpecifiedTests=false
Versioning
Uses Maven CI-friendly ${revision} property. Version is set once in cycles-admin-service/pom.xml:
<revision>0.1.25.22</revision>
All child modules inherit via ${revision} (parent ref) and ${project.version} (inter-module deps).
The flatten-maven-plugin resolves ${revision} at build time.