<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Bala Madhusoodhanan</title>
    <description>The latest articles on DEV Community by Bala Madhusoodhanan (@balagmadhu).</description>
    <link>https://dev.to/balagmadhu</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F941014%2F4eda2ca2-581c-43f5-911a-8a7d28bff462.jpeg</url>
      <title>DEV Community: Bala Madhusoodhanan</title>
      <link>https://dev.to/balagmadhu</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/balagmadhu"/>
    <language>en</language>
    <item>
      <title>Your Next Career Move May Already Be in Your Work: Discovering Career Evidence with Work IQ</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 31 Aug 2026 07:24:24 +0000</pubDate>
      <link>https://dev.to/balagmadhu/your-next-career-move-may-already-be-in-your-work-discovering-career-evidence-with-work-iq-4b6l</link>
      <guid>https://dev.to/balagmadhu/your-next-career-move-may-already-be-in-your-work-discovering-career-evidence-with-work-iq-4b6l</guid>
      <description>&lt;p&gt;&lt;strong&gt;&lt;u&gt;Intro&lt;/u&gt;&lt;/strong&gt;:&lt;br&gt;
You see a target role that feels like a leap. Your current experience is rooted in one specific domain, but the new role asks for a blend of strategy, leadership, and cross-functional capabilities that seem just out of reach.&lt;/p&gt;

&lt;p&gt;At first glance, the instinct is familiar to many of us:&lt;br&gt;
&lt;em&gt;“My current job title does not match. I am not qualified.”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;But that is the wrong question to ask. Instead of asking if your current title matches the role, the better question is:&lt;/p&gt;

&lt;p&gt;&lt;em&gt;“What capabilities is this role actually hiring for—and what evidence already exists in my work?”&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That is where Microsoft 365 Copilot and Work IQ become surprisingly useful. Work IQ helps Copilot use authorised work context—such as relevant files, emails, meetings, chats, people, and work relationships—to provide a grounded response. Using / references, you can focus Copilot on specific priority material, such as a performance review, a major project wrap-up, and the target job description.&lt;/p&gt;

&lt;p&gt;The Problem with Traditional Career Planning&lt;br&gt;
Most of us assess our career readiness through static artefacts:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Our job title&lt;/li&gt;
&lt;li&gt;Our current CV&lt;/li&gt;
&lt;li&gt;An organisational chart&lt;/li&gt;
&lt;li&gt;A formal job description&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;These documents are useful, but they are fundamentally incomplete. They show what you have historically been hired to do. They rarely capture:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What complex problems people increasingly bring to you&lt;/li&gt;
&lt;li&gt;How you manage ambiguity and align stakeholders&lt;/li&gt;
&lt;li&gt;The cross-functional projects you are driving&lt;/li&gt;
&lt;li&gt;The leadership capabilities you are developing before a promotion formally recognises them&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Your next role may be visible in your day-to-day work patterns long before it makes it onto your CV. Job titles are just labels; capabilities are evidence.&lt;/p&gt;

&lt;p&gt;A senior or stretch role is rarely hiring just for domain expertise. It is looking for individuals who can define roadmaps, govern risk, translate strategy into delivery, and move an organisation from experimentation to scale. Those capabilities exist across many roles, even if the job titles look completely different.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/bala-gopal/embed/01a053bd-b4fd-78fc-b7f1-c15b5cbb0d18?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The goal of this exercise is not to use Copilot to artificially convince yourself you are ready. The goal is to objectively separate your background into three categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Demonstrated experience&lt;/strong&gt;: Capabilities you have explicitly executed and delivered.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adjacent experience&lt;/strong&gt;: Work you have done that is highly comparable and transfers directly to the new context.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Development gaps&lt;/strong&gt;: Genuine areas where you lack evidence and need to build skills.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prompt: Decode the Role and Map Your Evidence&lt;/strong&gt;&lt;br&gt;
Use this prompt as the first step in your career transition journey.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;Act as a recruiter and career coach.

Analyse the target job description attached below and identify:

Core responsibilities

Hiring goals and business outcomes

Technical, strategic, and leadership capabilities being assessed

Important ATS keywords

The characteristics of a successful candidate

Then, use the Work IQ experience in Microsoft 365 Copilot to analyse my authorised work context for relevant evidence. Consider relevant work files, meetings, emails, Teams conversations, project activity, and stakeholder interactions that I am permitted to access.

Use the items I attach with / as priority evidence.

Create a table with these columns:

Target capability (from the JD)

Evidence from my work context

Source or cited work item

Why the evidence is transferable

Classification: demonstrated experience, adjacent experience, or development gap

Do not invent experience or outcomes. Clearly distinguish documented evidence from reasonable inference. Be honest about gaps.
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;What to Attach Using / References&lt;/strong&gt; &lt;br&gt;
To get the best results, start small and specific. Good first attachments include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your current CV&lt;/li&gt;
&lt;li&gt;The target job description&lt;/li&gt;
&lt;li&gt;Your latest performance review&lt;/li&gt;
&lt;li&gt;A major project summary, business case, or closure presentation&lt;/li&gt;
&lt;li&gt;A documented stakeholder feedback email&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Decoding the Output&lt;/strong&gt;&lt;br&gt;
When you run this prompt, the output shifts your perspective from "Do I have the title?" to "Do I have the proof?" Here is an example of what that output might look like regardless of your specific industry:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Target Capability&lt;/th&gt;
&lt;th&gt;Evidence from Existing Work Context&lt;/th&gt;
&lt;th&gt;Classification&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cross-Functional Leadership&lt;/td&gt;
&lt;td&gt;Chaired the weekly steering committee, aligning three distinct departments on the Q3 delivery schedule and resolving resource bottlenecks.&lt;/td&gt;
&lt;td&gt;Demonstrated experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Strategic Roadmapping&lt;/td&gt;
&lt;td&gt;Authored the business case and phased rollout plan for the internal tool migration, translating user pain points into a delivery timeline.&lt;/td&gt;
&lt;td&gt;Adjacent experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Enterprise Governance&lt;/td&gt;
&lt;td&gt;Established the risk review matrix used by the wider team to evaluate third-party vendors before onboarding.&lt;/td&gt;
&lt;td&gt;Demonstrated experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Executive Communication&lt;/td&gt;
&lt;td&gt;Drafted monthly status briefings for the VP group, synthesising complex project metrics into clear, decision-ready updates.&lt;/td&gt;
&lt;td&gt;Demonstrated experience&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Specific Platform Expertise&lt;/td&gt;
&lt;td&gt;Limited evidence of direct hands-on configuration or certification in the target proprietary software.&lt;/td&gt;
&lt;td&gt;Development gap&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Using Work IQ Responsibly&lt;/strong&gt;&lt;br&gt;
A career mapping exercise should be handled carefully when using enterprise tools:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Use only information you are authorised to access.&lt;/li&gt;
&lt;li&gt;Do not use confidential work content (like financial data or proprietary architectures) in external job applications.&lt;/li&gt;
&lt;li&gt;Verify all evidence and citations before relying on them.&lt;/li&gt;
&lt;li&gt;Treat Copilot as a reflection and drafting partner, not the final decision-maker.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Choose one stretch role that interests you this week. Do not start by rewriting your CV. Start by asking what capabilities the role actually requires, and let your existing work provide the evidence. In the next article, we will take the evidence you uncover and turn it into a compelling CV and LinkedIn narrative.&lt;/p&gt;

</description>
      <category>m365copilot</category>
      <category>workiq</category>
      <category>careerdevelopment</category>
      <category>copilotprompts</category>
    </item>
    <item>
      <title>Designing Intelligence: From Ad-Hoc Prompts to Enterprise AI Skills</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 24 Aug 2026 05:31:33 +0000</pubDate>
      <link>https://dev.to/balagmadhu/designing-intelligence-from-ad-hoc-prompts-to-enterprise-ai-skills-1mmc</link>
      <guid>https://dev.to/balagmadhu/designing-intelligence-from-ad-hoc-prompts-to-enterprise-ai-skills-1mmc</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;The pattern now as part of agentic design is, we are witnessing a shift from treating Large Language Models purely as conversational interfaces to integrating them as governed architectural components. For developers using platforms like Microsoft Copilot Studio, understanding the transition from an ephemeral prompt to a persistent AI skill is critical for building scalable, compliant solutions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ephemeral Prompts vs. Persistent Skills&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;A prompt is how you get started; a skill is how your team scales. Prompts are reactive, natural language instructions used for one-off tasks. &lt;br&gt;
Context is completely forgotten when the session ends. Conversely, an AI Skill in Copilot Studio is a reusable, persistent workflow package—often defined as a Markdown file with YAML metadata—that loads on demand. A skill functions as an auditable microservice with standing system instructions, strict operational boundaries, and embedded operating logic.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Dimension&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Prompts&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Enterprise AI Skills&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Use Case&lt;/td&gt;
&lt;td&gt;One-off,   exploratory tasks.&lt;/td&gt;
&lt;td&gt;Executing   standardized, highly repeatable processes safely.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Composition&lt;/td&gt;
&lt;td&gt;Pure   natural language prose lacking boundaries.&lt;/td&gt;
&lt;td&gt;Hybrid:   Markdown instructions combined with executable scripts.&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Governance&lt;/td&gt;
&lt;td&gt;Unmonitored   compliance gaps.&lt;/td&gt;
&lt;td&gt;Auditable   assets enabling Risk Management and Human Oversight.&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Not every task warrants becoming a skill. Unchecked "skill sprawl" leads to heavy maintenance debt and unnecessary token consumption. Use this decision tree to evaluate whether an automation request requires a simple prompt action or a formal enterprise skill.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/bala-gopal/embed/01a02ff0-c377-7e36-a3c5-b971fb4c30b6?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Core Design Principles for Copilot Studio&lt;/strong&gt;&lt;br&gt;
To maintain a clean architecture, evaluate potential skills against these core system design principles:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;u&gt;The Rule of Two&lt;/u&gt;: If a prompt is typed more than twice for a team workflow, formalize it into a skill to guarantee output consistency.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Hybrid Execution Logic&lt;/u&gt;: Separate probabilistic reasoning from deterministic execution. Let the LLM handle context while Python scripts, APIs, or Power Automate flows execute rigid calculations.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Carbon-Aware Routing&lt;/u&gt;: When a workflow carries high regulatory demands, a managed skill is non-negotiable. To offset the computing footprint of persistent skills, deliberately route mechanical tasks to less energy-intensive models or execute batch operations during periods of lower grid carbon intensity.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Context Management&lt;/u&gt;: Design skills with highly optimized descriptions. Copilot Studio uses this metadata to decide when to dynamically pull the full skill instructions into the context window, reducing token cost and latency.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Traceability for Compliance&lt;/u&gt;: Align with frameworks like the EU AI Act by designing skills that enforce programmatic safety boundaries, telemetry, and human-in-the-loop triggers before execution.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Closing Thoughts: The Trap of "Easy"&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;As platforms like Copilot Studio lower the barrier to entry, building an AI Skill has never been easier. But just because you can build a skill does not mean you should.&lt;/p&gt;

