Agent skill

Horse Lazarus Compatibility

by HashLoad in HashLoad/horse

Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

MITAuto-check passed

Install Horse Lazarus Compatibility

skills CLI
$ npx skills add HashLoad/horse --skill horse-lazarus-compatibility -a claude-code

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

GitHub CLI
$ gh skill install HashLoad/horse horse-lazarus-compatibility --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/HashLoad/horse.git skills-src && mkdir -p .claude/skills && cp -r skills-src/doc/skills/horse-lazarus-compatibility .claude/skills/horse-lazarus-compatibility && 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
horse-lazarus-compatibility
GitHub stars
1.4k
Token cost
~806 tokens
SKILL.md length
250 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

  • Works in 4 steps: No Anonymous Methods in FPC (The Core… → Standard Compiler Directives for Lazarus → JSON Framework Differences → …
  • SKILL.md covers 1. No Anonymous Methods in FPC…, 2. Standard Compiler…, 3. JSON Framework Differences and 4. Best Practices for…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Horse Lazarus Compatibility is an agent skill from HashLoad/horse. Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

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

The repository describes itself as: Fast, opinionated, minimalist web framework for Delphi. The licence is MIT.

Example prompts

  • “/horse-lazarus-compatibility”

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. No Anonymous Methods in FPC (The Core Rule)
  2. Standard Compiler Directives for Lazarus
  3. JSON Framework Differences
  4. Best Practices for Cross-Compiler Apps

What it can do on your machine

Read from SKILL.md and the folder at commit d4351a5. 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 pascal).

    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

Horse Lazarus Compatibility loads about 806 tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 250 words of instructions outside code blocks.

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

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 HashLoad/horse at commit d4351a5, republished under its MIT licence (© HashLoad). 250 words, ~806 tokens.

