---
name: clinic-cli-ticdc
description: Query read-only TiCDC changefeed list and detail metadata through builtin clinic-cli.
---

# TiCDC Metadata

Use this subskill to establish changefeed identity, state, checkpoint metadata,
and downstream type before TiCDC metric or log diagnosis. It uses Clinic's
canonical Data Proxy contract and supports Dedicated, Premium, and BYOC.
Essential v2 is outside the upstream contract.

Read the complete upstream contract first:

```text
.opencode/.all-skills/nutshell-skills/platform/clinic-api/ticdc/SUBSKILL.md
```

Execute through builtin `clinic-cli` so diagnostic fields are normalized and
persisted without full sink or network configuration:

```bash
python3 .opencode/skills/builtin/clinic-cli/scripts/clinic_cli.py ticdc list \
  --cluster-id <cluster_id>

python3 .opencode/skills/builtin/clinic-cli/scripts/clinic_cli.py ticdc detail \
  --cluster-id <cluster_id> \
  --changefeed-id <kernel_internal_id>
```

The optional `--org-id` is a canonical DBAAS org ID override. Normally omit it
and let Clinic resolve the org from trusted cluster metadata.

## Boundaries

- Detail requires the kernel/internal `id` returned by List, not `display_id`.
- A newly created changefeed can have an empty kernel ID; do not call Detail
  until the ID exists.
- List once per cluster. Fetch Detail only for the requested or abnormal
  changefeed instead of expanding every item.
- Metadata establishes scope and state; it does not replace TiCDC lag,
  architecture, throughput, sink, or log evidence.
- The builtin adapter exposes and persists only diagnostic fields. Do not bypass
  it to persist complete endpoint, network, table, or downstream configuration.