&lt;p&gt;The ease of low-code development often tempts citizen developers into "skill sprawl"—productizing every minor prompt into a persistent agentic workflow simply because the platform makes it simple to do so. This is an architectural trap. Not every task requires a governed microservice. As &lt;a href="https://www.linkedin.com/pulse/copilot-studio-harnesses-real-world-cost-test-mikko-koskinen-6u4vf/?trackingId=bahzCOpzwqy60jiku38bbw%3D%3D" rel="noopener noreferrer"&gt;Mikko Koskinen’s&lt;/a&gt; real-world cost testing brilliantly highlights, defaulting to premium orchestrated agents for simple tasks can rapidly multiply your operational expenditure through stacked message consumption.&lt;/p&gt;

&lt;p&gt;True system design is about restraint. Ad-hoc prompts remain a perfectly valid, highly cost-effective tool for daily friction, personal productivity, and exploratory work. Reserve the rigorous engineering of a persistent Skill for processes that truly demand strict boundaries, regulatory compliance, and repeatable, team-wide accuracy.&lt;/p&gt;

</description>
      <category>copilotstudio</category>
      <category>powerplatform</category>
      <category>agentskills</category>
    </item>
    <item>
      <title>Unshakeable - Ancient Wisdom for Modern Resilience</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 17 Aug 2026 07:30:52 +0000</pubDate>
      <link>https://dev.to/balagmadhu/unshakeable-ancient-wisdom-for-modern-resilience-43pp</link>
      <guid>https://dev.to/balagmadhu/unshakeable-ancient-wisdom-for-modern-resilience-43pp</guid>
      <description>&lt;p&gt;For those who have read my book, &lt;a href="https://amzn.eu/d/0i1ImHP" rel="noopener noreferrer"&gt;Ctrl+Alt+Dharma: Ethical AI through an Ancient Lens&lt;/a&gt;), you know I spent years researching how ancient Indian philosophical frameworks—specifically the Bhagavad Gita—can serve as a moral compass for modern artificial intelligence. In enterprise architecture, we use these ancient truths to mitigate algorithmic bias, design ethical workflows, and ensure our technology serves humanity.&lt;/p&gt;

&lt;p&gt;Where my work focuses on building a resilient target architecture for enterprise AI, the author of this book Vivek has written the ultimate field guide for building a resilient target architecture for the human mind.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/bala-gopal/embed/019ff99f-4eb8-7263-81d9-b83965cd7a14?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;What makes Unshakeable so brilliant is its practicality. It doesn't just offer philosophical platitudes; every chapter ends with a highly specific "Move" to put the concept into immediate practice.&lt;/p&gt;

&lt;p&gt;Whether you are a tech professional trying to avoid burnout, a leader looking to build a more resilient team, or simply someone trying to find your own "Dharma" in a chaotic world, this book is a mandatory read. It is a powerful reminder that before we can build intelligent, ethical systems, we must first build unshakeable minds.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://amzn.eu/d/081XzzCg" rel="noopener noreferrer"&gt;Unshakeable&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Have you read it yet? Let me know your thoughts in the comments, or share what ancient philosophies you rely on to navigate the modern world!&lt;/p&gt;

</description>
      <category>books</category>
    </item>
    <item>
      <title>From Clicks to Documentation: Converting D365 Task Recordings into L4 Guides</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 10 Aug 2026 08:15:39 +0000</pubDate>
      <link>https://dev.to/balagmadhu/from-clicks-to-documentation-converting-d365-task-recordings-into-l4-guides-147m</link>
      <guid>https://dev.to/balagmadhu/from-clicks-to-documentation-converting-d365-task-recordings-into-l4-guides-147m</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
Documenting business processes in Dynamics 365 can be time-consuming. Functional consultants and process owners often need to turn Task Recorder recordings into step-by-step user guides, training material, and Level 4 (L4) work instructions.&lt;br&gt;
The challenge is that a Task Recorder file captures the system interaction, but it is not always ready to share as a polished business document.&lt;br&gt;
To help with this, I created the axtr-to-markdown skill. It converts Microsoft Dynamics 365 Task Recorder recordings into structured Markdown documents that can be reviewed, enriched, published, or used as knowledge sources for Copilot Studio agents.&lt;/p&gt;

&lt;p&gt;What is the axtr-to-markdown skill?&lt;br&gt;
The axtr-to-markdown skill takes a Dynamics 365 Task Recorder file and transforms the recorded process into a structured Level 4 process training document.&lt;br&gt;
It extracts available process information such as:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Process title and description&lt;/li&gt;
&lt;li&gt;Recorded user steps&lt;/li&gt;
&lt;li&gt;Form and screen names&lt;/li&gt;
&lt;li&gt;Field or control names&lt;/li&gt;
&lt;li&gt;Recorded values&lt;/li&gt;
&lt;li&gt;Action types such as click, input, select, navigate, validate, save, and post&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The output is a Markdown file that provides a much better starting point for a user manual than a raw Task Recorder export.&lt;br&gt;
&lt;strong&gt;Key Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;AXTR to Markdown conversion
Converts Dynamics 365 Task Recorder content into an editable Markdown document.&lt;/li&gt;
&lt;li&gt;Level 3 and Level 4 support
Generates either a concise SOP-style L3 document or a detailed click-by-click L4 work instruction.&lt;/li&gt;
&lt;li&gt;Structured process documentation
Includes purpose, scope, prerequisites, roles and responsibilities, detailed steps, expected outcomes, troubleshooting, related documents, and revision history.&lt;/li&gt;
&lt;li&gt;SIPOC analysis draft
Produces a draft Suppliers, Inputs, Process, Outputs, and Customers overview based on the available recording data.&lt;/li&gt;
&lt;li&gt;Metadata options
Add a custom document title, author, department, process level, and output location.&lt;/li&gt;
&lt;li&gt;Copilot Studio-ready output
Markdown documents can be used as a starting point for SharePoint knowledge articles, controlled documentation, or agent knowledge sources.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Why AXTR files are useful for L4 documentation&lt;/strong&gt;&lt;br&gt;
A Level 4 document focuses on the exact way a user performs a task in the system.&lt;br&gt;
Dynamics 365 Task Recorder captures those practical details while a user completes the process. This makes AXTR-based documentation particularly useful for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Standard operating procedures&lt;/li&gt;
&lt;li&gt;End-user training guides&lt;/li&gt;
&lt;li&gt;Onboarding documentation&lt;/li&gt;
&lt;li&gt;Process harmonisation&lt;/li&gt;
&lt;li&gt;UAT test-script drafting&lt;/li&gt;
&lt;li&gt;Regression-test documentation&lt;/li&gt;
&lt;li&gt;Support and issue-reproduction steps&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Instead of starting with a blank Word document and manually transcribing every click, teams can use the recording as the baseline and focus their time on validating the business context, controls, exceptions, and approvals.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/BalaGM10/MCS-Copilot-Skills/tree/main/axtr-to-markdown" rel="noopener noreferrer"&gt;axtr-to-markdown&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;axtr-to-markdown/
├── scripts/
│   ├── axtr_to_markdown.py
│   └── helpers.py
├── references/
├── assets/
└── SKILL.md
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The axtr-to-markdown skill does not attempt to replace process experts. Instead, it removes the repetitive first step of documenting every click and screen interaction manually.&lt;br&gt;
It turns a Dynamics 365 Task Recorder output into an editable Markdown draft that functional consultants, business users, and process owners can review and enrich. The result is a faster route from recorded system activity to a maintainable L4 work instruction.&lt;/p&gt;

</description>
      <category>copilotstudio</category>
      <category>powerplatform</category>
      <category>agentskills</category>
      <category>powerfuldevs</category>
    </item>
    <item>
      <title>Build Repeatable AI Workflows with SharePoint Skills</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 03 Aug 2026 06:56:52 +0000</pubDate>
      <link>https://dev.to/balagmadhu/build-repeatable-ai-workflows-with-sharepoint-skills-54d7</link>
      <guid>https://dev.to/balagmadhu/build-repeatable-ai-workflows-with-sharepoint-skills-54d7</guid>
      <description>&lt;p&gt;Many SharePoint tasks are repetitive: checking whether a project folder contains the right files, reviewing documents against a checklist, or finding knowledge articles that are overdue for an update.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SharePoint Skills&lt;/strong&gt; are designed for exactly this kind of work.&lt;br&gt;
A Skill is a reusable, multi-step AI workflow that runs inside SharePoint. Rather than writing code or building a conventional automation flow, you describe the outcome you want in natural language, then review and refine the Skill SharePoint generates.&lt;/p&gt;

&lt;p&gt;You can also manage Skills directly from the SharePoint site’s Agent Assets library. Navigate to:&lt;/p&gt;

&lt;p&gt;&lt;u&gt;&lt;strong&gt;SharePoint site → Site contents → Agent Assets → Skills&lt;/strong&gt;&lt;/u&gt;&lt;/p&gt;

&lt;p&gt;From the Skills folder, you can manually upload a Skill file or organize existing Skills alongside your team’s other agent resources. This is useful when you want to reuse a Skill created elsewhere, maintain a controlled library of approved Skills, or move tested Skills between sites. Ensure users have the appropriate SharePoint permissions, since Skills operate within the site’s existing access model. &lt;/p&gt;

