Skip to content

Add dotnet-fsi-interactive (REPL) skill - #236

Closed
T-Gro wants to merge 2 commits into
dotnet:mainfrom
T-Gro:feature/dotnet-fsi
Closed

Add dotnet-fsi-interactive (REPL) skill #236
T-Gro wants to merge 2 commits into
dotnet:mainfrom
T-Gro:feature/dotnet-fsi

Conversation

@T-Gro

@T-Gro T-Gro commented Mar 5, 2026

Copy link
Copy Markdown
Member

Adds a skill teaching agents to use dotnet fsi as an interactive REPL for running .NET code without creating files.
Includes eval scenario testing System.IO.Path edge cases.

The main skill advantage (compared to just vanilla running python, creating a .NET program or running dotnet fsi script.fsx) is when iteratively analyzing state (API calls, databases, .NET compute) that takes a lot of time to setup.

Adds a skill teaching agents to use dotnet fsi as an interactive REPL
for running .NET code without creating files. Includes eval scenario
testing System.IO.Path edge cases.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@T-Gro
T-Gro requested a review from timheuer as a code owner March 5, 2026 21:34
Copilot AI review requested due to automatic review settings March 5, 2026 21:34
@T-Gro
T-Gro requested a review from dbreshears as a code owner March 5, 2026 21:34

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new .NET skill focused on using dotnet fsi as an interactive REPL for iterative runtime exploration, along with an evaluation scenario to validate behavior around System.IO.Path edge cases.

Changes:

  • Added the dotnet-fsi-interactive skill documentation under plugins/dotnet/skills/.
  • Added a new eval scenario under tests/dotnet/ exercising System.IO.Path behaviors.
  • Updated .github/CODEOWNERS to assign ownership for the new skill and test paths.

Reviewed changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
tests/dotnet/dotnet-fsi-interactive/eval.yaml New eval scenario for System.IO.Path edge cases intended to be validated at runtime.
plugins/dotnet/skills/dotnet-fsi-interactive/SKILL.md New skill documentation describing how to use dotnet fsi as a persistent REPL session.
.github/CODEOWNERS Adds owners for the new skill and its test directory.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread tests/dotnet/dotnet-fsi-interactive/eval.yaml
Comment thread tests/dotnet/dotnet-fsi-interactive/eval.yaml
@@ -0,0 +1,98 @@
---
name: dotnet-fsi-interactive
description: "Run and test .NET code interactively without creating files. Explore .NET APIs, verify runtime behavior, experiment with code in a persistent REPL (Read-Eval-Print Loop) session via dotnet fsi. Also for data analysis and inspecting stateful objects."

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

F# code specifically, right? it should say that to avoid loading in C# context

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any .NET code - it is ephemeral from users perspective ("without file"), for verification and analysis that benefits from keeping state around (like having to load a lot of DB or web API data to do an iterative analysis)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess I meant -- someone could have installed this plugin -- want to write some temporary code, but prefer it being in C# because they aren't familar with F#. I have nothign against F#. If I misunderstood, disregard?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is not creating a file users will see in their diff, it's similar to how agents generate and execute powershell or python for temporal tasks all the time, and this is transparent to the user (because no file is ever created, its just for analysis/research/finding stuff out).

dotnet fsi is that, but for .NET apis and stateful exploration.

@github-actions github-actions Bot added the waiting-on-author PR state label label Jun 3, 2026
@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

github-actions Bot commented Jun 8, 2026

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

👋 @T-Gro — this PR has 1 unresolved review thread(s),merge conflict. When you're ready, please address the feedback and push an update; the triage bot will pick up the next state automatically. (Add the no-stale label to silence further pings.)

@github-actions

Copy link
Copy Markdown
Contributor

This pull request has been automatically closed because it has been open for more than 30 days with no recent activity.

If you believe this work is still relevant, please feel free to reopen or create a new pull request. Thank you for your contribution!

Warning

Firewall blocked 1 domain

The following domain was blocked by the firewall during workflow execution:

  • awmgmcpg

To allow these domains, add them to the network.allowed list in your workflow frontmatter:

network:
  allowed:
    - defaults
    - "awmgmcpg"

See Network Configuration for more information.

Generated by Close Stale Pull Requests · 24.1 AIC · ⌖ 5.6 AIC · ⊞ 4.9K

@github-actions github-actions Bot closed this Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants