Aller au contenu

Commands

Toutes les commandes que je suis amene a lancer souvent dans le cadre de ce projet

resinstalle claude (apres rebuild devcontainer)

npm install -g @anthropic-ai/claude-code
claude --resume

dashboard usage claude

https://claude.ai/settings/usage

lancement backend - frontend

# backend, demarrage sur port API_PORT
python -m back_office_lmelp.app

# frontend
cd frontend && npm run dev

# en une seule commande
./scripts/start-dev.sh

lancement des tests

# Tests backend uniquement
pytest -v

# en mode très quiet
pytest -qq --tb=no --disable-warnings

# Tests frontend uniquement
cd /workspaces/back-office-lmelp/frontend && npm test -- --run

# Ou en une commande :
pytest -v && cd /workspaces/back-office-lmelp/frontend && npm test -- --run && cd /workspaces/back-office-lmelp

# lancement de tous les test validation biblio
cd /workspaces/back-office-lmelp/frontend && npm test -- --run BiblioValidation --reporter dot
# lancement sur un auteur prenommé Alain:
cd /workspaces/back-office-lmelp/frontend && npx vitest tests/unit/BiblioValidatio
nService.modular.test.js -t "Alain" --run

# enrichissement des fixtures dans
# frontend/tests/fixtures/biblio-validation-cases.yml

les infos sur les services frontend - backend

/workspaces/back-office-lmelp/.claude/get-services-info.sh

les stats

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url)
curl "$BACKEND_URL/api/stats" | jq

la liste de tous les services

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url)
curl -s "$BACKEND_URL/openapi.json" | jq

# en version reduite
curl -s "$BACKEND_URL/openapi_reduced.json" | jq

cf dans CLAUDE.md tous les usages possibles

Les commandes mkdocs

le port par défaut de mkdocs utilisé par mkdocs serve est 8000.

Ce qui est en conflit avec le port API du backoffice-backend.

Donc en mode développement, lancer mkdocs de cette façon (exemple sur le port 8081)

mkdocs serve -a localhost:8081

et pour faire un test de génération strict de la doc tel qu'utilisé en CI/CD

mkdocs build --strict

Les commandes gh

2 types de pager pour gh: scrollable (less) ou normal (cat)

Pour activer le pager en mode normal pour un assistant IA

gh config set pager cat

Créer et checkout branche depuis issue #5

gh issue develop 5 --checkout

Merger pull request #5, checkout main

# ca merge, squah commit, delete la branche de travail, repasse sur main et fait le pull : propre, carre dans l'axe
gh pr merge 5 --squash --delete-branch

"Failed to add the ECDSA host key ..." - maj du ssh known_host

Le devcontainer monte ta config SSH depuis l'hôte en bind-mount. Dans devcontainer.json on a cette ligne :

source=${localEnv:HOME}/.ssh,target=/home/vscode/.ssh,type=bind,consistency=cached,readonly Explication courte :

Le dossier ~/.ssh de l'hôte est monté dans le conteneur (donc les clés privées sont accessibles au conteneur). Le mount est en readonly, donc le conteneur ne peut pas écrire dans known_hosts — d'où l'erreur "Failed to add the ECDSA host key ...".

le prb

(.venv) vscode  /workspaces/back-office-lmelp (main) $ git push
Failed to add the ECDSA host key for IP address '140.82.121.3' to the list of known hosts (/home/vscode/.ssh/known_hosts).
Everything up-to-date

à faire

# ajouter la clé publique de l'IP GitHub sur l'hôte
ssh-keyscan -H 140.82.121.3 >> ~/.ssh/known_hosts

# vérifier que l'entrée a bien été ajoutée
ssh-keygen -F 140.82.121.3

reseau port utilise

# depuis le host (sous devcontainer ne rend pas la main)
lsof -i:8000

# depuis devcontainer
netstat -tlnp | grep :8000
fuser -k 8000/tcp 2>/dev/null; sleep 2; netstat -tlnp | grep :8000

voir la todo de claude code

Avec ctrl-t pour voir les taches en cours

 Creating documentation modifications… (esc to interrupt · ctrl+t to hide todos)
  ⎿  ☒ Use gh issue view to get issue 31 details
     ☒ Create feature branch from issue using gh issue develop 31
     ☒ Checkout to the feature branch locally
     ☒ Understand the problem described in the issue
     ☒ Search for relevant files in the codebase
     ☒ Implement fix using TDD - write failing tests first
     ☒ Write code to make tests pass
     ☒ Iterate between code and test execution until complete resolution
     ☒ Verify all tests, lint, and typecheck pass
     ☐ Create necessary modifications in user and developer documentation
     ☐ Commit atomically with descriptive message and push changes
     ☐ Verify CI/CD state using gh run view
     ☐ Ask user for global testing and iterate if needed
     ☐ Update README.md and CLAUDE.md if necessary
     ☐ Prepare pull request and ask user for validation, then merge using gh
     ☐ Close todo list when empty
     ☐ Switch back to main branch locally and get latest changes
     ☐ Call /stocke-memoire to finish

voir le detail de claude code

Avec ctrl-r pour voir le detail des actions

mettre à jour l'env python

suite à ajout de lib dans pyproject.toml

uv pip install -e .
uv lock # pour generer le lockfile

pour les paquets de dev (par exemple pillow pour resizer les icones)

uv pip install -e .[dev]

mettre à jour l'env nodejs

Les packages se declarent dans frontend/package.json

et pour l'installation

cd /workspaces/back-office-lmelp/frontend && npm install

Service Biblio

il est divisé en plusieurs phases

phase 0 - verif direct sur babelio

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url) && \
curl -X POST "$BACKEND_URL/api/verify-babelio" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF' | jq
{
  "type": "book",
  "title": "L'invention de Tristan",
  "author": "Adrien Bosque"
}
EOF

phase 1 - fuzzy search (champs titre description d'un episode donné)

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url) && \
curl -X POST "$BACKEND_URL/api/fuzzy-search-episode" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF' | jq
{
  "episode_id": "6865f99ba1418e3d7c63d07a",
  "query_title": "L'invention de Tristan",
  "query_author": "Adrien Bosque"
}
EOF

phase 2 - babelio search avec juste des auteurs

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url) && \
curl -X POST "$BACKEND_URL/api/verify-babelio" \
  -H "Content-Type: application/json" \
  -d @- <<'EOF' | jq
{
  "type": "author",
  "name": "Adrien Bosc"
}
EOF

suppression d'un episode doublon

1. Get backend URL automatically

BACKEND_URL=$(/workspaces/back-office-lmelp/.claude/get-backend-info.sh --url)

2. Verify the duplicate episode exists

curl "$BACKEND_URL/api/episodes/6865f995a1418e3d7c63d076" | jq .titre

3. Delete the duplicate episode (June 29, 2025)

curl -X DELETE "$BACKEND_URL/api/episodes/6865f995a1418e3d7c63d076" | jq

4. Verify it's deleted (should return 404)

curl "$BACKEND_URL/api/episodes/6865f995a1418e3d7c63d076"

messages d'erreur

git push - fatal: Could not read from remote repository.

$ git push
ERROR: no healthy upstream
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

j'ai deja eu ce probleme, c'etait un probleme cote github.com

Un site utile pour monitorer les services de github : https://www.githubstatus.com/