is Nikolay Nikitin, PhD. I’m the Analysis Lead on the AI Institute of ITMO College and an open-source fanatic. I typically see a lot of my colleagues failing to seek out the time and vitality to create open repositories for his or her analysis papers and to make sure they’re of correct high quality. On this article, I’ll focus on how we will help clear up this downside utilizing OSA, an AI device developed by our staff that helps the repository turn out to be a greater model of itself. In case you’re sustaining or contributing to open supply, this submit will prevent effort and time: you’ll learn the way OSA can robotically enhance your repo by including a correct README, producing documentation, organising CI/CD scripts, and even summarizing the important thing strengths and weaknesses of the mission.
There are lots of completely different documentation enchancment instruments. Nonetheless, they deal with completely different particular person parts of repository documentation. For instance, the Readme-AI device generates the README file, but it surely doesn’t account for extra context, which is vital, for instance, for repositories of scientific articles. One other device, RepoAgent, generates full documentation for the repository code, however not README or CI/CD scripts. In distinction, OSA considers the repository holistically, aiming to make it simpler to know and able to run. The device was initially made for our colleagues in analysis, together with biologists and chemists, who typically lack expertise in software program engineering and fashionable improvement practices. The principle purpose was to assist them make the repository extra readable and reproducible in a number of clicks. However OSA can be utilized on any repository, not solely scientific ones.
Why is it wanted?
Scientific open supply faces challenges with the reuse of analysis outcomes. Even when code is shared with scientific papers, it’s hardly ever obtainable or full. This code is normally tough to learn; there isn’t a documentation for it, and typically even a fundamental README is lacking, because the developer meant to jot down it on the final second however didn’t have time. Libraries and frameworks typically lack fundamental CI/CD settings reminiscent of linters, automated checks, and different high quality checks. Subsequently, it’s inconceivable to breed the algorithm described within the article. And this can be a large downside, as a result of if somebody publishes their analysis, they do it with a need to share it with the group
However this downside isn’t restricted to science solely. Skilled builders additionally typically postpone writing readme and documentation for lengthy durations. And if a mission has dozens of repositories, sustaining and utilizing them may be difficult.
Ideally, every repository ought to be straightforward to run and user-friendly. And infrequently the posted developments typically lack important components reminiscent of a transparent README file or correct docstrings, which may be compiled into full documentation utilizing commonplace instruments like mkdocs.
Primarily based on our expertise and evaluation of the issue, we tried to recommend an answer and implement it because the Open Supply Advisor device – OSA.
What’s the OSA device?
OSA is an open-source Python library that leverages LLM brokers to enhance open-source repositories and make them simpler to reuse.
The device is a bundle that runs by way of a command-line interface (CLI). It can be deployed regionally utilizing Docker. By specifying an API key in your most well-liked LLM, you possibly can work together with the device by way of the console. You may as well strive OSA by way of the general public internet GUI. There’s brief introduction to essential concepts of repository enchancment with OSA:
How does OSA work?
The Open Supply Advisor (OSA) is a multi-agent device that helps enhance the construction and value of scientific repositories in an automatic approach. It addresses frequent points in analysis initiatives by dealing with duties reminiscent of producing documentation (README information, code docstrings), creating important information (licenses and necessities), and suggesting sensible enhancements to the repository. Customers merely present a repository hyperlink and may both obtain an robotically generated Pull Request (PR) with all really useful modifications or overview the options regionally earlier than making use of them.
OSA can be utilized in two methods: by cloning the repository and working it via a command-line interface (CLI), or by way of an internet interface. It additionally provides three working modes: fundamental, automated, and superior, that are chosen at runtime to suit completely different wants. In fundamental mode, OSA applies a small set of ordinary enhancements with no further enter: it generates a report, README, group documentation, and an About part, and provides frequent folders like “tests” and “examples” in the event that they’re lacking. Superior mode provides customers full handbook management over each step. In automated mode, OSA makes use of an LLM to research the repository construction and the prevailing README, then proposes a listing of enhancements for customers to approve or reject. An experimental multi-agent conversational mode can also be being developed, permitting customers to specify desired enhancements in free-form pure language by way of the CLI. OSA interprets this request and applies the corresponding modifications. This mode is at present below lively improvement.
One other key power of OSA is its flexibility with language fashions. It really works with in style suppliers like OpenRouter and OpenAI, in addition to native fashions reminiscent of Ollama and self-hosted LLMs working by way of FastAPI.
OSA additionally helps a number of repository platforms, together with GitHub and GitLab (each GitLab.com and self-hosted situations). It may possibly modify CI/CD configuration information, arrange documentation deployment workflows, and accurately configure paths for group documentation.
an experimental multi-agent system (MAS), at present below lively improvement, that serves as the premise for its automated and conversational modes. The system decomposes repository enchancment right into a sequence of reasoning and execution phases, every dealt with by a specialised agent. Brokers talk by way of a shared state and are coordinated via a directed state graph, enabling conditional transitions and iterative workflows.
README technology
OSA features a README technology device that robotically creates clear and helpful README information in two codecs: a typical README and an article-style README. The device decides which format to make use of by itself, for instance, if the person offers a path or URL to a scientific paper via the CLI, OSA switches to the article format. To start out, it scans the repository to seek out crucial information, specializing in core logic and mission descriptions, and takes into consideration the folder construction and any current README.
For the usual README, OSA analyzes the important thing mission information, repository construction, metadata, and the principle sections of an current README if one is current. It then generates a “Core Features” part that serves as the inspiration for the remainder of the doc. Utilizing this info, OSA writes a transparent mission overview and provides a “Getting Started” part when instance scripts or demo information can be found, serving to customers shortly perceive the right way to use the mission.
In article mode, the device creates a abstract of the related scientific paper and extracts related info from the principle code information. These items are mixed into an Overview that explains the mission objectives, a Content material part that describes the principle parts and the way they work collectively, and an Algorithms part that explains how the carried out strategies match into the analysis. This method retains the documentation scientifically correct whereas making it simpler to learn and perceive.
Documentation technology
The documentation technology device produces concise, context-aware documentation for features, strategies, courses, and code modules. The documentation technology course of is as follows:
(1) Reference parsing: Initially, a TreeSitter-driven parser fetches imported modules and resolves paths to them for every specific supply code file, forming an import map that can additional be used to find out technique and performance requires the international modules utility. By implementing such an method, it’s comparatively straightforward to rectify interconnections between completely different elements of the processed mission and to tell apart between inner aliases. Together with the import maps, the parser additionally preserves normal info such because the processing file, a listing of occurring courses, and standalone features. Every class comprises its title, attributes checklist, decorators, docstring, checklist of its strategies, and every technique has its particular particulars that are of the identical construction as standalone features, that’s: technique title, docstring, return sort, supply code and alias resolved international technique calls with a reputation of the imported module, class, technique, and path to it.
(2) Preliminary docstrings technology for features, strategies, and courses: With a parser having a construction shaped, an preliminary docstrings technology stage is ongoing. Solely docstrings that lack courses, strategies, and features are processed at this stage. Here’s a normal description of what the ‘what’ technique does. The context is usually the strategy’s supply code, since at this level, forming a normal description of the performance is essential. The onward immediate consists of details about the strategy’s arguments and interior designers, and it trails with the supply code of the referred to as international strategies to offer further context for processing technique utility. A neat second right here is that class docstrings are generated solely in any case their docstring-lacking strategies are generated; then class attributes, their strategies’ names, and docstrings are offered to the mannequin.
(3) Technology of “the main idea” of the mission utilizing descriptions of parts derived from the earlier stage.
(4) Docstrings replace utilizing generated “main idea”: Therefore, all docstrings for the mission are presumably current, technology of the principle thought of the mission may be carried out. Basically, the immediate for the thought consists of docstrings for all courses and features, together with their significance rating primarily based on the speed of incidence of every element within the import maps talked about earlier than, and their place within the mission hierarchy decided by supply path. The mannequin response is returned in markdown format, summarizing the mission’s parts. As soon as the principle thought is acquired, the second stage of docstring technology begins, throughout which all the mission’s supply code parts are processed. At this second, the important thing focus is on offering the mannequin with an unique or generated docstring on the preliminary stage docstring with the principle thought to elaborate on ‘why’ this element is required for the mission. The supply code for the strategies can also be being offered, since an expanded mission narrative could immediate the mannequin to appropriate some factors within the unique docstring.
(5) Hierarchical modules description technology ranging from the underside to the highest.
(6) Utilizing Mkdocs and GitHub pages for automated documentation pushing and streaming: Ultimate stage of the docstring pipeline, contemplating a recursive traversal throughout the mission’s modules and submodules. Hierarchy relies on the supply path; at every leaf-processing degree, a beforehand parsed construction is used to create an outline of which submodule is used, in accordance with the principle thought. As processing strikes to increased ranges of the hierarchy, generated submodules’ summaries are additionally used to offer further context. The mannequin returns summaries in Markdown to make sure seamless integration with the mkdocs documentation technology pipeline. The entire schema of the method is described within the picture beneath.