Download SKILL.mdSave it as .claude/skills/horse-lazarus-compatibility/SKILL.md (or your agent's skills folder).
name
horse-lazarus-compatibility
description
Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

Horse Lazarus & FPC Compatibility

To write cross-platform Horse applications that compile flawlessly in both Delphi and Lazarus/FPC, you must adhere to Free Pascal's compiler rules and syntax limitations.


1. No Anonymous Methods in FPC (The Core Rule)

While Delphi supports registering routes using inline anonymous procedures (methods) directly, Free Pascal (FPC) does not support anonymous methods with variable capturing in the same syntax.

Delphi Syntax (Will Fail to Compile on Lazarus)
pascal
// Do NOT use this inline syntax if targeting Lazarus/FPC
THorse.Get('/ping',
  procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
  begin
    Res.Send('pong');
  end);
Lazarus/FPC Correct Syntax

Always declare handlers as standard standalone procedures or method pointers, and pass them as callback parameters:

pascal
{$MODE DELPHI}{$H+} // CRITICAL compiler directive for Lazarus

uses
  Horse;

// 1. Declare handler as a standard procedure
procedure GetPingHandler(Req: THorseRequest; Res: THorseResponse);
begin
  Res.Send('pong');
end;

begin
  // 2. Register the procedure callback
  THorse.Get('/ping', GetPingHandler);
  THorse.Listen(9000);
end.

2. Standard Compiler Directives for Lazarus

Always include these two compiler directives at the absolute top of your Lazarus .pas or .dpr (program) files:

pascal
{$MODE DELPHI}{$H+}
  • {$MODE DELPHI}: Instructs FPC to emulate Delphi's object-oriented syntax and generic type resolutions.
  • {$H+}: Enforces the use of Long Strings (AnsiString) by default instead of short strings (which are limited to 255 characters).

3. JSON Framework Differences

Delphi and Lazarus use entirely different built-in JSON serialization libraries.

  • Delphi: Uses System.JSON (TJSONObject, TJSONArray).
  • Lazarus/FPC: Uses fpjson and jsonparser (TJSONObject, TJSONArray).
Writing Cross-Compiler JSON Code

If your middleware or controllers need to compile on both platforms, use conditional compilation defines ($IFDEF):

pascal
uses
  {$IFDEF FPC}
  fpjson, jsonparser,
  {$ELSE}
  System.JSON,
  {$ENDIF}
  Horse;

procedure GetStatusHandler(Req: THorseRequest; Res: THorseResponse);
var
  LJson: TJSONObject;
begin
  LJson := TJSONObject.Create;
  try
    {$IFDEF FPC}
    LJson.Add('status', 'healthy');
    {$ELSE}
    LJson.AddPair('status', 'healthy');
    {$ENDIF}
    
    Res.Send(LJson);
  finally
    // Johnson middleware takes ownership and frees this object. 
    // Refer to horse-middlewares skill.
  end;
end;

4. Best Practices for Cross-Compiler Apps

  1. Prefer standalone controller procedures: Keep all route handlers in a separate unit as standard procedures, avoiding inline code in the bootstrap project file.
  2. Avoid Delphi-specific RTL: Do not use units like System.NetEncoding or System.Hash without providing an alternative like LclIntf or FPC's built-in cryptographic units when compiling under FPC.

© HashLoad, 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 doc/skills/horse-lazarus-compatibility of HashLoad/horse.

Open the folder on GitHubat commit d4351a5

Compare with similar skills

Horse Lazarus Compatibility 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.

Horse Lazarus Compatibility compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Horse Lazarus Compatibility this skillHashLoad/horse1.4k—~806Automated safety check: PassMIT
Address Feedbackpydantic/pydantic-ai21k—~1.1kAutomated safety check: PassMIT
Google Address Validation AutomationComposioHQ/awesome-claude-skills77k3 repos~798Automated safety check: PassNone
Physical Addressthedaviddias/Front-End-Checklist74k—~574Automated safety check: PassMIT
Address GitHub Commentsdavila7/claude-code-templates33k7 repos~307Automated safety check: PassMIT
Pascal 3D Scene Editingpascalorg/editor25k—~2.9kAutomated safety check: PassMIT

Similar skills

  • Address Feedback

    pydantic/pydantic-ai

    Official

    Find and address unresolved PR review comments for the current branch, then continue the canonical push, reply, reaction, and resolution workflow.

    21k GitHub stars~1.1k tokensUpdated today
    DevelopmentAuto-check passed
  • Google Address Validation Automation

    ComposioHQ/awesome-claude-skills

    Automate Google Address Validation tasks via Rube MCP (Composio).

    77k GitHub starsUsed in 3 repos~798 tokens
    Productivity & AutomationAuto-check passed
  • Physical Address

    thedaviddias/Front-End-Checklist

    A skill your agent uses when auditing local business websites, e-commerce sites, or any site where a physical presence affects trust or local search visibility.

    74k GitHub stars~574 tokensUpdated 4 days ago
    Marketing & SEOAuto-check passed
  • Address GitHub Comments

    davila7/claude-code-templates

    A skill your agent uses when you need to address review or issue comments on an open GitHub Pull Request using the gh CLI.

    33k GitHub starsUsed in 7 repos~307 tokens
    Auto-check passed
  • Pascal 3D Scene Editing

    pascalorg/editor

    Connects an agent to Pascal's MCP tools to create, inspect, edit, validate and save editable 3D building scenes, then return a verified editor link.

    25k GitHub stars~2.9k tokensUpdated today
    Media & CreativeAuto-check passed
  • Dali Short Address Commissioner

    sickn33/agentic-awesome-skills

    Commissions DALI and DALI-2 (IEC 62386) lighting buses: short-address assignment (0-63), 24-bit binary search collision resolution, groups, and DT8 color control.

    47k GitHub starsUsed in 1 repo~2.9k tokens
    Auto-check passed

More from HashLoad/horse

All 23 skills in this repo
  • Horse App Structure

    HashLoad/horse

    Guide for setting up Horse applications, bootstrap program (.dpr), basic console initialization, and registering modules.

    1.4k GitHub stars~716 tokensUpdated 3 days ago
    Auto-check passed
  • Guide for setting up thread-safe database connection pooling (FireDAC / UniDAC) in multithreaded Horse applications.

    1.4k GitHub stars~1.4k tokensUpdated 3 days ago
    Auto-check passed
  • Guide for managing request-scoped contextual services and IoC (dependency injection) in Delphi and Lazarus.

    1.4k GitHub stars~985 tokensUpdated 3 days ago
    Auto-check passed
  • Horse Files Streams

    HashLoad/horse

    Guide to handling file uploads (multipart), downloads, and stream lifetime management in the Horse framework.

    1.4k GitHub stars~601 tokensUpdated 3 days ago
    Auto-check passed
  • Horse Grpc

    HashLoad/horse

    Guidelines and workflows for developing and maintaining gRPC services, HTTP/2 h2c transport, and Protobuf serialization within the Horse framework.

    1.4k GitHub stars~776 tokensUpdated 3 days ago
    Auto-check passed
  • Guide for writing automated integration tests for Horse endpoints using DUnit/DUnitX and THTTPClient.

    1.4k GitHub stars~964 tokensUpdated 3 days ago
    Auto-check passed

Questions about Horse Lazarus Compatibility

What does Horse Lazarus Compatibility do?

Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives. Horse Lazarus Compatibility is an agent skill from HashLoad/horse. Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

How do I install Horse Lazarus Compatibility in Claude Code?

Run `npx skills add HashLoad/horse --skill horse-lazarus-compatibility -a claude-code`. Or copy the skill folder (doc/skills/horse-lazarus-compatibility in HashLoad/horse) into .claude/skills/horse-lazarus-compatibility in your project. Claude Code loads it when a task matches its description.

How do I install Horse Lazarus Compatibility in Codex?

Run `npx skills add HashLoad/horse --skill horse-lazarus-compatibility -a codex`. Or copy the skill folder (doc/skills/horse-lazarus-compatibility in HashLoad/horse) into .agents/skills/horse-lazarus-compatibility in your project. Codex loads it when a task matches its description.

Can I use Horse Lazarus Compatibility 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 HashLoad/horse --skill horse-lazarus-compatibility -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/horse-lazarus-compatibility, .gemini/skills/horse-lazarus-compatibility, .github/skills/horse-lazarus-compatibility and .opencode/skills/horse-lazarus-compatibility in your project.

What does Horse Lazarus Compatibility need to run?

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

Does Horse Lazarus Compatibility 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 Horse Lazarus Compatibility 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 Horse Lazarus Compatibility use?

Horse Lazarus Compatibility 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 Horse Lazarus Compatibility use?

About 806 tokens (SKILL.md is roughly 3.2k 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 Horse Lazarus Compatibility?

Skills that share tags, products or a category with Horse Lazarus Compatibility: Address Feedback (pydantic/pydantic-ai, 21k stars), Google Address Validation Automation (ComposioHQ/awesome-claude-skills, 77k stars), Physical Address (thedaviddias/Front-End-Checklist, 74k stars) and Address GitHub Comments (davila7/claude-code-templates, 33k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Horse Lazarus Compatibility?

HashLoad (a GitHub organization) maintains it in HashLoad/horse, which has 1,378 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 7, 2026.

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