HOMELAB

192.168.1.0/24 Β· v2.17.0
scanning…
Documentation
Cluster connecting…
Rules
Rule 1 β€” Issue First. No branch, no code, no commit without a GitLab issue. Every MR description must contain Closes #NNN or CI blocks.
Rule 2 β€” Branch Naming.
<type>/<issue-number>-short-description feat/71-dev-workflow fix/72-cors-header ci/73-bandit-gate
Commit Format
<type>(<scope>): <subject> Body: WHY this change, not what. Closes #71 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Types: feat Β· fix Β· ci Β· docs Β· refactor Β· test Β· chore
Scope: launcher Β· api Β· ansible Β· ci Β· cluster
Slash Command Sequence
/start-issue β†’ /plan-issue β†’ /build-issue β†’ /review-diff β†’ /finish-issue
/start-issue
Read issue Β· explore files Β· confirm scope
/plan-issue
Written plan Β· operator approval Β· no code yet
/build-issue
Execute plan Β· surgical changes Β· run local gates
/review-diff
Self-review Β· bugs Β· security Β· scope creep
/finish-issue
Commit Β· push Β· open MR with Closes #NNN
MR Resolve Loop β€” repeat until pipeline green + reviewer clean
1.Fetch latest Claude reviewer comment
2.Fix every HIGH and MEDIUM finding β€” no suppressions
3.Run local gates
4.Commit + push
5.ScheduleWakeup β€” wait for pipeline
6.Re-check reviewer on new sha β†’ merge --squash --remove-source-branch
CI Gates
JobStageCommand
validate_docsvalidatemarkdownlint '**/*.md'
check_issue_linkvalidateMR description must contain Closes/Refs #NNN
linttestflake8 --max-line-length=120 src/multi-agent-cluster/
typechecktestmypy --ignore-missing-imports src/multi-agent-cluster/
ansible_linttestansible-lint ansible/
securitysecuritybandit -r src/multi-agent-cluster/ --severity-level medium
secret_detectsecurityGitleaks β€” always runs, never allow_failure
claude_auditsecurityClaude CI reviewer β€” HIGH/MEDIUM block merge