Agent skill

Hal And Abstractions

by yokki-vans in yokki-vans/InkPointX

Layering and abstraction discipline for the firmware. An agent skill from yokki-vans/InkPointX.

MITAuto-check passedFrontend & Design

Install Hal And Abstractions

skills CLI
$ npx skills add yokki-vans/InkPointX --skill hal-and-abstractions -a claude-code

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

GitHub CLI
$ gh skill install yokki-vans/InkPointX hal-and-abstractions --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/yokki-vans/InkPointX.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/hal-and-abstractions .claude/skills/hal-and-abstractions && 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
hal-and-abstractions
GitHub stars
107
Token cost
~791 tokens
SKILL.md length
359 words
Files
1
Skills in repo
5
Repo updated
First seen
Licence
MIT

At a glance

Layering and abstraction discipline for the firmware. An agent skill from yokki-vans/InkPointX.

  • Touching storage
  • SKILL.md covers Route through the layer, always, User-facing text, Drawing a new boundary and Self-review
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Any code that could reach into the SDK

What it does

Hal And Abstractions is an agent skill from yokki-vans/InkPointX. Layering and abstraction discipline for the firmware. Use when touching storage, input, display, settings, i18n, or rendering, or any code that could reach into the SDK. Covers routing through the HAL (HalStorage / HalGPIO / HalDisplay) instead of raw SDK classes, MappedInputManager logical buttons instead of raw GPIO indices, UITheme/GUI for all rendering, the singleton macros, tr() for user-facing text, and where a new abstraction boundary belongs.

Its SKILL.md is about 790 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 Frontend & Design, covering Internationalization. The repository describes itself as: Firmware for Xteink X3/X4. Personal fork of Crosspoint and CrossInk. The licence is MIT.

When your agent uses it

  • Touching storage
  • Any code that could reach into the SDK

Example prompts

  • “/hal-and-abstractions”

What it can do on your machine

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

    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

Hal And Abstractions loads about 791 tokens when it runs. Until then it costs about 119 tokens; SKILL.md has 359 words of instructions outside code blocks.

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

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 yokki-vans/InkPointX at commit d272143, republished under its MIT licence (© yokki-vans). 359 words, ~791 tokens.

