Skip to content

feat: add /automaker-admin slash command for ops & monitoring#741

Open
r2d2helm wants to merge 3 commits intoAutoMaker-Org:mainfrom
r2d2helm:feat/automaker-admin-command
Open

feat: add /automaker-admin slash command for ops & monitoring#741
r2d2helm wants to merge 3 commits intoAutoMaker-Org:mainfrom
r2d2helm:feat/automaker-admin-command

Conversation

@r2d2helm
Copy link

@r2d2helm r2d2helm commented Feb 2, 2026

Summary

  • Ajoute la commande /automaker-admin dans .claude/commands/ pour l'administration et le monitoring d'Automaker depuis Claude Code
  • Inclut : diagnostic complet de santé, gestion des credentials (via API, masqués), démarrage/arrêt d'Automaker, référence API complète, procédures de monitoring des agents et auto-mode
  • Chemins data/ corrigés pour refléter le CWD réel du backend en dev (apps/server/data/)

Test plan

  • Lancer /automaker-admin depuis le répertoire du projet Automaker dans Claude Code
  • Vérifier que le diagnostic complet s'exécute et produit le tableau de statut
  • Vérifier que les appels API (health, credentials, running-agents) fonctionnent avec la clé de apps/server/data/.api-key

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added automatic login capability for streamlined access.
  • Documentation

    • Added an operations & monitoring guide covering diagnostics, health checks, authentication handling, and safe operational procedures.
  • Chores

    • Enhanced service reliability with extended health check timing and retries.
    • Updated deployment configuration for credential and data handling to use host-based mounts and improve persistence.

r2d2helm and others added 2 commits February 1, 2026 20:55
- Augmenter le healthcheck (start_period 300s, retries 30) pour le premier lancement
- Ajouter AUTOMAKER_AUTO_LOGIN pour éviter la boucle de login en dev
- Désactiver ALLOWED_ROOT_DIRECTORY qui causait un 403 sur fs/exists
- Monter ~/.claude depuis l'hôte pour persister les credentials Claude
- Ajouter volume ~/multipass-site pour persister les clones
- Supprimer le volume nommé automaker-claude-config (remplacé par bind mount)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Agent d'administration accessible via /automaker-admin dans Claude Code.
Diagnostic complet, gestion credentials, démarrage/arrêt Automaker,
référence API complète et procédures de monitoring.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @r2d2helm, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

Cette pull request introduit une nouvelle commande slash administrative pour Automaker au sein de Claude Code, permettant un contrôle opérationnel et une surveillance détaillés. Elle affine également la configuration de l'environnement de développement Docker pour améliorer la stabilité et l'accès aux ressources de l'hôte, en corrigeant notamment les problèmes de chemins et en renforçant la robustesse du contrôle de santé du backend.

Highlights

  • Nouvelle commande slash /automaker-admin: Ajout d'une commande slash /automaker-admin dans Claude Code pour l'administration et le monitoring d'Automaker, offrant des diagnostics de santé complets, la gestion des identifiants et des fonctionnalités de démarrage/arrêt.
  • Référence API et procédures de diagnostic: La nouvelle commande inclut une référence API complète pour le backend d'Automaker et des procédures détaillées pour diagnostiquer les problèmes, vérifier l'authentification et surveiller les ressources système.
  • Mises à jour de la configuration Docker Compose: Le fichier docker-compose.dev.yml a été mis à jour pour inclure l'auto-connexion en développement, désactiver une restriction de répertoire problématique, monter un répertoire de projets hôte et ajuster les paramètres de contrôle de santé du service backend pour une meilleure robustesse.
  • Gestion des chemins de données: Les chemins data/ ont été corrigés pour refléter le répertoire de travail actuel du backend en développement, assurant une meilleure cohérence.

🧠 New Feature in Public Preview: You can now enable Memory to help Gemini Code Assist learn from your team's feedback. This makes future code reviews more consistent and personalized to your project's style. Click here to enable Memory in your admin console.

Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link

coderabbitai bot commented Feb 2, 2026

📝 Walkthrough

Walkthrough

Adds a new Automaker Ops & Monitoring Agent operational guide and updates the Docker development compose to change credential mounts, enable auto-login, and increase healthcheck resilience.

