Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e297fa8
Create AI enabled workspace
atmoos Feb 12, 2026
962eea9
Add numerical stability ai probes.
atmoos Feb 12, 2026
4e6a638
Add first MCP server for MS docs
atmoos Feb 12, 2026
c1ba039
Copilot: Create agent to create quantities
atmoos Feb 17, 2026
c606508
Copilot: Move the agent into the agents folder.
atmoos Feb 17, 2026
3f39ae9
Improve workspace
atmoos Feb 17, 2026
41ce848
allow dotnet build
atmoos Feb 17, 2026
0ba3014
add plan to fix consistency issues
atmoos Feb 17, 2026
d97b6c2
fix inconsistencies by executing plan
atmoos Feb 17, 2026
8ffcefd
fix new-quantity agent format
atmoos Feb 17, 2026
4944085
fix ai generated luminous intensity filename.
atmoos Feb 17, 2026
10c1b8d
add a plan for the next ten quantities
atmoos Feb 17, 2026
ef9b98c
fix plan to account for implied units
atmoos Feb 17, 2026
dc45dd0
add unit agent
atmoos Feb 17, 2026
dcb2dfc
No, use the 'ai' file name infix
atmoos Feb 17, 2026
9de5988
Add dev mode agent
atmoos Feb 18, 2026
ac02dcc
Update agent tool definitions
atmoos Feb 18, 2026
ce7e5db
Enable file creation for agents.
atmoos Feb 18, 2026
925a683
Fix inconsistencies in the agents templates
atmoos Feb 18, 2026
0ce8640
manual fix for units
atmoos Feb 18, 2026
fe8a37c
add plan to fix units
atmoos Feb 18, 2026
4812663
use plan to fix unit inconsistencies
atmoos Feb 18, 2026
d89572b
fix imperial horse power test
atmoos Feb 18, 2026
021bafb
add analysis of units
atmoos Feb 18, 2026
58433cd
minor improvements
atmoos Feb 19, 2026
52e9700
add more planned unit for next quantities
atmoos Feb 19, 2026
31090b1
Add plan for more units
atmoos Feb 19, 2026
da8082b
Use our own impl of Pow
atmoos Feb 19, 2026
fc8dd9c
Fix ordering of the generic constraints on the quantities
atmoos Feb 19, 2026
bea1307
Fix tasks in .vscode
atmoos Feb 19, 2026
44e2ea4
add mcp server
atmoos Feb 20, 2026
8203c4f
add analysis of multiply call graph for speedups
atmoos Feb 20, 2026
28eb1da
Use fused multiply add with Poly division also
atmoos Feb 21, 2026
ce78f51
Add new units unit test agent
atmoos Feb 25, 2026
e361f1f
Remove superflous ToSi method in Hertz
atmoos Feb 25, 2026
a39e950
Add missing tests for Chain, Furlong & Zentner
atmoos Feb 25, 2026
09a78ea
Add plan to improve test coverage
atmoos Feb 25, 2026
73e6cae
Implement coverage improvement plan
atmoos Feb 25, 2026
63c5ba5
add another coverage improvement plan
atmoos Feb 26, 2026
57a6c7d
add more tests to improve coverage
atmoos Feb 26, 2026
e329db2
enable dev environment
atmoos Mar 1, 2026
347d36b
Add tests to improve coverage
atmoos Mar 1, 2026
9c4ac2c
Add instruction to annotate public methods with AI attribute.
atmoos Mar 1, 2026
4204406
Add ai annotation rules to instructions
atmoos Mar 4, 2026
dc11494
Add round 3 of coverage improvements
atmoos Mar 4, 2026
f2aaac7
Implement Phase1 of third coverage improvement
atmoos Mar 4, 2026
f89449c
Implement Phase2 of the third round of coverage improvements
atmoos Mar 4, 2026
0bc05e7
Add AI annotation example for tests
atmoos Mar 4, 2026
97af553
Implement Phase 3 of third coverage improvement
atmoos Mar 4, 2026
7d53595
Update plan with outcome
atmoos Mar 4, 2026
29829b7
retrospectively add AI annotations
atmoos Mar 10, 2026
d99cd2a
refine instructions about AI annotations.
atmoos Mar 10, 2026
9cb4251
retrospectively add AI method annotations
atmoos Mar 10, 2026
1ebfaad
clean-up ai annotations
atmoos Mar 10, 2026
8e866dc
Add round 4 of coverage increase
atmoos Mar 10, 2026
cfac85b
Implement phase 1 of round 4 coverage improvements
atmoos Mar 10, 2026
5e9dda6
use en-GB for spelling.
atmoos Mar 11, 2026
78b57f9
Implement phase 2 of round 4 coverage improvements
atmoos Mar 11, 2026
0b04b0a
Add instruction to not create new test classes
atmoos Mar 11, 2026
41cc426
Move new tests into already existing test classes
atmoos Mar 11, 2026
7721253
Implement phase 3 of round 4 coverage improvements
atmoos Mar 11, 2026
e0e05df
Add round 5 of coverage increase
atmoos Mar 14, 2026
3d27d55
Implement phase 2 of round 5 coverage improvements
atmoos Mar 14, 2026
7e67d38
remove implemented prompts
atmoos Mar 14, 2026
ec30ff9
remove numerical stability tests.
atmoos Mar 14, 2026
6efb939
add note about runsettings file
atmoos Mar 14, 2026
6cd811b
add coverage task
atmoos Mar 14, 2026
4db2aa8
clean up using directives
atmoos Mar 14, 2026
e6ba105
clean up workspace files
atmoos Mar 14, 2026
d274bf1
clean up tasks.json
atmoos Mar 14, 2026
f7447f1
use theory data instead of untyped member data
atmoos Mar 14, 2026
314566f
Add AI generated C4 architecture diagram.
atmoos Mar 14, 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
159 changes: 159 additions & 0 deletions .github/agents/dev-mode.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,159 @@
---
name: Dev Mode
description: Toggle the repo between development mode (project references) and release mode (NuGet package references).
tools: ['edit/editFiles', 'search/codebase', 'read/terminalLastCommand']
---