&lt;p&gt;A simple example&lt;br&gt;
In this example, the Skill reviews each vendor onboarding folder for a signed NDA, tax form, and onboarding checklist. It then returns a clear summary of complete folders and folders that require attention. This replaces a repetitive manual review with a consistent, reusable AI-assisted process.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/bala-gopal/embed/019fc415-e5ea-7211-8bee-a8bd16555491?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this improves the experience&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skills make SharePoint more approachable because users do not need to remember complicated processes or learn a scripting language. They can simply ask for the outcome in the language they already use.&lt;br&gt;
For example:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Check the Plans library for project folders missing an approved brief or final budget, and list the gaps.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once saved, a Skill is reusable by people with the appropriate site access. Users can invoke it through a matching natural-language request, without necessarily having to remember the Skill’s exact name.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Keep the first Skills focused&lt;/strong&gt;&lt;br&gt;
The best first use cases are specific, repetitive, and easy to verify:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Folder completeness check — Find missing mandatory files.&lt;/li&gt;
&lt;li&gt;Document quality review — Check documents against an internal checklist.&lt;/li&gt;
&lt;li&gt;Content freshness audit — Identify pages or documents that need review.&lt;/li&gt;
&lt;li&gt;Naming and metadata review — Highlight content that does not follow team standards.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Start small, test with real documents, and improve the wording based on how your team actually asks questions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What Skills are not&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Skills are not intended to replace every automation platform. They work within SharePoint and inherit the permissions of the person running them. They cannot call external APIs, trigger webhooks, or run custom code. For cross-system workflows or transactional business automation, Power Automate or Copilot Studio may be the better fit.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;em&gt;The magic is not just AI—it is turning a well-understood team process into something everyone can use consistently.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For the official product &lt;a href="https://learn.microsoft.com/en-us/sharepoint/copilot-in-sharepoint-skills" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agentskills</category>
      <category>sharepoint</category>
      <category>powerfuldevs</category>
    </item>
    <item>
      <title>Less Doing, More Living</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 27 Jul 2026 11:16:55 +0000</pubDate>
      <link>https://dev.to/balagmadhu/less-doing-more-living-1b7g</link>
      <guid>https://dev.to/balagmadhu/less-doing-more-living-1b7g</guid>
      <description>&lt;p&gt;The core philosophy of Less Doing, More Living boils down to a systematic approach for reducing operational friction and freeing up high-value time.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/editor/bala-gopal/embed/019fa320-9611-758b-963d-0bdcf9827ba9?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

</description>
      <category>books</category>
    </item>
    <item>
      <title>Enhancing AI Governance with the ai-governance-classifier Skill</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 20 Jul 2026 05:43:28 +0000</pubDate>
      <link>https://dev.to/balagmadhu/enhancing-ai-governance-with-the-ai-governance-classifier-skill-3gp2</link>
      <guid>https://dev.to/balagmadhu/enhancing-ai-governance-with-the-ai-governance-classifier-skill-3gp2</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
AI is transforming how we interact, but with great power comes great responsibility. Ensuring responsible AI behavior—especially around sensitive data—is crucial. In this post, I’ll introduce the ai-governance-classifier skill, explain how it works, and show practical examples of its value.&lt;/p&gt;

&lt;p&gt;The ai-governance-classifier skill is a tool designed to help conversational AI agents comply with governance policies. It automatically analyzes user queries to detect whether they involve personal information or restricted topics. If a query is sensitive, the agent declines to answer, protecting privacy and ensuring compliance.&lt;br&gt;
&lt;strong&gt;Key Features&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated Classification: Detects personal or sensitive queries.&lt;/li&gt;
&lt;li&gt;Policy Enforcement: Blocks responses when necessary.&lt;/li&gt;
&lt;li&gt;Customizable Messaging: Lets you tailor blocked response messages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/bala-gopal/embed/PwWeRVq?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Setup&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frgvml7quxkn73cxb701f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Frgvml7quxkn73cxb701f.png" alt=" " width="800" height="275"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;1) Before responding to any user message, always call the skill: ai-governance-classifier ​ 

2) The skill will return a JSON object. Parse the output and evaluate the following fields:
ClassifyPersonal
ClassifyBias

3) If the skill output contains "ClassifyPersonal": "Yes" OR "ClassifyBias": "Yes":
   → Do NOT answer the user's original question.
   → Do NOT display the JSON output.
   → Respond ONLY with: "This Agent doesn't respond due to AI governance policy."
   → Stop processing immediately.

4) If the skill output contains "ClassifyPersonal": "No" AND "ClassifyBias": "No":
   → Proceed to answer the user's question normally.
   → Do NOT display or reference the JSON output in your response.​‌
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Examples&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdvfddgn7u9ck832gpbv0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fdvfddgn7u9ck832gpbv0.png" alt=" " width="800" height="445"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqinwa2cdic7s8p9n8fms.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fqinwa2cdic7s8p9n8fms.png" alt=" " width="800" height="227"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Use ai-governance-classifier?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;u&gt;Protects User Privacy&lt;/u&gt;: Sensitive information isn’t exposed or mishandled.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Supports Regulatory Compliance&lt;/u&gt;: Helps meet GDPR, CCPA, and other requirements.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Builds Trust&lt;/u&gt;: Users see that their data is respected.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Reduces Risk&lt;/u&gt;: Prevents accidental leaks or misuse of information.&lt;/li&gt;
&lt;li&gt;
&lt;u&gt;Easy Integration&lt;/u&gt;: Works with existing conversational agents with minimal setup.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;AI governance isn’t just about rules—it's about protecting people. The ai-governance-classifier skill makes it easy for AI agents to act responsibly, balancing usefulness with privacy. Try it out and experience the peace of mind that comes from trustworthy AI.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Link to Skill&lt;/strong&gt;: &lt;a href="https://github.com/BalaGM10/MCS-Copilot-Skills/tree/main/ai-governance-classifier" rel="noopener noreferrer"&gt;GitHub Repo&lt;/a&gt;&lt;/p&gt;

</description>
      <category>agentskills</category>
      <category>copilotstudio</category>
      <category>powerfuldevs</category>
    </item>
    <item>
      <title>Automating RAG Regression Tests with an AI-Driven Evaluator (AI Builder + Copilot Studio)</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 13 Jul 2026 09:39:32 +0000</pubDate>
      <link>https://dev.to/balagmadhu/automating-rag-regression-tests-with-an-ai-driven-evaluator-ai-builder-copilot-studio-b84</link>
      <guid>https://dev.to/balagmadhu/automating-rag-regression-tests-with-an-ai-driven-evaluator-ai-builder-copilot-studio-b84</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
We built a lightweight regression-testing pipeline for our Retrieval-Augmented Generation (RAG) agent using Power Automate, Copilot Studio (or Execute Agent), and an AI Builder evaluation prompt. The goal: turn a curated set of knowledge-base (KB) questions into a repeatable test pack, run them automatically after KB or instruction changes (or model upgrades), and deliver deterministic pass/fail reports to the product owner.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How it works (high level)&lt;/strong&gt;:&lt;br&gt;
Work with the product owner to define a small, focused regression pack: representative KB questions + the expected/desired responses or required attributes (formatting, tone, required facts). Keep these single-turn questions to start.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fru2vbr5byni400a4ti2f.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fru2vbr5byni400a4ti2f.png" alt=" " width="800" height="612"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Store the test pack (Excel/Dataverse/SharePoint list). Each row is a test case: ID, question, expected snippet or attributes, and acceptance criteria.&lt;/li&gt;
&lt;li&gt;Automate with Power Automate (flow shown in the screenshot):
a) Manually trigger or schedule the flow.
b) GetTestCases (read test pack from Excel/Dataverse).
c) Scope &amp;gt; Apply to each test case:
d) Compose input payload (question + metadata).
e) Execute Agent and wait (run the RAG agent for that single-turn question).
f) Run a prompt (AI Builder or LLM) that evaluates the agent response against the acceptance criteria.
&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/balagmadhu/prompt-engineering-for-automated-evaluation-making-llms-the-judge-in-ai-builder-solutions-20pl" class="crayons-story__hidden-navigation-link"&gt;Prompt Engineering for Automated Evaluation: Making LLMs the Judge in AI Builder Solutions&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;

          &lt;a href="/balagmadhu" class="crayons-avatar  crayons-avatar--l  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F941014%2F4eda2ca2-581c-43f5-911a-8a7d28bff462.jpeg" alt="balagmadhu profile" class="crayons-avatar__image" width="768" height="1024"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/balagmadhu" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Bala Madhusoodhanan
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Bala Madhusoodhanan
                
              
              &lt;div id="story-author-preview-content-3620356" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/balagmadhu" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F941014%2F4eda2ca2-581c-43f5-911a-8a7d28bff462.jpeg" class="crayons-avatar__image" alt="" width="768" height="1024"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Bala Madhusoodhanan&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

          &lt;/div&gt;
          &lt;a href="https://dev.to/balagmadhu/prompt-engineering-for-automated-evaluation-making-llms-the-judge-in-ai-builder-solutions-20pl" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;May 25&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/balagmadhu/prompt-engineering-for-automated-evaluation-making-llms-the-judge-in-ai-builder-solutions-20pl" id="article-link-3620356"&gt;
          Prompt Engineering for Automated Evaluation: Making LLMs the Judge in AI Builder Solutions
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/aibuilder"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;aibuilder&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/powerplatform"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;powerplatform&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/evaluation"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;evaluation&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/powerfuldevs"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;powerfuldevs&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/balagmadhu/prompt-engineering-for-automated-evaluation-making-llms-the-judge-in-ai-builder-solutions-20pl" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;5&lt;span class="hidden s:inline"&gt;&amp;nbsp;reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/balagmadhu/prompt-engineering-for-automated-evaluation-making-llms-the-judge-in-ai-builder-solutions-20pl#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              

              &lt;span class="hidden s:inline"&gt;Add&amp;nbsp;Comment&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            4 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success crayons-icon c-btn__icon"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Update a row with the result (Pass/Fail, metrics, evaluator JSON).&lt;br&gt;
After loop: aggregate results, calculate pass rate, and send a report to the product owner (email/Teams/Files).&lt;/p&gt;

&lt;p&gt;The evaluation prompt (core idea) We used an evaluator prompt that positions the LLM as an impartial critic and returns a strict JSON evaluation. This is inspired by proven LLM-as-judge patterns and gives us a deterministic, machine-readable output to gate deployments.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Output is machine-readable (JSON/CSV) so results can be tracked and automated.&lt;/li&gt;
&lt;li&gt;Each test shows scores and a short reason so the product owner sees why something failed.&lt;/li&gt;
&lt;li&gt;Clear PASS/FAIL and a short failure reason make go/no-go decisions easy.
Every result links back to the original test case so fixes are quick to find.&lt;/li&gt;
&lt;li&gt;Include run info (date, model/KB version) so failures can be reproduced.&lt;/li&gt;
&lt;li&gt;Show a one-line summary (e.g., "28/30 passed — 93%") for a fast health check.&lt;/li&gt;
&lt;li&gt;Prioritize failures by impact so the product owner knows what to fix first.&lt;/li&gt;
&lt;li&gt;Attach remediation notes (short next steps) so engineers know how to resolve issues.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A clear, structured evaluation report turns a flood of agent outputs into actionable intelligence — empowering product owners to make fast, confident decisions about content changes, model updates, and releases.&lt;/p&gt;

