Agent Skills › langwatch/langwatch › feature-map

feature-map

GitHub

维护 LangWatch 产品的功能地图文件,确保 feature-map.json 与 FEATURE_MAP.md 同步。用于添加或重命名功能、API、UI 路由等时,验证代码与服务的一致性,保持产品架构文档的准确性。

.claude/skills/feature-map/SKILL.md langwatch/langwatch

Trigger Scenarios

新增或重命名用户可见功能 修改 REST API 命名空间 调整 UI 路由路径 注册新的 MCP 工具 更新 CLI 命令

Install

npx skills add langwatch/langwatch --skill feature-map -g -y
More Options

Non-standard path

npx skills add https://github.com/langwatch/langwatch/tree/main/.claude/skills/feature-map -g -y

Use without installing

npx skills use langwatch/langwatch@feature-map

指定 Agent (Claude Code)

npx skills add langwatch/langwatch --skill feature-map -a claude-code -g -y

安装 repo 全部 skill

npx skills add langwatch/langwatch --all -g -y

预览 repo 内 skill

npx skills add langwatch/langwatch --list

SKILL.md

Frontmatter
{
    "name": "feature-map",
    "description": "Maintain the canonical LangWatch feature map (feature-map.json at the repo root) and its human-readable companion FEATURE_MAP.md. Use when adding or renaming a feature, a REST namespace, a UI route, an MCP tool, a CLI command or a user-facing skill, so the central registry keeps naming what the code actually serves. Every entry is validated against the code that provides it.",
    "argument-hint": "[what changed, e.g. 'added dataset MCP tools']",
    "user-invocable": true
}

Maintain the feature map

feature-map.json at the repo root is the product's public information architecture: the top-level categories (the features array; count them in the file, not here), each with children, each child a feature with its surfaces. FEATURE_MAP.md is the coverage table derived from it — edit both in one change. Use the underscore form; never create FEATURE-MAP.md.

A feature here is a customer-facing capability, a row in this map, named the way a user would name it. It is not the same thing as a module (modules/<name>, the contract, process, browser and client packages); one feature can be served by several modules, and one module can serve several features.

The entry shape

{
  "id": "observability.tracing",
  "name": "Tracing",
  "description": "Capture LLM calls, spans, inputs/outputs, costs, and latency",
  "surfaces": {
    "code": {
      "sdk": { "python": "…", "typescript": "…", "go": "…" },
      "cli": ["trace search"],
      "hints": {},
      "skill": "tracing",
      "docs": "https://…"
    },
    "platform": { "ui": "/traces", "mcp": ["search_traces"], "skill": null, "docs": null },
    "api": "/api/collector",
    "docs": "https://…"
  },
  "sync": "code-to-platform",
  "produces": ["traces"],
  "consumes": []
}
  • code is what a developer writes in their own project; platform is the UI and MCP. api and docs are cross-cutting.
  • Values are namespaces, not methods: "langwatch.experiment" means the module.
  • sync: null (one mode only), "bidirectional", "code-to-platform", "platform-to-code". Future intent goes in plannedSync, never in sync.
  • hints carries a copy-pasteable example per CLI command.
  • No aspirational entries. If the code does not serve it, it is not in the map.

Where each surface actually comes from

Field Verify against
surfaces.api modules/<f>/process/src/transport/*.rest.ts (defineRestRouter), mounted by the module's installation in apps/api (record §8)
tRPC namespaces modules/<f>/process/src/transport/*.trpc.ts
platform.ui apps/ui/src/shell/ui-route-table.ts (the path of a route descriptor)
sidebar placement modules/navigation/browser/src/model/ (project-nav-items.ts, section-nav-items.ts)
platform.mcp mcp/typescript/src/create-mcp-server.ts (registerTools) over mcp/typescript/src/tools/
code.cli sdks/typescript/src/cli/commands/ — one directory per command group, sdks/typescript/src/cli/index.ts is the entry
code.skill skills/<name>/SKILL.md (the user-facing skills, not .claude/skills)
code.sdk sdks/python/src/langwatch/__init__.py, sdks/typescript/src/index.ts, sdks/go/

Updating

  1. Read feature-map.json, find the feature by id (dotted: category.feature).
  2. Add the value to the right surface array or field. A brand-new feature gets a whole entry under the category whose mental model it belongs to — the hierarchy is the product's, not the code's.
  3. Mirror the change in FEATURE_MAP.md.
  4. Validate every field you touched against the table above with ls / grep -rn (ripgrep is unreliable in this repo). An entry that names something the code does not serve is worse than a missing one.
  5. A route rename must update this file: it is a live surface, not documentation.

Report

The entries added or changed, the code path each was validated against, and anything you found in the map that the code no longer serves.

Version History

  • c0c14dc Current 2026-10-19 19:32
  • 12615f1 2026-08-20 10:00

Same Skill Collection

.claude/skills/analyticssim/SKILL.md
.claude/skills/browser-pair/SKILL.md
.claude/skills/browser-test/SKILL.md
.claude/skills/chakra-ui-builder/SKILL.md
.claude/skills/chakra-ui-refactor/SKILL.md
.claude/skills/code-review/SKILL.md
.claude/skills/code-search/SKILL.md
.claude/skills/githubsim/SKILL.md
.claude/skills/haven-auth/SKILL.md
.claude/skills/haven-db/SKILL.md
.claude/skills/haven-orb/SKILL.md
.claude/skills/haven-play/SKILL.md
.claude/skills/haven-seed/SKILL.md
.claude/skills/haven-setup/SKILL.md
.claude/skills/idpsim/SKILL.md
.claude/skills/lambdasim/SKILL.md
.claude/skills/langwatch-kanban/SKILL.md
.claude/skills/llmsim/SKILL.md
.claude/skills/mailsim/SKILL.md
.claude/skills/module/SKILL.md
.claude/skills/outboundsim/SKILL.md
.claude/skills/ownership/SKILL.md
.claude/skills/repo-tree/SKILL.md
.claude/skills/storagesim/SKILL.md
.claude/skills/voicesim/SKILL.md
plugins/langwatch/skills/langwatch/SKILL.md
services/langy-agent/skills/github/SKILL.md
skills/_compiled/native/agent-best-practices/SKILL.md
skills/_compiled/native/agent-performance/SKILL.md
skills/_compiled/native/automations/SKILL.md
skills/_compiled/native/code-changes/SKILL.md
skills/_compiled/native/context-sweet-spot/SKILL.md
skills/_compiled/native/daily-insights/SKILL.md
skills/_compiled/native/dashboard-widgets/SKILL.md
skills/_compiled/native/datasets/SKILL.md
skills/_compiled/native/debug-instrumentation/SKILL.md
skills/_compiled/native/debug-with-langwatch/SKILL.md
skills/_compiled/native/drive-the-ui/SKILL.md
skills/_compiled/native/eval-triage/SKILL.md
skills/_compiled/native/evaluate-multimodal/SKILL.md
skills/_compiled/native/evaluations/SKILL.md
skills/_compiled/native/experiments/SKILL.md
skills/_compiled/native/find-traces/SKILL.md
skills/_compiled/native/generate-rag-dataset/SKILL.md
skills/_compiled/native/github/SKILL.md
skills/_compiled/native/guided-onboarding/SKILL.md
skills/_compiled/native/level-up/SKILL.md
skills/_compiled/native/lwql-charts/SKILL.md
skills/_compiled/native/online-evaluations/SKILL.md

Metadata

Files
0
Version
c0c14dc
Hash
42f8dc09
Indexed
2026-08-20 10:00

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-26 04:39
浙ICP备14020137号-1