Skip to content

Add GitHub Copilot instructions #38837

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 9 commits into from
May 1, 2025
Merged

Add GitHub Copilot instructions #38837

merged 9 commits into from
May 1, 2025

Conversation

frenck
Copy link
Member

@frenck frenck commented May 1, 2025

Proposed change

Adds GitHub Copilot instructions to the documentation repository.
It contains general information on how we format things, the language we use, the audience, YAML style guides, structure, SEO, LLMO, and much more.

Type of change

  • Spelling, grammar or other readability improvements (current branch).
  • Adjusted missing or incorrect information in the current documentation (current branch).
  • Added documentation for a new integration I'm adding to Home Assistant (next branch).
  • Added documentation for a new feature I'm adding to Home Assistant (next branch).
  • Removed stale or deprecated documentation.

Additional information

  • Link to parent pull request in the codebase:
  • Link to parent pull request in the Brands repository:
  • This PR fixes or closes issue: fixes #

Checklist

  • This PR uses the correct branch, based on one of the following:
    • I made a change to the existing documentation and used the current branch.
    • I made a change that is related to an upcoming version of Home Assistant and used the next branch.
  • The documentation follows the Home Assistant documentation standards.

Summary by CodeRabbit

  • Documentation
    • Introduced a comprehensive documentation and style guide outlining language, formatting, SEO, and YAML standards for contributors to the Home Assistant website and documentation.
    • Provides detailed instructions on tone, accessibility, Markdown and Liquid usage, and content structure to ensure clarity and consistency for a broad audience.

@home-assistant home-assistant bot added the current This PR goes into the current branch label May 1, 2025
Copy link

netlify bot commented May 1, 2025

Deploy Preview for home-assistant-docs ready!

Name Link
🔨 Latest commit b7b2cd9
🔍 Latest deploy log https://app.netlify.com/sites/home-assistant-docs/deploys/6813a9d207b00f0008296ad7
😎 Deploy Preview https://deploy-preview-38837--home-assistant-docs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify site configuration.

Copy link
Contributor

coderabbitai bot commented May 1, 2025

Warning

Rate limit exceeded

@frenck has exceeded the limit for the number of commits or files that can be reviewed per hour. Please wait 22 minutes and 53 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

📥 Commits

Reviewing files that changed from the base of the PR and between 6d0ee5f and b7b2cd9.

📒 Files selected for processing (1)
  • .github/copilot-instructions.md (1 hunks)
📝 Walkthrough

Walkthrough

A new comprehensive documentation and style guideline file has been added for the Home Assistant project website. This document outlines the expected writing style, audience considerations, language and formatting conventions, technical setup, markdown and Liquid templating usage, SEO practices, YAML standards, and specific content structuring requirements for contributors. It serves as a centralized reference to ensure consistency, clarity, and quality across all documentation and website content.

Changes

File(s) Change Summary
.github/copilot-instructions.md Added a new documentation and style guide detailing writing standards, formatting, SEO, YAML, and content structuring for the Home Assistant website and documentation.

Sequence Diagram(s)

No sequence diagram generated as the changes are limited to documentation and do not affect control flow or application logic.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Generate unit testing code for this file.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai generate unit testing code for this file.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and generate unit testing code.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai or @coderabbitai title anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (7)
.github/copilot-instructions.md (7)

5-6: Add missing definite article

In “writer of documentation and content for website of the Home Assistant project,” add “the” before “website” to read “…content for the website of the Home Assistant project.”

🧰 Tools
🪛 LanguageTool

[grammar] ~6-~6: It appears that an article is missing.
Context: ...writer of documentation and content for website of the Home Assistant project. Your job...

(IN_WEBSITE)


15-17: Simplify and fix verb agreement

The phrase “In this day and age, where LLMs are becoming more and more common… However, this must never comes…” is wordy and contains a verb‐agreement error. Consider:

-In today’s environment of popular LLM usage, slightly optimizing our content for LLMs is preferred. However, this must never comes at the cost of readability for humans.
+With LLMs now widely used, slight LLM optimization is preferred—but must never come at the expense of human readability.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


24-28: Reduce wordiness in audience description

Rather than “a large number of non-technical users,” use a more concise expression. For example:

-We now have a large number of non-technical users who use Home Assistant.
+We now have numerous non-technical Home Assistant users.
🧰 Tools
🪛 LanguageTool

[style] ~27-~27: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


42-47: Fix preposition and duplicate clause

  • Change “The content is our website is written in American-English” → “The content on our website is written in American English.”
  • Consider combining or removing the duplicate mention of style guide (“We follow the Microsoft Style Guide…”), as it’s repeated later.
🧰 Tools
🪛 LanguageTool

[style] ~46-~46: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


56-58: Correct preposition for perspective

Change “Write in a second-person perspective” → “Write from a second-person perspective.”

🧰 Tools
🪛 LanguageTool

[grammar] ~56-~56: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


