Status
Approved
Rewritten 2026-08-25 from a flat punch list into this epic. Phase 1 (#109) shipped core Kata identity and deferred the leftovers below. Do not build this parent. Build approved children only.
Goal
Clear leftover T3 naming from surfaces a Kata Code user, operator, or contributor still reads, without renaming durable formats or violating FORK.md.
Context
Related: #109 (Phase 1 identity, closed), #119 (internal identifiers, wire formats, storage keys — not this epic), #124 (vendor-pull; do not stall it on this epic).
Audit 2026-08-25: docs/user/updating.md already uses npx @kata-sh/code-cli@latest (and versioned specs). Most other user-visible t3@ / npx t3 / t3 pair strings remain. The previous body mixed those with marketing, legal, telemetry, MCP wire names, and theme ids.
FORK.md still lists apps/marketing/** copy, t3.json, packaging/aur/**, and .repos/** as intentionally T3-shaped.
Constraints and non-goals
- Do not rename
t3.json, Connect wire IDs, checkpoint refs, OAuth URNs, T3_* env vars, or t3code: client storage keys. That is #119.
- Do not rewrite
apps/marketing/** copy, legal pages, store listing IDs, or tweets until Kata release URLs, store apps, and legal entity exist.
- Do not rename MCP server id
t3-code, OTLP service name t3-server, theme ids t3-chat / t3-code, or EAS owner: pingdotgg in a child that is not explicitly about that rename.
- Do not invent winget / Homebrew / AUR package names. Native packages are not published for Kata yet.
- Historical path matchers may still recognize
t3 / t3@ cache layouts so old installs keep being detected.
Acceptance criteria
Architecture
User-visible copy and docs first. Wire names, telemetry, themes, and marketing stay parked until a named decision. Later slices are independent user outcomes (each with its own blocker), not a backend-then-frontend waterfall.
#118 remaining user-facing branding (this epic)
├─ #127 update/reconnect copy, PTY error, pairing labels, install + operator docs
├─ later: GitHub feedback routing (templates, CONTRIBUTING)
├─ later: MCP / provider clientInfo t3-code (lockstep; may break existing MCP configs)
├─ later: OTLP / trace service names (dashboard break)
├─ later: marketing, legal, store listings (entity + listings)
├─ later: mobile EAS owner (Expo account)
└─ later: theme ids (prefs migration vs display-label-only)
#119 internal identifiers (sibling, not a child)
Delivery slices
- Update copy, pairing labels, and install docs — #127. Per-surface required names live on that child (versioned npm spec vs CLI verb vs
npx hint).
- Feedback routing. #146 keeps issue templates and
CONTRIBUTING.md inside the Kata repository.
- MCP / provider identity — lockstep
t3-code to a Kata name across adapters + tests. Blocked until we decide whether existing user MCP configs must keep working under the old name.
- Telemetry names —
t3-server, t3-headless-relay-client, t3.client.surface. Blocked until dashboards can follow the rename.
- Marketing / legal / stores — blocked on Kata release URLs, App Store / Play listings, and legal entity.
- Mobile EAS owner — blocked on the Expo account that should own builds.
- Theme ids — blocked on migrate-with-alias vs display-label-only.
Demonstration
Delegated to children. This epic is verified when every child is verified or explicitly skipped.
Verification
Per child. Program-level: each child's Verification grep and name table pass on the surfaces that child owns. Do not treat this parent as greppable scope.
Risks and mitigations
- Punch-list gravity. The old body invited one PR for everything. Children stay one concern; this parent stays draft until remaining slices are decided or skipped.
- Vendor-pull collision. #124 slice 2+ will re-import T3 copy. Remap to Kata names in those ports; do not wait for this entire epic.
- False internals. #119 owns durable keys and
T3_* env vars. If a string is both user-visible and a storage key, stop and split rather than rename the key here.
Build handoff
Status
Approved
Rewritten 2026-08-25 from a flat punch list into this epic. Phase 1 (#109) shipped core Kata identity and deferred the leftovers below. Do not build this parent. Build approved children only.
Goal
Clear leftover T3 naming from surfaces a Kata Code user, operator, or contributor still reads, without renaming durable formats or violating FORK.md.
Context
Related: #109 (Phase 1 identity, closed), #119 (internal identifiers, wire formats, storage keys — not this epic), #124 (vendor-pull; do not stall it on this epic).
Audit 2026-08-25:
docs/user/updating.mdalready usesnpx @kata-sh/code-cli@latest(and versioned specs). Most other user-visiblet3@/npx t3/t3 pairstrings remain. The previous body mixed those with marketing, legal, telemetry, MCP wire names, and theme ids.FORK.md still lists
apps/marketing/**copy,t3.json,packaging/aur/**, and.repos/**as intentionally T3-shaped.Constraints and non-goals
t3.json, Connect wire IDs, checkpoint refs, OAuth URNs,T3_*env vars, ort3code:client storage keys. That is #119.apps/marketing/**copy, legal pages, store listing IDs, or tweets until Kata release URLs, store apps, and legal entity exist.t3-code, OTLP service namet3-server, theme idst3-chat/t3-code, or EASowner: pingdotggin a child that is not explicitly about that rename.t3/t3@cache layouts so old installs keep being detected.Acceptance criteria
status:verified.apps/marketing/**, AUR,t3.json) stay T3-shaped until a child is approved that overrides that policy.Architecture
User-visible copy and docs first. Wire names, telemetry, themes, and marketing stay parked until a named decision. Later slices are independent user outcomes (each with its own blocker), not a backend-then-frontend waterfall.
Delivery slices
npxhint).CONTRIBUTING.mdinside the Kata repository.t3-codeto a Kata name across adapters + tests. Blocked until we decide whether existing user MCP configs must keep working under the old name.t3-server,t3-headless-relay-client,t3.client.surface. Blocked until dashboards can follow the rename.Demonstration
Delegated to children. This epic is verified when every child is verified or explicitly skipped.
Verification
Per child. Program-level: each child's Verification grep and name table pass on the surfaces that child owns. Do not treat this parent as greppable scope.
Risks and mitigations
T3_*env vars. If a string is both user-visible and a storage key, stop and split rather than rename the key here.Build handoff