diff --git a/README.md b/README.md
index 8619ea3ce0eb610f2ba48c9284654dfb6b50a645..126f2c8b589ac9f2122a469deb6285b0c07b9cac 100644
--- a/README.md
+++ b/README.md
@@ -37,7 +37,7 @@ Disclaimer: since this project is still in development, this document remains in
   git clone https://gitlab.iscpif.fr/gargantext/haskell-gargantext.git
   cd haskell-gargantext
   ```
-#### 1. Installation
+### Installation
 
 This project can be built with either Stack or Cabal. For historical reasons, we generate a `cabal.project` from the `stack.yaml`, and we do not commit the former to the repo, to have a single "source of truth".
 However, it's always possible to generate a `cabal.project` thanks to [stack2cabal](https://hackage.haskell.org/package/stack2cabal).
@@ -64,7 +64,7 @@ nix-shell
 
 This will take a bit of time the first time.
 
-#### Build: choose cabal (new) or stack (old)
+### Build: choose cabal (new) or stack (old)
 
 #### With Cabal (recommanded)
 
@@ -166,12 +166,29 @@ From the Backend root folder (haskell-gargantext):
 ``` shell
 ./start
 # The start script runs following commands:
+# - `./bin/install` to update and build the project
 # - `docker compose up` to run the Docker for postgresql from devops/docker folder
 # - `cabal run gargantext-server -- --ini gargantext.ini --run Prod` to run other services through `nix-shell`
 ```
 
 For frontend development and compilation, see the [Frontend Readme.md](https://gitlab.iscpif.fr/gargantext/purescript-gargantext#dev)
 
+### Working on libraries
+
+When a devlopment is needed on libraries (for instance, the HAL crawler in https://gitlab.iscpif.fr/gargantext/crawlers):
+
+1. Ongoing devlopment (on local repo):
+   1. In `cabal.project`:
+      - add `../hal` to `packages:`
+      - turn off (temporarily) the `hal` in `source-repository-package` 
+   2. When changes work and tests are OK, commit in repo `hal`
+2. When changes are commited / merged:
+   1. Get the hash id, and edit `stack.yaml` with the **new commit id**
+   2. run `./bin/update-cabal-project`
+      - get an error that sha256 don't match, so update the `./bin/update-cabal-project` with new sha256 hash
+      - run again `./bin/update-cabal-project` (to make sure it's a fixed point now)
+
+> Note: without `stack.yaml` we would have to only fix `cabal.project` -> `source-repository-package` commit id. Sha256 is there to make sure CI reruns the tests.
 
 ## Use Cases <a name="use-cases"></a>