From ac1cef31ac5b9ca2dfea723d1c050662e7819690 Mon Sep 17 00:00:00 2001 From: wjsjwr Date: Sat, 17 Jan 2026 15:25:16 +0800 Subject: [PATCH] Update spec for NDBS --- specs/numerical_design_system.md | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/specs/numerical_design_system.md b/specs/numerical_design_system.md index 6e3cb0d..6707cee 100644 --- a/specs/numerical_design_system.md +++ b/specs/numerical_design_system.md @@ -47,12 +47,16 @@ D:\code\super-mentor\ **Step 1.2: File System API** * **Instruction:** Implement endpoints to list and read definitions. * **Endpoints:** - * `GET /api/files/definitions`: Scans `resources/definitions/` and returns a list of `.json` files. - * `GET /api/files/content`: Takes a `filename` query param; returns the parsed JSON content. - * `POST /api/files/content`: Takes `filename` and `content` (JSON body); writes it back to `resources/definitions/{filename}` with 2-space indentation. + * `GET /api/files/definitions`: Scans `resources/definitions/` and returns a list of `.json` AND `.tres` files. + * `GET /api/files/content`: Takes a `filename` query param. + * If `.json`: Returns parsed JSON. + * If `.tres`: Parses the `[resource]` section key-value pairs into a JSON object. Handles arrays (e.g., `Tags = [ "a", "b" ]`) and strings. + * `POST /api/files/content`: Takes `filename` and `content` (JSON body). + * If `.json`: Writes standard JSON. + * If `.tres`: Reads the original file, replaces the values in the `[resource]` section with new values from the JSON, and saves preserving the header/metadata. **Step 1.3: Schema Inference (Dynamic Models)** -* **Instruction:** Since we don't have hardcoded Pydantic models for every file, create a utility that reads a JSON file and generates a generic "Schema" description (listing keys and value types) to help the frontend build forms dynamically. +* **Instruction:** Since we don't have hardcoded Pydantic models for every file, create a utility that reads a file (JSON or TRES) and generates a generic "Schema" description (listing keys and value types) to help the frontend build forms dynamically. --- @@ -150,14 +154,3 @@ D:\code\super-mentor\ ### 4.3 Safety * **No Overwrite:** When creating a new rule, fail if the file already exists. * **Backup:** (Bonus) Before saving a JSON file, copy the old version to `tools/ndbs/backups/`. - ---- - - -## 5. "Get Started" Prompt for AI - -*To begin implementing this spec, paste the following prompt:* - -> "I need to initialize the NDBS server as defined in Phase 1 of `specs/numerical_design_system.md`. -> Please create the directory `tools/ndbs/server`, set up a basic FastAPI `main.py` application, and implement the file listing endpoint `GET /api/files/definitions` that reads from `resources/definitions/`. -> Use `uvicorn` to run it on port 8000. Ensure CORS is enabled."