Model or dataset
Gentleman-Programming/Gentleman-Skills avatar
Gentleman-Programming/Gentleman-Skills

Gentleman-Skills: Copy-Paste Instruction Sets for Claude Code, OpenCode and Seven Other Agents

Community-driven AI agent skills for Claude Code, OpenCode, and other AI assistants. Curated patterns and community contributions.

654 stars94 forksUnknownMIT

At a glance

What is it?
A community repository of SKILL.md files that give coding agents framework-specific context on demand. The install is a git clone and a cp, the content is opinionated, and the main risk is that nothing verifies the code those skills produce.
Who is it for?
Adopt it if you already use Claude Code, OpenCode, Cursor or a similar agent on Angular, React 19, Next.js 15, TypeScript, Tailwind 4, Django REST Framework or Playwright, and you want the agent to follow a specific house style without writing the rules yourself. Skip it if you work outside those stacks, since the curated list has no skill for your framework and community coverage is thin.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 172 days ago.
What is it written in?
GitHub does not report a main language for this repository.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The Problem: Agents Write Generic Code Unless You Feed Them Conventions

A coding agent starts every session with no knowledge of your project's conventions. It will happily produce a React component that mixes class and function patterns, an Angular service that ignores signals, or a Django view that skips the serializer layer, because nothing in the prompt says otherwise. The usual fix is a long project instruction file, which grows until it exceeds the context window and gets truncated.

Gentleman-Skills takes a different route. Each skill is a folder containing a SKILL.md file, and the README describes skills as "specialized instruction sets that teach AI assistants how to work with specific frameworks, libraries, and patterns," providing "on-demand context." The on-demand part is the point: instead of one giant rules file, you install many small ones and let the agent load the relevant SKILL.md when a trigger condition matches, such as working with Angular forms or writing Playwright tests.

The audience is narrow and identifiable. The curated list covers Angular (four separate skills), React 19, Next.js 15, TypeScript, Tailwind 4, Zod 4, Zustand 5, the Vercel AI SDK 5, Django REST Framework, Playwright, pytest, and two Jira workflow skills. If your stack is not on that list, the repository has little to offer you today.

Curated Versus Community: Two Tiers With Different Trust Models

The repository splits skills into two directories with different provenance. Curated skills live under curated/ and the README states they are "personally crafted and battle-tested" by the maintainer, reflecting "MY way of thinking about code architecture - Scope Rule, file naming conventions, signals-first approach." Two of them, testing and Python, were developed with the team at Prowler. Community skills live under community/ and, per the README, "go through a democratic voting process before they are accepted."

That distinction matters when you decide what to copy. The curated set is a single author's opinion applied consistently across frameworks: the Angular architecture skill covers the Scope Rule and file naming, and the same thinking appears in the React and Next.js skills. Consistency is the selling point. It is also the limitation, because a house style that suits one codebase will not suit every codebase, and the README does not describe a mechanism for adapting a curated skill to your own conventions beyond editing the file after you copy it.

The community tier is more varied in authorship and, judging by the listing, more varied in scope. The community table includes Electron, Elixir/Phoenix anti-patterns, hexagonal architecture for Java, Java 21, React Native, and Spring Boot 3, contributed by several named accounts. The README gives no detail on how the voting process runs or what threshold a skill must clear, so the practical signal you have is the author name and the skill's own contents.

Anatomy of a Skill: Trigger Conditions, Patterns, Rules

The README's description of the format is short. Each SKILL.md contains "Trigger conditions" that tell the AI when to load the skill, followed by "Patterns and rules." The example directory layout shows both flat skills (react-19/SKILL.md, typescript/SKILL.md, playwright/SKILL.md) and nested ones (angular/core/SKILL.md), so a skill can be a single file or a namespaced group under a parent framework folder.

The trigger model is the part worth thinking about. A trigger is a natural-language condition, not a hook or a registration API. The curated table lists triggers such as "When creating Angular components," "When working with Angular forms," and "When writing E2E tests." Whether the agent actually honours those conditions depends entirely on the host assistant: Claude Code, Cursor, and the others each decide for themselves how to match a request against a skill description. The repository does not ship a loader, a manifest, or a routing layer. It ships Markdown, and the agent's own skill-discovery behaviour does the rest.

That is a deliberate design. It keeps the repository portable across nine listed agents, since none of them need a plugin built for it. It also means the repository cannot guarantee that a skill fires when you expect it to. The manual installation instructions acknowledge this by telling you to reference the skill explicitly in your agent's configuration file, with the example being a line in CLAUDE.md: "When working with React, read `~/.claude/skills/react-19/SKILL.md` first." If you rely on automatic triggering alone, you are trusting behaviour the repository does not control.

Installing: One Clone, Then a Copy Per Agent

There is no package manager step. The quick start is a git clone followed by a recursive copy into the skills directory for your agent:

git clone https://github.com/Gentleman-Programming/Gentleman-Skills.git cp -r Gentleman-Skills/curated/* ~/.claude/skills/

