---
name: octanejs-authoring-tsrx
description: "Write a new Octane component in .tsrx, convert JSX to .tsrx, or add scoped <style> blocks and themes. Use when creating a .tsrx file rather than editing one, because the path-scoped tsrx-authoring rule only fires once such a file is open."
license: "MIT"
metadata:
  decimalai-skill-id: "11ac70f5-ee4d-4d3f-8171-b983acc2eea9"
  decimalai-version-id: "d258a834-722c-4c30-abf7-ec2f5a94171a"
  decimalai-version: "2"
  decimalai-body-sha256: "35715238425ddd8dd5bd24a7163d4715cf74e92a08a4fa5f45c28e5f24b7ec23"
  decimalai-name: "octanejs/authoring-tsrx"
  decimalai-format: "1"
  decimalai-invocation: "model"
  decimalai-category: "frontend"
  decimalai-source: "https://app.decimal.ai/s/octanejs-authoring-tsrx@2/SKILL.md"
---
# Authoring a new `.tsrx` file

Read `.rulesync/rules/tsrx-authoring.md` now. It is the full reference and the
single home for this content: components and the `@{ … }` form, when a text hole
needs `{expr as string}`, the native delegated event model, the `@if`/`@for`/
`@switch`/`@try` directive blocks, refs as props, scoped styles and themes
(`<style>` scopes, `$class` class maps, `apply`), and the typing rules.

That file is a path-scoped rule, so it loads by itself once you open an existing
`.tsrx` file. It does not fire when you are writing the first one, which is what
this skill exists to cover.

Then read a nearby `.tsrx` file for house style before writing.