71-72: Fix article before “paragraph”

Use “a paragraph” instead of “an paragraph”:

-If an paragraph/markdown isn't written in a flowing text style, it must be adjusted.
+If a paragraph/Markdown block isn’t written in a flowing-text style, adjust it.
🧰 Tools
🪛 LanguageTool

[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)


98-99: Add comma after introductory phrase

Insert a comma after “For linting”:

-For linting we use remark and textlint.
+For linting, we use remark and textlint.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~99-~99: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 80c068c and 6783f45.

📒 Files selected for processing (1)
  • .github/copilot-instructions.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.github/copilot-instructions.md

[grammar] ~6-~6: It appears that an article is missing.
Context: ...writer of documentation and content for website of the Home Assistant project. Your job...

(IN_WEBSITE)


[style] ~14-~14: ‘In this day and age’ might be wordy. Consider a shorter alternative.
Context: ...that our content can be found as well. In this day and age, where LLMs are becoming more and more ...

(EN_WORDINESS_PREMIUM_IN_THIS_DAY_AND_AGE)


[uncategorized] ~17-~17: This verb does not appear to agree with the subject. Consider using a different form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[style] ~27-~27: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


[style] ~37-~37: Consider using an alternative to strengthen your wording.
Context: ...chnical details available for those who want to know more, but not overwhelm the non...

(WANT_KEEN)


[style] ~46-~46: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


[grammar] ~56-~56: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)


[style] ~82-~82: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~86-~86: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~99-~99: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


[duplication] ~129-~129: Possible typo: you repeated a word.
Context: ...d/unsupported devices - Prerequisites - Configuration - Configuration options - Supported functionality - Act...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~372-~372: You might be missing the article “the” here.
Context: ...east a second level heading. - We use - maker for unordered lists and . mar...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[uncategorized] ~372-~372: You might be missing the article “the” here.
Context: ...e use - maker for unordered lists and . marker for ordered lists. - We use `_...

(AI_EN_LECTOR_MISSING_DETERMINER_THE)


[grammar] ~385-~385: Possible typo. Did you mean “a” or “My”?
Context: ...s/tools/quick-bar/#my-links). Selecting a My link opens that page in their own Home ...

(DT_PRP)


[style] ~579-~579: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~582-~582: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)


[typographical] ~637-~637: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...tten above the line the comment applies to, otherwise lines may become hard to read on smalle...

(THUS_SENTENCE)


[typographical] ~715-~715: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...pings can be written in different styles, however, we only allow the use of block style ma...

(HOWEVER_SENTENCE)


[formatting] ~783-~783: Consider inserting a comma after an introductory phrase for better readability.
Context: ...ferent handling of the ending new line. In those cases the use of the strip operator (|-, `>...

(IN_THAT_CASE_COMMA)


[uncategorized] ~804-~804: This verb does not appear to agree with the subject. Consider using a different form.
Context: ...our condition options in automations, is optional and an empty list [] by defa...

(AI_EN_LECTOR_REPLACEMENT_VERB_AGREEMENT)


[grammar] ~826-~826: The verb form seems incorrect.
Context: ...e types are exempted from this rule, as is makes our examples more readable: - Entity I...

(IS_VBZ)


[style] ~900-~900: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...r a list of scalars Home Assistant has a lot of places that access both a scalar value ...

(A_LOT_OF)


