diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 59e7f001c53..2012ef1f828 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -138,6 +138,16 @@ jobs: # shared CI-boot paths trigger it. - *shared - 'packages/bxl/**' + # The card-authoring skill's claims are pinned by a BXL suite + # that reads the skill file, so an edit to the skill has to run + # that suite too. + - 'packages/boxel-cli/plugin/skills/bxl-authoring/**' + # That suite also asserts the host suites the skill cites still + # exist. `bxl-test` runs unconditionally on main, so without + # these a host-only rename would merge green and redden main on + # a commit whose own CI never ran the failing suite. + - 'packages/host/tests/integration/bxl-*' + - 'packages/host/tests/helpers/cards/bxl-*' bench-amd: # The AMD transpiler is a runtime-common module with no # cross-workspace deps that affect its wall-time, so the diff --git a/packages/boxel-cli/plugin/README.md b/packages/boxel-cli/plugin/README.md index db087d002ef..6c79179aa1c 100644 --- a/packages/boxel-cli/plugin/README.md +++ b/packages/boxel-cli/plugin/README.md @@ -83,26 +83,27 @@ Authored upstream in [`cardstack/boxel-skills`](https://github.com/cardstack/box -_Copied from [`cardstack/boxel-skills@v0.1.0`](https://github.com/cardstack/boxel-skills/tree/v0.1.0) by_ `pnpm build:skills`. _Edit upstream, not here._ - -| Skill | Use it for | -| ------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `/boxel-cli:boxel` | Use whenever creating, reading, or editing Boxel cards (.gts files), card instances (.json), fields, templates, queries, or anything in a Boxel realm. Required for any Boxel coding work — covers CardDef, FieldDef, contains/linksTo, templates, formats, queries, and core patterns. Companion skills - boxel-design (visual decisions), boxel-ui-guidelines (template UI), source-code-editing (SEARCH/REPLACE), boxel-environment (running the Boxel app). | -| `/boxel-cli:boxel-create-edit-cards` | Use when choosing the right Boxel host command combination to create new cards or edit existing instances from the AI assistant. | -| `/boxel-cli:boxel-design` | Use when DECIDING a Boxel card's visual language — mood, palette, typography direction, asset direction, one visual signature, the design-playbook process. This is the taste/decision layer. NOT for implementing tokens or CSS inside templates (that's boxel-ui-guidelines) and NOT for creating/editing Theme, StyleReference, or BrandGuide card artifacts (that's boxel-theme-development). | -| `/boxel-cli:boxel-environment` | Use when running, navigating, or orchestrating tasks inside the live Boxel application — switching between Code Mode and Interact Mode, calling host commands (search-cards, switch-submode, show-card, patch-fields, apply-markdown-edit, reindex, etc.), or any operation that drives the Boxel UI. Activates for Boxel-app runtime work, not for writing card definitions (see boxel for that). | -| `/boxel-cli:boxel-file-def` | Use when adding or working with file-typed fields (FileDef, ImageDef, MarkdownDef, PngDef, CsvFileDef). Activates when a card needs to reference an image, document, or other file asset. | -| `/boxel-cli:boxel-flavored-markdown` | Use when authoring or editing Boxel Flavored Markdown (BFM) content — content fields rendered as rich markdown with :card/::card directives, mermaid diagrams, etc. | -| `/boxel-cli:boxel-markdown-format` | Use when authoring a `markdown` template (static markdown format) on a CardDef or FieldDef — defaults, markdownEscape, and markdown helpers. | -| `/boxel-cli:boxel-patterns` | Use when the user names an outcome ("show a chart", "let users pick a color", "build a dashboard", "summarize comments", "embed AI image generation", "lay out a moodboard") and you need a working code example to start from. This skill is the bridge between user intent and the existing patterns in Boxel realms. Index your search by what the user wants to DO, not by which CardDef/FieldDef class to extend. Activates when the user asks "do we have a pattern for…", "how is X typically done", or names a feature outcome that isn't in core syntax. | -| `/boxel-cli:boxel-skill-authoring` | Use when creating or editing a user-authored Boxel skill — a markdown file whose `boxel.kind: skill` frontmatter makes it loadable by AI assistant rooms. Covers the SKILL.md format contract, the frontmatter schema, tool declarations (codeRef forms, requiresApproval), placement conventions, and how to verify the skill indexed correctly. Activates for "write me a skill", "add a tool to my skill", or a skill that isn't showing up in the skill chooser. | -| `/boxel-cli:boxel-theme-development` | Use when the deliverable is a theme ARTIFACT — creating, converting, auditing, or patching Theme, StructuredTheme, StyleReference, DetailedStyleReference, or BrandGuide cards; importing/exporting Google DESIGN.md design-system briefs; logo/mark usage and functional palettes. NOT for deciding a card's visual language (boxel-design) and NOT for applying tokens inside card templates (boxel-ui-guidelines). | -| `/boxel-cli:boxel-ui-component-discovery` | MANDATORY before writing any UI in a `.gts` template. Search the catalog for a boxel-ui component Spec and reuse it. Fall back to raw HTML only when no matching spec exists, and surface the gap when you do. | -| `/boxel-cli:boxel-ui-guidelines` | Use when IMPLEMENTING UI in Boxel templates — applying var(--\*) theme tokens in