CliMA / CliMA/EnsembleKalmanProcesses.jl

AI-maintainer skills wishlist

Open
#561 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Julia
Stars
125
Forks
24
Avg merge
1d 18h
Merged PRs (30d)
5

Description

## Issue
I am currently developing some Claude skills for this repository. I will compile a quick wishlist of some stuff that I think would be great for AI to do, and are currently always on my to-do list. I have a `settings.json` that asks users to use these skills (or create new ones if it is a common task not yet covered)

## Skill philosophy here - enforced by user, and `Meta-skills` below
1. Suited to doing one particular task. We can call on these skills occasionally (and manually for now) like any other tool to improve the user experience of the repository.
2. Suited for easy copy to different repositories (though tailored to a repository through examples etc.)
3. Must have a mechanism for self-improvement.

## The wishlist
As I am just learning here, some of these might be ideally suited and others need scope refinement. This set can easily evolve however.

### Meta-skills
- [x] `skill-creator` (adapt anthropic's one)
- [ ] (e.g. something to help the AI navigate the repository efficiently and save tokens)

### Repo-skills
- [x] `docstring` : docstring maintenance and consistency with arguments returns etc. in line with julia conventions, and using DosStringExtensions, listing examples if needed.
- [x] `base-show`: Adding prettified base-show and base-summary methods to all structs in src/. Particularly ones that curb long high-dimensional distributions
- [x] `error-message-manager`: a tool to maintain good consistency of error messages. Errors should be actionable,.(e.g. Argument errors have `Expected X, received Y.` ). Common errors should be unified into one message, with a method `bad_xyz_call(state)` put into the different sites. in-loop errors must have context (e.g. the iteration and state at which the error was thrown).
- [ ] `slurm-pipeline-manager` for users to a take a local EKP template/pipeline. And write an HPC workflow thatwill create job arrays for the ensemble and handl quirks relating to Julia precompiling etc. or race conditions when writing files
- [ ] `diagnostic-manager` More consistent reporting of diagnostics for `verbose=true/false`
- [ ] `testset-manager` Better organization of testing, instances and testset encapsulation
- [ ] `unit-test-constructors` Builds organized unit tests for all simple constructors
- [ ] `docs-quicklinks-manager` updates the readme and index quicklinks when docs have changed.
- [ ] `deprecator` - users can provide an old keyword/api and this will create a deprecated method notice.
- [ ] `readme` and `news` - updates the `Readme.md` or `News.md`

... _add to me_

## Agents
there are also special agent types that might be useful

### the philosophy
- from what I gather, agents are used primarily for context control and a useful dispatcher for parallelism
- an agent is most useful if internally it performs a very very simple task, that might use a lot of internal context, but then and returns a small output (e.g. read a file and provide a short summary, or relevant line numbers)
- in parallel, every agent requires it's own startup context, so we want them to perform a very direct and simple task to minimise the token usage per agent. (E.g. call this function to read this exact file here (don't search for a file))

### A wishlist
- [ ] `JuliaExplore` - (context, we don't want to read and search files in general, we want to query an api for the locations) this agent will use only queries to find relevant information for file changes etc.
- Have a code-tool construct such a queriable database. The AI agent should then use it.

... _add to me_

## Useful non-AI tools
- Navigation: It appears like AI does a lot of searching, we should construct something to construct a navigatable/queriable structure
- pre-commit hooks

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading settings.json and the existing skill entries, including skill-creator, docstring, base-show, and error-message-manager. Narrow the wishlist to one unchecked skill or agent, identify its repository touchpoints such as src/, Readme.md, News.md, or documentation links, and define completion as an implemented, reusable skill with a clear self-improvement mechanism.

Written by the indexing model from the issue text.

Assessment

Tech stack
julia
Domain
tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.