[uncategorized] ~929-~929: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...t both a mapping or a list of mappings. Well known examples are: condition, action, `s...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~954-~954: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...templates are powerful, but they can be really confusing or hard to understand for a less experi...

(EN_WEAK_ADJECTIVE)


[style] ~954-~954: To elevate your writing, try using a synonym here.
Context: ...ul, but they can be really confusing or hard to understand for a less experienced us...

(HARD_TO)


[uncategorized] ~959-~959: This verb may not be in the correct form. Consider using a different form for this context.
Context: ...documentation to avoid our website code to confuse it for the Liquid syntax. Avoiding temp...

(AI_EN_LECTOR_REPLACEMENT_VERB_FORM)


[uncategorized] ~959-~959: The preposition “with” seems more likely in this position.
Context: ...to avoid our website code to confuse it for the Liquid syntax. Avoiding templates i...

(AI_EN_LECTOR_REPLACEMENT_PREPOSITION)


[typographical] ~1074-~1074: Conjunctions like ‘but’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ...cripts, or dashboard examples is allowed; but keep it at clarifications, comments, or smal...

(CONJUNCTION_AFTER_SEMICOLON)

🪛 markdownlint-cli2 (0.17.2)
.github/copilot-instructions.md

67-67: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


74-74: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


77-77: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


84-84: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


86-86: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


88-88: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


126-126: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


361-361: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


364-364: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


746-746: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - home-assistant-docs
  • GitHub Check: Header rules - home-assistant-docs
  • GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (1)
.github/copilot-instructions.md (1)

1-4: Great addition overall

The new Copilot instructions are thorough, well-organized, and align with Home Assistant’s documentation standards.

@frenck frenck mentioned this pull request May 1, 2025
8 tasks
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

♻️ Duplicate comments (1)
.github/copilot-instructions.md (1)

80-91: List formatting violations
Nested lists here aren’t surrounded by blank lines (MD032) and use inconsistent indentation (MD007). This duplicates a prior comment—please insert blank lines around each list and use two-space indents for nested items.

🧰 Tools
🪛 LanguageTool

[duplication] ~80-~80: Possible typo: you repeated a word.
Context: ...for example", or "such as" instead. - Lists - Lists should be surrounded by blank lines. ...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~83-~83: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~87-~87: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)

81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


85-85: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


87-87: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


89-89: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)

🧹 Nitpick comments (6)
.github/copilot-instructions.md (6)

15-17: Streamline wording & fix verb form

  • Replace “In this day and age” with “Today” to reduce wordiness.
  • Change “this must never comes” to “this must never come.”
🧰 Tools
🪛 LanguageTool

[grammar] ~17-~17: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


42-49: Clarify geo-level phrasing
Consider “Looking at our global audience, we have many users in the United States and Europe…” to tighten wording.

🧰 Tools
🪛 LanguageTool

[style] ~46-~46: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


56-57: Preposition misuse
Use “from a second-person perspective” instead of “in a second-person perspective.”

🧰 Tools
🪛 LanguageTool

[grammar] ~56-~56: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


67-72: Article and paragraph grammar

  • Replace “If an paragraph/markdown” with “If a paragraph/Markdown.”
  • Ensure “paragraph” capitalization is consistent.
🧰 Tools
🪛 LanguageTool

[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)

🪛 markdownlint-cli2 (0.17.2)

67-67: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


73-74: Trailing space detected
Line 74 ends with an extra space. Remove trailing spaces to satisfy lint rule MD009.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

74-74: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


361-365: Add blank lines around fenced code blocks
Fenced code blocks must be preceded and followed by blank lines (MD031) for readability. Please insert a blank line before and after the YAML example.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

362-362: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


365-365: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6783f45 and fb8e853.

📒 Files selected for processing (1)
  • .github/copilot-instructions.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.github/copilot-instructions.md

[grammar] ~6-~6: It appears that an article is missing.
Context: ...writer of documentation and content for website of the Home Assistant project. Your job...

(IN_WEBSITE)


[style] ~14-~14: ‘In this day and age’ might be wordy. Consider a shorter alternative.
Context: ...that our content can be found as well. In this day and age, where LLMs are becoming more and more ...

(EN_WORDINESS_PREMIUM_IN_THIS_DAY_AND_AGE)


[grammar] ~17-~17: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


[style] ~27-~27: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


[style] ~37-~37: Consider using an alternative to strengthen your wording.
Context: ...chnical details available for those who want to know more, but not overwhelm the non...

(WANT_KEEN)


[style] ~46-~46: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


[grammar] ~56-~56: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)


[duplication] ~80-~80: Possible typo: you repeated a word.
Context: ...for example", or "such as" instead. - Lists - Lists should be surrounded by blank lines. ...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~83-~83: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~87-~87: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~100-~100: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


[duplication] ~130-~130: Possible typo: you repeated a word.
Context: ...d/unsupported devices - Prerequisites - Configuration - Configuration options - Supported functionality - Act...

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~386-~386: Possible typo. Did you mean “a” or “My”?
Context: ...s/tools/quick-bar/#my-links). Selecting a My link opens that page in their own Home ...

(DT_PRP)


[style] ~580-~580: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~583-~583: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)


[typographical] ~638-~638: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...tten above the line the comment applies to, otherwise lines may become hard to read on smalle...

(THUS_SENTENCE)


[typographical] ~716-~716: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...pings can be written in different styles, however, we only allow the use of block style ma...

(HOWEVER_SENTENCE)


[formatting] ~784-~784: Consider inserting a comma after an introductory phrase for better readability.
Context: ...ferent handling of the ending new line. In those cases the use of the strip operator (|-, `>...

(IN_THAT_CASE_COMMA)


[grammar] ~827-~827: The verb form seems incorrect.
Context: ...e types are exempted from this rule, as is makes our examples more readable: - Entity I...

(IS_VBZ)


[style] ~901-~901: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...r a list of scalars Home Assistant has a lot of places that access both a scalar value ...

(A_LOT_OF)


