You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@skywalking.apache.org by wu...@apache.org on 2026/08/26 06:02:01 UTC

(skywalking-horizon-ui) branch main updated: docs(claude): state what Horizon requires, not what preceded it (#139)

This is an automated email from the ASF dual-hosted git repository.

wu-sheng pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/skywalking-horizon-ui.git


The following commit(s) were added to refs/heads/main by this push:
     new ef3a1615 docs(claude): state what Horizon requires, not what preceded it (#139)
ef3a1615 is described below

commit ef3a161539d983bcabf25261ea2125562a7ecbe8
Author: 吴晟 Wu Sheng <wu...@foxmail.com>
AuthorDate: Wed Aug 26 14:01:55 2026 +0800

    docs(claude): state what Horizon requires, not what preceded it (#139)
---
 CLAUDE.md | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/CLAUDE.md b/CLAUDE.md
index c7e7262a..b2a53d42 100644
--- a/CLAUDE.md
+++ b/CLAUDE.md
@@ -4,7 +4,9 @@ This file states the **principles** for working in this codebase. It is not a ho
 
 ## What this project is
 
-**Horizon UI** is the next-generation web UI for [Apache SkyWalking](https://github.com/apache/skywalking). The goal is **feature parity** with [skywalking-booster-ui](https://github.com/apache/skywalking-booster-ui) on the **same OAP GraphQL query-protocol and MQE**, with a modernized, dense, dark-first design. This is a **greenfield rewrite**, not a fork. Backend APIs do not change.
+**Horizon UI** is the official web UI for [Apache SkyWalking](https://github.com/apache/skywalking): a dense, dark-first console over OAP's **GraphQL query-protocol and MQE**, with an integrated admin surface that owns auth and RBAC. Backend APIs do not change — Horizon adds no backend of its own beyond the BFF that serves it.
+
+What belongs in Horizon is decided by **what operators need and what the OAP protocol exposes**, not by what any previous UI did. The earlier generation (`skywalking-booster-ui`, removed from the OAP distribution in 11.0.0) is history, not a specification: it is worth reading for how a problem was once solved, and it settles nothing about how this one should be. Where a screen's behaviour is in question, the authorities are the OAP protocol (below), the operator's task, and this file.
 
 ## How to work (the only workflow that matters)
 
@@ -22,11 +24,11 @@ When you can't reproduce the user's symptom locally, say so. Don't invent a fix.
 
 ## Backend compatibility
 
-The UI talks to OAP through the **GraphQL query-protocol** (same as booster-ui) and through OAP's admin REST surface. Both contracts are **fixed** — owned by the skywalking repo, not this one.
+The UI talks to OAP through the **GraphQL query-protocol** and through OAP's admin REST surface. Both contracts are **fixed** — owned by the skywalking repo, not this one.
 
 - **Do not invent fields.** If a screen needs data the protocol doesn't expose, flag it. The right fix is a query-protocol change upstream, not a UI hack or a BFF-side fabrication.
 - **The schemas and Java implementations are the authoritative spec** — read them (`oap-server/server-query-plugin/.../query-protocol/*.graphqls` and `oap-server/server-core/.../query/`) before guessing at a wire shape. Stand up a local OAP (the SkyWalking repo ships a docker-compose) for smoke-testing wire changes.
-- **Booster-ui is the working reference.** When in doubt about how a query is shaped or paged, look at how booster-ui does it.
+- **When a wire shape is in doubt, read the protocol and ask OAP** — the schema, the Java implementation, then a live server. An older UI's source may show one working answer, but it is evidence about the past, not a decision about the present: it can be as old as the protocol it was written against, and it carries its own workarounds. Never cite it as the reason a thing must be a certain way.
 
 ### Metric entity-scope is load-bearing