๐Ÿง  Skills
โš™๏ธ Stack
๐Ÿš€ Projects
๐Ÿ“š Knowledge
๐Ÿ“‹ Plans

๐Ÿ”ฎ OMP Hub

Oh My Pi โ€” AI Agent Framework

Skills ยท Memory ยท Stack Plans ยท Projects ยท Knowledge

Transform verbose session transcripts, raw codebases, or complex implementation logs into ultra-condensed, high-density, emojified developer cheat sheets.


1. ๐ŸŽฏ Quick Start Dashboard

flowchart LR
    A[<b>INPUT SESSION</b><br/>โ€ข Chat logs<br/>โ€ข Code bases<br/>โ€ข Build logs] --> B[<b>CLEANSING</b><br/>โ€ข Strip chat<br/>โ€ข No filler<br/>โ€ข Facts only]
    B --> C[<b>REFLECTION</b><br/>โ€ข Extract API<br/>โ€ข Map CLI<br/>โ€ข Gotchas]
    C --> D[<b>CONDENSATION</b><br/>โ€ข Layout tables<br/>โ€ข Emoji anchors<br/>โ€ข Compact code]

2. ๐Ÿงผ Cleansing

  • Conversational pleasantries: Strip โ€œHelloโ€, โ€œSureโ€, โ€œLet me help you withโ€, โ€œAs you can seeโ€, and meta-dialogue.
  • Context scaffolding: Remove long paragraphs explaining why a tool or library is designed a certain way; keep only the direct application.
  • Unused boilerplate: Delete generic setups or verbose explanation blocks.

3. ๐Ÿง  Reflection

Extract these core elements and group them by developer intent:

FocusElements to ExtractRepresentation
API ContractsFunction signatures, parameters, types, interfacesConcise TS/Python interface blocks
CLI CommandsInstallation, build, run, test commandsActionable inline code lines
ConfigurationEnvironment variables, config files (vite.config.ts, etc.)Key-value settings tables
Architectural InvariantsFile paths, structure, folder layoutDirectory trees (find-like)

4. โšก Condensation

Pack maximum information in minimum space. Prefer structural density over paragraphs.

Gotchas & Caveats

  • Warning: Never suppress compiler/linter warnings to bypass test suites.
  • Trap: Avoid using global state variables across SSR boundaries in Svelte 5.
  • Rule: All path variables in plugins must be absolute.

Side-by-Side Comparatives

Svelte 4 (Stores/Slots)Svelte 5 (Runes/Snippets)
let count = writable(0)let count = $state(0)
let doubled = derived(count, $c => $c * 2)let doubled = $derived(count * 2)
<slot />{@render children()}

5. ๐ŸŽจ Formatting

Use emojis consistently as visual anchors for rapid scanning:

EmojiCategoryUse Case
๐Ÿš€Quick StartGetting started quickly, installation commands, initial setups
๐Ÿ”งConfigurationSettings, config files, env files, tuning parameters
๐Ÿ“ฆDependenciesInstallation lists, imports, package definitions
๐Ÿ’กBest PracticesCode patterns, optimization tips, recommended layouts
๐ŸšจGotchas / AlertsCritical warnings, traps, common error causes
๐Ÿ”VerificationTests, lint commands, assertions, validation checklists

6. ๐Ÿ” Self-Verification Checklist

Before saving, verify the cheat sheet against these rules:

  • No paragraph exceeds 2 sentences.
  • All commands are copy-pasteable and grouped.
  • File paths are exact and absolute where required.
  • No fluff words (e.g. โ€œbasicallyโ€, โ€œessentiallyโ€, โ€œjustโ€, โ€œsimplyโ€).
  • Formatted correctly with appropriate markdown syntax.

Hardcore scrape, recursively research, and obsessively loop to grab all knowledge about any topic, then compress it into 100% loss-less semantic developer guides.


1. ๐ŸŽฏ Quick Start Dashboard

flowchart LR
    A[<b>INPUT SPEC/TOPIC</b><br/>โ€ข Tool / Stack<br/>โ€ข FOSS Library<br/>โ€ข Raw Content] --> B[<b>HARDCORE GRAB</b><br/>โ€ข Web search<br/>โ€ข Repo read<br/>โ€ข Issue/PR]
    B --> C[<b>OBSESSIVE LOOP</b><br/>โ€ข Cross-ref<br/>โ€ข Verify<br/>โ€ข Deepen]
    C --> D[<b>KURBY DIGEST</b><br/>โ€ข Strip bloat<br/>โ€ข Keep core<br/>โ€ข Density 100%]

2. ๐Ÿ” Hardcore Grabbing

  • Recursive Search: Use web_search and read tools to grab docs, spec sheets, and FOSS repositories.
  • Local Discovery: Map workspace dependencies (package.json, Cargo.toml) and environment configs (.env*).
  • Diverse Sources: Target developer wikis, RFCs, GitHub issues, and discussion threads.

3. ๐ŸŒ€ Research Loop

  • Perpetual Looping: Avoid stopping at the first search page. Retrieve deep pages and cross-reference contradictory sources.
  • Fact Verification: Verify command parameters, API changes, and environment limits against live codebase files.
  • Traversing Deprecations: Identify legacy paths, active forks, and pending breaking changes in issue lists.

4. โœ‚๏ธ Kurby Compression

  • Bloat Elimination: Delete conversational pleasantries, introductory guides, meta-dialogues, and verbose explanations.
  • Semantic Preservation: Condense text while retaining all parameters, configurations, types, and traps.
  • Environment Scope: Isolate and keep only what applies directly to the target operating system, tooling, and constraints.

5. ๐ŸŽจ Formatting

EmojiCategoryRole in Digest
๐Ÿš€Quick StartScraped installation and bootstrapping steps.
๐Ÿ”งConfigurationRaw configuration flags, properties, and environment variables.
๐Ÿ“ฆDependenciesTarget package declarations, modules, and library imports.
๐Ÿ’กBest PracticesArchitectures, design patterns, and optimization tricks.
๐ŸšจGotchas / AlertsDeprecations, traps, API incompatibilities, and compiler quirks.
๐Ÿ”VerificationTest commands, validation scripts, and sanity assertions.

6. ๐Ÿ” Self-Verification Checklist