[uncategorized] ~930-~930: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...t both a mapping or a list of mappings. Well known examples are: condition, action, `s...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~955-~955: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...templates are powerful, but they can be really confusing or hard to understand for a less experi...

(EN_WEAK_ADJECTIVE)


[style] ~955-~955: To elevate your writing, try using a synonym here.
Context: ...ul, but they can be really confusing or hard to understand for a less experienced us...

(HARD_TO)


[typographical] ~1075-~1075: Conjunctions like ‘but’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ...cripts, or dashboard examples is allowed; but keep it at clarifications, comments, or smal...

(CONJUNCTION_AFTER_SEMICOLON)

🪛 markdownlint-cli2 (0.17.2)
.github/copilot-instructions.md

67-67: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


74-74: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


77-77: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


85-85: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


87-87: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


89-89: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


127-127: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


362-362: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


365-365: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


747-747: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

⏰ Context from checks skipped due to timeout of 90000ms (3)
  • GitHub Check: Redirect rules - home-assistant-docs
  • GitHub Check: Header rules - home-assistant-docs
  • GitHub Check: Pages changed - home-assistant-docs
🔇 Additional comments (30)
.github/copilot-instructions.md (30)

1-4: Solid initial structure
The high-level headings and scope (job description, audience, language, tech stack) provide a clear framework for contributors.


19-20: Approve reader-first emphasis
The reminder to prioritize human readability over LLM optimization is clear and well-placed.


22-31: Target audience section is concise
Good overview of the evolving user base; no changes needed here.

🧰 Tools
🪛 LanguageTool

[style] ~27-~27: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


34-39: Balance of technical vs. non-technical content
This paragraph clearly explains the intended tone and depth—looks great.

🧰 Tools
🪛 LanguageTool

[style] ~37-~37: Consider using an alternative to strengthen your wording.
Context: ...chnical details available for those who want to know more, but not overwhelm the non...

(WANT_KEEN)


92-99: Tech-stack description is clear
The notes on Jekyll, Markdown, Liquid, GitHub, and Netlify accurately reflect the implementation.


110-119: Content structure guidelines are solid
Progressive disclosure and clear sectioning will help readers navigate—no edits needed.


126-133: Integration pages outline
The strict section order is well documented; the example aligns with standards.

🧰 Tools
🪛 LanguageTool

[duplication] ~130-~130: Possible typo: you repeated a word.
Context: ...d/unsupported devices - Prerequisites - Configuration - Configuration options - Supported functionality - Act...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)

127-127: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


143-164: Front-matter example is comprehensive
All required ha_ fields and related links are present; good for copy/paste.


354-360: Markdown section is well defined
CommonMark compliance, list-vs-table guidance, and code block limits are clearly stated.


379-386: Liquid templating instructions are accurate
Examples for My links and term references correctly demonstrate usage.

🧰 Tools
🪛 LanguageTool

[grammar] ~386-~386: Possible typo. Did you mean “a” or “My”?
Context: ...s/tools/quick-bar/#my-links). Selecting a My link opens that page in their own Home ...

(DT_PRP)


419-426: Acronyms guidance is clear
Tooltip-based abbreviations align with existing glossary usage.


441-449: Icon usage examples look correct
All mdi: references follow Iconify conventions.


467-482: Collapsible block examples are good
Using {% details %} is preferable over raw HTML—solid demonstration.


484-500: Text box variants are well documented
{% tip %}, {% note %}, and {% important %} are clearly illustrated.


501-541: Reusable text blocks are thoroughly covered
Config flow snippets and YAML blocks provide exact patterns for contributors.


543-562: Image inclusion guidance is complete
Markdown and HTML caption examples are well detailed for cross-device readability.


571-579: Video embedding syntax is correct
The <lite-youtube> example clearly shows videoStartAt usage.


580-592: SEO guidance is spot-on
Emphasis on natural language, LSI/NLP techniques, and internal linking is well balanced.

🧰 Tools
🪛 LanguageTool

[style] ~580-~580: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~583-~583: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)


593-610: YAML indentation & boolean rules
Indentation and boolean simplicity align with YAML 1.2; examples are crystal clear.


633-642: YAML comment style is precise
Matching indentation and clear capitalize-and-space conventions are well illustrated.

🧰 Tools
🪛 LanguageTool

[typographical] ~638-~638: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...tten above the line the comment applies to, otherwise lines may become hard to read on smalle...

(THUS_SENTENCE)


664-689: Sequence style recommendations
Block vs. flow style examples correctly show the preferred block style.


710-727: Mapping style is consistent
Block style mappings only—examples follow the rule.

🧰 Tools
🪛 LanguageTool

[typographical] ~716-~716: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...pings can be written in different styles, however, we only allow the use of block style ma...

(HOWEVER_SENTENCE)


729-742: Null value guidance is accurate
Implicit nulls encourage cleaner examples.


744-757: String quoting rules are clear
Double-quote preference and exception list are well articulated.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

747-747: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)


760-780: Multi-line string styles
Literal vs. folded styles examples align with best practices.


789-819: Home Assistant-specific YAML is thorough
Default value omission, exemptions for entity IDs, and template avoidance are all comprehensively covered.


821-851: Service action target examples
Demonstrates modern target usage vs. legacy properties—excellent clarity.

🧰 Tools
🪛 LanguageTool

[grammar] ~827-~827: The verb form seems incorrect.
Context: ...e types are exempted from this rule, as is makes our examples more readable: - Entity I...

(IS_VBZ)


953-960: Template usage guidelines
Shorthand vs. expressive condition syntax examples are appropriately contrasted.

🧰 Tools
🪛 LanguageTool

[style] ~955-~955: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...templates are powerful, but they can be really confusing or hard to understand for a less experi...

(EN_WEAK_ADJECTIVE)


[style] ~955-~955: To elevate your writing, try using a synonym here.
Context: ...ul, but they can be really confusing or hard to understand for a less experienced us...

(HARD_TO)


1000-1007: Template string length & quoting
Good demonstration of folded style and single vs. double quotes inside templates.


1065-1072: Other instructions are clear
The “do not invent” directive and scope of permissible improvements are well defined.

@frenck frenck mentioned this pull request May 1, 2025
8 tasks
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (9)
.github/copilot-instructions.md (9)

10-11: Remove stray “means” for clarity in job description.
The phrase “As a writer for online content, means you are also an expert in SEO…” contains an extra “means.” It should read:
“As a writer for online content, you are also an expert in SEO…”


11-11: Hyphenate “SEO-friendly.”
The term “SEO friendly” should be hyphenated as “SEO-friendly” to match standard usage and internal style.


15-17: Fix verb form after modal “must.”
Change “must never comes” to “must never come” to use the base form after a modal verb.

🧰 Tools
🪛 LanguageTool

[grammar] ~17-~17: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


42-43: Correct sentence structure and remove extra “is.”
The sentence reads “The content is our website is written in American-English.” It should be:

The content on our website is written in American English.
Also remove the hyphen in “American English.”


67-71: Ensure blank lines around lists.
Per MD032, lists must be surrounded by blank lines. Please add a blank line before and after each list block in this section to satisfy linting rules.

🧰 Tools
🪛 LanguageTool

[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)

🪛 markdownlint-cli2 (0.17.2)

67-67: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


74-74: Remove trailing spaces.
This line has trailing whitespace (MD009). Please remove any extra spaces at the end of the line.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

74-74: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


80-91: Standardize nested list indentation.
Nested list items under “Lists” are indented by 4 spaces but should use 2 spaces per level (MD007). Please adjust sub-item indentations to 2 spaces for consistency.

🧰 Tools
🪛 LanguageTool

[duplication] ~80-~80: Possible typo: you repeated a word.
Context: ...for example", or "such as" instead. - Lists - Lists should be surrounded by blank lines. ...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~83-~83: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~87-~87: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)

🪛 markdownlint-cli2 (0.17.2)

81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


85-85: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


87-87: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


89-89: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


362-366: Surround fenced code blocks with blank lines.
Code fences here (and elsewhere) need a blank line before and after to comply with MD031. Please ensure each ``` block is properly delimited by surrounding blank lines.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

