|
1 | | -# Loadout |
| 1 | +``` |
| 2 | +██╗ ██████╗ █████╗ ██████╗ ██████╗ ██╗ ██╗████████╗ |
| 3 | +██║ ██╔═══██╗██╔══██╗██╔══██╗██╔═══██╗██║ ██║╚══██╔══╝ |
| 4 | +██║ ██║ ██║███████║██║ ██║██║ ██║██║ ██║ ██║ |
| 5 | +██║ ██║ ██║██╔══██║██║ ██║██║ ██║██║ ██║ ██║ |
| 6 | +███████╗╚██████╔╝██║ ██║██████╔╝╚██████╔╝╚██████╔╝ ██║ |
| 7 | +╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚═════╝ ╚═════╝ ╚═════╝ ╚═╝ |
| 8 | +``` |
| 9 | + |
| 10 | +<div align="center"> |
| 11 | + |
| 12 | +[](https://git.io/typing-svg) |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
2 | 19 |
|
3 | | -Machine-first skill manager for project-scoped skills across Codex CLI and Claude Code. |
| 20 | +</div> |
4 | 21 |
|
5 | | -## Problem |
| 22 | +--- |
6 | 23 |
|
7 | | -Projects frequently copy skills from a central skills repository. That creates drift: |
| 24 | +<details open> |
| 25 | +<summary><b>📌 ~/problem</b></summary> |
| 26 | +<br> |
| 27 | + |
| 28 | +Projects often copy skills from a central skills repository. That creates drift: |
8 | 29 |
|
9 | 30 | - the project copy diverges from the source |
10 | | -- improvements get lost or re-done |
| 31 | +- improvements get lost or duplicated |
11 | 32 | - each client (Codex vs Claude) ends up with a different layout and UX |
12 | 33 |
|
13 | | -## What this repo does |
| 34 | +</details> |
| 35 | + |
| 36 | +<details open> |
| 37 | +<summary><b>🧠 ~/solution</b></summary> |
| 38 | +<br> |
14 | 39 |
|
15 | 40 | Loadout makes skill usage reproducible and agent-friendly: |
16 | 41 |
|
17 | | -- Uses a **manifest + lock** (pinned commit SHAs) committed in the project. |
18 | | -- Clones skill sources into a **gitignored runtime cache** per project. |
19 | | -- Exports selected skills into `.codex/skills/` and `.claude/skills/` via **symlinks**. |
20 | | -- Enforces **explicit trust** for third-party sources (supply-chain gating). |
21 | | -- Outputs **JSON by default** (including errors), so agents can parse reliably. |
| 42 | +- **manifest + lock** (pinned commit SHAs) committed in the project |
| 43 | +- per-project source clones in `.codex/.loadout/` (gitignored) |
| 44 | +- symlink export into `.codex/skills/` and `.claude/skills/` |
| 45 | +- explicit trust gate for third-party sources |
| 46 | +- JSON by default on stdout (including errors) |
| 47 | + |
| 48 | +Docs: |
| 49 | + |
| 50 | +- `docs/PRD_Skill_Manager.md` |
| 51 | +- `docs/Agent_Playbook.md` |
22 | 52 |
|
23 | | -## Project layout |
| 53 | +</details> |
24 | 54 |
|
25 | | -- `src/` — `loadout` CLI (Rust) |
26 | | -- `src/bin/no_cyrillic.rs` — repo policy check: English-only (no Cyrillic) |
27 | | -- `docs/` — PRD + agent playbook |
28 | | -- `templates/user-scoped/` — user-scoped wrapper skill templates |
| 55 | +<details> |
| 56 | +<summary><b>🚀 ~/quickstart</b></summary> |
| 57 | +<br> |
29 | 58 |
|
30 | | -## Quick start (local dev) |
| 59 | +```bash |
| 60 | +# in a git project |
| 61 | +loadout init --primary-url <skills_repo_url> --primary-ref main |
| 62 | + |
| 63 | +loadout suggest --target codex --query "pdf" --limit 10 |
| 64 | +loadout add --target codex pdf-processing |
| 65 | + |
| 66 | +# if you select third-party skills, you must trust the source explicitly |
| 67 | +loadout source trust third --yes |
| 68 | +``` |
| 69 | + |
| 70 | +</details> |
| 71 | + |
| 72 | +<details> |
| 73 | +<summary><b>🧪 ~/dev</b></summary> |
| 74 | +<br> |
31 | 75 |
|
32 | 76 | ```bash |
33 | 77 | cargo test |
34 | 78 | uvx prek run --all-files |
35 | 79 | ``` |
36 | 80 |
|
37 | | -## Notes |
| 81 | +</details> |
| 82 | + |
| 83 | +--- |
| 84 | + |
| 85 | +<details> |
| 86 | +<summary><b>🗒️ ~/notes</b></summary> |
| 87 | +<br> |
| 88 | + |
| 89 | +- v1 targets macOS/Linux (symlink export). Windows fallback export is a roadmap item. |
38 | 90 |
|
39 | | -- v1 targets macOS/Linux. Windows fallback export is a roadmap item. |
| 91 | +</details> |
40 | 92 |
|
41 | 93 | ## License |
42 | 94 |
|
|
0 commit comments