Skip to content

CI hardening for Personal Intelligence Cell overtake validators #449

@mdheller

Description

@mdheller

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

  1. Add a GitHub Actions workflow for the Personal Intelligence Cell lane.
  2. Install Python test dependencies from apps/cell-service/requirements-test.txt.
  3. Set PYTHONPATH=apps/cell-service/src:apps/lampstand/src where required.
  4. Run the app tests with pytest.
  5. Run all non-mutating validators listed above.
  6. Run tools/smoke_cell_service_loop.py.
  7. 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.
  8. 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.

Metadata

Metadata

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions