feat(listings): list CL8Y DEX on terra-classic.io #1261

Open
opened 2026-09-13 21:08:32 +00:00 by PlasticDigits · 0 comments

Summary

List CL8Y DEX on the Terra Classic ecosystem directory at terra-classic.io (source: terra-classic-io/website). That site’s Markets - DEX category currently has native venues such as Terraport, Terraswap, and Garuda. CL8Y DEX is absent from src/data/projects.ts (no dex.cl8y.com / CL8Y row).

This is one venue, one product: the live dApp https://dex.cl8y.com. Follow #639 L639-1 (one venue per child). Do not reopen the closed parent catalog, and do not fold this into CoinGecko’s Terra Classic platform add (#644), CoinGecko exchange (#643), DeFiLlama (#631), Keplr (#629), or wallet USDT packs (#1260).

Current codebase

Listing catalog has no terra-classic.io venue

docs/listings/catalog.json and docs/listings/README.md pin wallets, CG/CMC forms, GeckoTerminal, and skip Coinhall / DexScreener / LuncScan Telegram. There is no terra-classic-io venue, pack, or child row. skills/AGENTS_LISTINGS.md does not mention this directory.

scripts/qa/listings_catalog_validate.py requires the existing form packs, skip list, and permanent six CW20s. Adding a PR-channel venue is allowed if those required rows stay and children.order stays 1..n. Do not change the six-token lock for this ticket.

Upstream directory is a GitHub data PR

Live directory data: src/data/projects.ts in terra-classic-io/website. Schema (ProjectLink):

Field Role
name Display name
url Project homepage
description Short label (Terraport/Terraswap use Native DEX)
indicator 'onchain' | 'hybrid' | 'support'
logo Site-relative, e.g. /public/logos/dex/terraport.svg
categories Keys from src/data/categories.ts — DEX bucket is 'dex' (Markets - DEX)

Recent adds (e.g. DarkSun) ship a logo under public/logos/… plus one projects.ts object. Community PRs, not a captcha form.

CL8Y DEX is columbus-5 on-chain AMM + hybrid book. indicator: 'onchain' and categories: ['dex', 'applications'] match Terraport. URL must be the public dApp, not an indexer or docs host.

Why the new implementation is needed

terra-classic.io is a common Terra Classic discovery page. Without a directory row, visitors browsing Markets - DEX never see CL8Y DEX next to Terraport / Terraswap / Garuda. The in-repo listing catalog should treat this like Hexxagon: vendor the exact object + logo, verify locally, then an operator opens the GitHub PR (L639-7: not from this repo’s CI).

Constraints / guardrails

  • One project. CL8Y DEX dApp only. Do not add token rows, Bridge, OTC, or marketing-site extras unless a later issue asks.
  • URL is https://dex.cl8y.com (catalog pin pins.dapp). Not indexer.dex.cl8y.com, not BSC explorers, not a WalletConnect URI.
  • L639-2 / L639-5. Do not list gems, ALPHA, USTRIX, SpaceUSD, or community-tax templates. Do not advertise UST1 as $1 or USTR as a stablecoin in description.
  • Do not invent a second CoinGecko id. This directory has no coinGeckoId field; do not stuff CG ids into description.
  • L639-7. Do not open the GitHub PR from CI. Pack + verify here; operator/agent GitHub submits.
  • Do not reopen #639, #631, #629, or #644.
  • L639-6 skip list stays. This venue is not Coinhall / DexScreener.
  • Logo: reuse tokenlist/images/CL8Y.png (or an SVG already used for CL8Y if one exists in-repo). Do not hotlink random CDNs in the upstream PR; copy bytes into public/logos/dex/ as other DEX entries do.
  • No factory whitelist, wasm, indexer API, Coolify, or wallet-registry JSON in this ticket.
  • Do not register BSC 0x CL8Y as the Classic dApp URL.

Relevant files

