feat: add specialized Copilot agent team for Python/wxPython desktop accessibility#1097
feat: add specialized Copilot agent team for Python/wxPython desktop accessibility#1097Nael-Sayegh wants to merge 30 commits intoSigmaNight:masterfrom
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds a new GitHub Copilot agent team and supporting documentation: six specialized agent manifests and prompts, shared instructions and skill references, review/commit/terminal guidance, and a pre-commit exclusion rule. All changes are documentation and configuration only; no runtime code modified. Changes
Sequence Diagram(s)sequenceDiagram
participant User
participant DevHub as DeveloperHub
participant Python as PythonSpecialist
participant Wx as WxPythonSpecialist
participant A11ySpec as DesktopA11ySpecialist
participant A11yTest as DesktopA11yTestingCoach
participant ToolBuilder as A11yToolBuilder
User->>DevHub: Submit task (issue / PR / request)
DevHub->>DevHub: Classify & decide routing
DevHub->>Python: Route Python-related task
DevHub->>Wx: Route wxPython UI task
DevHub->>A11ySpec: Route platform accessibility task
DevHub->>A11yTest: Route testing plan task
DevHub->>ToolBuilder: Route tooling / scanner design task
Python-->>DevHub: Findings / code suggestions
Wx-->>DevHub: UI patches / accessibility notes
A11ySpec-->>DevHub: API mappings / remediation steps
A11yTest-->>DevHub: Test plans / CI scaffolding
ToolBuilder-->>DevHub: Scanner design / report formats
DevHub->>User: Consolidated response & next steps
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~30 minutes 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
📝 Coding Plan
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. Comment Tip CodeRabbit can enforce grammar and style rules using `languagetool`.Configure the |
There was a problem hiding this comment.
Actionable comments posted: 21
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/agents/a11y-tool-builder.agent.md:
- Line 55: Update the broken markdown link on the line containing "**Skills:**
[`python-development`](../skills/python-development/SKILL.md)" to include the
missing "skills" subdirectory so it points to
"../skills/python-development/skills/SKILL.md"; change the link target
accordingly and verify the updated path resolves to the actual SKILL.md file in
the repo.
In @.github/agents/desktop-a11y-specialist.agent.md:
- Around line 34-38: Replace the mojibake sequence "—" with a proper em dash
"—" (U+2014) in the authoritative source list entries so each line reads e.g.
"UI Automation Specification (Windows) — https://learn.microsoft.com/..." and
similarly for "MSAA/IAccessible2 (Windows) — https://learn.microsoft.com/...",
"NSAccessibility Protocol (macOS) — https://developer.apple.com/...", and
"ATK/AT-SPI (Linux) — https://docs.gtk.org/atk/"; update the four list items in
.github/agents/desktop-a11y-specialist.agent.md accordingly to fix the encoding
artifact.
- Around line 15-18: The handoff entry for label "Desktop A11y Testing" is
missing the required agent field, so the route cannot be executed; add an agent
property to this block exactly like the other handoffs (e.g., agent:
"desktop-a11y-specialist" or the canonical agent ID used elsewhere) so the entry
includes label, prompt, send, model and agent; ensure the agent value matches
the actual agent definition name used by other handoff entries to restore
executability.
- Around line 187-188: Update the guidance to use the correct wxPython
accessibility API by replacing references to the invalid symbol
wx.accessibility.NotifyEvent with the static method wx.Accessible.NotifyEvent,
and update the example/signature to the correct form:
wx.Accessible.NotifyEvent(eventType, window, objectType, objectId); ensure any
text that suggested the old symbol or usage is changed to reference
wx.Accessible.NotifyEvent so generated code uses the correct API.
In @.github/agents/desktop-a11y-testing-coach.agent.md:
- Line 53: Update the broken skills link in the agent docs by changing the
markdown link target in the line "**Skills:**
[`python-development`](../skills/python-development/SKILL.md)" to point to the
correct path "../skills/lls/python-development/SKILL.md" so the link resolves to
the PR’s skills file; locate and edit that exact line in
.github/agents/desktop-a11y-testing-coach.agent.md to replace the old href with
the new one.
In @.github/agents/developer-hub.agent.md:
- Around line 1-25: The frontmatter is invalid YAML: replace the leading
underline line with a proper YAML document start '---' and fix indentation so
the lists are nested under their keys; ensure "model:" has its dash items
indented under it, and that "tools:", "agents:", and "handoffs:" are followed by
their list items indented beneath each key (e.g., align "- read", "- search",
etc. under tools and the agent names under agents) so the manifest parses
correctly; check keys name, description, argument-hint, model, tools, agents,
and handoffs for consistent indentation and list syntax.
In @.github/agents/python-specialist.agent.md:
- Line 59: The markdown link for the Skills entry currently points to the
python-development skill
(`[`python-development`](../skills/python-development/SKILL.md)`); update that
link to reference the lls skill path instead (replace the path with
../skills/lls/SKILL.md so the Skills line becomes the lls skill link) ensuring
the visible text and target path reflect the lls skill.
- Around line 334-335: The function definition for first uses PEP 695 generic
syntax (def first[T](...)) which is invalid on Python 3.10; replace it with a
TypeVar-based annotation compatible with 3.10 by importing TypeVar (and
Sequence) from typing, declaring T = TypeVar("T") at module scope, and then
change the signature to use first(items: Sequence[T]) -> Optional[T] (or T |
None if you keep Py310+ union syntax) while ensuring the module has the
necessary imports and the TypeVar name T is used in the function signature and
return type.
In @.github/agents/shared-instructions.md:
- Around line 403-414: Replace the incorrect tool identifier ask_questions with
the correctly defined askQuestions in the shared instructions; find occurrences
of "#tool:ask_questions" (e.g., the two spots currently using that form) and
change them to "#tool:askQuestions", and scan the rest of the document for any
other mismatched references to ensure consistent use of the askQuestions tool
name (and update any helper text that mentions ask_questions to use
askQuestions).
In @.github/agents/wxpython-specialist.agent.md:
- Around line 20-23: The "Desktop A11y Testing" handoff entry is missing the
required agent identifier, so add an agent field to that entry (e.g., agent:
"<agent-id>") to ensure routing; update the handoff object that contains label:
"Desktop A11y Testing" and include a valid agent identifier matching your agent
registry (the same naming convention used by other handoffs) while keeping
label, prompt, send, and model intact.
- Line 61: Update the broken skills link on the "**Skills:**" line by inserting
the missing "lls" path segment so the link points to
../lls/skills/python-development/SKILL.md instead of
../skills/python-development/SKILL.md; edit the markdown link target accordingly
in the .github/agents/wxpython-specialist.agent.md file.
In @.github/copilot-commit-message-instructions.md:
- Line 1: The file starts with a hidden UTF-8 BOM before the header "## Python
Commit Message Instructions"; remove that leading BOM character so the first
character of the file is the '#' of the header, then re-save the file using
UTF-8 without BOM (or use an editor/CLI tool to strip BOM) and commit the change
so the repository no longer contains the BOM.
In @.github/copilot-instructions.md:
- Line 1: The file heading "# BasiliskLLM Coding Guidelines" contains a hidden
BOM/zero-width character; open .github/copilot-instructions.md, delete the first
line and retype it exactly as plain UTF-8 text "BasiliskLLM Coding Guidelines"
(no leading invisible characters or byte order mark) so the heading is clean and
markdown/linting no longer sees the hidden prefix.
In @.github/copilot-review-instructions.md:
- Line 1: The file starts with a level-2 heading ("## Python Code Review
Instructions"); change it to a level-1 heading by replacing the leading "##"
with "#" so the file begins with a top-level H1 for markdownlint compatibility
(update the header text at the top of the file).
In @.github/instructions/ons/powershell-terminal-ops.instructions.md:
- Around line 1-5: The document currently begins with a separator and no
top-level heading which triggers MD041; add a top-level H1 above the existing
content (for example "PowerShell Terminal Operations on Windows") so the file
contains a top-level heading; ensure the H1 appears before the existing
separator line (refer to the existing text "PowerShell Terminal Operations on
Windows" and "applyTo: \"**\"" to locate the section) and update the first line
to be the H1 to satisfy Markdown linting.
In @.github/prompts/pts/a11y-tool-builder.prompt.md:
- Line 15: Replace the custom underscore separator
"______________________________________________________________________" on line
15 with a standard markdown horizontal rule (e.g., --- or ***) so the file
.github/prompts/pts/a11y-tool-builder.prompt.md conforms to markdownlint MD035;
locate the underscore art and replace it with a single standard HR token to fix
the lint error.
In @.github/prompts/pts/developer-hub.prompt.md:
- Around line 19-37: The hub prompt is missing a mandatory rule to invoke
askQuestions before routing when ambiguity exists; update the prompt text
(around the "Routing" and "Expected Output" sections) to add a clear rule
requiring the use of askQuestions for structured/clickable choices whenever the
user's intent is ambiguous or multiple specialist routes match, and include
explicit guidance that the router must present those questions prior to
selecting a specialist so that outputs like "Correct specialist chosen" and
"Actionable implementation steps" only occur after askQuestions-driven
clarification.
- Around line 1-15: Replace the nonstandard underscore separators with YAML
frontmatter delimiters by changing the top and bottom lines surrounding the
metadata block to '---' so the block that contains name:
developer-command-center, description: Developer command center..., mode: agent,
agent: developer-hub, and tools: uses proper YAML frontmatter formatting; ensure
only the two lines are swapped and the inner metadata text (including the tools
list) remains unchanged.
In @.github/prompts/pts/python-specialist.prompt.md:
- Line 61: Replace the malformed bullet text "`a]` resource access using
`sys._MEIPASS` pattern" with a proper bullet marker (e.g., "a) resource access
using `sys._MEIPASS` pattern") so the instruction is clear; locate the line
containing the exact snippet "`a]` resource access using `sys._MEIPASS` pattern"
and update the bracket to a parenthesis or otherwise correct the bullet
formatting.
In @.github/prompts/pts/wxpython-specialist.prompt.md:
- Around line 40-57: The fenced project tree block (the triple-backtick block
showing app_name/__init__.py, __main__.py, app.py, main_frame.py, panels/,
dialogs/, utils/, resources/, requirements.txt, README.md) is missing a language
tag; update that code fence from ``` to ```text (or another appropriate
language) so the block is typed for markdownlint and editor rendering, keeping
the contents unchanged.
In @.github/skills/lls/python-development/SKILL.md:
- Around line 1-5: Replace the inline markdown metadata (the "## name: ...
description: ..." line) with proper YAML front matter at the top of the file:
add opening and closing '---' and include the required keys name (use a
lowercase hyphenated slug like "python-development") and description as a
string; ensure the YAML front matter appears before any other content and remove
the old markdown metadata line so the file begins with the YAML block containing
name and description.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 695dbd83-2d8f-441f-a0cf-868104920949
📒 Files selected for processing (19)
.github/agents/AGENTS.md.github/agents/a11y-tool-builder.agent.md.github/agents/desktop-a11y-specialist.agent.md.github/agents/desktop-a11y-testing-coach.agent.md.github/agents/developer-hub.agent.md.github/agents/python-specialist.agent.md.github/agents/shared-instructions.md.github/agents/wxpython-specialist.agent.md.github/copilot-commit-message-instructions.md.github/copilot-instructions.md.github/copilot-review-instructions.md.github/instructions/ons/powershell-terminal-ops.instructions.md.github/prompts/pts/a11y-tool-builder.prompt.md.github/prompts/pts/desktop-a11y-specialist.prompt.md.github/prompts/pts/desktop-a11y-testing-coach.prompt.md.github/prompts/pts/developer-hub.prompt.md.github/prompts/pts/python-specialist.prompt.md.github/prompts/pts/wxpython-specialist.prompt.md.github/skills/lls/python-development/SKILL.md
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (2)
.github/agents/desktop-a11y-specialist.agent.md (1)
189-190:⚠️ Potential issue | 🟠 MajorUse the correct wxPython accessibility notification API.
Line 189 references
wx.accessibility.NotifyEvent, which is not the documented wxPython API. Usewx.Accessible.NotifyEvent(...)to avoid generating broken guidance.Proposed fix
-| Stale value | Value changed but not announced | Fire `wx.accessibility.NotifyEvent` or update via `wx.CallAfter` | +| Stale value | Value changed but not announced | Fire `wx.Accessible.NotifyEvent(eventType, window, objectType, objectId)` or update via `wx.CallAfter` |In current wxPython/Phoenix docs, what is the valid API for accessibility notifications: wx.accessibility.NotifyEvent or wx.Accessible.NotifyEvent?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/agents/desktop-a11y-specialist.agent.md around lines 189 - 190, The doc references the non-existent wx.accessibility.NotifyEvent API; update the guidance to use the correct wxPython API by replacing occurrences of "wx.accessibility.NotifyEvent" with "wx.Accessible.NotifyEvent" (and any explanatory text that mentions the old symbol) so the examples and instructions use the valid wx.Accessible.NotifyEvent notification API..github/skills/python-development/SKILL.md (1)
1-3:⚠️ Potential issue | 🟠 MajorUse valid Copilot Skill YAML front matter at the top of the file.
Lines 1-3 still use non-front-matter metadata format, which can break skill discovery/registration.
Proposed fix
-______________________________________________________________________ - -## name: python-development description: "Python and wxPython development reference patterns, common pitfalls, framework-specific guides, desktop accessibility APIs, and cross-platform considerations. Use when building, debugging, packaging, or reviewing Python desktop applications." +--- +name: python-development +description: "Python and wxPython development reference patterns, common pitfalls, framework-specific guides, desktop accessibility APIs, and cross-platform considerations. Use when building, debugging, packaging, or reviewing Python desktop applications." +---What is the required SKILL.md metadata format for GitHub Copilot Skills (front matter keys, delimiters, and placement)?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/skills/python-development/SKILL.md around lines 1 - 3, Replace the non-front-matter metadata at the top of SKILL.md with proper YAML front matter: remove the existing line block ("## name: python-development description: ...") and add a YAML front-matter block delimited by triple dashes (---) at the very top of the file containing required keys such as name and description (e.g., name: python-development and description: "…"), ensuring the front matter is the first content in .github/skills/python-development/SKILL.md so Copilot Skills discovery can parse it correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/agents/desktop-a11y-specialist.agent.md:
- Around line 93-104: The markdown has fenced code blocks missing language tags
(the block starting with "Button -> InvokePattern (click) ..." and the
block under the "## Desktop Accessibility Audit Report" header), triggering
MD040; add appropriate language identifiers (e.g., ```text for the pattern list
and ```markdown for the report snippet) to each fenced code block so the linter
stops complaining.
- Around line 1-8: The agent manifest metadata block is missing YAML front
matter delimiters; wrap the existing keys (name, description, argument-hint,
infer, tools, model) with opening and closing '---' lines so the block becomes
valid YAML front matter (i.e., add a leading '---' before "name:" and a trailing
'---' after the "model:" list) to ensure the agent manifest is parsed correctly.
---
Duplicate comments:
In @.github/agents/desktop-a11y-specialist.agent.md:
- Around line 189-190: The doc references the non-existent
wx.accessibility.NotifyEvent API; update the guidance to use the correct
wxPython API by replacing occurrences of "wx.accessibility.NotifyEvent" with
"wx.Accessible.NotifyEvent" (and any explanatory text that mentions the old
symbol) so the examples and instructions use the valid wx.Accessible.NotifyEvent
notification API.
In @.github/skills/python-development/SKILL.md:
- Around line 1-3: Replace the non-front-matter metadata at the top of SKILL.md
with proper YAML front matter: remove the existing line block ("## name:
python-development description: ...") and add a YAML front-matter block
delimited by triple dashes (---) at the very top of the file containing required
keys such as name and description (e.g., name: python-development and
description: "…"), ensuring the front matter is the first content in
.github/skills/python-development/SKILL.md so Copilot Skills discovery can parse
it correctly.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: f17d4235-cb7d-4d5c-9fc7-0e165b675c88
📒 Files selected for processing (2)
.github/agents/desktop-a11y-specialist.agent.md.github/skills/python-development/SKILL.md
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
for more information, see https://pre-commit.ci
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 4
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/prompts/pts/python-specialist.prompt.md:
- Line 16: Replace the markdown divider composed of underscores
("______________________________________________________________________") with
the standard Markdown horizontal rule syntax ("---") to satisfy MD035; locate
the exact string
"______________________________________________________________________" in
.github/prompts/pts/python-specialist.prompt.md and change it to three hyphens
so the linter accepts the divider.
- Around line 30-43: Update Step 1 to require a structured askQuestions block
instead of a plain bulleted list: replace the free-text checklist with a
mandatory askQuestions definition (e.g., askQuestions or questions array) that
enumerates each item (packaging tool, build mode, target platform, GUI
framework, additional data files, application icon, console window, code
signing) as required questions with predefined clickable choices (radio/select
for single-choice items, checkboxes for multi-choice like target platforms or
data files) and default values; ensure the askQuestions entry is marked
required/mandatory so clients cannot skip Step 1 and keep the original prompt
wording for each option as the choice labels to preserve intent.
- Line 1: Remove the UTF-8 BOM bytes (ef bb bf) that appear before the YAML
front matter delimiter so the file begins exactly with the delimiter '---'; edit
the beginning of the file to delete the invisible BOM characters so parsers
correctly detect the YAML block starting at '---'.
- Line 24: The prompt references `${input:entryPoint}` but no input schema
exists for entryPoint, so add a declared input contract (or a safe default) for
the entryPoint variable; specifically, update the agent manifest or the prompt
input schema to declare "entryPoint" as a required string (or provide a sensible
default) and/or add validation before using `${input:entryPoint}` so the
placeholder cannot be empty; search for the `${input:entryPoint}` token and
align it with the newly declared input field in the manifest/prompt schema.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: ca0d2b58-4e23-4372-9b3a-c3df571fb578
📒 Files selected for processing (1)
.github/prompts/pts/python-specialist.prompt.md
for more information, see https://pre-commit.ci
…nd .github/prompts
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 12
♻️ Duplicate comments (6)
.github/agents/developer-hub.agent.md (1)
5-24:⚠️ Potential issue | 🔴 CriticalFix malformed YAML structure in manifest front matter.
Line 9, Line 18, and Line 24 are indented as if nested under
model, which makes the manifest structurally invalid.Suggested fix
model: - -- Claude Sonnet 4.5 (copilot) -- GPT-5 (copilot) - tools: + - Claude Sonnet 4.5 (copilot) + - GPT-5 (copilot) +tools: - read - search - edit - runInTerminal - createFile - createDirectory - listDirectory - askQuestions - agents: +agents: - python-specialist - wxpython-specialist - desktop-a11y-specialist - desktop-a11y-testing-coach - a11y-tool-builder - handoffs: +handoffs: - label: Python Deep Dive agent: python-specialist prompt: The user needs Python-specific expertise -- debugging, optimization, packaging, testing, type checking, async patterns, or Pythonic design review. send: true model: Claude Sonnet 4 (copilot)#!/bin/bash python - <<'PY' from pathlib import Path p = Path(".github/agents/developer-hub.agent.md") for ln in (5,6,7,8,9,18,24): print(f"{ln}: {p.read_text(encoding='utf-8-sig').splitlines()[ln-1]}") print("\nExpected: tools/agents/handoffs should be top-level keys (no leading two spaces).") PY🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/agents/developer-hub.agent.md around lines 5 - 24, The YAML front matter is malformed because the keys "tools:", "agents:", and "handoffs:" are incorrectly indented under "model:"; update the manifest so "model:", "tools:", "agents:", and "handoffs:" are all top-level keys (no leading spaces) and ensure their list items remain properly hyphenated (e.g., "- read", "- python-specialist") under each key; specifically fix the lines containing "tools:", "agents:", and "handoffs:" and align their entries to the same indentation level as "model:"..github/prompts/developer-hub.prompt.md (1)
25-37:⚠️ Potential issue | 🟠 MajorRequire
askQuestionsbefore routing when intent is ambiguous.The routing/output section does not explicitly enforce structured intake via
askQuestions, so the hub can bypass the intended decision workflow.Based on learnings: In SigmaNight/basiliskLLM, for agent prompt files under .github/prompts/** and .github/agents/**, use askQuestions for structured intake.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/developer-hub.prompt.md around lines 25 - 37, Update the Routing logic to require invoking askQuestions when the intent is ambiguous: modify the "Routing" section to explicitly state that before mapping to any specialist (e.g., python-specialist, wxpython-specialist, desktop-a11y-specialist, desktop-a11y-testing-coach, a11y-tool-builder) the agent must call askQuestions if intent/confidence is not high, and add this requirement to the "Expected Output" so outputs must include either a chosen specialist or the structured askQuestions flow; ensure references to askQuestions are present and enforceable in any decision text so the hub cannot bypass the structured intake..github/agents/desktop-a11y-specialist.agent.md (1)
187-188:⚠️ Potential issue | 🟠 MajorUse the correct wxPython accessibility notification API.
Line 187 references
wx.accessibility.NotifyEvent, which is not the documented wxPython API surface. Usewx.Accessible.NotifyEvent(...)to avoid generating broken guidance.Suggested fix
-| Stale value | Value changed but not announced | Fire `wx.accessibility.NotifyEvent` or update via `wx.CallAfter` | +| Stale value | Value changed but not announced | Fire `wx.Accessible.NotifyEvent` or update via `wx.CallAfter` |In current wxPython Phoenix docs, what is the valid API for accessibility notifications: `wx.accessibility.NotifyEvent` or `wx.Accessible.NotifyEvent`?🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/agents/desktop-a11y-specialist.agent.md around lines 187 - 188, The comment points out an incorrect API reference: replace uses of wx.accessibility.NotifyEvent with the documented wx.Accessible.NotifyEvent; update the table entry (and any other occurrences) to call wx.Accessible.NotifyEvent(...) with the appropriate parameters instead of wx.accessibility.NotifyEvent so the guidance references the actual wxPython Phoenix API surface and won't be broken..github/prompts/python-specialist.prompt.md (3)
16-16:⚠️ Potential issue | 🟡 MinorReplace underscore separator with standard markdown horizontal rule.
Line 16 uses underscores which violates MD035. This issue was already flagged in previous reviews. Replace with
---for standard compliance.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/python-specialist.prompt.md at line 16, Replace the non-standard Markdown separator of repeated underscores on the document (the underscore line at the separator location) with a standard horizontal rule using three hyphens (`---`) to satisfy MD035; locate the separator in the file (the underscore-only line) and replace it with `---` so the markdown linter passes.
1-1:⚠️ Potential issue | 🟠 MajorRemove UTF-8 BOM before YAML front matter.
Line 1 contains a UTF-8 BOM that prevents proper YAML parsing. This issue was already flagged in previous reviews.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/python-specialist.prompt.md at line 1, Remove the UTF-8 BOM that precedes the YAML front matter so the file begins with the YAML delimiter '---' as the first character; open the prompt file, strip the BOM bytes (0xEF,0xBB,0xBF) or re-save the file without BOM/with UTF-8 (no BOM), verify the YAML front matter delimiter '---' is at the start of the file and that linters/parsers accept the front matter.
24-24:⚠️ Potential issue | 🟠 MajorInput placeholder
entryPointlacks a declared contract.Line 24 references
${input:entryPoint}without a declared input schema. This issue was already flagged in previous reviews.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/python-specialist.prompt.md at line 24, The template references the input placeholder `${input:entryPoint}` but no input contract/schema is declared; add a clear schema entry for "entryPoint" in the prompt's input definitions (e.g., under an inputs or schema section) specifying its expected type (string), whether it's required, a short description, and an example/format, and update any validation or README usage to ensure callers provide that field before rendering the template.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/agents/desktop-a11y-specialist.agent.md:
- Around line 41-42: Update the rigid mandate around askQuestions so it aligns
with repo policy: replace the absolute requirement that agents "MUST use the
`askQuestions` tool" and the prohibition on typing choices with guidance that
agent prompts under .github/prompts/** and .github/agents/** should use the
askQuestions tool for structured intake, but do not require clickable predefined
option lists; cite the askQuestions symbol and change the wording to recommend
using askQuestions for structured intake and confirmation while allowing
implementers to decide whether to present clickable options or free-form
prompts.
In @.github/agents/wxpython-specialist.agent.md:
- Around line 40-45: Replace the mojibake sequence "—" used as the separator
in the wxPython resource list with a proper dash (e.g., an em dash "—" or a
standard hyphen "-") so the five bullet lines (the ones containing "wxPython
Documentation", "wxPython API Reference", "wxWidgets Documentation", "wxPython
Sizers", "wxPython Events") display correctly; search for the literal "—" in
the file and replace each occurrence with the chosen dash character to fix
readability and copying.
- Around line 48-49: Update the strict directive about askQuestions so it
doesn't hard-require clickable option UI: locate the rule text that currently
states "You MUST use the `askQuestions` tool" and remove/replace the absolute
"MUST" and the "Do NOT type out choices as plain chat text" prohibition; change
it to require using `askQuestions` for structured intake but allow
non-clickable/plain structured prompts or freeform confirmations as acceptable
alternatives (e.g., replace "MUST" with "SHOULD" or "use `askQuestions` where
available, but clickable options are not required"). Ensure the revised wording
references `askQuestions` so intent is preserved but clickable option
enforcement is removed.
- Around line 1-36: The YAML front matter in wxPython Specialist agent is
missing the closing '---' delimiter; fix the manifest by adding a terminating
'---' line immediately after the final handoffs block (after the last handoffs
entry), ensuring the top-level front matter (name, description, argument-hint,
infer, tools, model, handoffs) is properly closed so the parser can read the
document.
In @.github/prompts/a11y-tool-builder.prompt.md:
- Line 56: Change the redundant heading "CLI Interface" to just "CLI" in the
prompt text (the line currently reading "1. **CLI Interface** -- Argument
parsing, help text, error handling"); update any matching occurrences in the
same document to use "CLI" for brevity and consistency.
- Around line 30-36: Update the prompt to explicitly instruct the agent to use
the askQuestions tool for structured user intake: modify the list so each bullet
indicates it should be gathered via askQuestions (e.g., "Use askQuestions to
obtain: Tool purpose, Target format, WCAG coverage, Output format, Integration")
and add a short parenthetical note that askQuestions should collect free-form
answers (no enforced clickable choices); reference the askQuestions tool name so
reviewers and automated checks recognize the intended tool-driven workflow.
- Line 1: The file .github/prompts/a11y-tool-builder.prompt.md contains a UTF-8
BOM before the YAML front-matter delimiter '---'; remove the BOM so the file
begins exactly with '---'. Fix by re-saving the file as UTF-8 without BOM (use
your editor's "Save without BOM" or re-encode), or strip the first three BOM
bytes programmatically so the YAML front matter is recognized; verify the file
now starts with '---' and that parsers accept the front matter.
In @.github/prompts/desktop-a11y-specialist.prompt.md:
- Around line 1-15: Add the missing YAML front matter closing delimiter by
inserting a line containing only '---' immediately after the existing header
block (i.e., add the closing '---' right after the tools list that follows the
opening '---'); this completes the YAML front matter started by the initial
'---' and prevents the rest of the file from being treated as content instead of
metadata.
In @.github/prompts/desktop-a11y-testing-coach.prompt.md:
- Around line 1-15: The YAML front matter started with '---' is not closed,
which breaks manifest parsing; add a closing '---' line immediately before the
prompt body (i.e., before
"______________________________________________________________________" / the
"Desktop Accessibility Test Plan" header) so the front matter block containing
keys like name: test-desktop-a11y and description is properly terminated.
In @.github/prompts/developer-hub.prompt.md:
- Around line 1-15: The front-matter block uses a line of underscores
("______________________________________________________________________")
instead of YAML delimiters; replace the underscores with proper YAML
front-matter delimiters (use '---' on a line by itself at the start and a
matching '---' at the end of the metadata block) so the metadata is parsed
correctly by the agent runner and matches other files in .github/prompts; ensure
the existing name/description/mode/agent/tools entries remain unchanged and are
enclosed between the '---' lines.
In @.github/prompts/wxpython-specialist.prompt.md:
- Around line 1-16: The YAML frontmatter starting with "name:
scaffold-wxpython-app" is not closed; add a closing '---' delimiter immediately
after the "tools:" list (i.e., right after the final tool entry) and before the
body content so the frontmatter is properly terminated; update the file that
contains the "name: scaffold-wxpython-app" and "tools:" entries to include this
'---' line.
- Line 77: Update the scaffold guidance to stop referencing the nonexistent
wx.AccessibilityEvent and instead use wx.Accessible.NotifyEvent; change any
helper text or examples that mention wx.AccessibilityEvent to demonstrate
calling wx.Accessible.NotifyEvent(eventType, window, objectType, objectId) with
example parameter names (e.g., eventType, window, objectType, objectId), and
ensure the helper description and signature reflect the
wx.Accessible.NotifyEvent usage (replace occurrences of "wx.AccessibilityEvent"
with "wx.Accessible.NotifyEvent(eventType, window, objectType, objectId)").
---
Duplicate comments:
In @.github/agents/desktop-a11y-specialist.agent.md:
- Around line 187-188: The comment points out an incorrect API reference:
replace uses of wx.accessibility.NotifyEvent with the documented
wx.Accessible.NotifyEvent; update the table entry (and any other occurrences) to
call wx.Accessible.NotifyEvent(...) with the appropriate parameters instead of
wx.accessibility.NotifyEvent so the guidance references the actual wxPython
Phoenix API surface and won't be broken.
In @.github/agents/developer-hub.agent.md:
- Around line 5-24: The YAML front matter is malformed because the keys
"tools:", "agents:", and "handoffs:" are incorrectly indented under "model:";
update the manifest so "model:", "tools:", "agents:", and "handoffs:" are all
top-level keys (no leading spaces) and ensure their list items remain properly
hyphenated (e.g., "- read", "- python-specialist") under each key; specifically
fix the lines containing "tools:", "agents:", and "handoffs:" and align their
entries to the same indentation level as "model:".
In @.github/prompts/developer-hub.prompt.md:
- Around line 25-37: Update the Routing logic to require invoking askQuestions
when the intent is ambiguous: modify the "Routing" section to explicitly state
that before mapping to any specialist (e.g., python-specialist,
wxpython-specialist, desktop-a11y-specialist, desktop-a11y-testing-coach,
a11y-tool-builder) the agent must call askQuestions if intent/confidence is not
high, and add this requirement to the "Expected Output" so outputs must include
either a chosen specialist or the structured askQuestions flow; ensure
references to askQuestions are present and enforceable in any decision text so
the hub cannot bypass the structured intake.
In @.github/prompts/python-specialist.prompt.md:
- Line 16: Replace the non-standard Markdown separator of repeated underscores
on the document (the underscore line at the separator location) with a standard
horizontal rule using three hyphens (`---`) to satisfy MD035; locate the
separator in the file (the underscore-only line) and replace it with `---` so
the markdown linter passes.
- Line 1: Remove the UTF-8 BOM that precedes the YAML front matter so the file
begins with the YAML delimiter '---' as the first character; open the prompt
file, strip the BOM bytes (0xEF,0xBB,0xBF) or re-save the file without BOM/with
UTF-8 (no BOM), verify the YAML front matter delimiter '---' is at the start of
the file and that linters/parsers accept the front matter.
- Line 24: The template references the input placeholder `${input:entryPoint}`
but no input contract/schema is declared; add a clear schema entry for
"entryPoint" in the prompt's input definitions (e.g., under an inputs or schema
section) specifying its expected type (string), whether it's required, a short
description, and an example/format, and update any validation or README usage to
ensure callers provide that field before rendering the template.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 5f9b55a4-b4ea-47e1-b196-58da0e2d5671
📒 Files selected for processing (10)
.github/agents/desktop-a11y-specialist.agent.md.github/agents/developer-hub.agent.md.github/agents/wxpython-specialist.agent.md.github/prompts/a11y-tool-builder.prompt.md.github/prompts/desktop-a11y-specialist.prompt.md.github/prompts/desktop-a11y-testing-coach.prompt.md.github/prompts/developer-hub.prompt.md.github/prompts/python-specialist.prompt.md.github/prompts/wxpython-specialist.prompt.md.pre-commit-config.yaml
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
.github/prompts/wxpython-specialist.prompt.md (1)
1-15:⚠️ Potential issue | 🔴 CriticalClose YAML frontmatter with
---delimiter and remove UTF-8 BOM.The YAML frontmatter opened on line 1 is never closed. A closing
---delimiter must be added after thetools:section (after line 14) and before line 16. Additionally, line 1 begins with a UTF-8 BOM (byte order mark), which can cause parsing issues in some tools.🔧 Proposed fix
---- +--- name: scaffold-wxpython-app description: Scaffold an accessible wxPython desktop application with proper sizer layouts, keyboard navigation, screen reader compatibility, and high contrast support built in from the start. mode: agent agent: wxpython-specialist tools: - askQuestions - readFile - editFiles - createFile - listDirectory - runInTerminal - getTerminalOutput +--- ______________________________________________________________________🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/wxpython-specialist.prompt.md around lines 1 - 15, The YAML frontmatter at the top of .github/prompts/wxpython-specialist.prompt.md is not closed and the file begins with a UTF-8 BOM; remove the BOM from the start of the file and add a closing frontmatter delimiter `---` immediately after the tools: block (i.e., after the last tool entry) to properly close the YAML frontmatter that begins with the opening `---`.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/prompts/wxpython-specialist.prompt.md:
- Line 16: Replace the nonstandard horizontal rule made of underscores with the
standard Markdown horizontal rule syntax '---' so markdownlint MD035 is
satisfied; locate the underscore-only divider in the file (the horizontal rule
at the section break) and change it to three hyphens (---) using the same
surrounding whitespace/context.
---
Duplicate comments:
In @.github/prompts/wxpython-specialist.prompt.md:
- Around line 1-15: The YAML frontmatter at the top of
.github/prompts/wxpython-specialist.prompt.md is not closed and the file begins
with a UTF-8 BOM; remove the BOM from the start of the file and add a closing
frontmatter delimiter `---` immediately after the tools: block (i.e., after the
last tool entry) to properly close the YAML frontmatter that begins with the
opening `---`.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: d52a357e-bfbe-4f5d-a09b-99a30bd050ca
📒 Files selected for processing (1)
.github/prompts/wxpython-specialist.prompt.md
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
|
@coderabbitai full review |
✅ Actions performedFull review triggered. |
There was a problem hiding this comment.
Actionable comments posted: 5
♻️ Duplicate comments (3)
.github/prompts/developer-hub.prompt.md (1)
23-35:⚠️ Potential issue | 🟠 MajorRequire
askQuestionsbefore routing when intent is ambiguous.The hub is the router, but this section still allows direct routing without a clarification step. Add an explicit rule to collect clarifications via
askQuestionsbefore selecting a specialist when multiple routes fit.Based on learnings: In SigmaNight/basiliskLLM, agent prompt files should use askQuestions for structured intake (without enforcing clickable-only choices).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/developer-hub.prompt.md around lines 23 - 35, Update the Routing section to require invoking askQuestions whenever multiple specialist routes could apply: add a rule that the router must call askQuestions to collect clarifying inputs before mapping intents to any specialist token (e.g., `python-specialist`, `wxpython-specialist`, `desktop-a11y-specialist`, `desktop-a11y-testing-coach`, `a11y-tool-builder`) whenever more than one route matches; ensure askQuestions is used for structured intake (not limited to clickable-only choices) and that only after answers are returned the router selects the correct specialist and produces the Expected Output..github/agents/wxpython-specialist.agent.md (1)
47-57:⚠️ Potential issue | 🟠 MajorDo not force clickable-only
askQuestionsinteractions.This block requires clickable choices and forbids plain structured prompts. That conflicts with the repo’s prompt policy.
Based on learnings: In SigmaNight/basiliskLLM, use askQuestions for structured intake, but do not enforce clickable choices or predefined option lists.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/agents/wxpython-specialist.agent.md around lines 47 - 57, Replace the absolute/forbidding wording in the rule block that begins with "**You MUST use the `askQuestions` tool**" so it no longer mandates clickable-only interactions; change it to recommend using askQuestions for structured choices while allowing plain chat when repository policy or context requires it (e.g., when GUI is unavailable or policy disallows clickable prompts). Update phrases like "MUST" and "Do NOT" to softer guidance ("should", "prefer", "recommend") and add a short exception sentence referencing when free-text prompts are acceptable; ensure the revised text still lists the situations to prefer askQuestions (initial assessment with multiple approaches, confirming files/components, presenting fix options, follow-ups) and marks the recommended option where applicable..github/prompts/desktop-a11y-testing-coach.prompt.md (1)
1-1:⚠️ Potential issue | 🟠 MajorStrip BOM at file start.
Line 1 includes a BOM before
---; remove it to avoid front-matter parsing edge cases.🔧 Proposed fix
---- +---🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/desktop-a11y-testing-coach.prompt.md at line 1, The file starts with a UTF-8 BOM before the front-matter marker '---', causing parsing issues; open the file ".github/prompts/desktop-a11y-testing-coach.prompt.md", remove the BOM character at the very beginning so the first three characters are '---', and save the file in UTF-8 without BOM to ensure front-matter parses correctly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/agents/wxpython-specialist.agent.md:
- Line 1: The file's YAML front matter contains a UTF-8 BOM before the leading
'---' which can break tooling; open .github/agents/wxpython-specialist.agent.md,
remove the invisible BOM character at the start of the file so the first three
characters are exactly '---', and save the file as UTF-8 without BOM (ensure the
manifest header starting with '---' is the very first bytes of the file).
In @.github/prompts/desktop-a11y-specialist.prompt.md:
- Line 1: Remove the leading UTF-8 BOM so the front matter begins exactly with
‘---’; open the prompt file, delete the invisible BOM character at the start of
the file (or add a small pre-processing step to strip BOMs before parsing), and
ensure the first bytes are the YAML front-matter delimiter `---` so parsers will
detect the front matter correctly.
- Around line 28-34: Update the intake step text to explicitly reference the
askQuestions helper so readers know to use it for structured intake: change the
bullet preface to instruct the agent to call askQuestions with the four fields
(Platform(s), UI framework, Target screen readers, Known issues) during the
intake step, and clarify that responses should remain free-form while the intake
uses askQuestions (reference askQuestions and the "intake step" phrasing so
reviewers can locate where to modify the prompt).
In @.github/prompts/desktop-a11y-testing-coach.prompt.md:
- Around line 2-5: The front matter declares mode: agent but is missing the
required agent identifier; add an agent: desktop-a11y-testing-coach key to the
YAML front matter alongside existing name and description so the prompt is
properly routed; update the block that currently contains name, description, and
mode to include the new agent field (referencing the existing name:
test-desktop-a11y and mode: agent entries) and ensure spacing/indentation
matches the other keys.
In @.github/prompts/wxpython-specialist.prompt.md:
- Line 1: The file starts with a UTF-8 BOM before the front-matter marker '---',
which can break strict metadata parsers; remove the BOM so the first bytes begin
with the '---' sequence (i.e., ensure the file's first character is '-' not a
BOM) and save the file as UTF-8 without BOM to prevent front-matter parse
failures.
---
Duplicate comments:
In @.github/agents/wxpython-specialist.agent.md:
- Around line 47-57: Replace the absolute/forbidding wording in the rule block
that begins with "**You MUST use the `askQuestions` tool**" so it no longer
mandates clickable-only interactions; change it to recommend using askQuestions
for structured choices while allowing plain chat when repository policy or
context requires it (e.g., when GUI is unavailable or policy disallows clickable
prompts). Update phrases like "MUST" and "Do NOT" to softer guidance ("should",
"prefer", "recommend") and add a short exception sentence referencing when
free-text prompts are acceptable; ensure the revised text still lists the
situations to prefer askQuestions (initial assessment with multiple approaches,
confirming files/components, presenting fix options, follow-ups) and marks the
recommended option where applicable.
In @.github/prompts/desktop-a11y-testing-coach.prompt.md:
- Line 1: The file starts with a UTF-8 BOM before the front-matter marker '---',
causing parsing issues; open the file
".github/prompts/desktop-a11y-testing-coach.prompt.md", remove the BOM character
at the very beginning so the first three characters are '---', and save the file
in UTF-8 without BOM to ensure front-matter parses correctly.
In @.github/prompts/developer-hub.prompt.md:
- Around line 23-35: Update the Routing section to require invoking askQuestions
whenever multiple specialist routes could apply: add a rule that the router must
call askQuestions to collect clarifying inputs before mapping intents to any
specialist token (e.g., `python-specialist`, `wxpython-specialist`,
`desktop-a11y-specialist`, `desktop-a11y-testing-coach`, `a11y-tool-builder`)
whenever more than one route matches; ensure askQuestions is used for structured
intake (not limited to clickable-only choices) and that only after answers are
returned the router selects the correct specialist and produces the Expected
Output.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 8fd0140f-0591-472c-bc6d-d414d4848f9d
📒 Files selected for processing (6)
.github/agents/wxpython-specialist.agent.md.github/prompts/a11y-tool-builder.prompt.md.github/prompts/desktop-a11y-specialist.prompt.md.github/prompts/desktop-a11y-testing-coach.prompt.md.github/prompts/developer-hub.prompt.md.github/prompts/wxpython-specialist.prompt.md
|
@coderabbitai review |
✅ Actions performedReview triggered.
|
There was a problem hiding this comment.
Actionable comments posted: 2
♻️ Duplicate comments (2)
.github/prompts/desktop-a11y-specialist.prompt.md (1)
28-34:⚠️ Potential issue | 🟡 MinorMake
askQuestionsexplicit in the intake step.The intake text currently says “Ask the user” but doesn’t explicitly require calling
askQuestions, which weakens the structured-intake contract in this prompt.Suggested wording update
-Ask the user: +Use `askQuestions` to gather this intake context (responses can remain free-form):Based on learnings: In SigmaNight/basiliskLLM, for agent prompt files under .github/prompts/** and .github/agents/**, use askQuestions for structured intake and keep responses free-form (no clickable-choice enforcement).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/prompts/desktop-a11y-specialist.prompt.md around lines 28 - 34, Update the intake step text to explicitly require calling the askQuestions helper (e.g., "Call askQuestions with the following fields: Platform(s), UI framework, Target screen readers, Known issues") so the structured-intake contract is clear; ensure the wording instructs agents to use askQuestions for structured intake but still allow free-form responses (no clickable-choice enforcement), and apply this pattern consistently for agent prompt files under .github/prompts/** and .github/agents/** (referencing the askQuestions function/name to locate the implementation)..github/agents/wxpython-specialist.agent.md (1)
47-48:⚠️ Potential issue | 🟠 MajorDo not hard-require clickable option UI in
askQuestionsguidance.This wording mandates clickable choices and forbids plain structured prompts, which conflicts with the repo’s current agent guidance. Keep
askQuestionsrequired for structure, but allow non-clickable/free-form structured responses.Based on learnings: In SigmaNight/basiliskLLM, use askQuestions for structured intake in .github/prompts/** and .github/agents/**, but do not enforce clickable choices or predefined option lists.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/agents/wxpython-specialist.agent.md around lines 47 - 48, The agent prompt currently mandates clickable choices with the phrase "You MUST use the `askQuestions` tool" and forbids free-form structured replies; update the wording to still require using the askQuestions tool for structured intake but explicitly allow non-clickable/free-form structured responses or plain-text structured prompts when clickable UI is not feasible. Locate the sentence containing "You MUST use the `askQuestions` tool" and replace it with a phrasing that enforces using askQuestions for structure while permitting free-form structured responses (mentioning `askQuestions` by name) and clarifying that clickable choices are preferred but not strictly required. Ensure the change preserves the requirement for structured intake but removes the hard prohibition on non-clickable options.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/prompts/desktop-a11y-testing-coach.prompt.md:
- Line 1: The file begins with a UTF-8 BOM before the front-matter delimiter
'---'; remove the BOM so the very first bytes of the file are the three hyphens.
Open the file in an editor or re-save it using UTF-8 without BOM (or strip the
BOM programmatically) so the front-matter parser sees the leading '---'
immediately and metadata detection succeeds.
- Around line 27-34: Update the Step 1 intake block to explicitly call/use
askQuestions for structured user input (replace or augment the current freeform
bullet list), so the prompt invokes askQuestions with the five fields
(Platform(s), UI framework, Screen readers to test, Key user flows, Test output
format) rather than relying on implicit instructions; ensure the prompt text
references the askQuestions API/keyword and maps each field to a specific
question so downstream agents use askQuestions consistently.
---
Duplicate comments:
In @.github/agents/wxpython-specialist.agent.md:
- Around line 47-48: The agent prompt currently mandates clickable choices with
the phrase "You MUST use the `askQuestions` tool" and forbids free-form
structured replies; update the wording to still require using the askQuestions
tool for structured intake but explicitly allow non-clickable/free-form
structured responses or plain-text structured prompts when clickable UI is not
feasible. Locate the sentence containing "You MUST use the `askQuestions` tool"
and replace it with a phrasing that enforces using askQuestions for structure
while permitting free-form structured responses (mentioning `askQuestions` by
name) and clarifying that clickable choices are preferred but not strictly
required. Ensure the change preserves the requirement for structured intake but
removes the hard prohibition on non-clickable options.
In @.github/prompts/desktop-a11y-specialist.prompt.md:
- Around line 28-34: Update the intake step text to explicitly require calling
the askQuestions helper (e.g., "Call askQuestions with the following fields:
Platform(s), UI framework, Target screen readers, Known issues") so the
structured-intake contract is clear; ensure the wording instructs agents to use
askQuestions for structured intake but still allow free-form responses (no
clickable-choice enforcement), and apply this pattern consistently for agent
prompt files under .github/prompts/** and .github/agents/** (referencing the
askQuestions function/name to locate the implementation).
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro
Run ID: 2f7a7690-010f-47fb-a6af-eae06ba295f6
📒 Files selected for processing (4)
.github/agents/wxpython-specialist.agent.md.github/prompts/desktop-a11y-specialist.prompt.md.github/prompts/desktop-a11y-testing-coach.prompt.md.github/prompts/wxpython-specialist.prompt.md
closes #1098
feat: introduce specialized GitHub Copilot agent team
Overview
This PR adds a team of specialized GitHub Copilot agents under agents, tailored for the Python/wxPython desktop accessibility stack used by BasiliskLLM. Instead of relying on a single general-purpose assistant, contributors can now invoke focused experts that carry deep domain knowledge, structured handoff workflows, and curated authoritative references — all from inside VS Code's Copilot Chat.
What this brings
developer-hubacts as the command center; it automatically routes tasks to the right specialist and hands work back when it's done.askQuestionstool for structured, clickable choices instead of free-form chat, keeping workflows actionable.Agents
developer-hub— Lead / Command CenterThe default entry point for all development tasks. Understands the full scope of the project and routes work to the right specialist.
python-specialist— Python Language ExpertCovers debugging, packaging (cx_Freeze/PyInstaller/Nuitka), testing (pytest), type checking (mypy/pyright), async/concurrency patterns, performance optimization, and dependency management.
wxpython-specialist— wxPython GUI ExpertCovers sizer layouts, event handling,
wx.CallAfter/wx.PostEventthreading patterns, AUI framework, dialog design, custom controls, menu/toolbar construction, and cross-platform gotchas.desktop-a11y-specialist— Desktop Accessibility APIs ExpertCovers platform accessibility APIs: UI Automation (Windows), MSAA/IAccessible2, ATK/AT-SPI (Linux), NSAccessibility (macOS), screen reader Name/Role/Value/State properties, focus management, high contrast, and custom widget accessibility.
desktop-a11y-testing-coach— Accessibility Testing CoachCovers testing workflows with NVDA, JAWS, Narrator, VoiceOver, and Orca, using Accessibility Insights for Windows, automated UIA tests, keyboard-only navigation testing, and creating structured accessibility test plans.
a11y-tool-builder— Accessibility Tool ArchitectCovers designing and building accessibility scanning tools, rule engines, severity scoring algorithms, CLI/GUI scanner architecture, report generators, and CI/CD integration for accessibility auditing tooling.
Files changed
Summary by CodeRabbit