Purpose
Close the CI gap for the Personal Intelligence Cell / Aigents-overtake lane.
We now have substantial contract, runtime, fixture, validator, smoke, Postgres, ClickHouse, gateway/API, Lampstand, and SocioSphere integration artifacts, but the work has not yet been proven by a CI run in this session. This issue asks Copilot to wire those validators into GitHub Actions and make the lane continuously enforced.
Current artifacts to cover
Validators and smoke paths:
tools/validate_personal_intelligence_cell.py
tools/validate_cell_lampstand_adapter.py
tools/validate_cell_lampstand_live_fixture.py
tools/validate_cell_postgres_runtime.py
tools/validate_cell_clickhouse_facts.py
tools/validate_cell_gateway_api.py
tools/validate_cell_social_environment.py
tools/smoke_cell_service_loop.py
tools/validate_repo.py
App tests:
apps/cell-service/tests/test_cell_service.py
apps/cell-service/tests/test_postgres_repository.py
apps/cell-service/tests/test_postgres_migrations.py
apps/cell-service/tests/test_extraction.py
apps/cell-service/tests/test_feed_publication.py
apps/cell-service/tests/test_lampstand_adapter.py
apps/cell-service/tests/test_clickhouse_facts.py
apps/cell-service/tests/test_policy.py
apps/cell-service/tests/test_social_environment.py
Required work
- Add a GitHub Actions workflow for the Personal Intelligence Cell lane.
- Install Python test dependencies from
apps/cell-service/requirements-test.txt.
- Set
PYTHONPATH=apps/cell-service/src:apps/lampstand/src where required.
- Run the app tests with pytest.
- Run all non-mutating validators listed above.
- Run
tools/smoke_cell_service_loop.py.
- Do not run
tools/run_cell_lampstand_live_fixture.py in default CI because it writes Lampstand receipt/catalog artifacts. Validate its presence with validate_cell_lampstand_live_fixture.py only.
- Add workflow comments explaining which paths are non-mutating and which path is operator-run only.
Acceptance criteria
- CI runs on PRs that touch
apps/cell-service/**, schemas/cell/**, contracts/cell/**, tools/validate_cell_*.py, tools/smoke_cell_service_loop.py, infra/datastores/**/cell/**, or relevant docs.
- The workflow passes with no live Postgres or ClickHouse service requirement.
- The workflow does not mutate or commit generated artifacts.
make validate or make validate-repo continues to work locally.
- Any failing validators are fixed with minimal, scoped patches.
Non-goals
- Do not add production gateway handlers in this issue.
- Do not add live Postgres/ClickHouse service containers in this issue unless strictly necessary.
- Do not run the mutating live Lampstand fixture by default.
- Do not remove existing validators or weaken checks to make CI pass.
Evidence required in PR
- Workflow path and name.
- Exact commands run by the workflow.
- Summary of any validator/test fixes.
- Confirmation that the live Lampstand fixture runner remains operator-invoked only.
Purpose
Close the CI gap for the Personal Intelligence Cell / Aigents-overtake lane.
We now have substantial contract, runtime, fixture, validator, smoke, Postgres, ClickHouse, gateway/API, Lampstand, and SocioSphere integration artifacts, but the work has not yet been proven by a CI run in this session. This issue asks Copilot to wire those validators into GitHub Actions and make the lane continuously enforced.
Current artifacts to cover
Validators and smoke paths:
tools/validate_personal_intelligence_cell.pytools/validate_cell_lampstand_adapter.pytools/validate_cell_lampstand_live_fixture.pytools/validate_cell_postgres_runtime.pytools/validate_cell_clickhouse_facts.pytools/validate_cell_gateway_api.pytools/validate_cell_social_environment.pytools/smoke_cell_service_loop.pytools/validate_repo.pyApp tests:
apps/cell-service/tests/test_cell_service.pyapps/cell-service/tests/test_postgres_repository.pyapps/cell-service/tests/test_postgres_migrations.pyapps/cell-service/tests/test_extraction.pyapps/cell-service/tests/test_feed_publication.pyapps/cell-service/tests/test_lampstand_adapter.pyapps/cell-service/tests/test_clickhouse_facts.pyapps/cell-service/tests/test_policy.pyapps/cell-service/tests/test_social_environment.pyRequired work
apps/cell-service/requirements-test.txt.PYTHONPATH=apps/cell-service/src:apps/lampstand/srcwhere required.tools/smoke_cell_service_loop.py.tools/run_cell_lampstand_live_fixture.pyin default CI because it writes Lampstand receipt/catalog artifacts. Validate its presence withvalidate_cell_lampstand_live_fixture.pyonly.Acceptance criteria
apps/cell-service/**,schemas/cell/**,contracts/cell/**,tools/validate_cell_*.py,tools/smoke_cell_service_loop.py,infra/datastores/**/cell/**, or relevant docs.make validateormake validate-repocontinues to work locally.Non-goals
Evidence required in PR