Skip to main content

update-glossary

Add a new term, update an existing definition, or remove an outdated entry in `.agents/GLOSSARY.md`. Use whenever the user wants to write something into the project glossary, or asks "should this be in the glossary?". Enforces the file's principle — disambiguation and etymology only, no paths/env vars/UI-location restatements.

설치로 이동

소스 정보

저장소
blockscout/frontend
최근 소스 활동
2026년 6월 1일 18:16
감지된 SKILL.md 언어
영어
스타
307
포크
740

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
update-glossary
description
Add a new term, update an existing definition, or remove an outdated entry in `.agents/GLOSSARY.md`. Use whenever the user wants to write something into the project glossary, or asks "should this be in the glossary?". Enforces the file's principle — disambiguation and etymology only, no paths/env vars/UI-location restatements.
# Update the project glossary `.agents/GLOSSARY.md` is the **ubiquitous-language** reference for the Blockscout frontend. It exists to disambiguate easily-confused terms and explain non-obvious names. It is **not** a feature index, a config reference, or a folder map — those live in code, `docs/ENVS.md`, and `.agents/rules/`. This skill ensures any glossary edit follows the same principles the file was designed around. ## When to use this skill - The user asks to "add", "update", or "define" a term in the glossary. - The user asks whether a term *should* be in the glossary. - During other work, you notice a term that meets the inclusion criteria below and the user agrees to add it. ## Inclusion criteria — does the term belong? A term earns a row **only if at least one is true**: 1. It has a non-obvious meaning a reader will likely misread (acronyms, codenames, chain-specific words like `Epoch`, `Kettle`, `Operation`). 2. It is easily confused with another term in this codebase (e.g. `Block Reward` vs `Rewards`, `Connect Wallet` vs `Web3 Wallet`, `CCTX` vs `Interchain Indexer`). 3. It has etymology worth recording (acronym expansion, original product name, why it was renamed). 4. It establishes scope a reader can't recover by grepping (e.g. `Account` covers watchlist + private tags + custom ABI + API keys + …). **Reject** if the term is self-explanatory from its name alone (`CSV Export`, `API Docs`, `Verified Tokens`, `Multichain Button`). Folder existence is not a reason to add a row. ## What a row must NOT contain Do not write any of these — they drift, they bloat the file, and they're all recoverable from code or other docs: - **Folder paths** (`src/features/<name>/`, `client/...`, etc.). Path follows predictably from the term's kebab-case feature name. - **Env var names** (`NEXT_PUBLIC_X_ENABLED`). These live in `docs/ENVS.md`. - **UI-location restatements** ("Displayed in the rollup navigation", "Exposed as a section under Tokens", "Surfaces as a button in the top bar"). Trivially recoverable from the rendered app or a grep. - **Implementation details** ("Has two provider backends", "Notifies via a hook", "Has its own context provider"). - **Status qualifiers like `(config-gated)` or `(chain-specific)`.** The Kind column already implies this (every `feature` row is config-gated). - **First-class-entity restatements** ("Has its own detail page"). The Kind column says it. ## Table structure The file is a single alphabetical table with three columns: | Column | Content | |---|---| | **Term** | Bold term name. Codename in parens when it differs from the product name: `**TAC (Ton Application Chain)**`, `**User Op (User Operation)**`. | | **Kind** | One of `entity` / `feature` / `service` / `chain` / `concept`. See the Kinds list at the top of the file. | | **Definition** | One or two short sentences. Disambiguation, etymology, scope. May end with a cross-reference. | ### Picking the Kind - **entity** — a blockchain object that surfaces as a first-class UI element (detail page, list row, API resource). E.g. `Blob`, `Block Reward`, `Kettle`. - **feature** — a config-gated product area. Most rows are this. E.g. `Marketplace`, `Connect Wallet`, `Advanced Filter`. - **service** — an external system (Blockscout-operated or third-party) that backs a feature. E.g. `BENS`, `Clusters`, `SolidityScan`, `MetaSuites`. - **chain** — a specific chain or chain concept. E.g. `Beacon Chain`, `SUAVE`, `TAC`. - **concept** — an architectural / structural term. E.g. `Rollup`, `Chain Variant`. If the term could fit two kinds, pick the one that best matches how a reader will first encounter it. ### Cross-reference phrasings (use these verbatim) - `Distinct from **X**.` — strong disambiguation between commonly-confused terms. - `Contrast with **X**.` — paired-opposite concepts (`Rollup` ↔ `Chain Variant`). - `Co-located with **X**.` — terms that share a UI surface (`BENS` ↔ `Clusters`). - `A sub-feature of **X**.` — hierarchical relation. - `See also: **X**, **Y**.` — related but not strictly confusable. The referenced term must already be in the table (or be added in the same edit). ## Workflow ### 1. Confirm the term and its meaning Search the codebase to confirm what the term actually refers to. Read the relevant folder's `config.ts`, the page components, or the types file. Do not guess from the name alone — codename / product-name mismatches happen (e.g. `connectWallet` config key for the "Connect Wallet" feature, formerly `blockchain-interaction`). Reuse the existing exploration tools: - `ls src/features/` to confirm folder names. - `grep -r "<term>"` to find usages. - Read the feature's `config.ts` for the canonical title and any rename history. ### 2. Check if it's already in the glossary `grep -i "<term>" .agents/GLOSSARY.md`. If a row already exists under a different label (e.g. the user says "Merits" but the row is `Rewards`), update that row rather than creating a duplicate. ### 3. Identify cross-references Before drafting, scan the glossary for terms that: - The new term could be confused with. - The new term depends on or relates to. - Currently reference *this* term and may need their wording updated. Plan the cross-references in both directions — if you add `X` with "Distinct from **Y**", check that **Y**'s row mentions **X** when it should. ### 4. Draft the row Write a one- or two-sentence definition that: - States what the term *is* (not where it lives or how it's wired). - Includes any etymology or codename in parens after the bold term. - Ends with a cross-reference clause when there's a confusable neighbor. Apply every "MUST NOT contain" rule from above. If a sentence ends up just describing where something appears in the UI or how the code is structured, delete it. ### 5. Place it alphabetically The table is sorted by the term as it appears in bold (the codename in parens does not count for ordering — `TAC (Ton Application Chain)` sorts under T). Insert in the right place; do not append at the bottom. ### 6. Update cross-referencing rows If you added a "Distinct from **Y**" clause, ensure **Y**'s row reciprocates when warranted. Add or refine the cross-ref there. ### 7. Verify - `grep -nE "src/|NEXT_PUBLIC_|\.ts\b" .agents/GLOSSARY.md` — should be empty apart from the intro paragraph and intentional package names like `@blockscout/points-types`. - Visual scan: the new row's sentence shape matches its neighbors; the Kind column has one of the five valid values; cross-refs use **bold** and the approved phrasings. ## Examples ### Good ``` | **Operation** | entity | **TAC**-specific entity representing a bridge operation between the TON and EVM ecosystems. No equivalent on standard EVM chains. | ``` Why it works: explains what the term is, where the name comes from (TAC-specific), and the scope (no equivalent elsewhere). No folder path, no env var, no UI location. ``` | **Rewards** | feature | The Blockscout Merits program — a token rewards and incentives system operated by Blockscout. Entirely distinct from **Block Reward** (on-chain block-producer payouts). | ``` Why it works: includes the codename ("Merits"), establishes who operates it, and disambiguates from the easily-confused `Block Reward`. ### Bad (and how to fix) ``` | **Marketplace** | feature | Curated directory of dApps. Lives at `src/features/marketplace/`. Config-gated via `NEXT_PUBLIC_MARKETPLACE_ENABLED`. Surfaces a full-page UI with categories and app detail views. *(config-gated)* | ``` Problems: folder path, env var name, UI-shape restatement, and a status qualifier that duplicates the Kind. Fix: ``` | **Marketplace** | feature | Curated directory of dApps and DeFi applications integrated with Blockscout. | ``` ## When the user asks "should X be in the glossary?" Apply the inclusion criteria honestly. The answer is often "no" — most feature folders do not need a glossary entry. If the term is self-explanatory or there's no neighbor it can be confused with, recommend leaving it out. A short glossary that means something beats a long one that mirrors the folder listing.
GitHub에서 보기