Agent skill

Add Component Property

by IgniteUI in IgniteUI/igniteui-webcomponents

Add a reactive property to an existing Lit web component with proper decorators, types, tests, specification updates, and documentation

MITAuto-check passedDevelopment

Install Add Component Property

skills CLI
$ npx skills add IgniteUI/igniteui-webcomponents --skill add-component-property -a claude-code

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

GitHub CLI
$ gh skill install IgniteUI/igniteui-webcomponents add-component-property --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/IgniteUI/igniteui-webcomponents.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/add-component-property .claude/skills/add-component-property && 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
add-component-property
GitHub stars
170
Token cost
~1.9k tokens
SKILL.md length
727 words
Files
1
Skills in repo
13
Repo updated
First seen
Licence
MIT

At a glance

Add a reactive property to an existing Lit web component with proper decorators, types, tests, specification updates, and documentation

  • Works in 7 steps: Declare the property → Write the description → React to the change → …
  • Tasks that involve Technical documentation
  • SKILL.md covers Required Context, Steps, Validation Checklist and Common Pitfalls, plus 1 more section
  • Calls npm

What it does

Add Component Property is an agent skill from IgniteUI/igniteui-webcomponents. Add a reactive property to an existing Lit web component with proper decorators, types, tests, specification updates, and documentation

Its SKILL.md is about 1.9k 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 Development, covering Technical documentation. The repository describes itself as: Ignite UI for Web Components is a complete library of UI components, giving you the ability to build modern web applications using encapsulation and the concept of reusable… The licence is MIT.

When your agent uses it

  • Tasks that involve Technical documentation

Example prompts

  • “/add-component-property”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Declare the property
  2. Write the description
  3. React to the change
  4. Add tests
  5. Update the specification
  6. Regenerate the story metadata
  7. Verify

What it can do on your machine

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

    Shell commands in SKILL.md call:

    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    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.

  • 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

Add Component Property loads about 1.9k tokens when it runs. Until then it costs about 40 tokens; SKILL.md has 727 words of instructions outside code blocks.

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

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 IgniteUI/igniteui-webcomponents at commit a6f3e2c, republished under its MIT licence (© IgniteUI). 727 words, ~1,890 tokens.

