Skip to content

Instantly share code, notes, and snippets.

View simon-marcus's full-sized avatar

Simon Marcus simon-marcus

View GitHub Profile
@simon-marcus
simon-marcus / SKILL.md
Created May 23, 2026 11:08 — forked from aparente/SKILL.md
tufte-viz Claude Code skill — Edward Tufte data visualization principles

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

@simon-marcus
simon-marcus / wiki-gen-skill.md
Created April 9, 2026 01:28 — forked from farzaa/wiki-gen-skill.md
personal_wiki_skill.md
name wiki
description Compile personal data (journals, notes, messages, whatever) into a personal knowledge wiki. Ingest any data format, absorb entries into wiki articles, query, cleanup, and expand.
argument-hint ingest | absorb [date-range] | query <question> | cleanup | breakdown | status

Personal Knowledge Wiki

You are a writer compiling a personal knowledge wiki from someone's personal data. Not a filing clerk. A writer. Your job is to read entries, understand what they mean, and write articles that capture understanding. The wiki is a map of a mind.

'use client';
import { Card, Form, Input, Button, message, ConfigProvider, Upload } from 'antd';
import { useRouter } from 'next/navigation';
import React, { useState } from 'react';
import { sanitize } from "isomorphic-dompurify";import { useSupabase } from '../supabase-provider';
import mytheme from '../theme/themeConfig';
import { User } from '@supabase/supabase-js';
import { useImageUploader } from '@/hooks/useImageUploader';
import ImgCrop from 'antd-img-crop';
import { LoadingOutlined, PlusOutlined } from '@ant-design/icons';
# Deployment Environment:
NODE_ENV=development
# Next Auth config:
# Generate a secret with `openssl rand -base64 32`
NEXTAUTH_SECRET=changeme
NEXTAUTH_URL=http://localhost:3000
DATABASE_URL=file:./db.sqlite
# Your open api key
Africa/Abidjan
Africa/Accra
Africa/Addis_Ababa
Africa/Algiers
Africa/Asmara
Africa/Asmera
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Bissau
{
"meta":{
"exported_on": 1664247734000,
"version": "5.15.0"
},
"data":{
"posts": [
[{
"id": 5,
"status": "published",
<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:cc="http://web.resource.org/cc/" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:podcast="https://podcastindex.org/namespace/1.0" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
<channel>
<atom:link href="https://feeds.libsyn.com/75545/rss" rel="self" type="application/rss+xml"/>
<title>The Minimalists Podcast</title>
<pubDate>Tue, 26 Jul 2022 07:30:39 +0000</pubDate>
<lastBuildDate>Tue, 26 Jul 2022 07:38:37 +0000</lastBuildDate>
<generator>Libsyn WebEngine 2.0</generator>
<link>https://theminimalists.com</link>
<language>en</language>
<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" version="2.0">
<channel>
<generator>syndicated.fm</generator>
<atom:link href="https://feeds.syndicated.fm/720d1e6d-2a05-4a07-b049-64113163f0e4/feed.rss" rel="self" type="application/rss+xml"/>
<title>Nourishment</title>
<description><![CDATA[Stories about how we care for our bodies and minds through food, community, science, and art.]]></description>
<language>en</language>
<itunes:explicit>yes</itunes:explicit>
<itunes:image href="https://assets.syndicated.fm/shows/720d1e6d-2a05-4a07-b049-64113163f0e4/cover.a2e6393e-6517-4070-87ab-40ce95eaeb8e.jpeg"/>
This file has been truncated, but you can view the full file.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/global/feed/rss.xslt" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:podaccess="https://access.acast.com/schema/1.0/" xmlns:acast="https://schema.acast.com/1.0/">
<channel>
<ttl>60</ttl>
<generator>pippa.io</generator>
<title>The Bert Show - 2018</title>
This file has been truncated, but you can view the full file.
<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="/global/feed/rss.xslt" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:media="http://search.yahoo.com/mrss/" xmlns:podaccess="https://access.acast.com/schema/1.0/" xmlns:acast="https://schema.acast.com/1.0/">
<channel>
<ttl>60</ttl>
<generator>pippa.io</generator>
<title>The Bert Show - 2019</title>