Before finalizing any digested content, verify against these rules:

  • No paragraph exceeds 2 sentences.
  • 100% of core information is retained in condensed format.
  • No fluff words (e.g. โ€œactuallyโ€, โ€œbasicallyโ€, โ€œsimplyโ€, โ€œobviouslyโ€).
  • Visual landmarks are applied consistently.

1. ๐ŸŽฏ Core Principle

The LLM Wiki is a persistent, compounding personal knowledge base compiled once and kept current by an LLM-in-the-loop. Unlike traditional Retrieval-Augmented Generation (RAG) which rediscovers knowledge per query, the LLM Wiki synthesizes information, tracks contradictions, establishes cross-references, and integrates new context directly into structured, interlinked markdown pages.

The human curates sources and directs the domain constraints; the agent summarizes, cross-references, directories, and audits consistency.

2. ๐Ÿ—‚๏ธ Layout

A standard LLM Wiki resides at a designated directory (defaulting to ~/wiki) with the following hierarchy:

wiki/
โ”œโ”€โ”€ SCHEMA.md           # Domain conventions, taxonomy, tag constraints, page thresholds
โ”œโ”€โ”€ index.md            # Alphabetical content catalog grouped by type with one-line summaries
โ”œโ”€โ”€ log.md              # Chronological record of all updates, rotated at 500 entries
โ”œโ”€โ”€ raw/                # Layer 1: Immutable source material
โ”‚   โ”œโ”€โ”€ articles/       # Web articles, text scrapes
โ”‚   โ”œโ”€โ”€ papers/         # PDFs, ArXiv documents
โ”‚   โ””โ”€โ”€ transcripts/    # Meeting transcripts, interviews
โ”œโ”€โ”€ entities/           # Layer 2: Subject profiles (people, organizations, models)
โ”œโ”€โ”€ concepts/           # Layer 2: Subject topics (techniques, mathematical formulations)
โ”œโ”€โ”€ comparisons/        # Layer 2: Side-by-side matrices and evaluations
โ””โ”€โ”€ queries/            # Layer 2: Filed syntheses of complex user questions

๐Ÿ“ฅ Layer 1: Raw Sources

Raw source documents are immutable. The agent reads from but never writes to this directory. Each source receives frontmatter mapping its origins:

---
source_url: https://0rk.de/article
ingested: YYYY-MM-DD
sha256: <body-hash>
---

The SHA256 digest is calculated over the raw markdown/text body (excluding the frontmatter) to detect content drift or duplicate ingestion.

๐Ÿ“„ Layer 2: Wiki Pages

Wiki pages contain synthesized knowledge written in markdown with standard YAML frontmatter:

---
title: Page Title
created: YYYY-MM-DD
updated: YYYY-MM-DD
type: entity | concept | comparison | query
tags: [tag1, tag2]
sources: [raw/articles/source-file.md]
confidence: high | medium | low
contested: false
contradictions: []
---

๐Ÿ“ Layer 3: Schema

Contains the domain definition, tag taxonomy, and page-creation thresholds. It governs what tags are allowed and what topics warrant page creation.


3. โš™๏ธ Core Operations

๐Ÿ“ฅ Ingest Pipeline

When ingesting new material:

  1. Source Capture: Save the raw document into raw/ under a lowercase, hyphenated slug. Prepend the origin URL and compute its body SHA-256. If a document with the same URL already exists, verify the hash. Skip if identical; flag drift and overwrite if changed.
  2. Entity & Concept Extraction: Identify key subjects that meet the Page Thresholds (appearing in 2+ sources or central to one).
  3. Index Scan: Search index.md and check the filesystem to locate existing pages for the extracted subjects.
  4. Write/Update Pages:
    • For new subjects, create files in their respective directories. Ensure at least two outbound [[wikilinks]] link them to existing pages.
    • For existing subjects, integrate the new facts. Bump the updated date.
    • If claims conflict, follow the Conflict Policy: do not silently overwrite. Detail both perspectives with dates and sources, mark contested: true, add the conflicting page to the contradictions list, and log the conflict.
  5. Navigation Update: Append new pages to index.md and document the action inside log.md.

๐Ÿ”Ž Query Flow

When resolving user questions:

  1. Orientation: Read SCHEMA.md, index.md, and the last 30 lines of log.md.
  2. Search: Execute regex search for keywords across the wiki directory.
  3. Synthesis: Synthesize a comprehensive answer, citing relevant pages using wikilinks (e.g., [[transformer-architecture]]).
  4. Filing: For highly complex or side-by-side syntheses, create a page under queries/ or comparisons/ to save the work.

4. ๐Ÿงญ Navigation

  • index.md: Tracks every page sorted alphabetically within sections corresponding to their type (Entities, Concepts, Comparisons, Queries).
  • Scale Rules:
    • Split a section when it exceeds 50 entries.
    • Generate a _meta/topic-map.md grouping pages by theme when total entries exceed 200.

5. ๐Ÿ” Lint & Audit

The agent must programmatically audit the vault using a script or command to report on:

  1. Orphans: Pages with zero inbound wikilinks.
  2. Broken Links: Wikilinks pointing to non-existent target files.
  3. Index Gaps: Wiki pages present in the filesystem but missing from index.md.
  4. Schema Compliance: Frontmatter validation and tags not declared in SCHEMA.mdโ€™s taxonomy.
  5. Staleness: Pages updated >90 days ago that reference active subjects.
  6. Contradictions: Pages with contested: true or unresolved conflicts.
  7. Size Limits: Pages exceeding 200 lines (candidates for splitting).

Complete, zero-fluff reference guide for Quartz 5, a fast, modular, TypeScript/YAML-configured static site generator optimized for publishing digital gardens and Obsidian vaults.


1. ๐Ÿš€ Quick Start

Essential CLI Commands

  • Initialize project: Create a new Quartz workspace in the vault directory:
    npx quartz create
  • Local development: Launch a local hot-reloading preview server:
    npx quartz build --serve
  • Compile static files: Build optimized production HTML/CSS/JS assets to public/:
    npx quartz build
  • Configuration validation: Run typechecks and code formatter checks:
    npm run check

