Skip to content

Conversation

@bfollington
Copy link
Contributor

@bfollington bfollington commented Oct 22, 2025

  • Remove old commands
  • Add ct, lit-component and recipe-dev skills

Summary by cubic

Replaced the old command-based Claude prompts with three focused skills—ct, recipe-dev, and lit-component—to provide clearer, task-based guidance for CLI usage, recipe development, and UI components. This improves discoverability, consistency, and day-to-day developer workflows.

  • New Features

    • ct skill with CLI overview, practical workflows, and a command reference (plus well-known IDs).
    • recipe-dev skill covering concepts (cells, handlers), deploy/debug flows, and a concise workflow guide.
    • lit-component skill with component patterns, cell integration, theme system, and advanced patterns.
  • Migration

    • Update any references from .claude/commands/* to .claude/skills/* and use the new skill names in prompts.
    • No runtime impact; this is a documentation/authoring restructure.

Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

4 issues found across 23 files

Prompt for AI agents (all 4 issues)

Understand the root cause of the following 4 issues and fix them.


<file name=".claude/skills/lit-component/references/advanced-patterns.md">

<violation number="1" location=".claude/skills/lit-component/references/advanced-patterns.md:41">
Declare the `#unsubs` private field before using it in the `CTThemeProvider` example so the code compiles and matches the cleanup pattern described.</violation>
</file>

<file name=".claude/skills/ct/SKILL.md">

<violation number="1" location=".claude/skills/ct/SKILL.md:1">
This pull request removes the `.claude/commands/` directory but fails to update multiple files that still reference the old commands. Files like `.claude/agents/research-specialist.md`, `AGENTS.md`, and the root `README.md` contain hardcoded paths and instructions pointing to the deleted command files. This will lead to broken links and non-functional agent workflows.</violation>
</file>

<file name=".claude/skills/lit-component/references/component-patterns.md">

<violation number="1" location=".claude/skills/lit-component/references/component-patterns.md:38">
Hard-coding the computed class entries to true forces classes like `gap-undefined` when optional props are unset; gate each class with the corresponding property before using classMap.</violation>

<violation number="2" location=".claude/skills/lit-component/references/component-patterns.md:199">
Registering the element unconditionally with `customElements.define` will throw on module re-evaluation (e.g., during HMR or repeated tests); guard the registration before defining the element.</violation>
</file>

React with 👍 or 👎 to teach cubic. Mention @cubic-dev-ai to give feedback, ask questions, or re-run the review.


#setupSubscriptions() {
// Clean up previous subscriptions
for (const off of this.#unsubs) off();
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Declare the #unsubs private field before using it in the CTThemeProvider example so the code compiles and matches the cleanup pattern described.

Prompt for AI agents
Address the following comment on .claude/skills/lit-component/references/advanced-patterns.md at line 41:

<comment>Declare the `#unsubs` private field before using it in the `CTThemeProvider` example so the code compiles and matches the cleanup pattern described.</comment>

<file context>
@@ -0,0 +1,453 @@
+
+  #setupSubscriptions() {
+    // Clean up previous subscriptions
+    for (const off of this.#unsubs) off();
+    this.#unsubs = [];
+
</file context>
Fix with Cubic

@@ -0,0 +1,375 @@
---
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This pull request removes the .claude/commands/ directory but fails to update multiple files that still reference the old commands. Files like .claude/agents/research-specialist.md, AGENTS.md, and the root README.md contain hardcoded paths and instructions pointing to the deleted command files. This will lead to broken links and non-functional agent workflows.

Prompt for AI agents
Address the following comment on .claude/skills/ct/SKILL.md at line 1:

<comment>This pull request removes the `.claude/commands/` directory but fails to update multiple files that still reference the old commands. Files like `.claude/agents/research-specialist.md`, `AGENTS.md`, and the root `README.md` contain hardcoded paths and instructions pointing to the deleted command files. This will lead to broken links and non-functional agent workflows.</comment>

<file context>
@@ -0,0 +1,375 @@
+---
+name: ct
+description: Guide for using the ct (CommonTools) binary to interact with charms, recipes, and the Common Fabric. Use this skill when deploying recipes, managing charms, linking data between charms, or debugging recipe execution. Triggers include requests to &quot;deploy this recipe&quot;, &quot;call a handler&quot;, &quot;link these charms&quot;, &quot;get data from charm&quot;, or &quot;test this recipe locally&quot;.
</file context>
Fix with Cubic

}
}

globalThis.customElements.define("ct-button", CTButton);
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Registering the element unconditionally with customElements.define will throw on module re-evaluation (e.g., during HMR or repeated tests); guard the registration before defining the element.

Prompt for AI agents
Address the following comment on .claude/skills/lit-component/references/component-patterns.md at line 199:

<comment>Registering the element unconditionally with `customElements.define` will throw on module re-evaluation (e.g., during HMR or repeated tests); guard the registration before defining the element.</comment>

<file context>
@@ -0,0 +1,480 @@
+  }
+}
+
+globalThis.customElements.define(&quot;ct-button&quot;, CTButton);
+```
+
</file context>
Suggested change
globalThis.customElements.define("ct-button", CTButton);
globalThis.customElements.get("ct-button") ?? globalThis.customElements.define("ct-button", CTButton);
Fix with Cubic

override render() {
const classes = {
stack: true,
[`gap-${this.gap}`]: true,
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot Oct 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hard-coding the computed class entries to true forces classes like gap-undefined when optional props are unset; gate each class with the corresponding property before using classMap.

Prompt for AI agents
Address the following comment on .claude/skills/lit-component/references/component-patterns.md at line 38:

<comment>Hard-coding the computed class entries to true forces classes like `gap-undefined` when optional props are unset; gate each class with the corresponding property before using classMap.</comment>

<file context>
@@ -0,0 +1,480 @@
+  override render() {
+    const classes = {
+      stack: true,
+      [`gap-${this.gap}`]: true,
+      [`align-${this.align}`]: true,
+      [`justify-${this.justify}`]: true,
</file context>
Suggested change
[`gap-${this.gap}`]: true,
[`gap-${this.gap}`]: !!this.gap,
Fix with Cubic

@bfollington bfollington merged commit 0821654 into main Oct 22, 2025
9 checks passed
@bfollington bfollington deleted the feat/2025-10-22-first-skills branch October 22, 2025 05:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants