name: tufte-viz description: | Ideate and critique data visualizations using Edward Tufte's principles from "The Visual Display of Quantitative Information." Use this skill when: (1) Designing new data visualizations or charts (2) Critiquing or improving existing visualizations (3) Reviewing dashboards or reports for graphical integrity (4) Deciding between visualization approaches (5) Reducing chartjunk or improving data-ink ratio (6) Planning small multiples or high-density displays
| import type { ExtensionAPI } from "@mariozechner/pi-coding-agent"; | |
| import { spawnSync } from "node:child_process"; | |
| import { mkdirSync, readFileSync, writeFileSync } from "node:fs"; | |
| import { basename, join } from "node:path"; | |
| const PLACEHOLDER = "[Review feedback]"; | |
| const CUSTOM_PENDING = "review-feedback-pending"; | |
| const CUSTOM_RESOLVED = "review-feedback-resolved"; | |
| type PendingReview = { |
A pattern for building personal knowledge bases using LLMs.
This is an idea file, it is designed to be copy pasted to your own LLM Agent (e.g. OpenAI Codex, Claude Code, OpenCode / Pi, or etc.). Its goal is to communicate the high level idea, but your agent will build out the specifics in collaboration with you.
Most people's experience with LLMs and documents looks like RAG: you upload a collection of files, the LLM retrieves relevant chunks at query time, and generates an answer. This works, but the LLM is rediscovering knowledge from scratch on every question. There's no accumulation. Ask a subtle question that requires synthesizing five documents, and the LLM has to find and piece together the relevant fragments every time. Nothing is built up. NotebookLM, ChatGPT file uploads, and most RAG systems work this way.
A reverse-engineered system design of Slack's web application, built from live network traffic analysis of the authenticated Enterprise Grid experience. 200+ API calls captured across boot, search, messaging, reactions, and navigation. Every backend service named.
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β BROWSER (Gantry v2 SPA) β
β β
https://x.com/VictorTaelin/status/2001777678765129832
* βββββββ * Claude Code v2.0.72
* βββββββββ * Opus 4.5 Β· Claude Max
* ββ ββ * ~/vic/dev/hvm4-claude
> # Task 1: print unscoped lambdas and floating dups with matching names
Relax, I only have one Sunday to work on idea, literally my weekend project. So I tried Deepseek to see if it can help. Surprisingly, it works and it saves me another weekend...
Just chat.deepseek.com (cost = free) with prompts adapted from this gist.
| [ | |
| "fa-classic fa-solid fa-0 fa-fw", | |
| "fa-classic fa-solid fa-1 fa-fw", | |
| "fa-classic fa-solid fa-2 fa-fw", | |
| "fa-classic fa-solid fa-3 fa-fw", | |
| "fa-classic fa-solid fa-4 fa-fw", | |
| "fa-brands fa-42-group fa-fw", | |
| "fa-classic fa-solid fa-5 fa-fw", | |
| "fa-brands fa-500px fa-fw", | |
| "fa-classic fa-solid fa-6 fa-fw", |
| # /// script | |
| # requires-python = ">=3.12" | |
| # dependencies = [ | |
| # "llm", | |
| # "textual", | |
| # ] | |
| # /// | |
| from textual import on, work | |
| from textual.app import App, ComposeResult | |
| from textual.widgets import Header, Input, Footer, Markdown |
| import json | |
| import logging | |
| import re | |
| from typing import Any, AsyncGenerator, Optional, Union | |
| import aiohttp | |
| import openai | |
| from azure.search.documents.aio import SearchClient | |
| from azure.search.documents.models import QueryType |
Add it to the body
<body hx-ext="hx-astro-view-transition">An example