Programowanie · Budowanie i kod
add-pane-tab
/add-pane-tab
Dodaje kartę do bocznego panelu paneline i zmienia dane, które karta wczytuje.
Dla kogo
- Autor
- markneonin ↗
- Repozytorium
- paneline ↗
- Licencja
- MIT
- Ostatnia zmiana repozytorium
- 13.10.2026
Ocena i bezpieczeństwo
96/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść31 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
- Pliki w paczce
- 1
- Skrypty
- 0
- Komentarze HTML
- 0
- Adresy URL w SKILL.md
- 0
Przestarzałość
Brak sygnałów. Repozytorium zmienione 13.10.2026, bez odwołań do wycofanych modeli i API.
Licencja
MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.
Co robi i kiedy
Dodaje kartę do bocznego panelu paneline i zmienia dane, które karta wczytuje.
Oryginalny opis (EN)
Use when adding a tab to the paneline side pane, or changing which data a tab loads.
Jak działa
SKILL.md bez nagłówków drugiego poziomu · 27 linii, 452 słów
Podgląd SKILL.md
---
name: add-pane-tab
description: Use when adding a tab to the paneline side pane, or changing which data a tab loads.
---
# Add a pane tab
Read `docs/architecture.md` (Side pane) and `docs/engine-limits.md` first. Use `hooks/context-tab.tsx` with `hooks/context-draw.tsx`, and `hooks/mcp-tab.tsx` with `hooks/mcp-draw.tsx`, as models.
1. Create a Backlog.md task for the tab (see `AGENTS.md`).
2. Find the data source before you plan. Search `.claude-plugin/types/claude-code/index.d.ts` for the noun you need. Do not guess `$` methods: for example there is no `$.skill.list`. The session usage breakdown carries `skillFrontmatter` (see `ContextSkill`) and is fetched by the Context tab.
3. If the tab keeps new state, add its keys under `PluginState.paneline` in `types/index.d.ts`. Do not import anything there. The tab id is a plain string, so there is no tab type to extend.
4. Write the body in `hooks/<name>-draw.tsx`:
- Export a view type, for example `SkillsView`, and a function `<name>Tab(ui: Ui, view: <Name>View): RenderElement`.
- Take `Box`, `Text` and `Button` from `ui`. Use `paneRow` and the helpers from `pane-kit.tsx`. Colours are theme keys from `palette.ts` only.
- Keep it a pure function of its view. No `$`, no reads.
- Follow `docs/pane-style.md` for headings, rows, spacing, colours and widths.
5. Write `hooks/<name>-tab.tsx`. It exports two things:
- `<NAME>_TAB = { id: "<name>", label: "<Label>" }`.
- `register<Name>Tab(on: On)`. It registers a `ui.render` hook for `{ component: "Pane", requestId: tabRequestId(<NAME>_TAB.id) }` (from `pane-tab.ts`). The hook reads the data, calls `<name>Tab($.ui.resolve(e), view)` and returns the result. The shell has already set `e.props.bodyColumns`.
- Declare the tab's own atoms in this file. The loader does not accept an atom or `$` that comes from another file. See `docs/engine-limits.md`.
6. Add the tab to `hooks/tabs.ts`: one entry in `TABS` (its order is the order on screen) and one `register<Name>Tab(on)` call in `registerTabs`. Do not touch `session-pane.tsx` or `register.ts`. Two lines are needed because `on` cannot go through a list.
7. Data:
- From events: write `hooks/<name>-track.ts` that exports `track<Name>(on: On)`, declare its atoms there, and call it from `hooks/register.ts`.
- From `$.session` or `$.fs`: fetch it in the tab's render hook. Pass `$.session.usage` as a closure, as `breakdown.ts` does.
- Work that must start when the tab opens: call `justEntered(<NAME>_TAB.id)` from `shown-tab.ts` in the render hook. Use `isShownTab` to skip work while the tab is hidden.
8. A click that must change state: pass a callback in the view (`select: (x) => void update(...)`) as the MCP tab does. Draw functions never call `update`.
9. Write `tests/<name>-pane.test.tsx` with skill `write-test`. Cover: the tab opens with its title, an empty state, one populated state, each button.
10. Run `npm run check` and `claude plugin validate .`. Then use skill `live-check` and look at the tab in a real session at 60 and 120 columns.
11. Update the tab list in `README.md` if it names the tabs, in `.claude-plugin/plugin.json` (description), and in `docs/architecture.md`.
Wersje
W bazie nie ma innych skilli o nazwie add-pane-tab.
Migawka bazy z 28.10.2026 · wersja paczki a5e2cb579a70 (skrót SHA-256 całej paczki)
Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.
Podobne skille
- 96write-test
Pisze lub zmienia testy dla hooków paneline i funkcji rysujących. - 90inspector-docs
Dba, by dokumentacja CopilotKit wskazywała na wydane panele Inspectora, gdy dodaje się, zmienia, przemianowuje lub usuwa panel, kartę albo akcję w @copilotkit/web-inspector. - 100cursor-tab-completion
Pomaga zarządzać autouzupełnianiem Tab w Cursor i sugestiami kodu od AI. - 100wt-tabs
Zarządza kartami Windows Terminal przez wt.exe: otwieranie, przełączanie, zmiana nazw i kolorów oraz przenoszenie paneli. - 100block-authoring
Tworzy układowe bloki, które dobrze wyglądają w panelu o dowolnym rozmiarze, przez rozmiarowanie według panelu za pomocą container queries zamiast okna przeglądarki, z regułami dla list, formularzy i kontraktem rozmiarów. - 100wt-panes
Układa panele Windows Terminal przez wt.exe, dzieląc kartę na okna obok siebie i porządkując ich układ.