Path Role
docs/listings/catalog.json Add venue terra-classic-io (kind: dex, channel: pr, agentic: true) + child row with this issue id
docs/listings/README.md Document the venue under DEX / community directories
skills/AGENTS_LISTINGS.md Point children at this issue; do not dump into #639 implement
docs/listings/terra-classic-io/ (create) projects.fragment.ts or JSON of the exact ProjectLink + README + logo copy notes
docs/listings/terra-classic-io/README.md Upstream path, submit steps, invariants
skills/AGENTS_TERRA_CLASSIC_IO.md (create) Same shape as Hexxagon skill: pins, no gems, no CI PR
scripts/qa/verify-issue-639.sh + listings_catalog_validate.py Stay green; optional assert new venue id exists without breaking required form packs
Makefile verify-issue-<id>
docs/integrators.md Cross-link the new venue
docs/qa/issue-<id>/README.md QA notes
tokenlist/images/CL8Y.png Logo source (read-only)
  1. Confirm absence on a current projects.ts (no dex.cl8y.com, no name CL8Y DEX). If already merged upstream, close this as done and only document the URL in the catalog.
  2. Vendor the object (alphabetical insert in the live file is upstream’s convention; the pack is the object, not a full file fork):
{
  name: 'CL8Y DEX',
  url: 'https://dex.cl8y.com',
  description: 'Native DEX',
  indicator: 'onchain',
  logo: '/public/logos/dex/cl8y.png',
  categories: ['dex', 'applications'],
}
  1. Logo file for upstream: public/logos/dex/cl8y.png (PNG from the tokenlist, or documented SVG). Pack README states the dest path.
  2. Catalog: new venue + child order: n+1. Leave Cosmostation archived / Hexxagon PR pins unchanged.
  3. Verify: make verify-issue-639 still green. New make verify-issue-<id> checks: URL, dex category, onchain, no gem names/addresses, dApp pin matches catalog, no $1 / USTR-as-stablecoin copy, no CI-PR language claiming GitHub from Woodpecker.
  4. Submit (operator GitHub): PR to terra-classic-io/website — Add CL8Y DEX to Markets - DEX. Link this issue. Do not batch unrelated directory edits.

Given / When / Then

  • Given terra-classic-io/website src/data/projects.ts has no https://dex.cl8y.com entry,
  • When this repo vendors a ProjectLink for CL8Y DEX (dex + applications, onchain, logo path + bytes) and docs/listings/catalog.json records venue terra-classic-io with this issue id,
  • Then make verify-issue-<id> and make verify-issue-639 are green, gems stay excluded, and an operator can open one GitHub PR (not from CI) without touching CG/CMC forms, Keplr, or factory/wasm.

Acceptance criteria

  • AC1. In-repo pack contains one ProjectLink: name CL8Y DEX, url https://dex.cl8y.com, indicator: 'onchain', categories includes 'dex'.
  • AC2. Logo dest documented as public/logos/dex/cl8y.png (or svg) with bytes from in-repo CL8Y art.
  • AC3. catalog.json has venue terra-classic-io and a child pointing at this issue. Permanent six tokens unchanged. Required form packs / skip list unchanged.
  • AC4. make verify-issue-639 passes. New make verify-issue-<id> covers pack schema + gem exclusion + dApp URL.
  • AC5. README/skill: L639-7 (no CI GitHub PR). Human/operator opens terra-classic-io/website.
  • AC6. No indexer, factory, wallet-registry, or Coolify changes. No reopen of #639 / #631 / #629 / #644.
  • AC7. Copy does not call UST1 $1 or USTR a stablecoin. No gem / ALPHA / USTRIX / SpaceUSD project rows.

Test plan (functional paths)

# Path Expect
T1 Grep pack + catalog for dex.cl8y.com Exactly the dApp URL
T2 Pack categories Includes dex; not cex
T3 make verify-issue-639 Pass (six tokens, skip list, form packs)
T4 make verify-issue-<id> Pass
T5 Pack vs gems / ALPHA / USTRIX Absent
T6 Logo path Matches public/logos/dex/… convention
T7 Skill/README States operator GitHub PR, not CI

Test plan (directory integrity)

Public directory metadata only (no signing, wasm, or 2-of-3). Not a DeFi drain suite.

# Vector Expect
A1 BSC CL8Y 0x as url Forbidden
A2 Indexer or WC URI as url Forbidden
A3 Gem / tax-template project row Forbidden
A4 description pegs UST1 to $1 Forbidden
A5 CI job opening GitHub PRs No such job
A6 Duplicate name/url vs Terraport Distinct name + dex.cl8y.com
A7 Category cex for this DEX Forbidden

