πŸš€ ROXY-SYSTEMS: Your Development Journey Continues

Congratulations! You've mastered COSMOS. Now it's time to apply those skills to the ROXY-SYSTEMS codebase.

What is ROXY-SYSTEMS?
A multi-language monorepo containing our team's infrastructure. COSMOS helps you manage all services seamlessly.

βœ… Prerequisites

You should already know how to:

If any of that is fuzzy, review the COSMOS guide first.

πŸ”₯ Step 1: Clone ROXY-SYSTEMS

Navigate and clone:

cd ~/Code && git clone https://github.com/vepsservice07-stack/roxy-systems.git

Move into the directory:

cd roxy-systems

Verify the structure:

ls -la

You should see docker/, kubernetes/, deployment/, src/, tests/ directories and setup files.

βš™οΈ Step 2: Initialize Git Hooks

ROXY-SYSTEMS enforces COSMOS usage. Set it up:

./setup.sh

This checks COSMOS, detects your languages, and installs git hooks that prevent bypassing COSMOS.

Verify everything works:

c-pulse

You should see a formatted table of all services with their versions and status.

πŸ” Step 3: Explore the Codebase

See the entire ecosystem:

c-audit

Check the actual directory structure:

tree -L 2

You'll see:

Look at src/ to find your service:

ls -la src/

This shows you the application code you can edit.

✏️ Step 4: Make Your First Real Change

Where you can safely edit:

For your first change, edit something in src/:

cd src

Look at what's there:

ls -la

Open your editor:

code .

Make a small, safe change: Update a comment, add documentation, or modify a string. Keep it simpleβ€”you're learning the workflow.

⚠️ DO NOT EDIT DOCKER OR KUBERNETES FILES YET. Ask your team lead before touching those.

Return to terminal when done.

πŸ§ͺ Step 5: Validate Your Change

Before committing, ensure your code compiles:

Synapse Core (Rust):

cargo check

WebUI (Node.js):

npm run lint

Scheduler (Go):

go build ./...

System Services (Java/Python):

mvn clean compile -DskipTests

Success looks like: "Finished successfully" or no errors. If you see errors, fix them and try again.

πŸ’Ύ Step 6: Commit Your Change

Navigate back to repo root:

cd ~/Code/roxy-systems

Run the commit tool:

c-commit

Answer the prompts:

βœ… Your commit is saved!

🌐 Step 7: Share With the Team

Push your code to GitHub:

git push

Visit GitHub to see your commit in the activity feed. Your name is now in the team's code history!

πŸ“Š Step 8: Understanding the Monorepo Structure

ROXY-SYSTEMS is an enterprise monorepo containing microservices, containerization, orchestration, and deployment infrastructure:

roxy-systems/
β”œβ”€β”€ docker/                          (Container images)
β”‚   β”œβ”€β”€ Dockerfile.synapse
β”‚   β”œβ”€β”€ Dockerfile.webui
β”‚   β”œβ”€β”€ Dockerfile.scheduler
β”‚   └── Dockerfile.system1-3
β”œβ”€β”€ kubernetes/                      (Orchestration)
β”‚   β”œβ”€β”€ base/                        (Core configs)
β”‚   β”‚   β”œβ”€β”€ synapse-core.yaml
β”‚   β”‚   β”œβ”€β”€ webui.yaml
β”‚   β”‚   β”œβ”€β”€ scheduler.yaml
β”‚   β”‚   └── systems.yaml
β”‚   β”œβ”€β”€ overlays/                    (Env-specific)
β”‚   β”‚   β”œβ”€β”€ dev/
β”‚   β”‚   β”œβ”€β”€ staging/
β”‚   β”‚   └── production/
β”‚   └── monitoring/                  (Observability)
β”œβ”€β”€ deployment/                      (Release tools)
β”‚   β”œβ”€β”€ deploy.sh
β”‚   β”œβ”€β”€ validate.sh
β”‚   β”œβ”€β”€ rollback.sh
β”‚   └── config/
β”œβ”€β”€ src/                             (Application code)
β”œβ”€β”€ tests/                           (Test suite)
└── README.md

Key directories:

Key architectural points:

🎯 Step 9: Releases (Team Leads Only)

⚠️ RELEASES ARE PERMANENT. Only team leads should execute releases. Ask for approval and assistance before attempting this.

Preview a release (non-destructive):

c-test src/your-service-name

Example:

c-test src/synapse-core

Execute a release (team lead only, with approval):

c-linker src/your-service-name

Then push the release tags:

git push --follow-tags

How releases work:

πŸ“‹ Daily Workflow

MORNING: CHECK STATUS c-pulse THROUGHOUT DAY: MAKE CHANGES Edit files in src/ β†’ Test locally WHEN DONE: COMMIT c-commit BEFORE LEAVING: SHARE git push RELEASE DAY: (TEAM LEADS ONLY) c-test src/service-name c-linker src/service-name git push --follow-tags

⚠️ Important Rules

RULE 1: Always use c-commit, never git commit. The repo blocks direct commits.
RULE 2: Test locally before committing. Don't let broken code reach the team.
RULE 3: Never modify git history. Don't use git rebase, git reset --hard, or git push --force.
RULE 4: Ask before releasing. Only team leads should run c-linker.
RULE 5 - CRITICAL: Only edit src/ and tests/ directories. Never edit docker/, kubernetes/, or deployment/ without explicit team lead approval.

πŸ› οΈ Troubleshooting

Q: "command not found: c-commit"
A: COSMOS isn't installed. Go to https://cosmos-welcome.roxy.systems to install or reinstall COSMOS.

Q: My validation failed and I can't commit
A: Fix the errors (run cargo check, npm run lint, etc.) then try c-commit again.

Q: I need to skip validation (docs update)
A: Use c-commit --no-verify or c-commit -n

Q: "This commit would override history"
A: Someone pushed before you. Run git pull, merge, then git push again.

Q: How do I undo my last commit?
A: Ask your team lead. It depends on whether it's been pushed.

Q: I edited docker/ or kubernetes/ by mistake
A: Don't commit it! Use git checkout -- docker/ or git checkout -- kubernetes/ to revert, then ask your team lead if the change was necessary.

Q: Things are broken and I don't know what to do
A: Visit https://cosmos-welcome.roxy.systems for helpβ€”it has detailed troubleshooting guides and reinstall instructions.

πŸ“š Next Steps

  1. Make 5-10 commits to get comfortable with the workflow
  2. Read SETUP.md for project-specific details
  3. Ask questions in team chatβ€”everyone started here
  4. Review recent commits: git log --oneline -20
  5. Observe a release with a team lead to see how the full pipeline works
  6. Read the main README.md for detailed architecture documentation

πŸŽ‰ You've Got This!

You now understand:

Welcome to the ROXY-SYSTEMS team! You're ready to contribute real code. Start small, ask questions, and grow from there. πŸš€