Fix PR Design Notes
different-ai/openwork
Reads the advisory design review attached to a pull request's screenshots, fixes the flagged UI problems in product code, and proves each note is gone.
Design, review, or govern load-bearing architecture for open choices, design judgments, or long-lived health; skip fixed-architecture execution.
$ npx skills add lencx/skills --skill keel -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lencx/skills keel --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/lencx/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/keel .claude/skills/keel && 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 "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .claude/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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/lencx/skills/tree/main/skills/keelType 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 lencx/skills --skill keel -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lencx/skills keel --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lencx/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/keel .agents/skills/keel && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .agents/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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 lencx/skills --skill keel -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lencx/skills keel --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lencx/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/keel .cursor/skills/keel && 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 "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .cursor/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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/lencx/skills.git --path skills/keel--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 lencx/skills --skill keel -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lencx/skills keel --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lencx/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/keel .gemini/skills/keel && 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 "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .gemini/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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 lencx/skills keelInstalls 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 lencx/skills --skill keel -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lencx/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/keel .github/skills/keel && 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 "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .github/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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 lencx/skills --skill keel -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lencx/skills keel --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lencx/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/keel .opencode/skills/keel && 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 "keel" agent skill from https://github.com/lencx/skills/tree/main/skills/keel into .opencode/skills/keel/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "keel", 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.
keelDesign, review, or govern load-bearing architecture for open choices, design judgments, or long-lived health; skip fixed-architecture execution.
Keel is an agent skill from lencx/skills. Design, review, or govern load-bearing architecture for open choices, design judgments, or long-lived health; skip fixed-architecture execution. Applies to new/existing systems. Private/local/reversible module boundaries qualify; scale rigor to impact. Covers responsibility/authority, interfaces/contracts, dependency/state/recovery, structural seams, guards/exceptions, drift/rot, migration, retirement, deletion, and rewrite risk.
Its SKILL.md is about 3.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/architecture-records.md`, `references/recovery-guards.md` and `references/rot-audit.md`).
It sits in Media & Creative, covering Design review and critique. It works with OpenAI. The repository describes itself as: 💡 Turn experience into repeatable execution. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b848e12. 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.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
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.
Keel loads about 3.6k tokens when it runs, and up to ~10k if it reads all its reference files. Until then it costs about 110 tokens; SKILL.md has 1,882 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 lencx/skills at commit b848e12, republished under its MIT licence (© lencx). 1,882 words, ~3,637 tokens.
.claude/skills/keel/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Keel discovers, judges, and governs load-bearing arrangements. It shapes the best-supported direction and keeps declared architecture enforceable, economical, migratable, and deletable as the system evolves.
Use keel at module, boundary, and system scale for responsibility between parts, authority or ownership, interfaces or contracts, dependency direction, state or recovery ownership, and seams that isolate future change. Use repository-native terms and treat applicable instructions, records, contracts, and entry paths as evidence rather than decoration.
Inspect only enough of the request, governing sources, and representative call sites or contracts to select the current state. Transition only when evidence changes the architecture job:
Private, local, reversible, and single-consumer choices can still require Decision or Judgment; scale evidence and ceremony to impact, reversibility, and uncertainty.
Focused workflows own their domain evidence, criteria, method, vocabulary, artifact, professional judgment, and completion condition. Keel integrates only the load-bearing architecture result under declared decision authority; execution workflows own mutation, work preservation, test mechanics, and verification.
Automatic or forced loading grants neither applicability nor action authority. On Exit, inspect the skill catalog when the host exposes one, select and completely read a suitable owning workflow when present, and otherwise continue with the general workflow. Stop using Keel-specific routes, references, and output framing.
Decision, Judgment, and Governance share a bounded evidence loop but do different work. Decision compares directions. Judgment tests the supplied target and transitions to Decision before proposing improvements. Governance compares applicable restoration, retention, migration, retirement, removal, and no-action responses.
Stop when more search, options, or detail are unlikely to change the result or close a material risk. If new evidence reopens a viable direction, compare it rather than defending the incumbent.
Decision, Judgment, and Governance finish in one of two states; Exit hands off without this framing:
For a low-blast-radius internal choice, a concise comparison and recommendation may be complete. Do not invent compatibility, migration, recovery, guards, governance, or artifacts that cannot change the choice.
For Governance, a constructive result may be subtraction, restored enforcement, a cheaper governed path, staged migration, retirement, or justified no action—not a new layer by default.
Map only the load-bearing points that apply, using repository-native terms. Entry surfaces, mutation admission, accepted state, externally visible effects, completion, and recovery are examples, not a required inventory. When a repository-declared or risk-plausible point is omitted, state why it is absent or inapplicable rather than inventing a stage. Changing or adding an applicable point is a boundary decision.
A load-bearing decision chain is not one controller, writer, process, transport, or deployment topology. Multiple execution mechanisms may coexist when they preserve every applicable declared boundary contract. A new or changed load-bearing point is a redesign: name the outcome, force, or blocker it addresses; its reconciliation rule when relevant; and the path it changes or retires.
Cross-cutting mechanisms may have dedicated owners without becoming parallel authority roots or bypasses. Add a top-level concept only when its jurisdiction is explicit, no existing owner can carry it without distortion, and it removes more ambiguity than it adds.
Grade each concrete surface by the compatibility promise it carries, using repository categories when available. When categories are absent, use a proportionate fallback rather than grading a whole domain or mechanism: its private implementation and cross-boundary contract may differ.
Every export, field, flag, option, and consumer-relied observable is a potential promise. Choose the narrowest promise that satisfies the requirement. Public, persisted, and cross-boundary surfaces need an explicit compatibility or cutover strategy; never break one silently.
A clean break may converge directly on the target only when target and cutover decision authority, consumer and data scope, old-entry retirement, and recovery are explicit. Otherwise version or migrate.
For each material fact and jurisdiction, use the simplest supported model. Declare only dimensions that exist and keep them independent:
These dimensions coexist; partitioning, replication, quorum, and multi-writer admission do not replace an authority model.
An artifact may project one fact while authoritatively recording another; declare each relation separately. Change a projection through its source and regeneration path. Resolve overlapping fact authority instead of calling writers interchangeable.
Give each material fact, contract, boundary decision, and lifecycle an accountability model. Owner differs from writer, maintainer, operator, and consumer; one owner is common, not universal. Joint or federated accountability declares jurisdiction, decision rights, tie-break or escalation, and lifecycle.
State what each load-bearing owner owns. Where adjacent duties could be confused, also state what it does not own.
Follow declared dependency direction and cross boundaries through their public surface or assembly seam. Move semantics into a shared domain only when they are neutral and accountability belongs there; two consumers needing the same capability is insufficient.
Target scope — Separate the requested local outcome, any proposed reusable seam or family, and the first implementation tranche. Resolve scope from the request or an authoritative scope source; sample count, code shape, the word pilot, and later outcomes are feasibility evidence, not scope authority. When broader family scope is authorized, test the seam against representative, materially distinct members without migrating them. When unresolved scope can change the decision, keep broader reuse unclaimed and return the cheapest clarification or reversible experiment.
Prefer bounded, declared, tool-enumerable entry surfaces so retirement remains possible.
Define behavior or an explicit unknown for material negative outcomes. Examine only cases plausible for the design, including failure, partial or stale work, cancellation, timeout, duplication, concurrency, uncertain commit, retry, restart, and replay. Do not invent a state machine for a reversible private choice.
Close each applicable recovery with:
Classify effects as reversible, compensable, or irreversible and scale controls accordingly. Establish closure rather than merely naming a recovery route.
Keep a traceable reason for each material architecture rule. Add a falsifiable guard or explicit review only when violation creates meaningful risk and the check can change action. A guard needs evidence that it detects a known or safely planted violation; an execution workflow owns how that evidence is produced.
Default exception baselines to shrink-only. Growth is a boundary decision that records decision authority, reason, narrow scope, owner, review trigger, and removal condition. Moving code outside a guard's scope is also a boundary change.
Change or retire a Keel rule only when a simpler obligation preserves its invariant or evidence shows that its failure mechanism is no longer decision-relevant. Observed silence alone proves neither.
Reduce avoidable friction without weakening controlling product, safety, security, privacy, or compliance policy. Recurring bypass signals route cost, not misconduct. The owning workflow may contain active risk immediately; trace containment scope, decision authority, cost, and exit while repairing the durable path.
Rot is entropy: it cannot be prevented, only metabolized faster than it accumulates. Make drift, migration, and deletion routine. A new noun, layer, or abstraction must remove more ambiguity than it adds. In an existing system, name what it retires; otherwise record net growth, accountability, reason, and review trigger. In greenfield work, compare it with a simpler omitted alternative instead of inventing a retirement ledger.
A retirement closes the active entry surface, enumerates and migrates or retires dependents, and preserves required behavioral evidence outside the implementation. Historical code informs behavior and risk; it does not define the target topology.
After selecting Decision, Judgment, or Governance, load only the matching branch references needed by the selected state and active material concerns; Exit loads none:
references/rule-rationale.md — when changing, auditing, replacing, or retiring a Keel rule.references/task-routes-and-lenses.md — when a substantial greenfield design, architecture review, boundary change, or structural refactor benefits from a formal route, or a rewrite needs slice-versus-whole-target judgment.references/surface-cutover.md — when repository grades are absent, a surface may be a de facto contract, or cutover evidence is needed.references/recovery-guards.md — when selecting recovery controls, designing or retiring a guard, or changing an exception baseline.references/rot-audit.md — for Governance of architecture decay, drift, recurring bypass, exception growth, or long-lived health.references/architecture-records.md — when records carry or route load-bearing architecture facts.© lencx, 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 6 other files (references) in skills/keel of lencx/skills.
Open the folder on GitHubat commit b848e12
Keel 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 |
|---|---|---|---|---|---|---|
| Keel this skilllencx/skills | 196 | — | ~3.6k | Automated safety check: Pass | MIT | |
| Fix PR Design Notesdifferent-ai/openwork | 24k | — | ~824 | Automated safety check: Pass | Custom licence | |
| AI Image Generation and Editingzhayujie/CowAgent | 47k | — | ~1.3k | Automated safety check: Pass | MIT | |
| GPT Image Generation CLIwuyoscar/GPT-Image2-Skill | 5.7k | — | ~2.5k | Automated safety check: Notes | MIT | |
| Openai Image Gentrpc-group/trpc-agent-go | 1.8k | 13 repos | ~843 | Automated safety check: Pass | Apache-2.0 | |
| Imagegentheowenyoung/home | 115 | 4 repos | ~4.8k | Automated safety check: Pass | Apache-2.0 |
different-ai/openwork
Reads the advisory design review attached to a pull request's screenshots, fixes the flagged UI problems in product code, and proves each note is gone.
zhayujie/CowAgent
Generates or edits images from text prompts through a Python script that picks an image backend based on which API keys are configured.
wuyoscar/GPT-Image2-Skill
Generates and edits images with GPT Image 2 or 2.5 through a packaged CLI and a prompt gallery, after settling which model fits the request.
trpc-group/trpc-agent-go
Batch-generate images via OpenAI Images API. An agent skill from trpc-group/trpc-agent-go.
theowenyoung/home
Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts.
onyx-dot-app/onyx
Generate or edit raster images (photos, illustrations, textures, sprites, mockups, logos, infographics) using the workspace's configured image-generation provider via onyx-cli image.
lencx/skills
Risk-scaled repo execution and code-evidence protocol. An agent skill from lencx/skills.
Works with
Categories
Design, review, or govern load-bearing architecture for open choices, design judgments, or long-lived health; skip fixed-architecture execution. Keel is an agent skill from lencx/skills. Design, review, or govern load-bearing architecture for open choices, design judgments, or long-lived health; skip fixed-architecture execution.
Keel fits situations like: tasks that involve Design review and critique.
Run `npx skills add lencx/skills --skill keel -a claude-code`. Or copy the skill folder (skills/keel in lencx/skills) into .claude/skills/keel in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lencx/skills --skill keel -a codex`. Or copy the skill folder (skills/keel in lencx/skills) into .agents/skills/keel 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 lencx/skills --skill keel -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/keel, .gemini/skills/keel, .github/skills/keel and .opencode/skills/keel in your project.
SKILL.md names no scripts, command-line tools or credentials: Keel is instructions for the agent only.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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.
Keel is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.6k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.7k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Keel: Fix PR Design Notes (different-ai/openwork, 24k stars), AI Image Generation and Editing (zhayujie/CowAgent, 47k stars), GPT Image Generation CLI (wuyoscar/GPT-Image2-Skill, 5.7k stars) and Openai Image Gen (trpc-group/trpc-agent-go, 1.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lencx (a GitHub user) maintains it in lencx/skills, which has 196 GitHub stars. The repository holds 2 skills in this directory. The repository was last updated on August 21, 2026.
Source: lencx/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.