mirror of
https://github.com/jackwener/OpenCLI.git
synced 2026-09-14 18:25:42 +08:00
4de1b42ab7
PR #1297 introduced a CI gate that fails when a site has both a listing and a detail command but the listing rows don't carry an id-shaped column. The gate came with a 10-entry EXEMPT map (topic-string trending, profile-attribute rows, UI-only sessions, ...) where each exemption recorded a "why this listing legitimately doesn't pair" reason. By the same filter that closed PR #1311 (write-without-delete-pair gate): Is "listing should pair with detail" a *permanent* anti-pattern, or case-by-case business judgment? It's case-by-case. Topic-string listings and profile-attribute rows genuinely don't pair with a detail command. The fact that we needed an EXEMPT map with 10 entries and individual reason strings is the smell — it's not the rule winning, it's the rule failing. Forcing every adapter PR to either add an id column or file an exemption was a higher cognitive cost than the silent-loss bugs the rule actually catches. Changes: - .github/workflows/ci.yml — drop the "Check listing↔detail id pairing" step. Other gates (silent-column-drop, typed-error-lint) stay in place. - package.json — rename the script from `check:listing-id-pairing` to `advise:listing-id-pairing` to make the advisory nature explicit. - scripts/check-listing-id-pairing.mjs — drop the `--strict` flag and the EXEMPT map. The script now always exits 0 and prints an advisory report of listings that don't carry an id-shaped column. Reviewers/authors use it as guidance, not a gate. - docs/conventions/listing-detail-id-pairing.md — rewrite from "MUST" to "soft convention". Adds an explicit "why advisory, not a gate" section that lists the legitimate non-pairing categories so future readers know the rule's boundary. - docs/developer/ts-adapter.md — match the advisory tone in the adapter-author guidance. The doc, the script, and the column patterns table all stay — agents and adapter authors can still consult them. What's gone is the CI failure and the per-PR exempt-list maintenance burden. Net diff: -34 lines (gate + EXEMPT map removed, advisory-tone doc adds a small "why advisory" section).