chore: rename project from adastra_portal to apf_portal

The host organisation - APF France Handicap - was confirmed on
2026-04-30. Update all in-repo references to use apf_portal
(snake_case in prose) and apf-portal (kebab-case workspace name and
repo URL). Touched: CLAUDE.md, ADRs 0001/0002/0003/0015, and the Nx
bootstrap setup guide.

The historical name is preserved as a single sentence in ADR-0003 as
a self-validating example of the function-prefixed naming convention
designed exactly for this scenario - the apps (portal-shell,
portal-bff) and the lib conventions (feature-<name>, shared-<scope>)
were unaffected by the rename, which was the explicit point of
ADR-0003.

Memory state aligned out-of-band: project_adastra.md retired,
project_apf_portal.md created with the expanded APF context (host
org, health + financial data scope, ASVS L3 pending RSSI input, UI
stack decision spartan-ng + CDK + Tailwind, expanded phase-3 status).

Pending follow-ups (user-side, not in this commit):
- rename the Gitea repo julien/adastra_portal -> julien/apf_portal
- git remote set-url origin gitea@git.unespace.com:julien/apf_portal.git
- optionally rename the local working directory ~/Works/adastra_portal/
  -> ~/Works/apf_portal/
This commit is contained in:
Julien Gautier
2026-04-30 13:31:38 +02:00
parent 49712d0bbf
commit 880c7ded6b
6 changed files with 19 additions and 19 deletions
+9 -9
View File
@@ -1,10 +1,10 @@
# 🏗️ Bootstrap the Nx monorepo for adastra-portal
# 🏗️ Bootstrap the Nx monorepo for apf-portal
> **Status.** Aligned with phase-1 ADRs ([0002](../../decisions/0002-adopt-nx-monorepo-apps-preset.md), [0003](../../decisions/0003-workspace-and-app-naming-convention.md), [0004](../../decisions/0004-frontend-stack-angular-csr-zoneless-signals.md), [0005](../../decisions/0005-backend-stack-nestjs.md), [0006](../../decisions/0006-persistence-postgresql-prisma.md)). Replaces the original placeholder-based draft.
## Goal
Scaffold the `adastra-portal` Nx monorepo containing:
Scaffold the `apf-portal` Nx monorepo containing:
- `apps/portal-shell` — Angular SPA frontend (CSR, standalone, zoneless, Signals, Vitest, SCSS, strict TS).
- `apps/portal-bff` — NestJS BFF backend (Express adapter, global `ValidationPipe`, Jest test runner).
@@ -19,7 +19,7 @@ Out of scope here (covered by later phases): authentication (Entra ID), sessions
- WSL + Zsh — see [01-wsl-terminal-setup.md](01-wsl-terminal-setup.md).
- Node.js latest LTS + pnpm via corepack — see [02-dev-web-stack.md](02-dev-web-stack.md).
- Working tree under the WSL filesystem (`~/dev/`, `~/Works/`), never `/mnt/c/`.
- The repository `adastra-portal` already exists locally with the ADRs and docs committed (you are reading one of them).
- The repository `apf-portal` already exists locally with the ADRs and docs committed (you are reading one of them).
---
@@ -30,21 +30,21 @@ The repository already carries documentation, ADRs, `.vscode/`, and `.gitignore`
```bash
# 1. Generate a clean Nx workspace next to the repo
cd ~/dev # or any scratch location outside the repo
pnpm dlx create-nx-workspace@latest adastra-portal-bootstrap \
pnpm dlx create-nx-workspace@latest apf-portal-bootstrap \
--preset=apps \
--pm=pnpm \
--ci=skip \
--useGitHub=false
# 2. Copy the workspace files into the existing repo
cd adastra-portal-bootstrap
cd apf-portal-bootstrap
cp -v package.json pnpm-workspace.yaml nx.json tsconfig.base.json \
.prettierrc .prettierignore .editorconfig \
eslint.config.mjs \
~/Works/adastra_portal/
~/Works/apf_portal/
# 3. Drop the scratch workspace
cd ~ && rm -rf ~/dev/adastra-portal-bootstrap
cd ~ && rm -rf ~/dev/apf-portal-bootstrap
```
The `apps` preset is generic — it does not privilege a runtime ([ADR-0002](../../decisions/0002-adopt-nx-monorepo-apps-preset.md)). Plugins are added in step 2.
@@ -52,7 +52,7 @@ The `apps` preset is generic — it does not privilege a runtime ([ADR-0002](../
Verify:
```bash
cd ~/Works/adastra_portal
cd ~/Works/apf_portal
pnpm install
ls nx.json package.json tsconfig.base.json
```
@@ -314,7 +314,7 @@ module.exports = { extends: ['@commitlint/config-conventional'] };
## 9) CI/CD
The pipeline targets the Gitea repository (`gitea@git.unespace.com:julien/adastra_portal.git`). Pipeline shape (Gitea Actions vs. third-party runner) and branch protection are deferred to phase-3 ADRs (planned: ADR-0017). Locally, the equivalent of the future CI check is:
The pipeline targets the Gitea repository (`gitea@git.unespace.com:julien/apf_portal.git`). Pipeline shape (Gitea Actions vs. third-party runner) and branch protection are deferred to phase-3 ADRs (planned: ADR-0017). Locally, the equivalent of the future CI check is:
```bash
pnpm nx affected -t lint test build