</description>
      <category>powerfuldevs</category>
      <category>powerplatform</category>
      <category>copilotstudio</category>
      <category>agentevaluation</category>
    </item>
    <item>
      <title>Ask, Filter, Deliver: Interactive Work Item Exploration for Product Teams</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 06 Jul 2026 07:06:21 +0000</pubDate>
      <link>https://dev.to/balagmadhu/ask-filter-deliver-interactive-work-item-exploration-for-product-teams-3e24</link>
      <guid>https://dev.to/balagmadhu/ask-filter-deliver-interactive-work-item-exploration-for-product-teams-3e24</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
Product teams often face the challenge of sifting through a mountain of work items in Azure DevOps (ADO), searching for the signal amid the noise. Whether you’re validating a new requirement, checking the status of a change request, or planning for the next release, actionable insights—delivered quickly—are key.&lt;br&gt;
This article explores how to leverage Power Automate’s connectors in an agentic workflow, enabling interactive exploration of work items. We’ll start with the quickest way to get started, then dive deeper into more advanced filtering and dynamic queries.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quick &amp;amp; Easy: Using a Pre-Defined Query&lt;/strong&gt;&lt;br&gt;
For teams looking for a fast solution, Power Automate offers a simple method: use a pre-defined ADO query and connect it directly to your workflow. This approach is perfect when you already know the criteria you want to retrieve—such as all work items assigned to your team, or those marked as “New” or “Change Request.”&lt;/p&gt;

&lt;p&gt;1) Setup the ADO query and get the system generated query ID&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpd9c9deo0wi8qvjxyt63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fpd9c9deo0wi8qvjxyt63.png" alt=" " width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2) Use the &lt;a href="https://learn.microsoft.com/en-us/connectors/visualstudioteamservices/#get-query-results" rel="noopener noreferrer"&gt;ADO get query action&lt;/a&gt; and  &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd1a8d7ymjvoy0eg4pkfc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fd1a8d7ymjvoy0eg4pkfc.png" alt=" " width="800" height="367"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;3) Use this as a Tool to get the data into agentic workflow and let the orchestration engine do its magic to work on the data&lt;/p&gt;

&lt;p&gt;If your pre-defined query returns too many work items, you may encounter errors or timeouts in your agentic workflow due to Power Automate’s data handling limits.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dynamic Querying for Flexible, Context-Aware Exploration&lt;/strong&gt;:&lt;br&gt;
When you need more flexibility than a static, pre-defined query allows, it’s time to move to dynamic querying. This method lets your agentic workflow adapt on the fly—filtering data right at the source based on user input or real-time context.&lt;br&gt;
Instead of relying on a single saved query, you dynamically build your ADO query, often using variables from Copilot prompts or Power Automate inputs. This makes your flows far more interactive and resilient—especially for product teams who need answers to specific, changing questions.&lt;/p&gt;

&lt;p&gt;1) Use the “Send an HTTP request to Azure DevOps” &lt;a href="https://learn.microsoft.com/en-us/connectors/visualstudioteamservices/#send-an-http-request-to-azure-devops" rel="noopener noreferrer"&gt;Action&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;2)Build Your WIQL Query Dynamically&lt;br&gt;
In the request body, construct your WIQL query.&lt;br&gt;
Use dynamic content (variables, user responses, or Copilot inputs) to substitute values—like work item type, title, or state.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbofpo5ebaocwup8irrsy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbofpo5ebaocwup8irrsy.png" alt=" " width="800" height="674"&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nv"&gt;"query"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; 
&lt;span class="nv"&gt;"SELECT [System.Id], [System.Title], [System.State]
            FROM WorkItemLinks
            WHERE [Source].[System.WorkItemType] = 'Capability'
            AND [Source].[System.Title] CONTAINS '@{triggerBody()?['text']}'
            AND [System.Links.LinkType] = 'System.LinkTypes.Hierarchy-Forward'
            AND [Target].[System.WorkItemType] = 'Business Requirement'
            AND [Target].[System.State] &amp;lt;&amp;gt; 'Removed'
            MODE (MayContain)"&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The server only returns data that matches your specific, real-time criteria&lt;/p&gt;

&lt;p&gt;When using this method, always validate user input and test query performance to ensure your workflow remains fast and reliable, even as requirements change.&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Pre-Defined Query&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;** Dynamic Query (HTTP Request)**&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Pros&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Fast to   implement and easy to maintain&lt;/td&gt;
&lt;td&gt;Highly flexible—query adapts to user or agent input in real time&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reliable for routine, repeatable queries&lt;/td&gt;
&lt;td&gt;Efficient—returns only what’s needed, minimizing risk of timeouts/data   overload&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;No need for advanced query skills&lt;/td&gt;
&lt;td&gt;Supports complex, cross-linked queries for richer insights&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;Cons&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Static: limited flexibility; not   responsive to changing needs&lt;/td&gt;
&lt;td&gt;Requires understanding of WIQL and Azure DevOps REST API&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;If the query returns too much data, you   may encounter errors or timeouts in your agentic workflow due to Power   Automate’s data handling limits&lt;/td&gt;
&lt;td&gt;More setup and testing needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Updates require manual changes in Azure   DevOps&lt;/td&gt;
&lt;td&gt;Errors can occur if dynamic input is invalid or query structure is   incorrect&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;Bottom Line&lt;/strong&gt;:&lt;br&gt;
&lt;em&gt;Pre-defined queries&lt;/em&gt; are great for stable, repeatable needs and quick wins.&lt;br&gt;
&lt;em&gt;Dynamic queries&lt;/em&gt; empower truly interactive, agentic workflows—perfect for evolving product management and backlog exploration.&lt;/p&gt;

&lt;p&gt;PS - The &lt;a href="https://learn.microsoft.com/en-us/azure/devops/report/powerbi/odataquery-connect?view=azure-devops" rel="noopener noreferrer"&gt;oDATA&lt;/a&gt; options is something to be explored&lt;/p&gt;

</description>
      <category>powerautomate</category>
      <category>powerfuldevs</category>
      <category>devops</category>
    </item>
    <item>
      <title>Automating Your Weekly Prep with an AI-Powered M365 Briefing with WorkIQ</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Tue, 30 Jun 2026 07:34:00 +0000</pubDate>
      <link>https://dev.to/balagmadhu/automating-your-weekly-prep-with-an-ai-powered-m365-briefing-with-workiq-2jed</link>
      <guid>https://dev.to/balagmadhu/automating-your-weekly-prep-with-an-ai-powered-m365-briefing-with-workiq-2jed</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
We've explored the immense potential of Copilot to transform our daily workflows. But what if you could start every week not just prepared, but truly proactive? What if the overwhelming feeling of a Monday morning inbox, the forgotten follow-ups, or the surprise meeting tasks could become a thing of the past? We spend precious hours just sifting through emails, cross-referencing calendars, and trying to recall commitments, all before we even get to the actual work. Here is something evolved over time and the quality of response is amazing when workIQ is enabled. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Structure of the Prompt&lt;/strong&gt;:&lt;br&gt;
Most productivity loss doesn't happen because people are lazy — it happens because of invisible overhead: the mental energy spent remembering what's pending, deciding what to do next, or realising on Wednesday that something sent on Friday never got a response. This prompt eliminates that overhead systematically&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Problem it solves&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;How&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Inbox anxiety&lt;/td&gt;
&lt;td&gt;Every actionable thread is surfaced and ranked — nothing lurks&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Forgotten follow-ups&lt;/td&gt;
&lt;td&gt;Sent Items review catches every unanswered request you made&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Meeting unprepared&lt;/td&gt;
&lt;td&gt;Category A/B meeting prep flags what needs doing before you walk in&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Time blindness&lt;/td&gt;
&lt;td&gt;The capacity overview shows next week's shape before it happens&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Reactive Mondays&lt;/td&gt;
&lt;td&gt;You start the week with a plan, not a pile&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager communication gaps&lt;/td&gt;
&lt;td&gt;The status draft means you never skip this because it takes too long&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distraction patterns&lt;/td&gt;
&lt;td&gt;The productivity summary names the patterns so you can change them&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;GLOBAL SCOPE RULES (apply to every section below)

| Rule | Definition |
|---|---|
| &lt;span class="gs"&gt;**My identity**&lt;/span&gt; | From = me; "To me" = I appear in the To field (not Cc/Bcc only) |
| &lt;span class="gs"&gt;**Lookback**&lt;/span&gt; | Past 7 calendar days from the moment this prompt runs |
| &lt;span class="gs"&gt;**Lookahead**&lt;/span&gt; | Next 7 calendar days from the moment this prompt runs |
| &lt;span class="gs"&gt;**Deduplication**&lt;/span&gt; | Deduplicate conversation threads; represent each thread once using its latest qualifying message |
| &lt;span class="gs"&gt;**Internal domain**&lt;/span&gt; | Infer my organisation's domain from my email address; all other domains = External |
| &lt;span class="gs"&gt;**Automated exclusions**&lt;/span&gt; | Drop items from: noreply / no-reply / do-not-reply / no_reply senders; Teams notification emails (noreply@&lt;span class="err"&gt;*&lt;/span&gt;.teams.microsoft.com); system alerts; OOO auto-replies (for response-detection only); digests; newsletters; bulk marketing |
| &lt;span class="gs"&gt;**Broadcast exclusions**&lt;/span&gt; | Drop subjects containing: E-Learning, Training reminder, Newsletter, Digest, Notification, Alert, System message, FYI only, Do not reply |
| &lt;span class="gs"&gt;**Calendar invite exclusions**&lt;/span&gt; | Drop calendar auto-notifications unless the body explicitly requests a non-calendar action |
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## 📤 OUTPUT STRUCTURE&lt;/span&gt;