Changes

Cohort / File(s) Summary
Automaker Operations Documentation
.claude/commands/automaker-admin.md
Adds a new comprehensive ops & monitoring guide covering diagnostic workflows, health checks, auth handling, port/process monitoring, start/stop/restart procedures, API examples, and security/confirmation guidance.
Docker Development Configuration
docker-compose.dev.yml
Adds AUTOMAKER_AUTO_LOGIN env var, comments out ALLOWED_ROOT_DIRECTORY, replaces named volume mounts with host mounts for ~/.claude and multipass-site, increases healthcheck retries (5→30) and start_period (60s→300s), and removes the automaker-claude-config volume.

Sequence Diagram(s)

sequenceDiagram
    participant Operator
    participant OpsAgent as Automaker Ops Agent
    participant Backend
    participant CLI
    Operator->>OpsAgent: request diagnostic run
    OpsAgent->>Backend: health check / API status
    Backend-->>OpsAgent: status, logs, ports
    OpsAgent->>CLI: verify credentials / multipass site
    CLI-->>OpsAgent: credential & mount status
    OpsAgent->>Operator: aggregated diagnostic dashboard
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested labels

Enhancement, Testers-Requested

Suggested reviewers

  • webdevcody

Poem

🐰 I hopped through logs and ports with glee,

Found keys and healthchecks, one-two-three,
Docker mounts snug, auto-login bright,
Ops agent hums through day and night,
Cheers — a rabbit's wink, systems running right! 🥕

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title accurately reflects the main changes: it introduces a new /automaker-admin slash command for operations and monitoring, which directly corresponds to the addition of the new admin command documentation file and related configuration updates.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

Ce pull request ajoute une nouvelle commande /automaker-admin très utile pour les opérations et le monitoring. L'essentiel de cette fonctionnalité réside dans un fichier Markdown détaillé qui sert de guide pour un agent IA. Les modifications apportées à la configuration Docker pour le développement, comme l'augmentation des délais pour le healthcheck et le montage direct des credentials, sont pertinentes.

Cependant, un problème critique a été identifié : l'utilisation de chemins d'accès absolus codés en dur dans le nouveau fichier automaker-admin.md et dans docker-compose.dev.yml. Ces chemins sont spécifiques à un utilisateur (r2d2helm) et rendent les nouvelles fonctionnalités non portables. Il est impératif de les remplacer par des variables d'environnement ou des placeholders pour que les autres développeurs puissent utiliser ces outils.


### Chemins clés

- **Projet** : `/home/r2d2helm/projects/automaker`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

critical

Le chemin du projet est codé en dur (/home/r2d2helm/projects/automaker). Ce chemin absolu est spécifique à un utilisateur et rend cet agent de monitoring inutilisable pour toute autre personne ou dans un autre environnement. Ce problème se répète à de nombreux endroits dans le fichier pour les commandes cat, ls, df, cd, etc.

Pour corriger cela, il est nécessaire d'utiliser une variable (par exemple $AUTOMAKER_PROJECT_ROOT) ou un placeholder (par exemple <CHEMIN_PROJET_AUTOMAKER>) qui peut être substitué dynamiquement. Cela garantira la portabilité de l'outil.

Suggested change
- **Projet** : `/home/r2d2helm/projects/automaker`
- **Projet** : <CHEMIN_PROJET_AUTOMAKER>

# Persist CLI configurations
- automaker-claude-config:/home/automaker/.claude
# Mount host projects directory for clone persistence
- ~/multipass-site:/home/r2d2helm/multipass-site
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

Le montage de volume - ~/multipass-site:/home/r2d2helm/multipass-site contient des chemins codés en dur qui sont spécifiques à l'environnement d'un seul utilisateur. Le chemin à l'intérieur du conteneur (/home/r2d2helm/...) est particulièrement problématique car l'utilisateur du conteneur est automaker. Cela empêchera d'autres développeurs d'utiliser cette configuration Docker.

Pour rendre cette configuration portable, veuillez utiliser des variables d'environnement. Par exemple :

- ${HOST_PROJECTS_DIR:-~/projects}:/home/automaker/projects

