Borrowing it
Nothing to install: this file belongs to Hackbyrd/orbital-express. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/Hackbyrd/orbital-express/main/.claude/skills/create-feature/SKILL.mdgit clone --depth 1 https://github.com/Hackbyrd/orbital-expressWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/hackbyrd/orbital-express/create-feature)<a href="https://agentmods.dev/skills/hackbyrd/orbital-express/create-feature"><img src="https://agentmods.dev/badge/skills/hackbyrd/orbital-express/create-feature/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/hackbyrd/orbital-express/create-feature"><img src="https://agentmods.dev/badge/skills/hackbyrd/orbital-express/create-feature.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00074 | $0.01437 |
| Opus 5.5 | $0.00030 | $0.00575 |
| Sonnet 5.5 | $0.00015 | $0.00287 |
| Haiku 4.5 | $0.00007 | $0.00144 |
Grade A, and why
create-feature scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 37 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Create a feature end-to-end (Path A — new table + folder)
Build a brand-new feature: a new database table → a new feature folder. Feature folder names are singular PascalCase (Order, not Orders). For editing an existing feature/adding columns, use the modify-feature skill. These compose — a single product feature often needs a new table AND changes to existing ones; do both (plan all schema changes together in Step 0, then run this skill per new table and modify-feature per existing table touched). Full lifecycle: docs/workflow.md. Rules: docs/conventions.txt + README.
Do the steps in this order: schema → scaffold → model → migration → routes → controller → actions/tasks → helpers/services → test → run. The model/migration come right after the scaffold (the table must exist before anything builds on it). This is the SAME process as modify-feature — the only differences there are that you skip the whole-folder scaffold (the folder exists, but you still scaffold new actions/tasks/mailers) and use yarn migration (ALTER) instead of yarn model (create table).
0. Plan first (get sign-off before scaffolding)
- Design the table + columns and write them into
database/schema.sql(the column-order/naming template is at the top). Booleansis/has/can/does; FKs<entity>Id; carry the owner FK onto descendants; named indexes. - Decide the actions (endpoints) and tasks (background jobs) and which roles use them.
- Present the schema + action/task plan and get a quick sign-off (this is the product/eng boundary). Then execute the rest autonomously.
Steps
- Schema: design the table + columns in
database/schema.sqland get sign-off (Step 0). - Scaffold:
yarn gen <Feature>(whole folder + adds the model todatabase/sequence.js), then scaffold its actions/tasks/mailers (-a/-t/-m). Never hand-create — always scaffold.- Remove the generator's default action/task immediately after:
yarn del <Feature> -a V1Exampleandyarn del <Feature> -t V1ExampleTask. Keeptests/helper.test.js; it is standard structure. Never usermdirectly —yarn delmaintains the indexes. - Run
yarn repair <Feature> --dry-run, review it, thenyarn repair <Feature>. Repair never overwrites existing files and reports wiring ambiguity.
- Remove the generator's default action/task immediately after:
- Model: fill in
app/<Feature>/model.jsby hand fromschema.sql:id=DataTypes.UUID+defaultValue: () => uuidv7()(require{ v7: uuidv7 }from'uuid') +primaryKey+validate: { isUUID: 7 }; regular columns (FKs go inassociate, not the attributes block); optionstimestamps: true,paranoid: true,freezeTableName: true, explicit static PascalCase pluraltableName: '<Plural>'(use the real irregular plural when needed, never assume<Feature>s),defaultScopeexcludingsensitiveData;indexesnamed{Table}_{col}_{idx|unique}using that exact tableName (index every FK);associatewith explicitonDelete/onUpdate;getSensitiveData()/getPrivateData()if it has sensitive fields. The test DB syncs from the model, so it must exist before tests run. - Migration: create the table migration — see
add-migration(yarn model→<ts>-create-<Feature>-model.js, transaction-wrapped, attrs + named indexes matching the model, by hand). - Routes: add
router.all('/v1/<plural>/<action>', controller.V1X)inapp/<Feature>/routes.js(lowercase, no separators). Root routes, models, workers, and errors auto-discover complete feature folders. - Controller: thin method per route — pick the action by role/device (
req.admin/req.user/req.device),res.status(result.status).json(result),next(error)on throw. Version+action name only (role/device live on the actions). - Actions and/or tasks: write each scaffolded action — see
add-action/add-query-action— and task — seeadd-task(register processors inworker.js). Add supporting code as the logic needs: constants (add-constant), error codes (add-error-code), i18n (add-locale+yarn lang), mailers (add-mailer). - Helpers and/or services: extract pure logic into the feature
helper.js, or the globalhelpers/if shared across features; write/extend a global service (services/) when wrapping a third party / shared infra. - Test (see
write-tests): an integration test per action + a test per task (every error code, who-cannot); ahelper.test.jsfor feature helpers; andtest/helpers//test/services/for any global helper/service you touched. Add fixtures (add-fixtures):test/fixtures/fix1/<feature>.js+yarn sql fix1(+ dev seed indatabase/seed/set1/if useful). - Run checks/tests:
yarn conventions:check,npx jest app/<Feature>/tests --runInBand(Postgres + Redis up), thenyarn test. Finish with the mandatoryreview-conventionsself-audit.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 2mo ago First seen · 37 lines · 74 tokens per session scan A c91be1257ef5
create-feature is a skill published in the GitHub repository Hackbyrd/orbital-express (15 stars, last pushed 2mo ago), licensed MIT. It adds 74 tokens to every session and 1,437 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
event-store-design
Design and implement event stores for event-sourced systems. Use when building event sourcing infrastructure, choosing event store technologies, or implementing event persistence patterns.
platform-custom-field-generate
Use when users create, generate, or validate Salesforce Custom Field metadata. Trigger on custom fields, field types, Roll-Up Summary, Master-Detail/Lookup relationships, formula fields, picklists, dependent (controlling) picklists, referencing a value set from a field, or scoping picklist values per record type; also…
field-service-sobject-create-configure
Headless 360 REST API deployment step for creating sObject records. Handles describe-based field discovery, required-field derivation, entity-relationship ordering, and composite graph transactions. Use this skill when a designer skill (or a user directly) needs to create sObject records after design confirmation…
durable-objects
Build, debug, or review Cloudflare Durable Objects code for persistent state and coordination.
nornicdb-grpc
Drive NornicDB over gRPC — the Qdrant-compatible surface (Collections, Points, Snapshots) plus the additive NornicSearch service. Use when ingesting via Qdrant SDKs, migrating from Qdrant, or running hybrid text+vector search from a non-Bolt client. Covers connection, RPC catalog, collection→database mapping…
output-dev-credentials
Store and reference encrypted secrets in Output SDK workflows using @outputai/core/credentials. Use when integrating API keys, database passwords, or third-party tokens.