Known Discrepancies (CLAUDE.md ↔ Code)
Where CLAUDE.md (or other historical docs) disagrees with the current code. The code is authoritative; this page records the delta so readers coming from the project memory do not get tripped up.
This list is a point-in-time snapshot (library v2.6.0). It is updated opportunistically, not on a schedule.
Agent environments directory
| Where | Says | Actual |
|---|---|---|
|
|
|
If your agents were provisioned under the old path, set QA_AGENT_ENVS_DIR=/home/jenkins/agent/qa-envs as a global env var rather than relocating the directories.
Service catalogue — extras
| Service mentioned by | Present in compose-{mysql,oracle}.yml? |
|---|---|
|
No. A |
|
No. Only |
|
No. It is a helper directory used by |
Source of truth: a grep of ^ [a-z]: between services: and the next top-level key in each compose-.yml. The canonical list is in Reference → Service catalogue.
Postgres bundle
README says there is a compose-postgres.yml. There is not. postgres is a service inside both compose-mysql.yml and compose-oracle.yml, gated behind a Compose profile, and selected by DATABASE_TYPE=postgres.
Service count
README says "17+ service templates"; the actual count in v2.6.0 is 23 services per bundle (24 distinct services counting mysql and oracle as bundle-specific). See services table.
Network name
QAConfig.Defaults.NETWORK_NAME_SUFFIX = '_net' suggests envs use ${ENV_NAME}_net networks. In practice v2.6.0 compose bundles declare a top-level project name: ft-services-{mysql,oracle} and rely on the implicit <project>_default network. The _net suffix is reserved for future per-env networking; today there is no per-env network.
QA_ADMIN_USERS default
Historical docs mention qa-admin as the default. The current default (commit d2b969b) is admin. Both CLAUDE.md and QAConfig.RBAC.ADMIN_USERS agree on admin in v2.6.0; this note is here only for operators migrating from pre-2.6 instances.
vars/ inventory
CLAUDE.md lists the main *Step.groovy files. The actual directory additionally contains editSchemaStep.groovy and updateStep.groovy — both are part of the legacy schema flow and not mentioned in CLAUDE.md. They remain functional but should not be used for new work.
Healthchecks
Commit e15a019 removed "unused healthchecks" from both bundles, yet many services still carry a healthcheck: block. The commit targeted services where the healthcheck endpoint was wrong or pointed at a binary that was never running — in the remaining services the healthcheck is the gate for condition: service_healthy in dependencies.yaml. CLAUDE.md does not currently distinguish these — treat the presence of healthcheck: in a service block as authoritative.