# Development / Release Mode Agent

Toggle the repository between **development mode** and **release mode** for the `Atmoos.Quantities` project family.

## Purpose

When developing new features or quantities in `Atmoos.Quantities`, downstream projects (`Atmoos.Quantities.Units`, `Atmoos.Quantities.Serialization.Text.Json`, `Atmoos.Quantities.Serialization.Newtonsoft`) reference it as a **NuGet package**. This means changes to `Atmoos.Quantities` are invisible to those projects until a release is published.

This agent switches the three downstream `.csproj` files between:

- **Development mode**: `ProjectReference` — enables rapid prototyping with unreleased changes.
- **Release mode**: `PackageReference` — restores the NuGet dependency for clean packaging.

## Instructions

When the user asks to switch to **development mode** or **release mode**, follow the steps below.

### Identifying the Current Mode

Inspect the three target files for the presence of `PackageReference` or `ProjectReference` to `Atmoos.Quantities`:

| File | Path |
|------|------|
| Units | `source/Atmoos.Quantities.Units/Atmoos.Quantities.Units.csproj` |
| Text.Json | `source/Atmoos.Quantities.Serialization/Text.Json/Atmoos.Quantities.Serialization.Text.Json.csproj` |
| Newtonsoft | `source/Atmoos.Quantities.Serialization/Newtonsoft/Atmoos.Quantities.Serialization.Newtonsoft.csproj` |

- If they contain `<PackageReference Include="Atmoos.Quantities" ... />` → currently in **release mode**.
- If they contain `<ProjectReference Include="...Atmoos.Quantities.csproj" />` → currently in **development mode**.

Report the current mode to the user before making changes.

---

### Switching to Development Mode

Replace every `PackageReference` to `Atmoos.Quantities` with the corresponding `ProjectReference` in the three files listed above.

#### Replacements

**`source/Atmoos.Quantities.Units/Atmoos.Quantities.Units.csproj`**

Replace:
```xml
<PackageReference Include="Atmoos.Quantities" Version="2.2.0" />
```
With:
```xml
<ProjectReference Include="..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```

**`source/Atmoos.Quantities.Serialization/Text.Json/Atmoos.Quantities.Serialization.Text.Json.csproj`**

Replace:
```xml
<PackageReference Include="Atmoos.Quantities" Version="2.2.0" />
```
With:
```xml
<ProjectReference Include="..\..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```

**`source/Atmoos.Quantities.Serialization/Newtonsoft/Atmoos.Quantities.Serialization.Newtonsoft.csproj`**

Replace:
```xml
<PackageReference Include="Atmoos.Quantities" Version="2.2.0" />
```
With:
```xml
<ProjectReference Include="..\..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```

#### Important

- The version number in the `PackageReference` may differ from `2.2.0`. Match whatever version is present.
- Do **not** modify any other `PackageReference` entries (e.g., `Newtonsoft.Json`).
- Only replace the `Atmoos.Quantities` reference, nothing else.

---

### Switching to Release Mode

Reverse the development mode changes: replace every `ProjectReference` to `Atmoos.Quantities.csproj` with the corresponding `PackageReference`.

#### Determining the Version

Before making changes, read the version from `source/Atmoos.Quantities/Atmoos.Quantities.csproj`:

```xml
<Version>2.2.0</Version>
```

Use this version for all `PackageReference` entries to ensure consistency.

#### Replacements

**`source/Atmoos.Quantities.Units/Atmoos.Quantities.Units.csproj`**

Replace:
```xml
<ProjectReference Include="..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```
With:
```xml
<PackageReference Include="Atmoos.Quantities" Version="{version}" />
```

**`source/Atmoos.Quantities.Serialization/Text.Json/Atmoos.Quantities.Serialization.Text.Json.csproj`**

Replace:
```xml
<ProjectReference Include="..\..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```
With:
```xml
<PackageReference Include="Atmoos.Quantities" Version="{version}" />
```

**`source/Atmoos.Quantities.Serialization/Newtonsoft/Atmoos.Quantities.Serialization.Newtonsoft.csproj`**

Replace:
```xml
<ProjectReference Include="..\..\Atmoos.Quantities\Atmoos.Quantities.csproj" />
```
With:
```xml
<PackageReference Include="Atmoos.Quantities" Version="{version}" />
```

Where `{version}` is the value read from `source/Atmoos.Quantities/Atmoos.Quantities.csproj`.

---

## Verification

After making changes, **always** build the solution to confirm everything compiles:

```bash
dotnet build source/Quantities.sln
```

Report the result to the user.

---

## Safety Rules

1. **Never** modify `source/Atmoos.Quantities/Atmoos.Quantities.csproj` itself.
2. **Never** change references other than `Atmoos.Quantities` (e.g., `Newtonsoft.Json`, `Atmoos.Sphere`).
3. **Never** change version numbers in `<PropertyGroup>` — only the `PackageReference` version attribute.
4. If any of the three files are already in the target mode, skip them and inform the user.
5. Always report which files were changed and which were already in the correct state.
Loading
Loading