Agent skill

API Reviewer

by mitchdenny in mitchdenny/hex1b

Guidelines for reviewing API design in the Hex1b codebase. An agent skill from mitchdenny/hex1b.

MITAuto-check passedBackend & APIs

Install API Reviewer

skills CLI
$ npx skills add mitchdenny/hex1b --skill api-reviewer -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mitchdenny/hex1b api-reviewer --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mitchdenny/hex1b.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/api-reviewer .claude/skills/api-reviewer && rm -rf skills-src

Use ~/.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/

Facts

Skill name
api-reviewer
GitHub stars
178
Token cost
~4k tokens
SKILL.md length
1,271 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Guidelines for reviewing API design in the Hex1b codebase. An agent skill from mitchdenny/hex1b.

  • Works in 4 steps: External consumers need it - Adapters,… → It's part of the conceptual API - Users… → It enables extensibility - Custom… → …
  • Evaluating public APIs
  • SKILL.md covers Codebase Architecture, Public vs Internal Decision…, API Design Patterns and Async Patterns, plus 5 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

API Reviewer is an agent skill from mitchdenny/hex1b. Guidelines for reviewing API design in the Hex1b codebase. Use when evaluating public APIs, reviewing accessibility modifiers, or assessing whether new APIs follow project conventions.

Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Backend & APIs, covering API design and Accessibility. It works with React. The repository describes itself as: The .NET Terminal Application Stack. The licence is MIT.

When your agent uses it

  • Evaluating public APIs
  • Reviewing accessibility modifiers
  • Assessing whether new APIs follow project conventions

Example prompts

  • “Use the api-reviewer skill to guideline for reviewing API design in the Hex1b codebase. An agent skill from mitchdenny/hex1b”
  • “/api-reviewer”

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. External consumers need it - Adapters, extension points, widget customization
  2. It's part of the conceptual API - Users think in terms of this abstraction
  3. It enables extensibility - Custom widgets, themes, adapters
  4. It's stable - You're confident the design won't need breaking changes

What it can do on your machine

Read from SKILL.md and the folder at commit e2335bd. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are csharp).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

API Reviewer loads about 4k tokens when it runs. Until then it costs about 49 tokens; SKILL.md has 1,271 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~4k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from mitchdenny/hex1b at commit e2335bd, republished under its MIT licence (© mitchdenny). 1,271 words, ~3,980 tokens.

