Skip to content

Commit 85bed5b

Browse files
Add Atelier Arith Julia Development Skills (#139)
1 parent 4ec1161 commit 85bed5b

14 files changed

Lines changed: 887 additions & 2 deletions

File tree

.agents/plugins/marketplace.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,21 @@
7878
"description": "Gives coding agents the architecture, rules, and prior decisions of the repo via skills, hooks, and MCP — so new changes land where the project says they belong across Claude Code, Cursor, and Codex CLI.",
7979
"icon": "./plugins/archcore-ai/plugin/assets/icon.png"
8080
},
81+
{
82+
"name": "aa-jl",
83+
"displayName": "Atelier Arith Julia Development Skills",
84+
"source": {
85+
"source": "local",
86+
"path": "./plugins/AtelierArith/atelier-arith-julia-development-skills"
87+
},
88+
"policy": {
89+
"installation": "AVAILABLE",
90+
"authentication": "ON_INSTALL"
91+
},
92+
"category": "Development & Workflow",
93+
"description": "Codex skills for Julia installation, package creation, app creation, and test workflows.",
94+
"icon": "./plugins/AtelierArith/atelier-arith-julia-development-skills/assets/icon.svg"
95+
},
8196
{
8297
"name": "bringyour-migration-auditor",
8398
"displayName": "Bring Your AI Migration Auditor",

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ Third-party plugins built by the community. [PRs welcome](#contributing)!
125125
- [AgentOps](https://github.com/boshu2/agentops) - DevOps layer for coding agents with flow, feedback, and memory that compounds between sessions.
126126
- [Antigravity Workspace Template](https://github.com/study8677/antigravity-workspace-template) - Multi-agent codebase knowledge graph generator with context-aware planning and automatic scope management — turns codebases into coherent agent workspaces.
127127
- [Archcore](https://github.com/archcore-ai/plugin) - Gives coding agents the architecture, rules, and prior decisions of the repo via skills, hooks, and MCP — so new changes land where the project says they belong across Claude Code, Cursor, and Codex CLI.
128+
- [Atelier Arith Julia Development Skills](https://github.com/AtelierArith/atelier-arith-julia-development-skills) - Codex skills for Julia installation, package creation, app creation, and test workflows.
128129
- [Bring Your AI Migration Auditor](https://github.com/unitedideas/bringyour-mcp) - Read-only Codex plugin for auditing Claude Code to Codex migrations before Codex edits code. Checks AGENTS.md/CLAUDE.md scope, hooks, MCP config, skills, secret references, and validation notes.
129130
- [Brooks Lint](https://github.com/hyhmrright/brooks-lint) - AI code reviews grounded in six classic engineering books — decay risk diagnostics with book citations, severity labels, and four analysis modes (PR review, architecture audit, tech debt, test quality).
130131
- [Changelog Forge](./plugins/mturac/changelog-forge) - Conventional commits → CHANGELOG section + semver bump.

plugins.json

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"$schema": "https://json-schema.org/draft/2020-12/schema",
33
"name": "awesome-codex-plugins",
44
"version": "1.0.0",
5-
"last_updated": "2026-05-18",
6-
"total": 80,
5+
"last_updated": "2026-05-20",
6+
"total": 81,
77
"categories": [
88
"Development & Workflow",
99
"Tools & Integrations"
@@ -59,6 +59,16 @@
5959
"source": "awesome-codex-plugins",
6060
"install_url": "https://raw.githubusercontent.com/archcore-ai/plugin/HEAD/.codex-plugin/plugin.json"
6161
},
62+
{
63+
"name": "Atelier Arith Julia Development Skills",
64+
"url": "https://github.com/AtelierArith/atelier-arith-julia-development-skills",
65+
"owner": "AtelierArith",
66+
"repo": "atelier-arith-julia-development-skills",
67+
"description": "Codex skills for Julia installation, package creation, app creation, and test workflows.",
68+
"category": "Development & Workflow",
69+
"source": "awesome-codex-plugins",
70+
"install_url": "https://raw.githubusercontent.com/AtelierArith/atelier-arith-julia-development-skills/HEAD/.codex-plugin/plugin.json"
71+
},
6272
{
6373
"name": "Bring Your AI Migration Auditor",
6474
"url": "https://github.com/unitedideas/bringyour-mcp",
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
{
2+
"name": "aa-jl",
3+
"version": "0.2.0",
4+
"description": "Codex skills for Julia installation, package creation, app creation, and test workflows.",
5+
"author": {
6+
"name": "Atelier Arith",
7+
"url": "https://github.com/AtelierArith"
8+
},
9+
"homepage": "https://github.com/AtelierArith/atelier-arith-julia-development-skills",
10+
"repository": "https://github.com/AtelierArith/atelier-arith-julia-development-skills",
11+
"license": "MIT",
12+
"keywords": ["julia", "codex", "skills", "testing", "package-development"],
13+
"skills": "./skills/",
14+
"interface": {
15+
"displayName": "Atelier Arith Julia Development Skills",
16+
"shortDescription": "Julia development workflows for Codex.",
17+
"longDescription": "A collection of Codex skills for installing Julia, generating Julia packages, creating Julia apps, creating test environments, and running Julia tests.",
18+
"developerName": "Atelier Arith",
19+
"category": "Developer Tools",
20+
"capabilities": ["Write"],
21+
"websiteURL": "https://github.com/AtelierArith/atelier-arith-julia-development-skills",
22+
"composerIcon": "./assets/icon.svg",
23+
"defaultPrompt": [
24+
"Create a Julia package in this directory.",
25+
"Add a Julia test environment.",
26+
"Run the Julia test workflow."
27+
],
28+
"brandColor": "#9558B2"
29+
}
30+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 AtelierArith
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
# atelier-arith-julia-development-skills
2+
3+
Plugin containing Julia development skills for both **Claude Code** and **Codex**.
4+
5+
## Included Skills
6+
7+
- `installing-julia` — install the Julia runtime
8+
- `generating-julia-package` — create Julia project environments and package layouts
9+
- `creating-julia-app` — create Julia command-line apps with `@main` and `[apps]`
10+
- `creating-julia-test-env` — add a Julia package test environment
11+
- `running-julia-test` — run standard and faster local Julia test workflows
12+
13+
## Installation
14+
15+
### Claude Code
16+
17+
```sh
18+
/plugin marketplace add atelierarith/atelier-arith-julia-development-skills
19+
/plugin install aa-jl@atelier-arith-julia-development-skills
20+
```
21+
22+
Session-only (no permanent install):
23+
24+
```sh
25+
claude --plugin-dir /path/to/atelier-arith-julia-development-skills
26+
# or
27+
claude --plugin-url https://github.com/atelierarith/atelier-arith-julia-development-skills/archive/main.zip
28+
```
29+
30+
### Codex
31+
32+
If your Codex client supports plugins, add this repository URL in the Codex
33+
plugin settings. The manifest is at `.codex-plugin/plugin.json`.
34+
35+
For local development, add this repository as a local Codex plugin marketplace
36+
entry. The Codex plugin name is `aa-jl`; it is intentionally short so namespaced
37+
skill IDs such as `aa-jl:finding-latest-julia-version` stay under Codex's
38+
64-character skill name limit.
39+
40+
```sh
41+
git clone https://github.com/AtelierArith/atelier-arith-julia-development-skills.git ~/.codex/aa-jl
42+
mkdir -p ~/.agents/plugins
43+
python3 - <<'PY'
44+
import json
45+
from pathlib import Path
46+
47+
marketplace = Path.home() / ".agents" / "plugins" / "marketplace.json"
48+
plugin_path = Path.home() / ".codex" / "aa-jl"
49+
entry = {
50+
"name": "aa-jl",
51+
"source": {"source": "local", "path": str(plugin_path)},
52+
"policy": {"installation": "AVAILABLE", "authentication": "ON_INSTALL"},
53+
"category": "Developer Tools",
54+
}
55+
56+
if marketplace.exists():
57+
data = json.loads(marketplace.read_text())
58+
else:
59+
data = {
60+
"name": "local-codex-plugins",
61+
"interface": {"displayName": "Local Codex Plugins"},
62+
"plugins": [],
63+
}
64+
65+
data["plugins"] = [p for p in data.get("plugins", []) if p.get("name") != "aa-jl"]
66+
data["plugins"].append(entry)
67+
marketplace.write_text(json.dumps(data, indent=2) + "\n")
68+
PY
69+
```
70+
71+
Then install `aa-jl` from the local Codex plugin marketplace and restart Codex
72+
so it reloads the skill list.
73+
74+
## Repository Structure
75+
76+
```
77+
.
78+
├── .claude-plugin/
79+
│ ├── plugin.json # Claude Code plugin manifest
80+
│ └── marketplace.json # Claude Code marketplace manifest (references this repo)
81+
├── .codex-plugin/
82+
│ └── plugin.json # Codex plugin manifest
83+
├── AGENTS.md
84+
├── CLAUDE.md
85+
├── LICENSE
86+
├── README.md
87+
├── plans/
88+
└── skills/
89+
├── creating-julia-app/
90+
│ └── SKILL.md
91+
├── creating-julia-test-env/
92+
│ └── SKILL.md
93+
├── generating-julia-package/
94+
│ └── SKILL.md
95+
├── installing-julia/
96+
│ └── SKILL.md
97+
└── running-julia-test/
98+
└── SKILL.md
99+
```
100+
101+
## Adding a New Skill
102+
103+
1. Create `skills/<skill-name>/SKILL.md` with YAML frontmatter:
104+
105+
```markdown
106+
---
107+
name: <skill-name>
108+
description: Use when ...
109+
---
110+
```
111+
112+
2. Bump `version` in `.claude-plugin/plugin.json`, `.claude-plugin/marketplace.json`, and `.codex-plugin/plugin.json`.
Lines changed: 25 additions & 0 deletions
Loading
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
name: creating-julia-app
3+
description: Use when you create a CLI written in Julia packages or MCP servers
4+
---
5+
6+
# Creating a Julia app
7+
8+
Apps are Julia packages that are intended to be run as "standalone programs" (by e.g. typing the name of the app in the terminal possibly together with some arguments or flags/options). This is in contrast to most Julia packages that are used as "libraries" and are loaded by other files or in the Julia REPL.
9+
10+
A Julia app is structured similar to a standard Julia library with the following additions:
11+
12+
A `@main` entry point in the package module (see the Julia help on `@main` for details)
13+
An `[apps]` section in the `Project.toml` file listing the executable names that the package provides.
14+
A very simple example of an app that prints the reversed input arguments would be:
15+
16+
```julia
17+
# src/MyReverseApp.jl
18+
module MyReverseApp
19+
20+
function (@main)(ARGS)
21+
for arg in ARGS
22+
print(stdout, reverse(arg), " ")
23+
end
24+
return
25+
end
26+
27+
end # module
28+
```
29+
30+
```toml
31+
# Project.toml
32+
33+
# standard fields here
34+
35+
[apps]
36+
reverse = {}
37+
```
38+
39+
The empty table `{}` is to allow for giving metadata about the app.
40+
41+
After installing this app one could run:
42+
43+
```
44+
$ ~/.julia/bin/reverse some input string
45+
emos tupni gnirts
46+
```
47+
48+
directly in the terminal. See the following link to learn more:
49+
50+
- [Multiple Apps per Package](https://pkgdocs.julialang.org/v1/apps/#Multiple-Apps-per-Package)
Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
---
2+
name: creating-julia-test-env
3+
description: Use when you add tests for Julia packages
4+
---
5+
6+
# creating-julia-test-env
7+
8+
A minimal Julia package layout looks like this:
9+
10+
```sh
11+
$ tree
12+
.
13+
├── Project.toml
14+
└── src
15+
└── MyPkg.jl # Assume the package is named MyPkg for this example.
16+
17+
```
18+
19+
To add software tests for this package, follow the steps below.
20+
21+
Step 1: Create the `test` directory, `runtests.jl`, and a `Project.toml` for the test environment.
22+
23+
```sh
24+
mkdir test
25+
touch test/runtests.jl
26+
touch test/Project.toml
27+
```
28+
29+
Step 2: Add a `[workspace]` section to `./Project.toml` (not `test/Project.toml`):
30+
31+
```toml
32+
name = "MyPkg"
33+
34+
...
35+
...<omitted>
36+
...
37+
38+
# Add this section
39+
[workspace]
40+
projects = ["test"]
41+
```
42+
43+
---
44+
45+
**Note:** If you are on Julia 1.11 or older, do **not** use `[workspace]`. Instead, add `[extras]` and `[targets]`:
46+
47+
```toml
48+
[extras]
49+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
50+
51+
[targets]
52+
test = ["Test"]
53+
```
54+
55+
Step 3: Set up `./test/Project.toml` as follows:
56+
57+
```sh
58+
$ cd test
59+
$ ls
60+
runtests.jl Project.toml
61+
$ julia --project -e 'using Pkg; Pkg.add("Test")'
62+
$ julia --project -e 'using Pkg; Pkg.develop(path="../")'
63+
$ cat Project.toml
64+
[deps]
65+
MyPkg = <UUID for MyPkg goes here>
66+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
67+
68+
[sources]
69+
MyPkg = {path = ".."}
70+
```
71+
72+
Step 4: Put a simple sample test in `test/runtests.jl` (replace `MyPkg` with your actual package name).
73+
74+
```julia
75+
using Test
76+
77+
using MyPkg
78+
79+
@testset "sample" begin
80+
@test 1 + 1 == 2
81+
end
82+
```
83+
84+
Step 5: Run the following to verify:
85+
86+
```sh
87+
$ julia --project -e 'using Pkg; Pkg.test()'
88+
```

0 commit comments

Comments
 (0)