Cela permet aux autres développeurs de surcharger les chemins via un fichier .env sans modifier le docker-compose.yml.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.claude/commands/automaker-admin.md:
- Around line 46-83: Add explicit language tags to all fenced code blocks in
this markdown (the blocks under the "Santé", "Authentification", "Agents", and
"Agents en cours" sections) to satisfy markdownlint MD040; for the HTTP endpoint
listings (e.g. the GET/POST lines like "/api/health", "/api/auth/login",
"/api/agent/start", "/api/running-agents") use a neutral tag such as text or
bash (e.g., ```text or ```bash) consistently for each block so the linter no
longer warns and readability is improved.

In `@docker-compose.dev.yml`:
- Around line 71-75: Replace the host tilde paths and incorrect container home
with expanded HOME and the automaker home: change host paths that use "~" (e.g.,
"~/multipass-site" and "~/.claude") to use "${HOME}/multipass-site" and
"${HOME}/.claude" respectively, and update the container target path from
"/home/r2d2helm/multipass-site" to "/home/automaker/multipass-site" (and ensure
the CLI mount targets "/home/automaker/.claude") so Docker Compose does not
treat "~" literally and mounts into the actual container user directory.
🧹 Nitpick comments (1)
.claude/commands/automaker-admin.md (1)

23-33: Replace user-specific absolute paths with placeholders.

The /home/r2d2helm/... paths are environment-specific and will mislead other users. Consider ${HOME} and <repo_root> placeholders to make the guidance portable.

✏️ Example adjustment
-- **Projet** : `/home/r2d2helm/projects/automaker`
+- **Projet** : `${HOME}/projects/automaker` (ou `<repo_root>`)

Comment on lines 46 to 83
### Santé

```
GET /api/health # Health check basique (pas d'auth)
GET /api/health/environment # Info environnement (pas d'auth)
GET /api/health/detailed # Health détaillé (auth requise)
```

### Authentification

```
GET /api/auth/status # Statut auth
POST /api/auth/login # Login
GET /api/auth/token # Token WebSocket
POST /api/auth/logout # Logout
```

### Agents

```
POST /api/agent/start # Démarrer session agent
POST /api/agent/send # Envoyer message
POST /api/agent/history # Historique session
POST /api/agent/stop # Arrêter agent
POST /api/agent/clear # Effacer session
POST /api/agent/model # Changer modèle
POST /api/agent/queue/add # Ajouter à la file
POST /api/agent/queue/list # Lister la file
POST /api/agent/queue/remove # Retirer de la file
POST /api/agent/queue/clear # Vider la file
```

### Agents en cours

```
GET /api/running-agents # Liste des agents actifs (runningAgents[], totalCount)
```

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add language tags to fenced code blocks (markdownlint MD040).

Multiple fenced blocks omit a language identifier, which triggers lint warnings and reduces readability. Add bash, json, or text as appropriate across all blocks.

✏️ Example fix
-```
+```text
 GET  /api/health                    # Health check basique (pas d'auth)
 GET  /api/health/environment        # Info environnement (pas d'auth)
 GET  /api/health/detailed           # Health détaillé (auth requise)
-```
+```
🧰 Tools
🪛 markdownlint-cli2 (0.20.0)

[warning] 48-48: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 56-56: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 65-65: Fenced code blocks should have a language specified

(MD040, fenced-code-language)


[warning] 80-80: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

🤖 Prompt for AI Agents
In @.claude/commands/automaker-admin.md around lines 46 - 83, Add explicit
language tags to all fenced code blocks in this markdown (the blocks under the
"Santé", "Authentification", "Agents", and "Agents en cours" sections) to
satisfy markdownlint MD040; for the HTTP endpoint listings (e.g. the GET/POST
lines like "/api/health", "/api/auth/login", "/api/agent/start",
"/api/running-agents") use a neutral tag such as text or bash (e.g., ```text or
```bash) consistently for each block so the linter no longer warns and
readability is improved.

Comment on lines +71 to +75
# Mount host projects directory for clone persistence
- ~/multipass-site:/home/r2d2helm/multipass-site

# Persist CLI configurations (mount host credentials)
- ~/.claude:/home/automaker/.claude
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

# First, let's locate and examine the docker-compose.dev.yml file
fd -name "docker-compose.dev.yml" -type f

Repository: AutoMaker-Org/automaker

