taiyou-dw

Data warehouse / ETL — ClickHouse + Dagster + Python. Closest of the four to Step 2 thanks to nested agent docs. Cherny harness audit — 2026-08-04.

Step 1
Assisted (current)
~30%
Toward Step 2 (best of 4)
Strong
Agent docs / patterns
No CI
No lint / typecheck
Verdict

Strong nested AGENTS.md and copyable ETL/schema patterns make assisted pairing excellent. Still not Step 2 ready: fragmented local verify, no CI/lint/types, shared Docker volumes, sparse asset checks, no auto-review.

Capability scores (0–5)

Agent context
4
Copyable patterns
5
Self-verify
2
Lint / types
0
Auto review
0
Parallel isolation
1
Eval / quality
2
Deploy autonomy
1

Stack snapshot

LayerRealityEvidence
WarehouseClickHouse single-nodeconfig/docker-compose.yml · clickhouse-server:26.2.3
OrchestrationDagster · 19 workflows · UI :3366etl/definitions.py
Python3.14 + uvservice/etl_agent/ · service/migrations/
SchemaCH 19 migrations · PG 11 (runner TBD)schema/clickhouse/ · schema/postgres/
ETL shaperaw → dim / fact / snap / agg + MLetl/workflows/
OpsEC2-oriented · Alloy→Loki · Caddyconfig/ · bin/

Gate checklist

GateStatusEvidence
Agent docs Strong Root + nested: AGENTS.md, schema/AGENTS.md, etl/AGENTS.md, etl/workflows/AGENTS.md + GUIDELINES.md / DEVELOPMENT.md. No CLAUDE.md / .cursor.
Copyable patterns Ready etl/workflows/AGENTS.md full templates for assets/jobs/SQL; concrete refs (raw_students, dim_students…).
Self-verification Weak bin/test_etl_agent.sh + testcontainers; migrations/notif tests; smoke curls in DEVELOPMENT.md — fragmented, not in root AGENTS.md, no single verify entrypoint.
Lint / types / format Gap No ruff/mypy/black/pyright in either package pyproject.toml.
CI / auto review Gap No .github/ — no Actions, CODEOWNERS, or merge gates.
Parallel isolation Partial Docker Compose exists; shared host volumes (clickhouse-data/, dagster-data/) and fixed ports 8123/3366. No worktree guidance.
ASSET_CHECKS Sparse 17/19 workflows empty. Real checks: dim_students, notification_prediction.
Secrets hygiene OK .env gitignored; .env.example tracked.
Migrations Partial CH runner via bin/migrate.sh + migrations compose. PG migrations files-only (runner TBD).

What makes this the strongest harness

Nested agent guidesRoot → schema → etl → workflows — actionable, not boilerplate
ConventionsNaming, migrations, roles encoded in GUIDELINES
Local Docker stackClickHouse + Dagster + Alloy + Caddy via bin/dev_env.sh
Some real testsetl_agent (~17), migrations, notification_prediction ML checks
Metadata / lineageRich ClickHouse metadata MD alongside migrations

Top 3 actions to unlock Step 2

  1. Unified verify + CI — One documented command (lint + typecheck + bin/test_etl_agent.sh + migrations tests) and a GitHub Actions PR workflow.
  2. Document verify + isolation in root AGENTS.md — How agents self-check; git worktree / compose project-name / port overrides so parallel agents don’t collide on shared volumes.
  3. PR auto-review / same quality bar — Required checks + review bot / CODEOWNERS so agent PRs aren’t mergeable without the human bar.
One-liner

taiyou-dw = Step 1 (Assisted): excellent nested agent docs and copyable ETL/schema patterns; blocked from Step 2 by missing CI/lint/types, fragmented self-verify, and no parallel isolation or auto-review gates.