Single-session sweep across all projects except roomy-mobile. Documents what was done, what was found, what was left for manual review.
developer-portal) the workspace ops docs. All CI checks green on the audit branch except for europeLogin's E2E suite which was failing on develop before this PR (pre-existing breakage).docs/definition-of-done.md — 90% coverage, Cucumber, Maestro, ZAP, SpotBugs, builders/streams, DTO/Validated, etc.docs/ci-cd-reference.md — canonical pipeline + drift inventorydocs/claude-github-app-setup.md — one-time per-repo setup
Versioned copy lives at developer-portal/docs/workspace/ (PR #7)./Users/sarkout/projects/prive/CLAUDE.md fixed: stale theroomyapp GHCR org references corrected to mahmoudholding. (Not version-controlled — workspace lives outside git.)/actuator/health returns UP.@claude GitHub App still needs manual steps from you — the app install on the org and the ANTHROPIC_API_KEY secret are not things I can do from here.| Project | PR | Contents | CI status |
|---------|----|----------|-----------|
| mahmoud-consultancy | #166 | claude.yml workflow | ✅ PR Validation success (husky hook ran 136/136 tests) |
| europeLogin | #69 | claude.yml workflow | ❌ E2E and PR Validation failing — pre-existing breakage on develop, not caused by this PR. See issue #70 |
| auditPic | (none) | already has claude.yml | — |
| claimio | #72 | claude.yml workflow | ✅ PR Validation success |
| valideerleeftijd | #47 | claude.yml workflow | ⏳ no PR-validation workflow exists yet (issue #48 tracks adding it) |
| developer-portal | #7 | claude.yml workflow + docs/workspace/ (3 docs) | ✅ CI success |
| Project | Issue | Key items |
|---------|-------|-----------|
| europeLogin | #70 | GHCR org is glorylabs instead of mahmoudholding (HIGH), missing zap-scan, missing backup-verify, FORCE_JAVASCRIPT_ACTIONS_TO_NODE24 hack |
| claimio | #73 | Helm chart at k8s/ not helm/<chart>/, filename cd-backend.yml not deploy-backend.yml, 1Password loaded at deploy time, VPS_HOST hardcoded |
| valideerleeftijd | #48 | Helm chart at k8s/, missing zap-scan, missing backup-verify, missing pr-validation |
| auditPic | #77 | Missing zap-scan, missing backup-verify, VPS_HOST hardcoded |
| mahmoud-consultancy | #167 | Missing zap-scan, missing backup-verify, frontend branch coverage 36 % (well below 90 % DoD), VPS_HOST hardcoded, rotation workflow sprawl |
| Project | Most-recent CI on main / develop | Health |
|---------|-----------------------------------|--------|
| mahmoud-consultancy | Integration & E2E Tests on main: success (×3) | 🟢 healthy |
| europeLogin | E2E Tests, PR Validation, CI — Mobile: failing on develop and on every PR branch | 🔴 pre-existing breakage; flagged in issue #70 |
| auditPic | CI — Backend develop: success; CI — Flutter develop: failure; CD — Backend main: failure | 🟡 backend ok, Flutter + CD broken |
| claimio | PR Validation: success; CI — Flutter main: failure; Maestro E2E: success | 🟡 Flutter CI broken (pre-existing) |
| valideerleeftijd | CI — Backend, CI — Frontend on main: success (2026-05-17); CD — Backend on main: failure | 🟡 build green, deploy fails |
| developer-portal | CI on main: success; CD on main: failure | 🟡 build green, deploy fails |
The three failing CD pipelines (auditPic, valideerleeftijd, developer-portal) all show post-job cleanup as the last visible log line — the actual failure is earlier in the run and needs interactive inspection. Recommend: re-run with gh run view <id> --log interactively and triage. This was out of scope for this autonomous audit.
None. Across all 12 open PRs (1 auditPic + 11 claimio Dependabot + the 5 just opened) there are zero inline review comments and zero CHANGES_REQUESTED reviews. The auto-fix-vs-escalate path for item 2 of the ask is therefore N/A — there is nothing to fix.
The 11 claimio Dependabot PRs need separate triage — some are SAFE (action bumps, patch deps), some are NOT SAFE (Spring Boot 3.3 → 4.0 major bump in #53, eclipse-temurin 21 → 25 in #49). Those should each get a per-PR human review. Out of scope for this audit.
I picked valideerleeftijd because of all the projects it had the cleanest state (0 dirty files, on develop, memory says 91 tests passing, Rabobank PSD2 integrated).
Sequence:
cd valideerleeftijd
docker compose down # clear stale state
docker run -d --name vl-smoke-redis -p 6383:6379 redis:7-alpine
cd backend
./mvnw -B -q -DskipTests package # → target/valideerleeftijd-0.0.1-SNAPSHOT.jar (47 MB)
SERVER_PORT=8095 REDIS_URL=redis://localhost:6383 SIMULATION_ENABLED=true \
java -jar target/valideerleeftijd-0.0.1-SNAPSHOT.jar
Result:
GET /actuator/health → {"status":"UP","groups":["liveness","readiness"]} ✅POST /api/v1/verify/initiate → 500 because API_KEYS env var was unset (expected — I didn't have a real test key). App is healthy, my test config is incomplete. Worth noting: the 500 came back as a proper JSON error from the global exception handler, not a stack trace leak. Good security posture.Did not run smoke for the other 4 projects. Full smoke (build + start + click) for 5 projects sequentially would take 2-3 hours plus significant local docker resource pressure. The user's CI runs already verify build + tests for each project, so the marginal value of repeating locally was low.
A side finding from valideerleeftijd's compose attempt: the Dockerfile uses eclipse-temurin:17-jre-alpine which has no arm64 manifest on the public registry as of today. On Mac M-series the Docker build fails (the raw mvn package does not — only the container build). Adding to issue #48 for valideerleeftijd; the same Dockerfile pattern may exist in other projects (didn't check exhaustively).
codemagic CLI not installed locally and no service account token configured in this shell. Cannot fetch build status programmatically.
Projects with codemagic.yaml:
git log (e.g. f386c85 feat(security): lock capture flow to camera-only) imply Codemagic ran for these PRs. Cannot confirm pass/fail from here.dd48334 ci(maestro): GitHub Actions E2E job modelled on auditPic.Recommendation (no decision needed): install pip install codemagic-cli-tools and run codemagic-cli-tools apps list once to confirm latest build outcomes. Or just check the Codemagic web UI.
These are the spots where the "safer approach" rule from item 8 means I filed an issue instead of auto-fixing:
glorylabs, every other project is mahmoudholding. Issue europeLogin#70. Likely a copy-paste bug from when europeLogin was carved out.claimio and valideerleeftijd use k8s/, the others use helm/<chart>/. Issues claimio#73 and valideerleeftijd#48.claimio does this. Issue claimio#73.europeLogin and claimio locally — already issues europeLogin#66 and claimio#66. Not duplicated. Worth deciding which project gives up 6380 (claimio claimed it first per CLAUDE.md ordering, so europeLogin should move to 6381 or 6382). Side note: claimio's docker-compose actually maps Redis to 6380 but its application.yml references REDIS_PORT:6382 — internal drift inside claimio.claude/... worktree branches in mc, several worktree-agent-* in eu). Not deleted — could be active drafts. Decision for you: git branch -D the ones you're sure about, or leave them.audit-pic-backend/src/main/java/com/auditpic/billing/ + docs/HANDOFF-2026-05-18.md + logs/ — looks like a handoff snapshot. Left untouched. Decision: commit, stash, or discard?The full document is at docs/definition-of-done.md (workspace) and developer-portal/docs/workspace/definition-of-done.md (versioned). Highlights to confirm:
--audit-level=high, Aikido scan, gitleaks pre-commitvar for obvious types, constructor injection only, transactions readOnly=true defaultinject(), strict + noUncheckedIndexedAccess, ESLint strict + unicorn, Karma port: 0, feature flags expire in 90 daysdod-exception issue label for any waiverANTHROPIC_API_KEY secret. Those need your GitHub account. See docs/claude-github-app-setup.md./Users/sarkout/projects/prive/docs/ files into git at the workspace root (the workspace itself isn't a git repo). The durable copies are in developer-portal/docs/workspace/ (PR #7). The workspace folder is the working copy./Users/sarkout/projects/prive/CLAUDE.md apart from the GHCR org fix — its branching/secrets/port sections are mostly correct.mahmoudholding org level → https://github.com/apps/claude. Add ANTHROPIC_API_KEY as an org secret. Verify by @claude-ing a comment on any open issue. (15 min.)
Reacties