Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions .github/plugin/marketplace.json
Original file line number Diff line number Diff line change
Expand Up @@ -453,6 +453,12 @@
"description": "Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio",
"version": "1.0.0"
},
{
"name": "project-documenter",
"source": "project-documenter",
"description": "Generate professional project documentation with draw.io architecture diagrams and Word (.docx) output with embedded images. Automatically discovers any project's technology stack and produces Markdown, diagrams, PNG exports, and a formatted Word document.",
"version": "1.0.0"
},
{
"name": "project-planning",
"source": "project-planning",
Expand Down
12 changes: 6 additions & 6 deletions docs/README.agents.md

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions docs/README.plugins.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-plugins) for guidelines on how t
| [power-bi-development](../plugins/power-bi-development/README.md) | Comprehensive Power BI development resources including data modeling, DAX optimization, performance tuning, visualization design, security best practices, and DevOps/ALM guidance for building enterprise-grade Power BI solutions. | 8 items | power-bi, dax, data-modeling, performance, visualization, security, devops, business-intelligence |
| [power-platform-architect](../plugins/power-platform-architect/README.md) | Solution Architect for the Microsoft Power Platform, turning business requirements into functioning Power Platform solution architectures. | 1 items | power-platform, power-platform-architect, power-apps, dataverse, power-automate, power-pages, power-bi |
| [power-platform-mcp-connector-development](../plugins/power-platform-mcp-connector-development/README.md) | Complete toolkit for developing Power Platform custom connectors with Model Context Protocol integration for Microsoft Copilot Studio | 3 items | power-platform, mcp, copilot-studio, custom-connector, json-rpc |
| [project-documenter](../plugins/project-documenter/README.md) | Generate professional project documentation with draw.io architecture diagrams and Word (.docx) output with embedded images. Automatically discovers any project's technology stack and produces Markdown, diagrams, PNG exports, and a formatted Word document. | 3 items | documentation, architecture-diagrams, drawio, word-document, docx, png-images, c4-model, project-summary, auto-discovery |
| [project-planning](../plugins/project-planning/README.md) | Tools and guidance for software project planning, feature breakdown, epic management, implementation planning, and task organization for development teams. | 15 items | planning, project-management, epic, feature, implementation, task, architecture, technical-spike |
| [python-mcp-development](../plugins/python-mcp-development/README.md) | Complete toolkit for building Model Context Protocol (MCP) servers in Python using the official SDK with FastMCP. Includes instructions for best practices, a prompt for generating servers, and an expert chat mode for guidance. | 2 items | python, mcp, model-context-protocol, fastmcp, server-development |
| [react18-upgrade](../plugins/react18-upgrade/README.md) | Enterprise React 18 migration toolkit with specialized agents and skills for upgrading React 16/17 class-component codebases to React 18.3.1. Includes auditor, dependency surgeon, class component migration specialist, automatic batching fixer, and test guardian. | 13 items | react18, react, migration, upgrade, class-components, lifecycle, batching |
Expand Down
2 changes: 2 additions & 0 deletions docs/README.skills.md
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [dotnet-upgrade](../skills/dotnet-upgrade/SKILL.md) | Ready-to-use prompts for comprehensive .NET framework upgrade analysis and execution | None |
| [doublecheck](../skills/doublecheck/SKILL.md) | Three-layer verification pipeline for AI output. Extracts verifiable claims, finds supporting or contradicting sources via web search, runs adversarial review for hallucination patterns, and produces a structured verification report with source links for human review. | `assets/verification-report-template.md` |
| [draw-io-diagram-generator](../skills/draw-io-diagram-generator/SKILL.md) | Use when creating, editing, or generating draw.io diagram files (.drawio, .drawio.svg, .drawio.png). Covers mxGraph XML authoring, shape libraries, style strings, flowcharts, system architecture, sequence diagrams, ER diagrams, UML class diagrams, network topology, layout strategy, the hediet.vscode-drawio VS Code extension, and the full agent workflow from request to a ready-to-open file. | `assets/templates`<br />`references/drawio-xml-schema.md`<br />`references/shape-libraries.md`<br />`references/style-reference.md`<br />`scripts/.gitignore`<br />`scripts/README.md`<br />`scripts/add-shape.py`<br />`scripts/validate-drawio.py` |
| [drawio](../skills/drawio/SKILL.md) | Generate draw.io diagrams as .drawio files and export to PNG/SVG/PDF with embedded XML | `scripts/drawio-to-png.mjs`<br />`scripts/package.json` |
| [editorconfig](../skills/editorconfig/SKILL.md) | Generates a comprehensive and best-practice-oriented .editorconfig file based on project analysis and user preferences. | None |
| [ef-core](../skills/ef-core/SKILL.md) | Get best practices for Entity Framework Core | None |
| [email-drafter](../skills/email-drafter/SKILL.md) | Draft and review professional emails that match your personal writing style. Analyzes your sent emails for tone, greeting, structure, and sign-off patterns via WorkIQ, then generates context-aware drafts for any recipient. USE FOR: draft email, write email, compose email, reply email, follow-up email, analyze email tone, email style. | None |
Expand Down Expand Up @@ -201,6 +202,7 @@ See [CONTRIBUTING.md](../CONTRIBUTING.md#adding-skills) for guidelines on how to
| [mcp-create-declarative-agent](../skills/mcp-create-declarative-agent/SKILL.md) | Skill converted from mcp-create-declarative-agent.prompt.md | None |
| [mcp-deploy-manage-agents](../skills/mcp-deploy-manage-agents/SKILL.md) | Skill converted from mcp-deploy-manage-agents.prompt.md | None |
| [mcp-security-audit](../skills/mcp-security-audit/SKILL.md) | Audit MCP (Model Context Protocol) server configurations for security issues. Use this skill when:<br />- Reviewing .mcp.json files for security risks<br />- Checking MCP server args for hardcoded secrets or shell injection patterns<br />- Validating that MCP servers use pinned versions (not @latest)<br />- Detecting unpinned dependencies in MCP server configurations<br />- Auditing which MCP servers a project registers and whether they're on an approved list<br />- Checking for environment variable usage vs. hardcoded credentials in MCP configs<br />- Any request like "is my MCP config secure?", "audit my MCP servers", or "check .mcp.json"<br />keywords: [mcp, security, audit, secrets, shell-injection, supply-chain, governance] | None |
| [md-to-docx](../skills/md-to-docx/SKILL.md) | Convert Markdown files to professionally formatted Word (.docx) documents with embedded PNG images — pure JavaScript, no external tools required | `scripts/md-to-docx.mjs`<br />`scripts/package.json` |
| [meeting-minutes](../skills/meeting-minutes/SKILL.md) | Generate concise, actionable meeting minutes for internal meetings. Includes metadata, attendees, agenda, decisions, action items (owner + due date), and follow-up steps. | None |
| [memory-merger](../skills/memory-merger/SKILL.md) | Merges mature lessons from a domain memory file into its instruction file. Syntax: `/memory-merger >domain [scope]` where scope is `global` (default), `user`, `workspace`, or `ws`. | None |
| [mentoring-juniors](../skills/mentoring-juniors/SKILL.md) | Socratic mentoring for junior developers and AI newcomers. Guides through questions, never answers. Triggers: "help me understand", "explain this code", "I'm stuck", "Im stuck", "I'm confused", "Im confused", "I don't understand", "I dont understand", "can you teach me", "teach me", "mentor me", "guide me", "what does this error mean", "why doesn't this work", "why does not this work", "I'm a beginner", "Im a beginner", "I'm learning", "Im learning", "I'm new to this", "Im new to this", "walk me through", "how does this work", "what's wrong with my code", "what's wrong", "can you break this down", "ELI5", "step by step", "where do I start", "what am I missing", "newbie here", "junior dev", "first time using", "how do I", "what is", "is this right", "not sure", "need help", "struggling", "show me", "help me debug", "best practice", "too complex", "overwhelmed", "lost", "debug this", "/socratic", "/hint", "/concept", "/pseudocode". Progressive clue systems, teaching techniques, and success metrics. | None |
Expand Down
28 changes: 28 additions & 0 deletions plugins/project-documenter/.github/plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
{
"name": "project-documenter",
"description": "Generate professional project documentation with draw.io architecture diagrams and Word (.docx) output with embedded images. Automatically discovers any project's technology stack and produces Markdown, diagrams, PNG exports, and a formatted Word document.",
"version": "1.0.0",
"author": {
"name": "Awesome Copilot Community"
},
"repository": "https://github.com/github/awesome-copilot",
"license": "MIT",
"keywords": [
"documentation",
"architecture-diagrams",
"drawio",
"word-document",
"docx",
"png-images",
"c4-model",
"project-summary",
"auto-discovery"
],
"agents": [
"./agents/project-documenter.agent.md"
],
"skills": [
"./skills/drawio/",
"./skills/md-to-docx/"
]
}
126 changes: 126 additions & 0 deletions plugins/project-documenter/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
# Project Documenter Plugin

Generate professional project documentation with draw.io architecture diagrams and Word (.docx) output with embedded PNG images. Works on any software project — automatically discovers the technology stack, architecture, and code structure.

## Installation

```bash
# Using Copilot CLI
copilot plugin install project-documenter@awesome-copilot
```

## What It Does

Point the **Project Documenter** agent at any repository and it produces:

1. **Markdown document** — 10-section project summary with embedded diagram references
2. **Draw.io diagrams** — C4 Context, Pipeline, and Component relationship diagrams (`.drawio` + `.drawio.png`)
3. **Word document** — professionally formatted `.docx` with title page, table of contents, and embedded PNG architecture images

## What's Included

### Agent

| Agent | Description |
|-------|-------------|
| `project-documenter` | Generates professional project documentation with draw.io architecture diagrams and Word document output with embedded images. Auto-discovers any project's technology stack and architecture. |

### Skills

| Skill | Description |
|-------|-------------|
| `drawio` | Generate draw.io diagrams as `.drawio` files and export to PNG via bundled Node.js script (uses draw.io CLI or headless browser) |
| `md-to-docx` | Convert Markdown to Word (`.docx`) with embedded PNG images — pure JavaScript, no Pandoc required |

## How It Works

### Step 1: Discover

The agent scans your repository to understand:
- Technology stack (`.csproj`, `package.json`, `pom.xml`, `go.mod`, etc.)
- Architecture pattern (API, worker service, CLI, library)
- Design patterns (factory, strategy, repository, pipeline)
- Interfaces, implementations, models, configuration
- Dependencies, Docker setup, CI/CD

### Step 2: Generate Diagrams

Creates 3-5 professional draw.io diagrams following the C4 Model:

| Diagram | C4 Level | Shows |
|---------|----------|-------|
| High-Level Architecture | Context | System in its environment — upstream, downstream, external deps |
| Processing Pipeline | Container | Internal data flow — entry point → stages → output |
| Component Relationships | Component | Interfaces, implementations, factories, DI graph |
| Deployment (optional) | Infrastructure | Docker, Kubernetes, scaling, cloud services |
| Data Model (optional) | Component | Entity/DTO hierarchy (if significant) |

Each diagram is exported to PNG using the bundled `drawio-to-png.mjs` script.

### Step 3: Write Markdown

Produces `docs/project-summary.md` with 10 sections:

1. Executive Summary
2. Architecture Overview (with embedded diagram)
3. Processing Pipeline (with embedded diagram)
4. Core Components (with embedded diagram)
5. API Contracts / Message Schemas
6. Infrastructure & Deployment
7. Extension Patterns
8. Rules & Anti-Patterns
9. Dependencies
10. Code Structure

### Step 4: Word Document

Converts the Markdown to a formatted `.docx` using the bundled `md-to-docx.mjs` script:

- Title page with project name, date, version, audience
- Auto-generated table of contents
- **PNG diagram images embedded inline** in the Word document
- Calibri font, colored headings, styled tables with alternating rows
- Code blocks in Consolas with shaded background

### Step 5: Verify

Spot-checks class names, file paths, and diagram accuracy against the actual codebase. Reports all generated files.

## Generated Output

```
docs/
├── project-summary.md # Source document (Markdown)
├── project-summary.docx # Word document with embedded images
└── diagrams/
├── high-level-architecture.drawio # C4 Context diagram (editable)
├── high-level-architecture.drawio.png # Rendered PNG
├── processing-pipeline.drawio # C4 Container diagram
├── processing-pipeline.drawio.png
├── component-relationships.drawio # C4 Component diagram
└── component-relationships.drawio.png
```

## Prerequisites

| Requirement | Purpose | Required? |
|-------------|---------|-----------|
| Node.js 18+ | Run bundled export scripts | Yes |
| Edge or Chrome | Headless browser for diagram rendering | One of: this OR draw.io desktop |
| draw.io desktop | CLI diagram export (faster alternative) | Optional (browser fallback available) |

## Technology Agnostic

Works with any stack. The agent auto-detects:
- **.NET** (`.csproj`, `.sln`), **Java** (`pom.xml`, `build.gradle`), **Node.js** (`package.json`), **Python** (`pyproject.toml`), **Go** (`go.mod`), **Rust** (`Cargo.toml`)
- Docker, Kubernetes, GitHub Actions, GitLab CI
- Any messaging system (SQS, RabbitMQ, Kafka, Azure Service Bus)
- Any database ORM (EF, Hibernate, Prisma, SQLAlchemy)

## Source

This plugin is part of [Awesome Copilot](https://github.com/github/awesome-copilot), a community-driven collection of GitHub Copilot extensions.

## License

MIT
96 changes: 96 additions & 0 deletions skills/drawio/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
---
name: drawio
description: Generate draw.io diagrams as .drawio files and export to PNG/SVG/PDF with embedded XML
---

# Draw.io Diagram Skill

Generate draw.io diagrams as native `.drawio` files and export them to PNG images that can be embedded in Word documents.

## How to Create a Diagram

1. **Generate draw.io XML** in `mxGraphModel` format for the requested diagram
2. **Write the XML** to a `.drawio` file using the create/edit file tool
3. **Export to PNG** using the bundled export script

## Bundled Export Script

This skill includes `drawio-to-png.mjs`, a Node.js export script with two rendering backends:

1. **draw.io CLI** (pixel-perfect, fastest) — used automatically if draw.io desktop is installed
2. **Official draw.io viewer in headless browser** (pixel-perfect, needs Chromium/Edge) — fallback when CLI is unavailable

### Usage

```bash
# Install dependencies (one-time, from the scripts folder)
cd skills/drawio/scripts && npm install

# Export a single diagram
node skills/drawio/scripts/drawio-to-png.mjs <input.drawio> [output.png]

# Export all .drawio files in a directory
node skills/drawio/scripts/drawio-to-png.mjs --dir <directory>

# Force a specific renderer
node skills/drawio/scripts/drawio-to-png.mjs --renderer=cli|viewer|auto <input.drawio>
```

### Skill Folder Contents

| File | Purpose |
|------|---------|
| `SKILL.md` | This instruction file |
| `scripts/drawio-to-png.mjs` | Node.js export script (CLI + browser fallback) |
| `scripts/package.json` | Dependencies (`puppeteer-core`) |

## Supported Export Formats

| Format | Embed XML | Notes |
|--------|-----------|-------|
| `png` | Yes | Viewable everywhere, editable in draw.io |
| `svg` | Yes | Scalable, editable in draw.io |
| `pdf` | Yes | Printable, editable in draw.io |

## Draw.io XML Style Conventions

Use these styles for consistent, professional diagrams:

```xml
<!-- Primary service (highlighted) -->
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;strokeWidth=2;arcSize=12;shadow=1;" />

<!-- External system -->
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f5f5f5;strokeColor=#666666;" />

<!-- Success/processing stage -->
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;" />

<!-- Warning/quality gate -->
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" />

<!-- Error/failure path -->
<mxCell style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;" />

<!-- Data store (cylinder) -->
<mxCell style="shape=cylinder3;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;" />

<!-- Arrow -->
<mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=1;strokeColor=#6c8ebf;strokeWidth=2;" />
```

## Locating the draw.io CLI

Try `drawio` first (works if on PATH), then fall back:

- **Windows**: `"C:\Program Files\draw.io\draw.io.exe"`
- **macOS**: `/Applications/draw.io.app/Contents/MacOS/draw.io`
- **Linux**: `drawio` (via snap/apt/flatpak)

### CLI Export Command

```bash
drawio -x -f png -e -b 10 -o <output.png> <input.drawio>
```

Flags: `-x` (export), `-f` (format), `-e` (embed diagram XML), `-b` (border), `-o` (output path).
Loading
Loading