Deployment Configuration

  • Multi-Platform Target: Quartz builds static files that can be hosted on GitHub Pages, Cloudflare Pages, Netlify, or Vercel.
  • Build Settings: Use the following standard configurations in host pipelines:
    • Build Command: npx quartz plugin install && npx quartz build
    • Output Directory: public
  • Sitemap & RSS: Set baseUrl in quartz.config.yaml to configure feed sitemaps and XML paths correctly.

2. ๐Ÿ”ง Configuration

  • Primary settings: Site-wide properties (theme colors, locale, fonts, and active plugins).
  • JSON Schema: Supported editors validate syntax and catch formatting mistakes dynamically.

Configuration Template

# quartz.config.yaml
configuration:
  theme: "light"
  locale: "en-US"
  baseUrl: "ssot.0rk.de" # Root domain for feeds
 
layout:
  groups:
    toolbar: # Custom flexbox container
      direction: row # Flex direction
      gap: 0.5rem # Item spacing
  byPageType:
    canvas:
      template: minimal # Render frame override for Obsidian .canvas files
    content:
      template: default # Fallback layout frame
 
plugins:
  - source: github:quartz-community/explorer
    enabled: true
    layout:
      position: left # Section placement (left/right/beforeBody/afterBody/footer)
      priority: 100 # Priority order (higher numbers render higher up)
    options:
      title: "Navigation"
  - source: github:quartz-community/latex
    enabled: true
    layout:
      position: beforeBody
      priority: 50
    options:
      renderEngine: katex

Advanced Customization (quartz.ts)

  • TypeScript Merging: Code-based configuration logic, plugins callbacks (sorting/filtering), and customizations are written in quartz.ts.
  • Precedence rule: Programmatic rules in quartz.ts take precedence and merge directly with values in quartz.config.yaml.

3. ๐Ÿ“ฆ Dependencies

System Requirements

  • Runtimes: Requires Node.js v22+ and npm v10.9.2+ to support core ESM and plugin API execution.
  • Module Sync: Restore all plugins listed in project configuration:
    npx quartz plugin install --from-config

Plugin Management CLI

  • Add External Plugin: Install community-authored plugins directly from GitHub repositories:
    npx quartz plugin add <github-url>
  • Dependency Updates: Resolve lockfile or fresh clone issues by updating all plugins:
    npx quartz plugin install --latest

Core Plugin Pipeline Stages

CategoryPipeline PhasePurposeKey Built-in Examples
TransformersParse & alter ASTProcess Markdown syntax, parse frontmatter, extract links.ObsidianFlavoredMarkdown, Frontmatter, CrawlLinks
FiltersPrune contentExclude specific files (drafts, non-published) from building.Drafts, ExplicitPublish
EmittersWrite outputsCompile and emit static assets, search indices, and graph files.Pagefind (Search), GraphView, Static

4. ๐Ÿ’ก Best Practices

  • Build Optimization: Disable computationally expensive emitters like GraphView to accelerate compilations in large vaults.
  • Obsidian Link Format: Use clean Markdown relative links or native Wikilinks ([[VaultNote]]) for reliable link resolution.
  • Asset Management: Keep images and attachments in a centralized vault folder to ensure path mappings build without errors.

5. ๐Ÿšจ Gotchas & Warnings

  • V4 Configuration Migrations: Version 4 utilizes TypeScript configs (quartz.config.ts); version 5 enforces quartz.config.yaml.
  • Option Nesting Gotchas: Ensure option properties are nested under the options: block in your YAML, or Quartz will silently ignore them.
  • C# Collision: Do not confuse Quartz SSG (Obsidian publishing) with the Quartz.NET scheduling library.
  • Slow Builds: Speed up builds in heavy environments using the concurrency flag:
    npx quartz build --concurrency 8
  • Failed Deployments: Outdated Node/npm engines are the leading cause of setup dependency errors in production environments.
  • Nginx Clean URL 404s: Quartz references internal pages with clean URLs (e.g. /specs/omp), but emits them as .html files (e.g. /specs/omp.html). To prevent 404 routing errors, ensure the Nginx config has the .html fallback enabled:
    location / {
        try_files $uri $uri/ $uri.html =404;
    }

6. ๐Ÿ” Research

  • Quartz Syncer: Obsidian companion plugin that pushes vaults and resolves/exports Dataview queries to static formats.
  • Canvas Rendering: Core layout supports direct visual parsing and responsive display of Obsidian .canvas maps.
  • Official Documentation: Quartz SSG Official Site
  • Source Code: jackyzha0/quartz

llms.txt gives Large Language Models and AI agents a clean, curated, machine-first map of a siteโ€™s content โ€” a table of contents written for inference, not browsers. It sits beside its cognitive-filesystem siblings SKILL.md, AGENTS.md, and the lingo glossary.


1. ๐Ÿงฌ Anatomy

Canonical skeleton of a compliant llms.txt, top to bottom โ€” clean Markdown in a fixed order.

# Site/Project Name
 
> Blockquote containing a short, descriptive context summary.
 
Detailed project descriptions and usage guidelines go here.
 
## 2. Navigation Group Heading
 
