Welcome to Enterprise Development β’ Your Second Mission
You've mastered the basics. Now it's time to sync with the Live Pulse of operations. ROXY-SYSTEMS isn't about asking "what happened?"βit's about knowing "what's happening right now?"
This guide will walk you through your first real contribution using the integrated COSMOS toolchain. You'll learn:
How to install the full Membrane-aware toolchain
How to manage work directly from the CLI with c-issue
How to release services using c-linker
How the cloud infrastructure validates your pulse
π― By the end: You will have initialized the environment, claimed an issue, committed code, and orchestrated a release candidate.
β Prerequisites Check
You should have already:
Completed the COSMOS quick start (cosmos-welcome.roxy.systems)
Installed COSMOS v5.2+ (Membrane + Cloud Edition)
GitHub access to roxy-systems repository
Familiarity with c-commit, c-pulse, git push
If any of these are fuzzy, go back and complete cosmos-welcome first before proceeding.
ποΈStep 1: Clone & Initialize ROXY-SYSTEMS
Clone the repository:
cd ~/Code && git clone https://github.com/vepsservice07-stack/roxy-systems.git && cd roxy-systems
Run the installer:
./setup.sh
This script:
β Verifies COSMOS is installed (v2.2+)
β Detects your available language tools (Rust, Go, Node, Java, Python)
β Validates cosmos.json manifest structure
β Installs git hooks to enforce COSMOS usage
β Initializes development environment
β Membrane: Generates .cosmos-membrane.json for repo discovery
Key point: COSMOS scans for both manifest-defined projects AND auto-detected projects (with Cargo.toml, package.json, etc.). The manifest takes precedence when both exist.
π‘ Insight: The manifest approach lets you version documentation and custom project types alongside code services. This is why COSMOS is called "manifest-aware."
πStep 2.5: Cloud & Issue Configuration
Before contributing, configure your environment for the ecosystem.
1. Configure Issue Tracking:
c-issue interactive
Follow the prompts to link your GitHub/Linear account. This generates .cosmos.issue.env.
2. Configure Cloud Registry (First Time Only):
c-cloud-setup
This detects your provider (AWS/GCP/Azure) and configures where c-linker will push images.
Key architectural principle: Services are organized by functional domain (identity, gateway, processing, interface, system), not by language. This makes ownership clear and teams focused.
πStep 4: Map Services to Languages
ROXY-SYSTEMS is polyglot. Understanding which services use which languages helps you:
Know what validation tools to expect for each service
Choose which service to start with based on your comfort
Team members can see your contribution in the activity feed
Your name is now in the codebase history
Create a pull request (optional for documentation):
If you changed code (not just docs), create a PR on GitHub for team review. Steps:
Go to the repository on GitHub
Click "Pull Requests" tab
Click "New Pull Request"
Select your branch (should show your commit)
Add a description: what changed and why
Click "Create Pull Request"
The team will review and either approve or ask for changes.
πStep 10: Watch the CI/CD Pipeline
ROXY-SYSTEMS has two connected CI/CD pipelines triggered by git tags created by COSMOS:
ποΈ Control Plane build-base-images.yml Builds language base images (Rust, Go, Node, Java, Python) weekly
π Application Plane build-and-push.yml Triggered by service release tag, builds & signs Docker image
Watch your commit's validation:
Go to the GitHub repository
Click "Actions" tab
Find your service's workflow run
Watch it execute in real-time
Your workflow will:
β Check out code
β Run language-specific tests
β Build the service
β Run security scan (Trivy for CVEs)
β Sign the image (cosign)
β Push to Artifact Registry
π If everything passes: Your code is validated, tested, and ready for production. The image is signed and scanned automatically.
πUnderstanding the Pipelines
Control Plane (Weekly Base Images)
Runs on schedule or when Dockerfile.base-* files change:
Dockerfile.base-rust modified
β
GitHub detects push to Dockerfile.base-*
β
Triggers build-base-images.yml
β
Builds multi-platform images (linux/amd64)
β
Pushes to us-east1-docker.pkg.dev
β
Language teams use these for building services
Application Plane (Service Releases)
Triggered when COSMOS creates a version tag:
Developer runs c-linker signer-service
β
Creates git tag: signer-service-v1.0.1
β
Developer runs git push --follow-tags
β
GitHub detects tag matching *-v*.*.* pattern
β
Triggers build-and-push.yml automatically
β
Authenticates to GCP (no keys stored!)
β
Builds Docker image with base image
β
Scans for CVEs (Trivy)
β
Signs image (cosign) with provenance
β
Pushes to Artifact Registry
β
Updates Kubernetes manifests
β
Rolls out to production
π Security Note: GitHub Actions authenticates to GCP via Workload Identity Federationβno service account keys are stored or exposed. Tokens are temporary (~1 hour) and scoped to minimal permissions.
π₯Your Team's Expectations
Now that you're part of ROXY-SYSTEMS, here's what the team expects:
β DO
Always use c-commit
Test locally before pushing
Write clear commit messages
Ask questions in chat
Review PRs from teammates
β DON'T
Use git commit directly
Push broken code
Edit infrastructure files
Force-push history
Release without approval
Why this matters:
c-commit ensures consistent formatting and validation
Testing prevents broken builds and cascading failures
Infrastructure is team-maintained; changes need coordination
Git history is the team's audit trailβnever rewrite it
Releases are permanent; they need approval and review
π―Common Scenarios
Scenario 1: Fix a Typo in Code
cd src/roxy-identity/signer-service
# Fix the typo
c-commit
# Type: fix
# Scope: signer-service
# Message: correct parameter name in validation
git push
cd src/roxy-gateway/gateway-service
# Add test file
c-commit
# Type: test
# Scope: gateway-service
# Message: add tests for rate limiter
git push
Scenario 4: Complex Feature (Needs PR Review)
# Create feature branch
git checkout -b feat/new-caching-layer
# Make changes
cd src/roxy-system/system-services-3
# ... edits ...
# Commit (uses c-commit)
c-commit
git push origin feat/new-caching-layer
# GitHub: Create PR for team review
# Wait for approval
# Merge when approved
β οΈCritical Rules
RULE 1: Only Edit src/ and tests/
Infrastructure (docker/, kubernetes/, deployment/) is managed centrally. Changes require team lead approval.
RULE 2: Always Use c-commit
Git hooks prevent direct git commit to enforce COSMOS workflow. If you get stuck, ask your team lead.
RULE 3: Test Locally First
Run language validation (cargo check, npm lint, etc.) before committing. Don't let broken code reach the team.
RULE 4: Never Force-Push History
Don't use git rebase, git reset --hard, or git push --force. History is immutable.
RULE 5: Ask Before Releasing
Only team leads run c-linker. Releases are permanent and affect production.
πStep 11: Release with c-linker
When your code is ready, don't just push. Link it.
c-linker is the smart orchestration tool that handles versioning, tagging, and cloud syncing.
Execute a Release:
c-linker src/roxy-identity/signer-service
The Linker Flow:
1. [CHECK] Cloud Registry (GCP/AWS)
2. [CHECK] Git Status & Branch
3. [BUMP] Semantic Version (v1.0.1 β v1.0.2)
4. [TAG] Git Tag (signer-service-v1.0.2)
5. [PUSH] Trigger Application Plane CI
π Automation: Once c-linker pushes the tag, the CI pipeline takes over: building, signing, and deploying the artifact to the registry configured in .cosmos.cloud.env.
β οΈCritical Rules
RULE 1: Use the Tools
`c-issue` for tasks, `c-commit` for code, `c-linker` for releases. They keep the ecosystem strictly typed and synchronized.
RULE 2: Respect the Pulse
Run `c-pulse` before starting work. Ensure you aren't building on top of broken dependencies.
RULE 3: Infrastructure is Guarded
Changes to `docker/` or `deployment/` affect the entire fleet. These require specific approval.
πTroubleshooting
Q: "command not found: c-commit"
A: COSMOS isn't properly installed. Re-run ./install.sh in the cosmos-repo directory, then verify with c-pulse.
Q: "cargo check failed" or other validation error
A: This is intentional! COSMOS is preventing broken code from reaching the team. Fix the error and try c-commit again.
Q: I need to skip validation (docs-only change)
A: Use c-commit --no-verify or c-commit -n. But use sparinglyβvalidation exists for good reason.
Q: Someone else pushed and I'm behind
A: Run git pull, resolve any conflicts (merge or discuss with teammate), then git push again.
Q: I committed something by mistake and want to undo
A: Ask your team lead. Undoing depends on whether it's been pushed. Never force-push; let the team help.
Q: The CI/CD pipeline is failing
A: Check the workflow logs on GitHub (Actions tab). Most failures are validation errors that need fixing. Ask your team if stuck.
Q: I accidentally edited a docker/ or kubernetes/ file
A: Don't commit it! Run git checkout -- docker/ or git checkout -- kubernetes/ to revert. Then ask your team lead if the change was necessary.