CI/CD and construction group
OSA provides an automatic CI/CD setup that works throughout completely different repository internet hosting platforms. It generates configurable workflows that make it simpler to run checks, verify code high quality, and deploy initiatives. The device helps frequent utilities reminiscent of Black for code formatting, unit_test for working checks, PEP8 and autopep8 for type checks, fix_pep8 for automated type fixes, pypi_publish for publishing packages, and slash_command_dispatch for dealing with instructions. Relying on the platform, these workflows are positioned within the applicable places, for instance, .github/workflows/ for GitHub or a .gitlab-ci.yml file within the repository root for GitLab.
Customers can customise the generated workflows utilizing choices like –use-poetry to allow Poetry for dependency administration, –branches to outline which branches set off the workflows (by default, essential and grasp), and code protection settings by way of --codecov-token and --include-codecov.
To make sure dependable testing, OSA additionally reorganizes the repository construction. It identifies check and instance information and strikes them into standardized checks and examples directories, permitting CI workflows to run checks persistently with out further configuration.
Workflow information are created from templates that mix project-specific info with user-defined settings. This method retains workflows constant throughout initiatives whereas nonetheless permitting flexibility when wanted.
OSA additionally automates documentation deployment utilizing MkDocs. For GitHub repositories, it generates a YAML workflow within the .github/workflows listing and requires enabling learn/write permissions and choosing the gh-pages department for deployment within the repository settings. For GitLab, OSA creates or updates the .gitlab-ci.yml file to incorporate construct and deployment jobs utilizing Docker photos, scripts, and artifact retention guidelines. Documentation is then robotically printed when modifications are merged into the principle department.
The best way to use OSA
To start utilizing OSA, select your repository with draft code that’s incomplete or underdocumented. Optionally, embrace a associated scientific paper or one other doc describing the library or algorithm carried out within the chosen repo. The paper is uploaded as a separate file and used to generate the README. You may as well specify the LLM supplier (e.g., OpenAI) and the mannequin title (reminiscent of GPT-4o).
OSA generates suggestions for enhancing the repository, together with:
- A README file generated from code evaluation, utilizing commonplace templates and examples
- Docstrings for courses and strategies which are at present lacking, to allow automated documentation technology with MkDocs
- Fundamental CI/CD scripts, together with linters and automatic checks
- A report with actionable suggestions for enhancing the repository
- Contribution pointers and information (Code of Conduct, pull request and subject templates, and so on.)
You possibly can simply set up OSA by working:
pip set up osa_toolAfter organising the surroundings, you need to select an LLM supplier (reminiscent of OpenAI or a neighborhood mannequin). Subsequent, you need to add GIT_TOKEN (GitHub token with commonplace repo permissions) and OPENAI_API_KEY (should you use OpenAI-compatible API) as surroundings variables, or you possibly can retailer them within the .env file as effectively. Lastly, you possibly can launch OSA straight from the command line. OSA is designed to work with an current open-source repository by offering its URL. The fundamental launch command consists of the repository deal with and elective parameters such because the operation mode, API endpoint, and mannequin title:
osa_tool -r {repository} [--mode {mode}] [--api {api}] [--base-url {base_url}] [--model {model_name}]OSA helps three working modes:
- auto (default) – analyzes the repository and creates a custom-made enchancment plan utilizing the specialised LLM agent.
- fundamental – applies a predefined set of enhancements: generates a mission report, README, group pointers, an “About” part, and creates commonplace directories for checks and examples (if they’re lacking).
- superior – permits handbook choice and configuration of actions earlier than execution.
Further CLI choices can be found right here. You possibly can customise OSA by passing these choices as arguments to the CLI, or by choosing desired options within the interactive command-line mode.

