diff --git a/docs/FEATURES/platform-scaffold.md b/docs/FEATURES/platform-scaffold.md deleted file mode 100644 index 123387a..0000000 --- a/docs/FEATURES/platform-scaffold.md +++ /dev/null @@ -1,60 +0,0 @@ -# Feature: Agentic Platform Scaffold - -## Status - -In Progress - -## Goal - -Align Socialize with the structure generated by `bootstrap-vdp-agentic.sh` while preserving the current product implementation. - -## Backend - -The backend is located at: - -```txt -backend/src/Socialize.Api -``` - -The solution is: - -```txt -backend/Socialize.slnx -``` - -The test project is: - -```txt -backend/tests/Socialize.Tests -``` - -## Frontend - -The frontend remains the existing Vue 3 app. Feature-owned route views and stores live under `frontend/src/features/`, while shared app shell code stays under `frontend/src/layouts`, `frontend/src/components`, `frontend/src/plugins`, and `frontend/src/router`. - -## API Contract - -OpenAPI workflow: - -```bash -./scripts/update-openapi.sh -``` - -Writes: - -```txt -shared/openapi/openapi.json -frontend/src/api/schema.d.ts -``` - -## Done When - -- [x] Backend code lives under `backend/src/Socialize.Api` -- [x] Backend solution exists at `backend/Socialize.slnx` -- [x] Test project exists under `backend/tests/Socialize.Tests` -- [x] Root scripts exist -- [x] Docker Compose and Caddy files exist -- [x] Agentic docs, specs, tasks, and prompts exist -- [ ] OpenAPI generation verified against a running backend -- [x] Backend build passes -- [x] Frontend build passes diff --git a/docs/TASKS/platform-scaffold/001-align-repository-with-bootstrap-scaffold.md b/docs/TASKS/platform-scaffold/001-align-repository-with-bootstrap-scaffold.md deleted file mode 100644 index e74698c..0000000 --- a/docs/TASKS/platform-scaffold/001-align-repository-with-bootstrap-scaffold.md +++ /dev/null @@ -1,64 +0,0 @@ -# Task: Align repository with bootstrap scaffold - -## Feature - -`docs/FEATURES/platform-scaffold.md` - -## Goal - -Move the current Socialize repository into the structure that `bootstrap-vdp-agentic.sh` would have generated, without replacing the existing product implementation. - -## Context - -The script generates a simple .NET + Vue monorepo with: - -- backend under `backend/src/.Api` -- tests under `backend/tests/.Tests` -- root scripts under `scripts/` -- Docker Compose and Caddy deployment files -- OpenAPI sync into `shared/openapi` -- agentic docs under `docs/FEATURES`, `docs/TASKS`, `docs/PROMPTS`, and `docs/DECISIONS` - -Socialize already has a larger FastEndpoints backend and Vue app. Preserve that implementation while adopting the scaffold. - -## Files Likely To Change - -- `backend/Socialize.slnx` -- `backend/src/Socialize.Api/**` -- `backend/tests/Socialize.Tests/**` -- `scripts/**` -- `deploy/caddy/Caddyfile` -- `docker-compose.yml` -- `docs/**` -- `README.md` -- `AGENTS.md` -- `.github/workflows/backend-ci.yml` -- `frontend/package.json` -- `frontend/scripts/fetch-openapi.mjs` -- `frontend/src/api/schema.d.ts` - -## Constraints - -- Preserve existing product code. -- Do not convert the frontend to TypeScript in this task. -- Do not rewrite backend modules into minimal API folders in this task. -- Do not introduce new secrets. - -## Done When - -- [x] Backend implementation moved under `backend/src/Socialize.Api` -- [x] Backend solution points at the new project path -- [x] Test project scaffold exists -- [x] Root scripts exist -- [x] OpenAPI sync command exists -- [x] Agentic docs/specs/tasks/prompts exist -- [x] Backend build passes -- [x] Frontend build passes - -## Validation Commands - -```bash -dotnet build backend/Socialize.slnx -dotnet test backend/Socialize.slnx -cd frontend && npm run build -``` diff --git a/docs/TASKS/platform-scaffold/002-contain-backend-feature-mapping.md b/docs/TASKS/platform-scaffold/002-contain-backend-feature-mapping.md deleted file mode 100644 index 2566dad..0000000 --- a/docs/TASKS/platform-scaffold/002-contain-backend-feature-mapping.md +++ /dev/null @@ -1,37 +0,0 @@ -# Task: Contain backend feature mapping - -## Feature - -`docs/FEATURES/platform-scaffold.md` - -## Goal - -Move backend feature-specific persistence mapping out of the shared `AppDbContext` body and into the owning `Modules//Data` folders. - -## Context - -Architecture docs state that current backend feature code stays under `Modules/`. `AppDbContext` remains the shared EF Core composition point, but feature-owned model configuration should live with the feature entities. - -## Files Likely To Change - -- `backend/src/Socialize.Api/Data/AppDbContext.cs` -- `backend/src/Socialize.Api/Modules/*/Data/*` - -## Constraints - -- Do not change API contracts. -- Do not change table names, indexes, or column constraints. -- Do not introduce a broader persistence refactor. - -## Done When - -- [x] Feature entity mappings live under the owning module folders. -- [x] `AppDbContext` delegates feature configuration to modules. -- [x] Backend build passes. - -## Validation Commands - -```bash -dotnet build backend/Socialize.slnx -dotnet test backend/Socialize.slnx -``` diff --git a/docs/TASKS/platform-scaffold/003-use-local-blob-storage.md b/docs/TASKS/platform-scaffold/003-use-local-blob-storage.md deleted file mode 100644 index faee250..0000000 --- a/docs/TASKS/platform-scaffold/003-use-local-blob-storage.md +++ /dev/null @@ -1,40 +0,0 @@ -# Task: Use local blob storage - -## Feature - -`docs/FEATURES/platform-scaffold.md` - -## Goal - -Store uploaded portraits and logos on the API server filesystem instead of Azure Blob Storage. - -## Context - -User, client, and workspace portrait uploads already flow through `IBlobStorage`. The implementation can change without altering endpoint contracts or frontend behavior. - -## Files Likely To Change - -- `backend/src/Socialize.Api/Infrastructure/DependencyInjection.cs` -- `backend/src/Socialize.Api/Infrastructure/BlobStorage/Services/*` -- `backend/src/Socialize.Api/Infrastructure/BlobStorage/Configuration/*` -- `backend/src/Socialize.Api/Program.cs` -- `backend/src/Socialize.Api/appsettings.Development.json` - -## Constraints - -- Do not change API request or response contracts. -- Keep upload validation behavior consistent with the existing blob storage implementation. -- Serve returned blob URLs from the API host so the existing frontend can keep using `portraitUrl` and `logoUrl`. - -## Done When - -- [x] `IBlobStorage` resolves to local filesystem storage by default. -- [x] Uploaded files are served back from the API host. -- [x] Backend build passes. - -## Validation Commands - -```bash -dotnet build backend/Socialize.slnx -dotnet test backend/Socialize.slnx -``` diff --git a/docs/TASKS/platform-scaffold/004-improve-ui-surface-contrast.md b/docs/TASKS/platform-scaffold/004-improve-ui-surface-contrast.md deleted file mode 100644 index 5239184..0000000 --- a/docs/TASKS/platform-scaffold/004-improve-ui-surface-contrast.md +++ /dev/null @@ -1,28 +0,0 @@ -# Task: Improve UI Surface Contrast - -## Goal - -Increase contrast between the app background, panels, and form controls so inputs are easier to identify against white or near-white surfaces. - -## Feature Spec - -`docs/FEATURES/platform-scaffold.md` - -## Scope - -- Update the shared frontend color tokens. -- Configure Vuetify to use the Socialize light theme colors. -- Add shared form control and surface defaults for native and Vuetify controls. -- Avoid feature-specific behavior changes. - -## Likely Files - -- `frontend/src/assets/main.css` -- `frontend/src/main.js` - -## Validation - -```bash -cd frontend -npm run build -```