Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
51 commits
Select commit Hold shift + click to select a range
5c1cb81
Initial plan
Copilot Sep 8, 2025
1713662
Add basic XML doc comment position warning - initial implementation
Copilot Sep 8, 2025
8698eef
Add warning for XML documentation comments not positioned as first no…
Copilot Sep 8, 2025
21333cf
Fix XML doc comment position check to analyze actual line content ins…
Copilot Sep 8, 2025
7d2be7e
Address feedback by disabling hardcoded column limit approach tempora…
Copilot Sep 8, 2025
6413c55
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Sep 18, 2025
92f2c02
Address feedback: remove hardcoded column limit, disable warning temp…
Copilot Sep 19, 2025
e12e8cc
Implement XML doc comment position check in LexFilter instead of lexe…
Copilot Sep 19, 2025
fb42cf8
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Sep 22, 2025
28a6204
Fix type constraint mismatch in FSComp.SR.xmlDocNotFirstOnLine() usage
Copilot Sep 22, 2025
56607de
Fix unused variable warning in LexFilter pattern match
Copilot Sep 22, 2025
9d9a664
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Oct 17, 2025
83a3454
Update xlf localization files for xmlDocNotFirstOnLine entry
Copilot Nov 30, 2025
bd22c0e
Add lexer-level tracking for XML doc comment position warning
Copilot Dec 2, 2025
3070e3d
Fix incorrect /// comment usage in infos.fs - should be //
Copilot Dec 2, 2025
1f45f17
Disable XML doc position warning - implementation too aggressive
Copilot Dec 3, 2025
4ac9a26
Re-implement XML doc comment position warning using token position tr…
Copilot Dec 3, 2025
a560672
Add token position tracking to more token types and start updating tests
Copilot Dec 3, 2025
3f936f2
Update XmlDocTests to expect FS3879 warning for misplaced /// comments
Copilot Dec 3, 2025
df81dfb
Fix remaining test failures: update neg45.bsl baseline and type membe…
Copilot Dec 3, 2025
fc51e55
Fix code formatting in LexHelpers.fs and LexHelpers.fsi
Copilot Dec 3, 2025
4b58239
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
abonie Dec 5, 2025
c24643d
Update neg45.bsl baseline with all three FS3879 warnings
Copilot Dec 5, 2025
c2736dc
Fix /// comment in Trimming/Program.fs that was causing build failures
Copilot Dec 5, 2025
e171853
Change triple slash to regular comments
abonie Dec 8, 2025
b4a85cb
Fix XML documentation comment parse errors
abonie Dec 8, 2025
b3984a0
Undo changes to neg45.bsl
abonie Dec 8, 2025
0c6e957
Suppress FS3879 warning in AOT trimming test projects
Copilot Dec 9, 2025
d4b6661
Add release notes entry for FS3879 warning
Copilot Dec 9, 2025
c2112c5
Add test for DU cases with /// after case definition
Copilot Dec 9, 2025
2faae14
Fix DU test - use correct lambda signature (fun _ -> ()) instead of (…
Copilot Dec 10, 2025
4d16c5b
Fix DU test expected column positions - CaseB line should be Col 12, …
Copilot Dec 10, 2025
1006511
Rewrite XML doc position warning using LexFilter approach
Copilot Dec 31, 2025
337178d
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Jan 2, 2026
250ed38
Move release notes entry to 10.0.200.md as requested
Copilot Jan 2, 2026
696e8fb
Fix compilation errors - use COMMENT token and fix ODECLEND tuple
Copilot Jan 2, 2026
94f182c
Fix LexFilter code to properly check for XML doc comments
Copilot Jan 5, 2026
b3af608
fix build errors
T-Gro Jan 5, 2026
6a8696e
Apply patch from /run fantomas
actions-user Jan 5, 2026
c73cc4e
Fix FS3879 warning - move check from LexFilter to lex.fsl
Copilot Jan 5, 2026
001cbda
Allow XML doc comments after opening brace and equals in record types
Copilot Jan 6, 2026
541d143
Create proper GitHub Copilot Skills per documentation
Copilot Jan 6, 2026
5a4f398
Enhance GitHub Copilot Skills per review feedback
Copilot Jan 6, 2026
2fec170
Change FS3879 to informational warning and enable in F# codebase
Copilot Jan 6, 2026
60dd7bb
Fix invalid XML doc comments in Intellisense.fs
Copilot Jan 6, 2026
f3164c7
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Jan 6, 2026
c144a34
Apply suggestions from code review
T-Gro Jan 6, 2026
c014a7a
Merge branch 'main' into copilot/fix-920e1d4e-0c13-4c25-8d7b-183dbc29…
T-Gro Jan 12, 2026
2a31793
Remove no-op match and add tests for XML doc after = and { in express…
Copilot Jan 12, 2026
cca22f3
Update tests/FSharp.Compiler.Service.Tests/XmlDocTests.fs
T-Gro Jan 13, 2026
9fa902a
Update tests/FSharp.Compiler.Service.Tests/XmlDocTests.fs
T-Gro Jan 13, 2026
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
166 changes: 166 additions & 0 deletions .github/skills/creating-skills/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,166 @@
---
name: creating-skills
description: Create custom agent capabilities when discovering novel tools, receiving task-agnostic tips from reviewers, or after researching specialized workflows not covered in existing instructions. Teaches structure, YAML optimization for LLM discoverability, and token efficiency.
---

# Creating GitHub Copilot Agent Skills

This skill teaches you how to create effective GitHub Copilot Agent Skills for this repository.

## Pre-Check: Avoid Duplication

**STOP** and check before creating a new skill:

1. **Does it exist already?**
- List all skills: `ls -la .github/skills/`
- Read existing skill frontmatter and content
- If semantically similar skill exists, STOP

2. **Should an existing skill be expanded?**
- If frontmatter semantically matches your use case → Update existing skill's description
- Add keywords to improve discoverability rather than creating duplicate

3. **Should existing skill content change?**
- If frontmatter matches but content incomplete → Add section to existing skill
- Enhance with additional examples, procedures, or troubleshooting
- Update frontmatter only if significantly broadening scope

**Only create new skill if:**
- No semantic overlap with existing skills
- Addresses distinct problem domain
- Has unique triggering conditions

## Skill Structure

### Directory Placement

Skills should be placed in `.github/skills/` directory:
- **Project skills** (repository-specific): `.github/skills/skill-name/`

Each skill must have its own subdirectory with a lowercase, hyphenated name that matches the `name` field in the frontmatter.

### File Requirements

Every skill directory must contain a `SKILL.md` file (case-sensitive) with:

1. **YAML Frontmatter** (required):

2. **Markdown Body** with clear instructions, examples, procedures, guidelines, and references

### Additional Resources

Skills can include:
- Scripts (e.g., `.sh`, `.fsx`, `.ps1`)
- Example files
- Templates
- Reference documentation

## YAML Frontmatter Best Practices

The frontmatter is critical for skill discoverability and token efficiency:

### Required Fields

- **name** (string): Unique identifier, lowercase with hyphens
- Must match the directory name
- Should be descriptive but concise
- Example: `hypothesis-driven-debugging`, `github-actions-failure-debugging`

- **description** (string): When and why to use this skill
- Should be 1-2 sentences
- Include trigger keywords that help the AI recognize when to load the skill
- Example: "Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows."
- **SEO-like optimization for LLMs**: Include key terms that would appear in user requests

### Optional Fields

- **license** (string): License for the skill (e.g., MIT, Apache-2.0)

### Description Guidelines

The description is crucial for skill discoverability. Think of it like SEO for LLMs:

✅ **Good descriptions** (specific, actionable, keyword-rich):
- "Guide for debugging failing GitHub Actions workflows. Use this when asked to debug failing GitHub Actions workflows."
- "Systematic approach to investigating F# compiler performance issues using traces, dumps, and benchmarks."
- "Step-by-step process for analyzing test failures using hypothesis-driven debugging."

❌ **Poor descriptions** (vague, generic):
- "Helps with debugging"
- "Tool for testing"
- "Useful utility"

### Token Efficiency

Skills should be concise to avoid wasting context tokens:
- Keep instructions focused and relevant
- Use bullet points and numbered lists
- Avoid redundant information
- Reference external resources rather than duplicating content
- The agent will only load skills when relevant, so clear descriptions help prevent unnecessary loading

## Skill Content Best Practices

### Structure

1. **Title and Overview**: Brief introduction
2. **When to Use**: Clear triggering conditions
3. **Prerequisites**: Required tools, setup, or knowledge
4. **Step-by-Step Instructions**: Numbered procedures
5. **Examples**: Concrete use cases
6. **Troubleshooting**: Common issues
7. **References**: Links to related documentation

### Writing Style

- Use imperative mood ("Run the test", not "You should run the test")
- Be specific and actionable
- Include command examples with expected output
- Use code blocks with language identifiers
- Highlight warnings and critical information
- Reference tools and APIs that the agent has access to

### Examples

Always include concrete examples:
- Command invocations with flags and arguments
- Expected output and how to interpret it
- Common variations and edge cases
- Links to real-world usage in the repository

## Testing Your Skill

After creating a skill:

1. Verify the file structure:
```bash
ls -la .github/skills/your-skill-name/
# Should show SKILL.md and any additional resources
```

2. Validate YAML frontmatter:
- Ensure proper YAML syntax
- Required fields are present
- Name matches directory name

3. Test skill invocation:
- Ask Copilot a question that should trigger the skill
- Verify the skill is loaded (check response for skill-specific guidance)
- Ensure instructions are clear and actionable

4. Iterate based on usage:
- Monitor how often the skill is used
- Refine description for better discoverability
- Update instructions based on feedback

## Examples from This Repository

See existing skills in `.github/skills/` for reference:
- `hypothesis-driven-debugging`: Systematic failure investigation
- Additional skills may be added over time

## References

- [GitHub Copilot Agent Skills Documentation](https://docs.github.com/en/copilot/concepts/agents/about-agent-skills)
- [Agent Skills Open Standard](https://github.com/agentskills/agentskills)
- [Community Skills Collection](https://github.com/github/awesome-copilot)
Loading
Loading