362-362: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


365-365: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


580-580: Avoid “SEO optimization” tautology.
The heading “## SEO optimization” repeats “optimization” (the “O” in SEO). Consider renaming to simply “## SEO.”

🧰 Tools
🪛 LanguageTool

[style] ~580-~580: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between fb8e853 and 4d61ad5.

📒 Files selected for processing (1)
  • .github/copilot-instructions.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.github/copilot-instructions.md

[style] ~14-~14: ‘In this day and age’ might be wordy. Consider a shorter alternative.
Context: ...that our content can be found as well. In this day and age, where LLMs are becoming more and more ...

(EN_WORDINESS_PREMIUM_IN_THIS_DAY_AND_AGE)


[grammar] ~17-~17: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


[style] ~27-~27: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


[style] ~37-~37: Consider using an alternative to strengthen your wording.
Context: ...chnical details available for those who want to know more, but not overwhelm the non...

(WANT_KEEN)


[style] ~46-~46: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


[grammar] ~56-~56: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


[misspelling] ~71-~71: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)


[duplication] ~80-~80: Possible typo: you repeated a word.
Context: ...for example", or "such as" instead. - Lists - Lists should be surrounded by blank lines. ...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~83-~83: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~87-~87: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~100-~100: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


[duplication] ~130-~130: Possible typo: you repeated a word.
Context: ...d/unsupported devices - Prerequisites - Configuration - Configuration options - Supported functionality - Act...

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~386-~386: Possible typo. Did you mean “a” or “My”?
Context: ...s/tools/quick-bar/#my-links). Selecting a My link opens that page in their own Home ...

(DT_PRP)


[style] ~580-~580: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~583-~583: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)


[typographical] ~638-~638: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...tten above the line the comment applies to, otherwise lines may become hard to read on smalle...

(THUS_SENTENCE)


[typographical] ~716-~716: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...pings can be written in different styles, however, we only allow the use of block style ma...

(HOWEVER_SENTENCE)