Length of output: 297


🏁 Script executed:

# Also search for any docker-compose files
fd -name "docker-compose*.yml" -o -name "docker-compose*.yaml" -type f

Repository: AutoMaker-Org/automaker

Length of output: 297


🏁 Script executed:

find . -name "docker-compose.dev.yml" -type f

Repository: AutoMaker-Org/automaker

Length of output: 91


🏁 Script executed:

find . -name "docker-compose*.yml" -type f | head -20

Repository: AutoMaker-Org/automaker

Length of output: 144


🏁 Script executed:

cat -n ./docker-compose.dev.yml | sed -n '65,80p'

Repository: AutoMaker-Org/automaker

Length of output: 819


🏁 Script executed:

# Get the full file to understand the service configuration and user
wc -l ./docker-compose.dev.yml

Repository: AutoMaker-Org/automaker

Length of output: 95


🏁 Script executed:

# Look at the full context of the service to find user configuration
cat -n ./docker-compose.dev.yml | head -80

Repository: AutoMaker-Org/automaker

Length of output: 3311


🏁 Script executed:

# Search for user configuration in the file
grep -n "user:" ./docker-compose.dev.yml

Repository: AutoMaker-Org/automaker

Length of output: 49


🏁 Script executed:

# Look for the Dockerfile.dev to see what user is created
cat ./Dockerfile.dev | grep -A 5 -B 5 "USER\|useradd\|addgroup"

Repository: AutoMaker-Org/automaker

Length of output: 873


🏁 Script executed:

# Also check if there are any references to r2d2helm user elsewhere
grep -r "r2d2helm" . --include="*.yml" --include="*.yaml" --include="Dockerfile*"

Repository: AutoMaker-Org/automaker

Length of output: 146


🏁 Script executed:

# Check if there are any other usages of home paths in the file
grep -n "home/" ./docker-compose.dev.yml

Repository: AutoMaker-Org/automaker

Length of output: 228


🌐 Web query:

Docker Compose volume tilde expansion ~ HOME environment variable

💡 Result:

Docker Compose does not perform shell expansion, so ~ in a bind-mount source path is treated as a literal character (it won’t become your home directory). Compose only does environment-variable interpolation (${VAR} / $VAR) inside YAML values. [1][2]

What to do instead

Use ${HOME} (host HOME) or an absolute path:

services:
  app:
    volumes:
      - "${HOME}/projects/myapp:/work"
      # or
      - "/Users/alice/projects/myapp:/work"

Compose will substitute ${HOME} from your shell environment (or from a .env / --env-file, depending on precedence). [1]

If you need portability, define it in .env:

HOST_HOME=/home/alice
services:
  app:
    volumes:
      - "${HOST_HOME}/projects/myapp:/work"

Important clarifications

  • ${HOME} is the host home directory (what Compose runs on), not the container’s home directory. [1][2]
  • You can verify what Compose resolved with:
    docker compose config
    (it prints the fully-interpolated model). [1]
  • Don’t single-quote the value if you expect interpolation (single quotes make it literal). [1]

Sources: Docker Compose variable interpolation docs [1], Compose interpolation reference/spec notes (no extended shell features) [2], example noting ~ isn’t expanded in Compose volume paths [3].

References:
[1] https://docs.docker.com/compose/how-tos/environment-variables/variable-interpolation/
[2] https://docs.docker.com/reference/compose-file/interpolation/
[3] https://www.khueapps.com/blog/article/how-to-fix-the-path-must-be-absolute-for-volumes-and-binds-in-compose


Fix volume mount paths: ~ is not expanded by Docker Compose, and container target directory is wrong.

Docker Compose does not perform shell expansion on ~—it treats it as a literal path, which will fail or create permission issues. Additionally, the container target /home/r2d2helm/... does not exist (the container user is automaker). Use ${HOME} for the host path and /home/automaker/... for both container targets.