- [Link Name](https://ssot.0rk.de/target): Optional description text separated by a colon.
- [Additional Link](/local-path): Description details.
PartRequiredRule
H1 Headerโœ…Project name on the very first line.
Blockquoteโœ…One-paragraph summary of the siteโ€™s context.
BodyoptionalFree-form prose for usage guidelines and caveats.
H2 NavigationrecommendedGroup links logically under section headings.
LinksrecommendedStandard [Name](URL) followed optionally by : Description.

3. ๐Ÿš€ Deployment

Serve raw text files from the domain root.

  • Location: Host at the root of the target domain:
    • https://ssot.0rk.de/llms.txt โ€” streamlined navigation and high-level table of contents.
    • https://ssot.0rk.de/llms-full.txt โ€” optional full-text compilation of all target documents.
  • Static Serving: Drop the raw text files directly into the public or content directories of static site generators (Quartz, Docusaurus, VitePress).

4. ๐Ÿ“ฆ Tooling

  • WordPress: integrate via SEO plugins (e.g. Yoast, AIOSEO).
  • CI/CD: generate dynamically during builds with project crawlers or custom scripts.

5. ๐Ÿ’ก Best Practices

  • Jargon-Free Language: keep descriptions simple and direct for optimal LLM context parsing.
  • Clean Markdown: avoid complex HTML tags or styles so scrapers stay compatible.
  • Unambiguous Paths: use absolute URLs or root-relative paths for reliable link resolution.

6. ๐Ÿšจ Gotchas

  • Not an Official Protocol: major AI platforms do not commit to parsing llms.txt automatically.
  • Complementary to Robots: llms.txt guides attention but never replaces the permission controls in robots.txt.
  • Token Optimization: keep llms.txt high-level and offload full text to llms-full.txt to minimize token overhead.

N32G031-based vape โ†’ pocket console. Novo 6 ยท Raz TN9000 ยท Kraze HD7K & clones.


graph LR
    A["๐Ÿ”“ OPEN<br>Teardown + clean<br><i>spudger, IPA+gloves</i>"]
    B["๐Ÿ”Œ CONNECT<br>USB-C SWD tap<br><i>CC1=SWDIO, CC2=SWCLK<br>3.3V ONLY!</i>"]
    C["๐Ÿ“ฅ DUMP<br>OpenOCD flash<br><i>0x08000000<br>64KB MCU, 1MB SPI NOR</i>"]
    D["๐ŸŽจ MOD<br>RGB565 bitmaps<br><i>80ร—160 px, big-endian<br>Pillow</i>"]
    E["๐Ÿ“ค FLASH<br>SPI/SWD write<br><i>TL866 / CH341A<br>flashrom</i>"]

    A -->|"โฑ๏ธ"| B -->|"โฑ๏ธ"| C -->|"โฑ๏ธ"| D -->|"โฑ๏ธ"| E

    style A fill:#4a9,color:#fff
    style B fill:#49a,color:#fff
    style C fill:#69c,color:#fff
    style D fill:#e9973f,color:#fff
    style E fill:#a882ff,color:#fff

๐Ÿงค GLOVES MANDATORY ยท ๐Ÿ”‹ DISCONNECT BATTERY FIRST


๐Ÿง  HW Overview

graph TD
    HW["๐Ÿ“‹ HW SPECS"]
    MCU["๐Ÿง  MCU<br>N32G031K8Q7<br>ARM Cortex-M0 ยท 48MHz<br>64KB Flash ยท 8KB SRAM"]
    SCR["๐Ÿ“บ Screen<br>0.96โ€ณ 80ร—160 IPS TFT<br>ST7735S or GC9107<br>4-wire SPI"]
    FLS["๐Ÿ’พ Flash<br>GT25Q80A 8Mbit (1MB)<br>bitmaps, puff counters, config"]
    CEL["๐Ÿ”‹ Cell<br>13450 Li-ion ~1700mAh<br>UNPROTECTED ยท puncture = ๐Ÿ”ฅ"]
    COI["โšก Coil<br>N-ch MOSFET driver<br>latch HIGH = fire hazard โ˜ ๏ธ"]

    HW --- MCU
    HW --- SCR
    HW --- FLS
    HW --- CEL
    HW --- COI

    style HW fill:#69c,color:#fff,stroke:#357,stroke-width:2px
    style CEL fill:#f44,color:#fff,stroke:#a00,stroke-width:2px
    style COI fill:#f80,color:#fff,stroke:#a50,stroke-width:2px

1. ๐Ÿ› ๏ธ Teardown

#Doโš ๏ธ
1Pry bottom cap โ†’ slide sled outPlastic spudger only
2Disconnect battery lead FIRSTPuncture = thermal runaway ๐Ÿ”ฅ
3Clean PCB: 99% IPA + nitrile gloves ๐ŸงคNicotine absorbs through skin
4ID chip markings (QFN32/LQFP32)Varies between production runs

๐Ÿ”ฅ PULL GENTLY: Do NOT puncture the 13450-size 1700mAh lithium-ion battery! Puncture = Thermal runaway = fire.

๐Ÿงค E-liquid has nicotine (toxic and absorbs through skin!). Use 99% Isopropyl Alcohol to clean the logic board and wear nitrile gloves!


2. ๐Ÿ”Œ SWD Tap

The USB-C SWD Hack: Hardware engineers often wire the SWDIO and SWCLK debug lines directly to the unused CC1/CC2 pins on the USB-C port!

graph LR
    subgraph USB["๐Ÿ”Œ USB-C Port"]
        CC1["CC1"]
        CC2["CC2"]
        GND_U["GND"]
        VBUS["VBUS 5V"]
    end
    subgraph PRB["๐Ÿ”ฌ Debug Probe"]
        SWDIO["SWDIO"]
        SWCLK["SWCLK"]
        PGND["GND"]
    end
    subgraph MCU["๐Ÿง  N32G031"]
        PA13["PA13"]
        PA14["PA14"]
    end

    CC1 -->|"data"| SWDIO -->|"debug"| PA13
    CC2 -->|"clock"| SWCLK -->|"debug"| PA14
    GND_U -->|"common"| PGND
    VBUS -.->|"LETHAL"| PA13

    style VBUS fill:#f44,color:#fff,stroke:#a00,stroke-width:3px
    style CC1 fill:#4a9,color:#fff
    style CC2 fill:#49a,color:#fff
    style PA13 fill:#6a6,color:#fff
    style PA14 fill:#6a6,color:#fff
    style SWDIO fill:#4a9,color:#fff
    style SWCLK fill:#49a,color:#fff
# USB-C Debug Accessory Mode: CC1โ†’SWDIO | CC2โ†’SWCLK | GNDโ†’GND
# โš ๏ธ 3.3V ONLY โ€” 5V probe = dead MCU | Need breakout + 5.1kฮฉ pull-downs
openocd -f interface/stlink.cfg -f target/n32g031.cfg \
  -c "init; halt; dump_image fw.bin 0x08000000 0x10000; exit"
# Got 0xFFFFFFFF? โ†’ FMC read-protection ON ๐Ÿ”’ โ†’ chip-erase (loses factory FW)
# Alt: SRAM injection via ISP (BOOT0 pin) or UART bootloader
ToolUse
ST-Link V2 / J-Link / CMSIS-DAPSWD debug โ€” 3.3V logic
Custom USB-C breakoutExpose CC1/CC2 + 5.1kฮฉ pull-downs
OpenOCD / pyOCDhalt โ†’ dump_image โ†’ flash write_image

3. ๐Ÿ“ฅ FW Extraction

flowchart TD
    A(["๐Ÿ”ฌ Connect SWD"]) --> B{"halt + dump?"}
    B -->|"got data"| C["๐Ÿ“Š Ghidra/IDA"]
    B -->|"0xFF..."| D{"๐Ÿ”’ FMC Locked"}
    D -->|"nuke it"| E["๐Ÿ’ฃ Chip Erase"]
    D -->|"bypass"| F["๐Ÿ’‰ SRAM Inject"]
    D -->|"alt"| G["๐Ÿ“ก UART Boot"]
    E --> H["โš ๏ธ Factory FW Gone"]
    H --> I(["๐Ÿ“ค Flash Custom"])
    F --> J["๐Ÿ”“ RAM Bypass"]
    G --> J
    J --> C
    C --> K["๐Ÿ—บ๏ธ Locate Bitmaps"]

    style A fill:#4a9,color:#fff
    style D fill:#f44,color:#fff,stroke:#a00,stroke-width:3px
    style H fill:#f80,color:#fff
    style E fill:#fa0,color:#000
    style I fill:#4c9,color:#fff
    style K fill:#69c,color:#fff

๐Ÿ”’ FMC Lock? If the memory dump gives you endless 0xFFFFFFFF, the Flash Memory Controller (FMC) is locked. Youโ€™ll need SRAM injection via ISP mode or a Whole Chip Erase (destroys factory firmware forever).


4. ๐ŸŽจ Display Mod

Pixel Format: RGB565 โ€” 16-bit color (5 bits Red, 6 bits Green, 5 bits Blue) stored in big-endian layout. ๐ŸŒˆ

flowchart LR
    A(["๐Ÿ–ผ๏ธ PNG"]) -->|"Pillow"| B["๐Ÿ“ 80x160"]
    B -->|"convert"| C["๐ŸŽจ RGB565"]
    C -->|"pack BE"| D["๐Ÿ“ฆ out.bin"]
    D -->|"desolder"| E["๐Ÿ”ง SSOP Adapt"]
    E -->|"program"| F["๐Ÿ’พ TL866/CH341A"]
    F -->|"resolder"| G(["โœ… Custom LCD"])

    style A fill:#69c,color:#fff
    style C fill:#e9973f,color:#fff
    style D fill:#a882ff,color:#fff
    style G fill:#4c9,color:#fff
# PNG โ†’ RGB565 binary (big-endian!) โ€” flash to GT25Q80A via TL866/CH341A/flashrom
from PIL import Image; import struct
img = Image.open('custom.png').convert('RGB').resize((80,160))
open('out.bin','wb').write(b''.join(
    struct.pack('>H',((r>>3)<<11)|((g>>2)<<5)|(b>>3))
    for y in range(160) for x in range(80) for r,g,b in [img.getpixel((x,y))]))
ProgrammerInterfaceNotes
MiniPro TL866SPI NORDesolder chip, SSOPโ†’DIP adapter
CH341ASPI NORCheapest option, clip or desolder
flashromCLIflashrom -p ch341a_spi -r dump.bin

5. ๐Ÿ–ฅ๏ธ LCD Init

sequenceDiagram
    participant MCU as MCU
    participant LCD as LCD

    rect rgb(68, 207, 110, 0.1)
        Note over MCU,LCD: Reset Phase
        MCU->>LCD: SWRESET 0x01
        Note over LCD: 150ms wait
        MCU->>LCD: SLPOUT 0x11
        Note over LCD: 500ms wait
    end

    rect rgb(83, 223, 221, 0.1)
        Note over MCU,LCD: Config Phase
        MCU->>LCD: COLMOD 0x3A 0x05 (RGB565)
        MCU->>LCD: MADCTL 0x36 (orientation)
        Note right of MCU: Bit3 = RGB/BGR swap
        MCU->>LCD: CASET 0x2A (col range)
        MCU->>LCD: RASET 0x2B (row range)
    end

    rect rgb(168, 130, 255, 0.1)
        Note over MCU,LCD: Activate Phase
        MCU->>LCD: DISPON 0x29
        MCU->>LCD: RAMWR 0x2C + pixels
    end
SWRESET(0x01) โ†’ SLPOUT(0x11) โ†’ COLMOD(0x3A,0x05=RGB565) โ†’ MADCTL(0x36) โ†’ DISPON(0x29)
  • ๐Ÿ”„ Red/blue swapped? XOR MADCTL with 0x08 (bit 3 toggles RGBโ†”BGR). Donโ€™t rewire.
  • โฌ› Black border/offset? Set CASET(0x2A)/RASET(0x2B) โ€” try _colstart=0x01 or 0x1A.
  • ๐Ÿ”ฒ GC9107 blank? Must send unlock 0xFFโ†’0xA5 before any command. Init may start 0xFE/0xEF/0xEB.

6. ๐Ÿ‘พ Custom FW

graph TD
    subgraph SDK["๐Ÿ“š Community SDKs"]
        A["ColorLCDVape-RE"] -->|"memory maps"| C["โšก Custom FW"]
        B["Vaporware SDK"] -->|"display API"| C
        D["RAZ-RE"] -->|"HW pinouts"| C
    end

    C -->|"compile"| E["๐Ÿ”ง arm-gcc"]
    E -->|"flash"| F["๐Ÿ“ค SWD Write"]
    F --> G(["๐ŸŽฎ Pocket Console"])

    subgraph SAFE["๐Ÿšจ Safety Critical"]
        C -->|"must have"| H["โฑ๏ธ Timer ISR"]
        H -->|"kills"| I["๐Ÿ”Œ MOSFET Off"]
        C -->|"must have"| J["๐Ÿ“Š ADC Watch"]
        J -->|"triggers"| K["๐Ÿ”‹ LVC Cutoff"]
    end

    style H fill:#f44,color:#fff,stroke:#a00,stroke-width:3px
    style J fill:#fa0,color:#000,stroke:#a50,stroke-width:2px
    style G fill:#4c9,color:#fff
    style I fill:#f44,color:#fff
    style K fill:#fa0,color:#000

โš ๏ธ THE COIL OF DEATH: If you write your own C code and your MOSFET pin latches HIGH by accident, your coil will melt, the pod will catch fire, and the battery will vent. ALWAYS code a strict hardware-timer-backed thermal cutoff limit! โฑ๏ธ๐Ÿšจ

๐Ÿ›ก๏ธ Safety Pattern

// MANDATORY: hardware-timer-backed coil cutoff โ€” main loop bugs CANNOT override
#define MAX_FIRE_MS 10000   // 10s hard ceiling
#define MIN_VBAT_MV 3000    // 3.0V low-voltage cutoff
 
void init_safety(void) {
    GPIO_ResetBits(GPIOA, COIL_PIN);              // default: coil OFF
    TIM_SetAutoReload(TIM3, MAX_FIRE_MS);          // ISR kills MOSFET
    TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
    ADC_AnalogWatchdogThresholdsConfig(ADC1, 0xFFF, MIN_VBAT_MV);
}

๐Ÿ“ฆ Deps & Tools

CategoryItemNotes
๐Ÿ”ง ProbeST-Link V2 / J-Link / CMSIS-DAPSWD debug โ€” 3.3V logic
๐Ÿ’พ ProgrammerMiniPro TL866 / CH341A / flashromSPI NOR read/write (desolder chip)
๐Ÿ–ฅ๏ธ DebugOpenOCD / pyOCDhalt โ†’ dump_image โ†’ flash write_image
๐Ÿ”ฌ REGhidra / IDA FreeARM Cortex-M0 disassembly
๐Ÿ ConvertPython + PillowPNGโ†’RGB565
โš™๏ธ Compilearm-none-eabi-gccCustom firmware cross-compile
๐Ÿ“š ColorLCDVape-REginbot86Memory maps, re-theming docs
๐Ÿ“š RAZ-RExbenkozxHW revision pinouts
๐Ÿ“š Vaporware SDKImoverEngineeringMinimal C SDK โ€” display only, no coil code

๐Ÿšจ Gotchas

TrapFix
๐Ÿ”ฅMOSFET latch-of-death โ€” GPIO HIGH on crash = coil melts โ†’ fire โ†’ battery ventHardware timer ISR kills MOSFET; never trust main loop
๐Ÿ”’FMC/ROP โ€” 0xFFFFFFFF dump = read-protectedChip-erase unlocks but destroys factory FW forever
โšก5V probe on 3.3V MCU = instant deathLevel-shift or use 3.3V probe
๐ŸงชNicotine residue on PCB absorbs through skinNitrile gloves + 99% IPA clean
๐Ÿ”„Same model โ‰  same chips โ€” HW revisions swap MCU/display/flashVerify markings every unit
๐Ÿ“RGB565 byte order โ€” 16-bit big-endian (5R/6G/5B)Garbled colors = wrong endianness
๐Ÿ“ฑUSB-C DAM โ€” standard cables donโ€™t expose CC1/CC2Custom breakout + 5.1kฮฉ pull-downs
๐ŸงŠSWD locked? โ†’ ISP via UART BOOT0 pinCheck N32G031 datasheet ยง3.4

๐Ÿ—๏ธ Full Architecture

graph TB
    subgraph L1["๐Ÿ”“ Physical"]
        A["๐Ÿ“ฆ Device"] -->|"pry open"| B["๐Ÿ”ง Teardown"]
        B -->|"99% IPA"| C["๐Ÿงน Clean"]
    end

    subgraph L2["๐Ÿ”Œ Debug"]
        C -->|"expose CC"| D["๐Ÿ”Œ USB-C Break"]
        D -->|"3.3V"| E["๐Ÿ”ฌ SWD Probe"]
        E -->|"connect"| F["๐Ÿ’ป OpenOCD"]
    end

    subgraph L3["๐Ÿ“ฅ Extract"]
        F -->|"halt"| G{"๐Ÿ”’ FMC?"}
        G -->|"unlocked"| H["๐Ÿ’พ MCU 64KB"]
        G -->|"locked"| I["๐Ÿ’ฃ Erase"]
        I -->|"blank MCU"| J["๐Ÿ†• Fresh"]
        F -->|"SPI read"| K["๐Ÿ’พ Flash 1MB"]
    end

    subgraph L4["๐ŸŽจ Mod"]
        H -->|"disasm"| L["๐Ÿ”ฌ Ghidra"]
        K -->|"extract"| M["๐Ÿ–ผ๏ธ Bitmaps"]
        M -->|"Pillow"| N["๐ŸŽจ RGB565"]
        N -->|"program"| O["๐Ÿ“ค Flash SPI"]
    end

    subgraph L5["๐Ÿ‘พ Custom OS"]
        L -->|"understand"| P["๐Ÿ“ Write FW"]
        P -->|"safety!"| Q["๐Ÿšจ ISR Guard"]
        Q -->|"deploy"| R(["โœ… Done"])
    end

    style I fill:#f44,color:#fff,stroke:#a00,stroke-width:2px
    style Q fill:#f80,color:#fff,stroke:#a50,stroke-width:2px
    style A fill:#69c,color:#fff
    style R fill:#4c9,color:#fff
    style G fill:#f44,color:#fff

๐Ÿ—บ๏ธ Visual workflow map: NovoModCanvas โ†’

Pitch: Replace two fragmented knowledge systems with a single, isolated Quartz 5 instance at w.0rk.de.

๐Ÿ“Š Visual Migration Map: Interactive Canvas โ†’


1. โš ๏ธ Problem

SystemURLStackPagesStatus
LLM Wikillm-wiki.0rk.deHugo + vanilla JS28Hugo maintenance overhead, no Obsidian features
Personal Wikiwiki.0rk.deRaw Markdown3No web presence (TLS cert missing), no search

Two knowledge bases, two build systems, zero cross-linking.


2. ๐Ÿ’ก Solution

A 3rd isolated Quartz 5 instance โ€” separate from ssot.0rk.de (specs) and quartz.0rk.de (showcase).

1. โš™๏ธ Quartz 5

  • Obsidian [[wikilinks]] โ€” wiki already uses them
  • Full-text search (Pagefind) โ€” wiki has none
  • Graph view โ€” visualize knowledge connections
  • Canvas support โ€” visual mind maps (this pitch is one)
  • Consistent stack โ€” same tooling as SSOT
  • llms.txt generation โ€” AI-agent-navigable

2. ๐Ÿ›ก๏ธ Why Isolated

  • SSOT = technical specs (how to build things)
  • w.0rk.de = knowledge (what things are, research, entities)
  • Different audiences, update cadences, content schemas
  • Independent deploy cycles, no cross-contamination

3. ๐Ÿ—‚๏ธ Taxonomy

quartz-wiki/content/
โ”œโ”€โ”€ architecture/          โ† llm-wiki architecture/ (7 cognitive layers)
โ”‚   โ”œโ”€โ”€ identity-anchors/
โ”‚   โ”œโ”€โ”€ mutable-memory/
โ”‚   โ”œโ”€โ”€ orchestration/
โ”‚   โ”œโ”€โ”€ capabilities/
โ”‚   โ”œโ”€โ”€ autonomic/
โ”‚   โ”œโ”€โ”€ spec-driven/
โ”‚   โ””โ”€โ”€ swarm-alignment/
โ”œโ”€โ”€ topics/                โ† llm-wiki topics/ (13) + wiki concepts/ merged
โ”‚   โ”œโ”€โ”€ cs2docs.md
โ”‚   โ”œโ”€โ”€ docskurby.md
โ”‚   โ”œโ”€โ”€ quartz5.md
โ”‚   โ”œโ”€โ”€ skill-xray.md
โ”‚   โ”œโ”€โ”€ discord-omp-plugin.md
โ”‚   โ”œโ”€โ”€ svelte-5-*.md
โ”‚   โ”œโ”€โ”€ transformer-architecture.md  โ† from wiki concepts/
โ”‚   โ””โ”€โ”€ ...
โ”œโ”€โ”€ entities/              โ† wiki entities/ (research-grade profiles)
โ”‚   โ””โ”€โ”€ karpathy-llm-wiki.md
โ”œโ”€โ”€ research/              โ† llm-wiki research/ + evolving/ merged
โ”‚   โ”œโ”€โ”€ research-automation.md
โ”‚   โ””โ”€โ”€ evolving/
โ”œโ”€โ”€ raw/                   โ† wiki raw/ (source archive)
โ”‚   โ”œโ”€โ”€ articles/
โ”‚   โ”œโ”€โ”€ papers/
โ”‚   โ”œโ”€โ”€ transcripts/
โ”‚   โ””โ”€โ”€ assets/
โ”œโ”€โ”€ reference.md           โ† llm-wiki-reference.md (system cheatsheet)
โ””โ”€โ”€ index.md               โ† unified homepage

Total: ~31 pages (28 from llm-wiki + 3 from wiki, with concepts folded into topics).


4. ๐Ÿชœ Pipeline

StepActionDetails
โ‘  CloneFork quartz-ssot as quartz-wiki/ templateSame Quartz 5 + canvas-page plugin
โ‘ก ConvertStrip Hugo _index.md โ†’ Quartz index.mdAdapt frontmatter, remove Hugo shortcodes
โ‘ข MergeUnify wiki [[wikilinks]] with Quartz linksAlready Obsidian-compatible, minimal work
โ‘ฃ Deploynpx quartz build + nginx w.0rk.deCertbot TLS, try_files $uri $uri/ $uri.html =404;

1. ๐Ÿ”„ Post-Migration

  • llm-wiki.0rk.de โ†’ 301 redirect to w.0rk.de
  • wiki.0rk.de โ†’ 301 redirect to w.0rk.de
  • Hugo repo archived, wiki directory superseded

5. โš™๏ธ Infrastructure

# /etc/nginx/sites-enabled/w.0rk.de
server {
    listen 443 ssl http2;
    server_name w.0rk.de;
 
    root /home/dv/quartz-wiki/public;
    index index.html;
 
    location / {
        try_files $uri $uri/ $uri.html =404;
    }
 
    # certbot --nginx -d w.0rk.de
    ssl_certificate /etc/letsencrypt/live/w.0rk.de/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/w.0rk.de/privkey.pem;
}

1. ๐ŸŒ DNS

Add w.0rk.de A/AAAA record pointing to same server IP as other *.0rk.de domains.


6. ๐ŸŒ Landscape

DomainStackPurposeStatus
ssot.0rk.deQuartz 5Technical specs & standardsActive
quartz.0rk.deQuartz 5Quartz showcase & docsActive
w.0rk.deQuartz 5Unified knowledge wikiNEW
llm-wiki.0rk.deHugoSelf-discovering docsโ†’ 301 to w.0rk.de
wiki.0rk.deRaw MDPersonal wikiโ†’ 301 to w.0rk.de

7. ๐Ÿ“Š Effort

ComponentComplexityNotes
Quartz scaffoldLowClone existing template
Hugo โ†’ Quartz conversionMedium28 pages, frontmatter + shortcode adaptation
Wiki mergeLow3 pages, wikilinks already compatible
Nginx + CertbotLowStandard config, proven pattern
Canvas mapsLowUse canvas-gen skill
TotalPhased stepsMechanical migration, no design ambiguity

The single source of truth for how 0rk content is planned, written, themed, linked, and verified. Every other page obeys this. When a guru page and this Bible disagree, the Bible wins.

1. ๐Ÿงญ Mission

Achieve holistic overstanding of the task, then act in pure wisdom: apply DRY / KISS / YAGNI, enforce SOLID + SoC + LoD, ship robust, 100%-complete systems โ€” never stubs, mocks, or โ€œTODO: implementโ€. Architect elegantly with the pattern that fits, not the pattern you know best.

  • ๐Ÿค– Autonomous loop: plan the work, work the plan, loop until 100% done. Pause only to conclude or escalate an emergency.
  • ๐Ÿ—ฃ๏ธ Talk in conclusions, not transcripts. The 7-word response template:
    • ๐Ÿ˜‡: [Condensed conclusion.] โ€” routine done.
    • ๐Ÿฅณ: [Hype chant.] โ€” a big nut cracked.
    • ๐Ÿฅต: [SHOUTING THE ISSUE.] โ€” emergency, only after the when-stuck flow.
  • ๐ŸŽฏ Decision-completeness: resolve every path, signature, and command up front (see ๐Ÿ“ Planning Standard). The implementer makes no design choices mid-flight.

2. ๐Ÿชœ Steps

Break ALL work into discrete phases โ†’ steps โ†’ sub-steps. Time estimates are forbidden โ€” no hours, days, weeks, or โ€œmin readโ€.

  • โœ… Allowed: Phase 1/3, Step 2 of 5, Task 1.1 / 1.2, - [ ] Title, 3/7 complete.
  • โŒ Forbidden: โ€œ~2 hoursโ€, โ€œWeek 1โ€“2โ€, โ€œDuration: 1hโ€.
flowchart LR
  P["Phase"] -->|"contains"| S["Step"]
  S -->|"contains"| SS["Sub-step"]
  SS -->|"tracked by"| C["Checkbox"]

When stuck, run the loop: reason deeply โ†’ gather logs/filetree/web โ†’ apply a triple-checked fix โ†’ test to 100% โ†’ loop with accumulated knowledge โ†’ document root cause. Shout ๐Ÿฅต only after that flow.

3. ๐ŸŽจ Style

This very page both states and demonstrates the rule: headings are number-first, then emoji, then 1โ€“3 words.

  • ๐Ÿ”ข Order: ## 1. ๐Ÿ“Š Skill Table โ€” number, emoji, words. Never ## ๐Ÿ“Š 1. ....
  • โœ‚๏ธ Length: 1โ€“3 words. If meaning is lost, fuse a single note under it instead of a long heading.

Example of the fuse rule: a heading that would read โ€œDetailed Migration Rollback Procedureโ€ collapses to ## 9. โ†ฉ๏ธ Rollback plus this one-line note.

  • ๐Ÿšซ No redundant H1: drop a top-level title that just repeats the page title/breadcrumb โ€” both already render.
  • ๐Ÿงผ Tasteful emoji: one leading emoji per heading, never per bullet. Zero-fluff, high-density, developer-grade prose.
  • ๐Ÿ“ Exception: ๐Ÿ“ Planning Standard is emoji-free in its body โ€” keep its headings plain, still number-first if numbered.
  • ๐Ÿ—‚๏ธ Frontmatter: keys are title / description / tags / aliases / created / modified / published. Never add a modified date by hand โ€” git supplies the real HH:mm. Moved files carry aliases: ["<old-slug>"].
  • ๐Ÿท๏ธ Tag vocab (pick 2โ€“4): discord, omp, memory, quartz, skill, cheatsheet, plan, hardware, research.

4. ๐Ÿงœ Mermaid

The site themes Mermaid adaptively from CSS variables and re-themes live on dark/light toggle (verified in the plugin fork).

  • ๐Ÿšซ No %%{init}%% directives, ever. Never hardcode theme, themeVariables, or colors โ€” that forces dark in light mode and freezes the palette. Delete any you find.
  • ๐Ÿ”ค Quote every edge label: -->|"Trigger Event"|, never -->|Trigger Event|.
  • ๐Ÿงท Quote node/subgraph text with (), /, ,, :, []: subgraph S["Daemon (Python / discord.py)"].
  • ๐Ÿšท Never use the reserved word end as a node id.
  • ๐Ÿ“Š Best-fit chart: pick flowchart, sequenceDiagram, stateDiagram, erDiagram, or mindmap by intent. Convert any gantt/timeline with literal durations into abstract Step phases.

Deep dive + copy-paste snippets: ๐Ÿงœ MermaidGuru. Diagrams beyond Mermaidโ€™s reach โ†’ ๐ŸŽจ SvgGuru; spatial maps โ†’ ๐Ÿ—บ๏ธ CanvasGuru.

markdownLinkResolution: shortest โ€” link files by basename, folders by directory path.

  • ๐Ÿ“„ Files: [[MermaidGuru|๐Ÿงœ MermaidGuru]], [omp](https://omp.0rk.de/omp), [[quartz5]].
  • ๐Ÿ“ Folders: [[skills/gurus|๐Ÿง™ Skill Docs]].
  • ๐Ÿ—บ๏ธ Canvas: [[knowledge/specs.canvas|๐Ÿ—บ๏ธ Site Map]].
  • ๐Ÿ—บ๏ธ Canvas Nesting: Every .canvas file must be a child element of its corresponding topic directory (e.g., content/plans/w-0rk-migration/canvas.canvas under parent content/plans/w-0rk-migration/index.md). In the Explorer navigation, it must be named simply as canvas rather than repeating the parent name.
  • โš ๏ธ Collision: basename projects is ambiguous (the content/projects/ folder vs the cheatsheet). Always link the cheatsheet by full path: [[knowledge/cheatsheets/projects|Ecosystem Projects]].
  • ๐ŸŒ Real URLs only: baseUrl is ssot.0rk.de. Never example.com โ€” articles โ†’ https://0rk.de/article; the feed lives at https://ssot.0rk.de/llms.txt. Secrets become env placeholders ($DISCORD_WEBHOOK_URL, $CHANNEL_ID).

Densify: link omp โ†” ompkeep โ†” quartz5 โ†” quartz5-checklist, and every guru โ†” its topic page.

6. ๐Ÿง  Memory

OmpKeep is the governed memory layer โ€” heuristics and process context, not factual ground truth.

  • ๐Ÿ“ฅ Daily writes append directly; long-term writes enter the inbox for curation. Trust repo files, runtime output, and user instruction for facts.
  • ๐Ÿฅ‡ Read memory://root/memory_summary.md first; escalate confidence only after repo verification. Memory alone is never proof.
  • โ™ป๏ธ If memory disagrees with the repo, treat it as stale: proceed corrected, then regenerate the artifact. See ๐Ÿง  OmpKeep and ๐Ÿ”— Shared Memory.

7. โœ… Verify

Done means it behaves end-to-end โ€” not that a scaffold compiles.

  • Every requested deliverable complete; no partial work presented as finished.
  • All affected artifacts (callsites, links, frontmatter) updated.
  • Mermaid blocks carry no init directive and quote every edge label.
  • No example.com; headings are number-first emojified; no time estimates.
  • Claims grounded in tools/repo; inferences marked. Build, deploy, and commit are the main agentโ€™s job โ€” content agents never run them.

Operate THIS Quartz fork via ๐Ÿชจ QuartzGuru; the full checklist lives at โœ… Quartz Checklist.

๐Ÿ“ค feeds