Create Ryos App
ryokun6/ryos
Create new applications for ryOS following established patterns and conventions.
A skill your agent uses whenever the user wants to update a field on an existing Cabloy backend resource: add a new persisted field, refine validation, add enum-like constraints, attach or change…
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install cabloy/cabloy cabloy-resource-field-update --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .claude/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.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/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .claude/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-updateType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install cabloy/cabloy cabloy-resource-field-update --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .agents/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .agents/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install cabloy/cabloy cabloy-resource-field-update --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .cursor/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .cursor/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/cabloy/cabloy.git --path .agents/skills/cabloy-resource-field-update--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install cabloy/cabloy cabloy-resource-field-update --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .gemini/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .gemini/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install cabloy/cabloy cabloy-resource-field-updateInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .github/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .github/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install cabloy/cabloy cabloy-resource-field-update --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/cabloy/cabloy.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/cabloy-resource-field-update .opencode/skills/cabloy-resource-field-update && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "cabloy-resource-field-update" agent skill from https://github.com/cabloy/cabloy/tree/main/.agents/skills/cabloy-resource-field-update into .opencode/skills/cabloy-resource-field-update/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "cabloy-resource-field-update", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
cabloy-resource-field-updateA skill your agent uses whenever the user wants to update a field on an existing Cabloy backend resource: add a new persisted field, refine validation, add enum-like constraints, attach or change…
Cabloy Resource Field Update is an agent skill from cabloy/cabloy. Use this skill whenever the user wants to update a field on an existing Cabloy backend resource: add a new persisted field, refine validation, add enum-like constraints, attach or change ZovaRender.field / ZovaRender.cell metadata, decide whether vonaModule.fileVersion should change, or demonstrate a custom frontend renderer for a backend field. Trigger when the request is specifically about modifying an existing resource field thread rather than creating a new CRUD/resource thread. Prefer it for backend-first…
Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `evals/evals.json`, `references/custom-renderer-demo-checklist.md` and `references/field-update-decision-tree.md`).
It sits in Development, covering Project scaffolding. The repository describes itself as: Cabloy is a Node.js fullstack framework for AI vibe coding, with AI Spec-Driven Development guiding work from confirmed specs to verifiable delivery. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit b3d00ec. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Cabloy Resource Field Update loads about 3.4k tokens when it runs, and up to ~6.4k if it reads all its reference files. Until then it costs about 184 tokens; SKILL.md has 1,667 words of instructions outside code blocks.
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.
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.
The full file from cabloy/cabloy at commit b3d00ec, republished under its MIT licence (© cabloy). 1,667 words, ~3,419 tokens.
.claude/skills/cabloy-resource-field-update/SKILL.md (or your agent's skills folder). This skill also uses 5 other files; get the full folder from GitHub.Use this skill when the user wants to change a field on an existing Vona backend resource.
When the generated .zova-rest artifacts already contain the expected new keys or types but Vona still sees stale consumer types, treat that first as a local dependency drift problem rather than a source-editing problem.
In that situation:
npm run deps:vona.zova-rest artifacts already contain the expected changes but the stale behavior remains, rebuild vona/node_modules and reinstall dependenciesKeep this recovery rule visible during renderer-aware or contract-loop follow-up work. Do not keep debugging source-level renderer registrations until the local file-package installation state is known to be healthy.
fileVersion decision before persistence editsCheck the repository root for these marker files:
__CABLOY_BASIC____CABLOY_START__Interpretation:
__CABLOY_BASIC__ present → this is Cabloy Basic__CABLOY_START__ present → this is Cabloy StartThen confirm the request is about an existing resource field.
Use this skill for requests such as:
ZovaRender.field(...) / ZovaRender.cell(...)fileVersionDo not use this skill when the user is really asking to create a new module, bean, CRUD thread, page thread, or stale consumer diagnosis flow.
If the request is really about initial backend thread creation, prefer cabloy-backend-scaffold.
If the request is really about stale generated frontend/backend consumers, prefer cabloy-contract-loop.
If the request is mainly about choosing a workflow, prefer cabloy-workflow.
Branch the request into one of two cases.
Examples:
level: numberstatus: stringThis case affects persistence and versioning.
Examples:
ZovaRender.field(...)ZovaRender.cell(...)This case usually does not require a fileVersion bump, because the persisted field already exists.
fileVersion decision for new persisted fieldsIf the task is a new persisted field on an existing resource, ask whether vonaModule.fileVersion should be incremented before changing:
meta.version.tspackage.json fileVersionThen:
vonaModule.fileVersionmeta.version.tsImportant warning:
Then:
fileVersionBefore proposing or making edits, inspect the existing thread:
meta.version.tspackage.jsonAlso inspect the shared entrypoints first:
package.jsonnpm run vonanpm run zovaUse these references for compact support material:
references/field-update-decision-tree.mdreferences/follow-up-checklist.mdreferences/verification-checklist.mdTreat the entity as the primary field-definition surface.
Typical field-update changes belong here first:
@Api.field(...)v.required() / v.optional()v.title($locale(...))ZovaRender.order(...)For enum-like numeric or string values, prefer an explicit constrained schema such as:
z.union([z.literal(1), z.literal(2), z.literal(3)])Ordering rule:
schemaLike arguments fully order-independent@Api.field(...), keep that structure-defining schemaLike as the last argument unless a local pattern clearly requires otherwisev.object(...), v.array(...), v.optional(), v.nullable(), v.default(...), and preprocess/transform wrappers as structure-shaping, not metadata-onlyv.xxx(...) and ZovaRender.xxx(...) before the final structure-defining schemaLikeThen check whether DTOs are already inferred through patterns such as:
$Dto.create(...)$Dto.update(...)$Dto.get(...)If the DTOs are inferred from the entity/model chain, let the entity change propagate. Do not hand-edit DTO field lists unless the source clearly requires it.
Important serialization reminder:
v.serializerTransform(...), v.serializerExclude(), v.serializerReplace(...), v.serializerGetter(...), or v.serializerCustom(...), do not assume those transforms run by default@Core.serializer() before concluding that serializer metadata is brokenUse this metadata/query-contract branch when a persisted relation field remains an identity, but a resource list must filter or order it by a human-readable column on the related table. This is a metadata-only refinement when the foreign-key column already exists; do not increment fileVersion solely for this behavior.
Keep the entity field name and identity schema unchanged. Put the relation mapping on the entity field so inferred projections retain it:
v.filter({ table, joinType, joinOn, originalName, op }) maps the public relation field to the related display column;ZovaRender.column({ enableSorting: true }) exposes the table sort control when the list should support ordering;v.tableIdentity() (or the applicable identity schema).For a required relation, innerJoin is usually appropriate. When the relation is optional or unmatched base rows must remain visible, choose the join semantics explicitly instead of copying an inner-join example.
Keep the public query and order key equal to the foreign-key field name. In the select request DTO, retain that inferred field and use $makeSchema(...) only to change its query-input schema and renderer, usually to v.optional(), z.string(), and Cabloy Basic's basic-input:formFieldInput. Do not replace the entity storage schema with a string or add a parallel display-name parameter unless the API intentionally exposes separate ID and display-name filters.
Verify direct DTO metadata, the emitted optional text query parameter, absence of an unintended alternate parameter, visible sortable-column metadata, and endpoint filtering plus ascending/descending ordering. Confirm that filtering and ordering resolve to the intended related display column and inject the expected join.
See Existing Resource Field Update for the public pattern and links to the ORM and frontend query-flow guides.
If the field needs form or table rendering metadata, inspect shared renderers first.
Default preference order:
For enum-like values, apply an edition-aware default.
In Cabloy Basic, the usual default is:
ZovaRender.field('basic-select:formFieldSelect', { items, placeholder })ZovaRender.cell('basic-select:select', { items })In Cabloy Start:
start-select wrapper and its underlying component semantics before choosing renderer keys or copying Basic-specific select logicWhen using a field-rendering select component, default to providing a user-visible placeholder unless the UX clearly requires an always-preselected value.
In Cabloy Basic, prefer placeholder over artificial empty-item injection when the goal is to keep the select initially unchosen.
If the user explicitly wants to demonstrate the custom renderer workflow, branch into a frontend follow-up path.
Use these portable references:
references/custom-renderer-demo-checklist.mdWhen relevant and available in the active edition, repo-docs-internal/architecture/backend-resource-field-workflow.md may be consulted as optional maintainer rationale. Its absence must not block or alter this shared workflow.
Recommended shape:
@TableCell(...) bean for backend table-cell renderingdeps:vonaImportant warning:
ZovaRender.cell(...)@TableCell(...) beanIf titles, enum labels, or helper text are user-visible, update locale files in the same task.
Typical additions:
LevelLevelBeginner, LevelIntermediate, LevelAdvancedMinimum expected backend coverage usually includes:
For constrained enum-like fields, add a negative test such as:
Always end with a verification path matched to the scope.
Typical checks include:
npm run testnpm run tscnpm run buildv.serializer*, verify the action-level @Core.serializer() path with an API test, not only static field metadata inspectionWhen helpful, structure the response around these points:
fileVersion decision if neededKeep the response practical. The value of this skill is turning existing-resource field updates into the correct Cabloy decision tree with the right backend and renderer follow-up, not writing a broad architecture essay.
© cabloy, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 5 other files (references) in .agents/skills/cabloy-resource-field-update of cabloy/cabloy.
Open the folder on GitHubat commit b3d00ec
Cabloy Resource Field Update 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Cabloy Resource Field Update this skillcabloy/cabloy | 982 | — | ~3.4k | Automated safety check: Pass | MIT | |
| Create Ryos Appryokun6/ryos | 1.3k | — | ~3.7k | Automated safety check: Pass | AGPL-3.0 | |
| Starter Templatesinkline/inkline | 1.5k | — | ~1k | Automated safety check: Pass | None | |
| Docs SVG Kitgridaco/grida | 2.7k | — | ~5.6k | Automated safety check: Pass | Apache-2.0 | |
| Docouture Docs VersioningInditexTech/weavejs | 226 | — | ~655 | Automated safety check: Pass | Apache-2.0 | |
| Corvus Query Languagescorvus-dotnet/Corvus.JsonSchema | 199 | — | ~2.1k | Automated safety check: Pass | Apache-2.0 |
ryokun6/ryos
Create new applications for ryOS following established patterns and conventions.
inkline/inkline
Anatomy and maintenance of inkline-starter- repos and examples — the two starter flavors, what every starter must include, per-framework specifics, and the…
gridaco/grida
Author SVG figures for Grida docs — diff-able, version-controlled vector diagrams embedded in doc pages instead of screenshots.
InditexTech/weavejs
How to cut a release or a prerelease on a docouture Antora documentation site scaffolded with Versioned (Full History) mode: docouture version, docs/.release-version, and the docouture-release.yml…
corvus-dotnet/Corvus.JsonSchema
Work with JSONata, JMESPath, JsonLogic, and JSONPath query and transformation languages.
yonatangross/orchestkit
Scaffolds React components from a Claude Design handoff bundle and stops at files on disk: no stories, no tests, no pull request.
cabloy/cabloy
A skill your agent uses to create or maintain Cabloy suite specifications under repo-specs, including PRD, SRS, PDP/WBS, acceptance planning, progress, and suite ADRs.
cabloy/cabloy
A skill your agent uses whenever the user wants to plan a new business domain in this Cabloy repo, such as CRM, OA, training, ERP, or a similar long-lived domain.
cabloy/cabloy
This skill must be used only when the user explicitly invokes /cabloy-worktree-environment or explicitly asks to perform the named Cabloy worktree-environment setup.
cabloy/cabloy
This skill should be used when the user needs the Vona backend scaffold/extend path in this Cabloy repo, especially to choose the right npm run vona generator or CRUD command and the required…
cabloy/cabloy
A skill your agent uses whenever a Cabloy task crosses the Vona-to-Zova contract boundary: backend DTO, controller, validation, entity, inferred DTO, or OpenAPI changes that should drive SDK…
cabloy/cabloy
A skill your agent uses whenever the user wants the Zova frontend path in this Cabloy repo: create or extend pages, components, api or model beans, route/query/params work, metadata refresh…
Categories
A skill your agent uses whenever the user wants to update a field on an existing Cabloy backend resource: add a new persisted field, refine validation, add enum-like constraints, attach or change…. Cabloy Resource Field Update is an agent skill from cabloy/cabloy.fileVersion should change, or demonstrate a custom frontend renderer for a backend field.
Cabloy Resource Field Update fits situations like: the user wants to update a field on an existing Cabloy backend resource: add a new persisted field; refine validation; add enum-like constraints; change ZovaRender.field / ZovaRender.cell metadata.
Run `npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a claude-code`. Or copy the skill folder (.agents/skills/cabloy-resource-field-update in cabloy/cabloy) into .claude/skills/cabloy-resource-field-update in your project. Claude Code loads it when a task matches its description.
Run `npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a codex`. Or copy the skill folder (.agents/skills/cabloy-resource-field-update in cabloy/cabloy) into .agents/skills/cabloy-resource-field-update in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add cabloy/cabloy --skill cabloy-resource-field-update -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cabloy-resource-field-update, .gemini/skills/cabloy-resource-field-update, .github/skills/cabloy-resource-field-update and .opencode/skills/cabloy-resource-field-update in your project.
Going by SKILL.md and its folder, Cabloy Resource Field Update needs the command-line tools its instructions call (npm).
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Cabloy Resource Field Update is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 3k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Cabloy Resource Field Update: Create Ryos App (ryokun6/ryos, 1.3k stars), Starter Templates (inkline/inkline, 1.5k stars), Docs SVG Kit (gridaco/grida, 2.7k stars) and Docouture Docs Versioning (InditexTech/weavejs, 226 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
cabloy (a GitHub organization) maintains it in cabloy/cabloy, which has 982 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 9, 2026.
Source: cabloy/cabloy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.