🔧 Suggested fix
-      - ~/multipass-site:/home/r2d2helm/multipass-site
-      - ~/.claude:/home/automaker/.claude
+      - ${HOME}/multipass-site:/home/automaker/multipass-site
+      - ${HOME}/.claude:/home/automaker/.claude
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
# Mount host projects directory for clone persistence
- ~/multipass-site:/home/r2d2helm/multipass-site
# Persist CLI configurations (mount host credentials)
- ~/.claude:/home/automaker/.claude
# Mount host projects directory for clone persistence
- ${HOME}/multipass-site:/home/automaker/multipass-site
# Persist CLI configurations (mount host credentials)
- ${HOME}/.claude:/home/automaker/.claude
🤖 Prompt for AI Agents
In `@docker-compose.dev.yml` around lines 71 - 75, Replace the host tilde paths
and incorrect container home with expanded HOME and the automaker home: change
host paths that use "~" (e.g., "~/multipass-site" and "~/.claude") to use
"${HOME}/multipass-site" and "${HOME}/.claude" respectively, and update the
container target path from "/home/r2d2helm/multipass-site" to
"/home/automaker/multipass-site" (and ensure the CLI mount targets
"/home/automaker/.claude") so Docker Compose does not treat "~" literally and
mounts into the actual container user directory.

…oring avancé

- Référence API complète (30+ domaines, réponses documentées)
- Statut CLIs (Claude, Codex, Cursor, GitHub) via /api/setup
- Métriques usage IA (Claude/Codex) avec parsing des limites
- Auto-mode status global (sans projectPath)
- Guide dépannage : 9 scénarios (stuck agents, quota, Docker, worktrees)
- Constantes internes (thresholds, timeouts, limites)
- Gestion credentials et auth/deauth CLIs
- Démarrage/arrêt tous modes (web, docker, electron, production)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.claude/commands/automaker-admin.md:
- Around line 707-723: The pkill/pgrep patterns ("tsx.*server.*automaker",
"vite.*3007", and the pgrep pattern "automaker|tsx.*server|vite.*3007") are too
broad and may kill unrelated processes; change the flow to: use pgrep -af to
list matching processes, collect their PIDs, for each PID verify the target
instance by checking /proc/<pid>/cwd (or ss -tlnp to map ports to PIDs) and
display the cwd/command to the user, then prompt to confirm killing only the
selected PID(s) (use kill <pid> or kill -TERM <pid> rather than pkill -f);
replace blind pkill calls with this PID-verify-and-kill approach and tighten
regexes (e.g., include full path fragments or explicit port-to-pid mapping) for
the "tsx.*server.*automaker" and "vite.*automaker" matches.
- Around line 22-37: The docs currently use hardcoded absolute paths (e.g.
/home/r2d2helm/projects/automaker) which breaks portability; replace those
literal paths throughout automaker-admin.md with configurable placeholders or
environment-var references (e.g. ${PROJECT_ROOT} or $PROJECT_ROOT) and update
all examples and script invocation notes to show how to set them (mention using
DATA_DIR for apps/server/data, .automaker for project data, ./worktrees for
worktrees, ~/.claude for Claude CLI, and .env for secrets) and ensure script
names referenced (start-automaker.sh, docker-entrypoint.sh, check-sync.sh) and
docker-compose files (docker-compose*.yml) use the placeholders so users can
export vars or pass them when running commands.
🧹 Nitpick comments (1)
.claude/commands/automaker-admin.md (1)

785-801: Add error handling guidance to the diagnostic workflow.

The default workflow lists 12 diagnostic steps but doesn't specify how to handle failures at each stage. If step 1 (retrieving the API key) fails, all subsequent authenticated API calls will fail, potentially causing confusing output.

🔧 Suggested enhancement

Add error handling guidance after step 1:

 1. Récupérer la clé API depuis `apps/server/data/.api-key`
+   - Si absent ou illisible, signaler et passer aux checks non-authentifiés uniquement
 2. Exécuter les checks de santé (backend, frontend, ports, processus)
+   - Si le backend ne répond pas, diagnostiquer le problème avant de continuer
 3. Récupérer le statut des CLIs via `/api/setup/*-status`

Also consider wrapping API calls in the examples with error checks:

API_KEY=$(cat apps/server/data/.api-key 2>/dev/null)
if [ -z "$API_KEY" ]; then
  echo "⚠️  API key not found. Some checks will be skipped."
fi

Comment on lines +22 to +37
### Chemins clés