[formatting] ~784-~784: Consider inserting a comma after an introductory phrase for better readability.
Context: ...ferent handling of the ending new line. In those cases the use of the strip operator (|-, `>...

(IN_THAT_CASE_COMMA)


[grammar] ~827-~827: The verb form seems incorrect.
Context: ...e types are exempted from this rule, as is makes our examples more readable: - Entity I...

(IS_VBZ)


[style] ~901-~901: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...r a list of scalars Home Assistant has a lot of places that access both a scalar value ...

(A_LOT_OF)


[uncategorized] ~930-~930: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...t both a mapping or a list of mappings. Well known examples are: condition, action, `s...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~955-~955: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...templates are powerful, but they can be really confusing or hard to understand for a less experi...

(EN_WEAK_ADJECTIVE)


[style] ~955-~955: To elevate your writing, try using a synonym here.
Context: ...ul, but they can be really confusing or hard to understand for a less experienced us...

(HARD_TO)


[typographical] ~1075-~1075: Conjunctions like ‘but’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ...cripts, or dashboard examples is allowed; but keep it at clarifications, comments, or smal...

(CONJUNCTION_AFTER_SEMICOLON)

🪛 markdownlint-cli2 (0.17.2)
.github/copilot-instructions.md

67-67: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


74-74: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


77-77: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


82-82: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


85-85: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


87-87: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


89-89: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


127-127: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


362-362: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


365-365: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


747-747: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

Comment on lines +141 to +351
- **Current coffee temperature**
- **Description**: Current temperature of the coffee boiler.
- **Available for machines**: all
- **Remarks**: When the machine reaches temperature, this will be approximately 3 degrees higher than the `Coffee target temperature`, due to different measurement points.

- **Current steam temperature**
- **Description**: Current temperature of the steam boiler.
- **Available for machines**: Linea Micra, GS3 AV, GS3 MP.
- **Remarks**: -

#### Selects

- **Prebrew/-infusion mode**
- **Description**: Whether to use prebrew, preinfusion, or neither.
- **Options**: Disabled, Prebrew, Preinfusion
- **Available for machines**: Linea Micra, Linea Mini, GS3 AV

- **Steam level**
- **Description**: The level your steam boiler should run at.
- **Options**: 1, 2, 3
- **Available for machines**: Linea Micra

#### Updates

- **Gateway firmware**
- **Description**: Firmware status of the gateway.
- **Available for machines**: all

## Actions

The integration provides the following actions.

### Action: Get schedule

The `my_integration.get_schedule` action is used to fetch a schedule from the integration.

- **Data attribute**: `config_entry_id`
- **Description**: The ID of the config entry to get the schedule from.
- **Optional**: No

## Examples

### Turning off the LEDs during the night

The status LEDs on the device can be quite bright.
To tackle this, you can use this blueprint to easily automate the LEDs turning off when the sun goes down.

link to the blueprint on the [blueprints
exchange](https://community.home-assistant.io/c/blueprints-exchange/53)

## Data updates

The **My integration** integration {% term polling polls %} data from the device every 5 minutes by default.
Newer devices (the ones running MyOS) have the possibility to push data.
In this case, pushing data is enabled when the integration is started. If enabling data push fails, the integration uses data {% term polling %}.

## Known limitations

The integration does not provide the ability to reboot, which can instead be done via the manufacturer's app.

## Troubleshooting

### Can’t set up the device

#### Symptom: “This device can’t be reached”

When trying to set up the integration, the form shows the message “This device can’t be reached”.

##### Description

This means the settings on the device are incorrect, since the device needs to be enabled for local communication.

##### Resolution

To resolve this issue, try the following steps:

1. Make sure your device is powered up (LEDs are on).
2. Make sure your device is connected to the internet:
- Make sure the app of the manufacturer can see the device.
3. Make sure the device has the local communication enabled:
- Check the device’s settings.
- Check the device’s manual.
...

### I can't see my devices

Make sure the devices are visible and controllable via the manufacturer's app.
If they are not, check the device's power and network connection.

### The device goes unavailable after a day

Make sure you turned off the device's power-saving mode.

## Removing the integration

This integration follows standard integration removal.

{% include integrations/remove_device_service.md %}

After deleting the integration, go to the app of the manufacturer and remove the Home Assistant integration from there as well.
Copy link
Contributor

Choose a reason for hiding this comment

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

I recommend trying a version of the instruction without the example page but simply a link to what you consider a great integration page.
Giving full examples to reasoning models is not recommended anymore, especially if the model can freely browse the repository.

At least, I am curious about the result if the example is removed from the instructions

Copy link
Member Author

@frenck frenck May 1, 2025

Choose a reason for hiding this comment

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

but simply a link to what you consider a great integration page.

That won't work. It must be self-contained at this point.

Giving full examples to reasoning models is not recommended anymore, especially if the model can freely browse the repository.

That is not always the case, in VSCode this, for example, depends on the mode used.

@frenck frenck mentioned this pull request May 1, 2025
8 tasks
frenck and others added 2 commits May 1, 2025 18:58
Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
Copy link
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

♻️ Duplicate comments (1)
.github/copilot-instructions.md (1)

8-9: ⚠️ Potential issue

Remove extraneous “means” for clarity
The phrase “As a writer for online content, means you are also…” has an extra “means.” Simplify the sentence to improve readability.

- As a writer for online content, means you are also an expert in SEO and
- understand how to write content that is both end-user and SEO friendly.
+ As a writer for online content, you are also an expert in SEO and
+ understand how to write content that is both end-user and SEO-friendly.
🧹 Nitpick comments (7)
.github/copilot-instructions.md (7)

3-6: Fix semicolon misuse in audience description
The semicolon before “from technical users…” is incorrect here. Use a colon or comma for better clarity.

- documentation and website content that is easy to read and understand for a
- broad audience; from technical users to non-technical users.
+ documentation and website content that is easy to read and understand for a
+ broad audience, from technical users to non-technical users.

13-15: Consider shortening “In this day and age”
The phrase “In this day and age” is wordy. A more concise alternative like “Today” or “With LLMs becoming ubiquitous” would tighten the prose.

🧰 Tools
🪛 LanguageTool

[grammar] ~15-~15: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


64-72: Surround rule list with blank lines
Markdown linting (MD032) flags missing blank lines around lists. Ensure there’s an empty line before and after this list of rules.

🧰 Tools
🪛 LanguageTool

[misspelling] ~69-~69: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)

🪛 markdownlint-cli2 (0.17.2)

65-65: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


72-72: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


98-100: Insert missing comma after introductory phrase
Add a comma after “For linting” to improve readability and conform to style guidelines.

- For linting we use remark and textlint.
+ For linting, we use remark and textlint.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~98-~98: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


360-363: Surround fenced code blocks with blank lines
Markdown linting (MD031) requires blank lines before and after fenced code blocks. Please add an empty line before the opening ```yaml and after the closing fence.

🧰 Tools
🪛 markdownlint-cli2 (0.17.2)

360-360: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


363-363: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


578-578: Avoid acronym tautology in heading
“SEO optimization” is redundant (“O” already stands for optimization). Simplify the heading to “## SEO.”

- ## SEO optimization
+ ## SEO
🧰 Tools
🪛 LanguageTool

[style] ~578-~578: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


581-581: Hyphenate “SEO-friendly”
For consistency, add a hyphen: change “SEO friendly” to “SEO-friendly.”

- write content that is both end-user and SEO friendly.
+ write content that is both end-user and SEO-friendly.
🧰 Tools
🪛 LanguageTool

[uncategorized] ~581-~581: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)

📜 Review details

Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4d61ad5 and 6d0ee5f.

📒 Files selected for processing (1)
  • .github/copilot-instructions.md (1 hunks)
🧰 Additional context used
🪛 LanguageTool
.github/copilot-instructions.md

[style] ~12-~12: ‘In this day and age’ might be wordy. Consider a shorter alternative.
Context: ...that our content can be found as well. In this day and age, where LLMs are becoming more and more ...

(EN_WORDINESS_PREMIUM_IN_THIS_DAY_AND_AGE)


[grammar] ~15-~15: The modal verb ‘must’ requires the verb’s base form.
Context: ... is preferred. However, this must never comes at the cost of readability for humans. ...

(MD_BASEFORM)


[style] ~25-~25: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...by a much broader audience. We now have a large number of non-technical users who use Home Assist...

(LARGE_NUMBER_OF)


[style] ~35-~35: Consider using an alternative to strengthen your wording.
Context: ...chnical details available for those who want to know more, but not overwhelm the non...

(WANT_KEEN)


[style] ~44-~44: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)


[grammar] ~54-~54: The usual preposition for “perspective” is “from”, not “in”.
Context: ...rectly, and not a group of users. Write in a second-person perspective, using "you" and "your" instead of "the...

(IN_FROM_THE_PERSPECTIVE)


[misspelling] ~69-~69: Use “a” instead of ‘an’ if the following word doesn’t start with a vowel sound, e.g. ‘a sentence’, ‘a university’.
Context: ...r to edit in the online editors. - If an paragraph/markdown isn't written in a f...

(EN_A_VS_AN)


[duplication] ~78-~78: Possible typo: you repeated a word.
Context: ...for example", or "such as" instead. - Lists - Lists should be surrounded by blank lines. ...

(ENGLISH_WORD_REPEAT_RULE)


[style] ~81-~81: To elevate your writing, try using an alternative expression here.
Context: ...non-sequential items, or when the order does not matter. - Begin each item in the list with...

(MATTERS_RELEVANT)


[duplication] ~85-~85: Possible typo: you repeated a word.
Context: ...lons, commas, or conjunctions (like and or or) at the end of list items. - ...

(ENGLISH_WORD_REPEAT_RULE)


[uncategorized] ~98-~98: A comma is probably missing here.
Context: ...nd deployed and hosted by Netlify. For linting we use remark and textlint. We do use ...

(MISSING_COMMA_AFTER_INTRODUCTORY_PHRASE)


[duplication] ~128-~128: Possible typo: you repeated a word.
Context: ...d/unsupported devices - Prerequisites - Configuration - Configuration options - Supported functionality - Act...

(ENGLISH_WORD_REPEAT_RULE)


[grammar] ~384-~384: Possible typo. Did you mean “a” or “My”?
Context: ...s/tools/quick-bar/#my-links). Selecting a My link opens that page in their own Home ...

(DT_PRP)


[style] ~578-~578: This phrase is redundant (‘O’ stands for ‘optimization’). Use simply “SEO”.
Context: ...ice: Chapter 8"> ``` ## SEO optimization SEO is important for any website conte...

(ACRONYM_TAUTOLOGY)


[uncategorized] ~581-~581: The adjective “SEO-friendly” is spelled with a hyphen.
Context: ...in SEO and how to write content that is SEO friendly. We want to foster internal linking be...

(NN_FRIENDLY_HYPHEN)


[typographical] ~636-~636: The word “otherwise” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...tten above the line the comment applies to, otherwise lines may become hard to read on smalle...

(THUS_SENTENCE)


[typographical] ~714-~714: The word “however” is an adverb that can’t be used like a conjunction, and therefore needs to be separated from the sentence.
Context: ...pings can be written in different styles, however, we only allow the use of block style ma...

(HOWEVER_SENTENCE)


[formatting] ~782-~782: Consider inserting a comma after an introductory phrase for better readability.
Context: ...ferent handling of the ending new line. In those cases the use of the strip operator (|-, `>...

(IN_THAT_CASE_COMMA)


[grammar] ~825-~825: The verb form seems incorrect.
Context: ...e types are exempted from this rule, as is makes our examples more readable: - Entity I...

(IS_VBZ)


[style] ~899-~899: The phrase ‘a lot of’ might be wordy and overused. Consider using an alternative.
Context: ...r a list of scalars Home Assistant has a lot of places that access both a scalar value ...

(A_LOT_OF)


[uncategorized] ~928-~928: If this is a compound adjective that modifies the following noun, use a hyphen.
Context: ...t both a mapping or a list of mappings. Well known examples are: condition, action, `s...

(EN_COMPOUND_ADJECTIVE_INTERNAL)


[style] ~953-~953: As an alternative to the over-used intensifier ‘really’, consider replacing this phrase.
Context: ...templates are powerful, but they can be really confusing or hard to understand for a less experi...

(EN_WEAK_ADJECTIVE)


[style] ~953-~953: To elevate your writing, try using a synonym here.
Context: ...ul, but they can be really confusing or hard to understand for a less experienced us...

(HARD_TO)


[typographical] ~1073-~1073: Conjunctions like ‘but’ should not follow semicolons. Consider using a comma, or removing the conjunction.
Context: ...cripts, or dashboard examples is allowed; but keep it at clarifications, comments, or smal...

(CONJUNCTION_AFTER_SEMICOLON)

🪛 markdownlint-cli2 (0.17.2)
.github/copilot-instructions.md

1-1: First line in a file should be a top-level heading
null

(MD041, first-line-heading, first-line-h1)


65-65: Lists should be surrounded by blank lines
null

(MD032, blanks-around-lists)


72-72: Trailing spaces
Expected: 0 or 2; Actual: 1

(MD009, no-trailing-spaces)


75-75: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


79-79: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


80-80: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


81-81: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


83-83: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


85-85: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


87-87: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


125-125: Unordered list indentation
Expected: 2; Actual: 4

(MD007, ul-indent)


360-360: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


363-363: Fenced code blocks should be surrounded by blank lines
null

(MD031, blanks-around-fences)


745-745: Multiple consecutive blank lines
Expected: 1; Actual: 2

(MD012, no-multiple-blanks)

🔇 Additional comments (1)
.github/copilot-instructions.md (1)

38-50: General language section is clear and on point
Great job prescribing American-English and referencing the Microsoft Style Guide, while emphasizing clarity for non-native speakers.

🧰 Tools
🪛 LanguageTool

[style] ~44-~44: To reduce wordiness, try specifying a number or using “many” or “numerous” instead.
Context: ...dience on a geographical level, we have a large number of users in the United States & Europe, bu...

(LARGE_NUMBER_OF)

frenck and others added 4 commits May 1, 2025 19:04
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@balloob
Copy link
Member

balloob commented May 1, 2025

Love an LLM helping us clean up the LLM instructions 😄

@frenck frenck merged commit ebe3ece into current May 1, 2025
9 checks passed
@frenck frenck deleted the frenck-2025-0193 branch May 1, 2025 18:42
@github-actions github-actions bot locked and limited conversation to collaborators May 2, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
current This PR goes into the current branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants