- Domain: Crypto token asset registry — logos, metadata (
info.json), and trading-pair tokenlists for ~188 blockchains maintained by the Trust Wallet community. - Route here: Token logo additions/updates,
info.jsonvalidation, blockchain tokenlist (tokenlist.json,tokenlist-extended.json) maintenance, asset validation tooling (Go CLI), DApp metadata. - Do not route here: Wallet logic, key management, transaction signing, mobile/extension app code, backend API services.
- Consumers: Trust Wallet mobile app (CDN token logos/metadata), external wallet projects,
assets-managementweb app (via the Assets Manager API). - Ships: Compiled Go binary (
bin/assets) with subcommandscheck/fix/update-auto/add-token/add-tokenlist. Also ships the asset file tree itself (consumed via GitHub raw URLs and CDN). - Agent map: To add a token — use
make add-token; to validate —make check; to auto-fix —make fix; to update trading pairs —make update-auto. See guides/add-token.md. - Stack: Go
For the structured knowledge base, see knowledge/constitution.md.
-
ci — CI/CD pipelines, deployment automation, and release processes
-
code-conventions — Code conventions, style rules, and decision records
-
patterns — Coding patterns, recipes, and proven approaches
-
specs — Feature specifications and requirements
-
architecture — Architecture
-
features — Features
-
guides — Guides
-
libs — Libs
-
tests — Tests
This repo may keep a living archive of incident-derived rules in — each file a postmortem of a real bug or a non-obvious pattern that bit once and would bite again: root cause, the rule that prevents recurrence, and tags for matching. The folder is optional and may be absent — create it the first time you have a learning worth saving.learnings/
Before investigating any bug, regression, or "weird behavior", if a learnings/ directory exists:
- Search the frontmatter directly — it's the source of truth and always present:
grep -ril "<keyword>" learnings/— matches the frontmattertags:/summary:+ body.ls learnings/ | grep -i "<keyword>"— matches the slug-style filename.- Skim each match's
summary:line to decide whether to read the full body.
- For a topic-organized ToC (grouped by surface + a tag index), open
learnings/index.md. It is a generated artifact that garden always regenerates from frontmatter — never hand-edit it (any edit is discarded next run). Depending on the repo it's either gitignored (a derived artifact) or committed; either way it can be stale if a learning file changed without a regen, so prefer reading the learning files' frontmatter over trusting it blindly. - Found a match? Read it before forming a hypothesis — a 30-second read can turn a 2-hour investigation into a 5-minute fix.
- Every file has frontmatter (
title,date,area,files,symptom,tags,summary;prwhen tied to a specific PR).areadrives the index's surface grouping;tagsdrive its tag index.
After any fix, feature, or non-trivial change — if you learned something not already obvious from the code:
- Add a new file
learnings/<slug>.mdwith the frontmatter above, then a body covering: the symptom, the root cause (the actual mechanism, not just "the bug"), why prior fixes weren't enough if applicable, the rule going forward, and any regression guards. Create thelearnings/folder if it doesn't exist yet. - If the learning extends an existing entry, edit that file instead of creating a duplicate.
- Make the new file's
area,tags, andsummaryaccurate — those drive bothgrepand the generated index (area→ its surface grouping,tags→ its tag index,summary→ its hook). Never hand-editlearnings/index.md— it's generated and always regenerated; edit the learning file's frontmatter instead. - Commit the learning in the same PR as the fix — never as a follow-up.
The bar: would a future agent save time by reading this before touching the same surface? If yes, write it; if it would just say "read the diff," skip it. Don't ask which learnings to capture — commit every candidate that clears the bar.
This repo's knowledge/ covers: ci, code-conventions, patterns, specs
Topics NOT documented locally: architecture, build, conventions, core-libs, decisions, design, features, git-conventions, guides, observability, product, quality, security, tests, workflows, brand, business, legal, hr, prompts, api, libs, components, references
- [TODO: Add project-specific constraints]