Always start by activating the repo environment:
source ./activate <deploy-name>activatemust stay env-only: create the conda env if missing, activate it, and run exactly onepython -m pip install -e <repo-root>on first create.- Do not add config copying, TapDB env exports, loader-path mutation, pre-commit installs, Playwright installs, shell tool checks, or DB/bootstrap work back into
activate. - If Bloom needs runtime configuration or TapDB namespace setup, move that logic into
bloom config init,bloom db build, or Dayhoff-generated bootstrap scripts instead ofactivate. - Every service config, TapDB config, and TapDB registry path must be passed explicitly as a full absolute file path.
- Do not guess TapDB config or registry paths from deployment code,
~/.config, or repo-local defaults during runtime startup. - If Bloom is missing an explicit path, fail hard and fix the caller or config source instead of synthesizing a fallback path.
environment.yamlis only for Python/bootstrap/system packages.- All Python libraries needed by the repo belong in
pyproject.tomlunder[project.dependencies]. - Do not reintroduce
pip:blocks or Python package installs intoenvironment.yaml. - Do not add any secondary install set such as
.[dev],.[test],requirements-dev.txt, or[project.optional-dependencies].
bloomand every declared console script must resolve from the activated conda envbin/directory.bloom db buildmust keep an explicit--targetargument, and repo-solo local bootstrap examples should usebloom db build --target local.- Bloom runtime and bootstrap commands must consume explicit absolute config file paths.
- Do not reintroduce service-config, TapDB config, or registry-path guessing from deployment names,
HOME,~/.config, or silent fallback helpers. - If Bloom is invoked by Dayhoff or another orchestrator, that caller must pass the full absolute
--configpath plus the full absolute TapDB config and registry paths Bloom needs. bloom config initmay materialize the deployment-scoped YAML, but every later runtime/bootstrap path must fail hard when required explicit file paths are missing or non-absolute.
- Use
bloom ...as the primary interface for normal Bloom work. - MUST use Bloom's supported API/CLI surface for Bloom operations.
- Use
tapdb ...only when Bloom explicitly delegates low-level DB/runtime lifecycle to TapDB. - Use
daycog ...only when Bloom explicitly delegates shared Cognito lifecycle to Daycog.
- Do not bypass
bloom,tapdb, ordaycogwith raw tools just because something is missing or broken. - Do not treat direct
python -m ..., rawpostgres, raw AWS CLI mutations, or direct config-file edits as automatic fallbacks. - Do not use temporary auth/runtime override hacks such as
BLOOM_OAUTH=noor ad hocBLOOM_AUTH__*values to force startup unless the user explicitly asks for that exact workaround. - If the intended CLI path is broken or incomplete, stop, diagnose, and ask for permission before circumventing it.
- Prefer patience and repair of the intended CLI workflow over inventing a shortcut.
- Start with
source ./activate <deploy-name> - Use
bloom db build - Use
bloom db seed - Use
bloom server start --port 8912 - Use
tapdb ...anddaycog ...only where Bloom docs or Bloom CLI explicitly delegate to them