agentleFS
Thank-you-LinusThank-you-Linus/Linus-Dashboard/.claude/skills/implement/SKILL.md

implement

Skill214 starsChanged 31 days agoMITView on GitHub

Implement approved plans with precision and quality for Linus Dashboard Home Assistant integration. Use when implementing features, executing approved plans, writing code following standards, or developing new functionality.

191 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use setup-ts-deep-modules, ask-matt and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • liufeng1976Skill

    setup-ts-deep-modules

    Wire dependency-cruiser into a TypeScript repo so each package is a deep module — implementation hidden in subfolders, reachable only through its entry-point files. User-invoked.

    Also in 43 projects that use this

  • GoogleSkill

    ask-matt

    Ask which skill or flow fits your situation. A router over the skills in this repo.

    Also in 91 projects that use this

  • RoentekSkill

    loop-me

    Grill me about specs for the workflows I want to build, within this workspace.

    Also in 50 projects that use this

  • AWSSkill

    to-questionnaire

    Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

    Also in 88 projects that use this

  • ryotaroh180105Skill

    claude-handoff

    Hand the current conversation off to a fresh background agent that picks up the work immediately.

    Also in 42 projects that use this

  • GoogleSkill

    to-spec

    Turn the current conversation into a spec and publish it to the project issue tracker — no interview, just synthesis of what you've already discussed.

    Also in 168 projects that use this

  • +3 more from google

The file

Show its rules and text

We split this skill into the rules it gives an agent

19 rules. 0 are common, 18 are distinctive, and 1 is very specific to this project.

  • 0

    Common

    Most of the 171 edited versions we read keep these.

  • 18

    Distinctive

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Before starting, load these files:

    line 20
  2. Distinctive:

    Read relevant existing files

    line 38
  3. Distinctive:

    Add comprehensive type hints

    line 48
  4. Distinctive:

    Verify functionality in UI

    line 61
  5. Distinctive:

    Check browser console for errors

    line 62
  6. Distinctive:

    Check HA logs for warnings

    line 63
  7. Distinctive:

    Document any issues encountered

    line 68
  8. Distinctive:

    Use strict TypeScript mode

    line 154
  9. Distinctive:

    Follow HA integration patterns

    line 164
  10. Distinctive:

    Before marking task as complete:

    line 202
  11. Distinctive:

    Missing async/await: - Always await async functions

    line 218
  12. Distinctive:

    Wrong imports: - Use relative imports correctly

    line 219
  13. Distinctive:

    Missing type hints: - All functions need types

    line 220
  14. Distinctive:

    Not following patterns: - Check existing code first

    line 222
  15. Very specific:

    Forgetting to build: - Run npm run build after changes

    line 223
  16. Distinctive:

    Not testing: - Always test in real Home Assistant

    line 224
  17. Distinctive:

    Check existing similar code

    line 230
  18. Distinctive:

    Check Home Assistant documentation

    line 232
  19. Distinctive:

    Ask for clarification on unclear requirements

    line 234

“Common” is measured: kept by at least 6 in 10 of the 171 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Implement Approved Plans

Implement approved plans for Linus Dashboard, a Home Assistant custom integration with TypeScript frontend and Python backend.


Your Role

You are a senior full-stack developer implementing features for Linus Dashboard. You have an APPROVED PLAN that breaks down the work into specific tasks. Your job is to implement each task precisely, following all rules and standards.


Context to Load

Before starting, load these files:

  1. .aidriven/memorybank.md - Project architecture
  2. .aidriven/rules/clean_code.md - Coding standards
  3. .aidriven/rules/homeassistant_integration.md - HA patterns
  4. The approved plan document

Implementation Process

For Each Task:

1. Read the Task Description

  • Understand what needs to be done
  • Identify files to create/modify
  • Note any dependencies

2. Check Existing Code

  • Read relevant existing files
  • Understand current patterns
  • Identify integration points

3. Write Code

Follow standards:

  • TypeScript/Python best practices
  • Apply all rules from .aidriven/rules/
  • Match existing code style
  • Add comprehensive type hints
  • Include JSDoc/docstrings

