Skip to content

Commit a68e556

Browse files
Merge pull request #3 from SebastienDegodez/slide
docs: presentation Signed-off-by: SebastienDegodez <sebastien.degodez@gmail.com>
2 parents 9ec84b7 + 5f6d98d commit a68e556

9 files changed

Lines changed: 790 additions & 0 deletions

File tree

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
applyTo: '.github/chatmodes/*.chatmode.md'
3+
description: Template and requirements for writing meta-chatmode definitions for Copilot. Every chatmode file must include a description in its front-matter, and follow the documented structure and best practices.
4+
---
5+
6+
# Meta-Chatmode Template
7+
8+
## Purpose
9+
Describe the intent and scope of this chatmode meta-prompt. Explain what kind of chatmodes it is meant to generate or validate (e.g., assistant personas, interaction styles, specialized workflows).
10+
11+
## Persona or Role Description
12+
Describe the intended persona, role, or behavior for this chatmode (e.g., "You are a helpful, encouraging code reviewer specializing in C#.").
13+
14+
## File Naming and Title Conventions
15+
- Every meta-chatmode file must begin with a clear, descriptive title as the first heading (e.g., "Meta-Chatmode Template").
16+
- The title must use sentence case and accurately reflect the file's purpose (e.g., "Meta-Chatmode Template").
17+
- The filename must be clear, descriptive, in English, use hyphens, and end with the `.chatmode.md` extension.
18+
- The file must be placed in the `.github/chatmodes/` directory at the root of the repository.
19+
- The title and filename should be consistent with each other and with the file's content.
20+
21+
## Structure
22+
- **Front-matter**: YAML block with at least `description` (short summary of the chatmode's intent). Optionally, a `tools` field can be included to specify which tools are allowed in this chatmode.
23+
- **Sections**: Each chatmode file should include the following sections:
24+
- Title
25+
- Purpose
26+
- Persona or Role Description
27+
- Interaction Guidelines
28+
- Best Practices
29+
- Example Dialogues or Scenarios
30+
- References (optional)
31+
32+
## Rules
33+
- Chatmode definitions must be clear, actionable, and unambiguous.
34+
- Use imperative language for guidelines ("Respond as", "Avoid", "Always").
35+
- Specify the intended persona, tone, and interaction style.
36+
- If the chatmode is technology- or domain-specific, state it explicitly in the front-matter and body.
37+
- Every chatmode front-matter **must** include a `description` field (short summary).
38+
- The `tools` field (optional) can be used to restrict or allow specific tools for this chatmode (e.g., `tools: ["terminal", "notebook"]`).
39+
40+
## Best Practices
41+
- Keep chatmode definitions concise but comprehensive.
42+
- Use lists and example dialogues for clarity.
43+
- Provide rationale for guidelines when relevant.
44+
- Update chatmode definitions as needs evolve.
45+
46+
## Example
47+
---
48+
description: Friendly assistant for C# code reviews
49+
tools: ['terminal', 'notebook']
50+
---
51+
# C# Code Review Mode Instructions
52+
You are a helpful, encouraging code reviewer specializing in C#. Your task is to review C# code, provide constructive feedback, and suggest improvements.
53+
54+
## Instructions
55+
Always:
56+
* Provide actionable, specific suggestions.
57+
* Use positive, supportive language.
58+
* Reference C# best practices and documentation when relevant.
59+
* Avoid harsh criticism; focus on improvement and learning.
60+
61+
## Example interaction
62+
User: Can you review this method?
63+
Assistant: Sure! Here are a few suggestions to improve readability and performance...
64+
65+
## References
66+
- [C# Coding Conventions](https://learn.microsoft.com/en-us/dotnet/csharp/programming-guide/inside-a-program/coding-conventions)
Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
---
2+
applyTo: '.github/instructions/*.instructions.md'
3+
description: Template and requirements for writing meta-instructions for Copilot. Every instruction must include an applyTo and description in its front-matter, and follow the documented structure and best practices.
4+
---
5+
6+
# Meta-Instruction Template
7+
8+
## Purpose
9+
Describe the intent and scope of this instruction meta-prompt. Explain what kind of instructions it is meant to generate or validate (e.g., coding standards, architecture rules, process guidelines).
10+
11+
## File Naming and Title Conventions
12+
- Every meta-instruction file must begin with a clear, descriptive title as the first heading (e.g., "Meta-Instruction Template").
13+
- The title must use sentence case and accurately reflect the file's purpose (e.g., "Meta-Instruction Template").
14+
- The filename must be clear, descriptive, in English, use hyphens, and end with the `.instructions.md` extension.
15+
- The title and filename should be consistent with each other and with the file's content.
16+
17+
## Structure
18+
- **Front-matter**: YAML block with at least `applyTo` (file glob) and `description` (short summary of the instruction's intent), plus any relevant metadata (e.g., `type`, `scope`).
19+
- **Sections**: Each instruction should include the following sections:
20+
- Title
21+
- Purpose
22+
- Rules or Guidelines
23+
- Best Practices
24+
- Examples (code or usage)
25+
- References (optional)
26+
27+
## Rules
28+
- Instructions must be clear, actionable, and unambiguous.
29+
- Use imperative language ("Do", "Use", "Avoid").
30+
- Reference external standards or documentation when possible.
31+
- If the instruction is technology-specific, state it explicitly in the front-matter and body.
32+
- For process or workflow instructions, include step-by-step guidance.
33+
- Every instruction front-matter **must** include an `applyTo` field (file glob) and a `description` field (short summary).
34+
35+
## Best Practices
36+
- Keep instructions concise but comprehensive.
37+
- Use lists and code blocks for clarity.
38+
- Provide rationale for rules when relevant.
39+
- Update instructions as standards evolve.
40+
41+
## Example
42+
```instructions
43+
---
44+
applyTo: '**/*.cs'
45+
description: Enforces C# coding style and formatting conventions
46+
---
47+
# Example Instruction Title
48+
49+
## Purpose
50+
Explain the goal of this instruction.
51+
52+
## Rules
53+
- Rule 1
54+
- Rule 2
55+
56+
## Best Practices
57+
- Practice 1
58+
- Practice 2
59+
60+
## Examples
61+
```csharp
62+
// Example code
63+
```
64+
65+
## References
66+
- [External Link](https://example.com)
67+
```
68+
69+
## References
70+
- [Copilot Custom Instructions Documentation](https://code.visualstudio.com/docs/copilot/copilot-customization)
71+
- [Awesome Copilot](https://github.com/github/awesome-copilot)
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
---
2+
mode: agent
3+
---
4+
5+
# MCP .NET Test & Coverage Prompt
6+
7+
This prompt describes how to run all tests and generate a code coverage report for the MCP solution using .NET CLI and ReportGenerator.
8+
9+
## Prerequisites
10+
- .NET 7+ SDK installed
11+
- [ReportGenerator](https://github.com/danielpalme/ReportGenerator) installed globally:
12+
```sh
13+
dotnet tool install -g dotnet-reportgenerator-globaltool
14+
```
15+
16+
## Steps
17+
18+
1. **Run all tests and collect code coverage:**
19+
```sh
20+
dotnet test --collect:"XPlat Code Coverage"
21+
```
22+
This will generate a coverage file (Cobertura format) in a `TestResults` subfolder.
23+
24+
2. **Find the coverage file and generate an HTML report:**
25+
```sh
26+
reportgenerator -reports:"**/coverage.cobertura.xml" -targetdir:"coveragereport" -reporttypes:Html
27+
```
28+
The HTML report will be available at `coveragereport/index.html`.
29+
30+
3. **Open the report:**
31+
Open report in browser to view the code coverage results.
32+
<!--Open `coveragereport/index.html` in your browser to view the results.
33+
-->
34+
35+
---
36+
37+
**Tip:**
38+
- Run these commands from the root of your solution.
39+
- If you want to clean previous results, delete the `TestResults` and `coveragereport` folders before running.
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: Deploiement le site MARP vers GitHub Pages
2+
concurrency: marp-to-pages
3+
4+
on:
5+
push:
6+
branches: [ main ]
7+
pull_request:
8+
types:
9+
- opened
10+
- reopened
11+
- synchronize
12+
- closed
13+
jobs:
14+
build:
15+
environment:
16+
name: github-pages
17+
url: ${{ steps.deployment.outputs.page_url }}
18+
runs-on: ubuntu-latest
19+
permissions:
20+
contents: read
21+
id-token: write
22+
pages: write
23+
steps:
24+
25+
- name: Checkout code
26+
uses: actions/checkout@v4
27+
28+
- name: Ensure build dir exists
29+
run: mkdir -p build
30+
31+
- name: Copy images directory (if exists)
32+
run: if [[ -d presentation/images ]]; then cp -R presentation/images build/images; fi
33+
34+
- name: Build HTML from Build (slide.md)
35+
uses: docker://marpteam/marp-cli:v4.2.0
36+
with:
37+
args: presentation/slide.md -o build/index.html
38+
env:
39+
MARP_USER: root:root
40+
41+
42+
# - name: Build PDF from Marp (slide.pdf)
43+
# uses: docker://marpteam/marp-cli:v4.2.1
44+
# with:
45+
# args: presentation/slide.md -o build/slide.pdf --pdf
46+
# env:
47+
# MARP_USER: root:root
48+
49+
# - name: Build PPTX from Marp (slide.pptx)
50+
# uses: docker://marpteam/marp-cli:v4.2.0
51+
# with:
52+
# args: presentation/slide.md -o build/slide.pptx --pptx
53+
# env:
54+
# MARP_USER: root:root
55+
56+
# - name: Upload slide artifacts
57+
# if: ${{ github.event_name == 'push' }}
58+
# uses: actions/upload-artifact@v4
59+
# with:
60+
# name: presentation
61+
# path: |
62+
# ./build/*.pdf
63+
# ./build/*.pptx
64+
65+
- name: Setup Pages
66+
uses: actions/configure-pages@v5
67+
68+
- name: Upload artifact
69+
uses: actions/upload-pages-artifact@v3
70+
with:
71+
# Upload entire repository
72+
path: 'build'
73+
74+
- name: Deploy production to GitHub Pages
75+
if: ${{ github.event_name == 'push' }}
76+
id: deployment
77+
uses: actions/deploy-pages@v4
78+

.marprc

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
allowLocalFiles: true
2+
themeSet: ./presentation/themes
3+
lang: fr
4+
options:
5+
minifyCSS: true
6+
html: true

.vscode/settings.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"markdown.marp.themes": [
3+
"https://raw.githubusercontent.com/SebastienDegodez/slide-marp/refs/heads/main/presentation/themes/custom-default.css"
4+
]
5+
}

.vscode/tasks.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"version": "2.0.0",
3+
"tasks": [
4+
{
5+
"label": "Build HTML from Marp",
6+
"type": "shell",
7+
"command": "docker run --rm -v .:/home/marp/app/ -e LANG=$LANG marpteam/marp-cli ./presentation/slide.md -o ./build/index.html",
8+
"group": {
9+
"kind": "build",
10+
"isDefault": true
11+
}
12+
},
13+
{
14+
"label": "Build PDF from Marp",
15+
"type": "shell",
16+
"command": "docker run --rm --init -v .:/home/marp/app/ -e LANG=$LANG -e PUPPETEER_TIMEOUT=0 marpteam/marp-cli ./presentation/slide.md -o build/slide.pdf --pdf",
17+
"group": {
18+
"kind": "build"
19+
}
20+
},
21+
{
22+
"label": "Watch Markdown",
23+
"type": "shell",
24+
"command": "docker run --rm --init -v .:/home/marp/app/ -e LANG=$LANG -p 8080:8080 -p 37717:37717 marpteam/marp-cli -w ./presentation/slide.md -s -I ./presentation",
25+
"group": {
26+
"kind": "build"
27+
}
28+
}
29+
]
30+
}

0 commit comments

Comments
 (0)