Verification criteria

  • make verify-issue-<id> and make verify-issue-639 green locally.
  • Pack object is drop-in for projects.ts (TypeScript ProjectLink).
  • Manual: operator can open the GitHub PR from the pack; directory search for “CL8Y” after merge shows the DEX under Markets - DEX.
  • No Coolify, factory, or treasury steps.

Out of scope

  • CoinGecko ceramicliberty-com + Terra Classic platform (#644).
  • CoinGecko / CMC exchange forms (#643, #645).
  • DeFiLlama (#631), Keplr (#629), Hexxagon (#641).
  • Bridged USDT wallet registries (#1260).
  • terraclassic.network or other directories (new issues if product asks).
  • Indexer /cg /cmc /gt, factory pairs, wasm, deploy.

First-pass model recommendation

Recommendation: grok-high

Composer fails the intake rubric: more than three production files (catalog, listings README, new venue pack, skill, verify target, Makefile/integrators cross-links); two subsystems (locked #639 catalog invariants plus a third-party GitHub directory schema); listing identity on an external ecosystem site is not a single known local helper edit. Verification is pack + catalog lockstep + operator PR, not one deterministic in-repo behavior change. First pass must keep CG/CMC/Keplr/Llama and wallet USDT work on their existing issues.

## Summary List **CL8Y DEX** on the Terra Classic ecosystem directory at [terra-classic.io](https://terra-classic.io) (source: [terra-classic-io/website](https://github.com/terra-classic-io/website)). That site’s **Markets - DEX** category currently has native venues such as Terraport, Terraswap, and Garuda. **CL8Y DEX is absent** from `src/data/projects.ts` (no `dex.cl8y.com` / CL8Y row). This is **one venue, one product**: the live dApp `https://dex.cl8y.com`. Follow [#639](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/639) **L639-1** (one venue per child). Do **not** reopen the closed parent catalog, and do **not** fold this into CoinGecko’s Terra Classic *platform* add ([#644](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/644)), CoinGecko exchange ([#643](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/643)), DeFiLlama ([#631](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/631)), Keplr ([#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629)), or wallet USDT packs ([#1260](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1260)). ## Current codebase ### Listing catalog has no terra-classic.io venue [`docs/listings/catalog.json`](docs/listings/catalog.json) and [`docs/listings/README.md`](docs/listings/README.md) pin wallets, CG/CMC forms, GeckoTerminal, and skip Coinhall / DexScreener / LuncScan Telegram. There is **no** `terra-classic-io` venue, pack, or child row. [`skills/AGENTS_LISTINGS.md`](skills/AGENTS_LISTINGS.md) does not mention this directory. `scripts/qa/listings_catalog_validate.py` requires the existing form packs, skip list, and permanent **six** CW20s. Adding a **PR-channel** venue is allowed if those required rows stay and `children.order` stays `1..n`. Do **not** change the six-token lock for this ticket. ### Upstream directory is a GitHub data PR Live directory data: `src/data/projects.ts` in [terra-classic-io/website](https://github.com/terra-classic-io/website). Schema (`ProjectLink`): | Field | Role | |-------|------| | `name` | Display name | | `url` | Project homepage | | `description` | Short label (Terraport/Terraswap use `Native DEX`) | | `indicator` | `'onchain' \| 'hybrid' \| 'support'` | | `logo` | Site-relative, e.g. `/public/logos/dex/terraport.svg` | | `categories` | Keys from `src/data/categories.ts` — DEX bucket is `'dex'` (`Markets - DEX`) | Recent adds (e.g. DarkSun) ship a **logo under `public/logos/…` plus one `projects.ts` object**. Community PRs, not a captcha form. CL8Y DEX is columbus-5 on-chain AMM + hybrid book. `indicator: 'onchain'` and `categories: ['dex', 'applications']` match Terraport. URL must be the public dApp, not an indexer or docs host. ## Why the new implementation is needed terra-classic.io is a common Terra Classic discovery page. Without a directory row, visitors browsing **Markets - DEX** never see CL8Y DEX next to Terraport / Terraswap / Garuda. The in-repo listing catalog should treat this like Hexxagon: vendor the exact object + logo, verify locally, then an operator opens the GitHub PR (**L639-7**: not from this repo’s CI). ## Constraints / guardrails - **One project.** CL8Y DEX dApp only. Do not add token rows, Bridge, OTC, or marketing-site extras unless a later issue asks. - **URL** is `https://dex.cl8y.com` (catalog pin `pins.dapp`). Not `indexer.dex.cl8y.com`, not BSC explorers, not a WalletConnect URI. - **L639-2 / L639-5.** Do not list gems, ALPHA, USTRIX, SpaceUSD, or community-tax templates. Do not advertise UST1 as `$1` or USTR as a stablecoin in `description`. - **Do not** invent a second CoinGecko id. This directory has no `coinGeckoId` field; do not stuff CG ids into `description`. - **L639-7.** Do not open the GitHub PR from CI. Pack + verify here; operator/agent GitHub submits. - Do **not** reopen [#639](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/639), [#631](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/631), [#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629), or [#644](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/644). - **L639-6** skip list stays. This venue is **not** Coinhall / DexScreener. - Logo: reuse [`tokenlist/images/CL8Y.png`](tokenlist/images/CL8Y.png) (or an SVG already used for CL8Y if one exists in-repo). Do not hotlink random CDNs in the upstream PR; copy bytes into `public/logos/dex/` as other DEX entries do. - No factory whitelist, wasm, indexer API, Coolify, or wallet-registry JSON in this ticket. - Do not register BSC `0x` CL8Y as the Classic dApp URL. ## Relevant files | Path | Role | |------|------| | `docs/listings/catalog.json` | Add venue `terra-classic-io` (`kind: dex`, `channel: pr`, `agentic: true`) + child row with this issue id | | `docs/listings/README.md` | Document the venue under DEX / community directories | | `skills/AGENTS_LISTINGS.md` | Point children at this issue; do not dump into #639 implement | | `docs/listings/terra-classic-io/` (create) | `projects.fragment.ts` or JSON of the exact `ProjectLink` + README + logo copy notes | | `docs/listings/terra-classic-io/README.md` | Upstream path, submit steps, invariants | | `skills/AGENTS_TERRA_CLASSIC_IO.md` (create) | Same shape as Hexxagon skill: pins, no gems, no CI PR | | `scripts/qa/verify-issue-639.sh` + `listings_catalog_validate.py` | Stay green; optional assert new venue id exists without breaking required form packs | | `Makefile` | `verify-issue-<id>` | | `docs/integrators.md` | Cross-link the new venue | | `docs/qa/issue-<id>/README.md` | QA notes | | `tokenlist/images/CL8Y.png` | Logo source (read-only) | ## Recommended direction 1. **Confirm absence** on a current `projects.ts` (no `dex.cl8y.com`, no name `CL8Y DEX`). If already merged upstream, close this as done and only document the URL in the catalog. 2. **Vendor the object** (alphabetical insert in the live file is upstream’s convention; the pack is the object, not a full file fork): ```ts { name: 'CL8Y DEX', url: 'https://dex.cl8y.com', description: 'Native DEX', indicator: 'onchain', logo: '/public/logos/dex/cl8y.png', categories: ['dex', 'applications'], } ``` 3. **Logo file** for upstream: `public/logos/dex/cl8y.png` (PNG from the tokenlist, or documented SVG). Pack README states the dest path. 4. **Catalog:** new venue + child `order: n+1`. Leave Cosmostation archived / Hexxagon PR pins unchanged. 5. **Verify:** `make verify-issue-639` still green. New `make verify-issue-<id>` checks: URL, `dex` category, `onchain`, no gem names/addresses, dApp pin matches catalog, no `$1` / USTR-as-stablecoin copy, no CI-PR language claiming GitHub from Woodpecker. 6. **Submit (operator GitHub):** PR to `terra-classic-io/website` — *Add CL8Y DEX to Markets - DEX*. Link this issue. Do not batch unrelated directory edits. ## Given / When / Then - **Given** [terra-classic-io/website](https://github.com/terra-classic-io/website) `src/data/projects.ts` has no `https://dex.cl8y.com` entry, - **When** this repo vendors a `ProjectLink` for CL8Y DEX (`dex` + `applications`, `onchain`, logo path + bytes) and `docs/listings/catalog.json` records venue `terra-classic-io` with this issue id, - **Then** `make verify-issue-<id>` and `make verify-issue-639` are green, gems stay excluded, and an operator can open one GitHub PR (not from CI) without touching CG/CMC forms, Keplr, or factory/wasm. ## Acceptance criteria - [ ] **AC1.** In-repo pack contains one `ProjectLink`: name `CL8Y DEX`, url `https://dex.cl8y.com`, `indicator: 'onchain'`, `categories` includes `'dex'`. - [ ] **AC2.** Logo dest documented as `public/logos/dex/cl8y.png` (or svg) with bytes from in-repo CL8Y art. - [ ] **AC3.** `catalog.json` has venue `terra-classic-io` and a child pointing at this issue. Permanent six tokens unchanged. Required form packs / skip list unchanged. - [ ] **AC4.** `make verify-issue-639` passes. New `make verify-issue-<id>` covers pack schema + gem exclusion + dApp URL. - [ ] **AC5.** README/skill: **L639-7** (no CI GitHub PR). Human/operator opens `terra-classic-io/website`. - [ ] **AC6.** No indexer, factory, wallet-registry, or Coolify changes. No reopen of #639 / #631 / #629 / #644. - [ ] **AC7.** Copy does not call UST1 `$1` or USTR a stablecoin. No gem / ALPHA / USTRIX / SpaceUSD project rows. ## Test plan (functional paths) | # | Path | Expect | |---|------|--------| | T1 | Grep pack + catalog for `dex.cl8y.com` | Exactly the dApp URL | | T2 | Pack `categories` | Includes `dex`; not `cex` | | T3 | `make verify-issue-639` | Pass (six tokens, skip list, form packs) | | T4 | `make verify-issue-<id>` | Pass | | T5 | Pack vs gems / ALPHA / USTRIX | Absent | | T6 | Logo path | Matches `public/logos/dex/…` convention | | T7 | Skill/README | States operator GitHub PR, not CI | ## Test plan (directory integrity) Public directory metadata only (no signing, wasm, or 2-of-3). Not a DeFi drain suite. | # | Vector | Expect | |---|--------|--------| | A1 | BSC CL8Y `0x` as `url` | Forbidden | | A2 | Indexer or WC URI as `url` | Forbidden | | A3 | Gem / tax-template project row | Forbidden | | A4 | `description` pegs UST1 to `$1` | Forbidden | | A5 | CI job opening GitHub PRs | No such job | | A6 | Duplicate name/url vs Terraport | Distinct name + `dex.cl8y.com` | | A7 | Category `cex` for this DEX | Forbidden | ## Verification criteria - `make verify-issue-<id>` and `make verify-issue-639` green locally. - Pack object is drop-in for `projects.ts` (TypeScript `ProjectLink`). - Manual: operator can open the GitHub PR from the pack; directory search for “CL8Y” after merge shows the DEX under Markets - DEX. - No Coolify, factory, or treasury steps. ## Out of scope - CoinGecko `ceramicliberty-com` + Terra Classic platform ([#644](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/644)). - CoinGecko / CMC exchange forms ([#643](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/643), [#645](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/645)). - DeFiLlama ([#631](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/631)), Keplr ([#629](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/629)), Hexxagon ([#641](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/641)). - Bridged USDT wallet registries ([#1260](https://git.cl8y.com/code/cl8y-dex-terraclassic/issues/1260)). - terraclassic.network or other directories (new issues if product asks). - Indexer `/cg` `/cmc` `/gt`, factory pairs, wasm, deploy. ## First-pass model recommendation Recommendation: grok-high Composer fails the intake rubric: more than three production files (catalog, listings README, new venue pack, skill, verify target, Makefile/integrators cross-links); two subsystems (locked #639 catalog invariants plus a third-party GitHub directory schema); listing identity on an external ecosystem site is not a single known local helper edit. Verification is pack + catalog lockstep + operator PR, not one deterministic in-repo behavior change. First pass must keep CG/CMC/Keplr/Llama and wallet USDT work on their existing issues.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
code/cl8y-dex-terraclassic#1261
No description provided.