- **Projet** : `/home/r2d2helm/projects/automaker`
- **Données globales** : `apps/server/data/` (CWD du backend est `apps/server/`, donc `DATA_DIR=./data` pointe ici)
- **API Key** : `apps/server/data/.api-key`
- **Sessions** : `apps/server/data/.sessions`
- **Settings globaux** : `apps/server/data/settings.json`
- **Credentials** : `apps/server/data/credentials.json`
- **Sessions agent** : `apps/server/data/agent-sessions/`
- **Données projet** : `.automaker/` (dans chaque projet géré)
- **Worktrees** : `./worktrees/`
- **Auth Claude CLI** : `~/.claude/`
- **Env file** : `.env` (secrets, ne jamais afficher)
- **Docker Compose** : `docker-compose.yml`, `docker-compose.dev.yml`, `docker-compose.dev-server.yml`
- **Scripts ops** : `start-automaker.sh`, `docker-entrypoint.sh`, `check-sync.sh`

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Hardcoded user-specific paths reduce portability.

The documentation uses hardcoded absolute paths like /home/r2d2helm/projects/automaker throughout. This pattern appears in multiple sections (lines 24, 410, 477, 602, 697, etc.) and will fail when used by different users or in different environments.

📝 Suggested improvement

Consider using environment variables or placeholders:

-**Projet** : `/home/r2d2helm/projects/automaker`
+**Projet** : `$AUTOMAKER_HOME` (par défaut: `/home/r2d2helm/projects/automaker`)

Then in all script examples:

-API_KEY=$(cat /home/r2d2helm/projects/automaker/apps/server/data/.api-key 2>/dev/null)
+AUTOMAKER_HOME=${AUTOMAKER_HOME:-/home/r2d2helm/projects/automaker}
+API_KEY=$(cat $AUTOMAKER_HOME/apps/server/data/.api-key 2>/dev/null)

This makes the guide more portable and easier to adapt for different deployments.

🧰 Tools
🪛 LanguageTool

[grammar] ~25-~25: Il y a peut-être une erreur ici
Context: ...onnées globales** : apps/server/data/ (CWD du backend est apps/server/, donc ...

(QB_NEW_FR)


[typographical] ~25-~25: Caractère d’apostrophe incorrect.
Context: ...apps/server/data/ (CWD du backend est apps/server/, donc DATA_DIR=./data pointe ici) - *...

(APOS_INCORRECT)


[style] ~31-~31: Ce verbe peut être considéré comme familier dans un contexte formel.
Context: ...t** : .automaker/ (dans chaque projet géré) - Worktrees : ./worktrees/ - **A...

(VERBES_FAMILIERS_PREMIUM)


[typographical] ~34-~34: Il manque une espace après le point.
Context: ...e CLI** : ~/.claude/ - Env file : .env (secrets, ne jamais afficher) - **Dock...

(ESPACE_APRES_POINT)


[typographical] ~35-~35: Caractère d’apostrophe incorrect.
Context: ...jamais afficher) - Docker Compose : docker-compose.yml, docker-compose.dev.yml, `docker-comp...

(APOS_INCORRECT)


[typographical] ~35-~35: Caractère d’apostrophe incorrect.
Context: ...ocker Compose** : docker-compose.yml, docker-compose.dev.yml, docker-compose.dev-server.yml - **Sc...

(APOS_INCORRECT)


[typographical] ~36-~36: Caractère d’apostrophe incorrect.
Context: ...ose.dev-server.yml- **Scripts ops** :start-automaker.sh, docker-entrypoint.sh, check-sync.sh...

(APOS_INCORRECT)


[typographical] ~36-~36: Caractère d’apostrophe incorrect.
Context: ...Scripts ops : start-automaker.sh, docker-entrypoint.sh, check-sync.sh > Note : En mode ...

(APOS_INCORRECT)

🤖 Prompt for AI Agents
In @.claude/commands/automaker-admin.md around lines 22 - 37, The docs currently
use hardcoded absolute paths (e.g. /home/r2d2helm/projects/automaker) which
breaks portability; replace those literal paths throughout automaker-admin.md
with configurable placeholders or environment-var references (e.g.
${PROJECT_ROOT} or $PROJECT_ROOT) and update all examples and script invocation
notes to show how to set them (mention using DATA_DIR for apps/server/data,
.automaker for project data, ./worktrees for worktrees, ~/.claude for Claude
CLI, and .env for secrets) and ensure script names referenced
(start-automaker.sh, docker-entrypoint.sh, check-sync.sh) and docker-compose
files (docker-compose*.yml) use the placeholders so users can export vars or
pass them when running commands.

Comment on lines +707 to +723
```bash
# Identifier tous les processus Automaker
pgrep -af "automaker|tsx.*server|vite.*3007|node.*automaker" | grep -v grep
```

Après confirmation de l'utilisateur :

```bash
# Arrêt propre via signal SIGTERM
pkill -f "tsx.*server.*automaker" 2>/dev/null
pkill -f "vite.*automaker" 2>/dev/null

