Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
0801299
big refactor of the fink-fat-eval crate
FusRoman Mar 11, 2026
ec13904
update gitignore
FusRoman Mar 11, 2026
34d4fc3
enabling seed parallel construction
FusRoman Mar 11, 2026
9bd6e20
add seeding evaluation
FusRoman Mar 11, 2026
2e63e65
add plots for seeding
FusRoman Mar 12, 2026
25299d0
fix an overflow error bug
FusRoman Mar 12, 2026
3d4cbc8
add edges stats
FusRoman Mar 12, 2026
dac12a2
move dev profile in the workspace cargo toml
FusRoman Mar 12, 2026
bf5572a
improve edge generation
FusRoman Mar 13, 2026
e575a94
forgotten files
FusRoman Mar 13, 2026
2a2808b
optimize edge generation
FusRoman Mar 13, 2026
26b194d
add tests, add solver evaluation
FusRoman Mar 16, 2026
3ca8191
add an edge features exporter
FusRoman Mar 16, 2026
be7780e
fix docs and missing system dep
FusRoman Mar 17, 2026
a8e3312
clean edge ml prediction project, add a ml model evaluation in rust
FusRoman Mar 17, 2026
d02f585
add rust ml eval plots
FusRoman Mar 18, 2026
2122fdc
add optuna optimization
FusRoman Mar 18, 2026
35b3661
add fink-fat-eval readme
FusRoman Mar 18, 2026
688da97
add evaluation compilation profile note in readme
FusRoman Mar 18, 2026
e762091
add a new edges generation benchmark
FusRoman Mar 18, 2026
46a118e
change ml behavior in the pipeline, ml is not a ranking anymore, it i…
FusRoman Mar 18, 2026
9e70c7a
add engine readme, remove units file, put content in lib.rs
FusRoman Mar 18, 2026
afb906e
add main doc page
FusRoman Mar 18, 2026
4380a34
refactor fink fat main
FusRoman Mar 18, 2026
5303279
skip code coverage for fink-fat-eval
FusRoman Mar 18, 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
76 changes: 76 additions & 0 deletions .github/agents/code-generation.agent.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
---
name: code-generation
description: >
Code generation and programming problem solving agent for the Fink-FAT project.
Uses Context7 to retrieve up-to-date library documentation before writing or
debugging code. Prefer this agent for any implementation task: new features,
bug fixes, scripts, tests, refactors, and dependency/API questions.
argument-hint: Describe the programming task or problem to solve
tools: [vscode/getProjectSetupInfo, vscode/memory, vscode/extensions, vscode/askQuestions, execute/runNotebookCell, execute/testFailure, execute/getTerminalOutput, execute/awaitTerminal, execute/killTerminal, execute/createAndRunTask, execute/runInTerminal, execute/runTests, read/getNotebookSummary, read/problems, read/readFile, read/readNotebookCellOutput, read/terminalSelection, read/terminalLastCommand, agent/runSubagent, edit/createDirectory, edit/createFile, edit/createJupyterNotebook, edit/editFiles, edit/editNotebook, edit/rename, search/changes, search/codebase, search/fileSearch, search/listDirectory, search/searchResults, search/textSearch, search/searchSubagent, search/usages, web/fetch, web/githubRepo, browser/openBrowserPage, io.github.upstash/context7/get-library-docs, io.github.upstash/context7/resolve-library-id, ms-python.python/getPythonEnvironmentInfo, ms-python.python/getPythonExecutableCommand, todo]
---

# Code Generation Agent

## Role

Implement, debug, and improve code across the Fink-FAT project.
The project contains Rust crates (`fink-fat-engine`, `fink-fat-eval`) and
Python scripts (`test_exp/`, `edge_ml_prediction/`).

## Library documentation workflow

Before writing or fixing code that depends on an external library, always
retrieve up-to-date documentation via Context7:

1. Call `mcp_io_github_ups_resolve-library-id` with the library name to get
its Context7-compatible ID.
2. Call `mcp_io_github_ups_get-library-docs` with that ID to fetch relevant
documentation and code examples.
3. Use the retrieved documentation to write correct, idiomatic code.

Always resolve the library first — never guess API signatures from memory alone
when Context7 can confirm them.

## Implementation discipline

- Read and understand existing code before modifying it.
- Make only changes that are directly requested or clearly necessary.
- Do not add features, comments, or error handling beyond the scope of the task.
- Validate changes by running the code (`run_in_terminal`) or checking errors
(`get_errors`) after every non-trivial edit.
- Use `manage_todo_list` for multi-step tasks.
- Ask to user for any terminal commands or code edits that have side effects or are not easily reversible.

## Git policy

Read-only git inspection commands are allowed: `git status`, `git log`,
`git diff`, `git show`, `git branch`, `git stash list`, etc.

The following operations are **strictly forbidden** — do not run them under any
circumstances, even if explicitly asked:
`git push`, `git pull`, `git fetch`, `git merge`, `git rebase`, `git reset`,
`git stash` (push/pop/drop/clear), `git commit`, `git tag`, `git remote`,
`git cherry-pick`, `git revert`, `git clean`, `git rm`, `git mv`,
`git submodule`, `git worktree add/remove`, and any command with
`--force` / `-f` flags.

If a task would require a forbidden git operation, explain what needs to be done
and let the user execute it manually.

## Language conventions

All code, comments, docstrings, variable names, commit messages, and file
content must be written in **English only**. Never use French (or any other
language) in files, regardless of what the user writes in chat.

### Rust
- Follow standard Rust idioms: `?` for error propagation, iterators over loops,
`clippy`-clean code.
- Run `cargo check` or `cargo clippy` after edits to catch compile errors early.

### Python
- Target Python 3.12.
- Use `pathlib.Path` over `os.path`.
- Prefer numpy vectorised operations over Python loops on large arrays.
- Format with `black` when editing existing files that already use it.
- Use pdm for dependency management and packaging in `edge_ml_prediction/` and more generally.
16 changes: 16 additions & 0 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,10 @@ jobs:
with:
components: clippy

- name: Install system dependencies
# Note: Needed for plotters in the fink-fat-eval crate
run: sudo apt-get update && sudo apt-get install -y libfontconfig1-dev

- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
Expand All @@ -55,6 +59,10 @@ jobs:
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable

- name: Install system dependencies
# Note: Needed for plotters in the fink-fat-eval crate
run: sudo apt-get update && sudo apt-get install -y libfontconfig1-dev

- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
Expand All @@ -73,6 +81,10 @@ jobs:
- name: Install Rust (stable)
uses: dtolnay/rust-toolchain@stable

- name: Install system dependencies
# Note: Needed for plotters in the fink-fat-eval crate
run: sudo apt-get update && sudo apt-get install -y libfontconfig1-dev

- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
Expand All @@ -94,6 +106,10 @@ jobs:
with:
components: llvm-tools-preview

- name: Install system dependencies
# Note: Needed for plotters in the fink-fat-eval crate
run: sudo apt-get update && sudo apt-get install -y libfontconfig1-dev

- name: Cache Rust
uses: Swatinem/rust-cache@v2
with:
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ __pycache__/
.Python
.venv/
env/
bin/
# bin/
build/
develop-eggs/
dist/
Expand Down Expand Up @@ -86,3 +86,6 @@ test_config.toml
test_exp/

crates/fink-fat-engine/.github/agents/
docs/
edge_plots/
model_eval_plots/
Loading
Loading