As soon as launched, OSA performs an preliminary evaluation of the repository and shows key info: normal mission particulars, the present surroundings configuration, and tables with deliberate and inactive actions. The person is then prompted to both settle for the urged plan, cancel the operation, or enter an interactive enhancing mode.
In interactive mode, the plan may be modified: actions toggled on or off, parameters (strings and lists) adjusted, and extra choices configured. The system guides the person via every motion’s description, doable values, and present settings. This course of continues till the person confirms the ultimate plan.
This CLI-based workflow ensures flexibility, from absolutely automated processing to specific handbook management, making it appropriate for each fast preliminary assessments and detailed mission refinements.
OSA additionally consists of an experimental conversational interplay mode that enables customers to specify desired repository enhancements utilizing free-form pure language by way of the CLI. If the request is ambiguous or insufficiently associated to repository processing, the system iteratively requests clarifications and permits the connected supplementary file to be up to date. As soon as a sound instruction is obtained, OSA analyzes the repository, selects the suitable inner modules, and executes the corresponding actions. This mode is at present below lively improvement.
When OSA finishes, it creates a pull request (PR) within the repository. The PR consists of all proposed modifications, such because the README, docstrings, documentation web page, CI/CD scripts, сontribution pointers, report, and extra. The person can simply overview the PR, make modifications if wanted, and merge it into the mission’s essential department.
Let’s have a look at an instance. GAN-MFS is a repository that gives a PyTorch implementation of Wasserstein GAN with Gradient Penalty (WGAN-GP). Right here is an instance of a command to launch OSA on this repo:
osa_tool -r github.com/Roman223/GAN_MFS --mode auto --api openai --base-url --model gpt-4.1-miniOSA made a number of contributions to the repository, together with a README file generated from the paper’s content material.


