Skip to content

Code Lab

Addy Osmani’s Agent Skills Explained: Engineering Workflows with Quality Gates

By Miles Park·
GitHub project preview for addyosmani/agent-skills

CODE LAB · PROJECT SPOTLIGHT

Agent Skills JavaScript · MIT

Production-grade engineering skills for AI coding agents.

Preview: GitHub · addyosmani/agent-skills

A reusable agent skill is more useful when it changes the evidence required to finish a task. Addy Osmani’s collection pairs engineering workflows with an instructive example of a fail-closed quality gate.

The repository organizes skills around defining, planning, building, verifying and reviewing software. It includes workflows for constraints, source-based decisions, accessibility and debugging. These files are instructions an agent may use; they are not a new model or a guarantee that an agent will consistently follow the intended process.

What does Agent Skills change in practice?

Choose one skill that addresses a recurring weakness in your own work. For example, define an accessibility check for a small UI change, record the expected report and make the completion criteria explicit. Compare the resulting evidence with your previous process. Installing every skill at once makes it harder to tell which instructions are useful or conflicting.

Inside the source: incomplete scans do not count as passing

The Semgrep branch requires result data, an error array with no errors, and a nonempty list of scanned paths. It throws when that report is incomplete, then defines known severities and the blocking subset. This prevents an empty or failed scan from being treated as a clean result. It does not verify that Semgrep covered the right files or that the chosen rules are sufficient for a particular application.

addyosmani/agent-skillsJavaScript · source excerpt
skills/constraint-driven-development/scripts/quality-gate.mjs
  if (tool === 'semgrep') {    if (!Array.isArray(report?.results) || !Array.isArray(report.errors)        || report.errors.length || !Array.isArray(report.paths?.scanned)        || !report.paths.scanned.length) {      throw new Error('Incomplete scan');    }    levels = report.results.map(finding => finding?.extra?.severity);    allowed = ['INFO', 'WARNING', 'ERROR', 'LOW', 'MEDIUM', 'HIGH', 'CRITICAL'];    blocking = ['ERROR', 'HIGH', 'CRITICAL'];
Lines 16–24 · commit 39b723cView original on GitHub ↗

Source: skills/constraint-driven-development/scripts/quality-gate.mjs at 39b723c. License: MIT. Original source text retained; line numbers and syntax colors added for this article.

Source attribution and license notices
MIT License

Copyright (c) 2025 Addy Osmani

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Getting started

Use the repository’s installation section to select the integration appropriate to your coding harness, then inspect the specific skills/<name>/SKILL.md before enabling it. The shown helper is a Node.js script under constraint-driven-development. Its usage expects a supported scanner name and a JSON report. Running the helper is separate from running the scanner that produces that report.

Limits and what to verify

A workflow file can ask for excellent engineering practices while the surrounding environment lacks the required tools or permissions. Check those prerequisites and avoid interpreting a successful helper exit as proof of complete product quality. The project uses the MIT license. The excerpt here was checked against a pinned source revision; none of these third-party skill instructions are being adopted as instructions for the reader’s unrelated work.

Where it fits

The collection is most valuable as a set of practices to inspect and adapt to a specific team. The quality-gate example gives that review something concrete: distinguish valid evidence, blocking findings and an unusable report instead of collapsing all three into a vague pass/fail claim.

Official references: Repository · README at reviewed revision · Release history · Exact source excerpt.

Reviewed November 15, 2026. Discovery credit: 민둥이 | 쉽게 배우는 AI, video published November 14 covering a November 12 repository selection. This article independently examines the official source; that historical ranking is not presented as today’s ranking.

Join the discussion

Your email address will not be published. Required fields are marked *