refactor: installation par git clone, plus de subtree dans le projet hote
This commit is contained in:
88
README.md
88
README.md
@@ -40,83 +40,38 @@ Le serveur MCP lance aichat au démarrage sur un port libre. Qwen3 dispose d'out
|
|||||||
|
|
||||||
## Installation dans un projet existant
|
## Installation dans un projet existant
|
||||||
|
|
||||||
### 1. Ajouter CrazyClaude comme subtree
|
`.claude/` n'est pas commité dans le projet hôte — il est installé localement comme un venv.
|
||||||
|
Chaque développeur lance `install.sh` une fois.
|
||||||
|
|
||||||
Depuis la racine de votre projet (jj colocalisé git) :
|
### 1. Cloner CrazyClaude
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git subtree add --prefix .claude https://gargoton.petite-maison-orange.fr/eric/CrazyClaude.git main --squash
|
git clone https://gargoton.petite-maison-orange.fr/eric/CrazyClaude.git .claude
|
||||||
```
|
```
|
||||||
|
|
||||||
Le contenu du repo s'installe directement dans `.claude/` — agents, hooks, mcp, etc.
|
### 2. Cloner llm-functions
|
||||||
|
|
||||||
### 2. Ajouter llm-functions comme subtree
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
git subtree add --prefix .claude/llm-functions https://github.com/sigoden/llm-functions.git main --squash
|
git clone https://github.com/sigoden/llm-functions.git .claude/llm-functions
|
||||||
```
|
```
|
||||||
|
|
||||||
### 3. Construire les outils llm-functions
|
### 3. Lancer le script d'installation
|
||||||
|
|
||||||
Choisissez les outils à activer en éditant `.claude/llm-functions/tools.txt`, puis :
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
cd .claude/llm-functions && argc build
|
bash .claude/install.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Les outils activés par défaut :
|
Le script :
|
||||||
|
- crée le virtualenv Python
|
||||||
|
- construit les outils llm-functions
|
||||||
|
- rend les hooks exécutables
|
||||||
|
- enregistre le serveur MCP dans Claude Code
|
||||||
|
- ajoute `.claude/` au `.gitignore` du projet
|
||||||
|
|
||||||
```
|
### 4. Adapter CLAUDE.md à votre projet
|
||||||
fs_cat.sh
|
|
||||||
fs_ls.sh
|
|
||||||
fs_mkdir.sh
|
|
||||||
fs_write.sh
|
|
||||||
fs_patch.sh
|
|
||||||
execute_command.sh
|
|
||||||
fetch_url_via_curl.sh
|
|
||||||
web_search_aichat.sh
|
|
||||||
execute_py_code.py
|
|
||||||
```
|
|
||||||
|
|
||||||
### 4. Créer le virtualenv Python
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cd .claude
|
|
||||||
python3 -m venv venv
|
|
||||||
venv/bin/pip install -r mcp/qwen3-mcp/requirements.txt
|
|
||||||
```
|
|
||||||
|
|
||||||
### 5. Configurer aichat
|
|
||||||
|
|
||||||
Vérifiez que aichat peut accéder à LM Studio et que le modèle `qwen/qwen3-coder-next` est disponible :
|
|
||||||
|
|
||||||
```sh
|
|
||||||
aichat --list-models | grep qwen
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6. Enregistrer le serveur MCP
|
|
||||||
|
|
||||||
```sh
|
|
||||||
claude mcp add --transport stdio qwen3 -- .claude/venv/bin/python3 .claude/mcp/qwen3-mcp/server.py
|
|
||||||
```
|
|
||||||
|
|
||||||
Vérifier :
|
|
||||||
|
|
||||||
```sh
|
|
||||||
claude mcp list
|
|
||||||
# qwen3: ... - ✓ Connected
|
|
||||||
```
|
|
||||||
|
|
||||||
### 7. Adapter CLAUDE.md à votre projet
|
|
||||||
|
|
||||||
Éditez `.claude/CLAUDE.md` : mettez à jour la section `## Stack` et les heuristiques de délégation.
|
Éditez `.claude/CLAUDE.md` : mettez à jour la section `## Stack` et les heuristiques de délégation.
|
||||||
|
|
||||||
### 8. Rendre les hooks exécutables
|
|
||||||
|
|
||||||
```sh
|
|
||||||
chmod +x .claude/hooks/*.sh
|
|
||||||
```
|
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Structure
|
## Structure
|
||||||
@@ -203,18 +158,9 @@ printf ".claude/venv/\n.claude/logs/\n.claude/llm-functions/bin/\n.claude/llm-fu
|
|||||||
|
|
||||||
## Mise à jour
|
## Mise à jour
|
||||||
|
|
||||||
Utilisez le script inclus depuis la racine de votre projet :
|
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
bash .claude/update_crazyclaude.sh
|
bash .claude/update_crazyclaude.sh
|
||||||
```
|
```
|
||||||
|
|
||||||
Ou manuellement :
|
Le script fait `git pull` sur `.claude/` et `.claude/llm-functions/` puis reconstruit les outils.
|
||||||
|
L'historique du projet hôte n'est pas affecté.
|
||||||
```sh
|
|
||||||
git subtree pull --prefix .claude https://gargoton.petite-maison-orange.fr/eric/CrazyClaude.git main --squash
|
|
||||||
git subtree pull --prefix .claude/llm-functions https://github.com/sigoden/llm-functions.git main --squash
|
|
||||||
cd .claude/llm-functions && argc build
|
|
||||||
```
|
|
||||||
|
|
||||||
jj voit chaque commit résultant comme un commit ordinaire dans son graphe.
|
|
||||||
|
|||||||
@@ -38,10 +38,7 @@ echo ""
|
|||||||
echo "=== Mise à jour du .gitignore projet ==="
|
echo "=== Mise à jour du .gitignore projet ==="
|
||||||
GITIGNORE="$PROJECT_DIR/.gitignore"
|
GITIGNORE="$PROJECT_DIR/.gitignore"
|
||||||
entries=(
|
entries=(
|
||||||
".claude/venv/"
|
".claude/"
|
||||||
".claude/logs/"
|
|
||||||
".claude/llm-functions/bin/"
|
|
||||||
".claude/llm-functions/cache/"
|
|
||||||
)
|
)
|
||||||
for entry in "${entries[@]}"; do
|
for entry in "${entries[@]}"; do
|
||||||
if ! grep -qxF "$entry" "$GITIGNORE" 2>/dev/null; then
|
if ! grep -qxF "$entry" "$GITIGNORE" 2>/dev/null; then
|
||||||
|
|||||||
@@ -6,10 +6,8 @@
|
|||||||
|
|
||||||
set -euo pipefail
|
set -euo pipefail
|
||||||
|
|
||||||
CRAZY_CLAUDE_URL="https://gargoton.petite-maison-orange.fr/eric/CrazyClaude.git"
|
CLAUDE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
LLM_FUNCTIONS_URL="https://github.com/sigoden/llm-functions.git"
|
LLM_DIR="$CLAUDE_DIR/llm-functions"
|
||||||
CLAUDE_PREFIX=".claude"
|
|
||||||
LLM_PREFIX=".claude/llm-functions"
|
|
||||||
|
|
||||||
dry_run=0
|
dry_run=0
|
||||||
[[ "${1:-}" == "--dry-run" ]] && dry_run=1
|
[[ "${1:-}" == "--dry-run" ]] && dry_run=1
|
||||||
@@ -32,15 +30,19 @@ require argc
|
|||||||
require jq
|
require jq
|
||||||
|
|
||||||
echo "=== Mise à jour de .claude (CrazyClaude) ==="
|
echo "=== Mise à jour de .claude (CrazyClaude) ==="
|
||||||
run git subtree pull --prefix "$CLAUDE_PREFIX" "$CRAZY_CLAUDE_URL" main --squash
|
run git -C "$CLAUDE_DIR" pull --ff-only
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Mise à jour de .claude/llm-functions ==="
|
echo "=== Mise à jour de .claude/llm-functions ==="
|
||||||
run git subtree pull --prefix "$LLM_PREFIX" "$LLM_FUNCTIONS_URL" main --squash
|
run git -C "$LLM_DIR" pull --ff-only
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "=== Reconstruction des outils llm-functions ==="
|
echo "=== Reconstruction des outils llm-functions ==="
|
||||||
run argc build --arcgfile "$LLM_PREFIX/Argcfile.sh"
|
if [[ "$dry_run" -eq 1 ]]; then
|
||||||
|
echo "[dry-run] argc build (dans $LLM_DIR)"
|
||||||
|
else
|
||||||
|
(cd "$LLM_DIR" && argc build)
|
||||||
|
fi
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
echo "OK — outils reconstruits dans $LLM_PREFIX/bin/"
|
echo "OK — outils reconstruits dans $LLM_DIR/bin/"
|
||||||
|
|||||||
Reference in New Issue
Block a user