بنقرة واحدة
add-item
Add or edit a cosmetic/item in the dataset — fields, types, groups, image links, ids and guids.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Add or edit a cosmetic/item in the dataset — fields, types, groups, image links, ids and guids.
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Add a new instance of an existing (recurring) event — instance, spirit, tree, nodes, items, IAPs and shops.
Add a new Season (tier-format spirit trees) — season entry, guide + season spirits, tier-based spirit trees, tiers, nodes, items, IAPs and shops.
Add a Special Visit (Returning Spirits) — visit entry, per-spirit join entries, spirit trees, nodes and items.
Add a Traveling Spirit
| name | add-item |
| description | Add or edit a cosmetic/item in the dataset — fields, types, groups, image links, ids and guids. |
Task: Add one or more items (cosmetics and other unlockables) to the data files, or edit an existing item. This skill defines the item data model and conventions; other skills (traveling spirit, special visit, event instance, season) refer here when they add items.
Based on the SkyGame-Planner item contribution guide: https://github.com/Silverfeelin/SkyGame-Planner/wiki/Contributing-%E2%80%90-Items
src/assets/items/** only. Never touch generated files in /assets/**.guid (nanoid length 10 — npx nanoid -s 10) and, unless
told otherwise, a unique numeric id.src/interfaces/item.interface.ts for the authoritative shape (IItem, ItemType,
ItemSubtype, ItemGroup, IItemDye). The summary below is a guide, not a substitute.// #region ...) of neighbouring entries
in the target file. Follow the file's local one-line vs. multi-line object style.Each top-level folder under src/assets/ → one output file; subfolders are organizational.
Items are grouped by source:
| Source | File |
|---|---|
| Season spirits/trees | src/assets/items/seasons/<season>.jsonc |
| Events | src/assets/items/events/<file>.jsonc (may be a legacy slug — search by region/guid, don't guess) |
| Realms (base-game spirits) | src/assets/items/realms/<realm>.jsonc |
| Base game / other | src/assets/items/base.jsonc, other.jsonc, store.jsonc, friends.jsonc, unsorted.jsonc |
Add each item to the file matching where it is obtained. When a calling skill specifies the target file, use that.
node scripts/next-item-id.mjs once to get the starting numeric id, then increment
by 1 for each additional new item in this batch.id and guid — never duplicate them.IItem)guid (required) — new nanoid(10).id (required for new items) — see above.type (required) — an ItemType value. Determines the closet category:
HairAccessory, HeadAccessory, Hair, Mask, FaceAccessory,
Necklace, Outfit, Shoes, OutfitShoes, Cape.Held (held items/instruments), Furniture, Prop (placeable props).Emote, Stance, Call (honks), Spell, Music (music sheets).Quest, WingBuff, Special (candle blessings, cutscenes,
warps, random-trail-spell and other filler tree nodes).name (required) — the cosmetic's exact name. For spirit cosmetics use
"<spirit name> <cosmetic type>" (e.g. "Pointing Candlemaker Hair"). Check the
Sky: Children of the Light Wiki when unsure.subtype — Instrument (usable/playable held items) or FriendEmote (friend-only emotes).group — availability context: Elder (ascended-candle purchases), SeasonPass
(season pass exclusives), Ultimate (season hearts/ultimate gifts), Limited
(non-returning collabs/events).level — emote level. Add one item per level when an emote has multiple levels.sheet — music sheet reference (for Music items).order — sort order within its category; match the scale used by neighbours.icon — closet icon URL.previewUrl — larger preview image URL.dye (IItemDye) — dye slots: primary / secondary (each IItemDyeSpec, optional
cost), plus previewUrl and infoUrl. See below._wiki — { "href": "<wiki url with #anchor>" }.season on items — the resolver assigns it (and it only applies to season
trees and IAPs). Do not add reference arrays (nodes, iaps, etc.) — those are resolved
from the referencing entities.https://static.wikia.nocookie.net/...). Match the URL style of neighbouring items.https://sky-planner.com/assets/game/dyes/<slot>/<file>.jpg.
New dye preview images are added to the Planner's dyes folder via a separate PR.Example item (multi-line style):
{
"id": 3195,
"guid": "2cm-8PvvzE",
"type": "Prop",
"name": "Bulb Field Painting Prop",
"icon": "https://static.wikia.nocookie.net/.../icon.png",
"previewUrl": "https://static.wikia.nocookie.net/.../preview.png",
"_wiki": { "href": "https://sky-children-of-the-light.fandom.com/wiki/...#Prop" },
"order": 13100
}
Example dye block:
"dye": {
"previewUrl": "https://sky-planner.com/assets/game/dyes/cape/Base_green.jpg",
"primary": {}
}
node scripts/next-item-id.mjs) and mint a guid per new item.npm run json-build — it must succeed (enforces array-shaped files and globally unique
guids). Fix any duplicate-guid or syntax errors.npm test (needs a build first) to confirm the data parses and resolves.