OSA additionally added a License file to the pull request, in addition to some fundamental CI/CD scripts.

OSA added docstrings to all courses and strategies the place documentation was lacking. It additionally generated a structured, web-based documentation website utilizing these docstrings.

The generated report consists of an audit of the repository’s key parts: README, license, documentation, utilization examples, checks, and a mission abstract. It additionally analyzes key sections of the repository, reminiscent of construction, README, and documentation. Primarily based on this evaluation, the system identifies key areas for enchancment and offers focused advice.

Lastly, OSA interacts with the goal repository by way of GitHub. The OSA bot creates a fork of the repository and opens a pull request that features all proposed modifications. The developer solely must overview the options and modify something that appears incorrect. In my view, that is a lot simpler than writing the identical README from scratch. After overview, the repository maintainer efficiently merged the pull request. All modifications proposed by OSA can be found right here.

Though the variety of modifications launched by the OSA is critical, it’s tough to evaluate the general enchancment in repository high quality. To do that, we determined to look at the repository from a safety perspective. The scorecard device permits us to judge the repository utilizing the aggregated metric. Scorecard was created to assist open supply maintainers enhance their safety greatest practices and to assist open supply customers choose whether or not their dependencies are secure. The combination rating takes into consideration many repository parameters, together with the presence of binary artifacts, CI/CD checks, the variety of contributors, and a license. The aggregated rating of the unique repository was 2.2/10. After the processing by OSA, it rose to three.7/10. This occurred as a result of addition of a license and CI/CD scripts. This rating should appear too low, however the repository being processed isn’t meant for integration into massive initiatives. It’s a small device for producing artificial information primarily based on a scientific article, so its safety necessities are decrease.
What’s Subsequent for OSA?
We plan to combine a RAG system into OSA, primarily based on greatest practices in open-source improvement. OSA will examine the goal repository with reference examples to determine lacking parts. For instance, if the repository already has a high-quality README, it gained’t be regenerated. Initially, we used OSA for Python repositories, however we plan to assist further programming languages sooner or later.
In case you have an open repository that requires enchancment, give OSA a strive! We’d additionally respect concepts for brand new options that you may depart as points and PRs.
In case you want to use OSA in your works, it may be cited as:
Nikitin N. et al. An LLM-Powered Device for Enhancing Scientific Open-Supply Repositories // Championing Open-source DEvelopment in ML Workshop@ ICML25.