Produce the full report in this exact sequence of sections:
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 1 — 📥 INBOX: Outstanding Actions (Lookback 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; Surface every email in my Inbox that still requires action from me.

&lt;span class="gs"&gt;**Scope:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Folder: Inbox only (no subfolders, Archive, Junk, Deleted Items)
&lt;span class="p"&gt;-&lt;/span&gt; Include only threads where I am on &lt;span class="gs"&gt;**To**&lt;/span&gt; (not Cc/Bcc only)
&lt;span class="p"&gt;-&lt;/span&gt; Represent each thread once using the &lt;span class="gs"&gt;**latest inbound message**&lt;/span&gt; within the lookback window
&lt;span class="p"&gt;-&lt;/span&gt; Apply all global exclusions above

&lt;span class="gs"&gt;**Inclusion logic (three tiers):**&lt;/span&gt;

| Tier | Condition |
|---|---|
| &lt;span class="gs"&gt;**@Mentions**&lt;/span&gt; | I am explicitly @mentioned in the message body |
| &lt;span class="gs"&gt;**Unread**&lt;/span&gt; | Message is Unread (including "seen on mobile but still Unread") |
| &lt;span class="gs"&gt;**Read – not replied**&lt;/span&gt; | Message is Read but I have NOT sent a reply after the latest inbound (compare my latest Sent timestamp in the thread vs. the latest inbound timestamp) |

&lt;span class="gs"&gt;**Prioritisation within section:**&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; @Mentions (newest → oldest)
&lt;span class="p"&gt;2.&lt;/span&gt; Unread, no @mention (newest → oldest)
&lt;span class="p"&gt;3.&lt;/span&gt; Read, not replied (newest → oldest)

&lt;span class="gs"&gt;**Output format:**&lt;/span&gt;

Start with the heading:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📥 Immediate Action — Inbox
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Provide a single continuous numbered list across all tiers.
&lt;span class="p"&gt;-&lt;/span&gt; Prefix @mention items with &lt;span class="gs"&gt;**‼️**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; For each item include: &lt;span class="gs"&gt;**Bold subject**&lt;/span&gt;, Sender (display name), Received date/time (local), one-line &lt;span class="gs"&gt;**Next step**&lt;/span&gt;

Then the heading:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📥 Action Required — Inbox
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Remaining qualifying items in the same format.

Then:
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📥 Other — Inbox
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;All examined inbox threads NOT included above: Sender – Subject – Received date (to confirm nothing was missed).
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 2 — 📨 SENT ITEMS: Awaiting Responses (Lookback 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; Surface emails I sent that requested action and have not yet received a meaningful response.

&lt;span class="gs"&gt;**Scope:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Folder: Sent Items only
&lt;span class="p"&gt;-&lt;/span&gt; From = me; deduplicate threads; use my latest sent message per thread within the lookback window
&lt;span class="p"&gt;-&lt;/span&gt; Apply all global exclusions

&lt;span class="gs"&gt;**Inclusion logic:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Include only emails where I &lt;span class="gs"&gt;**requested input, a decision, or a deliverable**&lt;/span&gt; (proposal, data, approval, feedback enabling next steps)
&lt;span class="p"&gt;-&lt;/span&gt; Exclude emails where I only asked for simple confirmation ("Is this okay?") → move to Other
&lt;span class="p"&gt;-&lt;/span&gt; Exclude emails where I only provided information/deliverables with no expectation of a reply → move to Other
&lt;span class="p"&gt;-&lt;/span&gt; If mixed informational + action-request content, treat as &lt;span class="gs"&gt;**action-request**&lt;/span&gt;

&lt;span class="gs"&gt;**Response detection (per thread):**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Check Inbox for any inbound reply &lt;span class="gs"&gt;**after**&lt;/span&gt; my latest sent timestamp in that thread
&lt;span class="p"&gt;-&lt;/span&gt; Ignore OOO auto-replies for response detection
&lt;span class="p"&gt;-&lt;/span&gt; Mark as &lt;span class="gs"&gt;**"No response yet"**&lt;/span&gt; if no qualifying inbound reply exists
&lt;span class="p"&gt;-&lt;/span&gt; Mark as &lt;span class="gs"&gt;**"Responded – further action needed"**&lt;/span&gt; if an inbound reply exists AND that reply itself requests further action from me

&lt;span class="gs"&gt;**Prioritisation:**&lt;/span&gt;
&lt;span class="p"&gt;1.&lt;/span&gt; Sent items where I explicitly &lt;span class="gs"&gt;**@mentioned**&lt;/span&gt; a recipient (and requested action) — newest → oldest
&lt;span class="p"&gt;2.&lt;/span&gt; Sent items requesting action, &lt;span class="gs"&gt;**no response yet**&lt;/span&gt; — newest → oldest; same date → alphabetical by subject

&lt;span class="gs"&gt;**Internal vs External classification:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; If ANY recipient is outside my organisation's domain → &lt;span class="gs"&gt;**External**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Otherwise → &lt;span class="gs"&gt;**Internal**&lt;/span&gt;

&lt;span class="gs"&gt;**Output format:**&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📨 Immediate Action — Sent Items
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌐 External
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🏢 Internal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;Prefix @mention items with &lt;span class="gs"&gt;**‼️**&lt;/span&gt;. Numbering is continuous across External + Internal (do not restart).

For each item include: &lt;span class="gs"&gt;**Bold subject**&lt;/span&gt;, Recipient(s) summarised, My latest sent date/time (local), Response status, first ~10 words of my sent body as a snippet, one-line &lt;span class="gs"&gt;**Next step**&lt;/span&gt; (include what I asked for).

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📨 Action Required — Sent Items
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🌐 External
&lt;/h3&gt;

&lt;h3&gt;
  
  
  🏢 Internal
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📨 Other — Sent Items
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;All examined sent threads NOT included above: Recipient(s) – Subject – Sent date.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 3 — 💬 TEAMS: Unanswered Mentions (Lookback 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; Surface Teams conversations where I was mentioned and have not replied.

&lt;span class="gs"&gt;**Scope:**&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Scan all Teams chats and channels where my name was &lt;span class="gs"&gt;**@mentioned**&lt;/span&gt; in the lookback window
&lt;span class="p"&gt;-&lt;/span&gt; Exclude threads where I have replied &lt;span class="gs"&gt;**after**&lt;/span&gt; the mention
&lt;span class="p"&gt;-&lt;/span&gt; Exclude automated bot messages and system notifications

&lt;span class="gs"&gt;**Output format:**&lt;/span&gt;

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  💬 Teams: Unanswered Mentions
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;
For each item: &lt;span class="gs"&gt;**Bold conversation/channel name**&lt;/span&gt;, Mentioned by (display name), Date/time (local), Message snippet (~10 words), one-line &lt;span class="gs"&gt;**Next step**&lt;/span&gt;.

If nothing qualifies: state explicitly.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 4 — 📊 LOOKBACK PRODUCTIVITY SUMMARY (Past 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; A concise, honest picture of how I spent my time and where I was most/least productive. Ground in Work IQ / Viva Insights data where available.

Produce the following sub-sections:

&lt;span class="gu"&gt;#### 4a. ⏱️ Time Distribution — How I Spent My Week&lt;/span&gt;

Analyse my calendar and meeting data for the past 7 days. Create meaningful categories that describe how I used my time (e.g., Deep Work, Internal Meetings, External Meetings, 1:1s, Admin &amp;amp; Planning, Learning, Unstructured/Fragmented time). For each category provide:
&lt;span class="p"&gt;-&lt;/span&gt; Category name and a one-line description
&lt;span class="p"&gt;-&lt;/span&gt; Estimated hours spent
&lt;span class="p"&gt;-&lt;/span&gt; Estimated % of working time
&lt;span class="p"&gt;-&lt;/span&gt; A brief assessment (e.g., "Well-balanced", "Potentially over-indexed", "Under-invested")

Present as a formatted table, then a short paragraph narrative.

&lt;span class="gu"&gt;#### 4b. 🏆 Key Wins &amp;amp; Decisions Made&lt;/span&gt;

List the 3–5 most significant outcomes, decisions, or deliverables completed in the past 7 days. Draw from email threads (closed action items), meeting notes/outcomes, and Teams conversations. Be specific and concise.

&lt;span class="gu"&gt;#### 4c. 🚧 Blockers &amp;amp; Escalations Identified&lt;/span&gt;

List items where progress stalled because I am waiting on others, or where a decision is overdue. Reference the relevant email/thread/meeting so I can act immediately.

&lt;span class="gu"&gt;#### 4d. 🔍 Collaboration &amp;amp; Interaction Highlights&lt;/span&gt;

Summarise the key people I collaborated with most intensely this week (internal and external). Note any collaboration patterns worth paying attention to (e.g., disproportionate time with one stakeholder, gaps in outreach to key contacts).

&lt;span class="gu"&gt;#### 4e. ⚠️ Distractions &amp;amp; Interruptions&lt;/span&gt;

Identify patterns that may have reduced focus time:
&lt;span class="p"&gt;-&lt;/span&gt; High volume of ad-hoc meeting invitations accepted
&lt;span class="p"&gt;-&lt;/span&gt; Fragmented calendar blocks (&amp;lt; 30 min between meetings)
&lt;span class="p"&gt;-&lt;/span&gt; High email response rate outside core hours
&lt;span class="p"&gt;-&lt;/span&gt; Teams message spikes during deep-work blocks

Provide 2–3 &lt;span class="gs"&gt;**concrete suggestions**&lt;/span&gt; to reduce these distractions next week.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 5 — 📝 MANAGER STATUS UPDATE DRAFT (Lookback 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; A ready-to-send (or lightly edited) status update for my manager.

Draw from Sections 1–4 to draft a concise update. Format as an email body (no subject line needed — I will add that). Structure it exactly as:

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📝 Draft: Weekly Status Update for My Manager
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;
&lt;span class="gs"&gt;**Key Wins this week:**&lt;/span&gt;
(3–5 bullet points — specific, outcome-focused)

&lt;span class="gs"&gt;**Decisions Made / Closed:**&lt;/span&gt;
(2–3 bullet points — include who was involved)

&lt;span class="gs"&gt;**Blockers Needing Your Input:**&lt;/span&gt;
(List only items where manager action or awareness is genuinely needed; be direct about what you need from them)

&lt;span class="gs"&gt;**Focus for Next Week:**&lt;/span&gt;
(3–5 bullet points — drawn from Section 6 below)

Keep the tone professional but conversational. Total length: 150–250 words.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 6 — 📅 UPCOMING WEEK: Meeting Preparation (Lookahead 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; Help me walk into next week fully prepared for every meeting that matters.

Analyse my calendar for the next 7 days. Apply the following classification:

&lt;span class="gu"&gt;#### Category A — Meetings I Organise (No Agenda Yet) ⚠️&lt;/span&gt;

List all meetings where I am the &lt;span class="gs"&gt;**organiser**&lt;/span&gt; and no agenda exists in the invite body. These need attention before the meeting. Sort by date (earliest first).

For each: &lt;span class="gs"&gt;**Bold meeting title**&lt;/span&gt;, Date/time (local), Attendees (summarised), one-line &lt;span class="gs"&gt;**Suggested agenda action**&lt;/span&gt; (e.g., "Draft and send agenda by [day]").

&lt;span class="gu"&gt;#### Category B — Meetings Where I Am Mentioned / Have Prep Tasks 📌&lt;/span&gt;

List meetings where I am &lt;span class="gs"&gt;**mentioned in the agenda**&lt;/span&gt; or where the invite body contains explicit tasks or action items assigned to me. Sort by date.

For each: &lt;span class="gs"&gt;**Bold meeting title**&lt;/span&gt;, Date/time (local), Organiser, the specific task or mention, one-line &lt;span class="gs"&gt;**Prep action**&lt;/span&gt;.

&lt;span class="gu"&gt;#### Category C — Other Relevant Meetings Requiring Attention 🔔&lt;/span&gt;

List any remaining meetings that do not fall into A or B but may still require my attention (e.g., strategic meetings, external client calls, presentations I am part of). &lt;span class="gs"&gt;**Exclude**&lt;/span&gt; routine recurring status meetings or check-ins unless I have a specific task.

For each: &lt;span class="gs"&gt;**Bold meeting title**&lt;/span&gt;, Date/time (local), Organiser, one-line &lt;span class="gs"&gt;**Why it matters / suggested prep**&lt;/span&gt;.

&lt;span class="gs"&gt;**Output heading:**&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  📅 Upcoming Week — Meeting Preparation
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Category A: I Organise — No Agenda Yet
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Category B: I'm Mentioned / Have Prep Tasks
&lt;/h3&gt;

&lt;h3&gt;
  
  
  Category C: Other Relevant Meetings
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;
If a category is empty, state that explicitly.
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 7 — 🗓️ UPCOMING WEEK: Time &amp;amp; Capacity Overview (Lookahead 7 days)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; Give me a forward-looking picture of how my time is allocated next week so I can spot imbalances before they happen.

Using my calendar for the next 7 days:
&lt;span class="p"&gt;
1.&lt;/span&gt; &lt;span class="gs"&gt;**Estimated time in meetings**&lt;/span&gt; (hours and % of working week, assuming 40-hour week)
&lt;span class="p"&gt;2.&lt;/span&gt; &lt;span class="gs"&gt;**Estimated free/focus time**&lt;/span&gt; available (hours and %)
&lt;span class="p"&gt;3.&lt;/span&gt; &lt;span class="gs"&gt;**Busiest day**&lt;/span&gt; and &lt;span class="gs"&gt;**lightest day**&lt;/span&gt;
&lt;span class="p"&gt;4.&lt;/span&gt; &lt;span class="gs"&gt;**Any back-to-back meeting chains**&lt;/span&gt; (3+ consecutive meetings with &amp;lt; 15 min break) — flag these explicitly
&lt;span class="p"&gt;5.&lt;/span&gt; &lt;span class="gs"&gt;**Recommended focus blocks**&lt;/span&gt; — suggest 2–3 specific time slots (day + approximate time) where I should protect deep-work time based on my calendar gaps

Present as a short formatted summary with a brief planning recommendation at the end.

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  🗓️ Next Week — Capacity &amp;amp; Focus Planning
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;### SECTION 8 — ✅ CONSOLIDATED PRIORITY LIST (Action Checklist)&lt;/span&gt;

&lt;span class="gs"&gt;**Purpose:**&lt;/span&gt; One place to see everything I need to do, ranked by urgency. This is the section I act from.

Aggregate all action items from Sections 1–6. De-duplicate any items that appear in multiple sections. Rank using this priority order:

| Priority | Source |
|---|---|
| 🔴 Urgent | @Mentioned emails/Teams not replied + Sent items with deadline risk + No-agenda meetings happening in &amp;lt; 48 hours |
| 🟠 High | Unread emails requiring reply + Awaiting responses blocking progress + Meeting prep for Category A &amp;amp; B |
| 🟡 Medium | Read-not-replied emails + Category C meetings + Manager update draft |
| 🟢 Low / This week | Everything else identified in the report |

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  ✅ Consolidated Priority List — Week of [Date]
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;
Provide a single numbered list across all priorities. Format each line as:

&lt;span class="sb"&gt;`[Priority emoji] **[Action title]** — Source: [Section ref] — Due/By: [date or "ASAP"]`&lt;/span&gt;
&lt;span class="p"&gt;
---
&lt;/span&gt;
&lt;span class="gu"&gt;## 🔒 FORMATTING &amp;amp; QUALITY RULES (apply globally)&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; All section headings must appear exactly as written above
&lt;span class="p"&gt;-&lt;/span&gt; Do not show full recipient/attendee lists — summarise (e.g., "3 recipients incl. [Name]")
&lt;span class="p"&gt;-&lt;/span&gt; Do not expose email addresses in output — use display names only
&lt;span class="p"&gt;-&lt;/span&gt; If a section has no qualifying items, state: &lt;span class="ge"&gt;*"Nothing to action here — you're clear."*&lt;/span&gt;
&lt;span class="p"&gt;-&lt;/span&gt; Keep Next step recommendations to one line; be direct and specific (avoid vague verbs like "consider" or "look into")
&lt;span class="p"&gt;-&lt;/span&gt; Flag any data gaps (e.g., if Teams data is unavailable, note it and skip that section gracefully)
&lt;span class="p"&gt;-&lt;/span&gt; Total report should be scannable in under 10 minutes

&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Work IQ (Microsoft's Viva Insights / Workplace Analytics layer) is what transforms this from a email summary into a genuine productivity intelligence report. Here's specifically what it unlocks for each section:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;strong&gt;Section&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;Without Work IQ&lt;/strong&gt;&lt;/th&gt;
&lt;th&gt;&lt;strong&gt;With Work IQ&lt;/strong&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Time Distribution (4a)&lt;/td&gt;
&lt;td&gt;Rough estimates from calendar titles alone&lt;/td&gt;
&lt;td&gt;Precise categorisation using meeting metadata, focus time signals, and collaboration patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Distractions (4e)&lt;/td&gt;
&lt;td&gt;Generic observations&lt;/td&gt;
&lt;td&gt;Actual data: after-hours email spikes, fragmented calendar blocks, meeting-acceptance rates, quiet hours violations&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Collaboration Highlights (4d)&lt;/td&gt;
&lt;td&gt;"You emailed these people"&lt;/td&gt;
&lt;td&gt;Network analysis — who you over-collaborated with, who went dark, whether key stakeholders are being neglected&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Blockers (4c)&lt;/td&gt;
&lt;td&gt;Based on email threads only&lt;/td&gt;
&lt;td&gt;Cross-referenced with task signals, missed response SLAs, and meeting outcomes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Capacity Planning (7)&lt;/td&gt;
&lt;td&gt;Calendar gap counting&lt;/td&gt;
&lt;td&gt;Focus time recommendations grounded in your actual historical deep-work patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Manager Update (5)&lt;/td&gt;
&lt;td&gt;Reconstructed from memory&lt;/td&gt;
&lt;td&gt;Drawn from verified activity data — wins and decisions have evidence behind them&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;What This Prompt Does&lt;br&gt;
This is a single, scheduled intelligence briefing that runs every Sunday night and gives you a complete picture of the week behind you and the week ahead — without you having to open a single folder, scroll through a single inbox, or reconstruct anything from memory.&lt;br&gt;
In one automated run, it:&lt;br&gt;
Audits your Inbox — finds every thread that still needs action from you, ranked by urgency, with a suggested next step already written&lt;br&gt;
Audits your Sent Items — surfaces emails where you're waiting on someone else, so nothing you kicked off gets forgotten&lt;br&gt;
Scans Teams — catches any @mentions you haven't replied to, which are easy to miss when switching between channels&lt;br&gt;
Summarises your past week — time distribution, key wins, blockers, collaboration patterns, and distractions — so you arrive Monday with self-awareness, not guesswork&lt;br&gt;
Drafts your manager update — a ready-to-send status email built directly from your actual activity data, not from what you can remember on a Friday afternoon&lt;br&gt;
Prepares you for every meeting next week — flags which ones have no agenda (and you're the organiser), which ones have tasks assigned to you, and which ones are strategically important&lt;br&gt;
Maps your capacity — shows where your focus blocks are, where the back-to-back meeting chains are, and where to protect deep-work time before the week fills up&lt;br&gt;
Produces one consolidated action checklist — a single ranked to-do list (🔴🟠🟡🟢) you can open Monday morning and act from immediately&lt;br&gt;
The core idea is simple: you shouldn't have to do the triage yourself. The prompt does the triage; you do the thinking.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Augment intelligence&lt;/strong&gt; i.e., you shouldn't have to do the triage yourself. The prompt does the triage; you do the thinking.&lt;/p&gt;

</description>
      <category>m365copilot</category>
      <category>workiq</category>
      <category>powerplatform</category>
      <category>powerfuldevs</category>
    </item>
    <item>
      <title>Transform Raw Data into Visual Insights in Copilot Studio with a Single Skill!</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Mon, 22 Jun 2026 05:42:44 +0000</pubDate>
      <link>https://dev.to/balagmadhu/transform-raw-data-into-visual-insights-in-copilot-studio-with-a-single-skill-1h25</link>
      <guid>https://dev.to/balagmadhu/transform-raw-data-into-visual-insights-in-copilot-studio-with-a-single-skill-1h25</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
Your agent is a data powerhouse. It connects to APIs, pulls reports, and processes complex queries. But too often, the output looks something like this:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp07oot0cmyl3nch2h35.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsp07oot0cmyl3nch2h35.png" alt=" "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For the end users, this requires the user to actively parse, compare, and mentally visualize trends. &lt;/p&gt;

&lt;p&gt;Now with the new Copilot Studio Run time engine, we could leverage Skills to enable this visualisation. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The "Data Visualization &amp;amp; Response Formatting"&lt;/strong&gt;: SkillMd&lt;/p&gt;

&lt;p&gt;I've crafted a comprehensive SkillMd (a markdown-based skill definition) that you can drop directly into your Copilot Studio agent. This skill empowers your agent to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatically Detect Data&lt;/strong&gt;: When a response contains quantifiable data, the skill kicks in.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Smartly Select Charts&lt;/strong&gt;: It intelligently chooses the best chart type (Pie, Bar, Line, etc.) based on the data's structure.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Render Visuals&lt;/strong&gt;: It generates beautiful, interactive charts using Mermaid diagrams (which Copilot Studio supports natively!).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pair with Precision&lt;/strong&gt;: Every chart is accompanied by a precise markdown table for those who need exact figures.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Deliver Key Insights&lt;/strong&gt;: It summarizes the most important trends and observations in plain language.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Propose Next Steps&lt;/strong&gt;: It proactively suggests follow-up questions for deeper analysis.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In essence, this skill turns numbers into narratives. Anytime the agent detects data worth seeing — not just reading — it renders the right chart, pairs it with a precise table, and explains what the numbers mean. It activates automatically, so analysts and leadership get visual-first answers without having to ask.&lt;/p&gt;

&lt;p&gt;&lt;iframe height="600" src="https://codepen.io/bala-gopal/embed/myROqZr?height=600&amp;amp;default-tab=result&amp;amp;embed-version=2"&gt;
&lt;/iframe&gt;
&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;markdown
&lt;span class="gh"&gt;# Skill: Data Visualization &amp;amp; Response Formatting&lt;/span&gt;

&lt;span class="gu"&gt;## Description&lt;/span&gt;

This skill enables the agent to render data points, metrics, and comparisons as &lt;span class="gs"&gt;**visual charts and graphs**&lt;/span&gt; alongside structured markdown tables. When a response involves quantifiable data (e.g., revenue, units, growth rates, period comparisons), the agent automatically selects the most appropriate chart type and renders it using supported formats such as &lt;span class="gs"&gt;**Mermaid diagrams**&lt;/span&gt;, &lt;span class="gs"&gt;**HTML/Chart.js snippets**&lt;/span&gt;, or &lt;span class="gs"&gt;**Python code blocks**&lt;/span&gt; (matplotlib/plotly) depending on the platform capabilities.&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## When this skill is activated:&lt;/span&gt;
&lt;span class="p"&gt;
1.&lt;/span&gt; Identify that the user's query involves &lt;span class="gs"&gt;**quantifiable data points**&lt;/span&gt; (e.g., revenue, volume, rates, comparisons across periods or categories).
&lt;span class="p"&gt;2.&lt;/span&gt; Determine the &lt;span class="gs"&gt;**most appropriate chart type**&lt;/span&gt; based on the data structure (see Chart Selection Guide below).
&lt;span class="p"&gt;3.&lt;/span&gt; Render the chart using the best available format (Mermaid preferred for markdown environments).
&lt;span class="p"&gt;4.&lt;/span&gt; Accompany every chart with a &lt;span class="gs"&gt;**supporting markdown table**&lt;/span&gt; containing the exact figures for reference and accessibility.
&lt;span class="p"&gt;5.&lt;/span&gt; Provide a &lt;span class="gs"&gt;**"Key Insights"**&lt;/span&gt; section summarizing notable trends, highlights, or concerns in plain language.
&lt;span class="p"&gt;6.&lt;/span&gt; End with a &lt;span class="gs"&gt;**proactive follow-up question**&lt;/span&gt; offering the user a logical next step for deeper analysis.&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## Chart Selection Guide&lt;/span&gt;

| Data Scenario | Recommended Chart | When to Use |
|---|---|---|
| Comparing values across categories | &lt;span class="gs"&gt;**Bar Chart**&lt;/span&gt; (vertical) | 2–8 categories, single or dual metric |
| Showing change over time | &lt;span class="gs"&gt;**Line Chart**&lt;/span&gt; | 3+ time periods, trend identification |
| Showing proportion or share | &lt;span class="gs"&gt;**Pie / Donut Chart**&lt;/span&gt; | 2–6 categories, parts of a whole |
| Comparing two periods side by side | &lt;span class="gs"&gt;**Grouped Bar Chart**&lt;/span&gt; | Period-over-period comparison |
| Showing ranking or sorted performance | &lt;span class="gs"&gt;**Horizontal Bar Chart**&lt;/span&gt; | Ranking items by a single metric |
| Displaying distribution or variance | &lt;span class="gs"&gt;**Stacked Bar Chart**&lt;/span&gt; | Breakdown of a total across sub-categories |
| Single KPI or headline metric | &lt;span class="gs"&gt;**KPI Card (bold text block)**&lt;/span&gt; | One standout number with context |&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## Rendering Formats (Priority Order)&lt;/span&gt;

&lt;span class="gu"&gt;### 1. Mermaid Diagrams (Preferred)&lt;/span&gt;
Use Mermaid syntax for environments that support it. Wrap in a fenced code block with &lt;span class="sb"&gt;`mermaid`&lt;/span&gt; language tag.

&lt;span class="gs"&gt;**Bar Chart Example:**&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
xychart-beta
    title "Sales by Category — Current vs Prior Period"
    x-axis ["Category A", "Category B"]
    y-axis "Value" 0 --&amp;gt; 100
    bar [64.5, 16.4]
    bar [67.9, 16.2]

&lt;span class="p"&gt;~~~&lt;/span&gt;plaintext

&lt;span class="gs"&gt;**Pie Chart Example:**&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
pie title Share by Category — Current Period
    "Category A" : 54
    "Category B" : 31
    "Category C" : 15

&lt;span class="p"&gt;~~~&lt;/span&gt;plaintext

&lt;span class="gs"&gt;**Line Chart Example:**&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
xychart-beta
    title "Performance Trend Over Time"
    x-axis ["Period 1", "Period 2", "Period 3", "Period 4", "Period 5", "Period 6"]
    y-axis "Value" 50 --&amp;gt; 90
    line [62.3, 68.1, 71.4, 65.9, 67.9, 70.2]

&lt;span class="p"&gt;~~~&lt;/span&gt;python

&lt;span class="gu"&gt;### 2. Python Code Blocks (Fallback)&lt;/span&gt;
If Mermaid is not supported, provide a ready-to-run Python code block using &lt;span class="sb"&gt;`matplotlib`&lt;/span&gt; or &lt;span class="sb"&gt;`plotly`&lt;/span&gt;.

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;python
import matplotlib.pyplot as plt

categories = ['Category A', 'Category B']
current = [64.5, 16.4]
prior = [67.9, 16.2]

x = range(len(categories))
width = 0.35

fig, ax = plt.subplots()
ax.bar([i - width/2 for i in x], current, width, label='Current Period', color='#1a1a1a')
ax.bar([i + width/2 for i in x], prior, width, label='Prior Period', color='#c4a35a')

ax.set_ylabel('Value')
ax.set_title('Performance — Current vs Prior Period')
ax.set_xticks(x)
ax.set_xticklabels(categories)
ax.legend()
plt.tight_layout()
plt.show()

&lt;span class="p"&gt;~~~&lt;/span&gt;html

&lt;span class="gu"&gt;### 3. HTML/Chart.js Snippet (Web Environments)&lt;/span&gt;
For web-based agent interfaces that render HTML.&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## Formatting &amp;amp; Style Rules&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; &lt;span class="gs"&gt;**Always pair a chart with a data table**&lt;/span&gt; — charts for quick visual insight, tables for exact numbers.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Chart titles**&lt;/span&gt; must clearly state: metric, period, and unit of measure (e.g., &lt;span class="ge"&gt;*"Revenue — Current vs Prior Period (USD)"*&lt;/span&gt;).
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Number formatting**&lt;/span&gt; in tables:
&lt;span class="p"&gt;  -&lt;/span&gt; Currency: &lt;span class="sb"&gt;`$XX,XXX,XXX`&lt;/span&gt; (with commas)
&lt;span class="p"&gt;  -&lt;/span&gt; Units: &lt;span class="sb"&gt;`XX,XXX`&lt;/span&gt; (with commas)
&lt;span class="p"&gt;  -&lt;/span&gt; Percentages: &lt;span class="sb"&gt;`+X.X%`&lt;/span&gt; or &lt;span class="sb"&gt;`-X.X%`&lt;/span&gt; (always show sign)
&lt;span class="p"&gt;  -&lt;/span&gt; Changes: prefix with &lt;span class="sb"&gt;`+`&lt;/span&gt; or &lt;span class="sb"&gt;`-`&lt;/span&gt; to indicate direction
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Key Insights**&lt;/span&gt; should be &lt;span class="gs"&gt;**2–4 bullet points**&lt;/span&gt;, each tied to a specific visual observation.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Follow-up suggestions**&lt;/span&gt; should guide toward deeper or adjacent analysis.&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## Examples&lt;/span&gt;

&lt;span class="gu"&gt;### Example 1: Multi-Category Period Comparison (Bar Chart + Table)&lt;/span&gt;

&lt;span class="gs"&gt;**User request:**&lt;/span&gt; &lt;span class="ge"&gt;*"Show me Category A and Category B results for the current period vs the prior period"*&lt;/span&gt;

&lt;span class="gs"&gt;**Expected behavior:**&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; The agent renders a **grouped bar chart** comparing both categories across the two periods, followed by a detailed table:&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
xychart-beta
    title "Revenue — Current vs Prior Period"
    x-axis ["Category A", "Category B"]
    y-axis "Revenue" 0 --&amp;gt; 80
    bar [64.5, 16.4]
    bar [67.9, 16.2]

&lt;span class="p"&gt;~~~&lt;/span&gt;markdown
&lt;span class="gt"&gt;
&amp;gt; **Revenue Summary**&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category | Current Period | Prior Period | Change ($) | Change (%) |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; |----------|---------------|--------------|------------|------------|&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category A | $64,461,922 | $67,850,448 | -$3,388,526 | -5.0% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category B | $16,449,638 | $16,162,736 | +$286,901 | +1.8% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; **Key Insights**&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - **Category A** declined 5.0% — visible in the chart as a shorter bar vs the prior period.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - **Category B** grew modestly at +1.8%, nearly flat visually but positive momentum.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; *Would you like a deeper breakdown by sub-category or a trend view across multiple periods?*&lt;/span&gt;&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;### Example 2: Trend Over Time (Line Chart)&lt;/span&gt;

&lt;span class="gs"&gt;**User request:**&lt;/span&gt; &lt;span class="ge"&gt;*"Show me the performance trend for the last 6 periods"*&lt;/span&gt;

&lt;span class="gs"&gt;**Expected behavior:**&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; The agent renders a **line chart** showing the trajectory, followed by the data table:&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
xychart-beta
    title "Performance Trend — Last 6 Periods"
    x-axis ["P1", "P2", "P3", "P4", "P5", "P6"]
    y-axis "Value" 50 --&amp;gt; 90
    line [62.3, 67.9, 70.2, 74.5, 68.1, 64.5]

&lt;span class="p"&gt;~~~&lt;/span&gt;markdown
&lt;span class="gt"&gt;
&amp;gt; | Period | Value | Period-over-Period Change (%) |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; |--------|-------|------------------------------|&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P1 | $62,300,000 | — |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P2 | $67,900,000 | +9.0% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P3 | $70,200,000 | +3.4% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P4 | $74,500,000 | +6.1% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P5 | $68,100,000 | -8.6% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | P6 | $64,500,000 | -5.3% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; **Key Insights**&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - Performance peaked in **P4** at $74.5M before declining for two consecutive periods.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - The downward trend (-8.6% → -5.3%) suggests softening performance — worth investigating the underlying drivers.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; *Would you like me to overlay a forecast line or break this down by sub-category?*&lt;/span&gt;&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;### Example 3: Proportional Share (Pie Chart)&lt;/span&gt;

&lt;span class="gs"&gt;**User request:**&lt;/span&gt; &lt;span class="ge"&gt;*"What's the share breakdown by category for the current period?"*&lt;/span&gt;

&lt;span class="gs"&gt;**Expected behavior:**&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; The agent renders a **pie chart** showing proportional share:&lt;/span&gt;

&lt;span class="p"&gt;~~~&lt;/span&gt;&lt;span class="nl"&gt;
&lt;/span&gt;mermaid
pie title Share by Category — Current Period
    "Category A" : 54
    "Category B" : 31
    "Category C" : 15
&lt;span class="p"&gt;~~~&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; | Category | Value | Share (%) |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; |----------|-------|-----------|&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category A | $285,400,000 | 54% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category B | $163,900,000 | 31% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | Category C | $79,300,000 | 15% |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; | **Total** | **$528,600,000** | **100%** |&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; **Key Insights**&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - **Category A** is the dominant contributor at 54% of the total.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; - **Category B** contributes nearly a third — any softness here materially impacts the overall number.&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="gt"&gt;&amp;gt; *Would you like to see how this split has shifted compared to the prior period?*&lt;/span&gt;&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;### Example 4: Data Not Available&lt;/span&gt;

&lt;span class="gs"&gt;**User request:**&lt;/span&gt; &lt;span class="ge"&gt;*"Chart the margin breakdown for this segment"*&lt;/span&gt;

&lt;span class="gs"&gt;**Expected behavior:**&lt;/span&gt;
&lt;span class="gt"&gt;
&amp;gt; I'm sorry, margin data for that segment is not available in my current dataset. I can visualize **revenue** and **volume** breakdowns with charts and tables. Would that be helpful?&lt;/span&gt;&lt;span class="sb"&gt;


&lt;/span&gt;&lt;span class="gu"&gt;## Notes&lt;/span&gt;
&lt;span class="p"&gt;
-&lt;/span&gt; This skill activates &lt;span class="gs"&gt;**automatically**&lt;/span&gt; when the agent detects &lt;span class="gs"&gt;**2+ comparable data points**&lt;/span&gt; — the user does not need to explicitly request a chart.
&lt;span class="p"&gt;-&lt;/span&gt; For &lt;span class="gs"&gt;**single data points**&lt;/span&gt; with no comparison, use a &lt;span class="gs"&gt;**KPI-style bold text block**&lt;/span&gt; instead of a chart, and prompt the user for a comparison dimension.
&lt;span class="p"&gt;-&lt;/span&gt; &lt;span class="gs"&gt;**Charts and tables are complementary**&lt;/span&gt; — never render a chart without an accompanying data table.
&lt;span class="p"&gt;-&lt;/span&gt; The &lt;span class="gs"&gt;**follow-up question**&lt;/span&gt; should guide toward a deeper or adjacent analysis, never repeating what was already shown.
&lt;span class="p"&gt;-&lt;/span&gt; When the rendering environment doesn't support Mermaid, fall back to Python code blocks with clear instructions.
&lt;span class="p"&gt;-&lt;/span&gt; All figures must be &lt;span class="gs"&gt;**grounded in source data**&lt;/span&gt; — never fabricate or estimate values to populate a chart.

plaintext
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Empower your Copilot Studio agent with visual intelligence&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;In essence, this skill turns numbers into narratives. Anytime the agent detects data worth seeing — not just reading — it renders the right chart, pairs it with a precise table, and explains what the numbers mean. It activates automatically, so analysts and leadership get visual-first answers without having to ask.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F591pr01py38krcrl5oj6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F591pr01py38krcrl5oj6.png" alt=" "&gt;&lt;/a&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;pie title Revenue Composition (Q1–Q3 2026)
    "Software (£)" : 20000
    "Hardware (£)" : 12000
    "Services (£)" : 7500
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
      <category>copilotstudio</category>
      <category>powerfuldevs</category>
      <category>powerplatform</category>
    </item>
    <item>
      <title>Navigating the New Copilot Studio: A "Good, Bad, and Nitty-Gritty" First Look</title>
      <dc:creator>Bala Madhusoodhanan</dc:creator>
      <pubDate>Tue, 16 Jun 2026 07:23:00 +0000</pubDate>
      <link>https://dev.to/balagmadhu/navigating-the-new-copilot-studio-a-good-bad-and-nitty-gritty-first-look-1843</link>
      <guid>https://dev.to/balagmadhu/navigating-the-new-copilot-studio-a-good-bad-and-nitty-gritty-first-look-1843</guid>
      <description>&lt;p&gt;&lt;strong&gt;Intro&lt;/strong&gt;:&lt;br&gt;
The latest iteration of Copilot Studio has landed (announced last week at &lt;a href="https://news.microsoft.com/build-2026/" rel="noopener noreferrer"&gt;MSFT BUILD 26&lt;/a&gt;, promising a transformative experience in agent building. As with any significant overhaul, it brings a mix of innovation and growing pains. To objectively assess this new landscape, let's apply a simple, yet powerful, mental model: the Good, the Bad, and the Nitty-Gritty. This framework helps us highlight the triumphs, confront the challenges, and identify the essential, sometimes less glamorous, tasks required to move forward.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Highlights (The Good): Embracing the Future of AI Agents&lt;/strong&gt;&lt;br&gt;
The new Copilot Studio shines brightest with its underlying technological advancements and user-centric features designed to streamline agent development.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;A Powerful New Orchestrator: At its heart lies a robust orchestrator, powered by Claude, boasting direct access to Bash, Python, and Node environments. This opens up a world of possibilities for complex scripting and integrations. It even comes pre-packed with built-in skills for handling common document types like Excel, CSV, PDF, DOCX, and PowerPoint extraction.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Intelligent Memory: A game-changer for conversational AI, the new Memory feature allows agents to recall user preferences and conversational context across multiple sessions. Imagine an agent that genuinely remembers your role or preferences, eliminating repetitive inputs.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Dynamic Skills Creation: The new "Skills" concept is a powerful way to encapsulate agent capabilities. What's truly impressive is the ability to refine these skills through natural language prompting in the preview mode, with the agent automatically generating the necessary skill.md file. This democratizes complex agent programming.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reimagined Workflows: Power Automate flows have evolved into "Workflows," offering sequenced actions, conditional branching, and loops. This not only provides a more structured way to build complex agent logic but also serves as the new, more organized home for triggering autonomous agents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhanced User Experience &amp;amp; Safety: The new Preview canvas now includes a helpful latency readout, giving developers real-time insights into agent response times. Furthermore, safety and moderation features have been improved with a wider, more granular range of levels.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Effortless File Generation: The orchestrator's ability to generate downloadable HTML and Excel files directly from agent interactions, without requiring manual coding, is a testament to its advanced automation capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Flexible Knowledge Integration: While the direct Dataverse knowledge option is absent, the Dataverse MCP tool effectively fills the gap. The prominent "Public Websites" toggle ensures agents can access up-to-date information via Bing search, and the ability to upload unstructured PDFs as knowledge sources adds significant versatility.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Challenges (The Bad): Missing Pieces and Friction Points&lt;/strong&gt;:&lt;br&gt;
Despite its innovations, the Version 1 release of Copilot Studio presents some notable hurdles and missing functionalities that power users will undoubtedly feel.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;The Demise of "Topics": Perhaps the most significant "bad" news is the complete removal of "Topics." These were the bedrock of structured conversational trees, enabling pre-programmed messages and questions. Their absence creates a void for precise conversational control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Loss of "Solution-First" Building: The new "New Agent" button immediately drops you into the build workspace, removing the initial option to select a solution and schema name. This can disrupt established development workflows for those who prioritize a structured project setup.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Hidden &amp;amp; Relocated Features: The "Tools" section, once highly visible, is now less prominent. Environment selection has moved, and suggested prompts and settings are tucked deep within the settings menu, requiring more navigation to find.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Limited Evaluation Options: The new "Evaluate" mode, while promising, currently only supports quick question sets and general quality testing, lacking the diverse metrics available in the classic experience. Debugging is also largely confined to the live preview window, with no separate activity history tab.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conversation Routing Limitations: The reliance on heavy natural language prompting for conversation routing, coupled with limited or broken Adaptive Card button selection, can make precise control challenging.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Specific Syntax for Skills: While powerful, the requirement for strictly lowercase/hyphen naming syntax for skills, and the absence of forward-slash shortcuts for linking assets, introduces minor friction points.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Missing Channel Integrations: Some familiar channel integrations, like SharePoint, are currently missing from the "Publish" dropdown.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;No Inline Child Agents: The ability to create child agents that existed only within the context of a parent agent has been removed.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;The Heavy Lifting Ahead&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Re-evaluating Conversational Design: For those heavily reliant on "Topics," the immediate "ugly" choices involve either reverting to the classic experience (and foregoing the new orchestrator's benefits) or the heavy lift of attempting to embed structured conversations directly into agent instructions and skills. There's a glimmer of hope that future "Workflows" might reintroduce similar node-based conversational control.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advocating for Change: The most critical "ugly" task falls on power users: submitting formal feedback and Design Change Requests (DCRs) to Microsoft. The author explicitly states this is crucial to ensure that essential functionalities return before general adoption. Your voice is vital.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Adapting to New Paradigms: Users must embrace the new approach to skill creation—iteratively prompting the agent to refine capabilities and generate skill.md files. Similarly, understanding and leveraging the new "Workflows" feature is no longer optional but a fundamental part of building robust agents.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Rethinking Multi-Agent Architectures: With inline child agents gone, the "ugly" reality is a shift towards building standalone child agents and connecting them, or fully embracing "Skills" as the primary replacement for modularizing agent capabilities.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;A Promising, Yet Evolving Platform&lt;/strong&gt;:&lt;br&gt;
The new Copilot Studio is a bold step forward, bringing powerful AI orchestration and intelligent features to the forefront. However, it's clearly a Version 1.0. While the "good" aspects promise an exciting future, the "bad" reveals areas of regression that demand attention. The "ugly" truth is that shaping this future requires users to roll up their sleeves, adapt to new paradigms, and actively provide feedback. By doing so, we can collectively help guide Copilot Studio into becoming the truly comprehensive and intuitive agent-building platform it aspires to be.&lt;/p&gt;

</description>
      <category>copilotstudio</category>
      <category>powerplatform</category>
    </item>
  </channel>
</rss>