Download SKILL.mdSave it as .claude/skills/add-component-property/SKILL.md (or your agent's skills folder).
name
add-component-property
description
Add a reactive property to an existing Lit web component with proper decorators, types, tests, specification updates, and documentation

Add Component Property

Adds a reactive property together with its JSDoc, tests, spec update and generated metadata. The rules are in Properties and Attributes and API Documentation.

Related: create-new-component, update-component-styles.

Required Context

  • Component to change
  • Name and type: camelCase property, kebab-case attribute
  • Default value: booleans default to false
  • Reflection: only for primitives that affect styling or accessibility
  • Description: ships in the public API docs

Steps

1. Declare the property

Put it in //#region Public attributes and properties:

ts
/**
 * The style variant of the component.
 * @attr
 * @default 'primary'
 */
@property({ reflect: true })
public variant: StyleVariant = 'primary';

/**
 * Whether user interaction with the component is disabled.
 * @attr
 * @default false
 */
@property({ type: Boolean, reflect: true })
public disabled = false;

/**
 * The number of items rendered per page.
 * @attr items-per-page
 * @default 10
 */
@property({ type: Number, attribute: 'items-per-page' })
public itemsPerPage = 10;

/** The items rendered by the component. */
@property({ attribute: false })
public items: Array<Item> = [];
  • A true boolean default cannot be turned off from markup. Rename the property instead (enabled → disabled).
  • Objects and arrays get attribute: false and are never reflected.
  • Spell out the attribute for multi-word properties and HTML look-alikes (readOnly → readonly).
  • A read-only value is a getter, not a readonly @property.
2. Write the description

The JSDoc goes as-is into custom-elements.json, Storybook and the framework wrappers:

  • No igc- tag names in prose. Write "the select", not igc-select.
  • No "The label attribute of…" and no Gets/Sets.
  • A boolean starts with "Whether …" and describes the true state. Check the implementation, because hide* and disable* names invert the sentence.
  • Use present tense. Do not use "will".
3. React to the change

If only the template uses the value, read it in render(). For other cases:

NeedUse
Clamp, normalize or coerce incoming values@coercedProperty({ transform }) below @property
Side effect on every set (e.g. validation)@coercedProperty({ onChange }) below @property
Derived state before renderwillUpdate(), guarded by changedProperties.has()
Side effect that needs the DOMupdate(), guarded, and call super.update()
ts
import { coercedProperty } from '#internals/decorators/coerced-property.js';

@property({ type: Number })
@coercedProperty<number, IgcRatingComponent>({
  transform: ({ value }) => clamp(value, 0, 100),
})
public max = 100;

Use @coercedProperty instead of a hand-written backing-field accessor pair. Keep the field initializer, because onChange does not run for it. Keep hand-written accessors only for a computed getter.

In a form-associated control, a property that is part of constraint validation (min, pattern, maxLength, …) must re-validate on change. Reuse the static _revalidate config (onChange: ({ host }) => host._validate()) as src/components/input/input.ts does.

4. Add tests

Test the default value and a programmatic change after elementUpdated(). Test the attribute only as far as the decorator allows:

  • An attribute property: setting the attribute updates the property.
  • A property with reflect: true: a property change updates the attribute.
  • attribute: false: no attribute tests.

If the property changes the rendered semantics, extend the existing a11y audit. Do not add a separate one.

5. Update the specification

A new property changes the public API, so it also changes src/components/[name]/spec.md. Use Keeping it current:

  • Add a row to ### Properties and attributes with the name, attribute, reflects, type, default, and the same description as the JSDoc.
  • Add the new tests to ## Test scenarios under their describe block, and renumber.
  • Add a row to ## Revision history.
  • If applicable, update the keyboard, ARIA, localization, developer experience, and assumptions and limitations sections, and the TOC entry of any new heading.

To deprecate a property, keep its row and mark it with the version and the replacement.

Show full SKILL.md (257 more words)Show less
6. Regenerate the story metadata
bash
npm run cem && npm run build:meta

Do not edit the // region default block of stories/[name].stories.ts. If the control does not appear, the story was skipped: the filename does not match the tag, or the region fence is missing (this fails with no warning). Then use the property in the hand-written story templates.

7. Verify
bash
npm run check && npm run test

Validation Checklist

  • Declared in the public region, with the correct decorator options
  • Booleans default to false. Complex types use attribute: false.
  • @attr and @default present. The description follows step 2.
  • Coercion and validation use @coercedProperty. Lifecycle hooks are guarded.
  • Tests cover the default, a change and, if the decorator allows, the attribute
  • spec.md: API row, test scenarios renumbered, revision history row
  • cem and build:meta run. The story template uses the property.
  • check and test pass. CHANGELOG updated if the property is user-visible.

Common Pitfalls

SymptomCause / Fix
Attribute cannot be turned off in markupThe boolean defaults to true. Rename it.
[object Object] in the DOMA complex type without attribute: false
'false' behaves as true{ type: Boolean } is missing
Attribute is propertynameSet attribute: 'property-name' explicitly
onChange skips the first real setThe field initializer was removed. Keep = undefined or a default.
Story control missing or description oldbuild:meta did not run, the story was skipped, or the region was edited
Spec numbering jumpsScenarios were added without renumbering

Reference Examples

  • src/components/badge/badge.ts: reflected string, boolean and union properties
  • src/components/input/input.ts: @coercedProperty re-validation of constraint properties
  • src/components/rating/rating.ts: @coercedProperty transform for clamping
  • src/components/combo/combo.ts: complex, non-attribute properties
  • src/components/badge/spec.md: a short spec whose API tables track the properties

© IgniteUI, 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 .agents/skills/add-component-property of IgniteUI/igniteui-webcomponents.

Open the folder on GitHubat commit a6f3e2c

Compare with similar skills

Add Component Property 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.

Add Component Property compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Add Component Property this skillIgniteUI/igniteui-webcomponents170—~1.9kAutomated safety check: PassMIT
Diagram Designcathrynlavery/diagram-design45k1 repos~7.5kAutomated safety check: PassMIT
Simple Englishmoeru-ai/airi50k2 repos~4.6kAutomated safety check: PassMIT
Get API Docs with chubandrewyng/context-hub14k2 repos~775Automated safety check: PassMIT
Doc SyncJetBrains/ideavim10k2 repos~2.6kAutomated safety check: PassMIT
Mailspring App ScreenshotsFoundry376/Mailspring18k—~1.5kAutomated safety check: PassGPL-3.0

Similar skills

  • Diagram Design

    cathrynlavery/diagram-design

    Creates branded diagrams, from architecture, flowchart and sequence to charts and maps, as self-contained HTML with inline SVG, with import from draw.io, Mermaid and Excalidraw.

    45k GitHub starsUsed in 1 repo~7.5k tokens
    DevelopmentAuto-check passed
  • Simple English

    moeru-ai/airi

    Write or rewrite technical text with the rules of ASD-STE100 Simplified Technical English so it is clear, unambiguous, and free of AI slop.

    50k GitHub starsUsed in 2 repos~4.6k tokens
    DevelopmentAuto-check passed
  • Get API Docs with chub

    andrewyng/context-hub

    Fetches current documentation for third-party APIs and SDKs with the chub CLI before the agent writes code against them, instead of relying on remembered API shapes.

    14k GitHub starsUsed in 2 repos~775 tokens
    DevelopmentAuto-check passed
  • Doc Sync

    JetBrains/ideavim

    Official

    Keeps IdeaVim documentation in sync with code changes. An agent skill from JetBrains/ideavim.

    10k GitHub starsUsed in 2 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Mailspring App Screenshots

    Foundry376/Mailspring

    Captures screenshots of the running Mailspring dev app for docs, PRs or visual checks by launching it with a debugging port, driving the UI and clipping to an element.

    18k GitHub stars~1.5k tokensUpdated today
    DevelopmentAuto-check passed
  • Draw.io Diagram Studio

    Agents365-ai/drawio-skill

    Creates and edits editable draw.io diagrams from descriptions, code, infrastructure files, SQL and API schemas, with sync, review, test and export tools.

    10k GitHub stars~2.4k tokensUpdated 6 days ago
    DevelopmentAuto-check: notes

More from IgniteUI/igniteui-webcomponents

All 13 skills in this repo
  • Igniteui Wc Customize Component Theme

    IgniteUI/igniteui-webcomponents

    Theme and style Ignite UI Web Components (and igniteui-react) apps using CSS custom properties, optional Sass, and the igniteui-theming MCP server.

    170 GitHub stars~4.3k tokensUpdated yesterday
    Auto-check passed
  • Igniteui Wc Generate From Image Design

    IgniteUI/igniteui-webcomponents

    Implement application views from design images (screenshots, mockups, wireframes) using Ignite UI Web Components, with the igniteui-cli and igniteui-theming MCP servers for component discovery…

    170 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Igniteui Wc Integrate With Framework

    IgniteUI/igniteui-webcomponents

    Install and integrate Ignite UI Web Components packages into React, Angular, Vue 3, LitElement, or vanilla JS/HTML apps, detecting the framework and applying framework-specific setup (package…

    170 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Create New Component

    IgniteUI/igniteui-webcomponents

    Create a new Lit web component following project conventions, including specification, component class, styles, tests, Storybook story, and exports

    170 GitHub stars~3k tokensUpdated yesterday
    Auto-check passed
  • Igniteui Wc Choose Components

    IgniteUI/igniteui-webcomponents

    Identify the right Ignite UI Web Components (igniteui-webcomponents, grids, charts, dock manager, React wrappers) for a UI requirement and point to official docs, examples, and API references.

    170 GitHub stars~4.6k tokensUpdated yesterday
    Auto-check passed
  • Igniteui Wc Figma To App

    IgniteUI/igniteui-webcomponents

    Builds Ignite UI Web Components views from Figma designs, supporting Indigo.Design kits, third-party kits (Material 3, Fluent 2, shadcn/ui, Untitled UI, in-house), and plain frames.

    170 GitHub stars~7.2k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Add Component Property

What does Add Component Property do?

Add a reactive property to an existing Lit web component with proper decorators, types, tests, specification updates, and documentation. Add Component Property is an agent skill from IgniteUI/igniteui-webcomponents.

When should I use Add Component Property?

Add Component Property fits situations like: tasks that involve Technical documentation.

How do I install Add Component Property in Claude Code?

Run `npx skills add IgniteUI/igniteui-webcomponents --skill add-component-property -a claude-code`. Or copy the skill folder (.agents/skills/add-component-property in IgniteUI/igniteui-webcomponents) into .claude/skills/add-component-property in your project. Claude Code loads it when a task matches its description.

How do I install Add Component Property in Codex?

Run `npx skills add IgniteUI/igniteui-webcomponents --skill add-component-property -a codex`. Or copy the skill folder (.agents/skills/add-component-property in IgniteUI/igniteui-webcomponents) into .agents/skills/add-component-property in your project. Codex loads it when a task matches its description.

Can I use Add Component Property 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 IgniteUI/igniteui-webcomponents --skill add-component-property -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-component-property, .gemini/skills/add-component-property, .github/skills/add-component-property and .opencode/skills/add-component-property in your project.

What does Add Component Property need to run?

Going by SKILL.md and its folder, Add Component Property needs the command-line tools its instructions call (npm).

Does Add Component Property access the network?

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.

Is Add Component Property 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 Add Component Property use?

Add Component Property 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 Add Component Property use?

About 1.9k tokens (SKILL.md is roughly 7.6k 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 Add Component Property?

Skills that share tags, products or a category with Add Component Property: Diagram Design (cathrynlavery/diagram-design, 45k stars), Simple English (moeru-ai/airi, 50k stars), Get API Docs with chub (andrewyng/context-hub, 14k stars) and Doc Sync (JetBrains/ideavim, 10k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Add Component Property?

IgniteUI (a GitHub organization) maintains it in IgniteUI/igniteui-webcomponents, which has 170 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 7, 2026.

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