Download SKILL.mdSave it as .claude/skills/hal-and-abstractions/SKILL.md (or your agent's skills folder).
name
hal-and-abstractions
description
Layering and abstraction discipline for the firmware. Use when touching storage, input, display, settings, i18n, or rendering, or any code that could reach into the SDK. Covers routing through the HAL (HalStorage / HalGPIO / HalDisplay) instead of raw SDK classes, MappedInputManager logical buttons instead of raw GPIO indices, UITheme/GUI for all rendering, the singleton macros, tr() for user-facing text, and where a new abstraction boundary belongs.

HAL and Abstractions

CLAUDE.md lists the HAL classes and the SdFat-concurrency reason they exist. This is when and how to route through them, and where to draw a new boundary.

Route through the layer, always

  • SD card I/O: Storage (HalStorage) and HalFile. Never SdFat, FsFile, SdSpiCard, FsBaseFile, or SDCardManager directly. The HAL serializes every SD access through one mutex; bypassing it races the SPI state machine and panics FreeRTOS (CLAUDE.md has the failure mode). This is a correctness boundary, not a style preference.
  • Display: HalDisplay over EInkDisplay. Input: HalGPIO over InputManager.
  • Rendering: everything through the GUI macro (UITheme) and the renderer's oriented metrics. No hardcoded fonts, colors, coordinates, or 800/480 literals; ask the renderer for width/height and use the oriented viewable area.
  • Input in activities: MappedInputManager::Button logical enums (Button::Confirm, Button::PageForward, ...). Never raw HalGPIO::BTN_* indices outside ButtonRemapActivity. Logical buttons survive user remapping and orientation; raw indices do not.
  • Shared state: the singleton macros (SETTINGS, APP_STATE, GUI, Storage, I18N), not threaded pointers.

User-facing text

Every string a user reads goes through tr(STR_*). Add the key to the English YAML, regenerate with scripts/gen_i18n.py, then use the StrId. Log lines (LOG_*) stay hardcoded.

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

Drawing a new boundary

When you need an SDK capability the HAL does not expose yet, add the method to the HAL; do not reach around it. The new method inherits the mutex, logging, and error contract the rest of the HAL carries. A one-off direct SDK call in an activity is exactly the layering violation the mutex discipline cannot tolerate.

Keep abstractions thin. A wrapper that only renames an SDK call without adding the mutex, logging, or an error contract is dead weight. Add a layer only when it carries one of those contracts or hides a real implementation choice.

Self-review

  • No direct SdFat / FsFile / SDCardManager / EInkDisplay / InputManager use outside lib/hal.
  • File access uses HalFile; no .close() on a local handle (DESTRUCTOR_CLOSES_FILE); members closed in onExit.
  • Input uses MappedInputManager::Button, not raw BTN_* indices.
  • Rendering goes through GUI/UITheme and oriented metrics; no 800/480 or hardcoded fonts/coords.
  • User-facing strings use tr(STR_*); new keys added to YAML and regenerated.
  • Any new SDK capability is exposed as a HAL method, not called inline.

© yokki-vans, 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 .claude/skills/hal-and-abstractions of yokki-vans/InkPointX.

Open the folder on GitHubat commit d272143

Compare with similar skills

Hal And Abstractions 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.

Hal And Abstractions compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Hal And Abstractions this skillyokki-vans/InkPointX107—~791Automated safety check: PassMIT
Impeccablebestofjs/bestofjs3.1k26 repos~2.6kAutomated safety check: PassMIT
Chatbox i18n Translatorchatboxai/chatbox42k—~508Automated safety check: PassGPL-3.0
Internationalization Workflow with i18niOfficeAI/AionUi33k1 repos~1.9kAutomated safety check: PassApache-2.0
Enforce Rules For I18nmoeru-ai/airi50k—~1.5kAutomated safety check: PassMIT
Claude Desktop Chinese Localizationjavaht/claude-desktop-zh-cn7.5k—~1.6kAutomated safety check: PassMIT

Similar skills

  • Impeccable

    bestofjs/bestofjs

    A skill your agent uses when the user wants to design, redesign, shape, critique, audit, polish, clarify, distill, harden, optimize, adapt, animate, colorize, extract, or otherwise improve a…

    3.1k GitHub starsUsed in 26 repos~2.6k tokens
    Frontend & DesignAuto-check passed
  • Chatbox i18n Translator

    chatboxai/chatbox

    Translates new or changed i18n keys from a Chatbox Pro diff, staged changes or a commit range, writing the locale JSON files directly with a built-in glossary.

    42k GitHub stars~508 tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed
  • Standards for keeping all user-facing text translatable: read the i18n config first, use namespaced keys, reuse shared strings and follow the key naming rules.

    33k GitHub starsUsed in 1 repo~1.9k tokens
    Frontend & DesignAuto-check passed
  • Review pending AIRI translations on Crowdin in a batch, then sync them into the repository.

    50k GitHub stars~1.5k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Claude Desktop Chinese Localization

    javaht/claude-desktop-zh-cn

    Adds missing Simplified and Traditional Chinese translations to the Claude Desktop Chinese patch across three layers, then checks how many mappings actually hit.

    7.5k GitHub stars~1.6k tokensUpdated 5 days ago
    Frontend & DesignAuto-check passed
  • Taro UI Guide

    jd-opensource/taro-ui

    Guides installing, configuring, styling and using taro-ui (At* components) in Taro apps for WeChat, Alipay, H5 and React Native.

    4.7k GitHub stars~1.3k tokensUpdated 16 days ago
    Frontend & DesignAuto-check passed

More from yokki-vans/InkPointX

  • Control Flow Clarity

    yokki-vans/InkPointX

    Branching and state-modeling clarity in C/C++. An agent skill from yokki-vans/InkPointX.

    107 GitHub stars~737 tokensUpdated 17 days ago
    Auto-check passed
  • Heap Discipline

    yokki-vans/InkPointX

    Memory allocation discipline for the ESP32-C3 (~380KB RAM, no PSRAM, single 48KB framebuffer).

    107 GitHub stars~889 tokensUpdated 17 days ago
    Auto-check passed
  • Refactor For Review

    yokki-vans/InkPointX

    Producing small, single-concern, reviewable changes. An agent skill from yokki-vans/InkPointX.

    107 GitHub stars~791 tokensUpdated 17 days ago
    Auto-check passed
  • Scope Discipline

    yokki-vans/InkPointX

    Feature-scope discipline for a dedicated e-reader (not a Swiss Army knife).

    107 GitHub stars~691 tokensUpdated 17 days ago
    Auto-check passed

Questions about Hal And Abstractions

What does Hal And Abstractions do?

Layering and abstraction discipline for the firmware. An agent skill from yokki-vans/InkPointX. Hal And Abstractions is an agent skill from yokki-vans/InkPointX. Layering and abstraction discipline for the firmware.

When should I use Hal And Abstractions?

Hal And Abstractions fits situations like: touching storage; any code that could reach into the SDK.

How do I install Hal And Abstractions in Claude Code?

Run `npx skills add yokki-vans/InkPointX --skill hal-and-abstractions -a claude-code`. Or copy the skill folder (.claude/skills/hal-and-abstractions in yokki-vans/InkPointX) into .claude/skills/hal-and-abstractions in your project. Claude Code loads it when a task matches its description.

How do I install Hal And Abstractions in Codex?

Run `npx skills add yokki-vans/InkPointX --skill hal-and-abstractions -a codex`. Or copy the skill folder (.claude/skills/hal-and-abstractions in yokki-vans/InkPointX) into .agents/skills/hal-and-abstractions in your project. Codex loads it when a task matches its description.

Can I use Hal And Abstractions 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 yokki-vans/InkPointX --skill hal-and-abstractions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/hal-and-abstractions, .gemini/skills/hal-and-abstractions, .github/skills/hal-and-abstractions and .opencode/skills/hal-and-abstractions in your project.

What does Hal And Abstractions need to run?

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

Does Hal And Abstractions 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 Hal And Abstractions 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 Hal And Abstractions use?

Hal And Abstractions 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 Hal And Abstractions use?

About 791 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 Hal And Abstractions?

Skills that share tags, products or a category with Hal And Abstractions: Impeccable (bestofjs/bestofjs, 3.1k stars), Chatbox i18n Translator (chatboxai/chatbox, 42k stars), Internationalization Workflow with i18n (iOfficeAI/AionUi, 33k stars) and Enforce Rules For I18n (moeru-ai/airi, 50k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Hal And Abstractions?

yokki-vans (a GitHub user) maintains it in yokki-vans/InkPointX, which has 107 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on September 24, 2026.

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