Skip to content
Merged
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
16 changes: 12 additions & 4 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
# Project details
F# 9
C# 13
.NET 8 and 9

F# 10
C# 14
.NET 10
Nullability checks enabled

## Shell operations
Expand All @@ -11,7 +12,8 @@ Always prefer installing PowerShell modules over installing CLI tools.

## GitHub operations

Use `PowerShellForGitHub` PowerShell module for all GitHub operations. Never use GitHub CLI (`gh`) or any other CLI tool for GitHub.
First of all use GitHub MCP tools.
If no tool avaialble, use `PowerShellForGitHub` PowerShell module for all GitHub operations. Never use GitHub CLI (`gh`) or any other CLI tool for GitHub.

## Libraries we use

Expand Down Expand Up @@ -39,6 +41,7 @@ Prefer `voption` over `option`
Prefer `task` CE over `async` CE

This is how you define a non-default F# class constructor:

```fsharp
type DerivedClass =
inherit BaseClass
Expand All @@ -61,6 +64,7 @@ type DerivedClass =
Always prefer F# class initializers over property assignment! **You absolutely must use F# class initializers instead of property assignment**!

Having a class declaration:

``` F#
type MyClass (someConstructorParam : string) =
member ReadOnlyProperty = someConstructorParam
Expand All @@ -70,13 +74,15 @@ type MyClass (someConstructorParam : string) =
```

The following excerpt of class creation is wrong:

``` F#
let myClass = MyClass("some value")
myClass.MutableProperty1 <- "new value"
myClass.MutableProperty2 <- "new value"
```

The following excerpt (uses initializer syntax) of class creation is right:

``` F#
let myClass =
MyClass(
Expand All @@ -93,9 +99,11 @@ let myClass =
## Coding instructions

During the implementation, if you need some types or members defined in the other project but that project is not referenced, then:

1. stop implementing the solution;
2. respond with summary about what is needed and which project it is defined in;
3. ask if you can add the reference before continuing coding.

Never ever duplicate the code unless you got explicit confirmation that you are allowed to do so.

## Documentation and Naming
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ on:
jobs:
# The job MUST be called `copilot-setup-steps` or it will not be picked up by Copilot.
copilot-setup-steps:
runs-on: windows-2025
runs-on: ubuntu-latest

# Set the permissions to the lowest permissions possible needed for your steps.
# Copilot will be given its own token for its operations.
Expand Down
Loading
Loading