The README gives the same pattern for OpenCode (~/.config/opencode/skills/), Gemini CLI (~/.gemini/skills/), and Cursor (~/.cursor/skills/), and a table covers VS Code Copilot (~/.copilot/skills/), Codex (~/.codex/skills/), Windsurf (~/.codeium/windsurf/skills/), and Antigravity (~/.gemini/antigravity/skills/). Windows paths are given as %USERPROFILE% equivalents. You can also copy a single skill instead of the whole set:

cp -r Gentleman-Skills/curated/react-19 ~/.claude/skills/

If the directory does not exist, the manual instructions use mkdir -p first, for example mkdir -p ~/.claude/skills. The final step is editing your agent's config file to point at the skill, as in the CLAUDE.md snippet above.

Two practical notes. First, copying curated/* dumps every curated skill into your agent's directory, including the Jira task and epic skills, which you may not want loaded. Second, the copy is a snapshot: the clone is a one-time action, and the README describes no update command, so refreshing means re-cloning and re-copying, which will overwrite any local edits you made to a SKILL.md.

What the Repository Does Not Give You: Verification and Coverage Gaps

Nothing in the material describes tests, linting, or a validation step for skill contents. A SKILL.md is prose, and its correctness is judged by whether the agent's output looks right to a human reviewer. The README's claim that curated skills are "battle-tested" is an assertion about the author's own experience, not a result the repository publishes, and there is no changelog or release history in the supplied material to show how skills change over time. The repository listing shows no releases retrieved, so versioning appears to be whatever the default branch contains at the moment you clone.

Coverage is the sharper limitation. The curated set is concentrated in JavaScript and TypeScript frontend work plus two Python testing skills and one Django skill. There is no curated skill for Go, Rust, C#, Ruby, PHP, Kotlin, or Swift. Community contributions cover Java, Elixir, and React Native, but that is a handful of entries and the README gives no indication of how actively new ones arrive. If your team writes Go services, this repository is the wrong tool today, and no amount of configuration changes that.

A second failure mode is conflict. If you install both a curated Angular skill and a community skill that expresses different architectural preferences, the agent sees two sets of rules and no arbitration. The repository offers no precedence mechanism, so the resolution is manual: install fewer skills, or edit the ones you keep.

How It Differs From Writing Your Own CLAUDE.md or AGENTS.md

The obvious alternative is a hand-written instruction file in the repository root, the pattern Claude Code calls CLAUDE.md and other agents read under names like AGENTS.md. That approach is universal: it works with any agent, any language, and any internal convention, and it is versioned alongside the code it governs.

The difference is loading behaviour and specificity. A root instruction file is loaded into context for every session, which means a 2,000-line file of framework rules taxes every prompt, including the ones about database migrations. Gentleman-Skills splits the same knowledge into per-framework files that are meant to load only when the trigger matches. That is a real architectural difference, not a cosmetic one, and it is the strongest argument for the repository's format.

The trade-off runs the other way too. A CLAUDE.md you write yourself describes your codebase. A curated skill describes the maintainer's codebase, or more precisely the maintainer's preferences about how code in that framework should be written. You get a head start on conventions you would otherwise have to articulate, and you inherit opinions you did not choose. For a greenfield React 19 project with no established style, that trade is easy. For a mature Angular codebase with its own file naming rules, copying the angular/architecture skill will put the agent in direct conflict with the code around it.

Maintenance Cost and the MIT Licence

The repository is MIT licensed. That permits copying, modification, and redistribution, including inside commercial projects, provided the licence notice is preserved. Since installation is literally copying files into your home directory, you are exercising that grant on every install. If you edit a SKILL.md to match your conventions and later redistribute the edited version, the MIT terms still apply; keeping the original copyright notice in the copied folder is the straightforward way to stay compliant. This is a description of the licence text, not legal advice, and teams with specific concerns should read the LICENSE file in the repository.

Ongoing cost is low but not zero. There is no dependency to update and no service to run, so the maintenance burden is the drift between the skills you installed and the frameworks they describe. A skill written for Next.js 15 or Tailwind 4 encodes an API surface that will move. The supplied material contains no release history, so there is no way to tell from this listing how quickly the maintainer refreshes a skill after a framework ships a breaking change. The practical check is to diff your installed copy against the repository periodically, since re-cloning and re-copying will silently overwrite local modifications.

Editorial conclusion

Adopt it if you already use Claude Code, OpenCode, Cursor or a similar agent on Angular, React 19, Next.js 15, TypeScript, Tailwind 4, Django REST Framework or Playwright, and you want the agent to follow a specific house style without writing the rules yourself. Skip it if you work outside those stacks, since the curated list has no skill for your framework and community coverage is thin. Before copying anything into ~/.claude/skills, read the individual SKILL.md files for the skills you intend to load: they encode one author's conventions, and the repository's own instructions tell you to reference them from CLAUDE.md rather than assume the agent picks them up automatically.

Official sources

  1. Gentleman-Programming/Gentleman-Skills on GitHub
  2. Issues
  3. License: MIT
  4. README
Community notes

Community notes