ui_design
Skill1.6k starsChanged 4 months agoMITView on GitHub
Design, change or show anything people look at (app UI, widget, mockup, HTML page or report, chart, icon): it fits the existing system, uses real content and states, and is judged by eye at the viewer's real size.
2 other projects use a version of this.
Adopted by
Steady: 0 new projects took it in the last 4 weeks, none the 4 weeks before.thin data
Who's talking about razzant/ouroboros
- razzant/OuroborosHub“a2a: keep a host-terminal "lost" operation terminal (1.5.1)”GitHub · Nov 6, 2026
- razzant/OuroborosHub“Chrome: use Connect tools instead of manual MCP JSON setup”GitHub · Nov 6, 2026
- gmkurtzer/ginux“Ginux: "S for Security"”GitHub · Nov 3, 2026
- razzant/claudexor“Idle runtime-replacement stop can admit commands while retention drains”GitHub · Nov 2, 2026
- razzant/OuroborosHub“Memory Atlas 0.3.0: rooms beside a canonical memory reader”GitHub · Oct 29, 2026
The biggest 5 of 33 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 33
Talked about on GitHub (33 times).
On GitHub · 33
- Nov 6, 2026a2a: keep a host-terminal "lost" operation terminal (1.5.1) — razzant/OuroborosHub0 reactions
- Nov 6, 2026Chrome: use Connect tools instead of manual MCP JSON setup — razzant/OuroborosHub0 reactions · 1 comment
- Nov 3, 2026Ginux: "S for Security" — gmkurtzer/ginux0 reactions · 1 comment
- Nov 2, 2026Idle runtime-replacement stop can admit commands while retention drains — razzant/claudexor0 reactions · 1 comment
- Oct 29, 2026Memory Atlas 0.3.0: rooms beside a canonical memory reader — razzant/OuroborosHub0 reactions
28 more on GitHub
- Oct 21, 2026Place connectors: Slack, Telegram, email, A2A and AgentRQ become places — razzant/OuroborosHub0 reactions
- Oct 21, 2026Streaming: two signed reasoning.text blocks of one Claude answer are merged, so the replay fails with "Invalid signature in thinking block" — OpenRouterTeam/ai-sdk-provider0 reactions
- Oct 15, 2026Deliver Slack mentions with current thread context — razzant/OuroborosHub0 reactions
- Oct 14, 2026Release Presence input queues while retaining unresolved work — razzant/OuroborosHub0 reactions
- Oct 12, 2026Add harness: Ouroboros (razzant) — auron-labs/harness-detect0 reactions
- Oct 6, 2026feat: opt-in Check-in agreements with Glassscale attribution — razzant/OuroborosHub0 reactions
- Sep 21, 2026[Experiment] Ouroboros S fixture — frozen independent-review packet — opensiro/vsm-harness-index0 reactions
- Sep 14, 2026Preserve Codex failure evidence and known terminal outcomes — razzant/claudexor0 reactions · 6 comments
- Sep 12, 2026Advisory processing preferences for model calls and agent sessions — razzant/claudexor0 reactions · 1 comment
- Aug 30, 2026Render typed quota absence reasons in the Claudexor Quotas widget — razzant/OuroborosHub0 reactions
- Aug 30, 2026Classify refreshable Claude quota failures honestly — razzant/claudexor0 reactions
- Aug 11, 2026Add Ouroboros to self-modifying harnesses — leezythu/Awesome-Harness-Self-Improvement0 reactions
- Aug 11, 2026Add Ouroboros to Harness and Runtime Architecture — FrontisAI/Awesome-Self-Improving-Agents0 reactions
- Aug 11, 2026Add Ouroboros to Harnesses and Orchestration — js-lee-AI/awesome-agent-loop-papers0 reactions · 1 comment
- Aug 11, 2026Add Ouroboros to Agent Architecture Self-Evolution — iSEngLab/Awesome-Self-Evolving-Coding-Agents0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Autonomous Agent Task Solver Projects — Jenqyang/Awesome-AI-Agents0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Harness Architecture and Orchestration — Picrew/awesome-agent-harness0 reactions · 3 comments
- Aug 2, 2026Add Ouroboros to Single-Agent Frameworks — alvinreal/awesome-opensource-ai0 reactions · 1 comment
- Aug 2, 2026Add Ouroboros to Self-Hosted Agents and UIs — caramaschiHG/awesome-ai-agents-20260 reactions · 1 comment
- Aug 2, 2026Add Ouroboros — kaushikb11/awesome-llm-agents0 reactions · 3 comments
- Aug 2, 2026Scope check: Ouroboros, reviewed self-modifying agent runtime — ANative-Lab/Awesome-Self-Evolving-Agents0 reactions
- Aug 2, 2026Add razzant/ouroboros — vince-lam/awesome-local-llms0 reactions · 1 comment
- Aug 2, 2026Add project: Ouroboros — mahmoud/awesome-python-applications0 reactions
- Aug 2, 2026Add project: Ouroboros — RyanAlberts/best-of-Agent-Harnesses0 reactions · 4 comments
- Aug 1, 2026Take a look at another self-evolving harness — yologdev/yoyo-evolve0 reactions · 3 comments
- Jul 29, 2026Add Ouroboros system + full default run (claude-sonnet-4.6): normalized reward 0.2301 — pgasawa/continual-learning-bench0 reactions · 3 comments
- Jun 9, 2026Добавить агента дейва на сайт — minsk-hackerspace/hackerspace.by0 reactions · 2 comments
- May 27, 2026feat(transport): add send_video tool and chat.video transport ax — joi-lab/ouroboros-desktop0 reactions
Other versions2 projects use a version of this.
Word for word · 2
- joi-lab/ouroboros★ 897100% same
- joi-lab/ouroboros-desktop★ 209100% same
Edited · 0
None found.
Wrote their own version · 0
None found.
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository11 other files it gives its agents.
- docs/llms.txtllms.txt
- Browser speechSkill
- Device voiceSkill
- gemini_liveSkill
- grok_realtimeSkill
- live_conversationSkill
- openai_realtimeSkill
- telegramSkill
- TemplatesSkill
- unix_computer_useSkill
- windows_computer_useSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 20
Write the viewer sentence first: "On this screen <viewer> sees <what> and does <what>." It titles every page and brief you make, and every …
- Very specific: line 63
After a reaction, knowledge_write(scope="global"): the date, what was shown, their words verbatim, where it applies and where not, told, …
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Designing something people will look at
A surface looks designed when every choice on it is explained by what the viewer does there. Aim for a result that is good with nobody's feedback: a person's reaction is evidence about taste, never the step that makes the work good. This is a pattern, not a law: the request, the product's design document and the owner's words outrank it.
1. The job first
- Write the viewer sentence first: "On this screen
<viewer>sees<what>and does<what>." It titles every page and brief you make, and every look below answers it. - Name the viewer, their measured window (size, theme, engine, saved panel widths; the runtime context's
owner_clientfact names the owner's surface) and the one thing they do here. - Authority, in order: the human's words; the product's design document and tokens (for Ouroboros's own interface
docs/DESIGN.mdandweb/ui.css); the screens beside yours; this playbook; your habits. - Census before invention: find every existing rendering of the same intent; reuse it or replace all of them. One intent, one control.
- Real content at its worst real length: the longest title, the long list, the empty list, the error. Real data from history exports and task results is allowed and preferred; only side effects on the live API are off limits. Invented data is at least as awkward, and you say so.
- A step from today unless a redesign is asked: change structure and behaviour, keep the materials people already approved. Recolouring the same boxes is not a design.
2. Composition essentials
- One thing first: the primary object or action is found without reading; the rest is quieter by size, weight or position.
- Shared edges: related things start on one left edge and sit on one baseline; correct by eye after looking.
- Spacing rhythm: one small scale, tight inside a group, generous between groups. Air is space, never faded text.
- Proximity before boxes: a border, fill or shadow marks a separate object; if everything has one, nothing does.
- Quiet surface: process notes and test counts go in your reply; uncertainty, exceptions and facts needed for the viewer's decision stay visible.
- A plan that would look the same for another subject is a default, not a choice. The checkable floor, the tells and the words:
references/craft.md.
3. Look, then let another eye look
- Open the delivered thing as its viewer will: the entry file or page, alone, at their size, theme and engine. Look at the first screen at 1:1, then at 2× crops of what changed; never a stitched sheet or a scaled grid.
- Then measure what eyes miss: overflow, clipped or covered text, bars over content, stuck controls, small targets, contrast (
references/browser.md,references/measure.js). Check primary text space with long content at intermediate container widths: fitting without overflow can still be unreadable. Measure after a paint; WebKit may change widths then. - When another eye is useful, ask what the thing is, who speaks to whom and what the viewer would do next. For an unbriefed first impression, its first request contains only the scene and those questions; send your intent after its answer. Putting frames before your explanation in one request is still briefed. Both kinds of critique help; neither replaces the complete context a formal review requires. If the reading differs from your viewer sentence, investigate the mismatch before polishing geometry.
- Findings are evidence, never a verdict. A green test, a saved screenshot or a check count is not a look. If you could not render or see the result, say so and give what you measured.
4. Putting a choice before a person
- One self-contained page made from
assets/compare.html: one scene at a time at the viewer's real size, Now and two to four genuinely different directions swapped in place (keys 1–9, arrows; S side by side; C clean view), real product code and the real long data. A blink between pictures hides the difference being judged. - For Ouroboros's own interface every frame is a capture of its running shell, or of this task's candidate
web/served over the same live reads, at the owner's window and in the state the owner sees.compare.htmlshows those frames; it is not where the interface is drawn. - One plain line per variant: what changes, what it costs. A is the recommendation, chosen for fit over novelty; "none of these" is always offered. A refinement shows Now and one proposal. A variant that moves away from something already approved says so.
- Demo chrome stays outside the product frame; nothing floats over the app. Open the file alone at the viewer's size and engine, switch every variant and look before sending.
- The message: one line on what is decided, the file plus one inline first-screen image for phone readers, at most three plain numbered questions, A first with its cost. No file names, test counts or process story.
5. After a choice
- A quick yes to a picture is a direction, not acceptance of what you build. Build from the chosen variant's code and data, then put the chosen picture and the built screen side by side at the same scene and size yourself. Fix what differs without a reason, send both with one line on what still differs and why, and go on: the merge does not wait for another yes.
- Record the reaction (§7) and close the loop item by item: what changed, what deliberately did not and why, what happens next.
6. Delegating the drawing
A delegated session may not see this skill: give it this file's absolute path and say reading it and its references is allowed. The brief template is references/brief.md; its first paragraph is the viewer sentence, coverage comes after. One direction per parallel author, or the variants converge.
7. The owner's taste
- Craft is general; taste is personal and changes. Before designing for a known owner,
knowledge_list(scope="global"), thenknowledge_read(topic, scope="global")for the topic holding their design reactions, if any. - After a reaction,
knowledge_write(scope="global"): the date, what was shown, their words verbatim, where it applies and where not, told, observed or inferred. Revise in place; a correction is evidence about that moment, not a standing rule until they make it one. - Delegates return observations; only the mind writes memory. A taste note never becomes product law or part of this skill.
Done means
A delivered page opens alone with nothing behind it: a page that works only while a server you started runs is not a delivery; zero console errors; the awkward content fits; frames of Ouroboros's own interface are captures of it running (§4), and a timeout or a failed load is a fault of the capture, never a frame; you looked at it at the viewer's size, in both themes when the product has two, and what you saw (and what any eye you asked saw) matches your viewer sentence; you can name what you saw and what you measured.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

