← ClaudeAtlas

tuilisted

gleaneryの端末の画面(`gleanery dashboard`、server/src/tui/ の Ink)とCLIの出力の見た目(server/src/tui/view.ts)を変更する。画面・キー操作・��覧と詳細の表示・CLIの出力の形・記号とアイコン・Markdownの描画・CLIのbundleを触るときに使う。セッションや作業の読み出し(server/src/sessions.ts)を画面のために変えるときも使う。MCP・CLIの他のcommandだけの変更やDB schemaの変更には使わない。
iroha924/gleanery · ★ 0 · AI & Automation · score 70
Install: claude install-skill iroha924/gleanery
# 端末の画面を変更する `gleanery dashboard` は Ink で描く端末の画面で、**読むだけ**である。 ## Triggers - `server/src/tui/` の画面・キー操作・表示を変更する - 画面が読むもの(`server/src/sessions.ts`、`server/src/tui/data.ts`)を変更する - CLI の出力の形(`server/src/tui/view.ts`。見出し・節・字下げ・締めの行)を変更する - アイコン(`server/src/tui/icons.ts`)、Markdown の描画(`markdown.ts`)、CLI の bundle(`scripts/bundle-cli.ts`)を変更する ## Does not trigger - MCP・他の CLI command・取り込みだけを変更する - DB schema や接続の役割を変更する。その場合は `knowledge-schema` - バージョンを上げて届ける。その場合は `plugin-release`(TUI は CLI の一部なので release の種別は `plugin`) ## 依存について知っておくこと 記憶で API を選ばない。バージョンは `server/package.json` が正本で、API は `server/node_modules/<package>` の型定義(`.d.ts`)を読む。 下の事実はバージョンを上げたときに崩れうるので、上げたら型定義で確かめ直す。 | 依存 | 規約に効く事実 | |---|---| | ink | `useWindowSize`・`useInput(handler, { isActive })`・`render(..., { alternateScreen })`を使っている。開発時だけ `react-devtools-core` と `ws` を動的 import する(bundle で差し替える理由) | | @inkjs/ui | `TextInput`(`onSubmit`・`isDisabled`)を使っている。読み込み中は自前の `Twinkle`(`icons.ts` の `TWINKLE`) | | ink-scroll-view | `ScrollView` の ref の `scrollTo`(`getBottomOffset` までに収める)/ `scrollToTop` / `scrollToBottom` で動かす。`scrollBy` は本文の終わりで止まらない | | ink-link | 型が `children` を props の必須にしている | | marked | **marked-terminal の peer(`<16`)の外のバージョンを、持ち主の決定で入れている** | | marked-terminal | 型を同梱しない。`@types/marked-terminal` は古い marked を引き込むので入れず、`marked-terminal.d.ts` で宣言する | | ink-testing-library | 描画と `stdin.write` の入力が Ink の今のバージョンで動く。動かなくなったら `render` に偽の stdout を渡す形へ替える | ## 置き場所 | ファイル | 持つもの | |---|---| | `tui/tui