Agent skill

Horse App Structure

by HashLoad in HashLoad/horse

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

MITAuto-check passed

Install Horse App Structure

skills CLI
$ npx skills add HashLoad/horse --skill horse-app-structure -a claude-code

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

GitHub CLI
$ gh skill install HashLoad/horse horse-app-structure --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-app-structure .claude/skills/horse-app-structure && 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-app-structure
GitHub stars
1.4k
Token cost
~716 tokens
SKILL.md length
167 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 2 steps: Keep Controllers stateless: Do not store… → Uses Sequence: Ensure modules containing…
  • SKILL.md covers Application Bootstrap (.dpr), Modular Architecture and Thread-Safe Data Access &…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Horse App Structure is an agent skill from HashLoad/horse. Guide for setting up Horse applications, bootstrap program (.dpr), basic console initialization, and registering modules.

Its SKILL.md is about 720 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-app-structure”

Workflow steps

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

  1. Keep Controllers stateless: Do not store request-specific variables as fields in a controller class unless they are thread-safe.
  2. Uses Sequence: Ensure modules containing business services or repository layers are decoupled from the HTTP transport layer (Horse units).

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 App Structure loads about 716 tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 167 words of instructions outside code blocks.

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

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). 167 words, ~716 tokens.

Download SKILL.mdSave it as .claude/skills/horse-app-structure/SKILL.md (or your agent's skills folder).
name
horse-app-structure
description
Guide for setting up Horse applications, bootstrap program (.dpr), basic console initialization, and registering modules.

Horse App Structure

Application Bootstrap (.dpr)

A standard Horse application is typically configured as a Delphi Console Application ({$APPTYPE CONSOLE}).

pascal
program MyHorseApp;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  Horse,
  Horse.Jhonson,
  Horse.CORS;

begin
  // 1. Opt-in for the High-Performance Radix Tree Router (highly recommended)
  THorse.UseRadixRouter;

  // 2. Register Global Middlewares
  THorse
    .Use(CORS)
    .Use(Jhonson);

  // 3. Register Routes / Controllers
  THorse.Get('/ping',
    procedure(Req: THorseRequest; Res: THorseResponse; Next: TProc)
    begin
      Res.Send('pong');
    end);

  // 4. Start Server with Listen Callback (prevents sequential execution blocking)
  THorse.Listen(9000,
    procedure
    begin
      Writeln('Server is running on port ' + THorse.Port.ToString);
    end);
end.

Modular Architecture

For production grade projects, keep the .dpr file clean by delegating route definitions to specialized Controller classes:

  1. Keep Controllers stateless: Do not store request-specific variables as fields in a controller class unless they are thread-safe.
  2. Uses Sequence: Ensure modules containing business services or repository layers are decoupled from the HTTP transport layer (Horse units).

Thread-Safe Data Access & Database Connections

Horse is inherently multithreaded (each request runs on a separate worker thread). Accessing a database inside a route handler requires strict thread safety to avoid memory corruption, race conditions, or application crashes (Access Violations):

  1. NEVER share connection components globally: Do not put a global TFDConnection or query component in your Controller or DataModule and share it across handlers.
  2. Local instantiation (Thread-local): Always create the connection and query components inside the route handler, and release them in a try...finally block (Delphi XE7+ compatible):
pascal
procedure GetCustomerHandler(Req: THorseRequest; Res: THorseResponse; Next: TProc);
var
  LConnection: TFDConnection;
  LQuery: TFDQuery;
 begin
  LConnection := TFDConnection.Create(nil);
  LQuery := TFDQuery.Create(nil);
  try
    // Configure connection locally (preferably utilizing FireDAC Connection Pooling)
    LConnection.ConnectionDefName := 'MyPooledConnectionDef';
    LConnection.Connected := True;
    
    LQuery.Connection := LConnection;
    LQuery.SQL.Text := 'SELECT * FROM CUSTOMERS WHERE ID = :ID';
    LQuery.ParamByName('ID').AsInteger := Req.Params.Field('id').AsInteger;
    LQuery.Open;
    
    Res.Send(LQuery.ToJSONArray);
  finally
    LQuery.Free;
    LConnection.Free;
  end;
end;

© 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-app-structure of HashLoad/horse.

Open the folder on GitHubat commit d4351a5

Compare with similar skills

Horse App Structure 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 App Structure compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Horse App Structure this skillHashLoad/horse1.4k—~716Automated safety check: PassMIT
Manage Settingsasgeirtj/system_prompts_leaks69k—~3.1kAutomated safety check: PassCC0-1.0
Tabler Bootstrap Component Rulestabler/tabler42k—~2.2kAutomated safety check: PassMIT
Bootstrap Soulbytedance/deer-flow83k2 repos~1.2kAutomated safety check: PassMIT
Warp Settings Editorwarpdotdev/warp65k1 repos~675Automated safety check: PassAGPL-3.0
Warp Settings Page Builderwarpdotdev/warp65k1 repos~4.5kAutomated safety check: PassAGPL-3.0

Similar skills

  • Manage Settings

    asgeirtj/system_prompts_leaks

    Any explicit Muse Code setting question or change (model, reasoning effort, /settings) requires a silent readskill call for bundled:manage-settings as FIRST ACTION—no assistant text or other tool…

    69k GitHub stars~3.1k tokensUpdated today
    Auto-check passed
  • Sets the file structure, typing and Data API pattern for writing a new Bootstrap-style JavaScript component class in Tabler's vendored port of Bootstrap's JS.

    42k GitHub stars~2.2k tokensUpdated yesterday
    Frontend & DesignAuto-check passed
  • Bootstrap Soul

    bytedance/deer-flow

    Runs a short adaptive conversation with you and writes a personalized SOUL.md that defines your AI partner's name, personality, communication style and boundaries.

    83k GitHub starsUsed in 2 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • Warp Settings Editor

    warpdotdev/warp

    Finds and changes Warp application settings by searching a bundled JSON schema and editing the matching TOML settings file at the right nesting depth.

    65k GitHub starsUsed in 1 repo~675 tokens
    Productivity & AutomationAuto-check passed
  • How to build a settings page in the Warp desktop client so widgets, page titles and settings search behave correctly, and which common mistakes to avoid.

    65k GitHub starsUsed in 1 repo~4.5k tokens
    Frontend & DesignAuto-check passed
  • Adds a server-side environment variable that sets the default for a user setting in LobeHub, wired from the env schema through server config to the user store and docs.

    83k GitHub stars~644 tokensUpdated today
    DevelopmentAuto-check passed

More from HashLoad/horse

All 23 skills in this repo
  • Guide for setting up thread-safe database connection pooling (FireDAC / UniDAC) in multithreaded Horse applications.

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

    1.4k GitHub stars~985 tokensUpdated yesterday
    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 yesterday
    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 yesterday
    Auto-check passed
  • Guide for writing automated integration tests for Horse endpoints using DUnit/DUnitX and THTTPClient.

    1.4k GitHub stars~964 tokensUpdated yesterday
    Auto-check passed
  • Guide for ensuring Lazarus and Free Pascal (FPC) compatibility, addressing anonymous methods differences, JSON units, and compiler directives.

    1.4k GitHub stars~806 tokensUpdated yesterday
    Auto-check passed

Questions about Horse App Structure

What does Horse App Structure do?

Guide for setting up Horse applications, bootstrap program (.dpr), basic console initialization, and registering modules. Horse App Structure is an agent skill from HashLoad/horse.dpr), basic console initialization, and registering modules.

How do I install Horse App Structure in Claude Code?

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

How do I install Horse App Structure in Codex?

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

Can I use Horse App Structure 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-app-structure -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-app-structure, .gemini/skills/horse-app-structure, .github/skills/horse-app-structure and .opencode/skills/horse-app-structure in your project.

What does Horse App Structure need to run?

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

Does Horse App Structure 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 App Structure 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 App Structure use?

Horse App Structure 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 App Structure use?

About 716 tokens (SKILL.md is roughly 2.9k 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 App Structure?

Skills that share tags, products or a category with Horse App Structure: Manage Settings (asgeirtj/system_prompts_leaks, 69k stars), Tabler Bootstrap Component Rules (tabler/tabler, 42k stars), Bootstrap Soul (bytedance/deer-flow, 83k stars) and Warp Settings Editor (warpdotdev/warp, 65k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Horse App Structure?

HashLoad (a GitHub organization) maintains it in HashLoad/horse, which has 1,377 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.