# Vérifier que tout est arrêté
sleep 2
pgrep -af "automaker|tsx.*server|vite.*3007" || echo "Tous les processus arrêtés"
ss -tlnp | grep -E ':(3007|3008)\b' || echo "Ports 3007/3008 libérés"
```
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Process kill patterns could match unintended targets.

The pkill patterns like "tsx.*server.*automaker" and "automaker|tsx.*server|vite.*3007" match based on command-line strings, which could inadvertently affect:

  • Multiple Automaker instances (different projects)
  • Unrelated processes with "automaker" in their arguments
  • Processes in different directories

While the guide requires user confirmation before executing (line 712), more precise identification would be safer.

💡 Recommended improvement

Consider additional verification steps:

 # Identifier tous les processus Automaker
-pgrep -af "automaker|tsx.*server|vite.*3007|node.*automaker" | grep -v grep
+pgrep -af "automaker|tsx.*server|vite.*3007|node.*automaker" | \
+  grep -v grep | \
+  awk '{cmd="pwdx " $1 " 2>/dev/null"; cmd | getline pwd; close(cmd); print $0, pwd}' | \
+  grep "/home/r2d2helm/projects/automaker"

This filters processes by their working directory to ensure you're only targeting the correct Automaker instance.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
```bash
# Identifier tous les processus Automaker
pgrep -af "automaker|tsx.*server|vite.*3007|node.*automaker" | grep -v grep
```
Après confirmation de l'utilisateur :
```bash
# Arrêt propre via signal SIGTERM
pkill -f "tsx.*server.*automaker" 2>/dev/null
pkill -f "vite.*automaker" 2>/dev/null
# Vérifier que tout est arrêté
sleep 2
pgrep -af "automaker|tsx.*server|vite.*3007" || echo "Tous les processus arrêtés"
ss -tlnp | grep -E ':(3007|3008)\b' || echo "Ports 3007/3008 libérés"
```
🧰 Tools
🪛 LanguageTool

[grammar] ~712-~712: Il y a peut-être une erreur ici
Context: ...grep -v grep Après confirmation de l'utilisateur : bash # Arrêt propre via signal SIGTERM pkill -f "tsx.*server.*automaker" 2>/dev/null pkill -f "vite.*automaker" 2>/dev/null # Vérifier que tout est arrêté sleep 2 pgrep -af "automaker|tsx.*server|vite.*3007" || echo "Tous les processus arrêtés" ss -tlnp | grep -E ':(3007|3008)\b' || echo "Ports 3007/3008 libérés" Pour Docker : bash cd /home/r2d2helm...

(QB_NEW_FR)

🤖 Prompt for AI Agents
In @.claude/commands/automaker-admin.md around lines 707 - 723, The pkill/pgrep
patterns ("tsx.*server.*automaker", "vite.*3007", and the pgrep pattern
"automaker|tsx.*server|vite.*3007") are too broad and may kill unrelated
processes; change the flow to: use pgrep -af to list matching processes, collect
their PIDs, for each PID verify the target instance by checking /proc/<pid>/cwd
(or ss -tlnp to map ports to PIDs) and display the cwd/command to the user, then
prompt to confirm killing only the selected PID(s) (use kill <pid> or kill -TERM
<pid> rather than pkill -f); replace blind pkill calls with this
PID-verify-and-kill approach and tighten regexes (e.g., include full path
fragments or explicit port-to-pid mapping) for the "tsx.*server.*automaker" and
"vite.*automaker" matches.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant