Vercel Composition Patterns
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
Give an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA…
$ npx skills add jggonz/os8088 --skill vga-face -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jggonz/os8088 vga-face --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/vga-face .claude/skills/vga-face && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .claude/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-faceType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add jggonz/os8088 --skill vga-face -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jggonz/os8088 vga-face --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/vga-face .agents/skills/vga-face && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .agents/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jggonz/os8088 --skill vga-face -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jggonz/os8088 vga-face --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/vga-face .cursor/skills/vga-face && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .cursor/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/jggonz/os8088.git --path .claude/skills/vga-face--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add jggonz/os8088 --skill vga-face -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jggonz/os8088 vga-face --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/vga-face .gemini/skills/vga-face && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .gemini/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install jggonz/os8088 vga-faceInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add jggonz/os8088 --skill vga-face -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/vga-face .github/skills/vga-face && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .github/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add jggonz/os8088 --skill vga-face -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jggonz/os8088 vga-face --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jggonz/os8088.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/vga-face .opencode/skills/vga-face && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "vga-face" agent skill from https://github.com/jggonz/os8088/tree/main/.claude/skills/vga-face into .opencode/skills/vga-face/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "vga-face", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
vga-faceGive an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA…
Vga Face is an agent skill from jggonz/os8088. Give an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA faces stay exactly as they were. The method MIDIRack's (SPEC.md 105.9.4, 105.9.5) was built with, step by step. Manual invocation only.
Its SKILL.md is about 2.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `LESSONS.md`).
It sits in Development. The licence is MIT.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 95f7e97. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitmakeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Vga Face loads about 2.7k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 1,661 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from jggonz/os8088 at commit 95f7e97, republished under its MIT licence (© jggonz). 1,661 words, ~2,743 tokens.
.claude/skills/vga-face/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.A package on this machine is drawn for the 1bpp adapters first - black ink, white paper - and on a VGA it looks the same. This skill gives one a second face for a 4bpp display without touching the first: colour where colour carries meaning, a layout cut on the card's own grid, and buttons whose captions sit inside them. And it starts with the redraws, not the paint: a face that is twice as pretty and repaints twice as much is a regression on the machine this OS is for (CLAUDE.md, Performance).
The worked example is MIDIRack: SPEC.md §105.9.4 (the caches), §105.9.5 (the
colour face), §13.8.10 (the library hook it needed), apps/midirack/mrui.inc
(all of it), tests/mrdraw.py (the instrument) and tools/os88midart.py
(the button pictures). Read those before writing a line - this skill is the
order they were done in and why, and the code is the reference.
Read LESSONS.md first. Every entry cost a rebuild or a wrong picture during the MIDIRack work, and most of them look like a bug in the package when they are a bug in the method.
$ARGUMENTS names the package. Read its SPEC.md section and the window
code end to end - layout, painter, every caller of a repaint. Check
docs/INDEX.md for what the library already gives (os88ui.inc's buttons,
check boxes, radio groups, group boxes, scroll bar, About card).os8088_xt_vga), Hercules (os8088_5150_herc_*), CGA
(os8088_5150_cga_gla), through MartyPC's fbuf (see Step 6's script
shape). The mono pictures are the contract: at the end they must be
identical except where you meant them not to be, and you will need the
"before" to prove it.git worktree add), never the main
checkout - several sessions write there (docs/UPSTREAM.md, the memory).PERFORMANCE.md's first sentence: a redraw is priced by the PRIMITIVE CALLS it makes. So count them, per gesture:
tests/mrdraw.py to tests/<pkg>draw.py. It arms os88marty.bp_trace
on the API table's DRAWING CELLS themselves (KERNEL_SEG:0x38 fill, 0x40
frame, 0x1E5 font_run, 0x39D icon, 0x3A4 BLITP, ...) - so the
kernel's own painting (menus, the title bar) is never counted - and for
each hit reads SS:SP and the far return address: which task made the
call (a worker's stack is not the UI task's) and which package routine
(the nearest symbol below the return IP, from tests/mrprobe.py-style
re-assembly).The pattern (§105.9.4), one cache per kind of thing on the glass:
| on the glass | the cache | MIDIRack's |
|---|---|---|
| any string that can change | a FIELD SLOT holding its cells as drawn; a redraw draws one font_run of the run from the first differing cell to the last | mru_field, mru_fowe |
| list rows | a KEY per row (entry, highlight, mark); an add/remove/clear owes them all | mru_list_sync, mru_list_owe |
| a scroll bar | its three numbers | mru_sbk |
| buttons | each one's flags as drawn | mru_btn_sync, mru_bdr |
| check boxes | each one's state (and tell the cache when the library toggled it) | mru_ck_sync, mru_ckd |
| bars, meters | the drawn length; a change is ONE fill of the strip between | mru_lw, mru_rack_bar |
<pkg>_update, walks the whole window through the caches.
Every command calls it instead of a repaint. W_PAINT owes every cache and
is otherwise unchanged.OSAPI_WM_DISPLAY (BX = the window) answers DH = bits per pixel; > 1 is
colour (§39.16.4; it answers the more restrictive display for a straddle).
Not OSAPI_VIDEO - that is the primary's. Bank the answer in a byte the
paint sets and every later draw reads (mru_col), so a worker draw and a
W_PAINT never disagree mid-flight.OSAPI_GFX_BLITP
takes x on a multiple of 8, and a window's content origin already is one
(§11.94) - so it is your own inset that has to be. MIDIRack's transport
starts at 152 and steps 48.Content is the application's (§76): white paper stays, because the kernel
white-fills before W_PAINT (there is OSAPI_WM_OWNBG to opt out, but every
pixel you then own is yours on every expose). Spend colour on meaning:
CDGRAY frame, a CLGRAY title strip ruled off under it,
the title black on the strip. Four calls a pane, full paint only.CLGREEN/CGREEN/CYELLOW on black through the field slots with their
own pair.CBLUE with white text; a "current" mark green.[mru_pair]), so
the incremental draw and the full paint use the same colours by
construction.%define OS88UI_BOWN and set
OS88UI_OWN in a button's flags (§13.8.10): os88ui_btn then calls the
label entry as YOUR painter (AX index, BX rect, DI flags with DOWN/DIS
resolved), so press, drag-off and release redraw your face, not the
standard one. Point the record's labels array at the painter only on the
colour face (mru_recmain); the mono face keeps its standard buttons.CLGRAY with the face
RINGED round it in up to four fills - no pixel twice (mru_bevel).tools/os88midart.py is the template: shapes with an
automatic outline and bevel, labels set from faces/helv.t88 by the
ink with a 1-pixel gap (the face's EVEN advances read "Pa use" at this
size), PLANAR output for OSAPI_GFX_BLITP (one call and a few ms a face on
the 8088, against ~30 ms for a packed BLIT4), up/pressed/greyed states,
--png to look, --selfcheck and --check-asm (the package's MRA_*
numbers against the art) in the fast tier.OP_ASSET | OP_LAZY, §20.12)
is the OS's standard - UNLESS the image is compressed: os88pkg.py
refuses --compress beside parts. Then a SIDECAR beside the package,
LZ-wrapped, read at entry only when the primary is colour, freed at close
and on a failed entry. Either way the fallback (no file, short heap,
BLITP refusing a straddle) is the bevelled caption - a complete face.make (fast) and make test-full.fbuf -
compare the mono ones with Step 0's; on VGA crop and zoom the buttons in
every state (latched, pressed, greyed). Scroll every dialog on CGA: a
dialog that fits on paper can sit under the dock.tools/os88index.py's
description of the include; regenerate docs/INDEX.md.tests/suite.py; new targets in the Makefile with a comment;
CONTRIBUTING-style commit messages that say what was measured.© jggonz, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .claude/skills/vga-face of jggonz/os8088.
Open the folder on GitHubat commit 95f7e97
Vga Face next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Vga Face this skilljggonz/os8088 | 104 | — | ~2.7k | Automated safety check: Pass | MIT | |
| Vercel Composition Patternssupabase/supabase | 111k | 58 repos | ~726 | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 297k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Typescript Advanced Typesrolling-scopes/rsschool-app | 10k | 25 repos | ~4.2k | Automated safety check: Pass | MPL-2.0 | |
| PR Babysitteropeninterpreter/openinterpreter | 69k | 3 repos | ~4.2k | Automated safety check: Pass | Apache-2.0 | |
| Code Review ChecklistshareAI-lab/learn-claude-code | 78k | 5 repos | ~1.1k | Automated safety check: Pass | MIT |
supabase/supabase
React composition patterns that scale. An agent skill from supabase/supabase.
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
rolling-scopes/rsschool-app
Master TypeScript's advanced type system including generics, conditional types, mapped types, template literals, and utility types for building type-safe applications.
openinterpreter/openinterpreter
Watches an open GitHub pull request until it merges, handling review comments, diagnosing CI failures and retrying flaky checks along the way.
shareAI-lab/learn-claude-code
Reviews code against a five-part checklist covering security, correctness, performance, maintainability and testing, and reports findings in a fixed format.
onyx-dot-app/onyx
Iteratively improves a PR (GitHub), MR (GitLab), or shelved changelist (Perforce) until Greptile gives it a 5/5 confidence score with zero unresolved comments.
jggonz/os8088
Functionally verify a change on the glass before it merges - boot the built OS in QEMU, drive the actual UI the change proposes (mouse, keys, menus) over QMP, screenshot the evidence for every…
jggonz/os8088
Build a native 8086 assembly remake of a console/arcade game (reference = a disassembly or source tree) as an os8088 package, the way apps/drmario (DrMarco), apps/1942 and apps/excitebike were made…
jggonz/os8088
Port an existing program - written in C or in any other language - to os8088 as a C package (SPEC.md §73), the way apps/cword ported Microsoft Word 1.1a.
jggonz/os8088
Bring one of the maintainer's own stale pull requests (a branch on jggonz/os8088 that main has moved past) back to mergeable - merge main into it in a scratch worktree, decide whether it is still…
jggonz/os8088
Review an incoming pull request that comes from someone else's fork of os8088 - fetch it, merge main into it, review it with a team of agents for memory safety, lost-from-main regressions, redraw…
jggonz/os8088
Build os8088 and publish the floppy images to the os8088.com website repo as a pull request, plus a GitHub release on the OS repo.
Categories
Give an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA…. Vga Face is an agent skill from jggonz/os8088. Give an os8088 package a COLOUR FACE on VGA/EGA - fewer redraws first, then a neater layout, styled panes and bevelled, picture-faced buttons with their captions inside - while the Hercules and CGA faces stay exactly as they were.
Vga Face fits situations like: development work in your project.
Run `npx skills add jggonz/os8088 --skill vga-face -a claude-code`. Or copy the skill folder (.claude/skills/vga-face in jggonz/os8088) into .claude/skills/vga-face in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jggonz/os8088 --skill vga-face -a codex`. Or copy the skill folder (.claude/skills/vga-face in jggonz/os8088) into .agents/skills/vga-face in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add jggonz/os8088 --skill vga-face -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/vga-face, .gemini/skills/vga-face, .github/skills/vga-face and .opencode/skills/vga-face in your project.
Going by SKILL.md and its folder, Vga Face needs the command-line tools its instructions call (git and make).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Vga Face is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.7k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Vga Face: Vercel Composition Patterns (supabase/supabase, 111k stars), Finishing a Development Branch (obra/superpowers, 297k stars), Typescript Advanced Types (rolling-scopes/rsschool-app, 10k stars) and PR Babysitter (openinterpreter/openinterpreter, 69k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jggonz (a GitHub user) maintains it in jggonz/os8088, which has 104 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 8, 2026.
Source: jggonz/os8088 on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.