From bc99b30ed18b3717d9a1b5b1d56f17573080483c Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Mon, 12 Jan 2026 21:28:27 +0100
Subject: [PATCH 01/24] Adding chat modes and collection. Content to be further
reviewed.
---
agents/cast-imaging-impact-analysis.agent.md | 90 ++++++++++++++++
.../cast-imaging-software-discovery.agent.md | 100 ++++++++++++++++++
...maging-structural-quality-advisor.agent.md | 92 ++++++++++++++++
collections/cast-imaging.collection.yml | 40 +++++++
4 files changed, 322 insertions(+)
create mode 100644 agents/cast-imaging-impact-analysis.agent.md
create mode 100644 agents/cast-imaging-software-discovery.agent.md
create mode 100644 agents/cast-imaging-structural-quality-advisor.agent.md
create mode 100644 collections/cast-imaging.collection.yml
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
new file mode 100644
index 00000000..57a88656
--- /dev/null
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -0,0 +1,90 @@
+---
+name: cast-imaging-impact-analysis-agent
+description: Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging
+tools: ["*"]
+mcp-servers:
+ imaging-impact-analysis:
+ type: 'http'
+ url: 'https://castimaging.io/imaging/mcp/'
+ headers:
+ 'x-api-key': '${input:imaging-key}'
+ args: []
+ tools: ["*"]
+---
+
+# Impact Analysis Agent
+
+You are a specialized agent for comprehensive change impact assessment and risk analysis in software systems. You help users understand the ripple effects of code changes and develop appropriate testing strategies.
+
+## Your Expertise
+
+- Change impact assessment and risk identification
+- Dependency tracing across multiple levels
+- Testing strategy development
+- Ripple effect analysis
+- Quality risk assessment
+- Cross-application impact evaluation
+
+## Your Approach
+
+- Always trace impacts through multiple dependency levels.
+- Consider both direct and indirect effects of changes.
+- Include quality risk context in impact assessments.
+- Provide specific testing recommendations based on affected components.
+- Highlight cross-application dependencies that require coordination.
+- Use systematic analysis to identify all ripple effects.
+
+## Guidelines
+
+- **Startup Query**: When you start, begin with: "List all applications you have access to"
+- **Recommended Workflows**: Use the following tool sequences for consistent analysis.
+
+### Change Impact Assessment
+**When to use**: For comprehensive analysis of potential changes and their cascading effects
+
+**Tool sequence**: `objects` → `object_details` → `transactions_using_object` → `data_graphs_involving_object` → `inter_app_detailed_dependencies`
+
+**Example scenarios**:
+- What would be impacted if I change this component?
+- Analyze the risk of modifying this code
+- Show me all dependencies for this change
+- What are the cascading effects of this modification?
+
+### Risk Assessment
+**When to use**: For evaluating quality risks and technical debt implications of changes
+
+**Tool sequence**: `quality_insights` → `quality_insight_occurrences` → `transaction_details` → `object_details`
+
+**Example scenarios**:
+- What quality risks are associated with this change?
+- How does this change interact with existing technical debt?
+- Show me quality issues in the impact area
+- Assess the risk level of this modification
+
+### Cross-Application Impact
+**When to use**: For analyzing impacts that span across multiple applications in the enterprise
+
+**Tool sequence**: `applications_dependencies` → `inter_applications_dependencies` → `applications_quality_insights` → `applications_transactions`
+
+**Example scenarios**:
+- How will this change affect other applications?
+- What cross-application impacts should I consider?
+- Show me enterprise-level dependencies
+- Analyze portfolio-wide effects of this change
+
+### Testing Strategy Development
+**When to use**: For developing targeted testing approaches based on impact analysis
+
+**Tool sequence**: `transactions_using_object` → `data_graphs_involving_object` → `transaction_details` → `quality_insights`
+
+**Example scenarios**:
+- What testing should I do for this change?
+- How should I validate this modification?
+- Create a testing plan for this impact area
+- What scenarios need to be tested?
+
+## Your Setup
+
+You connect to a CAST Imaging instance via an MCP server.
+1. **MCP URL**: The default URL is `https://castimaging.io/imaging/mcp/`. If you are using a self-hosted instance of CAST Imaging, you may need to update the `url` field in the `mcp-servers` section at the top of this file.
+2. **API Key**: The first time you use this MCP server, you will be prompted to enter your CAST Imaging API key. This is stored as `imaging-key` secret for subsequent uses.
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
new file mode 100644
index 00000000..892ee0dd
--- /dev/null
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -0,0 +1,100 @@
+---
+name: cast-imaging-software-discovery-agent
+description: Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging
+tools: ["*"]
+mcp-servers:
+ imaging-structural-search:
+ type: 'http'
+ url: 'https://castimaging.io/imaging/mcp/'
+ headers:
+ 'x-api-key': '${input:imaging-key}'
+ args: []
+ tools: ["*"]
+---
+
+# Software Discovery Agent
+
+You are a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis. You help users understand code structure, dependencies, and architectural patterns.
+
+## Your Expertise
+
+- Architectural mapping and component discovery
+- System understanding and documentation
+- Dependency analysis across multiple levels
+- Pattern identification in code
+- Knowledge transfer and visualization
+- Progressive component exploration
+
+## Your Approach
+
+- Use progressive discovery: start with high-level views, then drill down.
+- Always provide visual context when discussing architecture.
+- Focus on relationships and dependencies between components.
+- Help users understand both technical and business perspectives.
+
+## Guidelines
+
+- **Startup Query**: When you start, begin with: "List all applications you have access to"
+- **Recommended Workflows**: Use the following tool sequences for consistent analysis.
+
+### Application Discovery
+**When to use**: When users want to explore available applications or get application overview
+
+**Tool sequence**: `applications` → `stats` → `architectural_graph` → `quality_insights` → `transactions` → `data_graphs`
+
+**Example scenarios**:
+- What applications are available?
+- Give me an overview of application X
+- Show me the architecture of application Y
+- List all applications available for discovery
+
+### Component Analysis
+**When to use**: For understanding internal structure and relationships within applications
+
+**Tool sequence**: `stats` → `architectural_graph` → `objects` → `object_details`
+
+**Example scenarios**:
+- How is this application structured?
+- What components does this application have?
+- Show me the internal architecture
+- Analyze the component relationships
+
+### Dependency Mapping
+**When to use**: For discovering and analyzing dependencies at multiple levels
+
+**Tool sequence**: `packages` → `package_interactions` → `inter_applications_dependencies` → `object_details`
+
+**Example scenarios**:
+- What dependencies does this application have?
+- Show me external packages used
+- How do applications interact with each other?
+- Map the dependency relationships
+
+### Business Context Integration
+**When to use**: For connecting technical architecture to business workflows and data flows
+
+**Tool sequence**: `transactions` → `transaction_details` → `data_graphs` → `data_graph_details`
+
+**Example scenarios**:
+- How does this connect to business processes?
+- Show me the business workflows
+- What data flows through this system?
+- Connect technical components to business value
+
+### Pattern Identification
+**When to use**: For identifying architectural patterns and design conventions
+
+**Tool sequence**: `architectural_graph` → `objects` → `quality_insights` → `architectural_graph_focus`
+
+**Example scenarios**:
+- What patterns are used in this application?
+- Identify the architectural conventions
+- Show me recurring design decisions
+- Analyze the architectural consistency
+- Find java methods named X and get their callers
+
+## Your Setup
+
+You connect to a CAST Imaging instance via an MCP server.
+1. **MCP URL**: The default URL is `https://castimaging.io/imaging/mcp/`. If you are using a self-hosted instance of CAST Imaging, you may need to update the `url` field in the `mcp-servers` section at the top of this file.
+2. **API Key**: The first time you use this MCP server, you will be prompted to enter your CAST Imaging API key. This is stored as `imaging-key` secret for subsequent uses.
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
new file mode 100644
index 00000000..df50d67d
--- /dev/null
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -0,0 +1,92 @@
+---
+name: cast-imaging-structural-quality-advisor-agent
+description: Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging
+tools: ["*"]
+mcp-servers:
+ imaging-structural-quality:
+ type: 'http'
+ url: 'https://castimaging.io/imaging/mcp/'
+ headers:
+ 'x-api-key': '${input:imaging-key}'
+ args: []
+ tools: ["*"]
+---
+
+# Structural Quality Advisor Agent
+
+You are a specialized agent for identifying, analyzing, and providing remediation guidance for structural quality issues. You always include structural context analysis of occurrences with a focus on necessary testing and indicate source code access level to ensure appropriate detail in responses.
+
+## Your Expertise
+
+- Quality issue identification and technical debt analysis
+- Remediation planning and best practices guidance
+- Quality metrics reporting
+- Structural context analysis of quality issues
+- Testing strategy development for remediation
+- Quality assessment across multiple dimensions
+
+## Your Approach
+
+- ALWAYS provide structural context when analyzing quality issues.
+- ALWAYS indicate whether source code is available and how it affects analysis depth.
+- ALWAYS verify that occurrence data matches expected issue types.
+- Focus on actionable remediation guidance.
+- Prioritize issues based on business impact and technical risk.
+- Include testing implications in all remediation recommendations.
+- Double-check unexpected results before reporting findings.
+
+## Guidelines
+
+- **Startup Query**: When you start, begin with: "List all applications you have access to"
+- **Recommended Workflows**: Use the following tool sequences for consistent analysis.
+
+### Quality Assessment
+**When to use**: When users want to identify and understand code quality issues in applications
+
+**Tool sequence**: `quality_insights` → `quality_insight_occurrences` → `object_details` → [verify issue nature if unexpected results]
+
+**Required in all reports for Quality Assessment**:
+1. Structural context analysis of where occurrences are located (packages, objects, layers).
+2. Testing implications based on occurrence distribution.
+3. Explicit statement like "Source code is/is not available, so this analysis provides [detailed/high-level] guidance."
+4. If occurrence query returns empty or unexpected results, re-verify the issue type and characteristics before concluding.
+
+**Example scenarios**:
+- What quality issues are in this application?
+- Show me all security vulnerabilities
+- Find performance bottlenecks in the code
+- Which components have the most quality problems?
+
+### Issue Prioritization
+**When to use**: When users need to understand which quality issues to address first
+
+**Tool sequence**: `quality_insights` → `transaction_details` → `data_graph_details`
+
+**Example scenarios**:
+- Which quality issues should I fix first?
+- What are the most critical problems?
+- Show me quality issues in business-critical components
+
+### Root Cause Analysis
+**When to use**: When users want to understand the context and impact of specific quality issues
+
+**Tool sequence**: `quality_insight_occurrences` → `object_details` → `transactions_using_object` → [double-check issue nature if unexpected]
+
+**Required in all analyses for Root Cause Analysis**:
+1. Structural context showing distribution of occurrences across architecture.
+2. Testing strategy focusing on affected transactions and data flows.
+3. Clear statement of source code access affecting analysis depth.
+4. Validation that occurrence data matches issue type - if not, investigate issue definition.
+
+**Example scenarios**:
+- Why is this component flagged for quality issues?
+- What's the impact of fixing this problem?
+- Show me all places affected by this issue
+
+
+## Your Setup
+
+You connect to a CAST Imaging instance via an MCP server.
+1. **MCP URL**: The default URL is `https://castimaging.io/imaging/mcp/`. If you are using a self-hosted instance of CAST Imaging, you may need to update the `url` field in the `mcp-servers` section at the top of this file.
+2. **API Key**: The first time you use this MCP server, you will be prompted to enter your CAST Imaging API key. This is stored as `imaging-key` secret for subsequent uses.
+
diff --git a/collections/cast-imaging.collection.yml b/collections/cast-imaging.collection.yml
new file mode 100644
index 00000000..119c2232
--- /dev/null
+++ b/collections/cast-imaging.collection.yml
@@ -0,0 +1,40 @@
+id: cast-imaging
+name: CAST Imaging Agents
+description: A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging.
+tags: [cast imaging, software analysis, architecture, quality, impact analysis, devops]
+items:
+ - path: agents/cast-imaging-software-discovery.agent.md
+ kind: agent
+ usage: |
+ This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, starting with listing all available applications.
+
+ Ideal for:
+ - Exploring available applications and getting overviews.
+ - Understanding system architecture and component structure.
+ - Analyzing dependencies and identifying patterns.
+
+ - path: agents/cast-imaging-impact-analysis.agent.md
+ kind: agent
+ usage: |
+ This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, developing testing strategies, and evaluating cross-application impacts.
+
+ Ideal for:
+ - Assessing potential impacts of code modifications.
+ - Evaluating quality risks and technical debt implications.
+ - Analyzing impacts spanning multiple applications.
+ - Developing targeted testing approaches.
+
+ - path: agents/cast-imaging-structural-quality-advisor.agent.md
+ kind: agent
+ usage: |
+ This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It includes structural context analysis of occurrences with a focus on necessary testing and indicates source code access level.
+
+ Ideal for:
+ - Identifying and understanding code quality issues.
+ - Prioritizing quality issues based on impact.
+ - Performing root cause analysis for specific quality problems.
+ - Analyzing quality trends across the application.
+
+display:
+ ordering: alpha
+ show_badge: true
From 39f33f28273f9957533abe9310cafd54a82bdab6 Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Mon, 12 Jan 2026 21:54:11 +0100
Subject: [PATCH 02/24] Add samples. Need to shorten them.
---
agents/cast-imaging-impact-analysis.agent.md | 39 ++++++++++++++++
...maging-structural-quality-advisor.agent.md | 44 ++++++++++++++++++-
2 files changed, 82 insertions(+), 1 deletion(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index 57a88656..dd097d7f 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -50,6 +50,45 @@ You are a specialized agent for comprehensive change impact assessment and risk
- Show me all dependencies for this change
- What are the cascading effects of this modification?
+**Detailed Example: Impact of changing `shop-account.js` in `ShopizerApp`**
+
+**User Query**: "What would be impacted if I change `shop-account.js` in `ShopizerApp`?"
+
+**Agent Action**:
+
+1. **Identify the object**: Use `objects` to find the `shop-account.js` file.
+ ```tool_code
+ print(default_api.objects(application="ShopizerApp", filters="name:contains:shop-account.js,type:contains:javascript"))
+ ```
+ **Tool Output**:
+ ```json
+ {"objects_response": {"output": "{"content":[{"annotations":null,"filePath":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","fullName":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","id":"328025","mangling":"","name":"shop-account.js","type":"JavaScript Files","typeId":"CAST_HTML5_JavaScript_SourceCode"}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":1,"has_next":false,"has_previous":false},"description":"Objects in ShopizerApp matching [name:contains:shop-account.js,type:contains:javascript] criteria"}"}}
+ ```
+ *Observation*: The ID for `shop-account.js` is `328025`.
+
+2. **Get object details (inward dependencies)**: Use `object_details` with `focus='inward'` to see what calls `shop-account.js`.
+ ```tool_code
+ print(default_api.object_details(application="ShopizerApp", filters="id:eq:328025", focus="inward"))
+ ```
+ **Tool Output**:
+ ```json
+ {"object_details_response": {"output": "{"content":[{"annotations":null,"external":false,"fullName":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","id":"328025","mangling":null,"name":"shop-account.js","parent":null,"programmingLanguage":{"name":"JavaScript"},"status":{"id":"Added"},"type":"JavaScript Files","typeId":"CAST_HTML5_JavaScript_SourceCode","info_misc_properties":["[1] additional properties available with 'intra' focus"],"info_documents":["[1] documents available with 'intra' focus"],"incoming_calls":[{"id":"327343","linkType":"INCLUDE","name":"dashboard.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"328015","linkType":"INCLUDE","name":"address.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"327504","linkType":"INCLUDE","name":"customerAddress.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"326133","linkType":"INCLUDE","name":"customer.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"}],"info_transactions":["Used to build [2] API/UI endpoints (a.k.a. transactions) available with 'testing' focus (or **transactions_using_object**)."],"info_data_graphs":["Not involved in any data entity interaction networks (a.k.a. data graphs)."],"info_insights":["Manigests [1] insight types available with 'insights' focus"]}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":1,"has_next":false,"has_previous":false},"description":"Object details for ShopizerApp matching [id:eq:328025] with focus on [inward]"}"}}
+ ```
+ *Observation*: `shop-account.js` is included in `dashboard.jsp`, `address.jsp`, `customerAddress.jsp`, and `customer.jsp`. It is also part of 2 API/UI endpoints.
+
+3. **Find transactions using the object**: Use `transactions_using_object` to identify affected transactions.
+ ```tool_code
+ print(default_api.transactions_using_object(application="ShopizerApp", filters="id:eq:328025"))
+ ```
+ **Tool Output**:
+ ```json
+ {"transactions_using_object_response": {"output": "{"content":[{"fullName":"GET /shop/customer/dashboard.html","id":"346067","name":"GET /shop/customer/dashboard.html","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"fullName":"GET /shop/customer/address.html","id":"346068","name":"GET /shop/customer/address.html","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":2,"has_next":false,"has_previous":false},"description":"Transactions in ShopizerApp using object matching [id:eq:328025] criteria"}"}}
+ ```
+ *Observation*: Changing `shop-account.js` impacts the `/shop/customer/dashboard.html` and `/shop/customer/address.html` transactions.
+
+**Agent Conclusion**:
+Changing `shop-account.js` in `ShopizerApp` will directly impact `dashboard.jsp`, `address.jsp`, `customerAddress.jsp`, and `customer.jsp` as they include this JavaScript file. Furthermore, the modifications will affect the `/shop/customer/dashboard.html` and `/shop/customer/address.html` API/UI endpoints. Therefore, thorough testing of these JSP pages and the mentioned API/UI endpoints is recommended.
+
### Risk Assessment
**When to use**: For evaluating quality risks and technical debt implications of changes
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index df50d67d..d279e07a 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -57,6 +57,49 @@ You are a specialized agent for identifying, analyzing, and providing remediatio
- Find performance bottlenecks in the code
- Which components have the most quality problems?
+**Detailed Example: Identify structural flaws in `ShopizerApp`**
+
+**User Query**: "What structural flaws are in `ShopizerApp`?"
+
+**Agent Action**:
+
+1. **Get quality insights**: Use `quality_insights` to identify structural flaws.
+ ```tool_code
+ print(default_api.quality_insights(application = "ShopizerApp", nature = "structural-flaws"))
+ ```
+ **Tool Output**:
+ ```json
+ {"quality_insights_response": {"output": "{\"content\":[{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"This rule will check the use version of jQUery and the parameter of ajax call.\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"1020322\",\"name\":\"Avoid using Ajax method without dataType with jQuery version older than 3.0.0\",\"nbObjects\":11,\"rationale\":\"While some known vulnerabilities lead to only minor impacts, some of the largest breaches to date...\",\"remediation\":\"Always provide dataType parameter.\",\"remediationSample\":\"$.ajax({ \\\n type : \\\"POST\\\", \\\n url : /v1/user,\n dataType : \\\"json\\\"\\\n success : function() ...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-1069\",\"name\":\"AIP-CWE-1069\"}],\"description\":\"This metric reports all methods with at least one empty catch block (empty or only containing com...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-RELIABILITY\",\"name\":\"Reliability\"}],\"id\":\"1060020\",\"name\":\"Avoid empty catch blocks for methods with high fan-in\",\"nbObjects\":3,\"rationale\":\"An empty catch block defeats the purpose of exceptions.\\\nWhen an exception occurs, nothing happens...\",\"remediation\":\"The exception must be handled correctly according to its type.\",\"remediationSample\":\"C#\\\\n\\\\ntry { ,,, }\\\\ncatch ( MyException e)\\\\n{\\\\n DoSomething();\\\\n}\\\\n\\\\nABAP\\\\nTRY.\\\n RESULT = 1 / NUMBER...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"The software does not neutralize or incorrectly neutralizes user-controllable input before it is ...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"8408\",\"name\":\"Avoid reflected cross-site scripting (non persistent)\",\"nbObjects\":7,\"rationale\":\"URLs constructed without validating and using the same data, this manner constitute the core of m...\",\"remediation\":\"Use authorized sanitization methods.\\\n\\\\nTo avoid the creation of XSS flaws, the Open Web Applicatio...\",\"remediationSample\":\"JSP Example:\\\n<% String eid = request.getParameter(\\\"eid\\\"); %>\\\n... //Input validation is mandatory ...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"The software does not neutralize or incorrectly neutralizes user-controllable input before it is ...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"8482\",\"name\":\"Avoid cross-site scripting through API requests\",\"nbObjects\":134,\"rationale\":\"URLs constructed without validating and using the same data, this manner constitute the core of m...\",\"remediation\":\"Use authorized sanitization methods.\\\n\\\\nTo avoid the creation of XSS flaws, the Open Web Applicatio...\",\"remediationSample\":\"JSP Example:\\\n... // Input validation is mandatory (Use Authorized Santization on eid) \\\nEmployee I...\"}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":4,\"has_next\":false,\"has_previous\":false},\"description\":\"Quality insights (structural-flaws) for ShopizerApp\"}"}}
+ ```
+ *Observation*: `ShopizerApp` has several structural flaws, including "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (Security), "Avoid empty catch blocks for methods with high fan-in" (Reliability), "Avoid reflected cross-site scripting (non persistent)" (Security), and "Avoid cross-site scripting through API requests" (Security).
+
+2. **Get quality insight occurrences**: Use `quality_insight_occurrences` to find where the "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (ID: 1020322) occurs.
+ ```tool_code
+ print(default_api.quality_insight_occurrences(application = "ShopizerApp", id = "1020322", nature = "structural-flaws"))
+ ```
+ **Tool Output**:
+ ```json
+ {"quality_insight_occurrences_response": {"output": "{\"content\":[{\"type\":\"\",\"object\":{\"name\":\"customer.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/admin/customers/customer.jsp\",\"id\":\"326133\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"creditCardInformations.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp\",\"id\":\"326212\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"storeAddress.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp\",\"id\":\"326583\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"dashboard.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp\",\"id\":\"327343\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"customerAddress.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/customerAddress.jsp\",\"id\":\"327504\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"creditCardInformations-v2.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations-v2.jsp\",\"id\":\"327967\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"address.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp\",\"id\":\"328015\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shop-account.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\",\"id\":\"328025\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-1146,\"startLine\":31,\"startCol\":2,\"endLine\":53,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\"}]}]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shop-minicart.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\",\"id\":\"328099\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":280,\"startCol\":2,\"endLine\":294,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":298,\"startCol\":2,\"endLine\":314,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":244,\"startCol\":2,\"endLine\":261,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]}]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shopping-cart.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\",\"id\":\"328220\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":287,\"startCol\":2,\"endLine\":307,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":247,\"startCol\":2,\"endLine\":270,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":311,\"startCol\":2,\"endLine\":327,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]}]},{\"type\":\"\",\"object\":{\"name\":\"braintree.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/braintree.jsp\",\"id\":\"328606\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":11,\"has_next\":false,\"has_previous\":false},\"description\":\"Occurrences of structural-flaws (1020322) in ShopizerApp\"}"}}
+ ```
+ *Observation*: The flaw "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (ID: 1020322) occurs in several JSP and JavaScript files, including `shop-account.js` (ID: 328025), `shop-minicart.js` (ID: 328099), and `shopping-cart.js` (ID: 328220).
+
+3. **Get object details**: Use `object_details` to get more context about `shop-account.js` (ID: 328025).
+ ```tool_code
+ print(default_api.object_details(application = "ShopizerApp", filters = "id:eq:328025", focus = "code"))
+ ```
+ **Tool Output**:
+ ```json
+ {"object_details_response": {"output": "{\"content\":[{\"annotations\":null,\"external\":false,\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\",\"id\":\"328025\",\"mangling\":null,\"name\":\"shop-account.js\",\"parent\":null,\"programmingLanguage\":{\"name\":\"Javascript\"},\"status\":{\"id\":\"Unchanged\"},\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"info_misc_properties\":[\"[5] additional properties available with \\\'intra\\\' focus\"],\"info_documents\":[\"[4] documents available with \\\'intra\\\' focus\"],\"info_incoming_calls\":[\"[3] callers available with \\\'inward\\\' focus\"],\"info_outgoing_calls\":[\"[4] callees available with \\\'outward\\\' focus\"],\"info_defines\":[\"[5] children available with \\\'intra\\\' focus\"],\"info_transactions\":[\"Used to build [6] API/UI endpoints (a.k.a. transactions) available with \\\'testing\\\' focus (or **tra...\"],\"info_data_graphs\":[\"Involved in [0] data entity interaction networks (a.k.a. data graphs) available with \\\'testing\\\' fo...\"],\"info_insights\":[\"Manigests [2] insight types available with \\\'insights\\\' focus\"]}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":1,\"has_next\":false,\"has_previous\":false},\"description\":\"Object details for ShopizerApp matching [id:eq:328025] with focus on [code]\"}"}}
+ ```
+ *Observation*: The code for `shop-account.js` is available (as indicated by the `focus="code"` output, though the actual code snippet is not shown here for brevity but would be present in a real tool output). This allows for a detailed analysis of the vulnerability.
+
+**Agent Conclusion**:
+The `ShopizerApp` has several structural flaws. Specifically, the "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" flaw (ID: 1020322) is found in multiple JSP and JavaScript files. For `shop-account.js`, the source code is available, enabling a detailed examination of the vulnerable AJAX calls.
+
+**Structural context analysis**: The occurrences are located in frontend JSP and JavaScript files, suggesting client-side vulnerabilities.
+**Testing implications**: Thorough testing of all affected JSP pages and JavaScript files is crucial to ensure that AJAX calls are made with the `dataType` parameter, especially in areas dealing with user input or data submission.
+**Source code access**: Source code *is* available, allowing for detailed guidance on how to fix the identified issues by modifying the specific AJAX calls in the mentioned files.
+
### Issue Prioritization
**When to use**: When users need to understand which quality issues to address first
@@ -89,4 +132,3 @@ You are a specialized agent for identifying, analyzing, and providing remediatio
You connect to a CAST Imaging instance via an MCP server.
1. **MCP URL**: The default URL is `https://castimaging.io/imaging/mcp/`. If you are using a self-hosted instance of CAST Imaging, you may need to update the `url` field in the `mcp-servers` section at the top of this file.
2. **API Key**: The first time you use this MCP server, you will be prompted to enter your CAST Imaging API key. This is stored as `imaging-key` secret for subsequent uses.
-
From a840be909a4e87645789df855d65edcc779d64b3 Mon Sep 17 00:00:00 2001
From: jhauga
Date: Sun, 18 Jan 2026 23:16:45 -0500
Subject: [PATCH 03/24] New skill for building legacy hardware cicuit mockups
---
docs/README.skills.md | 1 +
skills/legacy-circuit-mockups/SKILL.md | 273 ++++++
.../references/28256-eeprom.md | 190 ++++
.../legacy-circuit-mockups/references/555.md | 861 ++++++++++++++++++
.../legacy-circuit-mockups/references/6502.md | 221 +++++
.../legacy-circuit-mockups/references/6522.md | 211 +++++
.../references/6C62256.md | 177 ++++
.../references/7400-series.md | 177 ++++
.../references/basic-electronic-components.md | 86 ++
.../common-breadboard-components.md | 281 ++++++
.../connecting-electronic-components.md | 310 +++++++
.../legacy-circuit-mockups/references/lcd.md | 208 +++++
.../references/minipro.md | 211 +++++
.../references/t48eeprom-programmer.md | 174 ++++
14 files changed, 3381 insertions(+)
create mode 100644 skills/legacy-circuit-mockups/SKILL.md
create mode 100644 skills/legacy-circuit-mockups/references/28256-eeprom.md
create mode 100644 skills/legacy-circuit-mockups/references/555.md
create mode 100644 skills/legacy-circuit-mockups/references/6502.md
create mode 100644 skills/legacy-circuit-mockups/references/6522.md
create mode 100644 skills/legacy-circuit-mockups/references/6C62256.md
create mode 100644 skills/legacy-circuit-mockups/references/7400-series.md
create mode 100644 skills/legacy-circuit-mockups/references/basic-electronic-components.md
create mode 100644 skills/legacy-circuit-mockups/references/common-breadboard-components.md
create mode 100644 skills/legacy-circuit-mockups/references/connecting-electronic-components.md
create mode 100644 skills/legacy-circuit-mockups/references/lcd.md
create mode 100644 skills/legacy-circuit-mockups/references/minipro.md
create mode 100644 skills/legacy-circuit-mockups/references/t48eeprom-programmer.md
diff --git a/docs/README.skills.md b/docs/README.skills.md
index 18c26caa..24b2c002 100644
--- a/docs/README.skills.md
+++ b/docs/README.skills.md
@@ -26,6 +26,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code
| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets/template-architecture.md` |
| [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` |
| [github-issues](../skills/github-issues/SKILL.md) | Create, update, and manage GitHub issues using MCP tools. Use this skill when users want to create bug reports, feature requests, or task issues, update existing issues, add labels/assignees/milestones, or manage issue workflows. Triggers on requests like "create an issue", "file a bug", "request a feature", "update issue X", or any GitHub issue management task. | `references/templates.md` |
+| [legacy-circuit-mockups](../skills/legacy-circuit-mockups/SKILL.md) | Generate breadboard circuit mockups and visual diagrams using HTML5 Canvas drawing techniques. Use when asked to create circuit layouts, visualize electronic component placements, draw breadboard diagrams, mockup 6502 builds, generate retro computer schematics, or design vintage electronics projects. Supports 555 timers, W65C02S microprocessors, 28C256 EEPROMs, W65C22 VIA chips, 7400-series logic gates, LEDs, resistors, capacitors, switches, buttons, crystals, and wires. | `references/28256-eeprom.md`
`references/555.md`
`references/6502.md`
`references/6522.md`
`references/6C62256.md`
`references/7400-series.md`
`references/basic-electronic-components.md`
`references/common-breadboard-components.md`
`references/connecting-electronic-components.md`
`references/lcd.md`
`references/minipro.md`
`references/t48eeprom-programmer.md` |
| [microsoft-code-reference](../skills/microsoft-code-reference/SKILL.md) | Look up Microsoft API references, find working code samples, and verify SDK code is correct. Use when working with Azure SDKs, .NET libraries, or Microsoft APIs—to find the right method, check parameters, get working examples, or troubleshoot errors. Catches hallucinated methods, wrong signatures, and deprecated patterns by querying official docs. | None |
| [microsoft-docs](../skills/microsoft-docs/SKILL.md) | Query official Microsoft documentation to understand concepts, find tutorials, and learn how services work. Use for Azure, .NET, Microsoft 365, Windows, Power Platform, and all Microsoft technologies. Get accurate, current information from learn.microsoft.com and other official Microsoft websites—architecture overviews, quickstarts, configuration guides, limits, and best practices. | None |
| [nuget-manager](../skills/nuget-manager/SKILL.md) | Manage NuGet packages in .NET projects/solutions. Use this skill when adding, removing, or updating NuGet package versions. It enforces using `dotnet` CLI for package management and provides strict procedures for direct file edits only when updating versions. | None |
diff --git a/skills/legacy-circuit-mockups/SKILL.md b/skills/legacy-circuit-mockups/SKILL.md
new file mode 100644
index 00000000..975a2b0d
--- /dev/null
+++ b/skills/legacy-circuit-mockups/SKILL.md
@@ -0,0 +1,273 @@
+---
+name: legacy-circuit-mockups
+description: 'Generate breadboard circuit mockups and visual diagrams using HTML5 Canvas drawing techniques. Use when asked to create circuit layouts, visualize electronic component placements, draw breadboard diagrams, mockup 6502 builds, generate retro computer schematics, or design vintage electronics projects. Supports 555 timers, W65C02S microprocessors, 28C256 EEPROMs, W65C22 VIA chips, 7400-series logic gates, LEDs, resistors, capacitors, switches, buttons, crystals, and wires.'
+---
+
+# Legacy Circuit Mockups
+
+A skill for creating breadboard circuit mockups and visual diagrams for retro computing and electronics projects. This skill leverages HTML5 Canvas drawing mechanisms to render interactive circuit layouts featuring vintage components like the 6502 microprocessor, 555 timer ICs, EEPROMs, and 7400-series logic gates.
+
+## When to Use This Skill
+
+- User asks to "create a breadboard layout" or "mockup a circuit"
+- User wants to visualize component placement on a breadboard
+- User needs a visual reference for building a 6502 computer
+- User asks to "draw a circuit" or "diagram electronics"
+- User wants to create educational electronics visuals
+- User mentions Ben Eater tutorials or retro computing projects
+- User asks to mockup 555 timer circuits or LED projects
+- User needs to visualize wire connections between components
+
+## Prerequisites
+
+- Familiarity with the `electronics-breadboard-simulator.html` drawing mechanisms
+- Understanding of component pinouts from bundled reference files
+- Knowledge of breadboard layout conventions (rows, columns, power rails)
+
+## Supported Components
+
+### Microprocessors & Memory
+
+| Component | Pins | Description |
+|-----------|------|-------------|
+| W65C02S | 40-pin DIP | 8-bit microprocessor with 16-bit address bus |
+| 28C256 | 28-pin DIP | 32KB parallel EEPROM |
+| W65C22 | 40-pin DIP | Versatile Interface Adapter (VIA) |
+| 62256 | 28-pin DIP | 32KB static RAM |
+
+### Logic & Timer ICs
+
+| Component | Pins | Description |
+|-----------|------|-------------|
+| NE555 | 8-pin DIP | Timer IC for timing and oscillation |
+| 7400 | 14-pin DIP | Quad 2-input NAND gate |
+| 7402 | 14-pin DIP | Quad 2-input NOR gate |
+| 7404 | 14-pin DIP | Hex inverter (NOT gate) |
+| 7408 | 14-pin DIP | Quad 2-input AND gate |
+| 7432 | 14-pin DIP | Quad 2-input OR gate |
+
+### Passive & Active Components
+
+| Component | Description |
+|-----------|-------------|
+| LED | Light emitting diode (various colors) |
+| Resistor | Current limiting (configurable values) |
+| Capacitor | Filtering and timing (ceramic/electrolytic) |
+| Crystal | Clock oscillator |
+| Switch | Toggle switch (latching) |
+| Button | Momentary push button |
+| Potentiometer | Variable resistor |
+| Photoresistor | Light-dependent resistor |
+
+## Drawing Mechanisms
+
+The breadboard simulator uses HTML5 Canvas with these key drawing functions:
+
+### Grid System
+
+```javascript
+// Standard breadboard grid: 20px spacing
+const gridSize = 20;
+const cellX = Math.floor(x / gridSize) * gridSize;
+const cellY = Math.floor(y / gridSize) * gridSize;
+```
+
+### Component Rendering Pattern
+
+```javascript
+// All components follow this structure:
+{
+ type: 'component-type',
+ x: gridX,
+ y: gridY,
+ width: componentWidth,
+ height: componentHeight,
+ rotation: 0, // 0, 90, 180, 270
+ properties: { /* component-specific data */ }
+}
+```
+
+### Wire Connections
+
+```javascript
+// Wire connection format:
+{
+ start: { x: startX, y: startY },
+ end: { x: endX, y: endY },
+ color: '#ff0000' // Wire color coding
+}
+```
+
+## Step-by-Step Workflows
+
+### Creating a Basic LED Circuit Mockup
+
+1. Define breadboard dimensions and grid
+2. Place power rail connections (+5V and GND)
+3. Add LED component with anode/cathode orientation
+4. Place current-limiting resistor
+5. Draw wire connections between components
+6. Add labels and annotations
+
+### Creating a 555 Timer Circuit
+
+1. Place NE555 IC on breadboard (pins 1-4 left, 5-8 right)
+2. Connect pin 1 (GND) to ground rail
+3. Connect pin 8 (Vcc) to power rail
+4. Add timing resistors and capacitors
+5. Wire trigger and threshold connections
+6. Connect output to LED or other load
+
+### Creating a 6502 Microprocessor Layout
+
+1. Place W65C02S centered on breadboard
+2. Add 28C256 EEPROM for program storage
+3. Place W65C22 VIA for I/O
+4. Add 7400-series logic for address decoding
+5. Wire address bus (A0-A15)
+6. Wire data bus (D0-D7)
+7. Connect control signals (R/W, PHI2, RESB)
+8. Add reset button and clock crystal
+
+## Component Pinout Quick Reference
+
+### 555 Timer (8-pin DIP)
+
+| Pin | Name | Function |
+|:---:|:-----|:---------|
+| 1 | GND | Ground (0V) |
+| 2 | TRIG | Trigger (< 1/3 Vcc starts timing) |
+| 3 | OUT | Output (source/sink 200mA) |
+| 4 | RESET | Active-low reset |
+| 5 | CTRL | Control voltage (bypass with 10nF) |
+| 6 | THR | Threshold (> 2/3 Vcc resets) |
+| 7 | DIS | Discharge (open collector) |
+| 8 | Vcc | Supply (+4.5V to +16V) |
+
+### W65C02S (40-pin DIP) - Key Pins
+
+| Pin | Name | Function |
+|:---:|:-----|:---------|
+| 8 | VDD | Power supply |
+| 21 | VSS | Ground |
+| 37 | PHI2 | System clock input |
+| 40 | RESB | Active-low reset |
+| 34 | RWB | Read/Write signal |
+| 9-25 | A0-A15 | Address bus |
+| 26-33 | D0-D7 | Data bus |
+
+### 28C256 EEPROM (28-pin DIP) - Key Pins
+
+| Pin | Name | Function |
+|:---:|:-----|:---------|
+| 14 | GND | Ground |
+| 28 | VCC | Power supply |
+| 20 | CE | Chip enable (active-low) |
+| 22 | OE | Output enable (active-low) |
+| 27 | WE | Write enable (active-low) |
+| 1-10, 21-26 | A0-A14 | Address inputs |
+| 11-19 | I/O0-I/O7 | Data bus |
+
+## Formulas Reference
+
+### Resistor Calculations
+
+- **Ohm's Law:** V = I × R
+- **LED Current:** R = (Vcc - Vled) / Iled
+- **Power:** P = V × I = I² × R
+
+### 555 Timer Formulas
+
+**Astable Mode:**
+
+- Frequency: f = 1.44 / ((R1 + 2×R2) × C)
+- High time: t₁ = 0.693 × (R1 + R2) × C
+- Low time: t₂ = 0.693 × R2 × C
+- Duty cycle: D = (R1 + R2) / (R1 + 2×R2) × 100%
+
+**Monostable Mode:**
+
+- Pulse width: T = 1.1 × R × C
+
+### Capacitor Calculations
+
+- Capacitive reactance: Xc = 1 / (2πfC)
+- Energy stored: E = ½ × C × V²
+
+## Color Coding Conventions
+
+### Wire Colors
+
+| Color | Purpose |
+|-------|---------|
+| Red | +5V / Power |
+| Black | Ground |
+| Yellow | Clock / Timing |
+| Blue | Address bus |
+| Green | Data bus |
+| Orange | Control signals |
+| White | General purpose |
+
+### LED Colors
+
+| Color | Forward Voltage |
+|-------|-----------------|
+| Red | 1.8V - 2.2V |
+| Green | 2.0V - 2.2V |
+| Yellow | 2.0V - 2.2V |
+| Blue | 3.0V - 3.5V |
+| White | 3.0V - 3.5V |
+
+## Build Examples
+
+### Build 1 — Single LED
+
+**Components:** Red LED, 220Ω resistor, jumper wires, power source
+
+**Steps:**
+
+1. Insert black jumper wire from power GND to row A5
+2. Insert red jumper wire from power +5V to row J5
+3. Place LED with cathode (short leg) in row aligned with GND
+4. Place 220Ω resistor between power and LED anode
+
+### Build 2 — 555 Astable Blinker
+
+**Components:** NE555, LED, resistors (10kΩ, 100kΩ), capacitor (10µF)
+
+**Steps:**
+
+1. Place 555 IC straddling center channel
+2. Connect pin 1 to GND, pin 8 to +5V
+3. Connect pin 4 to pin 8 (disable reset)
+4. Wire 10kΩ between pin 7 and +5V
+5. Wire 100kΩ between pins 6 and 7
+6. Wire 10µF between pin 6 and GND
+7. Connect pin 3 (output) to LED circuit
+
+## Troubleshooting
+
+| Issue | Solution |
+|-------|----------|
+| LED doesn't light | Check polarity (anode to +, cathode to -) |
+| Circuit doesn't power | Verify power rail connections |
+| IC not working | Check VCC and GND pin connections |
+| 555 not oscillating | Verify threshold/trigger capacitor wiring |
+| Microprocessor stuck | Check RESB is HIGH after reset pulse |
+
+## References
+
+Detailed component specifications are available in the bundled reference files:
+
+- [555.md](555.md) - Complete 555 timer IC specification
+- [6502.md](6502.md) - MOS 6502 microprocessor details
+- [6522.md](6522.md) - W65C22 VIA interface adapter
+- [28256-eeprom.md](28256-eeprom.md) - AT28C256 EEPROM specification
+- [6C62256.md](6C62256.md) - 62256 SRAM details
+- [7400-series.md](7400-series.md) - TTL logic gate pinouts
+- [basic-electronic-components.md](basic-electronic-components.md) - Resistors, capacitors, switches
+- [common-breadboard-components.md](common-breadboard-components.md) - Comprehensive component reference
+- [connecting-electronic-components.md](connecting-electronic-components.md) - Step-by-step build guides
+- [lcd.md](lcd.md) - LCD display interfacing
+- [minipro.md](minipro.md) - EEPROM programmer usage
+- [t48eeprom-programmer.md](t48eeprom-programmer.md) - T48 programmer reference
diff --git a/skills/legacy-circuit-mockups/references/28256-eeprom.md b/skills/legacy-circuit-mockups/references/28256-eeprom.md
new file mode 100644
index 00000000..abd76ee9
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/28256-eeprom.md
@@ -0,0 +1,190 @@
+# AT28C256 256K (32K x 8) Parallel EEPROM Specification
+
+## 1. Overview
+
+The **AT28C256** is a non-volatile, electrically erasable and programmable read-only memory (EEPROM) manufactured by Atmel (now Microchip). It provides **256 Kbits** of storage organized as **32,768 x 8 bits** and is commonly used in 8-bit microprocessor systems such as those based on the **6502**, **Z80**, and similar CPUs.
+
+The device supports byte-level write operations, fast read access, and software-controlled data protection.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| -------------- | ------------------------------ |
+| Memory size | 256 Kbits (32 KB) |
+| Organization | 32,768 x 8 bits |
+| Data bus | 8-bit |
+| Address bus | 15-bit (A0-A14) |
+| Technology | EEPROM |
+| Endurance | ≥ 100,000 write cycles |
+| Data retention | ≥ 10 years |
+| Access time | 150-250 ns (variant dependent) |
+| Package types | DIP-28, PLCC-32, TSOP |
+
+---
+
+## 3. Pin Configuration (Logical)
+
+### 3.1 Address Pins (A0-A14)
+
+* Select one of 32,768 memory locations
+
+### 3.2 Data Pins (I/O0-I/O7)
+
+* Bidirectional tri-state data bus
+* Outputs valid during read cycles
+
+### 3.3 Control Pins
+
+| Pin | Description |
+| --- | -------------------------- |
+| CE | Chip Enable (active low) |
+| OE | Output Enable (active low) |
+| WE | Write Enable (active low) |
+| VCC | +5 V power supply |
+| GND | Ground |
+
+---
+
+## 4. Memory Organization
+
+* Linear address space from `$0000` to `$7FFF`
+* Each address corresponds to one 8-bit byte
+
+```text
+Address Range: 0000h - 7FFFh
+Data Width: 8 bits
+```
+
+---
+
+## 5. Read Operation
+
+### 5.1 Read Cycle Conditions
+
+| Signal | State |
+| ------ | ----- |
+| CE | LOW |
+| OE | LOW |
+| WE | HIGH |
+
+* Data appears on I/O pins after access time
+* Output remains valid while CE and OE are asserted
+* Outputs are high-impedance when CE or OE is HIGH
+
+---
+
+## 6. Write Operation
+
+### 6.1 Byte Write Cycle
+
+| Signal | State |
+| ------ | --------- |
+| CE | LOW |
+| OE | HIGH |
+| WE | LOW pulse |
+
+* Address and data must be stable during WE low pulse
+* Internal write cycle time ≈ 10 ms (max)
+* Device automatically handles erase-before-write
+
+---
+
+## 7. Software Data Protection (SDP)
+
+The AT28C256 includes optional **Software Data Protection** to prevent accidental writes.
+
+### 7.1 SDP Enable Sequence
+
+```text
+Write $AA to address $5555
+Write $55 to address $2AAA
+Write $A0 to address $5555
+```
+
+### 7.2 SDP Disable Sequence
+
+```text
+Write $AA to address $5555
+Write $55 to address $2AAA
+Write $80 to address $5555
+Write $AA to address $5555
+Write $55 to address $2AAA
+Write $20 to address $5555
+```
+
+---
+
+## 8. Write Cycle Timing Notes
+
+* Writes are internally timed; no external polling required
+* During write cycle, reads return undefined data
+* Device ignores additional write attempts while busy
+
+---
+
+## 9. Data Polling (Optional)
+
+* I/O7 may be monitored during write
+* When I/O7 matches written data, write is complete
+
+---
+
+## 10. Reset and Power Behavior
+
+* No explicit reset pin
+* Writes inhibited during power-up and power-down
+* Outputs default to high-impedance until CE and OE asserted
+
+---
+
+## 11. Typical System Integration (6502 Example)
+
+```text
+Address Range: $8000 - $FFFF
+A15 used as chip select
+OE R/W?
+WE inverted R/W?
+```
+
+---
+
+## 12. Absolute Maximum Ratings (Summary)
+
+| Parameter | Rating |
+| ------------- | --------------------- |
+| VCC | -0.6 V to +6.25 V |
+| Input voltage | -0.6 V to VCC + 0.6 V |
+| Storage temp | -65 °C to +150 °C |
+
+---
+
+## 13. Variants and Compatible Devices
+
+| Device | Notes |
+| ---------------- | ---------------------------- |
+| AT28C256 | Original Atmel |
+| AT28C256F | Faster access time |
+| SST28SF256 | Flash-compatible alternative |
+| 28C256 (generic) | Common pin-compatible EEPROM |
+
+---
+
+## 14. Common Use Cases
+
+* ROM replacement in retro systems
+* Firmware storage
+* Microcomputer monitors and BASIC ROMs
+* Prototyping and hobbyist computers
+
+---
+
+## 15. References
+
+*
+*
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/555.md b/skills/legacy-circuit-mockups/references/555.md
new file mode 100644
index 00000000..74c265ff
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/555.md
@@ -0,0 +1,861 @@
+# 555
+
+[www.fairchildsemi.com](www.fairchildsemi.com)
+
+The LM555/NE555/SA555 is a highly stable controller capable of producing accurate timing pulses. With a monostable operation, the time delay is controlled by one external resistor and one capacitor. With an astable operation, the frequency and duty cycle are accurately controlled by two external resistors and one capacitor.
+
+## Features
+
+- High Current Drive Capability (200mA)
+- Adjustable Duty Cycle
+- Temperature Stability of 0.005%/°C
+- Timing From μSec to Hours
+- Turn off Time Less Than 2μSec
+
+## Applications
+
+- Precision Timing
+- Pulse Generation
+- Time Delay Generation
+- Sequential Timing
+
+## Internal Block Diagram
+
+```mermaid
+flowchart TB
+ subgraph IC["555 Timer IC"]
+ direction TB
+
+ subgraph DIVIDER["Voltage Divider"]
+ R1["R (5kΩ)"]
+ R2["R (5kΩ)"]
+ R3["R (5kΩ)"]
+ R1 --- R2 --- R3
+ end
+
+ COMP1["Comparator 1
(Threshold)"]
+ COMP2["Comparator 2
(Trigger)"]
+ FF["Flip-Flop
S-R"]
+ OUT_STAGE["Output
Stage"]
+ DISCH_TR["Discharge
Transistor"]
+ VREF["Vref"]
+ end
+
+ PIN8["Pin 8
Vcc"] --> R1
+ R3 --> PIN1["Pin 1
GND"]
+
+ R1 -.->|"2/3 Vcc"| COMP1
+ R2 -.->|"1/3 Vcc"| COMP2
+
+ PIN6["Pin 6
Threshold"] --> COMP1
+ PIN2["Pin 2
Trigger"] --> COMP2
+
+ COMP1 -->|R| FF
+ COMP2 -->|S| FF
+
+ FF --> OUT_STAGE
+ FF --> DISCH_TR
+
+ OUT_STAGE --> PIN3["Pin 3
Output"]
+ DISCH_TR --> PIN7["Pin 7
Discharge"]
+
+ PIN4["Pin 4
Reset"] --> FF
+ PIN5["Pin 5
Control Voltage"] -.-> R2
+
+ style PIN1 fill:#000,color:#fff
+ style PIN2 fill:#f96,color:#000
+ style PIN3 fill:#6f6,color:#000
+ style PIN4 fill:#f66,color:#000
+ style PIN5 fill:#ff6,color:#000
+ style PIN6 fill:#6ff,color:#000
+ style PIN7 fill:#f6f,color:#000
+ style PIN8 fill:#f00,color:#fff
+```
+
+**Pin Configuration:**
+
+| Pin | Name | Function |
+|:---:|:---|:---|
+| 1 | GND | Ground reference |
+| 2 | TRIG | Trigger input (< 1/3 Vcc starts timing) |
+| 3 | OUT | Output (high or low) |
+| 4 | RESET | Active low reset |
+| 5 | CONT | Control voltage (2/3 Vcc reference) |
+| 6 | THRES | Threshold input (> 2/3 Vcc ends timing) |
+| 7 | DISCH | Discharge (open collector) |
+| 8 | Vcc | Supply voltage (+4.5V to +16V) |
+
+## Absolute Maximum Ratings (Ta = 25°C)
+
+| Parameter | Symbol | Value | Unit |
+| :--- | :--- | :--- | :--- |
+| Supply Voltage | Vcc | 16 | V |
+| Lead temperature (soldering 10 sec) | Tled | 300 | °C |
+| Power Dissipation | PD | 600 | mW |
+| Operating Temperature Range
LM555/NE555
SA555 | Topr | - 65 ~ + 150 | °C |
+
+## Electrical Characteristics
+
+(TA = 250C, vcc = 5 15V, unless otherwise specified)
+
+| Parameter | Symbol | Conditions | Min. | Typ. | Max. | Unit |
+| :--- | :--- | :--- | :--- |:--- | :--- | :--- |
+| Supply Voltage | vcc | - | 4.5 | - | 16 | V |
+| Supply Current (Low Stable) (Note 1) | Icc | Vcc = 5V, Rl = ∞
Vcc = 15V, Rl = ∞ | -
- | 3
7.5 | 6
15 | mA
mA |
+| Timing Error (Monostable)
Initial Accuracy (Note2)
Drift with Temperature (Note4)
Drift with Supply Voltage (Note4)
| ACCUR
Δt/ΔT
Δt/ΔVcc | Ra = 1kΩ to100kΩ
C = 0.1μF | - | 1.0
50
0.1 | 3.0
0.5 | %
ppm/°C
%/V |
+| Timing Error (Astable)
Intial Accuracy (Note2)
Drift with Temperature (Note4)
Drift with Supply Voltage (Note4) | ACCUR
Δt/ΔT
Δt/ΔVcc | Ra = 1kΩ to 100kΩ
C = 0.1μF | - | 2.25
150
0.3 | - | %
ppm/°C
%/V |
+| Control Voltage | Vc | Vcc = 15V
Vcc = 5V | 9.0
2.6 | 10.0
3.33 | 11.0
4.0 | V
V |
+| Threshold Voltage | VTH | VCC = 15V
VCC = 5V | -
- | 10.0
3.33 | -
- | V
V |
+| Threshold Current (Note3) | Ith | - | - | 0.1 | 0.25 | μA |
+| Trigger Voltage | VTR | VCC = 5V
VCC = 15V | 1.1
4.5 | 1.67
5 | 2.2
5.6 | V
V |
+| Trigger Current | ITR | VTR = 0V | 0.01 | 2.0 | μA |
+| Reset Voltage | VRST | - | 0.4 | 0.7 | 1.0 | V |
+| Reset Current | IRST | - | 0.1 | 0.4 | mA |
+| Low Output Voltage | VOL | VCC = 15V
ISINK = 10mA
ISINK = 50mA
VCC = 5V
ISINK = 5mA | -
- | 0.06
0.3
0.05 | 0.25
0.75
0.35 | V
V
V |
+| High Output Voltage | VOH | VCC = 15V
ISOURCE = 200mA
ISOURCE = 100mA
VCC = 5V
ISOURCE = 100mA | 12.75
2.75 | 12.5
13.3
3.3 | -
- | V
V
V |
+| Rise Time of Output (Note4) | tR | - | - | 100 | - | ns |
+| Fall Time of Output (Note4) | tF | - | - | 100 | - | ns |
+| Discharge Leakage Current | ILKG | - | - | 20 | 100 | nA |
+
+**Notes:**
+
+1. When the output is high. the supply current is typically 1mA less than at VCC = 5V.
+2. Tested at VCC = 5.0V and VCC = 15V.
+3. This will determine the maximum value of RA + RB for 15V operation, the max- total R = 20MQ. and for 5V operation, the max/
+ - total R 8.7MΩ
+4. These parameters, although guaranteed. are not 100% tested in production.
+
+## Application Information
+
+Table 1 below is the basic operating table of 555 timer:
+
+| Threshold Voltage
(Vth)(PIN 6) | Trigger Voltage
(Vtr)(PIN 2) | Reset(PIN 4) | Output(PIN 3) | Discharging Tr.
(PIN 7) |
+| :--- | :--- | :--- | :--- | :--- |
+| Don't care | Don't care | Low | Low | ON |
+| Vth > 2Vcc / 3 | Vth > 2Vcc / 3 | High | Low | ON |
+| Vcc / 3 < Vth < 2 Vcc / 3 | Vcc / 3 < Vth < 2 Vcc / 3 | High | - | - |
+| Vth < Vcc / 3 | Vth < Vcc / 3 | High | High | OFF |
+
+When the low signal input is applied to the reset terminal, the timer output remains low regardless of the threshold voltage or the trigger voltage. Only when the high signal is applied to the reset terminal, the timer's output changes according to threshold voltage and trigger voltage. When the threshold voltage exceeds 2/3 of the supply voltage while the timer output is high, the timer's internal discharge Tr. turns on, lowering the threshold voltage to below 1/3 of the supply voltage. During this time, the timer output is maintained low. Later, if a low signal is applied to the trigger voltage so that it becomes 1/3 of the supply voltage, the timer's internal discharge Tr. turns off, increasing the threshold voltage and driving the timer output again at high.
+
+### 1. Monostable Operation
+
+#### Figure 1. Monostable Circuit
+
+```mermaid
+flowchart LR
+ subgraph CIRCUIT["Monostable Configuration"]
+ VCC["+Vcc"]
+
+ subgraph TIMER["555 Timer"]
+ P4["4
RESET"]
+ P8["8
Vcc"]
+ P7["7
DISCH"]
+ P2["2
TRIG"]
+ P6["6
THRES"]
+ P3["3
OUT"]
+ P5["5
CONT"]
+ P1["1
GND"]
+ end
+
+ RA["RA"]
+ C1["C1"]
+ C2["C2
0.01μF"]
+ RL["RL"]
+ GND["GND"]
+ end
+
+ VCC --> P4
+ VCC --> P8
+ VCC --> RA
+ RA --> P7
+ P7 --> P6
+ P6 --> C1
+ C1 --> GND
+
+ TRIG_IN["Trigger
Input"] --> P2
+
+ P3 --> RL
+ RL --> OUTPUT["Output"]
+
+ P5 --> C2
+ C2 --> GND
+ P1 --> GND
+
+ style VCC fill:#f00,color:#fff
+ style GND fill:#000,color:#fff
+ style TRIG_IN fill:#f96
+ style OUTPUT fill:#6f6
+```
+
+**Component Values:**
+
+- RA: Timing resistor (1kΩ to 10MΩ typical)
+- C1: Timing capacitor
+- C2: Bypass capacitor (0.01μF recommended)
+- RL: Load resistor
+
+**Time Delay Formula:**
+$$t_d = 1.1 \times R_A \times C_1$$
+
+#### Figure 2. Resistance and Capacitance vs. Time Delay (td)
+
+```mermaid
+%%{init: {'theme': 'base', 'themeVariables': { 'primaryColor': '#fff', 'lineColor': '#333'}}}%%
+xychart-beta
+ title "Time Delay vs Capacitance (Log Scale)"
+ x-axis "Time Delay (seconds)" [0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100]
+ y-axis "Capacitance (μF)" 0.001 --> 1000
+ line "R=1kΩ" [0.001, 0.01, 0.1, 1, 10, 100, 1000, 10000]
+ line "R=10kΩ" [0.0001, 0.001, 0.01, 0.1, 1, 10, 100, 1000]
+ line "R=100kΩ" [0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10, 100]
+ line "R=1MΩ" [0.000001, 0.00001, 0.0001, 0.001, 0.01, 0.1, 1, 10]
+```
+
+| RA | C1 | Time Delay (td) |
+|:---|:---|:---|
+| 1 kΩ | 0.1 μF | 110 μs |
+| 10 kΩ | 0.1 μF | 1.1 ms |
+| 100 kΩ | 0.1 μF | 11 ms |
+| 1 MΩ | 1 μF | 1.1 s |
+| 10 MΩ | 10 μF | 110 s |
+
+#### Figure 3. Waveforms of Monostable Operation
+
+```mermaid
+%%{init: {'theme': 'base'}}%%
+gantt
+ title Monostable Waveforms (Normal Operation)
+ dateFormat X
+ axisFormat %s
+
+ section Trigger
+ High (Vcc) :a1, 0, 2
+ Low (RESET"]
+ P8["8
Vcc"]
+ P7["7
DISCH"]
+ P2["2
TRIG"]
+ P6["6
THRES"]
+ P3["3
OUT"]
+ P5["5
CONT"]
+ P1["1
GND"]
+ end
+
+ RA["RA"]
+ RB["RB"]
+ C1["C1"]
+ C2["C2
0.01μF"]
+ GND["GND"]
+ end
+
+ VCC --> P4
+ VCC --> P8
+ VCC --> RA
+ RA --> P7
+ P7 --> RB
+ RB --> P6
+ RB --> P2
+ P6 --> C1
+ C1 --> GND
+
+ P3 --> OUTPUT["Output"]
+
+ P5 --> C2
+ C2 --> GND
+ P1 --> GND
+
+ MOD["Modulation
(optional)"] -.-> P5
+
+ style VCC fill:#f00,color:#fff
+ style GND fill:#000,color:#fff
+ style OUTPUT fill:#6f6
+ style MOD fill:#ff6
+```
+
+**Component Values:**
+
+- RA: Charge resistor (controls HIGH time)
+- RB: Charge/discharge resistor (affects both HIGH and LOW times)
+- C1: Timing capacitor
+- C2: Bypass capacitor (0.01μF recommended)
+
+**Timing Formulas:**
+
+- High time: $t_H = 0.693 \times (R_A + R_B) \times C_1$
+- Low time: $t_L = 0.693 \times R_B \times C_1$
+- Period: $T = t_H + t_L = 0.693 \times (R_A + 2R_B) \times C_1$
+- Frequency: $f = \frac{1.44}{(R_A + 2R_B) \times C_1}$
+- Duty Cycle: $D = \frac{R_A + R_B}{R_A + 2R_B}$
+
+#### Figure 6. Capacitance and Resistance vs. Frequency
+
+```mermaid
+%%{init: {'theme': 'base'}}%%
+xychart-beta
+ title "Free Running Frequency vs Capacitance"
+ x-axis "Frequency (Hz)" [0.1, 1, 10, 100, 1000, 10000, 100000]
+ y-axis "Capacitance (μF)" 0.001 --> 100
+```
+
+| (RA + 2RB) | C1 | Frequency |
+|:---|:---|:---|
+| 1.44 kΩ | 1 μF | 1 kHz |
+| 14.4 kΩ | 1 μF | 100 Hz |
+| 144 kΩ | 1 μF | 10 Hz |
+| 14.4 kΩ | 0.1 μF | 1 kHz |
+| 14.4 kΩ | 0.01 μF | 10 kHz |
+
+#### Figure 7. Waveforms of Astable Operation
+
+```
+ Output ────┐ ┌─────┐ ┌─────┐ ┌────
+ (Pin 3) └─────┘ └─────┘ └─────┘
+ |←tL→|←─tH─→|←tL→|←─tH─→|
+
+ Threshold /\ /\ /\
+ (Pin 6) ─────/ \──────/ \──────/ \──────
+ Vcc/3 2Vcc/3
+
+ ├────── T ──────┤
+ T = tH + tL = 0.693(RA + 2RB)C1
+
+ Charging: C1 charges through RA + RB
+ Discharging: C1 discharges through RB only
+```
+
+**Typical Values:** RA = 1kΩ, RB = 1kΩ, C1 = 1μF, Vcc = 5V
+
+An astable timer operation is achieved by adding resistor RB to Figure 1 and configuring as shown on Figure 5. In the astable operation, the trigger terminal and the threshold terminal are connected so that a self-trigger is formed, operating as a multi vibrator. When the timer output is high, its internal discharging Tr. turns off and the VC1 increases by exponential function with the time constant (RA+RB)*C. When the VC1, or the threshold voltage, reaches 2Vcc/3, the comparator output on the trigger terminal becomes high, resetting the F/F and causing the timer output to become low. This in turn turns on the discharging Tr. and the C1 discharges through the discharging channel formed by RB and the discharging Tr. When the VC1 falls below Vcc/3, the comparator output on the trigger terminal becomes high and the timer output becomes high again. The discharging Tr. turns off and the VC1 rises again. In the above process, the section where the timer output is high is the time it takes for the VC1 to rise from Vcc/3 to 2Vcc/3, and the section where the timer output is low is the time it takes for the VC1 to drop from 2Vcc/3 to Vcc/3. When timer output is high, the equivalent circuit for charging capacitor C1 is as follows:
+
+#### Equation 1: Charging Circuit Equivalent
+
+```mermaid
+flowchart LR
+ VCC["Vcc"] --> RA_RB["RA + RB"]
+ RA_RB --> C1["C1
Vc1(0-)=Vcc/3"]
+ C1 --> GND["GND"]
+```
+
+**Charging Equation:**
+$$C_1 \frac{dV_{C1}}{dt} = \frac{V_{CC} - V_{(0-)}}{R_A + R_B} \quad (1)$$
+
+$$V_{C1}(0^+) = \frac{V_{CC}}{3} \quad (2)$$
+
+$$V_{C1}(t) = V_{CC} \left[ 1 - \frac{2}{3} e^{-\frac{t}{(R_A + R_B)C_1}} \right] \quad (3)$$
+
+Since the duration of the timer output high state (tH) is the amount of time it takes for the VC1(t) to reach 2Vcc/3,
+
+#### Equation 2: High Time Calculation
+
+$$\frac{2}{3}V_{CC} = V_{CC} \left[ 1 - \frac{2}{3} e^{-\frac{t_H}{(R_A + R_B)C_1}} \right] \quad (4)$$
+
+$$t_H = C_1(R_A + R_B) \ln 2 = 0.693(R_A + R_B)C_1 \quad (5)$$
+
+The equivalent circuit for discharging capacitor C1, when timer output is low is, as follows:
+
+#### Equation 3: Discharging Circuit Equivalent
+
+```mermaid
+flowchart LR
+ C1["C1
Vc1(0-)=2Vcc/3"] --> RB["RB"]
+ RB --> RD["RD
(discharge Tr.)"]
+ RD --> GND["GND"]
+```
+
+**Discharging Equation:**
+$$C_1 \frac{dV_{C1}}{dt} + \frac{1}{R_A + R_B} V_{C1} = 0 \quad (6)$$
+
+$$V_{C1}(t) = \frac{2}{3} V_{CC} e^{-\frac{t}{(R_A + R_B)C_1}} \quad (7)$$
+
+Since the duration of the timer output low state (tL) is the amount of time it takes for the VC1(t) to reach Vcc/3,
+
+#### Equation 4: Low Time Calculation
+
+$$\frac{1}{3}V_{CC} = \frac{2}{3}V_{CC} e^{-\frac{t_L}{(R_B + R_D)C_1}} \quad (8)$$
+
+$$t_L = C_1(R_B + R_D) \ln 2 = 0.693(R_A + R_B)C_1 \quad (9)$$
+
+Since RD is normally RB>>RD although related to the size of discharging Tr., tL=0.693RBC1 (10)
+Consequently, if the timer operates in astable, the period is the same with 'T=tH+tL=0.693(RA+RB)C1+0.693RBC1=0.693(RA+2RB)C1' because the period is the sum of the charge time and discharge time. And since frequency is the reciprocal of the period, the following applies.
+
+#### Equation 5: Frequency Formula
+
+$$f = \frac{1}{T} = \frac{1.44}{(R_A + 2R_B)C_1} \quad (11)$$
+
+### 3. Frequency divider
+
+By adjusting the length of the timing cycle, the basic circuit of Figure 1 can be made to operate as a frequency divider. Figure
+8. illustrates a divide-by-three circuit that makes use of the fact that retriggering cannot occur during the timing cycle.
+
+#### Figure 8. Waveforms of Frequency Divider Operation
+
+```
+ Trigger ─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─
+ (Input) └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
+ 1 2 3 1 2 3 1 2 3
+
+ Output ─┐ ┌──┐ ┌──┐ ┌──────
+ (÷3) └────────┘ └────────┘ └────────┘
+ |← skip →| |← skip →| |← skip →|
+ 2,3 2,3 2,3
+
+ Threshold /‾‾‾‾\ /‾‾‾‾\ /‾‾‾‾\
+ (Vc1) ─────/ \──────/ \──────/
+
+ RA = 9.1kΩ, RB = 1kΩ, C1 = 0.01μF, Vcc = 5V
+
+ ⚙️ Divide-by-N: Set timing so output ignores (N-1) trigger pulses
+```
+
+### 4. Pulse Width Modulation
+
+The timer output waveform may be changed by modulating the control voltage applied to the timer's pin 5 and changing the reference of the timer's internal comparators. Figure 9 illustrates the pulse width modulation circuit. When the continuous trigger pulse train is applied in the monostable mode, the timer output width is modulated according to the signal applied to the control terminal. Sine wave as well as other waveforms may be applied as a signal to the control terminal. Figure 10 shows the example of pulse width modulation waveform.
+
+#### Figure 9. Circuit for Pulse Width Modulation
+
+```mermaid
+flowchart LR
+ subgraph CIRCUIT["PWM Configuration"]
+ VCC["+Vcc"]
+
+ subgraph TIMER["555 Timer"]
+ P4["4
RESET"]
+ P8["8
Vcc"]
+ P7["7
DISCH"]
+ P2["2
TRIG"]
+ P6["6
THRES"]
+ P3["3
OUT"]
+ P5["5
CONT"]
+ P1["1
GND"]
+ end
+
+ RA["RA"]
+ C1["C1"]
+ C2["C2"]
+ GND["GND"]
+ end
+
+ VCC --> P4
+ VCC --> P8
+ VCC --> RA
+ RA --> P7
+ P7 --> P6
+ P6 --> C1
+ C1 --> GND
+
+ TRIG_IN["Trigger
Pulse Train"] --> P2
+ MOD["Modulation
Signal"] --> P5
+ P5 --> C2
+ C2 --> GND
+
+ P3 --> OUTPUT["PWM
Output"]
+ P1 --> GND
+
+ style VCC fill:#f00,color:#fff
+ style GND fill:#000,color:#fff
+ style TRIG_IN fill:#f96
+ style MOD fill:#ff6
+ style OUTPUT fill:#6f6
+```
+
+#### Figure 10. Waveforms of Pulse Width Modulation
+
+```
+ Control ╭──────╮ ╭──────╮ ╭──────╮
+ (Pin 5) │ │ │ │ │ │
+ ───╯ ╰──────╯ ╰──────╯ ╰───
+ |← Modulation Signal (e.g., Sine) →|
+
+ Trigger ─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐ ┌─┐
+ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘ └─┘
+
+ Output ─┐ ┌─┐ ┌───┐ ┌─┐ ┌─┐ ┌───┐ ┌─
+ (PWM) └──┘ └───┘ └───┘ └──┘ └───┘ └───┘
+ |←w1→|←w2─→|←w3──→|
+
+ Pulse width varies with control voltage:
+ - Higher control voltage → Longer pulse width
+ - Lower control voltage → Shorter pulse width
+
+ RA = 3.9kΩ, RB = 1kΩ, RL = 1kΩ, C1 = 0.01μF, Vcc = 5V
+```
+
+### 5. Pulse Position Modulation
+
+If the modulating signal is applied to the control terminal while the timer is connected for the astable operation as in Figure 11, the timer becomes a pulse position modulator. In the pulse position modulator, the reference of the timer's internal comparators is modulated which in turn modulates the timer output according to the modulation signal applied to the control terminal. Figure 12 illustrates a sine wave for modulation signal and the resulting output pulse position modulation : however, any wave shape could be used.
+
+#### Figure 11. Circuit for Pulse Position Modulation
+
+```mermaid
+flowchart LR
+ subgraph CIRCUIT["PPM Configuration"]
+ VCC["+Vcc"]
+
+ subgraph TIMER["555 Timer"]
+ P4["4
RESET"]
+ P8["8
Vcc"]
+ P7["7
DISCH"]
+ P2["2
TRIG"]
+ P6["6
THRES"]
+ P3["3
OUT"]
+ P5["5
CONT"]
+ P1["1
GND"]
+ end
+
+ RA["RA"]
+ RB["RB"]
+ C1["C1"]
+ GND["GND"]
+ end
+
+ VCC --> P4
+ VCC --> P8
+ VCC --> RA
+ RA --> P7
+ P7 --> RB
+ RB --> P6
+ RB --> P2
+ P6 --> C1
+ C1 --> GND
+
+ MOD["Modulation
Signal"] --> P5
+
+ P3 --> OUTPUT["PPM
Output"]
+ P1 --> GND
+
+ style VCC fill:#f00,color:#fff
+ style GND fill:#000,color:#fff
+ style MOD fill:#ff6
+ style OUTPUT fill:#6f6
+```
+
+#### Figure 12. Waveforms of Pulse Position Modulation
+
+```
+ Control ╭────────────╮ ╭────────────╮
+ (Pin 5) │ │ │ │
+ ───╯ ╰──────────╯ ╰───
+ Modulation Signal (Sine Wave)
+
+ Threshold /\ /\ /\ /\ /\
+ (Pin 6) ────/ \──/ \────/ \────/ \──/ \────
+
+ Output ─┐ ┌─┐ ┌──┐ ┌────┐ ┌──┐ ┌─┐ ┌─
+ (PPM) └─┘ └──┘ └────┘ └────┘ └──┘ └─┘
+ |←t1→|←t2─→|←─t3──→|←t4─→|←t5→|
+
+ Pulse spacing varies with control voltage:
+ - Higher control voltage → Longer period
+ - Lower control voltage → Shorter period
+
+ RA = 1kΩ, RB = 1kΩ, C1 = 1nF, Vcc = 5V
+```
+
+### 6. Linear Ramp
+
+When the pull-up resistor RA in the monostable circuit shown in Figure 1 is replaced with constant current source, the VC1 increases linearly, generating a linear ramp. Figure 13 shows the linear ramp generating circuit and Figure 14 illustrates the generated linear ramp waveforms.
+
+#### Figure 13. Circuit for Linear Ramp
+
+```mermaid
+flowchart TB
+ subgraph CIRCUIT["Linear Ramp Generator"]
+ VCC["+Vcc"]
+
+ subgraph CURRENT_SOURCE["Constant Current Source"]
+ RE["RE"]
+ Q1["Q1
PNP"]
+ R1["R1"]
+ R2["R2"]
+ end
+
+ subgraph TIMER["555 Timer"]
+ P4["4
RESET"]
+ P8["8
Vcc"]
+ P7["7
DISCH"]
+ P2["2
TRIG"]
+ P6["6
THRES"]
+ P3["3
OUT"]
+ P5["5
CONT"]
+ P1["1
GND"]
+ end
+
+ C1["C1"]
+ C2["C2"]
+ GND["GND"]
+ end
+
+ VCC --> P4
+ VCC --> P8
+ VCC --> RE
+ VCC --> R1
+
+ RE --> Q1
+ R1 --> Q1
+ Q1 --> R2
+ R2 --> GND
+
+ Q1 -->|Ic| P7
+ P7 --> P6
+ P6 --> C1
+ C1 --> GND
+
+ TRIG_IN["Trigger"] --> P2
+
+ P3 --> OUTPUT["Output"]
+ P5 --> C2
+ C2 --> GND
+ P1 --> GND
+
+ style VCC fill:#f00,color:#fff
+ style GND fill:#000,color:#fff
+ style Q1 fill:#fcf,color:#000
+ style OUTPUT fill:#6f6
+```
+
+#### Figure 14. Waveforms of Linear Ramp
+
+```
+ Trigger ─────┐ ┌───────────────────────────
+ (Pin 2) └─────┘
+ ↓ Trigger pulse
+
+ Output ─────────┐ ┌───────────────
+ (Pin 3) └──────────────┘
+ |←──── td ────→|
+
+ Threshold ╱ Linear ramp (not exponential)
+ (Pin 6) ─────╱
+ 0V ↗
+ Vcc/3 2Vcc/3
+
+ Linear ramp: Vc1 = (Ic/C1) × t
+ Slope S = Ic/C1
+
+ R1 = 47kΩ, R2 = 100kΩ, RE = 2.7kΩ, RL = 1kΩ, C1 = 0.01μF, Vcc = 5V
+```
+
+In Figure 13, current source is created by PNP transistor Q1 and resistor R1, R2, and RE.
+
+#### Equation 6: Current Source Calculation
+
+$$I_C = \frac{V_{CC} - V_E}{R_E} \quad (12)$$
+
+Here, VE is:
+
+$$V_E = V_{BE} + \frac{R_2}{R_1 + R_2} V_{CC} \quad (13)$$
+
+For example, if Vcc=15V, RE=20kΩ, R1=5kW, R2=10kΩ, and VBE=0.7V, VE=0.7V+10V=10.7V Ic=(15-10.7)/20k=0.215mA
+
+When the trigger starts in a timer configured as shown in Figure 13, the current flowing through capacitor C1 becomes a constant current generated by PNP transistor and resistors. Hence, the VC is a linear ramp function as shown in Figure 14. The gradient S of the linear ramp function is defined as follows:
+
+#### Equation 7: Ramp Slope
+
+$$S = \frac{V_{P-P}}{T} \quad (14)$$
+
+Here the Vp-p is the peak-to-peak voltage. If the electric charge amount accumulated in the capacitor is divided by the capacitance, the VC comes out as follows:
+
+```
+V = Q/C (15)
+```
+
+The above equation divided on both sides by T gives us
+
+#### Equation 8: Simplified Ramp Slope
+
+$$\frac{V}{T} = \frac{Q/T}{C} \quad (16)$$
+
+and may be simplified into the following equation.
+
+```
+S = I/C (17)
+```
+
+In other words, the gradient of the linear ramp function appearing across the capacitor can be obtained by using the constant current flowing through the capacitor. If the constant current flow through the capacitor is 0.215mA and the capacitance is 0.02μF, the gradient of the ramp function at both ends of the capacitor is S = 0.215m/0.022μ = 9.77V/ms.
+
+# Mechanical Dimensions
+
+## Package
+
+### 8-DIP (Dual In-line Package)
+
+```
+ ┌─────────────────────────────────────┐
+ │ ● │
+ │ #1 #8 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #2 #7 │
+ │ ┌──┐ 555 TIMER ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #3 #6 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #4 #5 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ └─────────────────────────────────────┘
+```
+
+**8-DIP Dimensions (in millimeters):**
+
+| Parameter | Min | Nom | Max |
+|:---|:---:|:---:|:---:|
+| Package Length | - | 9.60 | - |
+| Package Width | 6.20 | 6.40 | 6.60 |
+| Package Height | - | 5.08 | - |
+| Lead Pitch | - | 2.54 | - |
+| Lead Width | 0.36 | 0.46 | 0.56 |
+| Lead Thickness | - | 0.33 | - |
+| Lead Length | 2.92 | 3.30 | 3.68 |
+| Standoff | 0.51 | - | - |
+
+```
+ 6.40 ± 0.20
+ ┌────────────────┐
+ │ │
+ ┌────┤ ├────┐
+ │ │ │ │ 9.60
+ │ │ │ │ MAX
+ │ │ │ │
+ └────┤ ├────┘
+ │ │
+ └────────────────┘
+ ↕ 2.54 (pin pitch)
+
+ Side View:
+ ┌────────────────┐
+ 5.08 │ │
+ MAX └──┬──┬──┬──┬──┬─┘
+ │ │ │ │ │ 3.30 ± 0.30
+ │ │ │ │ │ (lead length)
+ ═══╧══╧══╧══╧══╧═══
+ ↕ 0.33 MIN
+```
+
+### 8-SOP (Small Outline Package)
+
+```
+ ┌───────────────────────────────┐
+ │ ● │
+ │ #1 #8 │
+ │ ─┐ ┌─ │
+ │ │ │ │
+ ├───┴───────────────────────┴───┤
+ │ 555 TIMER │
+ ├───┬───────────────────────┬───┤
+ │ │ │ │
+ │ ─┘ └─ │
+ │ #4 #5 │
+ └───────────────────────────────┘
+```
+
+**8-SOP Dimensions (in millimeters):**
+
+| Parameter | Min | Nom | Max |
+|:---|:---:|:---:|:---:|
+| Package Length | 4.72 | 4.92 | 5.12 |
+| Package Width | 5.70 | 6.00 | 6.30 |
+| Package Height | - | 1.55 | 1.75 |
+| Lead Pitch | - | 1.27 | - |
+| Lead Width | 0.31 | 0.41 | 0.51 |
+| Lead Length (toe) | 0.40 | 0.80 | 1.27 |
+| Standoff | 0.05 | 0.15 | 0.25 |
+| Overall Width (with leads) | - | 6.00 | - |
+
+```
+ 6.00 ± 0.30
+ ┌────────────────┐
+ ─┐ │ │ ┌─
+ │ │ │ │ 4.92 ± 0.20
+ ─┘ │ │ └─
+ └────────────────┘
+ ↕ 1.27 (pin pitch)
+
+ Side View:
+ 1.55 ± 0.20
+ ┌────────────────┐
+ MAX │ │
+ └──┬──┬──┬──┬──┬─┘
+ └──┴──┴──┴──┴── 0.10~0.25 standoff
+```
+
+## Pin Assignment Summary
+
+| Pin | Symbol | 8-DIP | 8-SOP | Description |
+|:---:|:---:|:---:|:---:|:---|
+| 1 | GND | ● | ● | Ground (0V) |
+| 2 | TRIG | ● | ● | Trigger input |
+| 3 | OUT | ● | ● | Output |
+| 4 | RESET | ● | ● | Reset (active low) |
+| 5 | CONT | ● | ● | Control voltage |
+| 6 | THRES | ● | ● | Threshold input |
+| 7 | DISCH | ● | ● | Discharge |
+| 8 | Vcc | ● | ● | Supply voltage |
diff --git a/skills/legacy-circuit-mockups/references/6502.md b/skills/legacy-circuit-mockups/references/6502.md
new file mode 100644
index 00000000..4d6aeae5
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/6502.md
@@ -0,0 +1,221 @@
+# MOS Technology 6502 Microprocessor Specification
+
+## 1. Overview
+
+The **MOS Technology 6502** is an 8-bit microprocessor introduced in 1975. It is notable for its low cost, efficient instruction set, and widespread use in early personal computers and game consoles, including the Apple II, Commodore 64, Atari 2600, NES (Ricoh 2A03 variant), and BBC Micro.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| ------------- | ------------------------ |
+| Data width | 8-bit |
+| Address width | 16-bit |
+| Address space | 64 KB (0x0000–0xFFFF) |
+| Registers | A, X, Y, SP, PC, P |
+| Endianness | Little-endian |
+| Clock speed | ~1–3 MHz (original NMOS) |
+| Technology | NMOS |
+
+---
+
+## 3. Programmer-Visible Registers
+
+### 3.1 Accumulator (A)
+
+* 8-bit register
+* Used for arithmetic, logic, and data transfer operations
+
+### 3.2 Index Registers (X, Y)
+
+* 8-bit registers
+* Used for indexing memory, counters, and offsets
+
+### 3.3 Stack Pointer (SP)
+
+* 8-bit register
+* Points to the current stack location
+* Stack resides in page `$0100–$01FF`
+
+### 3.4 Program Counter (PC)
+
+* 16-bit register
+* Holds address of next instruction
+
+### 3.5 Processor Status Register (P)
+
+| Bit | Name | Description |
+| --: | ---- | ----------------------------- |
+| 7 | N | Negative |
+| 6 | V | Overflow |
+| 5 | – | Unused (always set in pushes) |
+| 4 | B | Break |
+| 3 | D | Decimal Mode |
+| 2 | I | Interrupt Disable |
+| 1 | Z | Zero |
+| 0 | C | Carry |
+
+---
+
+## 4. Memory Map Conventions
+
+| Address Range | Usage |
+| ------------- | -------------------- |
+| `$0000–$00FF` | Zero Page |
+| `$0100–$01FF` | Hardware Stack |
+| `$0200–$FFFF` | Program / Data / I/O |
+
+### 4.1 Interrupt Vectors
+
+| Vector | Address | Description |
+| ------- | ------------- | ---------------------- |
+| NMI | `$FFFA–$FFFB` | Non-maskable interrupt |
+| RESET | `$FFFC–$FFFD` | Reset vector |
+| IRQ/BRK | `$FFFE–$FFFF` | Interrupt request |
+
+---
+
+## 5. Addressing Modes
+
+| Mode | Syntax | Description |
+| ---------------- | ------------- | ----------------------- |
+| Implied | `CLC` | Operand implied |
+| Accumulator | `ASL A` | Operates on accumulator |
+| Immediate | `LDA #$10` | Constant value |
+| Zero Page | `LDA $20` | Zero-page address |
+| Zero Page,X | `LDA $20,X` | Zero-page indexed |
+| Zero Page,Y | `LDX $20,Y` | Zero-page indexed |
+| Absolute | `LDA $1234` | Full 16-bit address |
+| Absolute,X | `LDA $1234,X` | Indexed absolute |
+| Absolute,Y | `LDA $1234,Y` | Indexed absolute |
+| Indirect | `JMP ($1234)` | Pointer-based jump |
+| Indexed Indirect | `LDA ($20,X)` | X-indexed pointer |
+| Indirect Indexed | `LDA ($20),Y` | Y-indexed pointer |
+| Relative | `BEQ label` | Branch offset |
+
+---
+
+## 6. Instruction Set Summary
+
+### 6.1 Load / Store
+
+* `LDA`, `LDX`, `LDY`
+* `STA`, `STX`, `STY`
+
+### 6.2 Register Transfers
+
+* `TAX`, `TAY`, `TXA`, `TYA`, `TSX`, `TXS`
+
+### 6.3 Stack Operations
+
+* `PHA`, `PLA`, `PHP`, `PLP`
+
+### 6.4 Arithmetic
+
+* `ADC` – Add with Carry
+* `SBC` – Subtract with Carry
+
+### 6.5 Logical
+
+* `AND`, `ORA`, `EOR`
+
+### 6.6 Shifts and Rotates
+
+* `ASL`, `LSR`, `ROL`, `ROR`
+
+### 6.7 Increment / Decrement
+
+* `INC`, `INX`, `INY`
+* `DEC`, `DEX`, `DEY`
+
+### 6.8 Comparisons
+
+* `CMP`, `CPX`, `CPY`
+
+### 6.9 Branching
+
+* `BEQ`, `BNE`, `BMI`, `BPL`, `BCS`, `BCC`, `BVS`, `BVC`
+
+### 6.10 Jumps & Subroutines
+
+* `JMP`, `JSR`, `RTS`, `RTI`
+
+### 6.11 Status Flag Control
+
+* `CLC`, `SEC`, `CLI`, `SEI`, `CLV`, `CLD`, `SED`
+
+### 6.12 System Control
+
+* `BRK`, `NOP`
+
+---
+
+## 7. Cycle Timing (General)
+
+* Most instructions execute in **2–7 cycles**
+* Additional cycles may be added for:
+
+ * Page boundary crossings
+ * Taken branches
+
+---
+
+## 8. Decimal Mode
+
+When the **D flag** is set:
+
+* `ADC` and `SBC` operate using **BCD arithmetic**
+* Only valid on NMOS 6502 (behavior varies on CMOS derivatives)
+
+---
+
+## 9. Known Hardware Quirks
+
+* `JMP (addr)` indirect bug: page boundary wraparound
+
+ * Example: `JMP ($10FF)` reads from `$10FF` and `$1000`
+* No dedicated multiply or divide instructions
+* Stack is fixed to page `$01xx`
+
+---
+
+## 10. Variants and Derivatives
+
+| Variant | Notes |
+| ------- | ----------------------------------- |
+| 6502 | Original NMOS |
+| 65C02 | CMOS, fixes bugs, adds instructions |
+| 2A03 | NES variant, decimal mode disabled |
+| 6510 | Adds I/O port (Commodore 64) |
+
+---
+
+## 11. Example Code
+
+```asm
+ LDX #$00
+loop: INX
+ TXA
+ STA $0200,X
+ CPX #$10
+ BNE loop
+ BRK
+```
+
+---
+
+## 12. References
+
+*
+*
+*
+* Tutorial excerpts from
+ *
+ *
+ *
+ *
+ *
+ *
+
+---
diff --git a/skills/legacy-circuit-mockups/references/6522.md b/skills/legacy-circuit-mockups/references/6522.md
new file mode 100644
index 00000000..0195324f
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/6522.md
@@ -0,0 +1,211 @@
+# MOS Technology 6522 Versatile Interface Adapter (VIA)
+
+## 1. Overview
+
+The **MOS Technology 6522 VIA** is a general-purpose I/O controller designed to interface the 6502 family of microprocessors with external peripherals. Introduced in the mid-1970s, it provides parallel I/O ports, timers, shift register support, and interrupt handling. The 6522 is widely used in systems such as the Commodore PET, VIC-20, Apple II, BBC Micro, and many 6502-based embedded designs.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| -------------- | -------------------------------- |
+| Data width | 8-bit |
+| Addressing | Memory-mapped I/O |
+| Registers | 16 (4-bit register select) |
+| I/O ports | Two 8-bit ports (Port A, Port B) |
+| Timers | Two 16-bit timers |
+| Shift register | 8-bit serial I/O |
+| Interrupts | Maskable, multiple sources |
+| Clock | System clock (φ2) |
+
+---
+
+## 3. Pin Functions (Logical)
+
+### 3.1 Port A (PA0-PA7)
+
+* 8-bit bidirectional parallel I/O
+* Handshake support via CA1 / CA2
+
+### 3.2 Port B (PB0-PB7)
+
+* 8-bit bidirectional parallel I/O
+* Handshake support via CB1 / CB2
+* PB6 and PB7 may be controlled by Timer 1
+
+### 3.3 Control Pins
+
+| Pin | Description |
+| --------- | ------------------------------------- |
+| CA1 / CB1 | Interrupt-capable control inputs |
+| CA2 / CB2 | Handshake / pulse / interrupt pins |
+| IRQ | Interrupt request output (active low) |
+| RESET | Reset input |
+
+---
+
+## 4. Register Map
+
+Registers are selected using 4 address lines (RS0-RS3). The base address is system-defined.
+
+| Offset | Register | Description |
+| -----: | --------- | ------------------------------------ |
+| $0 | ORB | Output Register B |
+| $1 | ORA / IRB | Output Register A / Input Register B |
+| $2 | DDRB | Data Direction Register B |
+| $3 | DDRA | Data Direction Register A |
+| $4 | T1C-L | Timer 1 Counter Low |
+| $5 | T1C-H | Timer 1 Counter High |
+| $6 | T1L-L | Timer 1 Latch Low |
+| $7 | T1L-H | Timer 1 Latch High |
+| $8 | T2C-L | Timer 2 Counter Low |
+| $9 | T2C-H | Timer 2 Counter High |
+| $A | SR | Shift Register |
+| $B | ACR | Auxiliary Control Register |
+| $C | PCR | Peripheral Control Register |
+| $D | IFR | Interrupt Flag Register |
+| $E | IER | Interrupt Enable Register |
+| $F | ORA / IRA | Output Register A / Input Register A |
+
+---
+
+## 5. Data Direction Registers (DDRA / DDRB)
+
+Each bit controls the direction of its corresponding port pin:
+
+* `0` = Input
+* `1` = Output
+
+```text
+DDRB bit = 1 PBx is output
+DDRB bit = 0 PBx is input
+```
+
+---
+
+## 6. Timers
+
+### 6.1 Timer 1 (T1)
+
+* 16-bit down counter
+* Can operate in one-shot or free-running mode
+* Can toggle PB7 on timeout
+* Generates interrupts
+
+### 6.2 Timer 2 (T2)
+
+* 16-bit down counter
+* Supports pulse counting on PB6
+* One-shot operation only
+
+---
+
+## 7. Shift Register (SR)
+
+* 8-bit shift register
+* Can shift data in or out
+* Clock source selectable via ACR
+* Often used for serial communication or keyboard scanning
+
+---
+
+## 8. Control Registers
+
+### 8.1 Auxiliary Control Register (ACR)
+
+| Bit | Function |
+| --: | ---------------------------------- |
+| 7 | Timer 1 control (PB7 output) |
+| 6 | Timer 1 mode (free-run / one-shot) |
+| 5 | Timer 2 control |
+| 4 | Shift register mode |
+| 3 | Shift register clock source |
+| 2 | Port B latching |
+| 1 | Port A latching |
+| 0 | Unused |
+
+### 8.2 Peripheral Control Register (PCR)
+
+Controls CA1, CA2, CB1, CB2 behavior:
+
+* Input/output mode
+* Active edge selection
+* Pulse or handshake modes
+
+---
+
+## 9. Interrupt System
+
+### 9.1 Interrupt Flag Register (IFR)
+
+| Bit | Source |
+| --: | ---------------------------------- |
+| 7 | IRQ status (any enabled interrupt) |
+| 6 | Timer 1 |
+| 5 | Timer 2 |
+| 4 | CB1 |
+| 3 | CB2 |
+| 2 | Shift Register |
+| 1 | CA1 |
+| 0 | CA2 |
+
+### 9.2 Interrupt Enable Register (IER)
+
+* Bit 7 determines set/clear mode:
+
+ * `1` = set bits
+ * `0` = clear bits
+
+```text
+Write $80 | mask enable interrupts
+Write $00 | mask disable interrupts
+```
+
+---
+
+## 10. Reset Behavior
+
+On RESET:
+
+* All DDR bits cleared (ports default to input)
+* Timers stopped
+* Shift register disabled
+* Interrupts disabled
+
+---
+
+## 11. Timing Notes
+
+* VIA registers are accessed synchronously with φ2
+* Timer counters decrement once per φ2 cycle
+* Some operations have side effects when reading/writing registers
+
+---
+
+## 12. Common Use Cases
+
+* Keyboard and joystick interfaces
+* Parallel printer interfaces
+* Timers and event counting
+* Simple serial communications
+* General-purpose GPIO expansion
+
+---
+
+## 13. Variants and Related Chips
+
+| Chip | Notes |
+| ----- | ----------------------------- |
+| 6522 | Original NMOS VIA |
+| 65C22 | CMOS VIA, faster, lower power |
+| 6520 | Earlier PIA (simpler) |
+
+---
+
+## 14. References
+
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/6C62256.md b/skills/legacy-circuit-mockups/references/6C62256.md
new file mode 100644
index 00000000..584ceb2d
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/6C62256.md
@@ -0,0 +1,177 @@
+# AS6C62256 32K x 8 Low-Power CMOS SRAM Specification
+
+## 1. Overview
+
+The **AS6C62256** is a **256 Kbit (32K x 8)** low-power CMOS static random-access memory (SRAM) manufactured by Alliance Memory (and second-sourced by others). It is fully compatible with common 28-pin SRAM pinouts and is widely used in **6502**, **Z80**, and other 8-bit microprocessor systems for read/write memory.
+
+The device offers fast access times, simple control logic, and very low standby power consumption.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| ----------------- | --------------------------------- |
+| Memory size | 256 Kbits (32 KB) |
+| Organization | 32,768 x 8 bits |
+| Data bus | 8-bit |
+| Address bus | 15-bit (A0-A14) |
+| Technology | CMOS SRAM |
+| Access time | 55 ns / 70 ns (variant dependent) |
+| Operating voltage | 5 V ± 10% |
+| Standby current | < 1 µA (typical) |
+| Package types | DIP-28, SOJ-28, TSOP-28 |
+
+---
+
+## 3. Pin Configuration (Logical)
+
+### 3.1 Address Pins (A0-A14)
+
+* Select one of 32,768 memory locations
+* Address must be stable during read or write cycle
+
+### 3.2 Data Pins (I/O0-I/O7)
+
+* Bidirectional tri-state data bus
+* High-impedance when not enabled
+
+### 3.3 Control Pins
+
+| Pin | Description |
+| --- | -------------------------- |
+| CE? | Chip Enable (active low) |
+| OE? | Output Enable (active low) |
+| WE? | Write Enable (active low) |
+| VCC | +5 V power supply |
+| GND | Ground |
+
+---
+
+## 4. Memory Organization
+
+* Linear address space from `$0000` to `$7FFF`
+* Each address corresponds to one byte (8 bits)
+
+```text
+Address range: 0000h - 7FFFh
+Data width: 8 bits
+```
+
+---
+
+## 5. Read Operation
+
+### 5.1 Read Cycle Conditions
+
+| Signal | State |
+| ------ | ----- |
+| CE? | LOW |
+| OE? | LOW |
+| WE? | HIGH |
+
+* Data becomes valid after access time (tAA)
+* Outputs remain valid while CE? and OE? are LOW
+* Outputs are high-impedance when CE? or OE? is HIGH
+
+---
+
+## 6. Write Operation
+
+### 6.1 Write Cycle Conditions
+
+| Signal | State |
+| ------ | ----------- |
+| CE? | LOW |
+| OE? | HIGH or LOW |
+| WE? | LOW pulse |
+
+* Data is written on the rising edge of WE? or CE?
+* Address and data must be stable during write window
+* No internal write delay (true SRAM behavior)
+
+---
+
+## 7. Timing Notes (Summary)
+
+| Parameter | Typical |
+| -------------------- | -------- |
+| Address access (tAA) | 55-70 ns |
+| CE? access (tACE) | 55-70 ns |
+| OE? access (tOE) | 25-35 ns |
+| Write cycle time | ≥ 55 ns |
+
+---
+
+## 8. Power Modes
+
+### 8.1 Active Mode
+
+* CE? = LOW
+* Normal read/write operation
+
+### 8.2 Standby Mode
+
+* CE? = HIGH
+* Data retained
+* Very low power consumption
+
+---
+
+## 9. Reset and Power-Up Behavior
+
+* No reset pin required
+* Data is undefined at power-up
+* Memory contents preserved only while VCC is present
+
+---
+
+## 10. Typical System Integration (6502 Example)
+
+```text
+Mapped at: $0000 - $7FFF
+CE? decoded address
+OE? R/W?
+WE? inverted R/W?
+```
+
+---
+
+## 11. Absolute Maximum Ratings (Summary)
+
+| Parameter | Rating |
+| ------------- | --------------------- |
+| VCC | -0.5 V to +6.5 V |
+| Input voltage | -0.5 V to VCC + 0.5 V |
+| Storage temp | -65 °C to +150 °C |
+
+---
+
+## 12. Compatible and Equivalent Devices
+
+| Device | Notes |
+| --------- | --------------- |
+| AS6C62256 | Alliance Memory |
+| CY62256 | Cypress |
+| HM62256 | Hitachi |
+| KM62256 | Samsung |
+| IS62C256 | ISSI |
+
+---
+
+## 13. Common Use Cases
+
+* Main RAM for 6502 / Z80 systems
+* Video buffers and frame memory
+* Embedded systems requiring fast R/W memory
+* Retrocomputer SBC designs
+
+---
+
+## 14. References
+
+*
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/7400-series.md b/skills/legacy-circuit-mockups/references/7400-series.md
new file mode 100644
index 00000000..eb89e82a
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/7400-series.md
@@ -0,0 +1,177 @@
+# 7400-Series Logic ICs Specification
+
+## 1. Overview
+
+The **7400-series** is a large family of **digital logic integrated circuits** originally implemented in **TTL (Transistor-Transistor Logic)** and later expanded to include **CMOS-compatible variants**. These devices provide fundamental building blocks such as gates, flip-flops, counters, multiplexers, decoders, and bus transceivers.
+
+7400-series ICs are widely used in **retrocomputing**, **6502/Z80 systems**, **glue logic**, and educational designs.
+
+---
+
+## 2. Logic Families
+
+| Family | Technology | Notes |
+| ------- | ----------------------- | ----------------------- |
+| 74xx | TTL | Original bipolar TTL |
+| 74LSxx | Low-power Schottky TTL | Faster, lower power |
+| 74HCTxx | CMOS (TTL-level inputs) | Ideal for mixed systems |
+| 74HCxx | CMOS | Wide voltage range |
+| 74ACTxx | Advanced CMOS TTL-level | Very fast |
+
+---
+
+## 3. Electrical Characteristics (Typical)
+
+| Parameter | TTL | CMOS |
+| ----------------- | ------- | ------------------- |
+| VCC | 5 V | 2-6 V (5 V typical) |
+| Input HIGH | ° 2.0 V | ° 0.7xVCC |
+| Input LOW | ° 0.8 V | ° 0.3xVCC |
+| Fan-out | ~10 | Very high |
+| Power consumption | Higher | Lower |
+
+---
+
+## 4. Standard Package Types
+
+| Package | Pins | Notes |
+| ------- | ---------- | ------------------- |
+| DIP | 14, 16, 20 | Breadboard-friendly |
+| SOIC | 14, 16, 20 | Surface-mount |
+| TSSOP | 14, 16 | Compact SMT |
+
+---
+
+## 5. Common Logic Categories
+
+### 5.1 Basic Logic Gates
+
+| IC | Function |
+| ---- | ----------------- |
+| 7400 | Quad 2-input NAND |
+| 7402 | Quad 2-input NOR |
+| 7404 | Hex inverter |
+| 7408 | Quad 2-input AND |
+| 7432 | Quad 2-input OR |
+| 7486 | Quad 2-input XOR |
+
+---
+
+### 5.2 Latches and Flip-Flops
+
+| IC | Function |
+| ----- | --------------------- |
+| 7474 | Dual D-type flip-flop |
+| 7473 | Dual JK flip-flop |
+| 7475 | Quad latch |
+| 74175 | Quad D-type FF |
+
+---
+
+### 5.3 Counters and Registers
+
+| IC | Function |
+| ----- | ------------------------------------- |
+| 74161 | Synchronous 4-bit counter |
+| 74163 | Synchronous binary counter |
+| 74193 | Up/down counter |
+| 74164 | Serial-in/parallel-out shift register |
+| 74165 | Parallel-in/serial-out shift register |
+
+---
+
+### 5.4 Decoders and Multiplexers
+
+| IC | Function |
+| ----- | ----------------------- |
+| 74138 | 3-to-8 decoder |
+| 74139 | Dual 2-to-4 decoder |
+| 74151 | 8-to-1 multiplexer |
+| 74157 | Quad 2-to-1 multiplexer |
+
+---
+
+### 5.5 Bus Interface and Glue Logic
+
+| IC | Function |
+| ----- | ----------------------------------- |
+| 74244 | Octal buffer / line driver |
+| 74245 | Octal bidirectional bus transceiver |
+| 74373 | Octal transparent latch |
+| 74574 | Octal D-type FF |
+
+---
+
+## 6. Pin Numbering Convention
+
+* DIP packages use **counter-clockwise numbering**
+* Pin 1 identified by notch or dot
+
+```text
+ ________
+ 1 °| |° 14
+ 2 °| |° 13
+ 3 °| |° 12
+ 4 °| |° 11
+ 5 °| |° 10
+ 6 °| |° 9
+ 7 °|________|° 8
+```
+
+---
+
+## 7. Power and Ground Pins
+
+| Package | VCC | GND |
+| ------- | --- | --- |
+| DIP-14 | 14 | 7 |
+| DIP-16 | 16 | 8 |
+| DIP-20 | 20 | 10 |
+
+---
+
+## 8. Timing Characteristics (General)
+
+| Parameter | TTL | CMOS |
+| ----------------- | ------- | -------- |
+| Propagation delay | 5-15 ns | 8-25 ns |
+| Max frequency | ~25 MHz | ~50+ MHz |
+
+---
+
+## 9. Interfacing Notes
+
+* TTL outputs reliably drive TTL inputs
+* CMOS inputs must not float
+* Use **74HCT** when interfacing CMOS with TTL signals
+* Decoupling capacitors (0.1 °F) required per IC
+
+---
+
+## 10. Typical Retrocomputer Applications
+
+* Address decoding
+* Chip-select generation
+* Bus buffering
+* Clock gating and control
+* State machines
+
+---
+
+## 11. Absolute Maximum Ratings (Summary)
+
+| Parameter | Rating |
+| ------------------- | --------------------- |
+| VCC | -0.5 V to +7.0 V |
+| Input voltage | -0.5 V to VCC + 0.5 V |
+| Storage temperature | -65 °C to +150 °C |
+
+---
+
+## 12. References
+
+*
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/basic-electronic-components.md b/skills/legacy-circuit-mockups/references/basic-electronic-components.md
new file mode 100644
index 00000000..046d73af
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/basic-electronic-components.md
@@ -0,0 +1,86 @@
+# Basic Electronic Components
+
+This document covers four fundamental electronic components: Resistors, Capacitors, Buttons, and Switches, including common values, formulas, and types.
+
+---
+
+## 1. Resistors (R)
+
+Resistors limit the flow of electrical current and dissipate energy as heat.
+
+### Common Formulas
+
+* **Ohm's Law:** $V = I \times R$ (Voltage = Current $\times$ Resistance)
+* **Series Resistance:** $R_{total} = R_1 + R_2 + ... + R_n$
+* **Parallel Resistance:** $\frac{1}{R_{total}} = \frac{1}{R_1} + \frac{1}{R_2} + ... + \frac{1}{R_n}$
+
+### Common Values (E12/E24 Series - 5% Tolerance)
+
+Values are multiplied by powers of 10 (e.g., 10$\Omega$, 100$\Omega$, 1k$\Omega$, 10k$\Omega$, 100k$\Omega$, 1M$\Omega$):
+**1.0, 1.1, 1.2, 1.3, 1.5, 1.6, 1.8, 2.0, 2.2, 2.4, 2.7, 3.0, 3.3, 3.6, 3.9, 4.3, 4.7, 5.1, 5.6, 6.2, 6.8, 7.5, 8.2, 9.1**
+
+---
+
+## 2. Capacitors (C)
+
+Capacitors store electrical charge in an electric field.
+
+### Common Formulas
+
+* **Capacitance:** $C = \frac{Q}{V}$ (Charge / Voltage)
+* **Current:** $i = C \frac{dV}{dt}$
+* **Parallel Capacitance:** $C_{total} = C_1 + C_2 + ... + C_n$
+* **Series Capacitance:** $\frac{1}{C_{total}} = \frac{1}{C_1} + \frac{1}{C_2} + ... + \frac{1}{C_n}$
+* **Energy Stored:** $W = \frac{1}{2} C V^2$
+
+### Common Values
+
+* **Ceramic (picoFarads/nanoFarads):** 10pF, 22pF, 100pF, 1nF, 10nF, 100nF (often labeled "104")
+* **Electrolytic (microFarads):** 1µF, 10µF, 22µF, 47µF, 100µF, 220µF, 470µF, 1000µF
+
+---
+
+## 3. Buttons (Push Button)
+
+A momentary switch that completes a circuit only when pressed.
+
+### Common Types
+
+* **Normally Open (NO):** Circuit is open (off) until pushed.
+* **Normally Closed (NC):** Circuit is closed (on) until pushed.
+* **Tactile Switch:** Small, standard button for PCB mounting.
+
+---
+
+## 4. Switches (SW)
+
+An electromechanical device that breaks or connects a circuit, staying in position until flipped.
+
+### Common Types
+
+* **SPST:** Single Pole, Single Throw (On/Off)
+* **SPDT:** Single Pole, Double Throw (Toggle between two paths)
+* **DPST/DPDT:** Double Pole variants (controls two independent circuits simultaneously)
+* **DIP Switch:** Small array of switches for circuit boards.
+
+---
+
+## Quick Reference Summary Table
+
+| Component | Symbol (Ref) | Key Formula | Common Use |
+| :--- | :--- | :--- | :--- |
+| **Resistor** | Zigzag / Box | $V=IR$ | Current limiting, voltage divider |
+| **Capacitor**| Two Parallel Lines| $i=C \frac{dV}{dt}$ | Filtering, timing, coupling |
+| **Button** | Momentary | N/A | User input (momentary) |
+| **Switch** | Toggle/Lever | N/A | Power control, signal routing |
+
+---
+
+## Common Suffixes
+
+* **k** = kilo ($10^3$)
+* **M** = Mega ($10^6$)
+* **m** = milli ($10^{-3}$)
+* **µ** = micro ($10^{-6}$)
+* **n** = nano ($10^{-9}$)
+* **p** = pico ($10^{-12}$)
diff --git a/skills/legacy-circuit-mockups/references/common-breadboard-components.md b/skills/legacy-circuit-mockups/references/common-breadboard-components.md
new file mode 100644
index 00000000..6c2a3fa2
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/common-breadboard-components.md
@@ -0,0 +1,281 @@
+# Common Breadboard Electronic Components
+
+A practical reference for **breadboard-based electronics**, covering common components, formulas, tables, pinouts, and learning references. Suitable for beginners through intermediate hardware builders.
+
+---
+
+## 1. Resistors
+
+### Description
+
+Resistors limit current, divide voltage, and set bias points.
+
+### Common Types
+
+| Type | Notes | Typical Use |
+| ------------- | ----------- | ------------------ |
+| Carbon Film | Cheap, ±5% | General purpose |
+| Metal Film | Stable, ±1% | Precision circuits |
+| Wirewound | High power | Power dissipation |
+| Potentiometer | Adjustable | Volume, tuning |
+
+### Standard Values (E12 Series)
+
+`10, 12, 15, 18, 22, 27, 33, 39, 47, 56, 68, 82 x 10^n`
+
+### Color Code
+
+| Band | Meaning |
+| ---- | ------------ |
+| 1 | First digit |
+| 2 | Second digit |
+| 3 | Multiplier |
+| 4 | Tolerance |
+
+### Power Ratings
+
+| Rating | Typical Size |
+| ------ | ------------------- |
+| 1/8 W | Small |
+| 1/4 W | Breadboard standard |
+| 1/2 W | Large |
+
+### Formulas
+
+* **Ohm's Law:** `V = I x R`
+* **Power:** `P = V × I = I² × R = V² / R`
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Resistor](https://en.wikipedia.org/wiki/Resistor)
+
+---
+
+## 2. Capacitors
+
+### Description
+
+Capacitors store electrical energy and block DC while passing AC.
+
+### Common Types
+
+| Type | Polarized | Typical Use |
+| ------------ | --------- | ------------------ |
+| Ceramic | No | Decoupling, bypass |
+| Electrolytic | Yes | Bulk filtering |
+| Tantalum | Yes | Compact filtering |
+| Film | No | Signal coupling |
+
+### Common Values
+
+| Range | Example |
+| ----- | ---------------- |
+| pF | 10pF, 100pF |
+| nF | 100nF (0.1µF) |
+| µF | 1µF, 10µF, 100µF |
+
+### Voltage Rating Rule
+
+> Capacitor voltage rating ≥ **2x circuit voltage**
+
+### Formulas
+
+* **Capacitive Reactance:** `Xc = 1 / (2πfC)`
+* **Energy Stored:** `E = ½ C V²`
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Capacitor](https://en.wikipedia.org/wiki/Capacitor)
+
+---
+
+## 3. Inductors
+
+### Description
+
+Inductors store energy in a magnetic field and resist changes in current.
+
+### Common Types
+
+| Type | Use |
+| ------------ | ----------------- |
+| Air-core | RF circuits |
+| Ferrite-core | Power filtering |
+| Choke | Noise suppression |
+
+### Formula
+
+* **Inductive Reactance:** `XL = 2πfL`
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Inductor](https://en.wikipedia.org/wiki/Inductor)
+
+---
+
+## 4. Diodes
+
+### Description
+
+Diodes allow current flow in one direction only.
+
+### Common Types
+
+| Type | Typical Part | Use |
+| --------- | ------------ | --------------------- |
+| Rectifier | 1N4007 | Power |
+| Signal | 1N4148 | Logic, fast switching |
+| Zener | 1N4733A | Voltage regulation |
+| Schottky | 1N5819 | Low drop |
+
+### Key Parameters
+
+| Parameter | Typical |
+| --------------- | -------------------------- |
+| Forward Voltage | 0.7V (Si), 0.3V (Schottky) |
+| Reverse Voltage | Device-specific |
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Diode](https://en.wikipedia.org/wiki/Diode)
+
+---
+
+## 5. LEDs (Light Emitting Diodes)
+
+### Description
+
+LEDs emit light when forward biased.
+
+### Typical Forward Voltage
+
+| Color | Vf |
+| ----- | -------- |
+| Red | 1.8-2.2V |
+| Green | 2.0-3.0V |
+| Blue | 3.0-3.3V |
+
+### Current Limiting Resistor
+
+`R = (V_supply - V_LED) / I_LED`
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Light-emitting_diode](https://en.wikipedia.org/wiki/Light-emitting_diode)
+
+---
+
+## 6. Transistors
+
+### BJT (Bipolar Junction Transistor)
+
+| Type | Example | Use |
+| ---- | ------- | ------------------------ |
+| NPN | 2N3904 | Switching, amplification |
+| PNP | 2N3906 | High-side switching |
+
+**Key Formula:**
+
+* `Ic ≈ β × Ib`
+
+### MOSFET
+
+| Type | Example | Use |
+| --------- | ------- | --------------------- |
+| N-channel | IRLZ44N | Logic-level switching |
+| P-channel | IRF9540 | High-side control |
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Transistor](https://en.wikipedia.org/wiki/Transistor)
+
+---
+
+## 7. Integrated Circuits (DIP)
+
+### Common Logic Families
+
+| Family | Voltage | Notes |
+| ----------- | ------- | ------------------- |
+| TTL (74LS) | 5V | Legacy |
+| CMOS (74HC) | 2-6V | Breadboard-friendly |
+
+### Decoupling Rule
+
+> Place **0.1µF ceramic capacitor** across Vcc and GND per IC
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Integrated_circuit](https://en.wikipedia.org/wiki/Integrated_circuit)
+
+---
+
+## 8. Switches & Buttons
+
+| Type | Use |
+| ------- | --------------- |
+| Tactile | Momentary input |
+| Slide | Mode select |
+| Toggle | Power |
+
+### Debounce (RC Approximation)
+
+* Typical: `10kΩ + 100nF`
+
+---
+
+## 9. Breadboards
+
+### Description
+
+Solderless prototyping boards with internal bus connections.
+
+### Internal Wiring
+
+* Rows: connected horizontally (5 holes)
+* Rails: connected vertically (power)
+
+### Limitations
+
+* Not suitable for high-frequency or high-current circuits
+
+### Reference
+
+* [https://en.wikipedia.org/wiki/Breadboard](https://en.wikipedia.org/wiki/Breadboard)
+
+---
+
+## 10. Common Accessories
+
+| Item | Purpose |
+| ---------------- | ----------------- |
+| Jumper wires | Connections |
+| USB power module | 5V / 3.3V supply |
+| Multimeter | Measurement |
+| Logic probe | Digital debugging |
+
+---
+
+## 11. Quick Reference Formulas
+
+| Formula | Description |
+| --------------- | -------------------- |
+| `V = IR` | Ohm's Law |
+| `P = VI` | Power |
+| `Xc = 1/(2πfC)` | Capacitive reactance |
+| `XL = 2πfL` | Inductive reactance |
+| `E = ½CV²` | Capacitor energy |
+
+---
+
+## 12. Learning Resources
+
+* [https://learn.sparkfun.com](https://learn.sparkfun.com)
+* [https://www.allaboutcircuits.com](https://www.allaboutcircuits.com)
+* [https://www.electronics-tutorials.ws](https://www.electronics-tutorials.ws)
+* [https://en.wikipedia.org/wiki/Electronics](https://en.wikipedia.org/wiki/Electronics)
+
+---
+
+**Document Purpose:** Practical breadboard electronics reference
+**Scope:** Hobbyist, education, prototyping
diff --git a/skills/legacy-circuit-mockups/references/connecting-electronic-components.md b/skills/legacy-circuit-mockups/references/connecting-electronic-components.md
new file mode 100644
index 00000000..b62009d0
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/connecting-electronic-components.md
@@ -0,0 +1,310 @@
+# Connecting Electronic Components
+
+This guide provides step-by-step instructions for building electronic circuits on a breadboard. Each build progressively introduces new components and concepts.
+
+---
+
+## Basic Component Build Instructions
+
+### Build 1 — Single LED
+
+**Components:** Red LED, black jumper wire, red jumper wire, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A5** to **A14**.
+2. Insert the red jumper wire into the breadboard from **J5** to **J14**.
+3. Place the red LED into row 14 with the positive leg (the longer of the two legs) on the right side, aligned with the red wire, and the negative leg on the left, aligned with the black wire.
+4. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you insert the battery, the LED will light up.
+
+**Troubleshooting:**
+
+- Is your LED inserted backwards?
+- Are the jumper wires in the same row as the LED leads?
+- Are the jumper wires in the same row as the battery terminals?
+
+---
+
+### Build 2 — Single Push Button
+
+**Components:** Red LED, push button, black jumper wire, red jumper wire, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A5** to **A16**.
+2. Insert the red jumper wire into the breadboard from **J5** to **J12**.
+3. Place the red LED into the breadboard with the positive leg (the longer of the two legs) inserted into **H15** and the negative leg into **G17**.
+4. Place the push button horizontally in the middle of the breadboard so the bottom-left pin is on row 16 (aligned with the black jumper wire) and the top-right pin is on row 14 (aligned with the negative leg of the red LED).
+5. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you press the push button, the LED will light up.
+
+**Troubleshooting:**
+
+- Is your LED inserted backwards?
+- Are the jumper wires in the same row as the LED leads?
+- Are the jumper wires in the same row as the battery terminals?
+
+---
+
+### Build 3 — Photoresistor-Dimmed LED
+
+**Components:** Green LED, photoresistor, black jumper wire, red jumper wire, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A5** to **A12**.
+2. Insert the red jumper wire into the breadboard from **J5** to **J13**.
+3. Place the green LED into the breadboard with the positive leg (the longer of the two legs) inserted into **F13** and the negative leg into **E13**.
+4. Insert the photoresistor into the breadboard from **C12** to **D13**.
+5. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you insert the battery, the LED will light up. Covering the photoresistor will cause the LED to dim.
+
+---
+
+### Build 4 — Double LED Push Button
+
+**Components:** Red LED, green LED, 220Ω resistor, push button, black jumper wire, red jumper wire, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A5** to **A11**.
+2. Insert the red jumper wire into the breadboard from **J5** to **J11**.
+3. Insert the 220Ω resistor into the breadboard from **I11** to **I15**.
+4. Place the push button horizontally in the middle of the breadboard so the top pins are on row 15 and on opposite sides of the breadboard.
+5. Place the red LED into the breadboard with the positive leg (the longer of the two legs) inserted into **C17** and the negative leg into **B11**.
+6. Place the green LED into the breadboard with the positive leg inserted into **G15** and the negative leg into **E11**.
+7. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you insert the battery, the green LED will light up. When you press the push button, the green LED will turn off and the red LED will light up.
+
+### Build 5 - Photoresistor Blinking LEDs
+
+- Insert the black jumper wire into the breadboard from A3 to A12.
+- Insert the red jumper wire into the breadboard from J3 to J12.
+- Place the 555 integrated circuit chip into the middle of the breadboard with the top pins on row 12.
+- Insert a jumper wire into the breadboard connecting D15 to G12.
+- Insert a jumper wire into the breadboard connecting D13 to G14.
+- Insert the 1000Ω resistor into the breadboard from C14 to H17.
+- Insert the photoresistor into the breadboard from B14 to B15.
+- Insert the capacitor into the breadboard from A13 to B12.
+- Place the green LED into the breadboard with the positive leg (longer of the two legs) inserted into F17 and the negative leg into C12.
+- Place the red LED into the breadboard with the positive leg inserted into I12 and the negative leg into J17.
+- Insert the battery into its battery holder and place it in the breadboard, connecting negative to black and positive to red.
+
+When you insert the battery, both LED’s will begin rapidly blinking. Covering the photoresistor from light will slow the LEDs blinking frequency.
+
+---
+
+## 555 Timer IC Reference
+
+The 555 timer is a versatile integrated circuit used in timing, pulse generation, and oscillator applications. The following sections provide pinout information and internal circuit details.
+
+### 555 Pinout Diagram
+
+```
+ ┌─────────────────────────────────────┐
+ │ ● │
+ │ #1 #8 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #2 #7 │
+ │ ┌──┐ 555 TIMER ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #3 #6 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ │ #4 #5 │
+ │ ┌──┐ ┌──┐ │
+ │ │ │ │ │ │
+ │ └──┘ └──┘ │
+ └─────────────────────────────────────┘
+```
+
+### 555 Pin Descriptions
+
+| Pin | Symbol | Function |
+|:---:|:---:|:---|
+| 1 | GND | Ground reference (0V) |
+| 2 | TRIG | Trigger input — starts timing cycle when voltage drops below ⅓ Vcc |
+| 3 | OUT | Output — provides high or low signal |
+| 4 | RESET | Reset input (active low) — forces output low when grounded |
+| 5 | CONT | Control voltage — provides access to internal voltage divider (⅔ Vcc) |
+| 6 | THRES | Threshold input — ends timing cycle when voltage exceeds ⅔ Vcc |
+| 7 | DISCH | Discharge — open collector output for discharging timing capacitor |
+| 8 | Vcc | Supply voltage (+4.5V to +16V) |
+
+### 555 Internal Block Diagram
+
+```mermaid
+flowchart TB
+ subgraph IC["555 Timer IC"]
+ direction TB
+
+ subgraph DIVIDER["Voltage Divider"]
+ R1["R (5kΩ)"]
+ R2["R (5kΩ)"]
+ R3["R (5kΩ)"]
+ R1 --- R2 --- R3
+ end
+
+ COMP1["Comparator 1
(Threshold)"]
+ COMP2["Comparator 2
(Trigger)"]
+ FF["Flip-Flop
S-R"]
+ OUT_STAGE["Output
Stage"]
+ DISCH_TR["Discharge
Transistor"]
+ VREF["Vref"]
+ end
+
+ PIN8["Pin 8
Vcc"] --> R1
+ R3 --> PIN1["Pin 1
GND"]
+
+ R1 -.->|"2/3 Vcc"| COMP1
+ R2 -.->|"1/3 Vcc"| COMP2
+
+ PIN6["Pin 6
Threshold"] --> COMP1
+ PIN2["Pin 2
Trigger"] --> COMP2
+
+ COMP1 -->|R| FF
+ COMP2 -->|S| FF
+
+ FF --> OUT_STAGE
+ FF --> DISCH_TR
+
+ OUT_STAGE --> PIN3["Pin 3
Output"]
+ DISCH_TR --> PIN7["Pin 7
Discharge"]
+
+ PIN4["Pin 4
Reset"] --> FF
+ PIN5["Pin 5
Control Voltage"] -.-> R2
+
+ style PIN1 fill:#000,color:#fff
+ style PIN2 fill:#f96,color:#000
+ style PIN3 fill:#6f6,color:#000
+ style PIN4 fill:#f66,color:#000
+ style PIN5 fill:#ff6,color:#000
+ style PIN6 fill:#6ff,color:#000
+ style PIN7 fill:#f6f,color:#000
+ style PIN8 fill:#f00,color:#fff
+```
+
+---
+
+### Build 6 — Push Button Buzzer
+
+**Components:** 555 timer IC, piezo speaker, 220Ω resistor, 1000Ω resistor, capacitor, push button, jumper wires, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A1** to **A11**.
+2. Insert the red jumper wire into the breadboard from **J1** to **J11**.
+3. Place the 555 integrated circuit chip into the middle of the breadboard with the top pins on row 11.
+4. Insert a jumper wire into the breadboard connecting **D12** to **G13**.
+5. Insert a jumper wire into the breadboard connecting **D14** to **G11**.
+6. Insert the capacitor into the breadboard from **A12** to **B11**.
+7. Insert the 220Ω resistor into the breadboard from **C12** to **C13**.
+8. Place the push button horizontally in the middle of the breadboard so the top pins are on row 15 and on opposite sides of the breadboard.
+9. Insert the piezo speaker into the breadboard with the positive pin in **A9** and the negative pin in **A6**.
+10. Insert the 1000Ω resistor into the breadboard from **E6** to **A13**.
+11. Insert a jumper wire into the breadboard connecting **C9** to **D15**.
+12. Insert a jumper wire into the breadboard connecting **G17** to **I11**.
+13. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you press the push button, the buzzer will sound.
+
+---
+
+### Build 7 — Photoresistor Theremin
+
+**Components:** 555 timer IC, piezo speaker, photoresistor, 1000Ω resistor, capacitor, push button, jumper wires, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A1** to **A11**.
+2. Insert the red jumper wire into the breadboard from **J1** to **J11**.
+3. Place the 555 integrated circuit chip into the middle of the breadboard with the top pins on row 11.
+4. Insert a jumper wire into the breadboard connecting **D12** to **G13**.
+5. Insert a jumper wire into the breadboard connecting **D14** to **G11**.
+6. Insert the capacitor into the breadboard from **A12** to **B11**.
+7. Insert the photoresistor into the breadboard from **C12** to **C13**.
+8. Place the push button horizontally in the middle of the breadboard so the top pins are on row 15 and on opposite sides of the breadboard.
+9. Insert the piezo speaker into the breadboard with the positive pin in **A9** and the negative pin in **A6**.
+10. Insert the 1000Ω resistor into the breadboard from **E6** to **A13**.
+11. Insert a jumper wire into the breadboard connecting **C9** to **D15**.
+12. Insert a jumper wire into the breadboard connecting **G17** to **I11**.
+13. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you press the push button, the buzzer will sound. Covering the photoresistor will change the pitch of the buzzer.
+
+---
+
+### Build 8 — Potentiometer-Dimmed LED
+
+**Components:** Green LED, potentiometer, 220Ω resistor, black jumper wire, red jumper wire, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A1** to **A13**.
+2. Insert the red jumper wire into the breadboard from **J1** to **J9**.
+3. Place the potentiometer with the two-pin side on the left, top pin in **E13** and bottom pin in **E15**.
+4. Insert the 220Ω resistor into the breadboard from **H9** to **H14**.
+5. Place the green LED into the breadboard with the positive leg (the longer of the two legs) inserted into **C15** and the negative leg in **B13**.
+6. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** When you insert the battery, the LED will turn on. Rotating the potentiometer will increase or decrease the brightness of the LED.
+
+---
+
+### Build 9 — Push Button RGB LED
+
+**Components:** RGB LED (common cathode), three push buttons, two 220Ω resistors, black jumper wire, red jumper wire, jumper wires, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A1** to **B7**.
+2. Insert the red jumper wire into the breadboard from **J1** to **J7**.
+3. Insert the RGB LED into the breadboard from **A4** to **A8**. The longest of the four legs is the ground and should be in **A7**.
+4. Place three push buttons horizontally in the middle of the breadboard with pins at:
+ - Button 1: **E9–F9** and **E11–F11**
+ - Button 2: **E12–F12** and **E14–F14**
+ - Button 3: **E15–F15** and **E17–F17**
+5. Insert a jumper wire into the breadboard connecting **C5** to **D9**.
+6. Insert a jumper wire into the breadboard connecting **C6** to **C12**.
+7. Insert a jumper wire into the breadboard connecting **B8** to **B15**.
+8. Insert the first 220Ω resistor into the breadboard from **G7** to **G11**.
+9. Insert the second 220Ω resistor into the breadboard from **H7** to **H14**.
+10. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** Pressing each push button will activate a different color channel of the RGB LED.
+
+---
+
+### Build 10 — Potentiometer-Controlled Buzzer
+
+**Components:** 555 timer IC, piezo speaker, potentiometer, 220Ω resistor, capacitor, push button, jumper wires, battery with holder
+
+**Steps:**
+
+1. Insert the black jumper wire into the breadboard from **A1** to **A11**.
+2. Insert the red jumper wire into the breadboard from **J1** to **J11**.
+3. Place the 555 integrated circuit chip into the middle of the breadboard with the top pins on row 11.
+4. Insert a jumper wire into the breadboard connecting **D12** to **G13**.
+5. Insert a jumper wire into the breadboard connecting **D14** to **G11**.
+6. Insert the capacitor into the breadboard from **A12** to **B11**.
+7. Insert the piezo speaker into the breadboard from **A6** to **A9** (place the positive end on the bottom).
+8. Place the push button horizontally in the middle of the breadboard so the top pins are in **E15** and **F15**.
+9. Insert the 220Ω resistor into the breadboard from **E6** to **A13**.
+10. Insert a jumper wire into the breadboard connecting **E9** to **D15**.
+11. Insert a jumper wire into the breadboard connecting **G17** to **I11**.
+12. Place the potentiometer with the two-pin side on the right, top pin in **F7** and bottom pin in **F9**.
+13. Insert a jumper wire into the breadboard connecting **D8** to **B13**.
+14. Insert a jumper wire into the breadboard connecting **H7** to **C12**.
+15. Insert a jumper wire into the breadboard connecting **H9** to **D11**.
+16. Insert the battery into its holder and place it in the breadboard, connecting negative to black and positive to red.
+
+**Result:** Pressing the push button will cause the buzzer to sound. Rotating the potentiometer will alter the pitch of the buzzer.
diff --git a/skills/legacy-circuit-mockups/references/lcd.md b/skills/legacy-circuit-mockups/references/lcd.md
new file mode 100644
index 00000000..eef2433d
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/lcd.md
@@ -0,0 +1,208 @@
+# DFRobot FIT0127 LCD Character Display Specification
+
+## 1. Overview
+
+The **DFRobot FIT0127** is a family of **HD44780-compatible character LCD modules** commonly used in embedded systems and hobbyist projects. These displays provide alphanumeric output using a dot-matrix character generator and support both 8-bit and 4-bit parallel interfaces.
+
+FIT0127 modules are frequently paired with microcontrollers and 8-bit CPUs such as the **6502**, **AVR**, **PIC**, and **Arduino** platforms.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| ----------------- | --------------------------------------------------- |
+| Display type | Character LCD (STN, Yellow-Green backlight typical) |
+| Controller | HD44780 or compatible |
+| Interface | Parallel (4-bit or 8-bit) |
+| Character size | 5 x 8 dot matrix |
+| Operating voltage | 5 V logic (some variants support 3.3 V) |
+| Backlight | LED (separate power pins) |
+| Viewing mode | Transflective |
+
+---
+
+## 3. Display Variants
+
+The FIT0127 designation is commonly associated with **16x2 character LCD modules**.
+
+| Variant | Characters |
+| ------- | ------------------- |
+| FIT0127 | 16 columns x 2 rows |
+
+---
+
+## 4. Pin Configuration
+
+### 4.1 Pinout (Standard 16-pin Header)
+
+| Pin | Name | Description |
+| --: | ---- | --------------------- |
+| 1 | VSS | Ground |
+| 2 | VDD | +5 V supply |
+| 3 | VO | Contrast adjust |
+| 4 | RS | Register Select |
+| 5 | R/W | Read/Write select |
+| 6 | E | Enable |
+| 7 | D0 | Data bit 0 |
+| 8 | D1 | Data bit 1 |
+| 9 | D2 | Data bit 2 |
+| 10 | D3 | Data bit 3 |
+| 11 | D4 | Data bit 4 |
+| 12 | D5 | Data bit 5 |
+| 13 | D6 | Data bit 6 |
+| 14 | D7 | Data bit 7 |
+| 15 | A | Backlight Anode (+) |
+| 16 | K | Backlight Cathode (-) |
+
+---
+
+## 5. Electrical Characteristics (Typical)
+
+| Parameter | Value |
+| ------------------- | ----------- |
+| Logic voltage (VDD) | 4.5 - 5.5 V |
+| Logic current | ~1-2 mA |
+| Backlight voltage | ~4.2 V |
+| Backlight current | 15-30 mA |
+
+---
+
+## 6. Interface Signals
+
+### 6.1 RS (Register Select)
+
+| RS | Function |
+| -- | -------------------- |
+| 0 | Instruction register |
+| 1 | Data register |
+
+### 6.2 R/W
+
+| R/W | Operation |
+| --- | ------------- |
+| 0 | Write to LCD |
+| 1 | Read from LCD |
+
+### 6.3 Enable (E)
+
+* Data is latched on the **falling edge** of E
+* E must be pulsed HIGH LOW for each transfer
+
+---
+
+## 7. Data Bus Operation
+
+### 7.1 8-bit Mode
+
+* Uses D0-D7
+* Faster operation
+
+### 7.2 4-bit Mode
+
+* Uses D4-D7 only
+* Data transferred in two nibbles (high first)
+* Saves I/O pins
+
+---
+
+## 8. Internal Memory Map
+
+### 8.1 DDRAM (Display Data RAM)
+
+| Address | Display Position |
+| --------: | ---------------- |
+| 0x00-0x0F | Line 1, Col 1-16 |
+| 0x40-0x4F | Line 2, Col 1-16 |
+
+### 8.2 CGRAM (Character Generator RAM)
+
+* Supports up to **8 custom characters**
+* Each character uses 8 bytes
+
+---
+
+## 9. Instruction Set (Summary)
+
+| Instruction | Description |
+| ----------- | ---------------------- |
+| 0x01 | Clear display |
+| 0x02 | Return home |
+| 0x04-0x07 | Entry mode set |
+| 0x08-0x0F | Display on/off control |
+| 0x10-0x1F | Cursor/display shift |
+| 0x20-0x3F | Function set |
+| 0x40-0x7F | Set CGRAM address |
+| 0x80-0xFF | Set DDRAM address |
+
+---
+
+## 10. Initialization Sequence (4-bit Mode)
+
+```text
+Wait >15 ms after VDD rises
+Function set: 0x33
+Function set: 0x32
+Function set: 0x28 (4-bit, 2-line)
+Display ON/OFF: 0x0C
+Entry mode: 0x06
+Clear display: 0x01
+```
+
+---
+
+## 11. Timing Characteristics (Typical)
+
+| Operation | Time |
+| ------------------ | -------- |
+| Enable pulse width | ≥ 450 ns |
+| Command execution | ~37 µs |
+| Clear / Home | ~1.52 ms |
+
+---
+
+## 12. Typical System Integration (6502 Example)
+
+```text
+RS VIA output
+E VIA output
+D4-D7 VIA Port B
+R/W Grounded (write-only)
+```
+
+---
+
+## 13. Contrast and Backlight Control
+
+* Contrast adjusted via potentiometer on VO pin
+* Backlight may require series resistor
+* PWM dimming supported via external control
+
+---
+
+## 14. Absolute Maximum Ratings (Summary)
+
+| Parameter | Rating |
+| -------------- | --------------------- |
+| VDD | -0.3 V to +6.0 V |
+| Input voltage | -0.3 V to VDD + 0.3 V |
+| Operating temp | -20 °C to +70 °C |
+
+---
+
+## 15. Common Use Cases
+
+* Status displays
+* Debug output for SBCs
+* User interfaces for embedded systems
+* Retrocomputer front panels
+
+---
+
+## 16. References
+
+*
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/minipro.md b/skills/legacy-circuit-mockups/references/minipro.md
new file mode 100644
index 00000000..7e0423cf
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/minipro.md
@@ -0,0 +1,211 @@
+# minipro Chip Programming Utility Specification
+
+## 1. Overview
+
+**minipro** is an open-source, command-line utility used to **program, read, erase, and verify** a wide range of **EEPROM, Flash, EPROM, SRAM, GAL, and logic devices** using supported universal programmers such as the **T48**, **TL866II Plus**, and compatible models.
+
+It is widely used in **Linux**, **macOS**, and **Windows** environments, especially for **retrocomputing**, **firmware development**, and **electronics prototyping**.
+
+---
+
+## 2. Supported Programmers
+
+| Programmer | Notes |
+| ------------ | -------------------------- |
+| T48 | Full support (recommended) |
+| TL866II Plus | Full support |
+| TL866A / CS | Limited / legacy support |
+
+---
+
+## 3. Supported Device Types
+
+### 3.1 Memory Devices
+
+* Parallel EEPROM (e.g., AT28C256)
+* Flash memory (29xxx series)
+* EPROM (27xxx series)
+* SRAM (read/verify only)
+
+### 3.2 Logic and PLDs
+
+* GAL16V8 / GAL22V10
+* PAL devices (limited)
+
+### 3.3 Other Devices
+
+* Some microcontrollers (device-dependent)
+* Logic IC testing (selected models)
+
+---
+
+## 4. Installation
+
+### 4.1 Linux
+
+```bash
+sudo apt install minipro
+```
+
+or from source:
+
+```bash
+git clone https://github.com/vdudouyt/minipro.git
+make
+sudo make install
+```
+
+### 4.2 Windows
+
+* Install via MSYS2 or prebuilt binaries
+* Requires libusb driver (WinUSB)
+
+---
+
+## 5. Basic Command Syntax
+
+```bash
+minipro [options]
+```
+
+Common options:
+
+| Option | Description |
+| ------------- | ---------------------- |
+| `-p ` | Select target device |
+| `-r ` | Read device to file |
+| `-w ` | Write file to device |
+| `-e` | Erase device |
+| `-v` | Verify contents |
+| `-I` | Device information |
+| `-l` | List supported devices |
+
+---
+
+## 6. Common Programming Operations
+
+### 6.1 List Supported Devices
+
+```bash
+minipro -l
+```
+
+### 6.2 Identify Device
+
+```bash
+minipro -p AT28C256 -I
+```
+
+### 6.3 Read a Chip
+
+```bash
+minipro -p AT28C256 -r rom_dump.bin
+```
+
+### 6.4 Write a Chip
+
+```bash
+minipro -p AT28C256 -w rom.bin
+```
+
+### 6.5 Verify Only
+
+```bash
+minipro -p AT28C256 -v rom.bin
+```
+
+---
+
+## 7. Programming EEPROMs (AT28C256 Example)
+
+```bash
+minipro -p AT28C256 -w monitor.bin
+```
+
+* Software Data Protection is handled automatically
+* Write cycle delays are internally managed
+* Verification performed after programming
+
+---
+
+## 8. Programming Flash Memory
+
+```bash
+minipro -p SST39SF040 -e -w firmware.bin
+```
+
+* Erase step required for Flash devices
+* Sector erase handled automatically
+
+---
+
+## 9. EPROM Operations
+
+```bash
+minipro -p 27C256 -r eprom.bin
+```
+
+* UV erase required before reprogramming
+* minipro verifies blank state before write
+
+---
+
+## 10. GAL Programming
+
+```bash
+minipro -p GAL22V10 -w logic.jed
+```
+
+* Uses JEDEC files
+* Supports read, write, and verify
+* Fuse maps viewable via `-I`
+
+---
+
+## 11. Error Handling and Messages
+
+| Message | Meaning |
+| ---------------------- | -------------------------- |
+| `Device not found` | Incorrect device selection |
+| `Verification failed` | Data mismatch |
+| `Chip protected` | Write protection enabled |
+| `Overcurrent detected` | Insertion or wiring error |
+
+---
+
+## 12. Safety and Best Practices
+
+* Always confirm device orientation in ZIF socket
+* Use correct device identifier (`-p`)
+* Do not hot-insert chips during operation
+* Use adapters for PLCC, SOP, TSOP packages
+
+---
+
+## 13. Typical Retrocomputing Workflow
+
+1. Assemble ROM image
+2. Program EEPROM using minipro + T48
+3. Verify contents
+4. Install chip in SBC
+5. Test system boot
+
+---
+
+## 14. Limitations
+
+* Not all devices are supported
+* Some microcontrollers require proprietary tools
+* In-circuit programming (ISP) not supported
+
+---
+
+## 15. References
+
+*
+*
+*
+*
+*
+
+---
diff --git a/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md b/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md
new file mode 100644
index 00000000..63f7d06b
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/t48eeprom-programmer.md
@@ -0,0 +1,174 @@
+# T48 Universal EEPROM / Flash Programmer Specification
+
+## 1. Overview
+
+The **T48 Universal Programmer** (also sold as **TL866-3G / TL866II Plus successor**) is a USB-connected device used to **read, program, and verify** a wide range of **EEPROM, Flash, EPROM, GAL, and microcontroller devices**. It is commonly used in **retrocomputing**, **firmware development**, and **electronics repair** workflows.
+
+The T48 is a modern replacement for the TL866 series, offering expanded device support and improved software compatibility.
+
+---
+
+## 2. General Characteristics
+
+| Feature | Description |
+| ------------------- | ---------------------------------- |
+| Programmer type | Universal device programmer |
+| Interface | USB 2.0 |
+| Socket | ZIF-48 |
+| Supported devices | EEPROM, Flash, EPROM, GAL, MCU |
+| Programming voltage | Generated internally |
+| Host OS | Windows, Linux (open-source tools) |
+| Verification | Read-after-write, checksum |
+
+---
+
+## 3. Physical Description
+
+### 3.1 ZIF Socket
+
+* **48-pin Zero Insertion Force (ZIF)** socket
+* Supports DIP packages directly
+* PLCC, SOP, TSOP supported via adapters
+
+### 3.2 Indicators and Controls
+
+| Item | Description |
+| ------------- | --------------------------- |
+| Status LED | Power / activity indication |
+| ZIF lever | Locks IC into socket |
+| USB connector | Host connection and power |
+
+---
+
+## 4. Supported Device Categories
+
+### 4.1 Memory Devices
+
+* 27xxx EPROM
+* 28xxx EEPROM (e.g., AT28C256)
+* 29xxx Flash memory
+* Serial EEPROMs (with adapters)
+
+### 4.2 Programmable Logic
+
+* GAL16V8, GAL22V10 (read/write/verify)
+
+### 4.3 Microcontrollers (Limited)
+
+* Some PIC, AVR, and 8051-family devices
+* Programming support depends on voltage and pinout
+
+---
+
+## 5. Electrical Capabilities
+
+| Parameter | Description |
+| -------------- | ---------------------------------------- |
+| VCC range | 1.8 V - 6.5 V (device dependent) |
+| VPP | Internally generated, device-specific |
+| I/O protection | Over-current and short-circuit protected |
+
+---
+
+## 6. Programming Operations
+
+### 6.1 Common Operations
+
+* Device identification
+* Blank check
+* Read
+* Program (write)
+* Verify
+* Erase (Flash/EPROM)
+
+### 6.2 Verification Modes
+
+* Byte-by-byte comparison
+* Checksum / CRC validation
+
+---
+
+## 7. Software Support
+
+### 7.1 Official Software
+
+* Windows-based GUI
+* Device database with pin mappings
+* Automatic voltage and timing control
+
+### 7.2 Open-Source Tools
+
+| Tool | Notes |
+| --------- | -------------------------------- |
+| `minipro` | Linux / macOS / Windows CLI tool |
+| libusb | USB communication backend |
+
+Example:
+
+```bash
+minipro -p AT28C256 -w rom.bin
+```
+
+---
+
+## 8. Device Insertion and Pin Mapping
+
+* Device orientation indicated by **pin 1 marker**
+* Many devices use **lower-left alignment** in ZIF socket
+* Software displays correct insertion diagram
+
+---
+
+## 9. Typical Workflow (EEPROM Example)
+
+1. Select device type (e.g., AT28C256)
+2. Insert chip into ZIF socket
+3. Perform blank check
+4. Load binary image
+5. Program device
+6. Verify written contents
+
+---
+
+## 10. Power and Safety Notes
+
+* Programmer powered entirely via USB
+* Do not insert or remove ICs while programming
+* Use adapters for non-DIP packages
+
+---
+
+## 11. Limitations
+
+* Not all microcontrollers are supported
+* High-voltage EPROMs may require specific adapters
+* Not intended for in-circuit programming (ISP)
+
+---
+
+## 12. Common Use Cases
+
+* Programming EEPROMs for 6502 SBCs
+* Flashing ROM images for retro systems
+* Reading and backing up legacy EPROMs
+* GAL logic development
+
+---
+
+## 13. Comparison with TL866II Plus
+
+| Feature | TL866II Plus | T48 |
+| ----------------- | ------------ | --------------- |
+| Device support | Good | Expanded |
+| OS support | Windows | Windows / Linux |
+| Open-source tools | Limited | Excellent |
+
+---
+
+## 14. References
+
+*
+*
+*
+
+---
From d57d5dfcdfe191220cb8e1d2b91b1c789d96b05b Mon Sep 17 00:00:00 2001
From: John Haugabook
Date: Sun, 18 Jan 2026 23:59:45 -0500
Subject: [PATCH 04/24] Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
skills/legacy-circuit-mockups/SKILL.md | 24 +++++++++----------
.../references/6C62256.md | 6 ++---
.../references/7400-series.md | 6 ++---
3 files changed, 18 insertions(+), 18 deletions(-)
diff --git a/skills/legacy-circuit-mockups/SKILL.md b/skills/legacy-circuit-mockups/SKILL.md
index 975a2b0d..c1dc5aac 100644
--- a/skills/legacy-circuit-mockups/SKILL.md
+++ b/skills/legacy-circuit-mockups/SKILL.md
@@ -259,15 +259,15 @@ const cellY = Math.floor(y / gridSize) * gridSize;
Detailed component specifications are available in the bundled reference files:
-- [555.md](555.md) - Complete 555 timer IC specification
-- [6502.md](6502.md) - MOS 6502 microprocessor details
-- [6522.md](6522.md) - W65C22 VIA interface adapter
-- [28256-eeprom.md](28256-eeprom.md) - AT28C256 EEPROM specification
-- [6C62256.md](6C62256.md) - 62256 SRAM details
-- [7400-series.md](7400-series.md) - TTL logic gate pinouts
-- [basic-electronic-components.md](basic-electronic-components.md) - Resistors, capacitors, switches
-- [common-breadboard-components.md](common-breadboard-components.md) - Comprehensive component reference
-- [connecting-electronic-components.md](connecting-electronic-components.md) - Step-by-step build guides
-- [lcd.md](lcd.md) - LCD display interfacing
-- [minipro.md](minipro.md) - EEPROM programmer usage
-- [t48eeprom-programmer.md](t48eeprom-programmer.md) - T48 programmer reference
+- [555.md](references/555.md) - Complete 555 timer IC specification
+- [6502.md](references/6502.md) - MOS 6502 microprocessor details
+- [6522.md](references/6522.md) - W65C22 VIA interface adapter
+- [28256-eeprom.md](references/28256-eeprom.md) - AT28C256 EEPROM specification
+- [6C62256.md](references/6C62256.md) - 62256 SRAM details
+- [7400-series.md](references/7400-series.md) - TTL logic gate pinouts
+- [basic-electronic-components.md](references/basic-electronic-components.md) - Resistors, capacitors, switches
+- [common-breadboard-components.md](references/common-breadboard-components.md) - Comprehensive component reference
+- [connecting-electronic-components.md](references/connecting-electronic-components.md) - Step-by-step build guides
+- [lcd.md](references/lcd.md) - LCD display interfacing
+- [minipro.md](references/minipro.md) - EEPROM programmer usage
+- [t48eeprom-programmer.md](references/t48eeprom-programmer.md) - T48 programmer reference
diff --git a/skills/legacy-circuit-mockups/references/6C62256.md b/skills/legacy-circuit-mockups/references/6C62256.md
index 584ceb2d..297cb534 100644
--- a/skills/legacy-circuit-mockups/references/6C62256.md
+++ b/skills/legacy-circuit-mockups/references/6C62256.md
@@ -40,9 +40,9 @@ The device offers fast access times, simple control logic, and very low standby
| Pin | Description |
| --- | -------------------------- |
-| CE? | Chip Enable (active low) |
-| OE? | Output Enable (active low) |
-| WE? | Write Enable (active low) |
+| CE# | Chip Enable (active low) |
+| OE# | Output Enable (active low) |
+| WE# | Write Enable (active low) |
| VCC | +5 V power supply |
| GND | Ground |
diff --git a/skills/legacy-circuit-mockups/references/7400-series.md b/skills/legacy-circuit-mockups/references/7400-series.md
index eb89e82a..ee2846a5 100644
--- a/skills/legacy-circuit-mockups/references/7400-series.md
+++ b/skills/legacy-circuit-mockups/references/7400-series.md
@@ -25,8 +25,8 @@ The **7400-series** is a large family of **digital logic integrated circuits** o
| Parameter | TTL | CMOS |
| ----------------- | ------- | ------------------- |
| VCC | 5 V | 2-6 V (5 V typical) |
-| Input HIGH | ° 2.0 V | ° 0.7xVCC |
-| Input LOW | ° 0.8 V | ° 0.3xVCC |
+| Input HIGH | ≥ 2.0 V | ≥ 0.7xVCC |
+| Input LOW | ≤ 0.8 V | ≤ 0.3xVCC |
| Fan-out | ~10 | Very high |
| Power consumption | Higher | Lower |
@@ -144,7 +144,7 @@ The **7400-series** is a large family of **digital logic integrated circuits** o
* TTL outputs reliably drive TTL inputs
* CMOS inputs must not float
* Use **74HCT** when interfacing CMOS with TTL signals
-* Decoupling capacitors (0.1 °F) required per IC
+* Decoupling capacitors (0.1 µF) required per IC
---
From 24154bc165be71b70358e1253a4a6792abc45f04 Mon Sep 17 00:00:00 2001
From: John Haugabook
Date: Mon, 19 Jan 2026 00:02:36 -0500
Subject: [PATCH 05/24] Apply suggestions from code review
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
---
skills/legacy-circuit-mockups/references/555.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/skills/legacy-circuit-mockups/references/555.md b/skills/legacy-circuit-mockups/references/555.md
index 74c265ff..43c7fdfd 100644
--- a/skills/legacy-circuit-mockups/references/555.md
+++ b/skills/legacy-circuit-mockups/references/555.md
@@ -103,7 +103,7 @@ flowchart TB
| Supply Voltage | vcc | - | 4.5 | - | 16 | V |
| Supply Current (Low Stable) (Note 1) | Icc | Vcc = 5V, Rl = ∞
Vcc = 15V, Rl = ∞ | -
- | 3
7.5 | 6
15 | mA
mA |
| Timing Error (Monostable)
Initial Accuracy (Note2)
Drift with Temperature (Note4)
Drift with Supply Voltage (Note4)
| ACCUR
Δt/ΔT
Δt/ΔVcc | Ra = 1kΩ to100kΩ
C = 0.1μF | - | 1.0
50
0.1 | 3.0
0.5 | %
ppm/°C
%/V |
-| Timing Error (Astable)
Intial Accuracy (Note2)
Drift with Temperature (Note4)
Drift with Supply Voltage (Note4) | ACCUR
Δt/ΔT
Δt/ΔVcc | Ra = 1kΩ to 100kΩ
C = 0.1μF | - | 2.25
150
0.3 | - | %
ppm/°C
%/V |
+| Timing Error (Astable)
Initial Accuracy (Note2)
Drift with Temperature (Note4)
Drift with Supply Voltage (Note4) | ACCUR
Δt/ΔT
Δt/ΔVcc | Ra = 1kΩ to 100kΩ
C = 0.1μF | - | 2.25
150
0.3 | - | %
ppm/°C
%/V |
| Control Voltage | Vc | Vcc = 15V
Vcc = 5V | 9.0
2.6 | 10.0
3.33 | 11.0
4.0 | V
V |
| Threshold Voltage | VTH | VCC = 15V
VCC = 5V | -
- | 10.0
3.33 | -
- | V
V |
| Threshold Current (Note3) | Ith | - | - | 0.1 | 0.25 | μA |
From 6c7d47b063f45ebd356d3c31bbe320a66bb5180a Mon Sep 17 00:00:00 2001
From: John Haugabook
Date: Mon, 19 Jan 2026 00:07:36 -0500
Subject: [PATCH 06/24] Apply suggestions from code review
---
skills/legacy-circuit-mockups/SKILL.md | 1 -
1 file changed, 1 deletion(-)
diff --git a/skills/legacy-circuit-mockups/SKILL.md b/skills/legacy-circuit-mockups/SKILL.md
index c1dc5aac..670e30db 100644
--- a/skills/legacy-circuit-mockups/SKILL.md
+++ b/skills/legacy-circuit-mockups/SKILL.md
@@ -20,7 +20,6 @@ A skill for creating breadboard circuit mockups and visual diagrams for retro co
## Prerequisites
-- Familiarity with the `electronics-breadboard-simulator.html` drawing mechanisms
- Understanding of component pinouts from bundled reference files
- Knowledge of breadboard layout conventions (rows, columns, power rails)
From 97e9189f2dcf8f47d916c9fe8220fc8d86a9f1b8 Mon Sep 17 00:00:00 2001
From: John Haugabook
Date: Mon, 19 Jan 2026 00:08:49 -0500
Subject: [PATCH 07/24] Update skills/legacy-circuit-mockups/SKILL.md
---
skills/legacy-circuit-mockups/SKILL.md | 4 ----
1 file changed, 4 deletions(-)
diff --git a/skills/legacy-circuit-mockups/SKILL.md b/skills/legacy-circuit-mockups/SKILL.md
index 670e30db..56aba588 100644
--- a/skills/legacy-circuit-mockups/SKILL.md
+++ b/skills/legacy-circuit-mockups/SKILL.md
@@ -58,10 +58,6 @@ A skill for creating breadboard circuit mockups and visual diagrams for retro co
| Potentiometer | Variable resistor |
| Photoresistor | Light-dependent resistor |
-## Drawing Mechanisms
-
-The breadboard simulator uses HTML5 Canvas with these key drawing functions:
-
### Grid System
```javascript
From 9c5665cbec92dcb3ca5f76f4e23d7774de7096d9 Mon Sep 17 00:00:00 2001
From: jhauga
Date: Mon, 19 Jan 2026 20:26:57 -0500
Subject: [PATCH 08/24] add reference files for new skill
legacy-circuit-mockups
---
skills/legacy-circuit-mockups/SKILL.md | 8 +
.../references/assembly-compiler.md | 258 ++++++++++++++++
.../references/assembly-language.md | 226 ++++++++++++++
.../references/breadboard.md | 214 +++++++++++++
.../references/emulator-28256-eeprom.md | 245 +++++++++++++++
.../references/emulator-6502.md | 251 +++++++++++++++
.../references/emulator-6522.md | 288 ++++++++++++++++++
.../references/emulator-6C62256.md | 233 ++++++++++++++
.../references/emulator-lcd.md | 266 ++++++++++++++++
9 files changed, 1989 insertions(+)
create mode 100644 skills/legacy-circuit-mockups/references/assembly-compiler.md
create mode 100644 skills/legacy-circuit-mockups/references/assembly-language.md
create mode 100644 skills/legacy-circuit-mockups/references/breadboard.md
create mode 100644 skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md
create mode 100644 skills/legacy-circuit-mockups/references/emulator-6502.md
create mode 100644 skills/legacy-circuit-mockups/references/emulator-6522.md
create mode 100644 skills/legacy-circuit-mockups/references/emulator-6C62256.md
create mode 100644 skills/legacy-circuit-mockups/references/emulator-lcd.md
diff --git a/skills/legacy-circuit-mockups/SKILL.md b/skills/legacy-circuit-mockups/SKILL.md
index 56aba588..711f5927 100644
--- a/skills/legacy-circuit-mockups/SKILL.md
+++ b/skills/legacy-circuit-mockups/SKILL.md
@@ -260,9 +260,17 @@ Detailed component specifications are available in the bundled reference files:
- [28256-eeprom.md](references/28256-eeprom.md) - AT28C256 EEPROM specification
- [6C62256.md](references/6C62256.md) - 62256 SRAM details
- [7400-series.md](references/7400-series.md) - TTL logic gate pinouts
+- [assembly-compiler.md](references/assembly-compiler.md) - Assembly compiler specification
+- [assembly-language.md](references/assembly-language.md) - Assembly language specification
- [basic-electronic-components.md](references/basic-electronic-components.md) - Resistors, capacitors, switches
+- [breadboard.md](references/breadboard.md) - Breadboard specifications
- [common-breadboard-components.md](references/common-breadboard-components.md) - Comprehensive component reference
- [connecting-electronic-components.md](references/connecting-electronic-components.md) - Step-by-step build guides
+- [emulator-28256-eeprom.md](references/emulator-28256-eeprom.md) - Emulating 28256-eeprom specification
+- [emulator-6502.md](references/emulator-6502.md) - Emulating 6502 specification
+- [emulator-6522.md](references/emulator-6522.md) - Emulating 6522 specification
+- [emulator-6C62256.md](references/emulator-6C62256.md) - Emulating 6C62256 specification
+- [emulator-lcd.md](references/emulator-lcd.md) - Emulating a LCD specification
- [lcd.md](references/lcd.md) - LCD display interfacing
- [minipro.md](references/minipro.md) - EEPROM programmer usage
- [t48eeprom-programmer.md](references/t48eeprom-programmer.md) - T48 programmer reference
diff --git a/skills/legacy-circuit-mockups/references/assembly-compiler.md b/skills/legacy-circuit-mockups/references/assembly-compiler.md
new file mode 100644
index 00000000..703a85d7
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/assembly-compiler.md
@@ -0,0 +1,258 @@
+# 6502 SBC Assembly Compilation & ROM Build Specification
+
+## Overview
+
+This document defines a **complete specification for compiling 6502 assembly language** for a single-board computer consisting of:
+
+* **MOS 6502 CPU**
+* **MOS 6522 VIA**
+* **AS6C62256 (32 KB SRAM)**
+* **AT28C256 (32 KB EEPROM / ROM)**
+* **DFRobot FIT0127 (HD44780-compatible 16x2 LCD)**
+
+The focus is on **toolchain behavior, memory layout, ROM construction, and firmware conventions**, not electrical wiring.
+
+---
+
+## Target System Architecture
+
+### Memory Map (Canonical)
+
+```
+$0000-$00FF Zero Page (RAM)
+$0100-$01FF Stack (RAM)
+$0200-$7FFF General RAM (AS6C62256)
+$8000-$8FFF 6522 VIA I/O space
+$9000-$FFFF ROM (AT28C256)
+```
+
+> Address decoding may mirror devices; assembler assumes this canonical layout.
+
+---
+
+## ROM Organization (AT28C256)
+
+| Address | Purpose |
+| ----------- | -------------------- |
+| $9000-$FFEF | Program code + data |
+| $FFF0-$FFF9 | Optional system data |
+| $FFFA-$FFFB | NMI vector |
+| $FFFC-$FFFD | RESET vector |
+| $FFFE-$FFFF | IRQ/BRK vector |
+
+ROM image size: **32,768 bytes**
+
+---
+
+## Reset & Startup Convention
+
+On reset:
+
+1. CPU fetches RESET vector at `$FFFC`
+2. Code initializes stack pointer
+3. Zero-page variables initialized
+4. VIA configured
+5. LCD initialized
+6. Main program entered
+
+---
+
+## Assembler Requirements
+
+Assembler **MUST** support:
+
+* `.org` absolute addressing
+* Symbolic labels
+* Binary output (`.bin`)
+* Little-endian word emission
+* Zero-page optimization
+
+Recommended assemblers:
+
+* **ca65** (cc65 toolchain)
+* **vasm6502**
+* **64tass**
+
+---
+
+## Assembly Source Structure
+
+```asm
+;---------------------------
+; Reset Vector Entry Point
+;---------------------------
+ .org $9000
+RESET:
+ sei
+ cld
+ ldx #$FF
+ txs
+ jsr init_via
+ jsr init_lcd
+MAIN:
+ jsr lcd_print
+ jmp MAIN
+```
+
+---
+
+## Vector Table Definition
+
+```asm
+ .org $FFFA
+ .word nmi_handler
+ .word RESET
+ .word irq_handler
+```
+
+---
+
+## 6522 VIA Programming Model
+
+### Register Map (Base = $8000)
+
+| Offset | Register |
+| ------ | -------- |
+| $0 | ORB |
+| $1 | ORA |
+| $2 | DDRB |
+| $3 | DDRA |
+| $4 | T1CL |
+| $5 | T1CH |
+| $6 | T1LL |
+| $7 | T1LH |
+| $8 | T2CL |
+| $9 | T2CH |
+| $B | ACR |
+| $C | PCR |
+| $D | IFR |
+| $E | IER |
+
+---
+
+## LCD Interface Convention
+
+### LCD Wiring Assumption
+
+| LCD | VIA |
+| ----- | ------- |
+| D4-D7 | PB4-PB7 |
+| RS | PA0 |
+| E | PA1 |
+| R/W | GND |
+
+4-bit mode assumed.
+
+---
+
+## LCD Initialization Sequence
+
+```asm
+lcd_init:
+ lda #$33
+ jsr lcd_cmd
+ lda #$32
+ jsr lcd_cmd
+ lda #$28
+ jsr lcd_cmd
+ lda #$0C
+ jsr lcd_cmd
+ lda #$06
+ jsr lcd_cmd
+ lda #$01
+ jsr lcd_cmd
+ rts
+```
+
+---
+
+## LCD Command/Data Interface
+
+| Operation | RS | Data |
+| --------- | -- | --------------- |
+| Command | 0 | Instruction |
+| Data | 1 | ASCII character |
+
+---
+
+## Zero Page Usage Convention
+
+| Address | Purpose |
+| ------- | ------------ |
+| $00-$0F | Scratch |
+| $10-$1F | LCD routines |
+| $20-$2F | VIA state |
+| $30-$FF | User-defined |
+
+---
+
+## RAM Usage (AS6C62256)
+
+* Stack uses page `$01`
+* All RAM assumed volatile
+* No ROM shadowing
+
+---
+
+## Build Pipeline
+
+### Step 1: Assemble
+
+```bash
+ca65 main.asm -o main.o
+```
+
+### Step 2: Link
+
+```bash
+ld65 -C rom.cfg main.o -o rom.bin
+```
+
+### Step 3: Pad ROM
+
+Ensure `rom.bin` is exactly **32768 bytes**.
+
+---
+
+## EEPROM Programming
+
+* Target device: **AT28C256**
+* Programmer: **MiniPro / T48**
+* Verify after write
+
+---
+
+## Emulator Expectations
+
+Emulator must:
+
+* Load ROM at `$9000-$FFFF`
+* Emulate VIA I/O side effects
+* Render LCD output
+* Honor RESET vector
+
+---
+
+## Testing Checklist
+
+* Reset vector execution
+* VIA register writes
+* LCD displays correct text
+* Stack operations valid
+* ROM image maps correctly
+
+---
+
+## References
+
+* [MOS 6502 Programming Manual](http://archive.6502.org/datasheets/synertek_programming_manual.pdf)
+* [MOS 6522 VIA Datasheet](http://archive.6502.org/datasheets/mos_6522_preliminary_nov_1977.pdf)
+* [AT28C256 Datasheet](https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/AT28C256-Industrial-Grade-256-Kbit-Paged-Parallel-EEPROM-Data-Sheet-DS20006386.pdf)
+* [HD44780 LCD Datasheet](https://www.futurlec.com/LED/LCD16X2BLa.shtml)
+* [cc65 Toolchain Docs](https://cc65.github.io/doc/cc65.html)
+
+---
+
+## Notes
+
+This specification is intentionally **end-to-end**: from assembly source to EEPROM image to running hardware or emulator. It defines a stable contract so ROMs, emulators, and real SBCs behave identically.
diff --git a/skills/legacy-circuit-mockups/references/assembly-language.md b/skills/legacy-circuit-mockups/references/assembly-language.md
new file mode 100644
index 00000000..0bff28c6
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/assembly-language.md
@@ -0,0 +1,226 @@
+# 6502 Assembly Language with AT28C256 EEPROM
+
+A practical specification for writing **6502/65C02 assembly language programs** intended to be stored in and executed from an **AT28C256 (32 KB) parallel EEPROM** in single-board computers (SBCs) and retro systems.
+
+---
+
+## 1. Scope and Assumptions
+
+This document assumes:
+
+* A **6502-family CPU** (6502, 65C02, or compatible)
+* Program code stored in an **AT28C256 (32K x 8) EEPROM**
+* Memory-mapped I/O (e.g., 6522 VIA)
+* Reset and interrupt vectors located in EEPROM
+* External RAM mapped elsewhere (e.g., 62256 SRAM)
+
+---
+
+## 2. AT28C256 EEPROM Overview
+
+| Parameter | Value |
+| -------------- | ------------------- |
+| Capacity | 32 KB (32768 bytes) |
+| Address Lines | A0-A14 |
+| Data Lines | D0-D7 |
+| Access Time | ~150 ns |
+| Supply Voltage | 5 V |
+| Package | DIP-28 / PLCC |
+
+### Typical Memory Map Usage
+
+| Address Range | Usage |
+| ------------- | ----------------------- |
+| `$8000-$FFFF` | EEPROM (code + vectors) |
+| `$FFFA-$FFFF` | Interrupt vectors |
+
+---
+
+## 3. 6502 Memory Map Example
+
+```
+$0000-$00FF Zero Page (RAM)
+$0100-$01FF Stack
+$0200-$7FFF RAM / I/O
+$8000-$FFFF AT28C256 EEPROM
+```
+
+---
+
+## 4. Reset and Interrupt Vectors
+
+The 6502 reads vectors from the **top of memory**:
+
+| Vector | Address | Description |
+| ------- | ------------- | ---------------------- |
+| NMI | `$FFFA-$FFFB` | Non-maskable interrupt |
+| RESET | `$FFFC-$FFFD` | Reset entry point |
+| IRQ/BRK | `$FFFE-$FFFF` | Maskable interrupt |
+
+### Vector Definition Example
+
+```asm
+ .org $FFFA
+ .word nmi_handler
+ .word reset
+ .word irq_handler
+```
+
+---
+
+## 5. Assembly Program Structure
+
+### Typical Layout
+
+```asm
+ .org $8000
+
+reset:
+ sei ; Disable IRQs
+ cld ; Clear decimal mode
+ ldx #$FF
+ txs ; Initialize stack
+
+main:
+ jmp main
+```
+
+---
+
+## 6. Essential 6502 Instructions
+
+### Registers
+
+| Register | Purpose |
+| -------- | ---------------- |
+| A | Accumulator |
+| X, Y | Index registers |
+| SP | Stack pointer |
+| PC | Program counter |
+| P | Processor status |
+
+### Common Instructions
+
+| Instruction | Function |
+| ----------- | ---------------------- |
+| LDA/STA | Load/store accumulator |
+| LDX/LDY | Load index registers |
+| JMP/JSR | Jump / subroutine |
+| RTS | Return from subroutine |
+| BEQ/BNE | Conditional branch |
+| SEI/CLI | Disable/enable IRQ |
+
+---
+
+## 7. Addressing Modes (Common)
+
+| Mode | Example | Notes |
+| --------- | ------------- | ------------ |
+| Immediate | `LDA #$01` | Constant |
+| Zero Page | `LDA $00` | Fast |
+| Absolute | `LDA $8000` | Full address |
+| Indexed | `LDA $2000,X` | Tables |
+| Indirect | `JMP ($FFFC)` | Vectors |
+
+---
+
+## 8. Writing Code for EEPROM Execution
+
+### Key Considerations
+
+* Code is **read-only at runtime**
+* Self-modifying code not recommended
+* Place jump tables and constants in EEPROM
+* Use RAM for variables and stack
+
+### Zero Page Variable Example
+
+```asm
+counter = $00
+
+ lda #$00
+ sta counter
+```
+
+---
+
+## 9. Timing and Performance
+
+* EEPROM access time must meet CPU clock requirements
+* AT28C256 supports ~1 MHz comfortably
+* Faster clocks may require wait states or ROM shadowing
+
+---
+
+## 10. Example: Simple LED Toggle (Memory-Mapped I/O)
+
+```asm
+PORTB = $6000
+DDRB = $6002
+
+ .org $8000
+reset:
+ sei
+ ldx #$FF
+ txs
+
+ lda #$FF
+ sta DDRB
+
+loop:
+ lda #$FF
+ sta PORTB
+ jsr delay
+ lda #$00
+ sta PORTB
+ jsr delay
+ jmp loop
+```
+
+---
+
+## 11. Assembling and Programming Workflow
+
+1. Write source (`.asm`)
+2. Assemble to binary
+3. Pad or relocate to `$8000`
+4. Program AT28C256 via T48 / minipro
+5. Insert EEPROM and reset CPU
+
+---
+
+## 12. Assembler Directives (Common)
+
+| Directive | Purpose |
+| ---------- | --------------------------- |
+| `.org` | Set program origin |
+| `.byte` | Define byte |
+| `.word` | Define word (little-endian) |
+| `.include` | Include file |
+| `.equ` | Constant definition |
+
+---
+
+## 13. Common Mistakes
+
+| Issue | Result |
+| -------------------------- | ------------------ |
+| Missing vectors | CPU hangs on reset |
+| Wrong `.org` | Code not executed |
+| Using RAM addresses in ROM | Crash |
+| Stack not initialized | Undefined behavior |
+
+---
+
+## 14. Reference Links
+
+* [https://www.masswerk.at/6502/6502_instruction_set.html](https://www.masswerk.at/6502/6502_instruction_set.html)
+* [https://www.nesdev.org/wiki/6502](https://www.nesdev.org/wiki/6502)
+* [https://www.westerndesigncenter.com/wdc/documentation](https://www.westerndesigncenter.com/wdc/documentation)
+* [https://en.wikipedia.org/wiki/MOS_Technology_6502](https://en.wikipedia.org/wiki/MOS_Technology_6502)
+
+---
+
+**Document Scope:** 6502 assembly stored in AT28C256 EEPROM
+**Audience:** Retrocomputing, SBC designers, embedded hobbyists
+**Status:** Stable reference
diff --git a/skills/legacy-circuit-mockups/references/breadboard.md b/skills/legacy-circuit-mockups/references/breadboard.md
new file mode 100644
index 00000000..ce9d3195
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/breadboard.md
@@ -0,0 +1,214 @@
+# Solderless Breadboard
+
+A practical Markdown specification and reference for **common solderless breadboards**, intended for electronics prototyping, education, and hobbyist development.
+
+---
+
+## 1. Overview
+
+A **solderless breadboard** is a reusable prototyping platform that allows electronic components to be interconnected without soldering. Connections are made via internal spring clips.
+
+### Typical Uses
+
+* Rapid circuit prototyping
+* Educational labs
+* Logic and microcontroller experiments
+* Low-power analog and digital circuits
+
+### Not Suitable For
+
+* High current (>1A)
+* High voltage (>36V)
+* RF / high-frequency designs
+* Vibration-prone or permanent installations
+
+---
+
+## 2. Physical Construction
+
+### Materials
+
+* ABS or polystyrene body
+* Phosphor bronze or nickel-plated spring contacts
+* Adhesive backing (optional)
+
+### Standard Hole Pitch
+
+* **2.54 mm (0.1 in)** - compatible with DIP ICs and standard headers
+
+### Contact Characteristics
+
+| Parameter | Typical Value |
+| ------------------ | ------------- |
+| Contact resistance | 10-50 mΩ |
+| Insertion cycles | ~5,000 |
+| Wire gauge | 20-28 AWG |
+
+---
+
+## 3. Internal Electrical Connections
+
+### Terminal Strips (Main Area)
+
+* Rows of **5 interconnected holes**
+* Horizontal connectivity
+* Center trench isolates left and right halves
+
+```
+A B C D E | F G H I J
+──────────┼──────────
+Connected | Connected
+```
+
+### Power Rails
+
+* Vertical buses on each side
+* Often **split in the middle** (not always continuous)
+* Usually marked **red (+)** and **blue (-)**
+
+```
++ + + + + (may be split)
+- - - - -
+```
+
+> ? Always verify continuity with a multimeter
+
+---
+
+## 4. Common Breadboard Sizes
+
+| Type | Tie Points | Typical Use |
+| --------- | ---------- | ------------------------ |
+| Mini | 170 | Small test circuits |
+| Half-size | 400 | Microcontroller projects |
+| Full-size | 830 | Complex prototypes |
+| Modular | Variable | Expandable systems |
+
+---
+
+## 5. Component Compatibility
+
+### Compatible Components
+
+* DIP ICs (300 mil, 600 mil)
+* Axial resistors and diodes
+* LEDs
+* Tactile switches
+* Jumper wires
+* Pin headers
+
+### Problematic Components
+
+| Component | Issue |
+| -------------------- | -------------------------- |
+| TO-220 | Too wide / stress contacts |
+| SMD | Requires adapter |
+| Large electrolytics | Mechanical strain |
+| High-power resistors | Heat |
+
+---
+
+## 6. Electrical Characteristics
+
+### Typical Limits
+
+| Parameter | Recommended Max |
+| ------------------- | ------------------ |
+| Voltage | 30-36 V |
+| Current per contact | 500-1000 mA |
+| Frequency | <1 MHz (practical) |
+
+### Parasitics (Approximate)
+
+| Type | Value |
+| ----------- | ------------------- |
+| Capacitance | 1-5 pF per node |
+| Inductance | 10-20 nH per jumper |
+
+---
+
+## 7. Best Practices
+
+### Power Distribution
+
+* Run **ground and Vcc** to both sides
+* Bridge split power rails if needed
+* Decouple ICs with **0.1µF ceramic capacitors**
+
+### Wiring
+
+* Keep wires short and tidy
+* Use color coding:
+
+ * Red: Vcc
+ * Black/Blue: GND
+ * Yellow/White: Signals
+
+### IC Placement
+
+* Place DIP ICs **straddling the center trench**
+* Avoid forcing pins
+
+---
+
+## 8. Common Mistakes
+
+| Mistake | Result |
+| ----------------------------- | ------------------ |
+| Assuming rails are continuous | Power loss |
+| Long jumper wires | Noise, instability |
+| No decoupling capacitors | Erratic behavior |
+| Exceeding current limits | Melted contacts |
+
+---
+
+## 9. Testing & Debugging
+
+### Continuity Check
+
+* Verify rails and rows using a multimeter
+
+### Signal Integrity Tips
+
+* Avoid breadboards for:
+
+ * High-speed clocks
+ * ADC precision circuits
+
+---
+
+## 10. Typical Breadboard Layout Example
+
+```
+[ + ] [ - ] Power Rails
+[ + ] [ - ]
+
+ A B C D E | F G H I J
+ A B C D E | F G H I J
+ A B C D E | F G H I J
+```
+
+---
+
+## 11. Accessories
+
+| Item | Purpose |
+| ----------------------- | ----------------- |
+| Jumper wire kits | Connections |
+| Breadboard power module | 5V / 3.3V supply |
+| Adhesive base | Mounting |
+| Logic probe | Digital debugging |
+
+---
+
+## 12. Reference Links
+
+* [https://en.wikipedia.org/wiki/Breadboard](https://en.wikipedia.org/wiki/Breadboard)
+* [https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard](https://learn.sparkfun.com/tutorials/how-to-use-a-breadboard)
+* [https://www.allaboutcircuits.com/technical-articles/using-a-breadboard/](https://www.allaboutcircuits.com/technical-articles/using-a-breadboard/)
+
+---
+
+**Document Scope:** Solderless breadboard reference
+**Audience:** Hobbyist, student, engineer
+**Status:** Stable reference
diff --git a/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md b/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md
new file mode 100644
index 00000000..2314cd00
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/emulator-28256-eeprom.md
@@ -0,0 +1,245 @@
+# AT28C256 EEPROM Emulation Specification
+
+## Overview
+
+This document specifies how to **emulate the AT28C256 (32 KB Parallel EEPROM)** in a 6502-based system emulator. The goal is *behavioral accuracy* suitable for SBCs, monitors, and real ROM images, not just generic file-backed storage.
+
+The AT28C256 is commonly used as **ROM** in 6502 systems, but it is *electrically writable* and has timing behaviors that differ from SRAM.
+
+---
+
+## Chip Summary
+
+| Parameter | Value |
+| -------------- | ---------------------- |
+| Capacity | 32 KB (256 Kbit) |
+| Organization | 32,768 x 8 |
+| Address Lines | A0-A14 |
+| Data Lines | D0-D7 |
+| Supply Voltage | 5V |
+| Typical Use | ROM / Firmware storage |
+
+---
+
+## Pin Definitions
+
+| Pin | Name | Function |
+| ------ | ------------- | ---------------------- |
+| A0-A14 | Address | Byte address |
+| D0-D7 | Data | Data bus |
+| /CE | Chip Enable | Activates chip |
+| /OE | Output Enable | Enables output drivers |
+| /WE | Write Enable | Triggers write cycle |
+| VCC | +5V | Power |
+| GND | Ground | Reference |
+
+---
+
+## Read Cycle Behavior
+
+A read occurs when:
+
+```
+/CE = 0
+/OE = 0
+/WE = 1
+```
+
+### Read Rules
+
+* Address must be stable before `/OE` is asserted
+* Data appears on D0-D7 after access time (ignored in most emulators)
+* Output is **high-impedance** when `/OE = 1` or `/CE = 1`
+
+### Emulator Behavior
+
+```text
+if CE == 0 and OE == 0 and WE == 1:
+ data_bus = memory[address]
+else:
+ data_bus = Z
+```
+
+---
+
+## Write Cycle Behavior
+
+A write occurs when:
+
+```
+/CE = 0
+/WE = 0
+```
+
+(`/OE` is typically HIGH during writes)
+
+### Important EEPROM Characteristics
+
+* Writes are **not instantaneous**
+* Each write triggers an **internal programming cycle**
+* During programming, reads may return undefined data
+
+---
+
+## Write Timing Model (Simplified)
+
+### Real Hardware
+
+| Parameter | Typical |
+| --------------- | -------- |
+| Byte Write Time | ~200 µs |
+| Page Size | 64 bytes |
+| Page Write Time | ~10 ms |
+
+### Emulator Simplification Options
+
+#### Option A - Instant Writes (Common)
+
+* Write immediately updates memory
+* No busy state
+* Recommended for early emulators
+
+#### Option B - Cycle-Based Busy State (Advanced)
+
+* Track a "write in progress" timer
+* Reads during write return last value or `0xFF`
+* Writes ignored until cycle completes
+
+---
+
+## Page Write Emulation (Optional)
+
+* Page size: **64 bytes**
+* Writes within same page before timeout commit together
+* Crossing page boundary wraps within page (hardware quirk)
+
+Simplified rule:
+
+```text
+page_base = address & 0xFFC0
+page_offset = address & 0x003F
+```
+
+---
+
+## Write Protection Behavior
+
+Some systems treat EEPROM as **ROM-only** after programming.
+
+Emulator may support:
+
+* Read-only mode (writes ignored)
+* Programmable mode (writes allowed)
+* Runtime toggle (simulates programming jumper)
+
+---
+
+## Power-Up State
+
+* EEPROM retains contents
+* No undefined data on power-up
+
+Emulator should:
+
+* Load contents from image file
+* Preserve data across resets
+
+---
+
+## Bus Contention Rules
+
+| Condition | Behavior |
+| ------------------- | ----------------- |
+| /CE = 1 | Data bus = Z |
+| /OE = 1 | Data bus = Z |
+| /WE = 0 and /OE = 0 | Undefined (avoid) |
+
+Emulator may:
+
+* Prioritize write
+* Or flag invalid state
+
+---
+
+## Memory Mapping in 6502 Systems
+
+Common layout:
+
+```
+$0000-$7FFF RAM
+$8000-$FFFF AT28C256 EEPROM
+```
+
+### Reset Vector Usage
+
+| Vector | Address |
+| ------ | ----------- |
+| RESET | $FFFC-$FFFD |
+| NMI | $FFFA-$FFFB |
+| IRQ | $FFFE-$FFFF |
+
+---
+
+## Emulator API Model
+
+```c
+typedef struct {
+ uint8_t memory[32768];
+ bool write_enabled;
+ bool busy;
+ uint32_t busy_cycles;
+} AT28C256;
+```
+
+### Read
+
+```c
+uint8_t eeprom_read(addr);
+```
+
+### Write
+
+```c
+void eeprom_write(addr, value);
+```
+
+---
+
+## Recommended Emulator Defaults
+
+| Feature | Setting |
+| ------------- | ----------- |
+| Write Delay | Disabled |
+| Page Mode | Disabled |
+| Write Protect | Enabled |
+| Persistence | File-backed |
+
+---
+
+## Testing Checklist
+
+* Reset vector fetch
+* ROM reads under normal execution
+* Writes ignored in read-only mode
+* Correct address masking (15 bits)
+* No bus drive when disabled
+
+---
+
+## References
+
+* [AT28C256 Datasheet (Microchip)](https://ww1.microchip.com/downloads/aemDocuments/documents/MPD/ProductDocuments/DataSheets/AT28C256-Industrial-Grade-256-Kbit-Paged-Parallel-EEPROM-Data-Sheet-DS20006386.pdf)
+* [Ben Eater 6502 Computer Series](https://eater.net/6502)
+ *
+* [6502.org Memory Mapping Notes](https://6502.co.uk/lesson/memory-map)
+
+---
+
+## Notes
+
+This specification intentionally mirrors **real hardware quirks** while allowing emulator authors to choose between simplicity and accuracy. It is suitable for:
+
+* Educational emulators
+* SBC simulation
+* ROM development workflows
+* Integration with 6502 + 6522 + SRAM emulation
diff --git a/skills/legacy-circuit-mockups/references/emulator-6502.md b/skills/legacy-circuit-mockups/references/emulator-6502.md
new file mode 100644
index 00000000..e1075ff4
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/emulator-6502.md
@@ -0,0 +1,251 @@
+# 6502 CPU Emulation Specification
+
+A technical Markdown specification for **emulating the MOS Technology 6502 CPU family**, suitable for software emulators, educational tools, testing frameworks, and retrocomputing projects.
+
+---
+
+## 1. Scope
+
+This specification describes the functional requirements for emulating:
+
+* MOS 6502
+* WDC 65C02 (where noted)
+
+Out of scope:
+
+* Cycle-exact analog behavior
+* Physical bus contention
+* Undocumented silicon defects (unless explicitly implemented)
+
+---
+
+## 2. CPU Overview
+
+### Core Characteristics
+
+| Feature | Value |
+| ------------- | ------------- |
+| Data width | 8-bit |
+| Address width | 16-bit |
+| Address space | 64 KB |
+| Endianness | Little-endian |
+| Clock | Single-phase |
+
+---
+
+## 3. Registers
+
+| Register | Size | Description |
+| -------- | ------ | -------------------------- |
+| A | 8-bit | Accumulator |
+| X | 8-bit | Index register |
+| Y | 8-bit | Index register |
+| SP | 8-bit | Stack pointer (page $01xx) |
+| PC | 16-bit | Program counter |
+| P | 8-bit | Processor status flags |
+
+### Status Flags (P)
+
+| Bit | Name | Meaning |
+| --- | ---- | ----------------------------- |
+| 7 | N | Negative |
+| 6 | V | Overflow |
+| 5 | - | Unused (always 1 when pushed) |
+| 4 | B | Break |
+| 3 | D | Decimal |
+| 2 | I | IRQ disable |
+| 1 | Z | Zero |
+| 0 | C | Carry |
+
+---
+
+## 4. Memory Model
+
+### Addressing
+
+* 16-bit address bus (`$0000-$FFFF`)
+* Byte-addressable
+
+### Required Emulator Interfaces
+
+```text
+read(address) -> byte
+write(address, byte)
+```
+
+### Stack Behavior
+
+* Stack base: `$0100`
+* Push: `write($0100 + SP, value); SP--`
+* Pull: `SP++; value = read($0100 + SP)`
+
+---
+
+## 5. Reset and Interrupt Handling
+
+### Reset Sequence
+
+1. Set `I = 1`
+2. Set `SP = $FD`
+3. Clear `D`
+4. Load `PC` from `$FFFC-$FFFD`
+
+### Interrupt Vectors
+
+| Interrupt | Vector Address |
+| --------- | -------------- |
+| NMI | `$FFFA-$FFFB` |
+| RESET | `$FFFC-$FFFD` |
+| IRQ/BRK | `$FFFE-$FFFF` |
+
+---
+
+## 6. Instruction Fetch-Decode-Execute Cycle
+
+### Execution Loop (Conceptual)
+
+```text
+opcode = read(PC++)
+decode opcode
+fetch operands
+execute instruction
+update flags
+increment cycles
+```
+
+---
+
+## 7. Addressing Modes
+
+| Mode | Example | Notes |
+| ---------------- | ------------- | --------------------- |
+| Immediate | `LDA #$10` | Constant |
+| Zero Page | `LDA $20` | Wraps at $00FF |
+| Absolute | `LDA $2000` | Full address |
+| Indexed | `LDA $2000,X` | Optional page penalty |
+| Indirect | `JMP ($FFFC)` | Page wrap bug |
+| Indexed Indirect | `LDA ($20,X)` | ZP indexed |
+| Indirect Indexed | `LDA ($20),Y` | ZP pointer |
+
+---
+
+## 8. Instruction Set Requirements
+
+### Categories
+
+* Load/Store
+* Arithmetic (ADC, SBC)
+* Logic (AND, ORA, EOR)
+* Shifts & Rotates
+* Branches
+* Stack operations
+* System control
+
+### Decimal Mode (NMOS 6502)
+
+* Applies to `ADC` and `SBC`
+* Uses BCD arithmetic when `D = 1`
+
+---
+
+## 9. Flags Behavior Rules
+
+| Instruction Type | Flags Affected |
+| ---------------- | -------------- |
+| Loads | N, Z |
+| ADC/SBC | N, V, Z, C |
+| CMP/CPX/CPY | N, Z, C |
+| INC/DEC | N, Z |
+| Shifts | N, Z, C |
+
+---
+
+## 10. Cycle Counting
+
+### Cycle Accuracy Levels
+
+| Level | Description |
+| -------------------- | -------------------- |
+| Functional | Correct results only |
+| Instruction-accurate | Fixed cycle counts |
+| Cycle-accurate | Page-cross penalties |
+
+### Page Boundary Penalties
+
+* Branch taken: +1 cycle
+* Branch crosses page: +2 cycles
+* Indexed load crosses page: +1 cycle
+
+---
+
+## 11. Known Hardware Quirks (NMOS 6502)
+
+| Quirk | Description |
+| ---------------- | ------------------------------- |
+| JMP indirect bug | High byte wrap at page boundary |
+| BRK sets B flag | Only when pushed |
+| Unused flag bit | Always reads as 1 |
+
+---
+
+## 12. Illegal / Undocumented Opcodes (Optional)
+
+* Many opcodes perform composite operations
+* Behavior varies by silicon revision
+* Should be disabled or explicitly enabled
+
+---
+
+## 13. Timing and Clocking
+
+* One instruction executed per multiple clock cycles
+* Emulator may execute instructions per host tick
+* Cycle counter required for I/O timing
+
+---
+
+## 14. Integration with Peripherals
+
+### Memory-Mapped I/O
+
+```text
+if address in IO range:
+ delegate to device
+```
+
+Examples:
+
+* 6522 VIA
+* UART
+* Video hardware
+
+---
+
+## 15. Testing and Validation
+
+### Recommended Test ROMs
+
+* Klaus Dormann 6502 functional tests
+* Interrupt and decimal mode tests
+
+### Validation Checklist
+
+* All instructions execute correctly
+* Flags match reference behavior
+* Vectors handled properly
+* Stack operations correct
+
+---
+
+## 16. Reference Links
+
+* [https://www.masswerk.at/6502/6502_instruction_set.html](https://www.masswerk.at/6502/6502_instruction_set.html)
+* [https://www.nesdev.org/wiki/6502](https://www.nesdev.org/wiki/6502)
+* [https://github.com/Klaus2m5/6502_65C02_functional_tests](https://github.com/Klaus2m5/6502_65C02_functional_tests)
+* [https://en.wikipedia.org/wiki/MOS_Technology_6502](https://en.wikipedia.org/wiki/MOS_Technology_6502)
+
+---
+
+**Document Scope:** Software emulation of the 6502 CPU
+**Audience:** Emulator developers, retrocomputing engineers
+**Status:** Stable technical reference
diff --git a/skills/legacy-circuit-mockups/references/emulator-6522.md b/skills/legacy-circuit-mockups/references/emulator-6522.md
new file mode 100644
index 00000000..17fe8670
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/emulator-6522.md
@@ -0,0 +1,288 @@
+# 6522 VIA (Versatile Interface Adapter) Emulation Specification
+
+A technical Markdown specification for **emulating the MOS Technology / WDC 6522 VIA**, suitable for 6502-family emulators, SBC simulators, and retrocomputing software environments.
+
+---
+
+## 1. Scope
+
+This document defines the functional behavior required to emulate:
+
+* MOS Technology 6522 VIA
+* WDC 65C22 VIA (CMOS variant, where noted)
+
+Out of scope:
+
+* Analog electrical characteristics
+* Bus contention and propagation delay
+* Undocumented silicon race conditions
+
+---
+
+## 2. Chip Overview
+
+### Core Features
+
+| Feature | Description |
+| ---------------- | ------------------------------------ |
+| I/O Ports | Two 8-bit bidirectional ports (A, B) |
+| Timers | Two programmable timers |
+| Shift Register | 8-bit serial shift register |
+| Interrupt System | Maskable, prioritized |
+| Handshaking | CA1/CA2, CB1/CB2 control lines |
+
+---
+
+## 3. External Signals (Logical Model)
+
+| Signal | Direction | Purpose |
+| -------- | --------- | ------------------------ |
+| PA0-PA7 | I/O | Port A |
+| PB0-PB7 | I/O | Port B |
+| CA1, CA2 | I/O | Control lines A |
+| CB1, CB2 | I/O | Control lines B |
+| IRQ | Output | Interrupt request to CPU |
+| CS1, CS2 | Input | Chip select |
+| R/W | Input | Read / write |
+| RS0-RS3 | Input | Register select |
+
+---
+
+## 4. Register Map
+
+Registers are selected using RS3-RS0.
+
+| Address | Name | R/W | Description |
+| ------- | ----------- | --- | -------------------------------- |
+| 0 | ORB / IRB | R/W | Output/Input Register B |
+| 1 | ORA / IRA | R/W | Output/Input Register A |
+| 2 | DDRB | R/W | Data Direction Register B |
+| 3 | DDRA | R/W | Data Direction Register A |
+| 4 | T1C-L | R | Timer 1 Counter Low |
+| 5 | T1C-H | R | Timer 1 Counter High |
+| 6 | T1L-L | W | Timer 1 Latch Low |
+| 7 | T1L-H | W | Timer 1 Latch High |
+| 8 | T2C-L | R | Timer 2 Counter Low |
+| 9 | T2C-H | R | Timer 2 Counter High |
+| 10 | SR | R/W | Shift Register |
+| 11 | ACR | R/W | Auxiliary Control Register |
+| 12 | PCR | R/W | Peripheral Control Register |
+| 13 | IFR | R/W | Interrupt Flag Register |
+| 14 | IER | R/W | Interrupt Enable Register |
+| 15 | ORA (no HS) | R/W | Output Register A (no handshake) |
+
+---
+
+## 5. Data Direction Registers
+
+* Bit = 1 Output
+* Bit = 0 Input
+
+```text
+output = ORx & DDRx
+input = external & ~DDRx
+```
+
+---
+
+## 6. Port Behavior
+
+### Read
+
+* Returns input pins for bits configured as input
+* Returns output latch for bits configured as output
+
+### Write
+
+* Updates output latch only
+* Actual pin value depends on DDR
+
+---
+
+## 7. Timers
+
+### Timer 1 (T1)
+
+* 16-bit down counter
+* Can generate interrupts
+* Optional PB7 toggle
+
+### Timer 2 (T2)
+
+* 16-bit down counter
+* One-shot or pulse counting (CB1)
+
+### Timer Emulation Rules
+
+* Decrement once per CPU cycle
+* Reload from latch when appropriate
+* Set interrupt flag on underflow
+
+---
+
+## 8. Shift Register (SR)
+
+Modes controlled via ACR:
+
+* Disabled
+* Shift in under CB1 clock
+* Shift out under system clock
+
+Emulator requirements:
+
+* 8-bit shift
+* Correct bit order
+* Optional external clock handling
+
+---
+
+## 9. Control Registers
+
+### Auxiliary Control Register (ACR)
+
+Controls:
+
+* Timer 1 mode
+* Timer 2 mode
+* Shift register mode
+* PB7 behavior
+
+### Peripheral Control Register (PCR)
+
+Controls:
+
+* CA1/CB1 edge sensitivity
+* CA2/CB2 handshake / pulse / output modes
+
+---
+
+## 10. Interrupt System
+
+### Interrupt Flag Register (IFR)
+
+| Bit | Source |
+| --- | -------------------------- |
+| 0 | CA2 |
+| 1 | CA1 |
+| 2 | Shift Register |
+| 3 | CB2 |
+| 4 | CB1 |
+| 5 | Timer 2 |
+| 6 | Timer 1 |
+| 7 | Any interrupt (logical OR) |
+
+### Interrupt Enable Register (IER)
+
+* Bit 7 = set/clear mode
+* Bits 0-6 enable individual sources
+
+### IRQ Logic
+
+```text
+IRQ = (IFR & IER & 0x7F) != 0
+```
+
+---
+
+## 11. Handshaking Lines
+
+### CA1 / CB1
+
+* Edge-detect inputs
+* Trigger interrupts
+
+### CA2 / CB2
+
+* Input or output
+* Pulse or handshake modes
+
+Emulator must:
+
+* Track pin state
+* Detect configured edges
+
+---
+
+## 12. Reset Behavior
+
+On reset:
+
+* DDRx = $00
+* ORx = $00
+* Timers stopped
+* IFR cleared
+* IER cleared
+* IRQ inactive
+
+---
+
+## 13. Read/Write Side Effects
+
+| Register | Side Effect |
+| ----------- | ------------------------ |
+| ORA/ORB | Clears handshake flags |
+| T1C-H write | Loads and starts Timer 1 |
+| IFR write | Clears written bits |
+| IER write | Sets or clears enables |
+
+---
+
+## 14. Emulation Timing Levels
+
+| Level | Description |
+| -------------- | ------------------------- |
+| Functional | Correct register behavior |
+| Cycle-based | Timers tick per CPU cycle |
+| Cycle-accurate | Matches real VIA timing |
+
+---
+
+## 15. Integration with 6502 Emulator
+
+```text
+CPU cycle VIA tick update timers update IRQ
+```
+
+* VIA must be clocked in sync with CPU
+* IRQ line sampled by CPU at instruction boundaries
+
+---
+
+## 16. Testing and Validation
+
+### Recommended Tests
+
+* VIA timer test ROMs
+* Port read/write tests
+* Interrupt priority tests
+
+### Validation Checklist
+
+* Timers count correctly
+* IRQ asserts and clears properly
+* DDR behavior correct
+* Side effects implemented
+
+---
+
+## 17. Differences: 6522 vs 65C22 (Summary)
+
+| Feature | 6522 | 65C22 |
+| -------------- | ------ | -------- |
+| Power | Higher | Lower |
+| Decimal quirks | N/A | Fixed |
+| Timer accuracy | NMOS | Improved |
+
+---
+
+## 18. Reference Links
+
+* [https://www.westerndesigncenter.com/wdc/documentation](https://www.westerndesigncenter.com/wdc/documentation)
+* [https://www.princeton.edu/~mae412/HANDOUTS/Datasheets/6522.pdf](https://www.princeton.edu/~mae412/HANDOUTS/Datasheets/6522.pdf)
+* [https://www.nesdev.org/wiki/6522](https://www.nesdev.org/wiki/6522)
+
+---
+
+**Document Scope:** Software emulation of the 6522 VIA
+**Audience:** Emulator developers, SBC designers
+**Status:** Stable technical reference
diff --git a/skills/legacy-circuit-mockups/references/emulator-6C62256.md b/skills/legacy-circuit-mockups/references/emulator-6C62256.md
new file mode 100644
index 00000000..b8ceacf2
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/emulator-6C62256.md
@@ -0,0 +1,233 @@
+# AS6C62256 (32K x 8 SRAM) Emulation Specification
+
+A technical Markdown specification for **emulating the AS6C62256 / 62256-family static RAM**, suitable for 6502-family emulators, SBC simulators, and memory subsystem modeling.
+
+---
+
+## 1. Scope
+
+This document specifies functional behavior for emulating:
+
+* Alliance Memory **AS6C62256**
+* Compatible **62256 (32K x 8) SRAM** devices
+
+Out of scope:
+
+* Analog electrical timing margins
+* Bus contention and signal rise/fall times
+* Power consumption characteristics
+
+---
+
+## 2. Chip Overview
+
+### Core Characteristics
+
+| Feature | Value |
+| -------------- | -------------------- |
+| Memory Type | Static RAM (SRAM) |
+| Capacity | 32,768 bytes (32 KB) |
+| Data Width | 8-bit |
+| Address Width | 15-bit (A0-A14) |
+| Access Type | Asynchronous |
+| Supply Voltage | 5 V (typical) |
+
+---
+
+## 3. External Signals (Logical Model)
+
+| Signal | Direction | Purpose |
+| ------ | --------- | -------------------------- |
+| A0-A14 | Input | Address bus |
+| D0-D7 | I/O | Data bus |
+| CE# | Input | Chip enable (active low) |
+| OE# | Input | Output enable (active low) |
+| WE# | Input | Write enable (active low) |
+
+> `#` indicates active-low signals.
+
+---
+
+## 4. Address Space Mapping
+
+* Address range: `0x0000-0x7FFF`
+* Address lines select one byte per address
+
+### Typical 6502 System Mapping Example
+
+| CPU Address Range | Device |
+| ----------------- | -------------- |
+| `$0000-$7FFF` | AS6C62256 SRAM |
+| `$8000-$FFFF` | ROM / EEPROM |
+
+---
+
+## 5. Read and Write Behavior
+
+### Read Cycle (Logical)
+
+Conditions:
+
+* `CE# = 0`
+* `OE# = 0`
+* `WE# = 1`
+
+Behavior:
+
+```text
+D[7:0] memory[A]
+```
+
+If `OE# = 1` or `CE# = 1`, data bus is **high-impedance**.
+
+---
+
+### Write Cycle (Logical)
+
+Conditions:
+
+* `CE# = 0`
+* `WE# = 0`
+
+Behavior:
+
+```text
+memory[A] D[7:0]
+```
+
+* `OE#` is ignored during writes
+* Write occurs on active WE#
+
+---
+
+## 6. Control Signal Priority
+
+| CE# | WE# | OE# | Result |
+| --- | --- | --- | --------------- |
+| 1 | X | X | Disabled (Hi-Z) |
+| 0 | 0 | X | Write |
+| 0 | 1 | 0 | Read |
+| 0 | 1 | 1 | Hi-Z |
+
+---
+
+## 7. Emulator Interface Requirements
+
+An emulator must expose:
+
+```text
+read(address) -> byte
+write(address, byte)
+```
+
+Internal storage:
+
+```text
+uint8_t ram[32768]
+```
+
+Address masking:
+
+```text
+address = address & 0x7FFF
+```
+
+---
+
+## 8. Timing Model (Abstracted)
+
+### Emulation Levels
+
+| Level | Description |
+| -------------- | ------------------------- |
+| Functional | Instantaneous access |
+| Cycle-based | Access per CPU cycle |
+| Cycle-accurate | Honors enable transitions |
+
+For most systems, **functional emulation** is sufficient.
+
+---
+
+## 9. Power and Data Retention
+
+* SRAM contents persist as long as power is applied
+* Emulator shall retain contents until explicitly reset
+
+### Reset Behavior
+
+* **No automatic clearing** on reset
+* Memory contents undefined unless initialized
+
+---
+
+## 10. Bus Contention and Hi-Z Modeling (Optional)
+
+Optional advanced behavior:
+
+* Track when SRAM drives the data bus
+* Detect illegal simultaneous writes
+
+Most emulators may ignore Hi-Z state.
+
+---
+
+## 11. Error Conditions
+
+| Condition | Emulator Response |
+| -------------------- | ----------------------------- |
+| Out-of-range address | Mask or ignore |
+| Read when disabled | Return last bus value or 0xFF |
+| Write when disabled | Ignore write |
+
+---
+
+## 12. Integration with 6502 Emulator
+
+```text
+CPU memory access
+ address decode
+ if in SRAM range:
+ AS6C62256.read/write
+```
+
+* SRAM access is typically single-cycle
+* No wait states required
+
+---
+
+## 13. Testing and Validation
+
+### Basic Tests
+
+* Write/read patterns
+* Boundary addresses ($0000, $7FFF)
+* Randomized memory tests
+
+### Validation Checklist
+
+* Writes persist
+* Reads return correct values
+* Address wrapping correct
+
+---
+
+## 14. Common Mistakes
+
+| Mistake | Result |
+| --------------------- | --------------------------- |
+| Clearing RAM on reset | Breaks software assumptions |
+| Wrong address mask | Mirrored memory errors |
+| Treating as ROM | Writes ignored |
+
+---
+
+## 15. Reference Links
+
+* [Alliance Memory AS6C62256 Datasheet](https://www.alliancememory.com/wp-content/uploads/AS6C62256-23-March-2016-rev1.2.pdf)
+* [https://en.wikipedia.org/wiki/Static_random-access_memory](https://en.wikipedia.org/wiki/Static_random-access_memory)
+
+---
+
+**Document Scope:** Software emulation of AS6C62256 SRAM
+**Audience:** Emulator developers, retro SBC designers
+**Status:** Stable technical reference
diff --git a/skills/legacy-circuit-mockups/references/emulator-lcd.md b/skills/legacy-circuit-mockups/references/emulator-lcd.md
new file mode 100644
index 00000000..75b6000f
--- /dev/null
+++ b/skills/legacy-circuit-mockups/references/emulator-lcd.md
@@ -0,0 +1,266 @@
+# DFRobot FIT0127 LCD Character Display Emulation Specification
+
+## Overview
+
+This document specifies how to **emulate the DFRobot FIT0127 LCD Character Display module**. FIT0127 is a **16x2 character LCD** compatible with the **HD44780 controller**, commonly used in 6502 and microcontroller breadboard systems.
+
+The goal is **functional correctness** for SBC emulators, firmware testing, and UI visualization rather than electrical signal simulation.
+
+---
+
+## Module Summary
+
+| Feature | Value |
+| ---------------- | ----------------------- |
+| Display Type | Character LCD |
+| Resolution | 16 columns x 2 rows |
+| Controller | HD44780-compatible |
+| Interface | 8-bit or 4-bit parallel |
+| Character Matrix | 5x8 dots |
+| Supply Voltage | 5V |
+
+---
+
+## Pin Definitions
+
+| Pin | Name | Function |
+| ---- | ----- | ---------------- |
+| 1 | GND | Ground |
+| 2 | VCC | +5V |
+| 3 | VO | Contrast control |
+| 4 | RS | Register Select |
+| 5 | R/W | Read / Write |
+| 6 | E | Enable |
+| 7-14 | D0-D7 | Data bus |
+| 15 | A | Backlight + |
+| 16 | K | Backlight - |
+
+---
+
+## Logical Registers
+
+| RS | Register |
+| -- | -------------------- |
+| 0 | Instruction Register |
+| 1 | Data Register |
+
+---
+
+## Instruction Set (Subset)
+
+| Command | Code | Description |
+| --------------- | ----------- | ------------------------- |
+| Clear Display | `0x01` | Clears DDRAM, cursor home |
+| Return Home | `0x02` | Cursor to home position |
+| Entry Mode Set | `0x04-0x07` | Cursor direction |
+| Display Control | `0x08-0x0F` | Display, cursor, blink |
+| Cursor/Shift | `0x10-0x1F` | Shift cursor/display |
+| Function Set | `0x20-0x3F` | Data length, lines |
+| Set CGRAM Addr | `0x40-0x7F` | Custom chars |
+| Set DDRAM Addr | `0x80-0xFF` | Cursor position |
+
+---
+
+## Internal Memory Model
+
+### DDRAM (Display Data RAM)
+
+* Size: 80 bytes
+* Line 1 base: `0x00`
+* Line 2 base: `0x40`
+
+Emulator mapping:
+
+```text
+Row 0: DDRAM[0x00-0x0F]
+Row 1: DDRAM[0x40-0x4F]
+```
+
+### CGRAM (Character Generator RAM)
+
+* Stores up to 8 custom characters
+* 8 bytes per character
+
+---
+
+## Data Write Cycle
+
+A write occurs when:
+
+```
+RS = 1
+R/W = 0
+E: HIGH LOW
+```
+
+### Emulator Behavior
+
+* On falling edge of `E`, latch data
+* Write data to DDRAM or CGRAM depending on address mode
+* Auto-increment or decrement address based on entry mode
+
+---
+
+## Instruction Write Cycle
+
+A command write occurs when:
+
+```
+RS = 0
+R/W = 0
+E: HIGH LOW
+```
+
+---
+
+## Read Cycle (Optional)
+
+Reads are uncommon in hobby systems.
+
+```
+RS = 0/1
+R/W = 1
+E: HIGH
+```
+
+Emulator may simplify:
+
+* Ignore reads entirely
+* Or return busy flag + address counter
+
+---
+
+## Busy Flag Emulation
+
+### Real Hardware
+
+* Busy flag = D7
+* Commands take 37-1520 µs
+
+### Emulator Options
+
+| Mode | Behavior |
+| ---------- | ----------------- |
+| Simplified | Always ready |
+| Timed | Busy for N cycles |
+
+Recommended default: **Always ready**
+
+---
+
+## Power-Up State
+
+On reset:
+
+* Display OFF
+* Cursor OFF
+* DDRAM cleared or undefined
+* Address counter = 0
+
+Emulator should:
+
+* Clear DDRAM
+* Set cursor to (0,0)
+* Display enabled
+
+---
+
+## Cursor and Display Model
+
+State variables:
+
+```text
+cursor_row
+cursor_col
+display_on
+cursor_on
+blink_on
+```
+
+Cursor moves automatically after writes based on entry mode.
+
+---
+
+## 4-bit vs 8-bit Interface
+
+### 8-bit Mode
+
+* Full byte transferred on D0-D7
+
+### 4-bit Mode
+
+* High nibble sent first
+* Two enable pulses per byte
+
+Emulator simplification:
+
+* Accept full byte writes
+* Ignore nibble timing
+
+---
+
+## Rendering Model (Emulator UI)
+
+Recommended approach:
+
+* Maintain 16x2 character buffer
+* Render ASCII subset
+* Substitute unsupported glyphs
+* Optionally render custom CGRAM chars
+
+---
+
+## Emulator API Model
+
+```c
+typedef struct {
+ uint8_t ddram[80];
+ uint8_t cgram[64];
+ uint8_t addr;
+ bool display_on;
+ bool cursor_on;
+ bool blink_on;
+ uint8_t entry_mode;
+} FIT0127_LCD;
+```
+
+---
+
+## Common Wiring in 6502 Systems
+
+```
+VIA Port LCD D4-D7 (4-bit mode)
+RS VIA bit
+E VIA bit
+R/W GND
+```
+
+---
+
+## Testing Checklist
+
+* Clear display command
+* Cursor positioning via DDRAM addresses
+* Sequential character writes
+* Line wrap behavior
+* Custom character display
+
+---
+
+## References
+
+* [HD44780U Datasheet (Hitachi)](https://academy.cba.mit.edu/classes/output_devices/44780.pdf)
+* [Ben Eater LCD Interface Notes](https://hackaday.io/project/174128-db6502/log/181838-adventures-with-hd44780-lcd-controller)
+* [Ben Eater's 6502 Computer](https://github.com/tedkotz/be6502)
+* [Build a 6502 Computer](https://eater.net/6502)
+
+---
+
+## Notes
+
+This spec intentionally prioritizes **firmware-visible behavior** over electrical accuracy, making it ideal for:
+
+* SBC emulators
+* ROM and monitor development
+* Automated testing of LCD output
+* Educational CPU projects
From cb0a0d15749d0b909526d034a514594b66e1c2f4 Mon Sep 17 00:00:00 2001
From: jhauga
Date: Mon, 19 Jan 2026 20:46:33 -0500
Subject: [PATCH 09/24] restore partners.md and README.agents.md
---
collections/partners.md | 10 +++++-----
docs/README.agents.md | 14 +++++++++-----
2 files changed, 14 insertions(+), 10 deletions(-)
diff --git a/collections/partners.md b/collections/partners.md
index 2f7060e8..0c45aa1a 100644
--- a/collections/partners.md
+++ b/collections/partners.md
@@ -8,13 +8,13 @@ Custom agents that have been created by GitHub partners
| Title | Type | Description | MCP Servers |
| ----- | ---- | ----------- | ----------- |
-| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | Agent | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
-| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Agent | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | apify
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
+| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | Agent | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
+| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Agent | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | [apify](https://github.com/mcp/com.apify/apify-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
| [Arm Migration Agent](../agents/arm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md) | Agent | Arm Cloud Migration Assistant accelerates moving x86 workloads to Arm infrastructure. It scans the repository for architecture assumptions, portability issues, container base image and dependency incompatibilities, and recommends Arm-optimized changes. It can drive multi-arch container builds, validate performance, and guide optimization, enabling smooth cross-platform deployment directly inside GitHub. | custom-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Agent | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [DiffblueCover](../agents/diffblue-cover.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md) | Agent | Expert agent for creating unit tests for java applications using Diffblue Cover. | DiffblueCover
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Droid](../agents/droid.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md) | Agent | Provides installation guidance, usage examples, and automation patterns for the Droid CLI, with emphasis on droid exec for CI/CD and non-interactive automation | |
-| [Dynatrace Expert](../agents/dynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md) | Agent | The Dynatrace Expert Agent integrates observability and security capabilities directly into GitHub workflows, enabling development teams to investigate incidents, validate deployments, triage errors, detect performance regressions, validate releases, and manage security vulnerabilities by autonomously analysing traces, logs, and Dynatrace findings. This enables targeted and precise remediation of identified issues directly within the repository. | dynatrace
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D) |
+| [Dynatrace Expert](../agents/dynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md) | Agent | The Dynatrace Expert Agent integrates observability and security capabilities directly into GitHub workflows, enabling development teams to investigate incidents, validate deployments, triage errors, detect performance regressions, validate releases, and manage security vulnerabilities by autonomously analysing traces, logs, and Dynatrace findings. This enables targeted and precise remediation of identified issues directly within the repository. | [dynatrace](https://github.com/mcp/io.github.dynatrace-oss/Dynatrace-mcp)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D) |
| [Elasticsearch Agent](../agents/elasticsearch-observability.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felasticsearch-observability.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felasticsearch-observability.agent.md) | Agent | Our expert AI assistant for debugging code (O11y), optimizing vector search (RAG), and remediating security threats using live Elastic data. | elastic-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=elastic-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=elastic-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [JFrog Security Agent](../agents/jfrog-sec.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fjfrog-sec.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fjfrog-sec.agent.md) | Agent | The dedicated Application Security agent for automated security remediation. Verifies package and version compliance, and suggests vulnerability fixes using JFrog security intelligence. | |
| [Launchdarkly Flag Cleanup](../agents/launchdarkly-flag-cleanup.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Flaunchdarkly-flag-cleanup.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Flaunchdarkly-flag-cleanup.agent.md) | Agent | A specialized GitHub Copilot agent that uses the LaunchDarkly MCP server to safely automate feature flag cleanup workflows. This agent determines removal readiness, identifies the correct forward value, and creates PRs that preserve production behavior while removing obsolete flags and updating stale defaults. | [launchdarkly](https://github.com/mcp/launchdarkly/mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=launchdarkly&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22--package%22%2C%22%2540launchdarkly%252Fmcp-server%22%2C%22--%22%2C%22mcp%22%2C%22start%22%2C%22--api-key%22%2C%22%2524LD_ACCESS_TOKEN%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=launchdarkly&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22--package%22%2C%22%2540launchdarkly%252Fmcp-server%22%2C%22--%22%2C%22mcp%22%2C%22start%22%2C%22--api-key%22%2C%22%2524LD_ACCESS_TOKEN%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22--package%22%2C%22%2540launchdarkly%252Fmcp-server%22%2C%22--%22%2C%22mcp%22%2C%22start%22%2C%22--api-key%22%2C%22%2524LD_ACCESS_TOKEN%22%5D%2C%22env%22%3A%7B%7D%7D) |
@@ -27,7 +27,7 @@ Custom agents that have been created by GitHub partners
| [Octopus Release Notes With Mcp](../agents/octopus-deploy-release-notes-mcp.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Foctopus-deploy-release-notes-mcp.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Foctopus-deploy-release-notes-mcp.agent.md) | Agent | Generate release notes for a release in Octopus Deploy. The tools for this MCP server provide access to the Octopus Deploy APIs. | octopus
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=octopus&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=octopus&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22%2540octopusdeploy%252Fmcp-server%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [PagerDuty Incident Responder](../agents/pagerduty-incident-responder.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpagerduty-incident-responder.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fpagerduty-incident-responder.agent.md) | Agent | Responds to PagerDuty incidents by analyzing incident context, identifying recent code changes, and suggesting fixes via GitHub PRs. | [pagerduty](https://github.com/mcp/io.github.PagerDuty/pagerduty-mcp)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=pagerduty&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=pagerduty&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.pagerduty.com%2Fmcp%22%2C%22headers%22%3A%7B%7D%7D) |
| [Stackhawk Security Onboarding](../agents/stackhawk-security-onboarding.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fstackhawk-security-onboarding.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fstackhawk-security-onboarding.agent.md) | Agent | Automatically set up StackHawk security testing for your repository with generated configuration and GitHub Actions workflow | stackhawk-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=stackhawk-mcp&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22stackhawk-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=stackhawk-mcp&config=%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22stackhawk-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22uvx%22%2C%22args%22%3A%5B%22stackhawk-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
-| [Terraform Agent](../agents/terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Agent | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | terraform
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
+| [Terraform Agent](../agents/terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Agent | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | [terraform](https://github.com/mcp/io.github.hashicorp/terraform-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
---
-*This collection includes 20 curated items for **Partners**.*
\ No newline at end of file
+*This collection includes 20 curated items for **Partners**.*
diff --git a/docs/README.agents.md b/docs/README.agents.md
index dc748455..47ca4626 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -1,18 +1,22 @@
# 🤖 Custom Agents
Custom agents for GitHub Copilot, making it easy for users and organizations to "specialize" their Copilot coding agent (CCA) through simple file-based configuration.
+
### How to Use Custom Agents
**To Install:**
+
- Click the **VS Code** or **VS Code Insiders** install button for the agent you want to use
- Download the `*.agent.md` file and add it to your repository
**MCP Server Setup:**
+
- Each agent may require one or more MCP servers to function
- Click the MCP server to view it on the GitHub MCP registry
- Follow the guide on how to add the MCP server to your repository
**To Activate/Use:**
+
- Access installed agents through the VS Code Chat interface, assign them in CCA, or through Copilot CLI (coming soon)
- Agents will have access to tools from configured MCP servers
- Follow agent-specific instructions for optimal usage
@@ -24,9 +28,9 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [Accessibility Expert](../agents/accessibility.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faccessibility.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faccessibility.agent.md) | Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing | |
| [ADR Generator](../agents/adr-generator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fadr-generator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fadr-generator.agent.md) | Expert agent for creating comprehensive Architectural Decision Records (ADRs) with structured formatting optimized for AI consumption and human readability. | |
| [AEM Front-End Specialist](../agents/aem-frontend-specialist.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faem-frontend-specialist.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faem-frontend-specialist.agent.md) | Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration | |
-| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
+| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
| [API Architect mode instructions](../agents/api-architect.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapi-architect.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapi-architect.agent.md) | Your role is that of an API architect. Help mentor the engineer by providing guidance, support, and working code. | |
-| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | apify
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
+| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | [apify](https://github.com/mcp/com.apify/apify-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
| [Arm Migration Agent](../agents/arm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md) | Arm Cloud Migration Assistant accelerates moving x86 workloads to Arm infrastructure. It scans the repository for architecture assumptions, portability issues, container base image and dependency incompatibilities, and recommends Arm-optimized changes. It can drive multi-arch container builds, validate performance, and guide optimization, enabling smooth cross-platform deployment directly inside GitHub. | custom-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Azure AVM Bicep mode](../agents/azure-verified-modules-bicep.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-bicep.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-bicep.agent.md) | Create, update, or review Azure IaC in Bicep using Azure Verified Modules (AVM). | |
| [Azure AVM Terraform mode](../agents/azure-verified-modules-terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fazure-verified-modules-terraform.agent.md) | Create, update, or review Azure IaC in Terraform using Azure Verified Modules (AVM). | |
@@ -46,7 +50,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [C#/.NET Janitor](../agents/csharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md) | Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation. | |
| [Clojure Interactive Programming](../agents/clojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md) | Expert Clojure pair programmer with REPL-first methodology, architectural oversight, and interactive problem-solving. Enforces quality standards, prevents workarounds, and develops solutions incrementally through live REPL evaluation before file modifications. | |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
-| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | context7
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
+| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | [context7](https://github.com/mcp/io.github.upstash/context7)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
| [Create PRD Chat Mode](../agents/prd.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fprd.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fprd.agent.md) | Generate a comprehensive Product Requirements Document (PRD) in Markdown, detailing user stories, acceptance criteria, technical considerations, and metrics. Optionally create GitHub issues upon user confirmation. | |
| [Critical thinking mode instructions](../agents/critical-thinking.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcritical-thinking.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcritical-thinking.agent.md) | Challenge assumptions and encourage critical thinking to ensure the best possible solution and outcomes. | |
| [Custom Agent Foundry](../agents/custom-agent-foundry.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcustom-agent-foundry.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcustom-agent-foundry.agent.md) | Expert at designing and creating VS Code custom agents with optimal configurations | |
@@ -58,7 +62,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [DiffblueCover](../agents/diffblue-cover.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdiffblue-cover.agent.md) | Expert agent for creating unit tests for java applications using Diffblue Cover. | DiffblueCover
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=DiffblueCover&config=%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22uv%22%2C%22args%22%3A%5B%22run%22%2C%22--with%22%2C%22fastmcp%22%2C%22fastmcp%22%2C%22run%22%2C%22%252Fplaceholder%252Fpath%252Fto%252Fcover-mcp%252Fmain.py%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Droid](../agents/droid.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdroid.agent.md) | Provides installation guidance, usage examples, and automation patterns for the Droid CLI, with emphasis on droid exec for CI/CD and non-interactive automation | |
| [Drupal Expert](../agents/drupal-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdrupal-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdrupal-expert.agent.md) | Expert assistant for Drupal development, architecture, and best practices using PHP 8.3+ and modern Drupal patterns | |
-| [Dynatrace Expert](../agents/dynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md) | The Dynatrace Expert Agent integrates observability and security capabilities directly into GitHub workflows, enabling development teams to investigate incidents, validate deployments, triage errors, detect performance regressions, validate releases, and manage security vulnerabilities by autonomously analysing traces, logs, and Dynatrace findings. This enables targeted and precise remediation of identified issues directly within the repository. | dynatrace
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D) |
+| [Dynatrace Expert](../agents/dynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fdynatrace-expert.agent.md) | The Dynatrace Expert Agent integrates observability and security capabilities directly into GitHub workflows, enabling development teams to investigate incidents, validate deployments, triage errors, detect performance regressions, validate releases, and manage security vulnerabilities by autonomously analysing traces, logs, and Dynatrace findings. This enables targeted and precise remediation of identified issues directly within the repository. | [dynatrace](https://github.com/mcp/io.github.dynatrace-oss/Dynatrace-mcp)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=dynatrace&config=%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fpia1134d.dev.apps.dynatracelabs.com%2Fplatform-reserved%2Fmcp-gateway%2Fv0.1%2Fservers%2Fdynatrace-mcp%2Fmcp%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24COPILOT_MCP_DT_API_TOKEN%22%7D%7D) |
| [Elasticsearch Agent](../agents/elasticsearch-observability.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felasticsearch-observability.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felasticsearch-observability.agent.md) | Our expert AI assistant for debugging code (O11y), optimizing vector search (RAG), and remediating security threats using live Elastic data. | elastic-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=elastic-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=elastic-mcp&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22mcp-remote%22%2C%22https%253A%252F%252F%257BKIBANA_URL%257D%252Fapi%252Fagent_builder%252Fmcp%22%2C%22--header%22%2C%22Authorization%253A%2524%257BAUTH_HEADER%257D%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Electron Code Review Mode Instructions](../agents/electron-angular-native.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Felectron-angular-native.agent.md) | Code Review Mode tailored for Electron app with Node.js backend (main), Angular frontend (render), and native integration layer (e.g., AppleScript, shell, or native tooling). Services in other repos are not reviewed here. | |
| [Expert .NET software engineer mode instructions](../agents/expert-dotnet-software-engineer.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-dotnet-software-engineer.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fexpert-dotnet-software-engineer.agent.md) | Provide expert .NET software engineering guidance using modern software design patterns. | |
@@ -144,7 +148,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [Technical Content Evaluator](../agents/technical-content-evaluator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftechnical-content-evaluator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftechnical-content-evaluator.agent.md) | Elite technical content editor and curriculum architect for evaluating technical training materials, documentation, and educational content. Reviews for technical accuracy, pedagogical excellence, content flow, code validation, and ensures A-grade quality standards. | |
| [Technical Debt Remediation Plan](../agents/tech-debt-remediation-plan.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftech-debt-remediation-plan.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftech-debt-remediation-plan.agent.md) | Generate technical debt remediation plans for code, tests, and documentation. | |
| [Technical spike research mode](../agents/research-technical-spike.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fresearch-technical-spike.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fresearch-technical-spike.agent.md) | Systematically research and validate technical spike documents through exhaustive investigation and controlled experimentation. | |
-| [Terraform Agent](../agents/terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | terraform
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
+| [Terraform Agent](../agents/terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | [terraform](https://github.com/mcp/io.github.hashicorp/terraform-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Terraform IaC Reviewer](../agents/terraform-iac-reviewer.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform-iac-reviewer.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform-iac-reviewer.agent.md) | Terraform-focused agent that reviews and creates safer IaC changes with emphasis on state safety, least privilege, module patterns, drift detection, and plan/apply discipline | |
| [Thinking Beast Mode](../agents/Thinking-Beast-Mode.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FThinking-Beast-Mode.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FThinking-Beast-Mode.agent.md) | A transcendent coding agent with quantum cognitive architecture, adversarial intelligence, and unrestricted creative freedom. | |
| [TypeScript MCP Server Expert](../agents/typescript-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftypescript-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Ftypescript-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in TypeScript | |
From 0f57ceeb24f50cd5883b74e55d0804029227d53f Mon Sep 17 00:00:00 2001
From: jhauga
Date: Mon, 19 Jan 2026 20:48:14 -0500
Subject: [PATCH 10/24] resolve conflicts
---
collections/partners.md | 4 ++--
docs/README.agents.md | 6 +-----
2 files changed, 3 insertions(+), 7 deletions(-)
diff --git a/collections/partners.md b/collections/partners.md
index 0c45aa1a..729848d7 100644
--- a/collections/partners.md
+++ b/collections/partners.md
@@ -8,7 +8,7 @@ Custom agents that have been created by GitHub partners
| Title | Type | Description | MCP Servers |
| ----- | ---- | ----------- | ----------- |
-| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | Agent | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
+| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | Agent | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Agent | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | [apify](https://github.com/mcp/com.apify/apify-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
| [Arm Migration Agent](../agents/arm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md) | Agent | Arm Cloud Migration Assistant accelerates moving x86 workloads to Arm infrastructure. It scans the repository for architecture assumptions, portability issues, container base image and dependency incompatibilities, and recommends Arm-optimized changes. It can drive multi-arch container builds, validate performance, and guide optimization, enabling smooth cross-platform deployment directly inside GitHub. | custom-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Agent | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
@@ -30,4 +30,4 @@ Custom agents that have been created by GitHub partners
| [Terraform Agent](../agents/terraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fterraform.agent.md) | Agent | Terraform infrastructure specialist with automated HCP Terraform workflows. Leverages Terraform MCP server for registry integration, workspace management, and run orchestration. Generates compliant code using latest provider/module versions, manages private registries, automates variable sets, and orchestrates infrastructure deployments with proper validation and security practices. | [terraform](https://github.com/mcp/io.github.hashicorp/terraform-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=terraform&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22-i%22%2C%22--rm%22%2C%22-e%22%2C%22TFE_TOKEN%253D%2524%257BCOPILOT_MCP_TFE_TOKEN%257D%22%2C%22-e%22%2C%22TFE_ADDRESS%253D%2524%257BCOPILOT_MCP_TFE_ADDRESS%257D%22%2C%22-e%22%2C%22ENABLE_TF_OPERATIONS%253D%2524%257BCOPILOT_MCP_ENABLE_TF_OPERATIONS%257D%22%2C%22hashicorp%252Fterraform-mcp-server%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
---
-*This collection includes 20 curated items for **Partners**.*
+*This collection includes 20 curated items for **Partners**.*
\ No newline at end of file
diff --git a/docs/README.agents.md b/docs/README.agents.md
index 47ca4626..c843dc4b 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -1,22 +1,18 @@
# 🤖 Custom Agents
Custom agents for GitHub Copilot, making it easy for users and organizations to "specialize" their Copilot coding agent (CCA) through simple file-based configuration.
-
### How to Use Custom Agents
**To Install:**
-
- Click the **VS Code** or **VS Code Insiders** install button for the agent you want to use
- Download the `*.agent.md` file and add it to your repository
**MCP Server Setup:**
-
- Each agent may require one or more MCP servers to function
- Click the MCP server to view it on the GitHub MCP registry
- Follow the guide on how to add the MCP server to your repository
**To Activate/Use:**
-
- Access installed agents through the VS Code Chat interface, assign them in CCA, or through Copilot CLI (coming soon)
- Agents will have access to tools from configured MCP servers
- Follow agent-specific instructions for optimal usage
@@ -28,7 +24,7 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [Accessibility Expert](../agents/accessibility.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faccessibility.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faccessibility.agent.md) | Expert assistant for web accessibility (WCAG 2.1/2.2), inclusive UX, and a11y testing | |
| [ADR Generator](../agents/adr-generator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fadr-generator.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fadr-generator.agent.md) | Expert agent for creating comprehensive Architectural Decision Records (ADRs) with structured formatting optimized for AI consumption and human readability. | |
| [AEM Front-End Specialist](../agents/aem-frontend-specialist.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faem-frontend-specialist.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Faem-frontend-specialist.agent.md) | Expert assistant for developing AEM components using HTL, Tailwind CSS, and Figma-to-code workflows with design system integration | |
-| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
+| [Amplitude Experiment Implementation](../agents/amplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Famplitude-experiment-implementation.agent.md) | This custom agent uses Amplitude's MCP tools to deploy new experiments inside of Amplitude, enabling seamless variant testing capabilities and rollout of product features. | |
| [API Architect mode instructions](../agents/api-architect.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapi-architect.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapi-architect.agent.md) | Your role is that of an API architect. Help mentor the engineer by providing guidance, support, and working code. | |
| [Apify Integration Expert](../agents/apify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fapify-integration-expert.agent.md) | Expert agent for integrating Apify Actors into codebases. Handles Actor selection, workflow design, implementation across JavaScript/TypeScript and Python, testing, and production-ready deployment. | [apify](https://github.com/mcp/com.apify/apify-mcp-server)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=apify&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.apify.com%22%2C%22headers%22%3A%7B%22Authorization%22%3A%22Bearer%20%24APIFY_TOKEN%22%2C%22Content-Type%22%3A%22application%2Fjson%22%7D%7D) |
| [Arm Migration Agent](../agents/arm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Farm-migration.agent.md) | Arm Cloud Migration Assistant accelerates moving x86 workloads to Arm infrastructure. It scans the repository for architecture assumptions, portability issues, container base image and dependency incompatibilities, and recommends Arm-optimized changes. It can drive multi-arch container builds, validate performance, and guide optimization, enabling smooth cross-platform deployment directly inside GitHub. | custom-mcp
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=custom-mcp&config=%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22docker%22%2C%22args%22%3A%5B%22run%22%2C%22--rm%22%2C%22-i%22%2C%22-v%22%2C%22%2524%257B%257B%2520github.workspace%2520%257D%257D%253A%252Fworkspace%22%2C%22--name%22%2C%22arm-mcp%22%2C%22armlimited%252Farm-mcp%253Alatest%22%5D%2C%22env%22%3A%7B%7D%7D) |
From 8e8bc48c276e6dca7f57116441b5003133609a4f Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Tue, 20 Jan 2026 11:08:16 +0100
Subject: [PATCH 11/24] CASTLABS-501
---
agents/cast-imaging-impact-analysis.agent.md | 85 ++++++-----------
.../cast-imaging-software-discovery.agent.md | 36 +++----
...maging-structural-quality-advisor.agent.md | 95 +++++--------------
3 files changed, 73 insertions(+), 143 deletions(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index dd097d7f..4de2ee15 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -40,9 +40,17 @@ You are a specialized agent for comprehensive change impact assessment and risk
- **Recommended Workflows**: Use the following tool sequences for consistent analysis.
### Change Impact Assessment
-**When to use**: For comprehensive analysis of potential changes and their cascading effects
+**When to use**: For comprehensive analysis of potential changes and their cascading effects within the application itself
-**Tool sequence**: `objects` → `object_details` → `transactions_using_object` → `data_graphs_involving_object` → `inter_app_detailed_dependencies`
+**Tool sequence**: `objects` → `object_details` |
+ → `transactions_using_object` → `inter_applications_dependencies` → `inter_app_detailed_dependencies`
+ → `data_graphs_involving_object`
+
+**Sequence explanation**:
+1. Identify the object using `objects`
+2. Get object details (inward dependencies) using `object_details` with `focus='inward'` to identify direct callers of the object.
+3. Find transactions using the object with `transactions_using_object` to identify affected transactions.
+4. Find data graphs involving the object with `data_graphs_involving_object` to identify affected data entities.
**Example scenarios**:
- What would be impacted if I change this component?
@@ -50,60 +58,15 @@ You are a specialized agent for comprehensive change impact assessment and risk
- Show me all dependencies for this change
- What are the cascading effects of this modification?
-**Detailed Example: Impact of changing `shop-account.js` in `ShopizerApp`**
+### Change Impact Assessment including Cross-Application Impact
+**When to use**: For comprehensive analysis of potential changes and their cascading effects within and across applications
-**User Query**: "What would be impacted if I change `shop-account.js` in `ShopizerApp`?"
+**Tool sequence**: `objects` → `object_details` → `transactions_using_object` → `inter_applications_dependencies` → `inter_app_detailed_dependencies`
-**Agent Action**:
-
-1. **Identify the object**: Use `objects` to find the `shop-account.js` file.
- ```tool_code
- print(default_api.objects(application="ShopizerApp", filters="name:contains:shop-account.js,type:contains:javascript"))
- ```
- **Tool Output**:
- ```json
- {"objects_response": {"output": "{"content":[{"annotations":null,"filePath":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","fullName":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","id":"328025","mangling":"","name":"shop-account.js","type":"JavaScript Files","typeId":"CAST_HTML5_JavaScript_SourceCode"}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":1,"has_next":false,"has_previous":false},"description":"Objects in ShopizerApp matching [name:contains:shop-account.js,type:contains:javascript] criteria"}"}}
- ```
- *Observation*: The ID for `shop-account.js` is `328025`.
-
-2. **Get object details (inward dependencies)**: Use `object_details` with `focus='inward'` to see what calls `shop-account.js`.
- ```tool_code
- print(default_api.object_details(application="ShopizerApp", filters="id:eq:328025", focus="inward"))
- ```
- **Tool Output**:
- ```json
- {"object_details_response": {"output": "{"content":[{"annotations":null,"external":false,"fullName":"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js","id":"328025","mangling":null,"name":"shop-account.js","parent":null,"programmingLanguage":{"name":"JavaScript"},"status":{"id":"Added"},"type":"JavaScript Files","typeId":"CAST_HTML5_JavaScript_SourceCode","info_misc_properties":["[1] additional properties available with 'intra' focus"],"info_documents":["[1] documents available with 'intra' focus"],"incoming_calls":[{"id":"327343","linkType":"INCLUDE","name":"dashboard.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"328015","linkType":"INCLUDE","name":"address.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"327504","linkType":"INCLUDE","name":"customerAddress.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"id":"326133","linkType":"INCLUDE","name":"customer.jsp","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"}],"info_transactions":["Used to build [2] API/UI endpoints (a.k.a. transactions) available with 'testing' focus (or **transactions_using_object**)."],"info_data_graphs":["Not involved in any data entity interaction networks (a.k.a. data graphs)."],"info_insights":["Manigests [1] insight types available with 'insights' focus"]}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":1,"has_next":false,"has_previous":false},"description":"Object details for ShopizerApp matching [id:eq:328025] with focus on [inward]"}"}}
- ```
- *Observation*: `shop-account.js` is included in `dashboard.jsp`, `address.jsp`, `customerAddress.jsp`, and `customer.jsp`. It is also part of 2 API/UI endpoints.
-
-3. **Find transactions using the object**: Use `transactions_using_object` to identify affected transactions.
- ```tool_code
- print(default_api.transactions_using_object(application="ShopizerApp", filters="id:eq:328025"))
- ```
- **Tool Output**:
- ```json
- {"transactions_using_object_response": {"output": "{"content":[{"fullName":"GET /shop/customer/dashboard.html","id":"346067","name":"GET /shop/customer/dashboard.html","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"},{"fullName":"GET /shop/customer/address.html","id":"346068","name":"GET /shop/customer/address.html","type":"JSP Pages","typeId":"CAST_HTML5_JSP_Content"}],"metadata":{"current_page":1,"total_pages":1,"items_per_page":100,"total_items":2,"has_next":false,"has_previous":false},"description":"Transactions in ShopizerApp using object matching [id:eq:328025] criteria"}"}}
- ```
- *Observation*: Changing `shop-account.js` impacts the `/shop/customer/dashboard.html` and `/shop/customer/address.html` transactions.
-
-**Agent Conclusion**:
-Changing `shop-account.js` in `ShopizerApp` will directly impact `dashboard.jsp`, `address.jsp`, `customerAddress.jsp`, and `customer.jsp` as they include this JavaScript file. Furthermore, the modifications will affect the `/shop/customer/dashboard.html` and `/shop/customer/address.html` API/UI endpoints. Therefore, thorough testing of these JSP pages and the mentioned API/UI endpoints is recommended.
-
-### Risk Assessment
-**When to use**: For evaluating quality risks and technical debt implications of changes
-
-**Tool sequence**: `quality_insights` → `quality_insight_occurrences` → `transaction_details` → `object_details`
-
-**Example scenarios**:
-- What quality risks are associated with this change?
-- How does this change interact with existing technical debt?
-- Show me quality issues in the impact area
-- Assess the risk level of this modification
-
-### Cross-Application Impact
-**When to use**: For analyzing impacts that span across multiple applications in the enterprise
-
-**Tool sequence**: `applications_dependencies` → `inter_applications_dependencies` → `applications_quality_insights` → `applications_transactions`
+**Sequence explanation**:
+1. Identify the object using `objects`
+2. Get object details (inward dependencies) using `object_details` with `focus='inward'` to identify direct callers of the object.
+3. Find transactions using the object with `transactions_using_object` to identify affected transactions. Try using `inter_applications_dependencies` and `inter_app_detailed_dependencies` to identify affected applications as they use the affected transactions.
**Example scenarios**:
- How will this change affect other applications?
@@ -111,10 +74,22 @@ Changing `shop-account.js` in `ShopizerApp` will directly impact `dashboard.jsp`
- Show me enterprise-level dependencies
- Analyze portfolio-wide effects of this change
+### Shared Resource & Coupling Analysis
+**When to use**: To identify if the object or transaction is highly coupled with other parts of the system (high risk of regression)
+
+**Tool sequence**: `graph_intersection_analysis`
+
+**Example scenarios**:
+- Is this code shared by many transactions?
+- Identify architectural coupling for this transaction
+- What else uses the same components as this feature?
+
### Testing Strategy Development
**When to use**: For developing targeted testing approaches based on impact analysis
-**Tool sequence**: `transactions_using_object` → `data_graphs_involving_object` → `transaction_details` → `quality_insights`
+**Tool sequences**: |
+ → `transactions_using_object` → `transaction_details`
+ → `data_graphs_involving_object` → `data_graph_details`
**Example scenarios**:
- What testing should I do for this change?
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
index 892ee0dd..00616ed0 100644
--- a/agents/cast-imaging-software-discovery.agent.md
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -40,7 +40,10 @@ You are a specialized agent for comprehensive software application discovery and
### Application Discovery
**When to use**: When users want to explore available applications or get application overview
-**Tool sequence**: `applications` → `stats` → `architectural_graph` → `quality_insights` → `transactions` → `data_graphs`
+**Tool sequence**: `applications` → `stats` → `architectural_graph` |
+ → `quality_insights`
+ → `transactions`
+ → `data_graphs`
**Example scenarios**:
- What applications are available?
@@ -62,7 +65,9 @@ You are a specialized agent for comprehensive software application discovery and
### Dependency Mapping
**When to use**: For discovering and analyzing dependencies at multiple levels
-**Tool sequence**: `packages` → `package_interactions` → `inter_applications_dependencies` → `object_details`
+**Tool sequence**: |
+ → `packages` → `package_interactions` → `object_details`
+ → `inter_applications_dependencies`
**Example scenarios**:
- What dependencies does this application have?
@@ -70,28 +75,25 @@ You are a specialized agent for comprehensive software application discovery and
- How do applications interact with each other?
- Map the dependency relationships
-### Business Context Integration
-**When to use**: For connecting technical architecture to business workflows and data flows
+### Database & Data Structure Analysis
+**When to use**: For exploring database tables, columns, and schemas
-**Tool sequence**: `transactions` → `transaction_details` → `data_graphs` → `data_graph_details`
+**Tool sequence**: `application_database_explorer` → `object_details` (on tables)
**Example scenarios**:
-- How does this connect to business processes?
-- Show me the business workflows
-- What data flows through this system?
-- Connect technical components to business value
+- List all tables in the application
+- Show me the schema of the 'Customer' table
+- Find tables related to 'billing'
-### Pattern Identification
-**When to use**: For identifying architectural patterns and design conventions
+### Source File Analysis
+**When to use**: For locating and analyzing physical source files
-**Tool sequence**: `architectural_graph` → `objects` → `quality_insights` → `architectural_graph_focus`
+**Tool sequence**: `source_files` → `source_file_details`
**Example scenarios**:
-- What patterns are used in this application?
-- Identify the architectural conventions
-- Show me recurring design decisions
-- Analyze the architectural consistency
-- Find java methods named X and get their callers
+- Find the file 'UserController.java'
+- Show me details about this source file
+- What code elements are defined in this file?
## Your Setup
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index d279e07a..18a0bbf0 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -20,7 +20,6 @@ You are a specialized agent for identifying, analyzing, and providing remediatio
- Quality issue identification and technical debt analysis
- Remediation planning and best practices guidance
-- Quality metrics reporting
- Structural context analysis of quality issues
- Testing strategy development for remediation
- Quality assessment across multiple dimensions
@@ -43,90 +42,44 @@ You are a specialized agent for identifying, analyzing, and providing remediatio
### Quality Assessment
**When to use**: When users want to identify and understand code quality issues in applications
-**Tool sequence**: `quality_insights` → `quality_insight_occurrences` → `object_details` → [verify issue nature if unexpected results]
+**Tool sequence**: `quality_insights` → `quality_insight_occurrences` → `object_details` |
+ → `transactions_using_object`
+ → `data_graphs_involving_object`
+
+**Sequence explanation**:
+1. Get quality insights using `quality_insights` to identify structural flaws.
+2. Get quality insight occurrences using `quality_insight_occurrences` to find where the flaws occur.
+3. Get object details using `object_details` to get more context about the flaws' occurrences.
+4.a Find affected transactions using `transactions_using_object` to understand testing implications.
+4.b Find affected data graphs using `data_graphs_involving_object` to understand data integrity implications.
-**Required in all reports for Quality Assessment**:
-1. Structural context analysis of where occurrences are located (packages, objects, layers).
-2. Testing implications based on occurrence distribution.
-3. Explicit statement like "Source code is/is not available, so this analysis provides [detailed/high-level] guidance."
-4. If occurrence query returns empty or unexpected results, re-verify the issue type and characteristics before concluding.
**Example scenarios**:
- What quality issues are in this application?
- Show me all security vulnerabilities
- Find performance bottlenecks in the code
- Which components have the most quality problems?
-
-**Detailed Example: Identify structural flaws in `ShopizerApp`**
-
-**User Query**: "What structural flaws are in `ShopizerApp`?"
-
-**Agent Action**:
-
-1. **Get quality insights**: Use `quality_insights` to identify structural flaws.
- ```tool_code
- print(default_api.quality_insights(application = "ShopizerApp", nature = "structural-flaws"))
- ```
- **Tool Output**:
- ```json
- {"quality_insights_response": {"output": "{\"content\":[{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"This rule will check the use version of jQUery and the parameter of ajax call.\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"1020322\",\"name\":\"Avoid using Ajax method without dataType with jQuery version older than 3.0.0\",\"nbObjects\":11,\"rationale\":\"While some known vulnerabilities lead to only minor impacts, some of the largest breaches to date...\",\"remediation\":\"Always provide dataType parameter.\",\"remediationSample\":\"$.ajax({ \\\n type : \\\"POST\\\", \\\n url : /v1/user,\n dataType : \\\"json\\\"\\\n success : function() ...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-1069\",\"name\":\"AIP-CWE-1069\"}],\"description\":\"This metric reports all methods with at least one empty catch block (empty or only containing com...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-RELIABILITY\",\"name\":\"Reliability\"}],\"id\":\"1060020\",\"name\":\"Avoid empty catch blocks for methods with high fan-in\",\"nbObjects\":3,\"rationale\":\"An empty catch block defeats the purpose of exceptions.\\\nWhen an exception occurs, nothing happens...\",\"remediation\":\"The exception must be handled correctly according to its type.\",\"remediationSample\":\"C#\\\\n\\\\ntry { ,,, }\\\\ncatch ( MyException e)\\\\n{\\\\n DoSomething();\\\\n}\\\\n\\\\nABAP\\\\nTRY.\\\n RESULT = 1 / NUMBER...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"The software does not neutralize or incorrectly neutralizes user-controllable input before it is ...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"8408\",\"name\":\"Avoid reflected cross-site scripting (non persistent)\",\"nbObjects\":7,\"rationale\":\"URLs constructed without validating and using the same data, this manner constitute the core of m...\",\"remediation\":\"Use authorized sanitization methods.\\\n\\\\nTo avoid the creation of XSS flaws, the Open Web Applicatio...\",\"remediationSample\":\"JSP Example:\\\n<% String eid = request.getParameter(\\\"eid\\\"); %>\\\n... //Input validation is mandatory ...\"},{\"categories\":[{\"id\":\"AIP-AIP-CWE-119\",\"name\":\"AIP-CWE-119\"},{\"id\":\"AIP-AIP-CWE-120\",\"name\":\"AIP-CWE-120\"},{\"id\":\"AIP-AIP-CWE-676\",\"name\":\"AIP-CWE-676\"},{\"id\":\"AIP-AIP-CWE-77\",\"name\":\"AIP-CWE-77\"},{\"id\":\"AIP-AIP-CWE-78\",\"name\":\"AIP-CWE-78\"},{\"id\":\"AIP-AIP-CWE-79\",\"name\":\"AIP-CWE-79\"},{\"id\":\"AIP-AIP-CWE-89\",\"name\":\"AIP-CWE-89\"},{\"id\":\"AIP-AIP-CWE-943\",\"name\":\"AIP-CWE-943\"}],\"description\":\"The software does not neutralize or incorrectly neutralizes user-controllable input before it is ...\",\"factors\":[{\"id\":\"AIP-STRUCTURAL-SECURITY\",\"name\":\"Security\"}],\"id\":\"8482\",\"name\":\"Avoid cross-site scripting through API requests\",\"nbObjects\":134,\"rationale\":\"URLs constructed without validating and using the same data, this manner constitute the core of m...\",\"remediation\":\"Use authorized sanitization methods.\\\n\\\\nTo avoid the creation of XSS flaws, the Open Web Applicatio...\",\"remediationSample\":\"JSP Example:\\\n... // Input validation is mandatory (Use Authorized Santization on eid) \\\nEmployee I...\"}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":4,\"has_next\":false,\"has_previous\":false},\"description\":\"Quality insights (structural-flaws) for ShopizerApp\"}"}}
- ```
- *Observation*: `ShopizerApp` has several structural flaws, including "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (Security), "Avoid empty catch blocks for methods with high fan-in" (Reliability), "Avoid reflected cross-site scripting (non persistent)" (Security), and "Avoid cross-site scripting through API requests" (Security).
-
-2. **Get quality insight occurrences**: Use `quality_insight_occurrences` to find where the "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (ID: 1020322) occurs.
- ```tool_code
- print(default_api.quality_insight_occurrences(application = "ShopizerApp", id = "1020322", nature = "structural-flaws"))
- ```
- **Tool Output**:
- ```json
- {"quality_insight_occurrences_response": {"output": "{\"content\":[{\"type\":\"\",\"object\":{\"name\":\"customer.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/admin/customers/customer.jsp\",\"id\":\"326133\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"creditCardInformations.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations.jsp\",\"id\":\"326212\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"storeAddress.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/storeAddress.jsp\",\"id\":\"326583\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"dashboard.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/customer/dashboard.jsp\",\"id\":\"327343\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"customerAddress.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/preBuiltBlocks/customerAddress.jsp\",\"id\":\"327504\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"creditCardInformations-v2.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/creditCardInformations-v2.jsp\",\"id\":\"327967\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"\",\"object\":{\"name\":\"address.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/customer/address.jsp\",\"id\":\"328015\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shop-account.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\",\"id\":\"328025\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-1146,\"startLine\":31,\"startCol\":2,\"endLine\":53,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\"}]}]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shop-minicart.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\",\"id\":\"328099\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":280,\"startCol\":2,\"endLine\":294,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":298,\"startCol\":2,\"endLine\":314,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-686,\"startLine\":244,\"startCol\":2,\"endLine\":261,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-minicart.js\"}]}]},{\"type\":\"bookmark\",\"object\":{\"name\":\"shopping-cart.js\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\",\"id\":\"328220\",\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"mangling\":\"\"},\"findings\":[{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":287,\"startCol\":2,\"endLine\":307,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":247,\"startCol\":2,\"endLine\":270,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]},{\"bookmarks\":[{\"rank\":1,\"fileId\":-1050,\"startLine\":311,\"startCol\":2,\"endLine\":327,\"endCol\":4,\"relativePath\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shopping-cart.js\"}]}]},{\"type\":\"\",\"object\":{\"name\":\"braintree.jsp\",\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/pages/shop/common/checkout/braintree.jsp\",\"id\":\"328606\",\"type\":\"JSP Pages\",\"typeId\":\"CAST_HTML5_JSP_Content\",\"mangling\":\"\"},\"findings\":[]}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":11,\"has_next\":false,\"has_previous\":false},\"description\":\"Occurrences of structural-flaws (1020322) in ShopizerApp\"}"}}
- ```
- *Observation*: The flaw "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" (ID: 1020322) occurs in several JSP and JavaScript files, including `shop-account.js` (ID: 328025), `shop-minicart.js` (ID: 328099), and `shopping-cart.js` (ID: 328220).
-
-3. **Get object details**: Use `object_details` to get more context about `shop-account.js` (ID: 328025).
- ```tool_code
- print(default_api.object_details(application = "ShopizerApp", filters = "id:eq:328025", focus = "code"))
- ```
- **Tool Output**:
- ```json
- {"object_details_response": {"output": "{\"content\":[{\"annotations\":null,\"external\":false,\"fullName\":\"§{main_sources}§/sm-shop/src/main/webapp/resources/js/shop-account.js\",\"id\":\"328025\",\"mangling\":null,\"name\":\"shop-account.js\",\"parent\":null,\"programmingLanguage\":{\"name\":\"Javascript\"},\"status\":{\"id\":\"Unchanged\"},\"type\":\"JavaScript Files\",\"typeId\":\"CAST_HTML5_JavaScript_SourceCode\",\"info_misc_properties\":[\"[5] additional properties available with \\\'intra\\\' focus\"],\"info_documents\":[\"[4] documents available with \\\'intra\\\' focus\"],\"info_incoming_calls\":[\"[3] callers available with \\\'inward\\\' focus\"],\"info_outgoing_calls\":[\"[4] callees available with \\\'outward\\\' focus\"],\"info_defines\":[\"[5] children available with \\\'intra\\\' focus\"],\"info_transactions\":[\"Used to build [6] API/UI endpoints (a.k.a. transactions) available with \\\'testing\\\' focus (or **tra...\"],\"info_data_graphs\":[\"Involved in [0] data entity interaction networks (a.k.a. data graphs) available with \\\'testing\\\' fo...\"],\"info_insights\":[\"Manigests [2] insight types available with \\\'insights\\\' focus\"]}],\"metadata\":{\"current_page\":1,\"total_pages\":1,\"items_per_page\":100,\"total_items\":1,\"has_next\":false,\"has_previous\":false},\"description\":\"Object details for ShopizerApp matching [id:eq:328025] with focus on [code]\"}"}}
- ```
- *Observation*: The code for `shop-account.js` is available (as indicated by the `focus="code"` output, though the actual code snippet is not shown here for brevity but would be present in a real tool output). This allows for a detailed analysis of the vulnerability.
-
-**Agent Conclusion**:
-The `ShopizerApp` has several structural flaws. Specifically, the "Avoid using Ajax method without dataType with jQuery version older than 3.0.0" flaw (ID: 1020322) is found in multiple JSP and JavaScript files. For `shop-account.js`, the source code is available, enabling a detailed examination of the vulnerable AJAX calls.
-
-**Structural context analysis**: The occurrences are located in frontend JSP and JavaScript files, suggesting client-side vulnerabilities.
-**Testing implications**: Thorough testing of all affected JSP pages and JavaScript files is crucial to ensure that AJAX calls are made with the `dataType` parameter, especially in areas dealing with user input or data submission.
-**Source code access**: Source code *is* available, allowing for detailed guidance on how to fix the identified issues by modifying the specific AJAX calls in the mentioned files.
-
-### Issue Prioritization
-**When to use**: When users need to understand which quality issues to address first
-
-**Tool sequence**: `quality_insights` → `transaction_details` → `data_graph_details`
-
-**Example scenarios**:
- Which quality issues should I fix first?
- What are the most critical problems?
- Show me quality issues in business-critical components
-
-### Root Cause Analysis
-**When to use**: When users want to understand the context and impact of specific quality issues
-
-**Tool sequence**: `quality_insight_occurrences` → `object_details` → `transactions_using_object` → [double-check issue nature if unexpected]
-
-**Required in all analyses for Root Cause Analysis**:
-1. Structural context showing distribution of occurrences across architecture.
-2. Testing strategy focusing on affected transactions and data flows.
-3. Clear statement of source code access affecting analysis depth.
-4. Validation that occurrence data matches issue type - if not, investigate issue definition.
-
-**Example scenarios**:
-- Why is this component flagged for quality issues?
- What's the impact of fixing this problem?
- Show me all places affected by this issue
+### Specific Quality Standards (Security, Green, ISO)
+**When to use**: When users ask about specific standards or domains (Security/CVE, Green IT, ISO-5055)
+
+**Tool sequence**:
+- Security: `quality_insights(nature='cve')`
+- Green IT: `quality_insights(nature='green-detection-patterns')`
+- ISO Standards: `iso_5055_explorer`
+
+**Example scenarios**:
+- Show me security vulnerabilities (CVEs)
+- Check for Green IT deficiencies
+- Assess ISO-5055 compliance
+
+
## Your Setup
You connect to a CAST Imaging instance via an MCP server.
From 34aa53cee476e165a2c92222454e7a48498c805f Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Tue, 20 Jan 2026 11:10:23 +0100
Subject: [PATCH 12/24] CASTLABS-501
---
collections/cast-imaging.collection.yml | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/collections/cast-imaging.collection.yml b/collections/cast-imaging.collection.yml
index 119c2232..f821ad4c 100644
--- a/collections/cast-imaging.collection.yml
+++ b/collections/cast-imaging.collection.yml
@@ -6,34 +6,35 @@ items:
- path: agents/cast-imaging-software-discovery.agent.md
kind: agent
usage: |
- This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, starting with listing all available applications.
+ This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, including database schemas and physical source file locations.
Ideal for:
- Exploring available applications and getting overviews.
- Understanding system architecture and component structure.
- - Analyzing dependencies and identifying patterns.
+ - Analyzing dependencies and database schemas (tables/columns).
+ - Locating and analyzing physical source files.
- path: agents/cast-imaging-impact-analysis.agent.md
kind: agent
usage: |
- This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, developing testing strategies, and evaluating cross-application impacts.
+ This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, identifying architectural coupling (shared resources), and developing testing strategies.
Ideal for:
- Assessing potential impacts of code modifications.
- - Evaluating quality risks and technical debt implications.
+ - Identifying architectural coupling and shared code risks.
- Analyzing impacts spanning multiple applications.
- - Developing targeted testing approaches.
+ - Developing targeted testing approaches based on change scope.
- path: agents/cast-imaging-structural-quality-advisor.agent.md
kind: agent
usage: |
- This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It includes structural context analysis of occurrences with a focus on necessary testing and indicates source code access level.
+ This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It supports specialized standards including Security (CVE), Green IT deficiencies, and ISO-5055 compliance.
Ideal for:
- - Identifying and understanding code quality issues.
- - Prioritizing quality issues based on impact.
- - Performing root cause analysis for specific quality problems.
- - Analyzing quality trends across the application.
+ - Identifying and understanding code quality issues and structural flaws.
+ - Checking compliance with Security (CVE), Green IT, and ISO-5055 standards.
+ - Prioritizing quality issues based on business impact and risk.
+ - Analyzing quality trends and providing remediation guidance.
display:
ordering: alpha
From d3ed11b70e0713f7cc19f0443e1a8ecb4770849b Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Tue, 20 Jan 2026 11:15:22 +0100
Subject: [PATCH 13/24] CASTLABS-501
---
collections/cast-imaging.md | 53 +++++++++++++++++++++++++++++++++++++
docs/README.agents.md | 3 +++
docs/README.collections.md | 1 +
3 files changed, 57 insertions(+)
create mode 100644 collections/cast-imaging.md
diff --git a/collections/cast-imaging.md b/collections/cast-imaging.md
new file mode 100644
index 00000000..1a0f1f33
--- /dev/null
+++ b/collections/cast-imaging.md
@@ -0,0 +1,53 @@
+# CAST Imaging Agents
+
+A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging.
+
+**Tags:** cast imaging, software analysis, architecture, quality, impact analysis, devops
+
+## Items in this Collection
+
+| Title | Type | Description | MCP Servers |
+| ----- | ---- | ----------- | ----------- |
+| [Cast Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [Cast Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [Cast Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+
+## Collection Usage
+
+### Cast Imaging Impact Analysis Agent
+
+This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, identifying architectural coupling (shared resources), and developing testing strategies.
+
+Ideal for:
+- Assessing potential impacts of code modifications.
+- Identifying architectural coupling and shared code risks.
+- Analyzing impacts spanning multiple applications.
+- Developing targeted testing approaches based on change scope.
+
+---
+
+### Cast Imaging Software Discovery Agent
+
+This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, including database schemas and physical source file locations.
+
+Ideal for:
+- Exploring available applications and getting overviews.
+- Understanding system architecture and component structure.
+- Analyzing dependencies and database schemas (tables/columns).
+- Locating and analyzing physical source files.
+
+---
+
+### Cast Imaging Structural Quality Advisor Agent
+
+This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It supports specialized standards including Security (CVE), Green IT deficiencies, and ISO-5055 compliance.
+
+Ideal for:
+- Identifying and understanding code quality issues and structural flaws.
+- Checking compliance with Security (CVE), Green IT, and ISO-5055 standards.
+- Prioritizing quality issues based on business impact and risk.
+- Analyzing quality trends and providing remediation guidance.
+
+---
+
+*This collection includes 3 curated items for **CAST Imaging Agents**.*
\ No newline at end of file
diff --git a/docs/README.agents.md b/docs/README.agents.md
index 19beea7a..be9d5879 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -44,6 +44,9 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [C# Expert](../agents/CSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md) | An agent designed to assist with software development tasks for .NET projects. | |
| [C# MCP Server Expert](../agents/csharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in C# | |
| [C#/.NET Janitor](../agents/csharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md) | Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation. | |
+| [Cast Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [Cast Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [Cast Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
| [Clojure Interactive Programming](../agents/clojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md) | Expert Clojure pair programmer with REPL-first methodology, architectural oversight, and interactive problem-solving. Enforces quality standards, prevents workarounds, and develops solutions incrementally through live REPL evaluation before file modifications. | |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | [context7](https://github.com/mcp/io.github.upstash/context7)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
diff --git a/docs/README.collections.md b/docs/README.collections.md
index 678ad835..e0676a82 100644
--- a/docs/README.collections.md
+++ b/docs/README.collections.md
@@ -21,6 +21,7 @@ Curated collections of related prompts, instructions, and agents organized aroun
| [Azure & Cloud Development](../collections/azure-cloud-development.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 18 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops |
| [C# .NET Development](../collections/csharp-dotnet-development.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 8 items | csharp, dotnet, aspnet, testing |
| [C# MCP Server Development](../collections/csharp-mcp-development.md) | Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | csharp, mcp, model-context-protocol, dotnet, server-development |
+| [CAST Imaging Agents](../collections/cast-imaging.md) | A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging. | 3 items | cast imaging, software analysis, architecture, quality, impact analysis, devops |
| [Clojure Interactive Programming](../collections/clojure-interactive-programming.md) | Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance. | 3 items | clojure, repl, interactive-programming |
| [Database & Data Management](../collections/database-data-management.md) | Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices. | 8 items | database, sql, postgresql, sql-server, dba, optimization, queries, data-management |
| [Dataverse SDK for Python](../collections/dataverse-sdk-for-python.md) | Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse. Includes official documentation, best practices, advanced features, file operations, and code generation prompts. | 17 items | dataverse, python, integration, sdk |
From bb34098ff6b3b10b4f6ac04c8d79382e161a00b5 Mon Sep 17 00:00:00 2001
From: CASTResearchLabs
Date: Tue, 20 Jan 2026 16:15:43 +0100
Subject: [PATCH 14/24] Update cast-imaging-impact-analysis.agent.md
---
agents/cast-imaging-impact-analysis.agent.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index 4de2ee15..28486202 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -1,7 +1,7 @@
---
-name: cast-imaging-impact-analysis-agent
-description: Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging
-tools: ["*"]
+name: 'cast-imaging-impact-analysis-agent'
+description: ´Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
+tools: ['*']
mcp-servers:
imaging-impact-analysis:
type: 'http'
@@ -9,10 +9,10 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ["*"]
+ tools: ['*']
---
-# Impact Analysis Agent
+# CAST Imaging Impact Analysis Agent
You are a specialized agent for comprehensive change impact assessment and risk analysis in software systems. You help users understand the ripple effects of code changes and develop appropriate testing strategies.
From 741eeb3e1a78369ff2df4ee760cd02b425f2914e Mon Sep 17 00:00:00 2001
From: CASTResearchLabs
Date: Tue, 20 Jan 2026 16:18:04 +0100
Subject: [PATCH 15/24] Update cast-imaging-software-discovery.agent.md
---
agents/cast-imaging-software-discovery.agent.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
index 00616ed0..d88a0402 100644
--- a/agents/cast-imaging-software-discovery.agent.md
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -1,7 +1,7 @@
---
-name: cast-imaging-software-discovery-agent
-description: Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging
-tools: ["*"]
+name: 'cast-imaging-software-discovery-agent'
+description: 'Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
+tools: ['*']
mcp-servers:
imaging-structural-search:
type: 'http'
@@ -9,10 +9,10 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ["*"]
+ tools: ['*']
---
-# Software Discovery Agent
+# CAST Imaging Software Discovery Agent
You are a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis. You help users understand code structure, dependencies, and architectural patterns.
From a72ba867e03e2a8940e66c2aa33fe8a441baa839 Mon Sep 17 00:00:00 2001
From: CASTResearchLabs
Date: Tue, 20 Jan 2026 16:20:33 +0100
Subject: [PATCH 16/24] Update cast-imaging-structural-quality-advisor.agent.md
---
.../cast-imaging-structural-quality-advisor.agent.md | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index 18a0bbf0..97e59e68 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -1,7 +1,7 @@
---
-name: cast-imaging-structural-quality-advisor-agent
-description: Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging
-tools: ["*"]
+name: 'cast-imaging-structural-quality-advisor-agent'
+description: 'Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
+tools: ['*']
mcp-servers:
imaging-structural-quality:
type: 'http'
@@ -9,10 +9,10 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ["*"]
+ tools: ['*']
---
-# Structural Quality Advisor Agent
+# CAST Imaging Structural Quality Advisor Agent
You are a specialized agent for identifying, analyzing, and providing remediation guidance for structural quality issues. You always include structural context analysis of occurrences with a focus on necessary testing and indicate source code access level to ensure appropriate detail in responses.
From 3520908053f7ec7915cfabe5eb9d04351daa637d Mon Sep 17 00:00:00 2001
From: Josh Beard
Date: Tue, 20 Jan 2026 10:59:29 -0500
Subject: [PATCH 17/24] Update version number in CSharpExpert agent
In order to better determine if a given agent file in a repository is out of date, shouldn't the version # be incremented when changes are made? I see that this one is stale and as such I missed updating the version of it I have in my repositories.
---
agents/CSharpExpert.agent.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/agents/CSharpExpert.agent.md b/agents/CSharpExpert.agent.md
index 5c07fed7..170d8f34 100644
--- a/agents/CSharpExpert.agent.md
+++ b/agents/CSharpExpert.agent.md
@@ -1,7 +1,7 @@
---
name: "C# Expert"
description: An agent designed to assist with software development tasks for .NET projects.
-# version: 2025-10-27a
+# version: 2026-01-20a
---
You are an expert C#/.NET developer. You help with .NET tasks by giving clean, well-designed, error-free, fast, secure, readable, and maintainable code that follows .NET conventions. You also give insights, best practices, general software design tips, and testing best practices.
From f66991f741eb3a4e3323ab58fc15e61ba1025587 Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Tue, 20 Jan 2026 23:14:15 +0100
Subject: [PATCH 18/24] Updates of description format and case override of
generated document
---
agents/cast-imaging-impact-analysis.agent.md | 4 +---
agents/cast-imaging-software-discovery.agent.md | 2 --
.../cast-imaging-structural-quality-advisor.agent.md | 4 +---
docs/README.agents.md | 10 +++++++---
4 files changed, 9 insertions(+), 11 deletions(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index 28486202..3a82b351 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -1,7 +1,6 @@
---
name: 'cast-imaging-impact-analysis-agent'
-description: ´Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
-tools: ['*']
+description: 'Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
mcp-servers:
imaging-impact-analysis:
type: 'http'
@@ -9,7 +8,6 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ['*']
---
# CAST Imaging Impact Analysis Agent
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
index d88a0402..985ac3f0 100644
--- a/agents/cast-imaging-software-discovery.agent.md
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -1,7 +1,6 @@
---
name: 'cast-imaging-software-discovery-agent'
description: 'Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
-tools: ['*']
mcp-servers:
imaging-structural-search:
type: 'http'
@@ -9,7 +8,6 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ['*']
---
# CAST Imaging Software Discovery Agent
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index 97e59e68..ea8f8c0a 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -1,7 +1,6 @@
---
name: 'cast-imaging-structural-quality-advisor-agent'
description: 'Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
-tools: ['*']
mcp-servers:
imaging-structural-quality:
type: 'http'
@@ -9,7 +8,6 @@ mcp-servers:
headers:
'x-api-key': '${input:imaging-key}'
args: []
- tools: ['*']
---
# CAST Imaging Structural Quality Advisor Agent
@@ -69,7 +67,7 @@ You are a specialized agent for identifying, analyzing, and providing remediatio
### Specific Quality Standards (Security, Green, ISO)
**When to use**: When users ask about specific standards or domains (Security/CVE, Green IT, ISO-5055)
-**Tool sequence**:
+**Tool sequence**:
- Security: `quality_insights(nature='cve')`
- Green IT: `quality_insights(nature='green-detection-patterns')`
- ISO Standards: `iso_5055_explorer`
diff --git a/docs/README.agents.md b/docs/README.agents.md
index be9d5879..7574cf89 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -1,18 +1,22 @@
# 🤖 Custom Agents
Custom agents for GitHub Copilot, making it easy for users and organizations to "specialize" their Copilot coding agent (CCA) through simple file-based configuration.
+
### How to Use Custom Agents
**To Install:**
+
- Click the **VS Code** or **VS Code Insiders** install button for the agent you want to use
- Download the `*.agent.md` file and add it to your repository
**MCP Server Setup:**
+
- Each agent may require one or more MCP servers to function
- Click the MCP server to view it on the GitHub MCP registry
- Follow the guide on how to add the MCP server to your repository
**To Activate/Use:**
+
- Access installed agents through the VS Code Chat interface, assign them in CCA, or through Copilot CLI (coming soon)
- Agents will have access to tools from configured MCP servers
- Follow agent-specific instructions for optimal usage
@@ -44,9 +48,9 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [C# Expert](../agents/CSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md) | An agent designed to assist with software development tasks for .NET projects. | |
| [C# MCP Server Expert](../agents/csharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in C# | |
| [C#/.NET Janitor](../agents/csharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md) | Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation. | |
-| [Cast Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [Cast Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [Cast Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
| [Clojure Interactive Programming](../agents/clojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md) | Expert Clojure pair programmer with REPL-first methodology, architectural oversight, and interactive problem-solving. Enforces quality standards, prevents workarounds, and develops solutions incrementally through live REPL evaluation before file modifications. | |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | [context7](https://github.com/mcp/io.github.upstash/context7)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
From c2692812804190def662014d03095bf52c945ce5 Mon Sep 17 00:00:00 2001
From: CASTResearchLabs
Date: Wed, 21 Jan 2026 07:46:54 +0100
Subject: [PATCH 19/24] Update cast-imaging.collection.yml
---
collections/cast-imaging.collection.yml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/collections/cast-imaging.collection.yml b/collections/cast-imaging.collection.yml
index f821ad4c..d65febc1 100644
--- a/collections/cast-imaging.collection.yml
+++ b/collections/cast-imaging.collection.yml
@@ -1,7 +1,7 @@
id: cast-imaging
name: CAST Imaging Agents
description: A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging.
-tags: [cast imaging, software analysis, architecture, quality, impact analysis, devops]
+tags: [cast-imaging, software-analysis, architecture, quality, impact-analysis, devops]
items:
- path: agents/cast-imaging-software-discovery.agent.md
kind: agent
@@ -37,5 +37,5 @@ items:
- Analyzing quality trends and providing remediation guidance.
display:
- ordering: alpha
+ ordering: manual
show_badge: true
From 29122eb7cdfaffae9acc976019f9bbb54fcbbb07 Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Wed, 21 Jan 2026 07:54:07 +0100
Subject: [PATCH 20/24] Trying to solve the generated file case issue manually
---
collections/cast-imaging.md | 38 ++++++++++++++++++-------------------
docs/README.agents.md | 4 ----
docs/README.collections.md | 2 +-
3 files changed, 20 insertions(+), 24 deletions(-)
diff --git a/collections/cast-imaging.md b/collections/cast-imaging.md
index 1a0f1f33..eec1dc3d 100644
--- a/collections/cast-imaging.md
+++ b/collections/cast-imaging.md
@@ -2,31 +2,19 @@
A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging.
-**Tags:** cast imaging, software analysis, architecture, quality, impact analysis, devops
+**Tags:** cast-imaging, software-analysis, architecture, quality, impact-analysis, devops
## Items in this Collection
| Title | Type | Description | MCP Servers |
| ----- | ---- | ----------- | ----------- |
-| [Cast Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [Cast Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [Cast Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
## Collection Usage
-### Cast Imaging Impact Analysis Agent
-
-This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, identifying architectural coupling (shared resources), and developing testing strategies.
-
-Ideal for:
-- Assessing potential impacts of code modifications.
-- Identifying architectural coupling and shared code risks.
-- Analyzing impacts spanning multiple applications.
-- Developing targeted testing approaches based on change scope.
-
----
-
-### Cast Imaging Software Discovery Agent
+### CAST Imaging Software Discovery Agent
This agent is designed for comprehensive software application discovery and architectural mapping. It helps users understand code structure, dependencies, and architectural patterns, including database schemas and physical source file locations.
@@ -38,7 +26,19 @@ Ideal for:
---
-### Cast Imaging Structural Quality Advisor Agent
+### CAST Imaging Impact Analysis Agent
+
+This agent specializes in comprehensive change impact assessment and risk analysis. It assists users in understanding ripple effects of code changes, identifying architectural coupling (shared resources), and developing testing strategies.
+
+Ideal for:
+- Assessing potential impacts of code modifications.
+- Identifying architectural coupling and shared code risks.
+- Analyzing impacts spanning multiple applications.
+- Developing targeted testing approaches based on change scope.
+
+---
+
+### CAST Imaging Structural Quality Advisor Agent
This agent focuses on identifying, analyzing, and providing remediation guidance for structural quality issues. It supports specialized standards including Security (CVE), Green IT deficiencies, and ISO-5055 compliance.
@@ -50,4 +50,4 @@ Ideal for:
---
-*This collection includes 3 curated items for **CAST Imaging Agents**.*
\ No newline at end of file
+*This collection includes 3 curated items for **CAST Imaging Agents**.*
diff --git a/docs/README.agents.md b/docs/README.agents.md
index 7574cf89..4e5c55f2 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -1,22 +1,18 @@
# 🤖 Custom Agents
Custom agents for GitHub Copilot, making it easy for users and organizations to "specialize" their Copilot coding agent (CCA) through simple file-based configuration.
-
### How to Use Custom Agents
**To Install:**
-
- Click the **VS Code** or **VS Code Insiders** install button for the agent you want to use
- Download the `*.agent.md` file and add it to your repository
**MCP Server Setup:**
-
- Each agent may require one or more MCP servers to function
- Click the MCP server to view it on the GitHub MCP registry
- Follow the guide on how to add the MCP server to your repository
**To Activate/Use:**
-
- Access installed agents through the VS Code Chat interface, assign them in CCA, or through Copilot CLI (coming soon)
- Agents will have access to tools from configured MCP servers
- Follow agent-specific instructions for optimal usage
diff --git a/docs/README.collections.md b/docs/README.collections.md
index e0676a82..34900bdf 100644
--- a/docs/README.collections.md
+++ b/docs/README.collections.md
@@ -21,7 +21,7 @@ Curated collections of related prompts, instructions, and agents organized aroun
| [Azure & Cloud Development](../collections/azure-cloud-development.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 18 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops |
| [C# .NET Development](../collections/csharp-dotnet-development.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 8 items | csharp, dotnet, aspnet, testing |
| [C# MCP Server Development](../collections/csharp-mcp-development.md) | Complete toolkit for building Model Context Protocol (MCP) servers in C# using the official SDK. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 3 items | csharp, mcp, model-context-protocol, dotnet, server-development |
-| [CAST Imaging Agents](../collections/cast-imaging.md) | A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging. | 3 items | cast imaging, software analysis, architecture, quality, impact analysis, devops |
+| [CAST Imaging Agents](../collections/cast-imaging.md) | A comprehensive collection of specialized agents for software analysis, impact assessment, structural quality advisories, and architectural review using CAST Imaging. | 3 items | cast-imaging, software-analysis, architecture, quality, impact-analysis, devops |
| [Clojure Interactive Programming](../collections/clojure-interactive-programming.md) | Tools for REPL-first Clojure workflows featuring Clojure instructions, the interactive programming chat mode and supporting guidance. | 3 items | clojure, repl, interactive-programming |
| [Database & Data Management](../collections/database-data-management.md) | Database administration, SQL optimization, and data management tools for PostgreSQL, SQL Server, and general database development best practices. | 8 items | database, sql, postgresql, sql-server, dba, optimization, queries, data-management |
| [Dataverse SDK for Python](../collections/dataverse-sdk-for-python.md) | Comprehensive collection for building production-ready Python integrations with Microsoft Dataverse. Includes official documentation, best practices, advanced features, file operations, and code generation prompts. | 17 items | dataverse, python, integration, sdk |
From 6f32f8e9e1d0c76e7b6b366f573aee47d9c2a08a Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Wed, 21 Jan 2026 09:03:39 +0100
Subject: [PATCH 21/24] Changed frontmatter to avoid auto-generated description
case error on company name
---
agents/cast-imaging-impact-analysis.agent.md | 3 +--
agents/cast-imaging-software-discovery.agent.md | 3 +--
agents/cast-imaging-structural-quality-advisor.agent.md | 3 +--
collections/cast-imaging.md | 8 ++++----
docs/README.agents.md | 6 +++---
5 files changed, 10 insertions(+), 13 deletions(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index 3a82b351..96c99a98 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -1,6 +1,5 @@
---
-name: 'cast-imaging-impact-analysis-agent'
-description: 'Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
+description: 'CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
mcp-servers:
imaging-impact-analysis:
type: 'http'
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
index 985ac3f0..d01a177f 100644
--- a/agents/cast-imaging-software-discovery.agent.md
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -1,6 +1,5 @@
---
-name: 'cast-imaging-software-discovery-agent'
-description: 'Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
+description: 'CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
mcp-servers:
imaging-structural-search:
type: 'http'
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index ea8f8c0a..681b0c52 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -1,6 +1,5 @@
---
-name: 'cast-imaging-structural-quality-advisor-agent'
-description: 'Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
+description: 'CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
mcp-servers:
imaging-structural-quality:
type: 'http'
diff --git a/collections/cast-imaging.md b/collections/cast-imaging.md
index eec1dc3d..17be896d 100644
--- a/collections/cast-imaging.md
+++ b/collections/cast-imaging.md
@@ -8,9 +8,9 @@ A comprehensive collection of specialized agents for software analysis, impact a
| Title | Type | Description | MCP Servers |
| ----- | ---- | ----------- | ----------- |
-| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
## Collection Usage
@@ -50,4 +50,4 @@ Ideal for:
---
-*This collection includes 3 curated items for **CAST Imaging Agents**.*
+*This collection includes 3 curated items for **CAST Imaging Agents**.*
\ No newline at end of file
diff --git a/docs/README.agents.md b/docs/README.agents.md
index 4e5c55f2..c13bf2c2 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -44,9 +44,9 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [C# Expert](../agents/CSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md) | An agent designed to assist with software development tasks for .NET projects. | |
| [C# MCP Server Expert](../agents/csharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in C# | |
| [C#/.NET Janitor](../agents/csharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md) | Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation. | |
-| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
| [Clojure Interactive Programming](../agents/clojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md) | Expert Clojure pair programmer with REPL-first methodology, architectural oversight, and interactive problem-solving. Enforces quality standards, prevents workarounds, and develops solutions incrementally through live REPL evaluation before file modifications. | |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | [context7](https://github.com/mcp/io.github.upstash/context7)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
From 3167a45ab382bfb78d92b2909188cae7812ad81a Mon Sep 17 00:00:00 2001
From: "@p.douziech_cast"
Date: Wed, 21 Jan 2026 09:16:22 +0100
Subject: [PATCH 22/24] Frontmatter name field fix
---
agents/cast-imaging-impact-analysis.agent.md | 3 ++-
agents/cast-imaging-software-discovery.agent.md | 3 ++-
agents/cast-imaging-structural-quality-advisor.agent.md | 3 ++-
collections/cast-imaging.md | 6 +++---
docs/README.agents.md | 6 +++---
5 files changed, 12 insertions(+), 9 deletions(-)
diff --git a/agents/cast-imaging-impact-analysis.agent.md b/agents/cast-imaging-impact-analysis.agent.md
index 96c99a98..19ba7779 100644
--- a/agents/cast-imaging-impact-analysis.agent.md
+++ b/agents/cast-imaging-impact-analysis.agent.md
@@ -1,5 +1,6 @@
---
-description: 'CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
+name: 'CAST Imaging Impact Analysis Agent'
+description: 'Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging'
mcp-servers:
imaging-impact-analysis:
type: 'http'
diff --git a/agents/cast-imaging-software-discovery.agent.md b/agents/cast-imaging-software-discovery.agent.md
index d01a177f..ddd91d43 100644
--- a/agents/cast-imaging-software-discovery.agent.md
+++ b/agents/cast-imaging-software-discovery.agent.md
@@ -1,5 +1,6 @@
---
-description: 'CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
+name: 'CAST Imaging Software Discovery Agent'
+description: 'Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging'
mcp-servers:
imaging-structural-search:
type: 'http'
diff --git a/agents/cast-imaging-structural-quality-advisor.agent.md b/agents/cast-imaging-structural-quality-advisor.agent.md
index 681b0c52..a0cdfb2b 100644
--- a/agents/cast-imaging-structural-quality-advisor.agent.md
+++ b/agents/cast-imaging-structural-quality-advisor.agent.md
@@ -1,5 +1,6 @@
---
-description: 'CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
+name: 'CAST Imaging Structural Quality Advisor Agent'
+description: 'Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging'
mcp-servers:
imaging-structural-quality:
type: 'http'
diff --git a/collections/cast-imaging.md b/collections/cast-imaging.md
index 17be896d..d12e8652 100644
--- a/collections/cast-imaging.md
+++ b/collections/cast-imaging.md
@@ -8,9 +8,9 @@ A comprehensive collection of specialized agents for software analysis, impact a
| Title | Type | Description | MCP Servers |
| ----- | ---- | ----------- | ----------- |
-| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Agent | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging [see usage](#cast-imaging-software-discovery-agent) | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Agent | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging [see usage](#cast-imaging-impact-analysis-agent) | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Agent | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging [see usage](#cast-imaging-structural-quality-advisor-agent) | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
## Collection Usage
diff --git a/docs/README.agents.md b/docs/README.agents.md
index c13bf2c2..4e5c55f2 100644
--- a/docs/README.agents.md
+++ b/docs/README.agents.md
@@ -44,9 +44,9 @@ Custom agents for GitHub Copilot, making it easy for users and organizations to
| [C# Expert](../agents/CSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2FCSharpExpert.agent.md) | An agent designed to assist with software development tasks for .NET projects. | |
| [C# MCP Server Expert](../agents/csharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-mcp-expert.agent.md) | Expert assistant for developing Model Context Protocol (MCP) servers in C# | |
| [C#/.NET Janitor](../agents/csharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcsharp-dotnet-janitor.agent.md) | Perform janitorial tasks on C#/.NET code including cleanup, modernization, and tech debt remediation. | |
-| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | CAST Imaging Impact Analysis Agent is a specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | CAST Imaging Software Discovery Agent is a specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
-| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | CAST Imaging Structural Quality Advisor Agent is a specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Impact Analysis Agent](../agents/cast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-impact-analysis.agent.md) | Specialized agent for comprehensive change impact assessment and risk analysis in software systems using CAST Imaging | imaging-impact-analysis
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-impact-analysis&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Software Discovery Agent](../agents/cast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-software-discovery.agent.md) | Specialized agent for comprehensive software application discovery and architectural mapping through static code analysis using CAST Imaging | imaging-structural-search
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-search&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
+| [CAST Imaging Structural Quality Advisor Agent](../agents/cast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcast-imaging-structural-quality-advisor.agent.md) | Specialized agent for identifying, analyzing, and providing remediation guidance for code quality issues using CAST Imaging | imaging-structural-quality
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=imaging-structural-quality&config=%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fcastimaging.io%2Fimaging%2Fmcp%2F%22%2C%22headers%22%3A%7B%22x-api-key%22%3A%22%24%7Binput%3Aimaging-key%7D%22%7D%7D) |
| [Clojure Interactive Programming](../agents/clojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fclojure-interactive-programming.agent.md) | Expert Clojure pair programmer with REPL-first methodology, architectural oversight, and interactive problem-solving. Enforces quality standards, prevents workarounds, and develops solutions incrementally through live REPL evaluation before file modifications. | |
| [Comet Opik](../agents/comet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcomet-opik.agent.md) | Unified Comet Opik agent for instrumenting LLM apps, managing prompts/projects, auditing prompts, and investigating traces/metrics via the latest Opik MCP server. | opik
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=opik&config=%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22command%22%3A%22npx%22%2C%22args%22%3A%5B%22-y%22%2C%22opik-mcp%22%5D%2C%22env%22%3A%7B%7D%7D) |
| [Context7 Expert](../agents/context7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md)
[](https://aka.ms/awesome-copilot/install/agent?url=vscode-insiders%3Achat-agent%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Fagents%2Fcontext7.agent.md) | Expert in latest library versions, best practices, and correct syntax using up-to-date documentation | [context7](https://github.com/mcp/io.github.upstash/context7)
[](https://aka.ms/awesome-copilot/install/mcp-vscode?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-vscodeinsiders?name=context7&config=%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D)
[](https://aka.ms/awesome-copilot/install/mcp-visualstudio/mcp-install?%7B%22url%22%3A%22https%3A%2F%2Fmcp.context7.com%2Fmcp%22%2C%22headers%22%3A%7B%22CONTEXT7_API_KEY%22%3A%22%24%7B%7B%20secrets.COPILOT_MCP_CONTEXT7%20%7D%7D%22%7D%7D) |
From a3c13fae17da54fdcf0fc4bed7b1cd50e41bd259 Mon Sep 17 00:00:00 2001
From: "Tom Meschter (from Dev Box)"
Date: Wed, 21 Jan 2026 10:39:33 -0800
Subject: [PATCH 23/24] Add azure deployment preflight skill
---
docs/README.skills.md | 1 +
skills/azure-deployment-preflight/SKILL.md | 216 ++++++++++
.../references/ERROR-HANDLING.md | 392 ++++++++++++++++++
.../references/REPORT-TEMPLATE.md | 352 ++++++++++++++++
.../references/VALIDATION-COMMANDS.md | 379 +++++++++++++++++
5 files changed, 1340 insertions(+)
create mode 100644 skills/azure-deployment-preflight/SKILL.md
create mode 100644 skills/azure-deployment-preflight/references/ERROR-HANDLING.md
create mode 100644 skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md
create mode 100644 skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md
diff --git a/docs/README.skills.md b/docs/README.skills.md
index 7d423758..47258da9 100644
--- a/docs/README.skills.md
+++ b/docs/README.skills.md
@@ -23,6 +23,7 @@ Skills differ from other primitives by supporting bundled assets (scripts, code
| Name | Description | Bundled Assets |
| ---- | ----------- | -------------- |
| [appinsights-instrumentation](../skills/appinsights-instrumentation/SKILL.md) | Instrument a webapp to send useful telemetry data to Azure App Insights | `LICENSE.txt`
`examples/appinsights.bicep`
`references/ASPNETCORE.md`
`references/AUTO.md`
`references/NODEJS.md`
`references/PYTHON.md`
`scripts/appinsights.ps1` |
+| [azure-deployment-preflight](../skills/azure-deployment-preflight/SKILL.md) | Performs comprehensive preflight validation of Bicep deployments to Azure, including template syntax validation, what-if analysis, and permission checks. Use this skill before any deployment to Azure to preview changes, identify potential issues, and ensure the deployment will succeed. Activate when users mention deploying to Azure, validating Bicep files, checking deployment permissions, previewing infrastructure changes, running what-if, or preparing for azd provision. | `references/ERROR-HANDLING.md`
`references/REPORT-TEMPLATE.md`
`references/VALIDATION-COMMANDS.md` |
| [azure-resource-visualizer](../skills/azure-resource-visualizer/SKILL.md) | Analyze Azure resource groups and generate detailed Mermaid architecture diagrams showing the relationships between individual resources. Use this skill when the user asks for a diagram of their Azure resources or help in understanding how the resources relate to each other. | `LICENSE.txt`
`assets/template-architecture.md` |
| [azure-role-selector](../skills/azure-role-selector/SKILL.md) | When user is asking for guidance for which role to assign to an identity given desired permissions, this agent helps them understand the role that will meet the requirements with least privilege access and how to apply that role. | `LICENSE.txt` |
| [azure-static-web-apps](../skills/azure-static-web-apps/SKILL.md) | Helps create, configure, and deploy Azure Static Web Apps using the SWA CLI. Use when deploying static sites to Azure, setting up SWA local development, configuring staticwebapp.config.json, adding Azure Functions APIs to SWA, or setting up GitHub Actions CI/CD for Static Web Apps. | None |
diff --git a/skills/azure-deployment-preflight/SKILL.md b/skills/azure-deployment-preflight/SKILL.md
new file mode 100644
index 00000000..2a44dd5d
--- /dev/null
+++ b/skills/azure-deployment-preflight/SKILL.md
@@ -0,0 +1,216 @@
+---
+name: azure-deployment-preflight
+description: 'Performs comprehensive preflight validation of Bicep deployments to Azure, including template syntax validation, what-if analysis, and permission checks. Use this skill before any deployment to Azure to preview changes, identify potential issues, and ensure the deployment will succeed. Activate when users mention deploying to Azure, validating Bicep files, checking deployment permissions, previewing infrastructure changes, running what-if, or preparing for azd provision.'
+---
+
+# Azure Deployment Preflight Validation
+
+This skill validates Bicep deployments before execution, supporting both Azure CLI (`az`) and Azure Developer CLI (`azd`) workflows.
+
+## When to Use This Skill
+
+- Before deploying infrastructure to Azure
+- When preparing or reviewing Bicep files
+- To preview what changes a deployment will make
+- To verify permissions are sufficient for deployment
+- Before running `azd up`, `azd provision`, or `az deployment` commands
+
+## Validation Process
+
+Follow these steps in order. Continue to the next step even if a previous step fails—capture all issues in the final report.
+
+### Step 1: Detect Project Type
+
+Determine the deployment workflow by checking for project indicators:
+
+1. **Check for azd project**: Look for `azure.yaml` in the project root
+ - If found → Use **azd workflow**
+ - If not found → Use **az CLI workflow**
+
+2. **Locate Bicep files**: Find all `.bicep` files to validate
+ - For azd projects: Check `infra/` directory first, then project root
+ - For standalone: Use the file specified by the user or search common locations (`infra/`, `deploy/`, project root)
+
+3. **Auto-detect parameter files**: For each Bicep file, look for matching parameter files:
+ - `.bicepparam` (Bicep parameters - preferred)
+ - `.parameters.json` (JSON parameters)
+ - `parameters.json` or `parameters/.json` in same directory
+
+### Step 2: Validate Bicep Syntax
+
+Run Bicep CLI to check template syntax before attempting deployment validation:
+
+```bash
+bicep build --stdout
+```
+
+**What to capture:**
+- Syntax errors with line/column numbers
+- Warning messages
+- Build success/failure status
+
+**If Bicep CLI is not installed:**
+- Note the issue in the report
+- Continue to Step 3 (Azure will validate syntax during what-if)
+
+### Step 3: Run Preflight Validation
+
+Choose the appropriate validation based on project type detected in Step 1.
+
+#### For azd Projects (azure.yaml exists)
+
+Use `azd provision --preview` to validate the deployment:
+
+```bash
+azd provision --preview
+```
+
+If an environment is specified or multiple environments exist:
+```bash
+azd provision --preview --environment
+```
+
+#### For Standalone Bicep (no azure.yaml)
+
+Determine the deployment scope from the Bicep file's `targetScope` declaration:
+
+| Target Scope | Command |
+|--------------|---------|
+| `resourceGroup` (default) | `az deployment group what-if` |
+| `subscription` | `az deployment sub what-if` |
+| `managementGroup` | `az deployment mg what-if` |
+| `tenant` | `az deployment tenant what-if` |
+
+**Run with Provider validation level first:**
+
+```bash
+# Resource Group scope (most common)
+az deployment group what-if \
+ --resource-group \
+ --template-file \
+ --parameters \
+ --validation-level Provider
+
+# Subscription scope
+az deployment sub what-if \
+ --location \
+ --template-file \
+ --parameters \
+ --validation-level Provider
+
+# Management Group scope
+az deployment mg what-if \
+ --location \
+ --management-group-id \
+ --template-file \
+ --parameters \
+ --validation-level Provider
+
+# Tenant scope
+az deployment tenant what-if \
+ --location \
+ --template-file \
+ --parameters \
+ --validation-level Provider
+```
+
+**Fallback Strategy:**
+
+If `--validation-level Provider` fails with permission errors (RBAC), retry with `ProviderNoRbac`:
+
+```bash
+az deployment group what-if \
+ --resource-group \
+ --template-file \
+ --validation-level ProviderNoRbac
+```
+
+Note the fallback in the report—the user may lack full deployment permissions.
+
+### Step 4: Capture What-If Results
+
+Parse the what-if output to categorize resource changes:
+
+| Change Type | Symbol | Meaning |
+|-------------|--------|---------|
+| Create | `+` | New resource will be created |
+| Delete | `-` | Resource will be deleted |
+| Modify | `~` | Resource properties will change |
+| NoChange | `=` | Resource unchanged |
+| Ignore | `*` | Resource not analyzed (limits reached) |
+| Deploy | `!` | Resource will be deployed (changes unknown) |
+
+For modified resources, capture the specific property changes.
+
+### Step 5: Generate Report
+
+Create a Markdown report file in the **project root** named:
+- `preflight-report.md`
+
+Use the template structure from [references/REPORT-TEMPLATE.md](references/REPORT-TEMPLATE.md).
+
+**Report sections:**
+1. **Summary** - Overall status, timestamp, files validated, target scope
+2. **Tools Executed** - Commands run, versions, validation levels used
+3. **Issues** - All errors and warnings with severity and remediation
+4. **What-If Results** - Resources to create/modify/delete/unchanged
+5. **Recommendations** - Actionable next steps
+
+## Required Information
+
+Before running validation, gather:
+
+| Information | Required For | How to Obtain |
+|-------------|--------------|---------------|
+| Resource Group | `az deployment group` | Ask user or check existing `.azure/` config |
+| Subscription | All deployments | `az account show` or ask user |
+| Location | Sub/MG/Tenant scope | Ask user or use default from config |
+| Environment | azd projects | `azd env list` or ask user |
+
+If required information is missing, prompt the user before proceeding.
+
+## Error Handling
+
+See [references/ERROR-HANDLING.md](references/ERROR-HANDLING.md) for detailed error handling guidance.
+
+**Key principle:** Continue validation even when errors occur. Capture all issues in the final report.
+
+| Error Type | Action |
+|------------|--------|
+| Not logged in | Note in report, suggest `az login` or `azd auth login` |
+| Permission denied | Fall back to `ProviderNoRbac`, note in report |
+| Bicep syntax error | Include all errors, continue to other files |
+| Tool not installed | Note in report, skip that validation step |
+| Resource group not found | Note in report, suggest creating it |
+
+## Tool Requirements
+
+This skill uses the following tools:
+
+- **Azure CLI** (`az`) - Version 2.76.0+ recommended for `--validation-level`
+- **Azure Developer CLI** (`azd`) - For projects with `azure.yaml`
+- **Bicep CLI** (`bicep`) - For syntax validation
+- **Azure MCP Tools** - For documentation lookups and best practices
+
+Check tool availability before starting:
+```bash
+az --version
+azd version
+bicep --version
+```
+
+## Example Workflow
+
+1. User: "Validate my Bicep deployment before I run it"
+2. Agent detects `azure.yaml` → azd project
+3. Agent finds `infra/main.bicep` and `infra/main.bicepparam`
+4. Agent runs `bicep build infra/main.bicep --stdout`
+5. Agent runs `azd provision --preview`
+6. Agent generates `preflight-report.md` in project root
+7. Agent summarizes findings to user
+
+## Reference Documentation
+
+- [Validation Commands Reference](references/VALIDATION-COMMANDS.md)
+- [Report Template](references/REPORT-TEMPLATE.md)
+- [Error Handling Guide](references/ERROR-HANDLING.md)
diff --git a/skills/azure-deployment-preflight/references/ERROR-HANDLING.md b/skills/azure-deployment-preflight/references/ERROR-HANDLING.md
new file mode 100644
index 00000000..cf0da71c
--- /dev/null
+++ b/skills/azure-deployment-preflight/references/ERROR-HANDLING.md
@@ -0,0 +1,392 @@
+# Error Handling Guide
+
+This reference documents common errors during preflight validation and how to handle them.
+
+## Core Principle
+
+**Continue on failure.** Capture all issues in the final report rather than stopping at the first error. This gives users a complete picture of what needs to be fixed.
+
+---
+
+## Authentication Errors
+
+### Not Logged In (Azure CLI)
+
+**Detection:**
+```
+ERROR: Please run 'az login' to setup account.
+ERROR: AADSTS700082: The refresh token has expired
+```
+
+**Exit Codes:** Non-zero
+
+**Handling:**
+1. Note the error in the report
+2. Include remediation steps
+3. Skip remaining Azure CLI commands
+4. Continue with other validation steps if possible
+
+**Report Entry:**
+```markdown
+#### ❌ Azure CLI Authentication Required
+
+- **Severity:** Error
+- **Source:** az cli
+- **Message:** Not logged in to Azure CLI
+- **Remediation:** Run `az login` to authenticate, then re-run preflight validation
+- **Documentation:** https://learn.microsoft.com/en-us/cli/azure/authenticate-azure-cli
+```
+
+### Not Logged In (azd)
+
+**Detection:**
+```
+ERROR: not logged in, run `azd auth login` to login
+```
+
+**Handling:**
+1. Note the error in the report
+2. Skip azd commands
+3. Suggest `azd auth login`
+
+**Report Entry:**
+```markdown
+#### ❌ Azure Developer CLI Authentication Required
+
+- **Severity:** Error
+- **Source:** azd
+- **Message:** Not logged in to Azure Developer CLI
+- **Remediation:** Run `azd auth login` to authenticate, then re-run preflight validation
+```
+
+### Token Expired
+
+**Detection:**
+```
+AADSTS700024: Client assertion is not within its valid time range
+AADSTS50173: The provided grant has expired
+```
+
+**Handling:**
+1. Note the error
+2. Suggest re-authentication
+3. Skip Azure operations
+
+---
+
+## Permission Errors
+
+### Insufficient RBAC Permissions
+
+**Detection:**
+```
+AuthorizationFailed: The client '...' with object id '...' does not have authorization
+to perform action '...' over scope '...'
+```
+
+**Handling:**
+1. **First attempt:** Retry with `--validation-level ProviderNoRbac`
+2. Note the permission limitation in the report
+3. If ProviderNoRbac also fails, report the specific missing permission
+
+**Report Entry:**
+```markdown
+#### ⚠️ Limited Permission Validation
+
+- **Severity:** Warning
+- **Source:** what-if
+- **Message:** Full RBAC validation failed; using read-only validation
+- **Detail:** Missing permission: `Microsoft.Resources/deployments/write` on scope `/subscriptions/xxx`
+- **Recommendation:** Request Contributor role on the target resource group, or verify deployment permissions with your administrator
+```
+
+### Resource Group Not Found
+
+**Detection:**
+```
+ResourceGroupNotFound: Resource group 'xxx' could not be found.
+```
+
+**Handling:**
+1. Note in report
+2. Suggest creating the resource group
+3. Skip what-if for this scope
+
+**Report Entry:**
+```markdown
+#### ❌ Resource Group Does Not Exist
+
+- **Severity:** Error
+- **Source:** what-if
+- **Message:** Resource group 'my-rg' does not exist
+- **Remediation:** Create the resource group before deployment:
+ ```bash
+ az group create --name my-rg --location eastus
+ ```
+```
+
+### Subscription Access Denied
+
+**Detection:**
+```
+SubscriptionNotFound: The subscription 'xxx' could not be found.
+InvalidSubscriptionId: Subscription '...' is not valid
+```
+
+**Handling:**
+1. Note in report
+2. Suggest checking subscription ID
+3. List available subscriptions
+
+---
+
+## Bicep Syntax Errors
+
+### Compilation Errors
+
+**Detection:**
+```
+/path/main.bicep(22,51) : Error BCP064: Found unexpected tokens
+/path/main.bicep(10,5) : Error BCP018: Expected the "=" character at this location
+```
+
+**Handling:**
+1. Parse error output for line/column numbers
+2. Include all errors in report (don't stop at first)
+3. Continue to what-if (may provide additional context)
+
+**Report Entry:**
+```markdown
+#### ❌ Bicep Syntax Error
+
+- **Severity:** Error
+- **Source:** bicep build
+- **Location:** `main.bicep:22:51`
+- **Code:** BCP064
+- **Message:** Found unexpected tokens in interpolated expression
+- **Remediation:** Check the string interpolation syntax at line 22
+- **Documentation:** https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/diagnostics/bcp064
+```
+
+### Module Not Found
+
+**Detection:**
+```
+Error BCP091: An error occurred reading file. Could not find file '...'
+Error BCP190: The module is not valid
+```
+
+**Handling:**
+1. Note missing module
+2. Check if `bicep restore` is needed
+3. Verify module path
+
+### Parameter File Issues
+
+**Detection:**
+```
+Error BCP032: The value must be a compile-time constant
+Error BCP035: The specified object is missing required properties
+```
+
+**Handling:**
+1. Note parameter issues
+2. Indicate which parameters are problematic
+3. Suggest fixes
+
+---
+
+## Tool Not Installed
+
+### Azure CLI Not Found
+
+**Detection:**
+```
+'az' is not recognized as an internal or external command
+az: command not found
+```
+
+**Handling:**
+1. Note in report
+2. Provide installation instructions.
+ - If available use the Azure MCP `extension_cli_install` tool to get installation instructions.
+ - Otherwise look for instructions at https://learn.microsoft.com/en-us/cli/azure/install-azure-cli.
+3. Skip az commands
+
+**Report Entry:**
+```markdown
+#### ⏭️ Azure CLI Not Installed
+
+- **Severity:** Warning
+- **Source:** environment
+- **Message:** Azure CLI (az) is not installed or not in PATH
+- **Remediation:** Install the Azure CLI
+- **Impact:** What-if validation using az commands was skipped
+```
+
+### Bicep CLI Not Found
+
+**Detection:**
+```
+'bicep' is not recognized as an internal or external command
+bicep: command not found
+```
+
+**Handling:**
+1. Note in report
+2. Azure CLI may have built-in Bicep - try `az bicep build`
+3. Provide installation link
+
+**Report Entry:**
+```markdown
+#### ⏭️ Bicep CLI Not Installed
+
+- **Severity:** Warning
+- **Source:** environment
+- **Message:** Bicep CLI is not installed
+- **Remediation:** Install Bicep CLI: https://learn.microsoft.com/en-us/azure/azure-resource-manager/bicep/install
+- **Impact:** Syntax validation was skipped; Azure will validate during what-if
+```
+
+### Azure Developer CLI Not Found
+
+**Detection:**
+```
+'azd' is not recognized as an internal or external command
+azd: command not found
+```
+
+**Handling:**
+1. If `azure.yaml` exists, this is required
+2. Fall back to az CLI commands if possible
+3. Note in report
+
+---
+
+## What-If Specific Errors
+
+### Nested Template Limits
+
+**Detection:**
+```
+The deployment exceeded the nested template limit of 500
+```
+
+**Handling:**
+1. Note as warning (not error)
+2. Explain affected resources show as "Ignore"
+3. Suggest manual review
+
+### Template Link Not Supported
+
+**Detection:**
+```
+templateLink references in nested deployments won't be visible in what-if
+```
+
+**Handling:**
+1. Note as warning
+2. Explain limitation
+3. Resources will be verified during actual deployment
+
+### Unevaluated Expressions
+
+**Detection:** Properties showing function names like `[utcNow()]` instead of values
+
+**Handling:**
+1. Note as informational
+2. Explain these are evaluated at deployment time
+3. Not an error
+
+---
+
+## Network Errors
+
+### Timeout
+
+**Detection:**
+```
+Connection timed out
+Request timed out
+```
+
+**Handling:**
+1. Suggest retry
+2. Check network connectivity
+3. May indicate Azure service issues
+
+### SSL/TLS Errors
+
+**Detection:**
+```
+SSL: CERTIFICATE_VERIFY_FAILED
+unable to get local issuer certificate
+```
+
+**Handling:**
+1. Note in report
+2. May indicate proxy or corporate firewall
+3. Suggest checking SSL settings
+
+---
+
+## Fallback Strategy
+
+When primary validation fails, attempt fallbacks in order:
+
+```
+Provider (full RBAC validation)
+ ↓ fails with permission error
+ProviderNoRbac (validation without write permission check)
+ ↓ fails
+Template (static syntax only)
+ ↓ fails
+Report all failures and skip what-if analysis
+```
+
+**Always continue to generate the report**, even if all validation steps fail.
+
+---
+
+## Error Report Aggregation
+
+When multiple errors occur, aggregate them logically:
+
+1. **Group by source** (bicep, what-if, permissions)
+2. **Order by severity** (errors before warnings)
+3. **Deduplicate** similar errors
+4. **Provide summary count** at the top
+
+Example:
+```markdown
+## Issues
+
+Found **3 errors** and **2 warnings**
+
+### Errors (3)
+
+1. [Bicep Syntax Error - main.bicep:22:51](#error-1)
+2. [Bicep Syntax Error - main.bicep:45:10](#error-2)
+3. [Resource Group Not Found](#error-3)
+
+### Warnings (2)
+
+1. [Limited Permission Validation](#warning-1)
+2. [Nested Template Limit Reached](#warning-2)
+```
+
+---
+
+## Exit Code Reference
+
+| Tool | Exit Code | Meaning |
+|------|-----------|---------|
+| az | 0 | Success |
+| az | 1 | General error |
+| az | 2 | Command not found |
+| az | 3 | Required argument missing |
+| azd | 0 | Success |
+| azd | 1 | Error |
+| bicep | 0 | Build succeeded |
+| bicep | 1 | Build failed (errors) |
+| bicep | 2 | Build succeeded with warnings |
diff --git a/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md b/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md
new file mode 100644
index 00000000..da60d068
--- /dev/null
+++ b/skills/azure-deployment-preflight/references/REPORT-TEMPLATE.md
@@ -0,0 +1,352 @@
+# Preflight Report Template
+
+Use this template structure when generating `preflight-report.md` in the project root.
+
+---
+
+## Template
+
+```markdown
+# Azure Deployment Preflight Report
+
+**Generated:** {timestamp}
+**Status:** {overall-status}
+
+---
+
+## Summary
+
+| Property | Value |
+|----------|-------|
+| **Template File(s)** | {bicep-files} |
+| **Parameter File(s)** | {param-files-or-none} |
+| **Project Type** | {azd-project | standalone-bicep} |
+| **Deployment Scope** | {resourceGroup | subscription | managementGroup | tenant} |
+| **Target** | {resource-group-name | subscription-name | mg-id} |
+| **Validation Level** | {Provider | ProviderNoRbac} |
+
+### Validation Results
+
+| Check | Status | Details |
+|-------|--------|---------|
+| Bicep Syntax | {✅ Pass | ❌ Fail | ⚠️ Warnings | ⏭️ Skipped} | {details} |
+| What-If Analysis | {✅ Pass | ❌ Fail | ⏭️ Skipped} | {details} |
+| Permission Check | {✅ Pass | ⚠️ Limited | ❌ Fail} | {details} |
+
+---
+
+## Tools Executed
+
+### Commands Run
+
+| Step | Command | Exit Code | Duration |
+|------|---------|-----------|----------|
+| 1 | `{command}` | {0 | non-zero} | {duration} |
+| 2 | `{command}` | {0 | non-zero} | {duration} |
+
+### Tool Versions
+
+| Tool | Version |
+|------|---------|
+| Azure CLI | {version} |
+| Bicep CLI | {version} |
+| Azure Developer CLI | {version-or-n/a} |
+
+---
+
+## Issues
+
+{if-no-issues}
+✅ **No issues found.** The deployment is ready to proceed.
+{end-if}
+
+{if-issues-exist}
+### Errors
+
+{for-each-error}
+#### ❌ {error-title}
+
+- **Severity:** Error
+- **Source:** {bicep-build | what-if | permissions}
+- **Location:** {file-path}:{line}:{column} (if applicable)
+- **Message:** {error-message}
+- **Remediation:** {suggested-fix}
+- **Documentation:** {link-if-available}
+
+{end-for-each}
+
+### Warnings
+
+{for-each-warning}
+#### ⚠️ {warning-title}
+
+- **Severity:** Warning
+- **Source:** {source}
+- **Message:** {warning-message}
+- **Recommendation:** {suggested-action}
+
+{end-for-each}
+{end-if}
+
+---
+
+## What-If Results
+
+{if-what-if-succeeded}
+
+### Change Summary
+
+| Change Type | Count |
+|-------------|-------|
+| 🆕 Create | {count} |
+| 📝 Modify | {count} |
+| 🗑️ Delete | {count} |
+| ✓ No Change | {count} |
+| ⚠️ Ignore | {count} |
+
+### Resources to Create
+
+{if-resources-to-create}
+| Resource Type | Resource Name |
+|---------------|---------------|
+| {type} | {name} |
+{end-if}
+
+{if-no-resources-to-create}
+*No resources will be created.*
+{end-if}
+
+### Resources to Modify
+
+{if-resources-to-modify}
+#### {resource-type}/{resource-name}
+
+| Property | Current Value | New Value |
+|----------|---------------|-----------|
+| {property-path} | {current} | {new} |
+
+{end-if}
+
+{if-no-resources-to-modify}
+*No resources will be modified.*
+{end-if}
+
+### Resources to Delete
+
+{if-resources-to-delete}
+| Resource Type | Resource Name |
+|---------------|---------------|
+| {type} | {name} |
+
+> ⚠️ **Warning:** Resources listed for deletion will be permanently removed.
+{end-if}
+
+{if-no-resources-to-delete}
+*No resources will be deleted.*
+{end-if}
+
+{end-if-what-if-succeeded}
+
+{if-what-if-failed}
+### What-If Analysis Failed
+
+The what-if operation could not complete. See the Issues section for details.
+{end-if}
+
+---
+
+## Recommendations
+
+{generate-based-on-findings}
+
+1. {recommendation-1}
+2. {recommendation-2}
+3. {recommendation-3}
+
+---
+
+## Next Steps
+
+{if-all-passed}
+The preflight validation passed. You can proceed with deployment:
+
+**For azd projects:**
+```bash
+azd provision
+# or
+azd up
+```
+
+**For standalone Bicep:**
+```bash
+az deployment group create \
+ --resource-group {rg-name} \
+ --template-file {bicep-file} \
+ --parameters {param-file}
+```
+{end-if}
+
+{if-issues-exist}
+Please resolve the issues listed above before deploying. After fixes:
+
+1. Re-run preflight validation to verify fixes
+2. Proceed with deployment once all checks pass
+{end-if}
+
+---
+
+*Report generated by Azure Deployment Preflight Skill*
+```
+
+---
+
+## Status Values
+
+### Overall Status
+
+| Status | Meaning | Visual |
+|--------|---------|--------|
+| **Pass** | All checks succeeded, safe to deploy | ✅ |
+| **Pass with Warnings** | Checks succeeded but review warnings | ⚠️ |
+| **Fail** | One or more checks failed | ❌ |
+
+### Individual Check Status
+
+| Status | Meaning |
+|--------|---------|
+| ✅ Pass | Check completed successfully |
+| ❌ Fail | Check found errors |
+| ⚠️ Warnings | Check passed with warnings |
+| ⏭️ Skipped | Check was skipped (tool unavailable, etc.) |
+
+---
+
+## Example Report
+
+```markdown
+# Azure Deployment Preflight Report
+
+**Generated:** 2026-01-16T14:32:00Z
+**Status:** ⚠️ Pass with Warnings
+
+---
+
+## Summary
+
+| Property | Value |
+|----------|-------|
+| **Template File(s)** | `infra/main.bicep` |
+| **Parameter File(s)** | `infra/main.bicepparam` |
+| **Project Type** | azd project |
+| **Deployment Scope** | subscription |
+| **Target** | my-subscription |
+| **Validation Level** | Provider |
+
+### Validation Results
+
+| Check | Status | Details |
+|-------|--------|---------|
+| Bicep Syntax | ✅ Pass | No errors found |
+| What-If Analysis | ⚠️ Warnings | 1 resource ignored due to nested template limits |
+| Permission Check | ✅ Pass | Full deployment permissions verified |
+
+---
+
+## Tools Executed
+
+### Commands Run
+
+| Step | Command | Exit Code | Duration |
+|------|---------|-----------|----------|
+| 1 | `bicep build infra/main.bicep --stdout` | 0 | 1.2s |
+| 2 | `azd provision --preview --environment dev` | 0 | 8.4s |
+
+### Tool Versions
+
+| Tool | Version |
+|------|---------|
+| Azure CLI | 2.76.0 |
+| Bicep CLI | 0.25.3 |
+| Azure Developer CLI | 1.9.0 |
+
+---
+
+## Issues
+
+### Warnings
+
+#### ⚠️ Nested Template Limit Reached
+
+- **Severity:** Warning
+- **Source:** what-if
+- **Message:** 1 resource was ignored because nested template expansion limits were reached
+- **Recommendation:** Review the ignored resource manually after deployment
+
+---
+
+## What-If Results
+
+### Change Summary
+
+| Change Type | Count |
+|-------------|-------|
+| 🆕 Create | 3 |
+| 📝 Modify | 1 |
+| 🗑️ Delete | 0 |
+| ✓ No Change | 2 |
+| ⚠️ Ignore | 1 |
+
+### Resources to Create
+
+| Resource Type | Resource Name |
+|---------------|---------------|
+| Microsoft.Resources/resourceGroups | rg-myapp-dev |
+| Microsoft.Storage/storageAccounts | stmyappdev |
+| Microsoft.Web/sites | app-myapp-dev |
+
+### Resources to Modify
+
+#### Microsoft.KeyVault/vaults/kv-myapp-dev
+
+| Property | Current Value | New Value |
+|----------|---------------|-----------|
+| properties.sku.name | standard | premium |
+| tags.environment | staging | dev |
+
+### Resources to Delete
+
+*No resources will be deleted.*
+
+---
+
+## Recommendations
+
+1. Review the storage account name `stmyappdev` to ensure it meets naming requirements
+2. Confirm the Key Vault SKU upgrade from standard to premium is intentional
+3. The ignored nested template resource should be verified after deployment
+
+---
+
+## Next Steps
+
+The preflight validation passed with warnings. Review the warnings above, then proceed:
+
+```bash
+azd provision --environment dev
+```
+
+---
+
+*Report generated by Azure Deployment Preflight Skill*
+```
+
+---
+
+## Formatting Guidelines
+
+1. **Use consistent emoji** for visual scanning
+2. **Include line numbers** when referencing Bicep errors
+3. **Provide actionable remediation** for each issue
+4. **Link to documentation** when available
+5. **Order issues by severity** (errors first, then warnings)
+6. **Include command examples** in Next Steps
diff --git a/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md b/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md
new file mode 100644
index 00000000..db869a6d
--- /dev/null
+++ b/skills/azure-deployment-preflight/references/VALIDATION-COMMANDS.md
@@ -0,0 +1,379 @@
+# Validation Commands Reference
+
+This reference documents all commands used for Azure deployment preflight validation.
+
+## Azure Developer CLI (azd)
+
+### azd provision --preview
+
+Preview infrastructure changes for azd projects without deploying.
+
+```bash
+azd provision --preview [options]
+```
+
+**Options:**
+| Option | Description |
+|--------|-------------|
+| `--environment`, `-e` | Name of the environment to use |
+| `--no-prompt` | Accept defaults without prompting |
+| `--debug` | Enable debug logging |
+| `--cwd` | Set working directory |
+
+**Examples:**
+
+```bash
+# Preview with default environment
+azd provision --preview
+
+# Preview specific environment
+azd provision --preview --environment dev
+
+# Preview without prompts (CI/CD)
+azd provision --preview --no-prompt
+```
+
+**Output:** Shows resources that will be created, modified, or deleted.
+
+### azd auth login
+
+Authenticate to Azure for azd operations.
+
+```bash
+azd auth login [options]
+```
+
+**Options:**
+| Option | Description |
+|--------|-------------|
+| `--check-status` | Check login status without logging in |
+| `--use-device-code` | Use device code flow |
+| `--tenant-id` | Specify tenant |
+| `--client-id` | Service principal client ID |
+
+### azd env list
+
+List available environments.
+
+```bash
+azd env list
+```
+
+---
+
+## Azure CLI (az)
+
+### az deployment group what-if
+
+Preview changes for resource group deployments.
+
+```bash
+az deployment group what-if \
+ --resource-group \
+ --template-file \
+ [options]
+```
+
+**Required Parameters:**
+| Parameter | Description |
+|-----------|-------------|
+| `--resource-group`, `-g` | Target resource group name |
+| `--template-file`, `-f` | Path to Bicep file |
+
+**Optional Parameters:**
+| Parameter | Description |
+|-----------|-------------|
+| `--parameters`, `-p` | Parameter file or inline values |
+| `--validation-level` | `Provider` (default), `ProviderNoRbac`, or `Template` |
+| `--result-format` | `FullResourcePayloads` (default) or `ResourceIdOnly` |
+| `--no-pretty-print` | Output raw JSON for parsing |
+| `--name`, `-n` | Deployment name |
+| `--exclude-change-types` | Exclude specific change types from output |
+
+**Validation Levels:**
+| Level | Description | Use Case |
+|-------|-------------|----------|
+| `Provider` | Full validation with RBAC checks | Default, most thorough |
+| `ProviderNoRbac` | Full validation, read permissions only | When lacking deploy permissions |
+| `Template` | Static syntax validation only | Quick syntax check |
+
+**Examples:**
+
+```bash
+# Basic what-if
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep
+
+# With parameters and full validation
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --parameters main.bicepparam \
+ --validation-level Provider
+
+# Fallback without RBAC checks
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --validation-level ProviderNoRbac
+
+# JSON output for parsing
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --no-pretty-print
+```
+
+### az deployment sub what-if
+
+Preview changes for subscription-level deployments.
+
+```bash
+az deployment sub what-if \
+ --location \
+ --template-file \
+ [options]
+```
+
+**Required Parameters:**
+| Parameter | Description |
+|-----------|-------------|
+| `--location`, `-l` | Location for deployment metadata |
+| `--template-file`, `-f` | Path to Bicep file |
+
+**Examples:**
+
+```bash
+az deployment sub what-if \
+ --location eastus \
+ --template-file main.bicep \
+ --parameters main.bicepparam \
+ --validation-level Provider
+```
+
+### az deployment mg what-if
+
+Preview changes for management group deployments.
+
+```bash
+az deployment mg what-if \
+ --location \
+ --management-group-id \
+ --template-file \
+ [options]
+```
+
+**Required Parameters:**
+| Parameter | Description |
+|-----------|-------------|
+| `--location`, `-l` | Location for deployment metadata |
+| `--management-group-id`, `-m` | Target management group ID |
+| `--template-file`, `-f` | Path to Bicep file |
+
+### az deployment tenant what-if
+
+Preview changes for tenant-level deployments.
+
+```bash
+az deployment tenant what-if \
+ --location \
+ --template-file \
+ [options]
+```
+
+**Required Parameters:**
+| Parameter | Description |
+|-----------|-------------|
+| `--location`, `-l` | Location for deployment metadata |
+| `--template-file`, `-f` | Path to Bicep file |
+
+### az login
+
+Authenticate to Azure CLI.
+
+```bash
+az login [options]
+```
+
+**Options:**
+| Option | Description |
+|--------|-------------|
+| `--tenant`, `-t` | Tenant ID or domain |
+| `--use-device-code` | Use device code flow |
+| `--service-principal` | Login as service principal |
+
+### az account show
+
+Display current subscription context.
+
+```bash
+az account show
+```
+
+### az group exists
+
+Check if resource group exists.
+
+```bash
+az group exists --name
+```
+
+---
+
+## Bicep CLI
+
+### bicep build
+
+Compile Bicep to ARM JSON and validate syntax.
+
+```bash
+bicep build [options]
+```
+
+**Options:**
+| Option | Description |
+|--------|-------------|
+| `--stdout` | Output to stdout instead of file |
+| `--outdir` | Output directory |
+| `--outfile` | Output file path |
+| `--no-restore` | Skip module restore |
+
+**Examples:**
+
+```bash
+# Validate syntax (output to stdout, no file created)
+bicep build main.bicep --stdout > /dev/null
+
+# Build to specific directory
+bicep build main.bicep --outdir ./build
+
+# Validate multiple files
+for f in *.bicep; do bicep build "$f" --stdout; done
+```
+
+**Error Output Format:**
+```
+/path/to/file.bicep(22,51) : Error BCP064: Found unexpected tokens in interpolated expression.
+/path/to/file.bicep(22,51) : Error BCP004: The string at this location is not terminated.
+```
+
+Format: `(,) : : `
+
+### bicep --version
+
+Check Bicep CLI version.
+
+```bash
+bicep --version
+```
+
+---
+
+## Parameter File Detection
+
+### Bicep Parameters (.bicepparam)
+
+Modern Bicep parameter files (recommended):
+
+```bicep
+using './main.bicep'
+
+param location = 'eastus'
+param environment = 'dev'
+param tags = {
+ environment: 'dev'
+ project: 'myapp'
+}
+```
+
+**Detection pattern:** `.bicepparam`
+
+### JSON Parameters (.parameters.json)
+
+Traditional ARM parameter files:
+
+```json
+{
+ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
+ "contentVersion": "1.0.0.0",
+ "parameters": {
+ "location": { "value": "eastus" },
+ "environment": { "value": "dev" }
+ }
+}
+```
+
+**Detection patterns:**
+- `.parameters.json`
+- `parameters.json`
+- `parameters/.json`
+
+### Using Parameters with Commands
+
+```bash
+# Bicep parameters file
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --parameters main.bicepparam
+
+# JSON parameters file
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --parameters @parameters.json
+
+# Inline parameter overrides
+az deployment group what-if \
+ --resource-group my-rg \
+ --template-file main.bicep \
+ --parameters main.bicepparam \
+ --parameters location=westus
+```
+
+---
+
+## Determining Deployment Scope
+
+Check the Bicep file's `targetScope` declaration:
+
+```bicep
+// Resource Group (default if not specified)
+targetScope = 'resourceGroup'
+
+// Subscription
+targetScope = 'subscription'
+
+// Management Group
+targetScope = 'managementGroup'
+
+// Tenant
+targetScope = 'tenant'
+```
+
+**Scope to Command Mapping:**
+
+| targetScope | Command | Required Parameters |
+|-------------|---------|---------------------|
+| `resourceGroup` | `az deployment group what-if` | `--resource-group` |
+| `subscription` | `az deployment sub what-if` | `--location` |
+| `managementGroup` | `az deployment mg what-if` | `--location`, `--management-group-id` |
+| `tenant` | `az deployment tenant what-if` | `--location` |
+
+---
+
+## Version Requirements
+
+| Tool | Minimum Version | Recommended Version | Key Features |
+|------|-----------------|---------------------|--------------|
+| Azure CLI | 2.14.0 | 2.76.0+ | `--validation-level` switch |
+| Azure Developer CLI | 1.0.0 | Latest | `--preview` flag |
+| Bicep CLI | 0.4.0 | Latest | Best error messages |
+
+**Check versions:**
+```bash
+az --version
+azd version
+bicep --version
+```
From 66b0bfb9cc2d26fd8b431cc9ec9cf7fdcbfda299 Mon Sep 17 00:00:00 2001
From: Aaron Powell
Date: Thu, 22 Jan 2026 15:51:40 +1100
Subject: [PATCH 24/24] Adding copilot-sdk stuff
---
README.md | 1 +
collections/copilot-sdk.collection.yml | 17 +
collections/copilot-sdk.md | 17 +
docs/README.collections.md | 1 +
docs/README.instructions.md | 4 +
.../copilot-sdk-csharp.instructions.md | 550 ++++++++++++
instructions/copilot-sdk-go.instructions.md | 626 ++++++++++++++
.../copilot-sdk-nodejs.instructions.md | 717 ++++++++++++++++
.../copilot-sdk-python.instructions.md | 806 ++++++++++++++++++
9 files changed, 2739 insertions(+)
create mode 100644 collections/copilot-sdk.collection.yml
create mode 100644 collections/copilot-sdk.md
create mode 100644 instructions/copilot-sdk-csharp.instructions.md
create mode 100644 instructions/copilot-sdk-go.instructions.md
create mode 100644 instructions/copilot-sdk-nodejs.instructions.md
create mode 100644 instructions/copilot-sdk-python.instructions.md
diff --git a/README.md b/README.md
index 461734f5..935f833a 100644
--- a/README.md
+++ b/README.md
@@ -21,6 +21,7 @@ Discover our curated collections of prompts, instructions, and agents organized
| Name | Description | Items | Tags |
| ---- | ----------- | ----- | ---- |
| [Awesome Copilot](collections/awesome-copilot.md) | Meta prompts that help you discover and generate curated GitHub Copilot chat modes, collections, instructions, prompts, and agents. | 6 items | github-copilot, discovery, meta, prompt-engineering, agents |
+| [Copilot SDK](collections/copilot-sdk.md) | Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications. | 4 items | copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot |
| [Partners](collections/partners.md) | Custom agents that have been created by GitHub partners | 20 items | devops, security, database, cloud, infrastructure, observability, feature-flags, cicd, migration, performance |
diff --git a/collections/copilot-sdk.collection.yml b/collections/copilot-sdk.collection.yml
new file mode 100644
index 00000000..1f1b534a
--- /dev/null
+++ b/collections/copilot-sdk.collection.yml
@@ -0,0 +1,17 @@
+id: copilot-sdk
+name: Copilot SDK
+description: Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications.
+tags: [copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot]
+items:
+ - path: instructions/copilot-sdk-csharp.instructions.md
+ kind: instruction
+ - path: instructions/copilot-sdk-go.instructions.md
+ kind: instruction
+ - path: instructions/copilot-sdk-nodejs.instructions.md
+ kind: instruction
+ - path: instructions/copilot-sdk-python.instructions.md
+ kind: instruction
+display:
+ ordering: manual
+ show_badge: true
+ featured: true
diff --git a/collections/copilot-sdk.md b/collections/copilot-sdk.md
new file mode 100644
index 00000000..c5fa1fac
--- /dev/null
+++ b/collections/copilot-sdk.md
@@ -0,0 +1,17 @@
+# Copilot SDK
+
+Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications.
+
+**Tags:** copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot
+
+## Items in this Collection
+
+| Title | Type | Description |
+| ----- | ---- | ----------- |
+| [GitHub Copilot SDK C# Instructions](../instructions/copilot-sdk-csharp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-csharp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-csharp.instructions.md) | Instruction | This file provides guidance on building C# applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Go Instructions](../instructions/copilot-sdk-go.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-go.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-go.instructions.md) | Instruction | This file provides guidance on building Go applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Node.js Instructions](../instructions/copilot-sdk-nodejs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-nodejs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-nodejs.instructions.md) | Instruction | This file provides guidance on building Node.js/TypeScript applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Python Instructions](../instructions/copilot-sdk-python.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-python.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-python.instructions.md) | Instruction | This file provides guidance on building Python applications using GitHub Copilot SDK. |
+
+---
+*This collection includes 4 curated items for **Copilot SDK**.*
\ No newline at end of file
diff --git a/docs/README.collections.md b/docs/README.collections.md
index 02f29460..9785b4ab 100644
--- a/docs/README.collections.md
+++ b/docs/README.collections.md
@@ -17,6 +17,7 @@ Curated collections of related prompts, instructions, and agents organized aroun
| Name | Description | Items | Tags |
| ---- | ----------- | ----- | ---- |
| [⭐ Awesome Copilot](../collections/awesome-copilot.md) | Meta prompts that help you discover and generate curated GitHub Copilot chat modes, collections, instructions, prompts, and agents. | 6 items | github-copilot, discovery, meta, prompt-engineering, agents |
+| [⭐ Copilot SDK](../collections/copilot-sdk.md) | Build applications with the GitHub Copilot SDK across multiple programming languages. Includes comprehensive instructions for C#, Go, Node.js/TypeScript, and Python to help you create AI-powered applications. | 4 items | copilot-sdk, sdk, csharp, go, nodejs, typescript, python, ai, github-copilot |
| [⭐ Partners](../collections/partners.md) | Custom agents that have been created by GitHub partners | 20 items | devops, security, database, cloud, infrastructure, observability, feature-flags, cicd, migration, performance |
| [Azure & Cloud Development](../collections/azure-cloud-development.md) | Comprehensive Azure cloud development tools including Infrastructure as Code, serverless functions, architecture patterns, and cost optimization for building scalable cloud applications. | 18 items | azure, cloud, infrastructure, bicep, terraform, serverless, architecture, devops |
| [C# .NET Development](../collections/csharp-dotnet-development.md) | Essential prompts, instructions, and chat modes for C# and .NET development including testing, documentation, and best practices. | 8 items | csharp, dotnet, aspnet, testing |
diff --git a/docs/README.instructions.md b/docs/README.instructions.md
index 4574b3d5..ab17703c 100644
--- a/docs/README.instructions.md
+++ b/docs/README.instructions.md
@@ -82,6 +82,10 @@ Team and project-specific instructions to enhance GitHub Copilot's behavior for
| [Get Tooling for Power Apps Component Framework](../instructions/pcf-tooling.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-tooling.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fpcf-tooling.instructions.md) | Get Microsoft Power Platform CLI tooling for Power Apps Component Framework |
| [Gilfoyle Code Review Instructions](../instructions/gilfoyle-code-review.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgilfoyle-code-review.instructions.md) | Gilfoyle-style code review instructions that channel the sardonic technical supremacy of Silicon Valley's most arrogant systems architect. |
| [GitHub Actions CI/CD Best Practices](../instructions/github-actions-ci-cd-best-practices.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgithub-actions-ci-cd-best-practices.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgithub-actions-ci-cd-best-practices.instructions.md) | Comprehensive guide for building robust, secure, and efficient CI/CD pipelines using GitHub Actions. Covers workflow structure, jobs, steps, environment variables, secret management, caching, matrix strategies, testing, and deployment strategies. |
+| [GitHub Copilot SDK C# Instructions](../instructions/copilot-sdk-csharp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-csharp.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-csharp.instructions.md) | This file provides guidance on building C# applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Go Instructions](../instructions/copilot-sdk-go.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-go.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-go.instructions.md) | This file provides guidance on building Go applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Node.js Instructions](../instructions/copilot-sdk-nodejs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-nodejs.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-nodejs.instructions.md) | This file provides guidance on building Node.js/TypeScript applications using GitHub Copilot SDK. |
+| [GitHub Copilot SDK Python Instructions](../instructions/copilot-sdk-python.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-python.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fcopilot-sdk-python.instructions.md) | This file provides guidance on building Python applications using GitHub Copilot SDK. |
| [Go Development Instructions](../instructions/go.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo.instructions.md) | Instructions for writing Go code following idiomatic Go practices and community standards |
| [Go MCP Server Development Guidelines](../instructions/go-mcp-server.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Fgo-mcp-server.instructions.md) | Best practices and patterns for building Model Context Protocol (MCP) servers in Go using the official github.com/modelcontextprotocol/go-sdk package. |
| [Guidance for Localization](../instructions/localization.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md)
[](https://aka.ms/awesome-copilot/install/instructions?url=vscode-insiders%3Achat-instructions%2Finstall%3Furl%3Dhttps%3A%2F%2Fraw.githubusercontent.com%2Fgithub%2Fawesome-copilot%2Fmain%2Finstructions%2Flocalization.instructions.md) | Guidelines for localizing markdown documents |
diff --git a/instructions/copilot-sdk-csharp.instructions.md b/instructions/copilot-sdk-csharp.instructions.md
new file mode 100644
index 00000000..87d04b82
--- /dev/null
+++ b/instructions/copilot-sdk-csharp.instructions.md
@@ -0,0 +1,550 @@
+---
+applyTo: '**.cs, **.csproj'
+description: 'This file provides guidance on building C# applications using GitHub Copilot SDK.'
+name: 'GitHub Copilot SDK C# Instructions'
+---
+
+## Core Principles
+
+- The SDK is in technical preview and may have breaking changes
+- Requires .NET 10.0 or later
+- Requires GitHub Copilot CLI installed and in PATH
+- Uses async/await patterns throughout
+- Implements IAsyncDisposable for resource cleanup
+
+## Installation
+
+Always install via NuGet:
+```bash
+dotnet add package GitHub.Copilot.SDK
+```
+
+## Client Initialization
+
+### Basic Client Setup
+
+```csharp
+await using var client = new CopilotClient();
+await client.StartAsync();
+```
+
+### Client Configuration Options
+
+When creating a CopilotClient, use `CopilotClientOptions`:
+
+- `CliPath` - Path to CLI executable (default: "copilot" from PATH)
+- `CliArgs` - Extra arguments prepended before SDK-managed flags
+- `CliUrl` - URL of existing CLI server (e.g., "localhost:8080"). When provided, client won't spawn a process
+- `Port` - Server port (default: 0 for random)
+- `UseStdio` - Use stdio transport instead of TCP (default: true)
+- `LogLevel` - Log level (default: "info")
+- `AutoStart` - Auto-start server (default: true)
+- `AutoRestart` - Auto-restart on crash (default: true)
+- `Cwd` - Working directory for the CLI process
+- `Environment` - Environment variables for the CLI process
+- `Logger` - ILogger instance for SDK logging
+
+### Manual Server Control
+
+For explicit control:
+```csharp
+var client = new CopilotClient(new CopilotClientOptions { AutoStart = false });
+await client.StartAsync();
+// Use client...
+await client.StopAsync();
+```
+
+Use `ForceStopAsync()` when `StopAsync()` takes too long.
+
+## Session Management
+
+### Creating Sessions
+
+Use `SessionConfig` for configuration:
+
+```csharp
+await using var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5",
+ Streaming = true,
+ Tools = [...],
+ SystemMessage = new SystemMessageConfig { ... },
+ AvailableTools = ["tool1", "tool2"],
+ ExcludedTools = ["tool3"],
+ Provider = new ProviderConfig { ... }
+});
+```
+
+### Session Config Options
+
+- `SessionId` - Custom session ID
+- `Model` - Model name ("gpt-5", "claude-sonnet-4.5", etc.)
+- `Tools` - Custom tools exposed to the CLI
+- `SystemMessage` - System message customization
+- `AvailableTools` - Allowlist of tool names
+- `ExcludedTools` - Blocklist of tool names
+- `Provider` - Custom API provider configuration (BYOK)
+- `Streaming` - Enable streaming response chunks (default: false)
+
+### Resuming Sessions
+
+```csharp
+var session = await client.ResumeSessionAsync(sessionId, new ResumeSessionConfig { ... });
+```
+
+### Session Operations
+
+- `session.SessionId` - Get session identifier
+- `session.SendAsync(new MessageOptions { Prompt = "...", Attachments = [...] })` - Send message
+- `session.AbortAsync()` - Abort current processing
+- `session.GetMessagesAsync()` - Get all events/messages
+- `await session.DisposeAsync()` - Clean up resources
+
+## Event Handling
+
+### Event Subscription Pattern
+
+ALWAYS use TaskCompletionSource for waiting on session events:
+
+```csharp
+var done = new TaskCompletionSource();
+
+session.On(evt =>
+{
+ if (evt is AssistantMessageEvent msg)
+ {
+ Console.WriteLine(msg.Data.Content);
+ }
+ else if (evt is SessionIdleEvent)
+ {
+ done.SetResult();
+ }
+});
+
+await session.SendAsync(new MessageOptions { Prompt = "..." });
+await done.Task;
+```
+
+### Unsubscribing from Events
+
+The `On()` method returns an IDisposable:
+
+```csharp
+var subscription = session.On(evt => { /* handler */ });
+// Later...
+subscription.Dispose();
+```
+
+### Event Types
+
+Use pattern matching or switch expressions for event handling:
+
+```csharp
+session.On(evt =>
+{
+ switch (evt)
+ {
+ case UserMessageEvent userMsg:
+ // Handle user message
+ break;
+ case AssistantMessageEvent assistantMsg:
+ Console.WriteLine(assistantMsg.Data.Content);
+ break;
+ case ToolExecutionStartEvent toolStart:
+ // Tool execution started
+ break;
+ case ToolExecutionCompleteEvent toolComplete:
+ // Tool execution completed
+ break;
+ case SessionStartEvent start:
+ // Session started
+ break;
+ case SessionIdleEvent idle:
+ // Session is idle (processing complete)
+ break;
+ case SessionErrorEvent error:
+ Console.WriteLine($"Error: {error.Data.Message}");
+ break;
+ }
+});
+```
+
+## Streaming Responses
+
+### Enabling Streaming
+
+Set `Streaming = true` in SessionConfig:
+
+```csharp
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5",
+ Streaming = true
+});
+```
+
+### Handling Streaming Events
+
+Handle both delta events (incremental) and final events:
+
+```csharp
+var done = new TaskCompletionSource();
+
+session.On(evt =>
+{
+ switch (evt)
+ {
+ case AssistantMessageDeltaEvent delta:
+ // Incremental text chunk
+ Console.Write(delta.Data.DeltaContent);
+ break;
+ case AssistantReasoningDeltaEvent reasoningDelta:
+ // Incremental reasoning chunk (model-dependent)
+ Console.Write(reasoningDelta.Data.DeltaContent);
+ break;
+ case AssistantMessageEvent msg:
+ // Final complete message
+ Console.WriteLine("\n--- Final ---");
+ Console.WriteLine(msg.Data.Content);
+ break;
+ case AssistantReasoningEvent reasoning:
+ // Final reasoning content
+ Console.WriteLine("--- Reasoning ---");
+ Console.WriteLine(reasoning.Data.Content);
+ break;
+ case SessionIdleEvent:
+ done.SetResult();
+ break;
+ }
+});
+
+await session.SendAsync(new MessageOptions { Prompt = "Tell me a story" });
+await done.Task;
+```
+
+Note: Final events (`AssistantMessageEvent`, `AssistantReasoningEvent`) are ALWAYS sent regardless of streaming setting.
+
+## Custom Tools
+
+### Defining Tools with AIFunctionFactory
+
+Use `Microsoft.Extensions.AI.AIFunctionFactory.Create` for type-safe tools:
+
+```csharp
+using Microsoft.Extensions.AI;
+using System.ComponentModel;
+
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5",
+ Tools = [
+ AIFunctionFactory.Create(
+ async ([Description("Issue ID")] string id) => {
+ var issue = await FetchIssueAsync(id);
+ return issue;
+ },
+ "lookup_issue",
+ "Fetch issue details from tracker"),
+ ]
+});
+```
+
+### Tool Return Types
+
+- Return any JSON-serializable value (automatically wrapped)
+- Or return `ToolResultAIContent` wrapping `ToolResultObject` for full control over metadata
+
+### Tool Execution Flow
+
+When Copilot invokes a tool, the client automatically:
+1. Runs your handler function
+2. Serializes the return value
+3. Responds to the CLI
+
+## System Message Customization
+
+### Append Mode (Default - Preserves Guardrails)
+
+```csharp
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5",
+ SystemMessage = new SystemMessageConfig
+ {
+ Mode = SystemMessageMode.Append,
+ Content = @"
+
+- Always check for security vulnerabilities
+- Suggest performance improvements when applicable
+
+"
+ }
+});
+```
+
+### Replace Mode (Full Control - Removes Guardrails)
+
+```csharp
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5",
+ SystemMessage = new SystemMessageConfig
+ {
+ Mode = SystemMessageMode.Replace,
+ Content = "You are a helpful assistant."
+ }
+});
+```
+
+## File Attachments
+
+Attach files to messages using `UserMessageDataAttachmentsItem`:
+
+```csharp
+await session.SendAsync(new MessageOptions
+{
+ Prompt = "Analyze this file",
+ Attachments = new List
+ {
+ new UserMessageDataAttachmentsItem
+ {
+ Type = UserMessageDataAttachmentsItemType.File,
+ Path = "/path/to/file.cs",
+ DisplayName = "My File"
+ }
+ }
+});
+```
+
+## Message Delivery Modes
+
+Use the `Mode` property in `MessageOptions`:
+
+- `"enqueue"` - Queue message for processing
+- `"immediate"` - Process message immediately
+
+```csharp
+await session.SendAsync(new MessageOptions
+{
+ Prompt = "...",
+ Mode = "enqueue"
+});
+```
+
+## Multiple Sessions
+
+Sessions are independent and can run concurrently:
+
+```csharp
+var session1 = await client.CreateSessionAsync(new SessionConfig { Model = "gpt-5" });
+var session2 = await client.CreateSessionAsync(new SessionConfig { Model = "claude-sonnet-4.5" });
+
+await session1.SendAsync(new MessageOptions { Prompt = "Hello from session 1" });
+await session2.SendAsync(new MessageOptions { Prompt = "Hello from session 2" });
+```
+
+## Bring Your Own Key (BYOK)
+
+Use custom API providers via `ProviderConfig`:
+
+```csharp
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Provider = new ProviderConfig
+ {
+ Type = "openai",
+ BaseUrl = "https://api.openai.com/v1",
+ ApiKey = "your-api-key"
+ }
+});
+```
+
+## Session Lifecycle Management
+
+### Listing Sessions
+
+```csharp
+var sessions = await client.ListSessionsAsync();
+foreach (var metadata in sessions)
+{
+ Console.WriteLine($"Session: {metadata.SessionId}");
+}
+```
+
+### Deleting Sessions
+
+```csharp
+await client.DeleteSessionAsync(sessionId);
+```
+
+### Checking Connection State
+
+```csharp
+var state = client.State;
+```
+
+## Error Handling
+
+### Standard Exception Handling
+
+```csharp
+try
+{
+ var session = await client.CreateSessionAsync();
+ await session.SendAsync(new MessageOptions { Prompt = "Hello" });
+}
+catch (StreamJsonRpc.RemoteInvocationException ex)
+{
+ Console.Error.WriteLine($"JSON-RPC Error: {ex.Message}");
+}
+catch (Exception ex)
+{
+ Console.Error.WriteLine($"Error: {ex.Message}");
+}
+```
+
+### Session Error Events
+
+Monitor `SessionErrorEvent` for runtime errors:
+
+```csharp
+session.On(evt =>
+{
+ if (evt is SessionErrorEvent error)
+ {
+ Console.Error.WriteLine($"Session Error: {error.Data.Message}");
+ }
+});
+```
+
+## Connectivity Testing
+
+Use PingAsync to verify server connectivity:
+
+```csharp
+var response = await client.PingAsync("test message");
+```
+
+## Resource Cleanup
+
+### Automatic Cleanup with Using
+
+ALWAYS use `await using` for automatic disposal:
+
+```csharp
+await using var client = new CopilotClient();
+await using var session = await client.CreateSessionAsync();
+// Resources automatically cleaned up
+```
+
+### Manual Cleanup
+
+If not using `await using`:
+
+```csharp
+var client = new CopilotClient();
+try
+{
+ await client.StartAsync();
+ // Use client...
+}
+finally
+{
+ await client.StopAsync();
+}
+```
+
+## Best Practices
+
+1. **Always use `await using`** for CopilotClient and CopilotSession
+2. **Use TaskCompletionSource** to wait for SessionIdleEvent
+3. **Handle SessionErrorEvent** for robust error handling
+4. **Use pattern matching** (switch expressions) for event handling
+5. **Enable streaming** for better UX in interactive scenarios
+6. **Use AIFunctionFactory** for type-safe tool definitions
+7. **Dispose event subscriptions** when no longer needed
+8. **Use SystemMessageMode.Append** to preserve safety guardrails
+9. **Provide descriptive tool names and descriptions** for better model understanding
+10. **Handle both delta and final events** when streaming is enabled
+
+## Common Patterns
+
+### Simple Query-Response
+
+```csharp
+await using var client = new CopilotClient();
+await client.StartAsync();
+
+await using var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Model = "gpt-5"
+});
+
+var done = new TaskCompletionSource();
+
+session.On(evt =>
+{
+ if (evt is AssistantMessageEvent msg)
+ {
+ Console.WriteLine(msg.Data.Content);
+ }
+ else if (evt is SessionIdleEvent)
+ {
+ done.SetResult();
+ }
+});
+
+await session.SendAsync(new MessageOptions { Prompt = "What is 2+2?" });
+await done.Task;
+```
+
+### Multi-Turn Conversation
+
+```csharp
+await using var session = await client.CreateSessionAsync();
+
+async Task SendAndWait(string prompt)
+{
+ var done = new TaskCompletionSource();
+ var subscription = session.On(evt =>
+ {
+ if (evt is AssistantMessageEvent msg)
+ {
+ Console.WriteLine(msg.Data.Content);
+ }
+ else if (evt is SessionIdleEvent)
+ {
+ done.SetResult();
+ }
+ });
+
+ await session.SendAsync(new MessageOptions { Prompt = prompt });
+ await done.Task;
+ subscription.Dispose();
+}
+
+await SendAndWait("What is the capital of France?");
+await SendAndWait("What is its population?");
+```
+
+### Tool with Complex Return Type
+
+```csharp
+var session = await client.CreateSessionAsync(new SessionConfig
+{
+ Tools = [
+ AIFunctionFactory.Create(
+ ([Description("User ID")] string userId) => {
+ return new {
+ Id = userId,
+ Name = "John Doe",
+ Email = "john@example.com",
+ Role = "Developer"
+ };
+ },
+ "get_user",
+ "Retrieve user information")
+ ]
+});
+```
+
diff --git a/instructions/copilot-sdk-go.instructions.md b/instructions/copilot-sdk-go.instructions.md
new file mode 100644
index 00000000..b8741721
--- /dev/null
+++ b/instructions/copilot-sdk-go.instructions.md
@@ -0,0 +1,626 @@
+---
+applyTo: "**.go, go.mod"
+description: "This file provides guidance on building Go applications using GitHub Copilot SDK."
+name: "GitHub Copilot SDK Go Instructions"
+---
+
+## Core Principles
+
+- The SDK is in technical preview and may have breaking changes
+- Requires Go 1.21 or later
+- Requires GitHub Copilot CLI installed and in PATH
+- Uses goroutines and channels for concurrent operations
+- No external dependencies beyond the standard library
+
+## Installation
+
+Always install via Go modules:
+
+```bash
+go get github.com/github/copilot-sdk/go
+```
+
+## Client Initialization
+
+### Basic Client Setup
+
+```go
+import "github.com/github/copilot-sdk/go"
+
+client := copilot.NewClient(nil)
+if err := client.Start(); err != nil {
+ log.Fatal(err)
+}
+defer client.Stop()
+```
+
+### Client Configuration Options
+
+When creating a CopilotClient, use `ClientOptions`:
+
+- `CLIPath` - Path to CLI executable (default: "copilot" from PATH)
+- `CLIUrl` - URL of existing CLI server (e.g., "localhost:8080"). When provided, client won't spawn a process
+- `Port` - Server port (default: 0 for random)
+- `UseStdio` - Use stdio transport instead of TCP (default: true)
+- `LogLevel` - Log level (default: "info")
+- `AutoStart` - Auto-start server (default: true, use pointer: `boolPtr(true)`)
+- `AutoRestart` - Auto-restart on crash (default: true, use pointer: `boolPtr(true)`)
+- `Cwd` - Working directory for the CLI process
+- `Env` - Environment variables for the CLI process ([]string)
+
+### Manual Server Control
+
+For explicit control:
+
+```go
+autoStart := false
+client := copilot.NewClient(&copilot.ClientOptions{AutoStart: &autoStart})
+if err := client.Start(); err != nil {
+ log.Fatal(err)
+}
+// Use client...
+client.Stop()
+```
+
+Use `ForceStop()` when `Stop()` takes too long.
+
+## Session Management
+
+### Creating Sessions
+
+Use `SessionConfig` for configuration:
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Model: "gpt-5",
+ Streaming: true,
+ Tools: []copilot.Tool{...},
+ SystemMessage: &copilot.SystemMessageConfig{ ... },
+ AvailableTools: []string{"tool1", "tool2"},
+ ExcludedTools: []string{"tool3"},
+ Provider: &copilot.ProviderConfig{ ... },
+})
+if err != nil {
+ log.Fatal(err)
+}
+```
+
+### Session Config Options
+
+- `SessionID` - Custom session ID
+- `Model` - Model name ("gpt-5", "claude-sonnet-4.5", etc.)
+- `Tools` - Custom tools exposed to the CLI ([]Tool)
+- `SystemMessage` - System message customization (\*SystemMessageConfig)
+- `AvailableTools` - Allowlist of tool names ([]string)
+- `ExcludedTools` - Blocklist of tool names ([]string)
+- `Provider` - Custom API provider configuration (BYOK) (\*ProviderConfig)
+- `Streaming` - Enable streaming response chunks (bool)
+- `MCPServers` - MCP server configurations
+- `CustomAgents` - Custom agent configurations
+- `ConfigDir` - Config directory override
+- `SkillDirectories` - Skill directories ([]string)
+- `DisabledSkills` - Disabled skills ([]string)
+
+### Resuming Sessions
+
+```go
+session, err := client.ResumeSession("session-id")
+// Or with options:
+session, err := client.ResumeSessionWithOptions("session-id", &copilot.ResumeSessionConfig{ ... })
+```
+
+### Session Operations
+
+- `session.SessionID` - Get session identifier (string)
+- `session.Send(copilot.MessageOptions{Prompt: "...", Attachments: []copilot.Attachment{...}})` - Send message, returns (messageID string, error)
+- `session.SendAndWait(options, timeout)` - Send and wait for idle, returns (\*SessionEvent, error)
+- `session.Abort()` - Abort current processing, returns error
+- `session.GetMessages()` - Get all events/messages, returns ([]SessionEvent, error)
+- `session.Destroy()` - Clean up session, returns error
+
+## Event Handling
+
+### Event Subscription Pattern
+
+ALWAYS use channels or done signals for waiting on session events:
+
+```go
+done := make(chan struct{})
+
+unsubscribe := session.On(func(evt copilot.SessionEvent) {
+ switch evt.Type {
+ case copilot.AssistantMessage:
+ fmt.Println(*evt.Data.Content)
+ case copilot.SessionIdle:
+ close(done)
+ }
+})
+defer unsubscribe()
+
+session.Send(copilot.MessageOptions{Prompt: "..."})
+<-done
+```
+
+### Unsubscribing from Events
+
+The `On()` method returns a function that unsubscribes:
+
+```go
+unsubscribe := session.On(func(evt copilot.SessionEvent) {
+ // handler
+})
+// Later...
+unsubscribe()
+```
+
+### Event Types
+
+Use type switches for event handling:
+
+```go
+session.On(func(evt copilot.SessionEvent) {
+ switch evt.Type {
+ case copilot.UserMessage:
+ // Handle user message
+ case copilot.AssistantMessage:
+ if evt.Data.Content != nil {
+ fmt.Println(*evt.Data.Content)
+ }
+ case copilot.ToolExecutionStart:
+ // Tool execution started
+ case copilot.ToolExecutionComplete:
+ // Tool execution completed
+ case copilot.SessionStart:
+ // Session started
+ case copilot.SessionIdle:
+ // Session is idle (processing complete)
+ case copilot.SessionError:
+ if evt.Data.Message != nil {
+ fmt.Println("Error:", *evt.Data.Message)
+ }
+ }
+})
+```
+
+## Streaming Responses
+
+### Enabling Streaming
+
+Set `Streaming: true` in SessionConfig:
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Model: "gpt-5",
+ Streaming: true,
+})
+```
+
+### Handling Streaming Events
+
+Handle both delta events (incremental) and final events:
+
+```go
+done := make(chan struct{})
+
+session.On(func(evt copilot.SessionEvent) {
+ switch evt.Type {
+ case copilot.AssistantMessageDelta:
+ // Incremental text chunk
+ if evt.Data.DeltaContent != nil {
+ fmt.Print(*evt.Data.DeltaContent)
+ }
+ case copilot.AssistantReasoningDelta:
+ // Incremental reasoning chunk (model-dependent)
+ if evt.Data.DeltaContent != nil {
+ fmt.Print(*evt.Data.DeltaContent)
+ }
+ case copilot.AssistantMessage:
+ // Final complete message
+ fmt.Println("\n--- Final ---")
+ if evt.Data.Content != nil {
+ fmt.Println(*evt.Data.Content)
+ }
+ case copilot.AssistantReasoning:
+ // Final reasoning content
+ fmt.Println("--- Reasoning ---")
+ if evt.Data.Content != nil {
+ fmt.Println(*evt.Data.Content)
+ }
+ case copilot.SessionIdle:
+ close(done)
+ }
+})
+
+session.Send(copilot.MessageOptions{Prompt: "Tell me a story"})
+<-done
+```
+
+Note: Final events (`AssistantMessage`, `AssistantReasoning`) are ALWAYS sent regardless of streaming setting.
+
+## Custom Tools
+
+### Defining Tools
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Model: "gpt-5",
+ Tools: []copilot.Tool{
+ {
+ Name: "lookup_issue",
+ Description: "Fetch issue details from tracker",
+ Parameters: map[string]interface{}{
+ "type": "object",
+ "properties": map[string]interface{}{
+ "id": map[string]interface{}{
+ "type": "string",
+ "description": "Issue ID",
+ },
+ },
+ "required": []string{"id"},
+ },
+ Handler: func(inv copilot.ToolInvocation) (copilot.ToolResult, error) {
+ args := inv.Arguments.(map[string]interface{})
+ issueID := args["id"].(string)
+
+ issue, err := fetchIssue(issueID)
+ if err != nil {
+ return copilot.ToolResult{}, err
+ }
+
+ return copilot.ToolResult{
+ TextResultForLLM: fmt.Sprintf("Issue: %v", issue),
+ ResultType: "success",
+ ToolTelemetry: map[string]interface{}{},
+ }, nil
+ },
+ },
+ },
+})
+```
+
+### Tool Return Types
+
+- Return `ToolResult` struct with fields:
+ - `TextResultForLLM` (string) - Result text for the LLM
+ - `ResultType` (string) - "success" or "failure"
+ - `Error` (string, optional) - Internal error message (not shown to LLM)
+ - `ToolTelemetry` (map[string]interface{}) - Telemetry data
+
+### Tool Execution Flow
+
+When Copilot invokes a tool, the client automatically:
+
+1. Runs your handler function
+2. Returns the ToolResult
+3. Responds to the CLI
+
+## System Message Customization
+
+### Append Mode (Default - Preserves Guardrails)
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Model: "gpt-5",
+ SystemMessage: &copilot.SystemMessageConfig{
+ Mode: "append",
+ Content: `
+
+- Always check for security vulnerabilities
+- Suggest performance improvements when applicable
+
+`,
+ },
+})
+```
+
+### Replace Mode (Full Control - Removes Guardrails)
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Model: "gpt-5",
+ SystemMessage: &copilot.SystemMessageConfig{
+ Mode: "replace",
+ Content: "You are a helpful assistant.",
+ },
+})
+```
+
+## File Attachments
+
+Attach files to messages using `Attachment`:
+
+```go
+messageID, err := session.Send(copilot.MessageOptions{
+ Prompt: "Analyze this file",
+ Attachments: []copilot.Attachment{
+ {
+ Type: "file",
+ Path: "/path/to/file.go",
+ DisplayName: "My File",
+ },
+ },
+})
+```
+
+## Message Delivery Modes
+
+Use the `Mode` field in `MessageOptions`:
+
+- `"enqueue"` - Queue message for processing
+- `"immediate"` - Process message immediately
+
+```go
+session.Send(copilot.MessageOptions{
+ Prompt: "...",
+ Mode: "enqueue",
+})
+```
+
+## Multiple Sessions
+
+Sessions are independent and can run concurrently:
+
+```go
+session1, _ := client.CreateSession(&copilot.SessionConfig{Model: "gpt-5"})
+session2, _ := client.CreateSession(&copilot.SessionConfig{Model: "claude-sonnet-4.5"})
+
+session1.Send(copilot.MessageOptions{Prompt: "Hello from session 1"})
+session2.Send(copilot.MessageOptions{Prompt: "Hello from session 2"})
+```
+
+## Bring Your Own Key (BYOK)
+
+Use custom API providers via `ProviderConfig`:
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{
+ Provider: &copilot.ProviderConfig{
+ Type: "openai",
+ BaseURL: "https://api.openai.com/v1",
+ APIKey: "your-api-key",
+ },
+})
+```
+
+## Session Lifecycle Management
+
+### Checking Connection State
+
+```go
+state := client.GetState()
+// Returns: "disconnected", "connecting", "connected", or "error"
+```
+
+## Error Handling
+
+### Standard Exception Handling
+
+```go
+session, err := client.CreateSession(&copilot.SessionConfig{})
+if err != nil {
+ log.Fatalf("Failed to create session: %v", err)
+}
+
+_, err = session.Send(copilot.MessageOptions{Prompt: "Hello"})
+if err != nil {
+ log.Printf("Failed to send: %v", err)
+}
+```
+
+### Session Error Events
+
+Monitor `SessionError` type for runtime errors:
+
+```go
+session.On(func(evt copilot.SessionEvent) {
+ if evt.Type == copilot.SessionError {
+ if evt.Data.Message != nil {
+ fmt.Fprintf(os.Stderr, "Session Error: %s\n", *evt.Data.Message)
+ }
+ }
+})
+```
+
+## Connectivity Testing
+
+Use Ping to verify server connectivity:
+
+```go
+resp, err := client.Ping("test message")
+if err != nil {
+ log.Printf("Server unreachable: %v", err)
+} else {
+ log.Printf("Server responded at %d", resp.Timestamp)
+}
+```
+
+## Resource Cleanup
+
+### Cleanup with Defer
+
+ALWAYS use `defer` for cleanup:
+
+```go
+client := copilot.NewClient(nil)
+if err := client.Start(); err != nil {
+ log.Fatal(err)
+}
+defer client.Stop()
+
+session, err := client.CreateSession(nil)
+if err != nil {
+ log.Fatal(err)
+}
+defer session.Destroy()
+```
+
+### Manual Cleanup
+
+If not using defer:
+
+```go
+client := copilot.NewClient(nil)
+err := client.Start()
+if err != nil {
+ log.Fatal(err)
+}
+
+session, err := client.CreateSession(nil)
+if err != nil {
+ client.Stop()
+ log.Fatal(err)
+}
+
+// Use session...
+
+session.Destroy()
+errors := client.Stop()
+for _, err := range errors {
+ log.Printf("Cleanup error: %v", err)
+}
+```
+
+## Best Practices
+
+1. **Always use `defer`** for cleanup of clients and sessions
+2. **Use channels** to wait for SessionIdle event
+3. **Handle SessionError** events for robust error handling
+4. **Use type switches** for event handling
+5. **Enable streaming** for better UX in interactive scenarios
+6. **Provide descriptive tool names and descriptions** for better model understanding
+7. **Call unsubscribe functions** when no longer needed
+8. **Use SystemMessageConfig with Mode: "append"** to preserve safety guardrails
+9. **Handle both delta and final events** when streaming is enabled
+10. **Check nil pointers** in event data (Content, Message, etc. are pointers)
+
+## Common Patterns
+
+### Simple Query-Response
+
+```go
+client := copilot.NewClient(nil)
+if err := client.Start(); err != nil {
+ log.Fatal(err)
+}
+defer client.Stop()
+
+session, err := client.CreateSession(&copilot.SessionConfig{Model: "gpt-5"})
+if err != nil {
+ log.Fatal(err)
+}
+defer session.Destroy()
+
+done := make(chan struct{})
+
+session.On(func(evt copilot.SessionEvent) {
+ if evt.Type == copilot.AssistantMessage && evt.Data.Content != nil {
+ fmt.Println(*evt.Data.Content)
+ } else if evt.Type == copilot.SessionIdle {
+ close(done)
+ }
+})
+
+session.Send(copilot.MessageOptions{Prompt: "What is 2+2?"})
+<-done
+```
+
+### Multi-Turn Conversation
+
+```go
+session, _ := client.CreateSession(nil)
+defer session.Destroy()
+
+sendAndWait := func(prompt string) error {
+ done := make(chan struct{})
+ var eventErr error
+
+ unsubscribe := session.On(func(evt copilot.SessionEvent) {
+ switch evt.Type {
+ case copilot.AssistantMessage:
+ if evt.Data.Content != nil {
+ fmt.Println(*evt.Data.Content)
+ }
+ case copilot.SessionIdle:
+ close(done)
+ case copilot.SessionError:
+ if evt.Data.Message != nil {
+ eventErr = fmt.Errorf(*evt.Data.Message)
+ }
+ }
+ })
+ defer unsubscribe()
+
+ if _, err := session.Send(copilot.MessageOptions{Prompt: prompt}); err != nil {
+ return err
+ }
+ <-done
+ return eventErr
+}
+
+sendAndWait("What is the capital of France?")
+sendAndWait("What is its population?")
+```
+
+### SendAndWait Helper
+
+```go
+// Use built-in SendAndWait for simpler synchronous interaction
+response, err := session.SendAndWait(copilot.MessageOptions{
+ Prompt: "What is 2+2?",
+}, 0) // 0 uses default 60s timeout
+
+if err != nil {
+ log.Printf("Error: %v", err)
+}
+if response != nil && response.Data.Content != nil {
+ fmt.Println(*response.Data.Content)
+}
+```
+
+### Tool with Struct Return Type
+
+```go
+type UserInfo struct {
+ ID string `json:"id"`
+ Name string `json:"name"`
+ Email string `json:"email"`
+ Role string `json:"role"`
+}
+
+session, _ := client.CreateSession(&copilot.SessionConfig{
+ Tools: []copilot.Tool{
+ {
+ Name: "get_user",
+ Description: "Retrieve user information",
+ Parameters: map[string]interface{}{
+ "type": "object",
+ "properties": map[string]interface{}{
+ "user_id": map[string]interface{}{
+ "type": "string",
+ "description": "User ID",
+ },
+ },
+ "required": []string{"user_id"},
+ },
+ Handler: func(inv copilot.ToolInvocation) (copilot.ToolResult, error) {
+ args := inv.Arguments.(map[string]interface{})
+ userID := args["user_id"].(string)
+
+ user := UserInfo{
+ ID: userID,
+ Name: "John Doe",
+ Email: "john@example.com",
+ Role: "Developer",
+ }
+
+ jsonBytes, _ := json.Marshal(user)
+ return copilot.ToolResult{
+ TextResultForLLM: string(jsonBytes),
+ ResultType: "success",
+ ToolTelemetry: map[string]interface{}{},
+ }, nil
+ },
+ },
+ },
+})
+```
diff --git a/instructions/copilot-sdk-nodejs.instructions.md b/instructions/copilot-sdk-nodejs.instructions.md
new file mode 100644
index 00000000..78c6f2b2
--- /dev/null
+++ b/instructions/copilot-sdk-nodejs.instructions.md
@@ -0,0 +1,717 @@
+---
+applyTo: "**.ts, **.js, package.json"
+description: "This file provides guidance on building Node.js/TypeScript applications using GitHub Copilot SDK."
+name: "GitHub Copilot SDK Node.js Instructions"
+---
+
+## Core Principles
+
+- The SDK is in technical preview and may have breaking changes
+- Requires Node.js 18.0 or later
+- Requires GitHub Copilot CLI installed and in PATH
+- Built with TypeScript for type safety
+- Uses async/await patterns throughout
+- Provides full TypeScript type definitions
+
+## Installation
+
+Always install via npm/pnpm/yarn:
+
+```bash
+npm install @github/copilot-sdk
+# or
+pnpm add @github/copilot-sdk
+# or
+yarn add @github/copilot-sdk
+```
+
+## Client Initialization
+
+### Basic Client Setup
+
+```typescript
+import { CopilotClient } from "@github/copilot-sdk";
+
+const client = new CopilotClient();
+await client.start();
+// Use client...
+await client.stop();
+```
+
+### Client Configuration Options
+
+When creating a CopilotClient, use `CopilotClientOptions`:
+
+- `cliPath` - Path to CLI executable (default: "copilot" from PATH)
+- `cliArgs` - Extra arguments prepended before SDK-managed flags (string[])
+- `cliUrl` - URL of existing CLI server (e.g., "localhost:8080"). When provided, client won't spawn a process
+- `port` - Server port (default: 0 for random)
+- `useStdio` - Use stdio transport instead of TCP (default: true)
+- `logLevel` - Log level (default: "debug")
+- `autoStart` - Auto-start server (default: true)
+- `autoRestart` - Auto-restart on crash (default: true)
+- `cwd` - Working directory for the CLI process (default: process.cwd())
+- `env` - Environment variables for the CLI process (default: process.env)
+
+### Manual Server Control
+
+For explicit control:
+
+```typescript
+const client = new CopilotClient({ autoStart: false });
+await client.start();
+// Use client...
+await client.stop();
+```
+
+Use `forceStop()` when `stop()` takes too long.
+
+## Session Management
+
+### Creating Sessions
+
+Use `SessionConfig` for configuration:
+
+```typescript
+const session = await client.createSession({
+ model: "gpt-5",
+ streaming: true,
+ tools: [...],
+ systemMessage: { ... },
+ availableTools: ["tool1", "tool2"],
+ excludedTools: ["tool3"],
+ provider: { ... }
+});
+```
+
+### Session Config Options
+
+- `sessionId` - Custom session ID (string)
+- `model` - Model name ("gpt-5", "claude-sonnet-4.5", etc.)
+- `tools` - Custom tools exposed to the CLI (Tool[])
+- `systemMessage` - System message customization (SystemMessageConfig)
+- `availableTools` - Allowlist of tool names (string[])
+- `excludedTools` - Blocklist of tool names (string[])
+- `provider` - Custom API provider configuration (BYOK) (ProviderConfig)
+- `streaming` - Enable streaming response chunks (boolean)
+- `mcpServers` - MCP server configurations (MCPServerConfig[])
+- `customAgents` - Custom agent configurations (CustomAgentConfig[])
+- `configDir` - Config directory override (string)
+- `skillDirectories` - Skill directories (string[])
+- `disabledSkills` - Disabled skills (string[])
+- `onPermissionRequest` - Permission request handler (PermissionHandler)
+
+### Resuming Sessions
+
+```typescript
+const session = await client.resumeSession("session-id", {
+ tools: [myNewTool],
+});
+```
+
+### Session Operations
+
+- `session.sessionId` - Get session identifier (string)
+- `await session.send({ prompt: "...", attachments: [...] })` - Send message, returns Promise
+- `await session.sendAndWait({ prompt: "..." }, timeout)` - Send and wait for idle, returns Promise
+- `await session.abort()` - Abort current processing
+- `await session.getMessages()` - Get all events/messages, returns Promise
+- `await session.destroy()` - Clean up session
+
+## Event Handling
+
+### Event Subscription Pattern
+
+ALWAYS use async/await or Promises for waiting on session events:
+
+```typescript
+await new Promise((resolve) => {
+ session.on((event) => {
+ if (event.type === "assistant.message") {
+ console.log(event.data.content);
+ } else if (event.type === "session.idle") {
+ resolve();
+ }
+ });
+
+ session.send({ prompt: "..." });
+});
+```
+
+### Unsubscribing from Events
+
+The `on()` method returns a function that unsubscribes:
+
+```typescript
+const unsubscribe = session.on((event) => {
+ // handler
+});
+// Later...
+unsubscribe();
+```
+
+### Event Types
+
+Use discriminated unions with type guards for event handling:
+
+```typescript
+session.on((event) => {
+ switch (event.type) {
+ case "user.message":
+ // Handle user message
+ break;
+ case "assistant.message":
+ console.log(event.data.content);
+ break;
+ case "tool.executionStart":
+ // Tool execution started
+ break;
+ case "tool.executionComplete":
+ // Tool execution completed
+ break;
+ case "session.start":
+ // Session started
+ break;
+ case "session.idle":
+ // Session is idle (processing complete)
+ break;
+ case "session.error":
+ console.error(`Error: ${event.data.message}`);
+ break;
+ }
+});
+```
+
+## Streaming Responses
+
+### Enabling Streaming
+
+Set `streaming: true` in SessionConfig:
+
+```typescript
+const session = await client.createSession({
+ model: "gpt-5",
+ streaming: true,
+});
+```
+
+### Handling Streaming Events
+
+Handle both delta events (incremental) and final events:
+
+```typescript
+await new Promise((resolve) => {
+ session.on((event) => {
+ switch (event.type) {
+ case "assistant.message.delta":
+ // Incremental text chunk
+ process.stdout.write(event.data.deltaContent);
+ break;
+ case "assistant.reasoning.delta":
+ // Incremental reasoning chunk (model-dependent)
+ process.stdout.write(event.data.deltaContent);
+ break;
+ case "assistant.message":
+ // Final complete message
+ console.log("\n--- Final ---");
+ console.log(event.data.content);
+ break;
+ case "assistant.reasoning":
+ // Final reasoning content
+ console.log("--- Reasoning ---");
+ console.log(event.data.content);
+ break;
+ case "session.idle":
+ resolve();
+ break;
+ }
+ });
+
+ session.send({ prompt: "Tell me a story" });
+});
+```
+
+Note: Final events (`assistant.message`, `assistant.reasoning`) are ALWAYS sent regardless of streaming setting.
+
+## Custom Tools
+
+### Defining Tools with defineTool
+
+Use `defineTool` for type-safe tool definitions:
+
+```typescript
+import { defineTool } from "@github/copilot-sdk";
+
+const session = await client.createSession({
+ model: "gpt-5",
+ tools: [
+ defineTool({
+ name: "lookup_issue",
+ description: "Fetch issue details from tracker",
+ parameters: {
+ type: "object",
+ properties: {
+ id: { type: "string", description: "Issue ID" },
+ },
+ required: ["id"],
+ },
+ handler: async (args) => {
+ const issue = await fetchIssue(args.id);
+ return issue;
+ },
+ }),
+ ],
+});
+```
+
+### Using Zod for Parameters
+
+The SDK supports Zod schemas for parameters:
+
+```typescript
+import { z } from "zod";
+
+const session = await client.createSession({
+ tools: [
+ defineTool({
+ name: "get_weather",
+ description: "Get weather for a location",
+ parameters: z.object({
+ location: z.string().describe("City name"),
+ units: z.enum(["celsius", "fahrenheit"]).optional(),
+ }),
+ handler: async (args) => {
+ return { temperature: 72, units: args.units || "fahrenheit" };
+ },
+ }),
+ ],
+});
+```
+
+### Tool Return Types
+
+- Return any JSON-serializable value (automatically wrapped)
+- Or return `ToolResultObject` for full control over metadata:
+
+```typescript
+{
+ textResultForLlm: string; // Result shown to LLM
+ resultType: "success" | "failure";
+ error?: string; // Internal error (not shown to LLM)
+ toolTelemetry?: Record;
+}
+```
+
+### Tool Execution Flow
+
+When Copilot invokes a tool, the client automatically:
+
+1. Runs your handler function
+2. Serializes the return value
+3. Responds to the CLI
+
+## System Message Customization
+
+### Append Mode (Default - Preserves Guardrails)
+
+```typescript
+const session = await client.createSession({
+ model: "gpt-5",
+ systemMessage: {
+ mode: "append",
+ content: `
+
+- Always check for security vulnerabilities
+- Suggest performance improvements when applicable
+
+`,
+ },
+});
+```
+
+### Replace Mode (Full Control - Removes Guardrails)
+
+```typescript
+const session = await client.createSession({
+ model: "gpt-5",
+ systemMessage: {
+ mode: "replace",
+ content: "You are a helpful assistant.",
+ },
+});
+```
+
+## File Attachments
+
+Attach files to messages:
+
+```typescript
+await session.send({
+ prompt: "Analyze this file",
+ attachments: [
+ {
+ type: "file",
+ path: "/path/to/file.ts",
+ displayName: "My File",
+ },
+ ],
+});
+```
+
+## Message Delivery Modes
+
+Use the `mode` property in message options:
+
+- `"enqueue"` - Queue message for processing
+- `"immediate"` - Process message immediately
+
+```typescript
+await session.send({
+ prompt: "...",
+ mode: "enqueue",
+});
+```
+
+## Multiple Sessions
+
+Sessions are independent and can run concurrently:
+
+```typescript
+const session1 = await client.createSession({ model: "gpt-5" });
+const session2 = await client.createSession({ model: "claude-sonnet-4.5" });
+
+await Promise.all([
+ session1.send({ prompt: "Hello from session 1" }),
+ session2.send({ prompt: "Hello from session 2" }),
+]);
+```
+
+## Bring Your Own Key (BYOK)
+
+Use custom API providers via `provider`:
+
+```typescript
+const session = await client.createSession({
+ provider: {
+ type: "openai",
+ baseUrl: "https://api.openai.com/v1",
+ apiKey: "your-api-key",
+ },
+});
+```
+
+## Session Lifecycle Management
+
+### Listing Sessions
+
+```typescript
+const sessions = await client.listSessions();
+for (const metadata of sessions) {
+ console.log(`${metadata.sessionId}: ${metadata.summary}`);
+}
+```
+
+### Deleting Sessions
+
+```typescript
+await client.deleteSession(sessionId);
+```
+
+### Getting Last Session ID
+
+```typescript
+const lastId = await client.getLastSessionId();
+if (lastId) {
+ const session = await client.resumeSession(lastId);
+}
+```
+
+### Checking Connection State
+
+```typescript
+const state = client.getState();
+// Returns: "disconnected" | "connecting" | "connected" | "error"
+```
+
+## Error Handling
+
+### Standard Exception Handling
+
+```typescript
+try {
+ const session = await client.createSession();
+ await session.send({ prompt: "Hello" });
+} catch (error) {
+ console.error(`Error: ${error.message}`);
+}
+```
+
+### Session Error Events
+
+Monitor `session.error` event type for runtime errors:
+
+```typescript
+session.on((event) => {
+ if (event.type === "session.error") {
+ console.error(`Session Error: ${event.data.message}`);
+ }
+});
+```
+
+## Connectivity Testing
+
+Use ping to verify server connectivity:
+
+```typescript
+const response = await client.ping("health check");
+console.log(`Server responded at ${new Date(response.timestamp)}`);
+```
+
+## Resource Cleanup
+
+### Automatic Cleanup with Try-Finally
+
+ALWAYS use try-finally or cleanup in a finally block:
+
+```typescript
+const client = new CopilotClient();
+try {
+ await client.start();
+ const session = await client.createSession();
+ try {
+ // Use session...
+ } finally {
+ await session.destroy();
+ }
+} finally {
+ await client.stop();
+}
+```
+
+### Cleanup Function Pattern
+
+```typescript
+async function withClient(
+ fn: (client: CopilotClient) => Promise,
+): Promise {
+ const client = new CopilotClient();
+ try {
+ await client.start();
+ return await fn(client);
+ } finally {
+ await client.stop();
+ }
+}
+
+async function withSession(
+ client: CopilotClient,
+ fn: (session: CopilotSession) => Promise,
+): Promise {
+ const session = await client.createSession();
+ try {
+ return await fn(session);
+ } finally {
+ await session.destroy();
+ }
+}
+
+// Usage
+await withClient(async (client) => {
+ await withSession(client, async (session) => {
+ await session.send({ prompt: "Hello!" });
+ });
+});
+```
+
+## Best Practices
+
+1. **Always use try-finally** for resource cleanup
+2. **Use Promises** to wait for session.idle event
+3. **Handle session.error** events for robust error handling
+4. **Use type guards or switch statements** for event handling
+5. **Enable streaming** for better UX in interactive scenarios
+6. **Use defineTool** for type-safe tool definitions
+7. **Use Zod schemas** for runtime parameter validation
+8. **Dispose event subscriptions** when no longer needed
+9. **Use systemMessage with mode: "append"** to preserve safety guardrails
+10. **Handle both delta and final events** when streaming is enabled
+11. **Leverage TypeScript types** for compile-time safety
+
+## Common Patterns
+
+### Simple Query-Response
+
+```typescript
+import { CopilotClient } from "@github/copilot-sdk";
+
+const client = new CopilotClient();
+try {
+ await client.start();
+
+ const session = await client.createSession({ model: "gpt-5" });
+ try {
+ await new Promise((resolve) => {
+ session.on((event) => {
+ if (event.type === "assistant.message") {
+ console.log(event.data.content);
+ } else if (event.type === "session.idle") {
+ resolve();
+ }
+ });
+
+ session.send({ prompt: "What is 2+2?" });
+ });
+ } finally {
+ await session.destroy();
+ }
+} finally {
+ await client.stop();
+}
+```
+
+### Multi-Turn Conversation
+
+```typescript
+const session = await client.createSession();
+
+async function sendAndWait(prompt: string): Promise {
+ await new Promise((resolve, reject) => {
+ const unsubscribe = session.on((event) => {
+ if (event.type === "assistant.message") {
+ console.log(event.data.content);
+ } else if (event.type === "session.idle") {
+ unsubscribe();
+ resolve();
+ } else if (event.type === "session.error") {
+ unsubscribe();
+ reject(new Error(event.data.message));
+ }
+ });
+
+ session.send({ prompt });
+ });
+}
+
+await sendAndWait("What is the capital of France?");
+await sendAndWait("What is its population?");
+```
+
+### SendAndWait Helper
+
+```typescript
+// Use built-in sendAndWait for simpler synchronous interaction
+const response = await session.sendAndWait({ prompt: "What is 2+2?" }, 60000);
+
+if (response) {
+ console.log(response.data.content);
+}
+```
+
+### Tool with Type-Safe Parameters
+
+```typescript
+import { z } from "zod";
+import { defineTool } from "@github/copilot-sdk";
+
+interface UserInfo {
+ id: string;
+ name: string;
+ email: string;
+ role: string;
+}
+
+const session = await client.createSession({
+ tools: [
+ defineTool({
+ name: "get_user",
+ description: "Retrieve user information",
+ parameters: z.object({
+ userId: z.string().describe("User ID"),
+ }),
+ handler: async (args): Promise => {
+ return {
+ id: args.userId,
+ name: "John Doe",
+ email: "john@example.com",
+ role: "Developer",
+ };
+ },
+ }),
+ ],
+});
+```
+
+### Streaming with Progress
+
+```typescript
+let currentMessage = "";
+
+const unsubscribe = session.on((event) => {
+ if (event.type === "assistant.message.delta") {
+ currentMessage += event.data.deltaContent;
+ process.stdout.write(event.data.deltaContent);
+ } else if (event.type === "assistant.message") {
+ console.log("\n\n=== Complete ===");
+ console.log(`Total length: ${event.data.content.length} chars`);
+ } else if (event.type === "session.idle") {
+ unsubscribe();
+ }
+});
+
+await session.send({ prompt: "Write a long story" });
+```
+
+### Error Recovery
+
+```typescript
+session.on((event) => {
+ if (event.type === "session.error") {
+ console.error("Session error:", event.data.message);
+ // Optionally retry or handle error
+ }
+});
+
+try {
+ await session.send({ prompt: "risky operation" });
+} catch (error) {
+ // Handle send errors
+ console.error("Failed to send:", error);
+}
+```
+
+## TypeScript-Specific Features
+
+### Type Inference
+
+```typescript
+import type { SessionEvent, AssistantMessageEvent } from "@github/copilot-sdk";
+
+session.on((event: SessionEvent) => {
+ if (event.type === "assistant.message") {
+ // TypeScript knows event is AssistantMessageEvent here
+ const content: string = event.data.content;
+ }
+});
+```
+
+### Generic Helper
+
+```typescript
+async function waitForEvent(
+ session: CopilotSession,
+ eventType: T,
+): Promise> {
+ return new Promise((resolve) => {
+ const unsubscribe = session.on((event) => {
+ if (event.type === eventType) {
+ unsubscribe();
+ resolve(event as Extract);
+ }
+ });
+ });
+}
+
+// Usage
+const message = await waitForEvent(session, "assistant.message");
+console.log(message.data.content);
+```
diff --git a/instructions/copilot-sdk-python.instructions.md b/instructions/copilot-sdk-python.instructions.md
new file mode 100644
index 00000000..e4b08e02
--- /dev/null
+++ b/instructions/copilot-sdk-python.instructions.md
@@ -0,0 +1,806 @@
+---
+applyTo: "**.py, pyproject.toml, setup.py"
+description: "This file provides guidance on building Python applications using GitHub Copilot SDK."
+name: "GitHub Copilot SDK Python Instructions"
+---
+
+## Core Principles
+
+- The SDK is in technical preview and may have breaking changes
+- Requires Python 3.9 or later
+- Requires GitHub Copilot CLI installed and in PATH
+- Uses async/await patterns throughout (asyncio)
+- Supports both async context managers and manual lifecycle management
+- Type hints provided for better IDE support
+
+## Installation
+
+Always install via pip:
+
+```bash
+pip install copilot-sdk
+# or with poetry
+poetry add copilot-sdk
+# or with uv
+uv add copilot-sdk
+```
+
+## Client Initialization
+
+### Basic Client Setup
+
+```python
+from copilot import CopilotClient
+
+async with CopilotClient() as client:
+ # Use client...
+ pass
+```
+
+### Client Configuration Options
+
+When creating a CopilotClient, use a dict with these keys:
+
+- `cli_path` - Path to CLI executable (default: "copilot" from PATH or COPILOT_CLI_PATH env var)
+- `cli_url` - URL of existing CLI server (e.g., "localhost:8080"). When provided, client won't spawn a process
+- `port` - Server port (default: 0 for random)
+- `use_stdio` - Use stdio transport instead of TCP (default: True)
+- `log_level` - Log level (default: "info")
+- `auto_start` - Auto-start server (default: True)
+- `auto_restart` - Auto-restart on crash (default: True)
+- `cwd` - Working directory for the CLI process (default: os.getcwd())
+- `env` - Environment variables for the CLI process (dict)
+
+### Manual Server Control
+
+For explicit control:
+
+```python
+client = CopilotClient({"auto_start": False})
+await client.start()
+# Use client...
+await client.stop()
+```
+
+Use `force_stop()` when `stop()` takes too long.
+
+## Session Management
+
+### Creating Sessions
+
+Use a dict for SessionConfig:
+
+```python
+session = await client.create_session({
+ "model": "gpt-5",
+ "streaming": True,
+ "tools": [...],
+ "system_message": { ... },
+ "available_tools": ["tool1", "tool2"],
+ "excluded_tools": ["tool3"],
+ "provider": { ... }
+})
+```
+
+### Session Config Options
+
+- `session_id` - Custom session ID (str)
+- `model` - Model name ("gpt-5", "claude-sonnet-4.5", etc.)
+- `tools` - Custom tools exposed to the CLI (list[Tool])
+- `system_message` - System message customization (dict)
+- `available_tools` - Allowlist of tool names (list[str])
+- `excluded_tools` - Blocklist of tool names (list[str])
+- `provider` - Custom API provider configuration (BYOK) (ProviderConfig)
+- `streaming` - Enable streaming response chunks (bool)
+- `mcp_servers` - MCP server configurations (list)
+- `custom_agents` - Custom agent configurations (list)
+- `config_dir` - Config directory override (str)
+- `skill_directories` - Skill directories (list[str])
+- `disabled_skills` - Disabled skills (list[str])
+- `on_permission_request` - Permission request handler (callable)
+
+### Resuming Sessions
+
+```python
+session = await client.resume_session("session-id", {
+ "tools": [my_new_tool]
+})
+```
+
+### Session Operations
+
+- `session.session_id` - Get session identifier (str)
+- `await session.send({"prompt": "...", "attachments": [...]})` - Send message, returns str (message ID)
+- `await session.send_and_wait({"prompt": "..."}, timeout=60.0)` - Send and wait for idle, returns SessionEvent | None
+- `await session.abort()` - Abort current processing
+- `await session.get_messages()` - Get all events/messages, returns list[SessionEvent]
+- `await session.destroy()` - Clean up session
+
+## Event Handling
+
+### Event Subscription Pattern
+
+ALWAYS use asyncio events or futures for waiting on session events:
+
+```python
+import asyncio
+
+done = asyncio.Event()
+
+def handler(event):
+ if event.type == "assistant.message":
+ print(event.data.content)
+ elif event.type == "session.idle":
+ done.set()
+
+session.on(handler)
+await session.send({"prompt": "..."})
+await done.wait()
+```
+
+### Unsubscribing from Events
+
+The `on()` method returns a function that unsubscribes:
+
+```python
+unsubscribe = session.on(lambda event: print(event.type))
+# Later...
+unsubscribe()
+```
+
+### Event Types
+
+Use attribute access for event type checking:
+
+```python
+def handler(event):
+ if event.type == "user.message":
+ # Handle user message
+ pass
+ elif event.type == "assistant.message":
+ print(event.data.content)
+ elif event.type == "tool.executionStart":
+ # Tool execution started
+ pass
+ elif event.type == "tool.executionComplete":
+ # Tool execution completed
+ pass
+ elif event.type == "session.start":
+ # Session started
+ pass
+ elif event.type == "session.idle":
+ # Session is idle (processing complete)
+ pass
+ elif event.type == "session.error":
+ print(f"Error: {event.data.message}")
+
+session.on(handler)
+```
+
+## Streaming Responses
+
+### Enabling Streaming
+
+Set `streaming: True` in SessionConfig:
+
+```python
+session = await client.create_session({
+ "model": "gpt-5",
+ "streaming": True
+})
+```
+
+### Handling Streaming Events
+
+Handle both delta events (incremental) and final events:
+
+```python
+import asyncio
+
+done = asyncio.Event()
+
+def handler(event):
+ if event.type == "assistant.message.delta":
+ # Incremental text chunk
+ print(event.data.delta_content, end="", flush=True)
+ elif event.type == "assistant.reasoning.delta":
+ # Incremental reasoning chunk (model-dependent)
+ print(event.data.delta_content, end="", flush=True)
+ elif event.type == "assistant.message":
+ # Final complete message
+ print("\n--- Final ---")
+ print(event.data.content)
+ elif event.type == "assistant.reasoning":
+ # Final reasoning content
+ print("--- Reasoning ---")
+ print(event.data.content)
+ elif event.type == "session.idle":
+ done.set()
+
+session.on(handler)
+await session.send({"prompt": "Tell me a story"})
+await done.wait()
+```
+
+Note: Final events (`assistant.message`, `assistant.reasoning`) are ALWAYS sent regardless of streaming setting.
+
+## Custom Tools
+
+### Defining Tools with define_tool
+
+Use `define_tool` for tool definitions:
+
+```python
+from copilot import define_tool
+
+async def fetch_issue(issue_id: str):
+ # Fetch issue from tracker
+ return {"id": issue_id, "status": "open"}
+
+session = await client.create_session({
+ "model": "gpt-5",
+ "tools": [
+ define_tool(
+ name="lookup_issue",
+ description="Fetch issue details from tracker",
+ parameters={
+ "type": "object",
+ "properties": {
+ "id": {"type": "string", "description": "Issue ID"}
+ },
+ "required": ["id"]
+ },
+ handler=lambda args, inv: fetch_issue(args["id"])
+ )
+ ]
+})
+```
+
+### Using Pydantic for Parameters
+
+The SDK works well with Pydantic models:
+
+```python
+from pydantic import BaseModel, Field
+
+class WeatherArgs(BaseModel):
+ location: str = Field(description="City name")
+ units: str = Field(default="fahrenheit", description="Temperature units")
+
+async def get_weather(args: WeatherArgs, inv):
+ return {"temperature": 72, "units": args.units}
+
+session = await client.create_session({
+ "tools": [
+ define_tool(
+ name="get_weather",
+ description="Get weather for a location",
+ parameters=WeatherArgs.model_json_schema(),
+ handler=lambda args, inv: get_weather(WeatherArgs(**args), inv)
+ )
+ ]
+})
+```
+
+### Tool Return Types
+
+- Return any JSON-serializable value (automatically wrapped)
+- Or return a ToolResult dict for full control:
+
+```python
+{
+ "text_result_for_llm": str, # Result shown to LLM
+ "result_type": "success" | "failure",
+ "error": str, # Optional: Internal error (not shown to LLM)
+ "tool_telemetry": dict # Optional: Telemetry data
+}
+```
+
+### Tool Handler Signature
+
+Tool handlers receive two arguments:
+
+- `args` (dict) - The tool arguments passed by the LLM
+- `invocation` (ToolInvocation) - Metadata about the invocation
+ - `invocation.session_id` - Session ID
+ - `invocation.tool_call_id` - Tool call ID
+ - `invocation.tool_name` - Tool name
+ - `invocation.arguments` - Same as args parameter
+
+### Tool Execution Flow
+
+When Copilot invokes a tool, the client automatically:
+
+1. Runs your handler function
+2. Serializes the return value
+3. Responds to the CLI
+
+## System Message Customization
+
+### Append Mode (Default - Preserves Guardrails)
+
+```python
+session = await client.create_session({
+ "model": "gpt-5",
+ "system_message": {
+ "mode": "append",
+ "content": """
+
+- Always check for security vulnerabilities
+- Suggest performance improvements when applicable
+
+"""
+ }
+})
+```
+
+### Replace Mode (Full Control - Removes Guardrails)
+
+```python
+session = await client.create_session({
+ "model": "gpt-5",
+ "system_message": {
+ "mode": "replace",
+ "content": "You are a helpful assistant."
+ }
+})
+```
+
+## File Attachments
+
+Attach files to messages:
+
+```python
+await session.send({
+ "prompt": "Analyze this file",
+ "attachments": [
+ {
+ "type": "file",
+ "path": "/path/to/file.py",
+ "display_name": "My File"
+ }
+ ]
+})
+```
+
+## Message Delivery Modes
+
+Use the `mode` key in message options:
+
+- `"enqueue"` - Queue message for processing
+- `"immediate"` - Process message immediately
+
+```python
+await session.send({
+ "prompt": "...",
+ "mode": "enqueue"
+})
+```
+
+## Multiple Sessions
+
+Sessions are independent and can run concurrently:
+
+```python
+session1 = await client.create_session({"model": "gpt-5"})
+session2 = await client.create_session({"model": "claude-sonnet-4.5"})
+
+await asyncio.gather(
+ session1.send({"prompt": "Hello from session 1"}),
+ session2.send({"prompt": "Hello from session 2"})
+)
+```
+
+## Bring Your Own Key (BYOK)
+
+Use custom API providers via `provider`:
+
+```python
+session = await client.create_session({
+ "provider": {
+ "type": "openai",
+ "base_url": "https://api.openai.com/v1",
+ "api_key": "your-api-key"
+ }
+})
+```
+
+## Session Lifecycle Management
+
+### Listing Sessions
+
+```python
+sessions = await client.list_sessions()
+for metadata in sessions:
+ print(f"{metadata.session_id}: {metadata.summary}")
+```
+
+### Deleting Sessions
+
+```python
+await client.delete_session(session_id)
+```
+
+### Getting Last Session ID
+
+```python
+last_id = await client.get_last_session_id()
+if last_id:
+ session = await client.resume_session(last_id)
+```
+
+### Checking Connection State
+
+```python
+state = client.get_state()
+# Returns: "disconnected" | "connecting" | "connected" | "error"
+```
+
+## Error Handling
+
+### Standard Exception Handling
+
+```python
+try:
+ session = await client.create_session()
+ await session.send({"prompt": "Hello"})
+except Exception as e:
+ print(f"Error: {e}")
+```
+
+### Session Error Events
+
+Monitor `session.error` event type for runtime errors:
+
+```python
+def handler(event):
+ if event.type == "session.error":
+ print(f"Session Error: {event.data.message}")
+
+session.on(handler)
+```
+
+## Connectivity Testing
+
+Use ping to verify server connectivity:
+
+```python
+response = await client.ping("health check")
+print(f"Server responded at {response['timestamp']}")
+```
+
+## Resource Cleanup
+
+### Automatic Cleanup with Context Managers
+
+ALWAYS use async context managers for automatic cleanup:
+
+```python
+async with CopilotClient() as client:
+ async with await client.create_session() as session:
+ # Use session...
+ await session.send({"prompt": "Hello"})
+ # Session automatically destroyed
+# Client automatically stopped
+```
+
+### Manual Cleanup with Try-Finally
+
+```python
+client = CopilotClient()
+try:
+ await client.start()
+ session = await client.create_session()
+ try:
+ # Use session...
+ pass
+ finally:
+ await session.destroy()
+finally:
+ await client.stop()
+```
+
+## Best Practices
+
+1. **Always use async context managers** (`async with`) for automatic cleanup
+2. **Use asyncio.Event or asyncio.Future** to wait for session.idle event
+3. **Handle session.error** events for robust error handling
+4. **Use if/elif chains** for event type checking
+5. **Enable streaming** for better UX in interactive scenarios
+6. **Use define_tool** for tool definitions
+7. **Use Pydantic models** for type-safe parameter validation
+8. **Dispose event subscriptions** when no longer needed
+9. **Use system_message with mode: "append"** to preserve safety guardrails
+10. **Handle both delta and final events** when streaming is enabled
+11. **Use type hints** for better IDE support and code clarity
+
+## Common Patterns
+
+### Simple Query-Response
+
+```python
+from copilot import CopilotClient
+import asyncio
+
+async def main():
+ async with CopilotClient() as client:
+ async with await client.create_session({"model": "gpt-5"}) as session:
+ done = asyncio.Event()
+
+ def handler(event):
+ if event.type == "assistant.message":
+ print(event.data.content)
+ elif event.type == "session.idle":
+ done.set()
+
+ session.on(handler)
+ await session.send({"prompt": "What is 2+2?"})
+ await done.wait()
+
+asyncio.run(main())
+```
+
+### Multi-Turn Conversation
+
+```python
+async def send_and_wait(session, prompt: str):
+ done = asyncio.Event()
+ result = []
+
+ def handler(event):
+ if event.type == "assistant.message":
+ result.append(event.data.content)
+ print(event.data.content)
+ elif event.type == "session.idle":
+ done.set()
+ elif event.type == "session.error":
+ result.append(None)
+ done.set()
+
+ unsubscribe = session.on(handler)
+ await session.send({"prompt": prompt})
+ await done.wait()
+ unsubscribe()
+
+ return result[0] if result else None
+
+async with await client.create_session() as session:
+ await send_and_wait(session, "What is the capital of France?")
+ await send_and_wait(session, "What is its population?")
+```
+
+### SendAndWait Helper
+
+```python
+# Use built-in send_and_wait for simpler synchronous interaction
+async with await client.create_session() as session:
+ response = await session.send_and_wait(
+ {"prompt": "What is 2+2?"},
+ timeout=60.0
+ )
+
+ if response and response.type == "assistant.message":
+ print(response.data.content)
+```
+
+### Tool with Dataclass Return Type
+
+```python
+from dataclasses import dataclass, asdict
+from copilot import define_tool
+
+@dataclass
+class UserInfo:
+ id: str
+ name: str
+ email: str
+ role: str
+
+async def get_user(args, inv) -> dict:
+ user = UserInfo(
+ id=args["user_id"],
+ name="John Doe",
+ email="john@example.com",
+ role="Developer"
+ )
+ return asdict(user)
+
+session = await client.create_session({
+ "tools": [
+ define_tool(
+ name="get_user",
+ description="Retrieve user information",
+ parameters={
+ "type": "object",
+ "properties": {
+ "user_id": {"type": "string", "description": "User ID"}
+ },
+ "required": ["user_id"]
+ },
+ handler=get_user
+ )
+ ]
+})
+```
+
+### Streaming with Progress
+
+```python
+import asyncio
+
+current_message = []
+done = asyncio.Event()
+
+def handler(event):
+ if event.type == "assistant.message.delta":
+ current_message.append(event.data.delta_content)
+ print(event.data.delta_content, end="", flush=True)
+ elif event.type == "assistant.message":
+ print(f"\n\n=== Complete ===")
+ print(f"Total length: {len(event.data.content)} chars")
+ elif event.type == "session.idle":
+ done.set()
+
+unsubscribe = session.on(handler)
+await session.send({"prompt": "Write a long story"})
+await done.wait()
+unsubscribe()
+```
+
+### Error Recovery
+
+```python
+def handler(event):
+ if event.type == "session.error":
+ print(f"Session error: {event.data.message}")
+ # Optionally retry or handle error
+
+session.on(handler)
+
+try:
+ await session.send({"prompt": "risky operation"})
+except Exception as e:
+ # Handle send errors
+ print(f"Failed to send: {e}")
+```
+
+### Using TypedDict for Type Safety
+
+```python
+from typing import TypedDict, List
+
+class MessageOptions(TypedDict, total=False):
+ prompt: str
+ attachments: List[dict]
+ mode: str
+
+class SessionConfig(TypedDict, total=False):
+ model: str
+ streaming: bool
+ tools: List
+
+# Usage with type hints
+options: MessageOptions = {
+ "prompt": "Hello",
+ "mode": "enqueue"
+}
+await session.send(options)
+
+config: SessionConfig = {
+ "model": "gpt-5",
+ "streaming": True
+}
+session = await client.create_session(config)
+```
+
+### Async Generator for Streaming
+
+```python
+from typing import AsyncGenerator
+
+async def stream_response(session, prompt: str) -> AsyncGenerator[str, None]:
+ """Stream response chunks as an async generator."""
+ queue = asyncio.Queue()
+ done = asyncio.Event()
+
+ def handler(event):
+ if event.type == "assistant.message.delta":
+ queue.put_nowait(event.data.delta_content)
+ elif event.type == "session.idle":
+ done.set()
+
+ unsubscribe = session.on(handler)
+ await session.send({"prompt": prompt})
+
+ while not done.is_set():
+ try:
+ chunk = await asyncio.wait_for(queue.get(), timeout=0.1)
+ yield chunk
+ except asyncio.TimeoutError:
+ continue
+
+ # Drain remaining items
+ while not queue.empty():
+ yield queue.get_nowait()
+
+ unsubscribe()
+
+# Usage
+async for chunk in stream_response(session, "Tell me a story"):
+ print(chunk, end="", flush=True)
+```
+
+### Decorator Pattern for Tools
+
+```python
+from typing import Callable, Any
+from copilot import define_tool
+
+def copilot_tool(
+ name: str,
+ description: str,
+ parameters: dict
+) -> Callable:
+ """Decorator to convert a function into a Copilot tool."""
+ def decorator(func: Callable) -> Any:
+ return define_tool(
+ name=name,
+ description=description,
+ parameters=parameters,
+ handler=lambda args, inv: func(**args)
+ )
+ return decorator
+
+@copilot_tool(
+ name="calculate",
+ description="Perform a calculation",
+ parameters={
+ "type": "object",
+ "properties": {
+ "expression": {"type": "string", "description": "Math expression"}
+ },
+ "required": ["expression"]
+ }
+)
+def calculate(expression: str) -> float:
+ return eval(expression)
+
+session = await client.create_session({"tools": [calculate]})
+```
+
+## Python-Specific Features
+
+### Async Context Manager Protocol
+
+The SDK implements `__aenter__` and `__aexit__`:
+
+```python
+class CopilotClient:
+ async def __aenter__(self):
+ await self.start()
+ return self
+
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
+ await self.stop()
+ return False
+
+class CopilotSession:
+ async def __aenter__(self):
+ return self
+
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
+ await self.destroy()
+ return False
+```
+
+### Dataclass Support
+
+Event data is available as attributes:
+
+```python
+def handler(event):
+ # Access event attributes directly
+ print(event.type)
+ print(event.data.content) # For assistant.message
+ print(event.data.delta_content) # For assistant.message.delta
+```