Download SKILL.mdSave it as .claude/skills/api-reviewer/SKILL.md (or your agent's skills folder).
name
api-reviewer
description
Guidelines for reviewing API design in the Hex1b codebase. Use when evaluating public APIs, reviewing accessibility modifiers, or assessing whether new APIs follow project conventions.

API Reviewer Skill

This skill captures API design preferences for the Hex1b codebase. Use it when reviewing public APIs, evaluating whether code should be public or internal, or assessing API design decisions made by AI agents.

Codebase Architecture

Hex1b is structured into distinct layers, each with different API design considerations:

Layer 1: Hex1bTerminal (Core)

The foundational layer maintaining an in-memory representation of terminal state.

ComponentPurposeAccessibility
Hex1bTerminalCore terminal state managementPublic
Hex1bTerminalBuilderFluent terminal constructionPublic
Presentation adaptersOutput to real terminals, tests, webPublic interfaces
Workload adaptersInput/output abstractionPublic interfaces
Surface, SurfaceCellLow-level cell storagePublic (low-level API)

Design note: Hex1bTerminal emerged from the need to properly test TUI components. The adapter pattern enables use in real terminals, unit tests, or projecting state across networks.

Layer 2: Hex1bApp/TUI

The widget/node tree layer, inspired by React/Ink but not beholden to it.

ComponentPurposeAccessibility
Hex1bAppRoot of TUI applicationsPublic
*Widget recordsDeclarative UI configurationPublic
*Node classesDOM-like render elementsGenerally public (for extensibility)
Reconciliation logicWidget→Node synchronizationInternal
Layout algorithmsMeasure/arrange implementationInternal
Layer 3: Automation

Testing and automation infrastructure.

ComponentPurposeAccessibility
Hex1bTerminalInputSequenceBuilderFluent input automationPublic
CellPatternSearcherVisual assertion matchingPublic
Hex1bTerminalSnapshotCaptured terminal statePublic

Design note: Automation APIs are explicitly for external consumers, not just internal testing.


Public vs Internal Decision Framework

When reviewing accessibility modifiers, apply this framework:

Make it PUBLIC when:
  1. External consumers need it - Adapters, extension points, widget customization
  2. It's part of the conceptual API - Users think in terms of this abstraction
  3. It enables extensibility - Custom widgets, themes, adapters
  4. It's stable - You're confident the design won't need breaking changes
Make it INTERNAL when:
  1. It's implementation detail - Only Hex1b itself (or agents working on it) would invoke it
  2. The abstraction isn't proven - Uncertain if this is the right level of abstraction
  3. It could change - Design may evolve with more usage
  4. It exposes internals - Would leak implementation details to consumers
Make it PRIVATE when:
  1. Single class usage - Only used within one type
  2. Helper methods - Implementation helpers with no external meaning
Review Questions

When reviewing agent-generated code, ask:

  • Is this API an internal implementation detail?
  • Does this method/property make sense on this type?
  • Is the abstraction level right?
  • Would making this public lock us into a design we're not confident about?
  • Can this be internal for now until we're confident in the design?

API Design Patterns

Builders: Classic With...() Pattern

For Hex1bTerminalBuilder and similar construction scenarios:

csharp
// ✅ PREFERRED: Classic builder pattern
var terminal = Hex1bTerminal.CreateBuilder()
    .WithWorkload(workload)
    .WithPresentation(presentation)
    .WithDimensions(80, 24)
    .WithHeadless()
    .Build();
Widgets: SwiftUI-Inspired Minimal Constructors

For widget APIs, use minimal constructors with essential arguments only, then fluent extension methods:

csharp
// ✅ PREFERRED: Minimal constructor + fluent methods
ctx.Table(columns, rows)
   .SelectedRow(selectedIndex)
   .OnSelectionChanged(HandleSelection)

// ✅ PREFERRED: Cross-cutting concerns as extension methods
ctx.Progress(value, max).Fill()

// ❌ AVOID: Overloaded constructors with many parameters
new TableWidget(columns, rows, selectedIndex, onSelectionChanged, sortColumn, sortDirection, ...)

Guideline: Only include the most essential arguments in the constructor. Make usage "bleeding obvious." Use extension methods to splice in extra behavior.

Stateful Widgets: Lift-State-Up via IStatefulWidget<TSelf, TState>

When a widget owns non-trivial mutable user-facing state (a textbox's buffer + cursor, an editor's document, a navigator's selection, a checkbox's checked value), expose that state to callers so composites can drive the widget from outside.

The framework-wide contract is IStatefulWidget<TSelf, TState>:

csharp
public sealed record TextBoxWidget(...)
    : Hex1bWidget, IStatefulWidget<TextBoxWidget, TextBoxState>
{
    internal TextBoxState? InjectedState { get; init; }
    public TextBoxWidget State(TextBoxState state) => this with { InjectedState = state };
}

Callers then own the state via ctx.UseState(...) and bind it:

csharp
var state = ctx.UseState(() => new TextBoxState());
return ctx.TextBox().State(state);

When to apply:

  • ✅ Mutable state that a parent might read or write (buffer text, selection, history).
  • ✅ Multi-instance widgets that need independent state (two textboxes, two editors) — wrap in a single state class with explicit fields, no keyed UseState needed.
  • ❌ Pure visual/transient state (focus, hover, animation phase) — keep that internal to the node.

Rules:

  • The state type must be a class (where TState : class) so external mutations are observed.
  • Reference equality matters — .State(s) must route the same instance into the node every reconcile.
  • If a widget supports both a ctor-arg "initial value" and .State(...), conflicting use must throw InvalidOperationException on reconcile (no precedence rules to memorise).
  • Method name is State(...) — the analyzer (HEX1B0001) forbids With* on widget extension methods.

See TextBoxWidget/TextBoxState, EditorWidget/EditorState, NavigatorWidget/NavigatorState, CheckboxWidget/CheckboxState for the canonical patterns.

Options Types for Complex Configuration

When you start creating many overloads, use an options type:

csharp
// ✅ PREFERRED: Options type for complex configuration
public class Hex1bAppOptions
{
    public Hex1bTheme? Theme { get; init; }
    public IHex1bTerminalWorkloadAdapter? WorkloadAdapter { get; init; }
    // ... extensible without breaking changes
}

// ❌ AVOID: Many overloads
public Hex1bApp(Func<...> builder) { }
public Hex1bApp(Func<...> builder, Hex1bTheme theme) { }
public Hex1bApp(Func<...> builder, Hex1bTheme theme, IWorkloadAdapter adapter) { }

But: Don't have options classes everywhere. Be conservative with what you require.


Async Patterns

Prefer Task, Use ValueTask for Performance
csharp
// ✅ PREFERRED: Task as default
public Task<Hex1bWidget> BuildAsync(WidgetContext ctx);

// ✅ Use ValueTask when there's a performance reason (hot paths, avoiding allocations)
public ValueTask HandleInputAsync(Hex1bKeyEvent key);
Sync + Async Overloads for Callbacks

Provide both sync and async overloads for event handlers. Implement everything assuming async is possible, then wrap sync handlers:

csharp
// ✅ PREFERRED: Both overloads, sync wraps to async
public ButtonWidget OnClick(Action<ButtonClickedEventArgs> handler)
    => this with { ClickHandler = args => { handler(args); return Task.CompletedTask; } };

public ButtonWidget OnClick(Func<ButtonClickedEventArgs, Task> handler)
    => this with { ClickHandler = handler };

Note: Samples often favor sync versions for simplicity.


Naming and Nullability

Types Over Magic Strings
csharp
// ✅ PREFERRED: Strongly typed
public void SetColor(Hex1bColor color);

// ❌ AVOID: Magic strings
public void SetColor(string colorName);
Avoid Forcing Null Arguments
csharp
// ❌ AVOID: Forcing callers to pass null
public void Configure(string? requiredArg, string? optionalArg);
Configure("value", null);  // Awkward

// ✅ PREFERRED: Overloads or optional parameters
public void Configure(string requiredArg);
public void Configure(string requiredArg, string optionalArg);
Avoid Primitive Obsession

Be wary of using too many primitive types, as it makes creating overloads harder in the future:

csharp
// Consider whether a type is warranted
public void SetPosition(int x, int y);        // OK for simple cases
public void SetPosition(Point position);       // Better if Point is meaningful elsewhere

Show full SKILL.md (534 more words)Show less

Extension Methods

Use extension methods when:

  1. They don't need internal access - Can work with public API surface
  2. They represent cross-cutting concerns - e.g., .Fill(), .FixedWidth()
  3. They add optional behavior - Not core to the type's identity

Use instance methods when:

  1. They need internal state - Avoiding would leak implementation details
  2. They're core to the type - Essential behavior, not optional configuration

Namespace Design

Discoverability First

Minimize the namespaces developers need to know:

csharp
// ✅ PREFERRED: Most types in root namespace
using Hex1b;

// Specialized namespaces for specific concerns
using Hex1b.Theming;
using Hex1b.Input;

Guideline: Ideally, most developers just need using Hex1b; and discover other types through methods on types in that namespace.


Documentation Standards

📘 See the doc-writer skill for comprehensive documentation guidelines including XML API docs and end-user guides.

XML Documentation Requirements

All public APIs must have XML documentation:

csharp
/// <summary>
/// Creates a button widget with the specified label.
/// </summary>
/// <remarks>
/// Buttons are focusable widgets that respond to Enter key or click events.
/// Use <see cref="OnClick"/> to register a handler for button activation.
/// 
/// Buttons automatically display a focus indicator when focused and can be
/// styled using <see cref="ButtonTheme"/> elements.
/// </remarks>
/// <param name="label">The text displayed on the button.</param>
/// <example>
/// <description>A simple quit button that stops the application:</description>
/// <code>
/// using Hex1b;
/// 
/// await using var terminal = Hex1bTerminal.CreateBuilder()
///     .WithHex1bApp((app, options) => ctx => 
///         ctx.Button("Quit").OnClick(e => e.Context.RequestStop()))
///     .Build();
/// 
/// await terminal.RunAsync();
/// </code>
/// </example>
public sealed record ButtonWidget(string Label) : Hex1bWidget
Documentation Guidelines
ElementGuideline
<summary>Concise and accurate - what it does, not how
<remarks>Detailed, useful from end-user perspective, no irrelevant internals
<param>Required for all parameters
<returns>Required for non-void methods
<example>Complete, runnable mini-apps when possible
<code>Cut-and-paste ready, not just method invocation

Anti-pattern: Examples that just show invoking the method without context. Always provide complete, runnable examples.


Error Handling

Exceptions for Irrecoverable Errors

Throw exceptions when something is truly irrecoverable:

csharp
// ✅ Use existing exception types when they fit
throw new ArgumentNullException(nameof(widget));
throw new InvalidOperationException("Cannot render before Measure()");

// ✅ Custom exceptions when debugging info is needed
throw new Hex1bRenderException(widget, node, phase, "Render failed", innerException);

Guideline: Think about what information developers need to debug. Attach widget/node/phase information when it helps.

Note: The RescueWidget exists to handle and display errors gracefully in the UI.


Code Organization

One Type Per File

Each type should be in its own file. This makes it easier to:

  • Review changes
  • Track modifications
  • Support concurrent agent work
Avoid Statics
csharp
// ❌ AVOID: Static state (causes testability bugs)
private static readonly Dictionary<string, Widget> _cache = new();

// ✅ PREFERRED: Instance state
private readonly Dictionary<string, Widget> _cache = new();

Rationale: AI agents tend to use statics, which introduce subtle testability bugs.

Constants Are Fine
csharp
// ✅ OK: Constants
public const int DefaultWidth = 80;
public const int DefaultHeight = 24;

Review Checklist

When reviewing APIs, check:

Accessibility
  • Is this the right accessibility level (public/internal/private)?
  • Are we exposing implementation details unnecessarily?
  • Is the API stable enough to be public?
Design
  • Does the method/property make sense on this type?
  • Is the abstraction level right?
  • Are we using options types where there are many parameters?
  • Are we avoiding primitive obsession?
  • Types over magic strings?
Patterns
  • Builders use With...() pattern? (and ONLY builders — flagged by HEX1B0001 if a widget extension or instance method starts with With)
  • Widgets use minimal constructors + fluent extensions?
  • Callbacks have sync + async overloads?
  • ValueTask preferred over Task?
Naming & Type Shape (enforced by analyzer)
  • Widget types end with Widget and are declared as record (HEX1B0002 / HEX1B0004)
  • Node types end with Node and are declared as class (HEX1B0003 / HEX1B0005)
  • No With* methods on widgets — use bare verb-noun names like Title("..."), MaxFloating(3), Disabled(true) (HEX1B0001)

These rules are enforced at build time by the Hex1b.Analyzers Roslyn analyzer wired into every project via the root Directory.Build.props. See AGENTS.md § "Code Analysis Rules" for the full table. If a flagged case is intentional and cannot follow the rule, suppress with #pragma warning disable HEX1B000x rather than disabling the analyzer wholesale.

Documentation
  • Summary is concise and accurate?
  • Remarks provide useful detail (not internal implementation)?
  • Examples are complete, runnable mini-apps?
Organization
  • One type per file?
  • Avoiding unnecessary statics?
  • Namespaces minimized for discoverability?

Anti-Patterns to Flag

Overly Public Agent-Generated Code

AI agents often make things public by default. Flag for review:

csharp
// ❌ REVIEW: Should this be internal?
public void ReconcileChildNodes(List<Hex1bNode> children) { }

// ❌ REVIEW: Implementation detail exposed
public int CalculateInternalLayoutOffset() { }
Too Many Overloads

When you see many overloads, suggest an options type:

csharp
// ❌ REVIEW: Consider options type
public Table(columns);
public Table(columns, selectedRow);
public Table(columns, selectedRow, sortColumn);
public Table(columns, selectedRow, sortColumn, sortDirection);
Magic Strings

Flag string parameters that should be types:

csharp
// ❌ REVIEW: Should be enum or type
public void SetAlignment(string alignment);  // "left", "center", "right"

// ✅ Better
public void SetAlignment(Alignment alignment);
Incomplete Documentation

Flag public APIs without proper documentation:

csharp
// ❌ REVIEW: Missing documentation
public Hex1bWidget CreateWidget(WidgetContext ctx);

// ❌ REVIEW: Example not runnable
/// <example>
/// <code>
/// widget.OnClick(handler);
/// </code>
/// </example>

© mitchdenny, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/skills/api-reviewer of mitchdenny/hex1b.

Open the folder on GitHubat commit e2335bd

Compare with similar skills

API Reviewer 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.

API Reviewer compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
API Reviewer this skillmitchdenny/hex1b178—~4kAutomated safety check: PassMIT
Frontend Request Skilljiushiwon/wg-skills114—~3.6kAutomated safety check: PassApache-2.0
Ariasickn33/agentic-awesome-skills47k1 repos~1.5kAutomated safety check: PassMIT
Nutui Reactjdf2e/nutui-react1.2k—~883Automated safety check: PassNone
Nutui React Tarojdf2e/nutui-react1.2k—~956Automated safety check: PassNone
Implementing Navigationancoleman/ai-design-components526—~1.8kAutomated safety check: PassMIT

Similar skills

  • Frontend Request Skill

    jiushiwon/wg-skills

    A skill your agent uses when designing or reviewing the request layer of a frontend project (web / uni-app / mini-program), including request.ts wrappers, interceptors, deduplication, mocks, error…

    114 GitHub stars~3.6k tokensUpdated 2 days ago
    Backend & APIsAuto-check passed
  • Aria

    sickn33/agentic-awesome-skills

    Designs the data model, API contracts, and structural foundation of the system.

    47k GitHub starsUsed in 1 repo~1.5k tokens
    Backend & APIsAuto-check passed
  • Nutui React

    jdf2e/nutui-react

    当用户的任务涉及 NutUI React(@nutui/nutui-react)时使用 —— 编写 NutUI React 组件、调试 NutUI 问题,或查询 NutUI 组件的 API/属性/文档/示例/设计变量(Design Token)。触发场景:与 NutUI 相关的代码、从 '@nutui/nutui-react' 导入,或明确的 NutUI 相关提问。NutUI React…

    1.2k GitHub stars~883 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Nutui React Taro

    jdf2e/nutui-react

    当用户的任务涉及 NutUI React Taro(@nutui/nutui-react-taro)时使用 —— 为小程序 / 跨端(Taro)应用编写 NutUI React Taro 组件、调试 NutUI Taro 问题,或查询 NutUI Taro 组件的 API/属性/文档/示例/设计变量(Design Token)。

    1.2k GitHub stars~956 tokensUpdated today
    Frontend & DesignAuto-check passed
  • Implementing Navigation

    ancoleman/ai-design-components

    Implements navigation patterns and routing for both frontend (React/TS) and backend (Python) including menus, tabs, breadcrumbs, client-side routing, and server-side route configuration.

    526 GitHub stars~1.8k tokensUpdated 10 mo ago
    Frontend & DesignAuto-check passed
  • Implementing Search Filter

    ancoleman/ai-design-components

    Implements search and filter interfaces for both frontend (React/TypeScript) and backend (Python) with debouncing, query management, and database integration.

    526 GitHub stars~1.6k tokensUpdated 10 mo ago
    Frontend & DesignAuto-check passed

More from mitchdenny/hex1b

  • Surface Benchmarker

    mitchdenny/hex1b

    Guidelines for running and interpreting Surface API performance benchmarks.

    178 GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Doc Tester

    mitchdenny/hex1b

    Agent for validating Hex1b documentation against actual library behavior.

    178 GitHub stars~9.5k tokensUpdated today
    Auto-check passed
  • Doc Writer

    mitchdenny/hex1b

    Guidelines for producing accurate and maintainable documentation for the Hex1b TUI library.

    178 GitHub stars~8.7k tokensUpdated today
    Auto-check passed
  • Test Fixer

    mitchdenny/hex1b

    Agent for diagnosing and fixing flaky terminal UI tests in the Hex1b test suite.

    178 GitHub stars~6.5k tokensUpdated today
    Auto-check passed
  • Widget Creator

    mitchdenny/hex1b

    Step-by-step guide for creating new widgets in the Hex1b TUI library.

    178 GitHub stars~7.6k tokensUpdated today
    Auto-check passed
  • Writing Unit Tests

    mitchdenny/hex1b

    Guidelines for writing unit tests in the Hex1b TUI library. An agent skill from mitchdenny/hex1b.

    178 GitHub stars~7k tokensUpdated today
    Auto-check passed

Works with

Questions about API Reviewer

What does API Reviewer do?

Guidelines for reviewing API design in the Hex1b codebase. An agent skill from mitchdenny/hex1b. API Reviewer is an agent skill from mitchdenny/hex1b. Guidelines for reviewing API design in the Hex1b codebase.

When should I use API Reviewer?

API Reviewer fits situations like: evaluating public APIs; reviewing accessibility modifiers; assessing whether new APIs follow project conventions.

How do I install API Reviewer in Claude Code?

Run `npx skills add mitchdenny/hex1b --skill api-reviewer -a claude-code`. Or copy the skill folder (.github/skills/api-reviewer in mitchdenny/hex1b) into .claude/skills/api-reviewer in your project. Claude Code loads it when a task matches its description.

How do I install API Reviewer in Codex?

Run `npx skills add mitchdenny/hex1b --skill api-reviewer -a codex`. Or copy the skill folder (.github/skills/api-reviewer in mitchdenny/hex1b) into .agents/skills/api-reviewer in your project. Codex loads it when a task matches its description.

Can I use API Reviewer in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mitchdenny/hex1b --skill api-reviewer -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/api-reviewer, .gemini/skills/api-reviewer, .github/skills/api-reviewer and .opencode/skills/api-reviewer in your project.

What does API Reviewer need to run?

SKILL.md names no scripts, command-line tools or credentials: API Reviewer is instructions for the agent only.

Does API Reviewer access the network?

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.

Is API Reviewer safe to install?

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.

What licence does API Reviewer use?

API Reviewer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does API Reviewer use?

About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to API Reviewer?

Skills that share tags, products or a category with API Reviewer: Frontend Request Skill (jiushiwon/wg-skills, 114 stars), Aria (sickn33/agentic-awesome-skills, 47k stars), Nutui React (jdf2e/nutui-react, 1.2k stars) and Nutui React Taro (jdf2e/nutui-react, 1.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains API Reviewer?

mitchdenny (a GitHub user) maintains it in mitchdenny/hex1b, which has 178 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.

Source: mitchdenny/hex1b on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.