4. Build and Validate (TypeScript)

npm run build
npm run type-check
npm run lint:check

5. Test Manually

  • For backend changes: Restart Home Assistant
  • For frontend changes: Clear browser cache (Ctrl+Shift+R)
  • Verify functionality in UI
  • Check browser console for errors
  • Check HA logs for warnings

6. Mark Task Complete

  • Update task status
  • Note any deviations from plan
  • Document any issues encountered

Common Patterns

Adding a New View (TypeScript)

// src/views/XxxView.ts
import { AbstractView } from "./AbstractView";
import { XxxCard } from "../cards/XxxCard";

export class XxxView extends AbstractView {
  /**
   * Create the Xxx view
   */
  async render(): Promise<void> {
    // Implementation
  }
}

Adding a New Card (TypeScript)

// src/cards/XxxCard.ts
import { AbstractCard } from "./AbstractCard";

export class XxxCard extends AbstractCard {
  /**
   * Render the card
   */
  protected async renderContent(): Promise<HTMLElement> {
    // Implementation
  }
}

Adding a New Service (Python)

# custom_components/linus_dashboard/services.py
async def async_setup_services(hass: HomeAssistant) -> None:
    """Set up Linus Dashboard services."""

    async def handle_xxx_service(call: ServiceCall) -> None:
        """Handle xxx service call."""
        # Implementation

    hass.services.async_register(
        DOMAIN,
        "xxx_service",
        handle_xxx_service,
        schema=XXX_SERVICE_SCHEMA,
    )

Adding a New Sensor (Python)

# custom_components/linus_dashboard/sensor.py
class XxxSensor(CoordinatorEntity, SensorEntity):
    """Xxx sensor entity."""

    def __init__(
        self,
        coordinator: DataUpdateCoordinator,
        entry: ConfigEntry,
    ) -> None:
        """Initialize the sensor."""
        super().__init__(coordinator)
        self._entry = entry
        self._attr_unique_id = f"{entry.entry_id}_xxx"

    @property
    def native_value(self) -> StateType:
        """Return the state."""
        return self.coordinator.data.get("xxx")

Quality Standards

TypeScript Code

  • Use strict TypeScript mode
  • Proper type annotations
  • JSDoc comments for public APIs
  • No any types without justification
  • Follow existing patterns

Python Code

  • Type hints on all functions
  • Docstrings in Google style
  • Async/await for I/O operations
  • Follow HA integration patterns
  • Proper error handling

Testing

# TypeScript
npm run build
npm run type-check
npm run lint

# Manual testing in HA
# 1. Restart HA
# 2. Check logs
# 3. Verify functionality

Files Organization

Frontend (TypeScript):

  • src/views/ - View components
  • src/cards/ - Card components
  • src/chips/ - Chip components
  • src/popups/ - Popup components
  • src/helpers/ - Helper utilities
  • src/linus-strategy.ts - Main strategy

Backend (Python):

  • custom_components/linus_dashboard/ - Integration root
  • custom_components/linus_dashboard/const.py - Constants
  • custom_components/linus_dashboard/coordinator.py - Data coordinator
  • custom_components/linus_dashboard/sensor.py - Sensor platform

Checklist for Each Task

Before marking task as complete:

  • Code written following standards
  • Type hints/annotations added
  • Documentation added (JSDoc/docstrings)
  • Build passes (TypeScript)
  • No linting errors
  • Manually tested in Home Assistant
  • No errors in browser console
  • No errors in HA logs
  • Code follows existing patterns
  • Task notes updated

Common Mistakes to Avoid

  1. Missing async/await - Always await async functions
  2. Wrong imports - Use relative imports correctly
  3. Missing type hints - All functions need types
  4. No error handling - Wrap risky operations in try/catch
  5. Not following patterns - Check existing code first
  6. Forgetting to build - Run npm run build after changes
  7. Not testing - Always test in real Home Assistant

When Stuck

  1. Check existing similar code
  2. Review .aidriven/memorybank.md
  3. Check Home Assistant documentation
  4. Review integration patterns
  5. Ask for clarification on unclear requirements

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.