airails skill
airails installs skill bundles and AGENTS.md for Java 25, MicroProfile, platform-native web apps and migrating legacy systems
- 66 ★ on the repository
- Last commit
- MIT
Extended access
Why this level
- Installation runs a script downloaded from the network and writes skill files into agent directories
- The skills steer the agent while it generates code and tests, so review the result before committing
Install
- Works in
In your terminal, with SkillFoxx CLI
npx skillfoxx add skills/airailsDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- Installation runs a script downloaded from the network and writes skill files into agent directories
- The skills steer the agent while it generates code and tests, so review the result before committing
This is third-party code. Review the repository files before installing.
What it does
airails is the home of Spec-Driven BCE: development conventions, `SKILLS.md` skills and `AGENTS.md` for building modern Java and web applications and for migrating legacy enterprise systems onto that stack. The skills cover the Boundary-Control-Entity pattern, layout of business components by layer, MicroProfile servers, Java CLI apps, web components, PWA, continuous testing and documentation with Mermaid and drawio diagrams. The `airails` wizard selects, downloads and installs released bundles in one run, globally into the home directory or into one project so the skills are checked in with it. It needs JDK 25 or newer and every answer can be a flag, which is how agents and CI run it: `-project . -agents claude -bundles web,sbce -yes`. `-list` shows bundles and `-help` the options. Supported agents are claude, vibe, kiro, copilot, codex and goose. Bundles combine and overlap by design: `java-server`, `java-cli`, `web`, `migrations`, `fullstack`, `sbce`, `documentation` and `skills` with every skill. The core of each stack bundle includes bce, bce-reviewer, system-tests and the documentation skills, so a web project does not carry Java or migration skills in its context.
Who it is for. Java and standards-based web developers who want an agent to follow shared BCE conventions, and teams migrating legacy enterprise systems.
Good fit when
- A new MicroProfile server app has to be built from business components with Boundary, Control and Entity layers
- A web project without frameworks has to use web components, static serving and PWA by shared rules
- A legacy enterprise system has to be dissected, its business components carved out and rewritten with characterization tests
- An agent and CI install the skills in one command with `-bundles` and `-yes` and no prompts
Not a fit when
- The project is not Java or web platform: the skills describe exactly that stack
- There is no JDK 25: the wizard runs through `java --source 25`
- The BCE architectural style and spec-first approach do not suit you
Example request
Build the orders module with the bce skill: boundary, control and entity in separate packages, tests through system-testsLimitations
- The wizard starts from a one-liner `curl ... | java --source 25 /dev/stdin`, which downloads and runs a script; read it before running and make sure you trust the author.
- The wizard installs only the latest release and never touches a clone; a working tree has a separate `installSkills`.
- A project skill wins over a global one of the same name, and bundles overlap, so installing two at once writes identical files twice.
- JDK 25 or newer is required; six agents from the README table are supported and others install by copying folders.
How to disable. `./installSkills -l` lists installed skills and `./installSkills -d <name>` deletes one; add `-p <folder>` for a project. You can also just delete the skill folder from the agent directory.
FAQ
How do I install airails?
Run `curl -fsSL https://raw.githubusercontent.com/AdamBien/airails/main/airails | java --source 25 /dev/stdin`. The wizard asks for scope, agents and bundles; JDK 25 is required.
How do I install a bundle without prompts?
Pass flags: `-project . -agents claude -bundles web,sbce -yes`. That is how agents and CI run the wizard.
Which bundles exist?
`java-server`, `java-cli`, `web`, `migrations`, `fullstack`, `sbce`, `documentation` and `skills` with everything. `-list` prints the list.
What is Spec-Driven BCE?
A development approach on the Boundary-Control-Entity pattern with a system description before code: the `sbce` bundle adds the sbce, ears-tests, capability-brief and system-brief skills.
Where do the skills go?
For claude into `~/.claude/skills` globally and `.claude/skills` in a project, for codex into `~/.agents/skills` and `.agents/skills`. Other directories are in the README table.
Discussion
No questions or reviews yet.
Related
SkillsTech Leads Club Agent Skills
Agent Skills
A vetted skill registry with a CLI that installs into twenty-plus agents and an MCP server for on-demand skill lookup
Dozens of mizchi's agent skills: frontend audits, AWS, Cloudflare, SQL, Playwright and OpenTelemetry, installed one by one
A skill set against AI slop: UI and typography audits, change review, releases, docs and SEO.
Builder Skills
Skills for agents
A set of small skills from Builder.io for agent work habits: visual plans and diff recaps, docs-first checks, cross-agent review and clean status updates
dotnet-skills: a skill installer for .NET
dotnet-skills
An installer for a .NET skill catalog that picks skills from project files for Claude Code, Codex, Copilot and Gemini CLI
Brooklyn skills: 25 portable agent skills for pull requests, triage, cleanup, UI checks and research
README in short
The README names the repository the home of Spec-Driven BCE, describes the install wizard and a table of agents with skill directories, then lists bundles with contents and ways to install from a clone and manage what is installed.
README badge
Original SKILL.md
--- name: bce description: Generic, composable architecture rules for the Boundary-Control-Entity (BCE/ECB) pattern — business components, layer responsibilities, package structure, and cross-component relationships. Technology-neutral; meant to be composed with language- or framework-specific skills (e.g. microprofile-server, web-components, aws-cdk, java-cli-app). Use when creating, generating, scaffolding, writing, or reviewing code organized as business components with boundary/control/entity layers. Triggers on "BCE", "ECB", "Boundary-Control-Entity", "business component", "BC layout", "BC structure", "boundary layer", "control layer", "entity layer", or requests to organize, package, refactor, or review code along BCE lines. --- ## Pattern - derived from Ivar Jacobson's Boundary-Control-Entity (OOSE, 1992) - the unit of organization is the business component (BC): it owns one responsibility and consists of the layers boundary, control, entity — only those it needs - dependencies point downward only: boundary may use control and entity, control may use entity; never upward ## Package / Directory Structure - path: `[ORGANIZATION].[PROJECT].[BC].[boundary|control|entity]`; the top-level package reflects the application's name or responsibility - BCs are direct children of the top-level package; `boundary`, `control`, `entity` appear only inside a BC - reserve the top-level package for trivial single-class plumbing; anything with domain or protocol semantics, more than one operation, or expected growth is a BC ## Business Components (BC) - a BC is a domain concept, or a shared concern with a name that is reused by other BCs - a control-only BC is valid when its responsibility is procedural; a boundary exists only when a facade is justified - BCs may depend on each other in both directions, including entity-to-entity references; aim for maximal cohesion and minimal coupling — excessive cross-BC references or shared configuration are a signal to split, merge, or rebalance - create new BCs with minimal logic and essential fields only ## Boundary Layer - boundary classes are coarse-grained facades that adapt external protocols, transports, or UI events to internal operations - they are the only entry points from outside the system; UI, protocols, transports, and system tests never reach control or entity directly - cross-cutting concerns that wrap an operation (transactions, authorization checks, request/response mapping) live here, never in control or entity ## Control Layer - procedural business logic in stateless, function-like units - callable by the BC's own boundary and directly by other BCs - a control method is public when called from outside the control package, package-private (or the language equivalent) otherwise; visibility does not express a cross-BC contract ## Entity Layer - domain objects that hold state and the behavior on that state; never anemic data holders - model enumerable value objects as enums or the language's closed-set equivalent ## Naming - name packages, classes, modules, and files after their responsibilities, never after technical concerns - no meaningless suffixes: `*Impl`, `*Service`, `*Manager`, `*Creator`, `*Control`