diff --git a/.cursor/skills/autodev/SKILL.md b/.cursor/skills/autodev/SKILL.md index 48f2e1c..6efbc56 100644 --- a/.cursor/skills/autodev/SKILL.md +++ b/.cursor/skills/autodev/SKILL.md @@ -67,8 +67,9 @@ B3. Read state — `_docs/_autodev_state.md` (if it exists). B4. Read File Index — `state.md`, `protocols.md`, and the active flow file. ### Resolve (once per invocation, after Bootstrap) -R1. Reconcile state — verify state file against `_docs/` contents; on disagreement, trust the folders - and update the state file (rules: `state.md` → "State File Rules" #4). +R1. Reconcile state — verify state file against `_docs/` contents; probe `/../docs` + (parent suite `docs/` — see `state.md` → "State File Rules" #4); on disagreement, + trust the folders and update the state file (rules: `state.md` → "State File Rules" #4). After this step, `state.step` / `state.status` are authoritative. R2. Resolve flow — see §Flow Resolution above. R3. Resolve current step — when a state file exists, `state.step` drives detection. diff --git a/.cursor/skills/autodev/protocols.md b/.cursor/skills/autodev/protocols.md index edc4037..5d7e044 100644 --- a/.cursor/skills/autodev/protocols.md +++ b/.cursor/skills/autodev/protocols.md @@ -388,7 +388,7 @@ The banner shell is defined here once. Each flow file contributes only its step- where `` comes from the state-token set defined per row in the flow's step-list table. - `` — optional, flow-specific. The existing-code flow appends ` (cycle )` when `state.cycle > 1`; other flows leave it empty. - `Retry:` row — omit entirely when `retry_count` is 0. Include it with `/3` otherwise. -- `` — optional, flow-specific. The meta-repo flow adds a `Config:` line with `_docs/_repo-config.yaml` state; other flows leave it empty. +- `` — optional, flow-specific. The meta-repo flow adds a `Config:` line with `_docs/_repo-config.yaml` state; other flows leave it empty unless **parent suite docs** apply: if `/../docs` exists and is a directory, append `Suite docs (parent): ` on its own line (or `Suite docs (parent): absent` is **not** required — omit when missing). This line is orthogonal to flow-specific footer lines; both may appear. ### State token set (shared) diff --git a/.cursor/skills/autodev/state.md b/.cursor/skills/autodev/state.md index 9f59ffc..983b099 100644 --- a/.cursor/skills/autodev/state.md +++ b/.cursor/skills/autodev/state.md @@ -100,7 +100,7 @@ cycle: 3 1. **Create** on the first autodev invocation (after state detection determines Step 1) 2. **Update** after every change — this includes: batch completion, sub-step progress, step completion, session boundary, failed retry, or any meaningful state transition. The state file must always reflect the current reality. 3. **Read** as the first action on every invocation — before folder scanning -4. **Cross-check**: verify against actual `_docs/` folder contents. If they disagree, trust the folder structure and update the state file +4. **Cross-check**: verify against actual `_docs/` folder contents. If they disagree, trust the folder structure and update the state file. **Parent suite `docs/`**: on every invocation, also probe `/../docs` (the parent directory’s `docs` folder — typical suite-level shared documentation next to a component repo). If it exists, mention it in the Status Summary footer per `protocols.md`; use it only as supplemental reading context unless a flow step explicitly ties detection to it. It never replaces workspace `_docs/` for step detection by default. 5. **Never delete** the state file 6. **Retry tracking**: increment `retry_count` on each failed auto-retry; reset to `0` on success. If `retry_count` reaches 3, set `status: failed` 7. **Failed state on re-entry**: if `status: failed` with `retry_count: 3`, do NOT auto-retry — present the issue to the user first diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 0000000..7ff3513 --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,35 @@ +{ + "version": "0.2.0", + "configurations": [ + { + // Use IntelliSense to find out which attributes exist for C# debugging + // Use hover for the description of the existing attributes + // For further information visit https://github.com/dotnet/vscode-csharp/blob/main/debugger-launchjson.md. + "name": ".NET Core Launch (web)", + "type": "coreclr", + "request": "launch", + "preLaunchTask": "build", + // If you have changed target frameworks, make sure to update the program path. + "program": "${workspaceFolder}/src/bin/Debug/net10.0/Azaion.Annotations.dll", + "args": [], + "cwd": "${workspaceFolder}/src", + "stopAtEntry": false, + // Enable launching a web browser when ASP.NET Core starts. For more information: https://aka.ms/VSCode-CS-LaunchJson-WebBrowser + "serverReadyAction": { + "action": "openExternally", + "pattern": "\\bNow listening on:\\s+(https?://\\S+)" + }, + "env": { + "ASPNETCORE_ENVIRONMENT": "Development" + }, + "sourceFileMap": { + "/Views": "${workspaceFolder}/Views" + } + }, + { + "name": ".NET Core Attach", + "type": "coreclr", + "request": "attach" + } + ] +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 0000000..a50c574 --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,41 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "dotnet", + "type": "process", + "args": [ + "build", + "${workspaceFolder}/src/Azaion.Annotations.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "dotnet", + "type": "process", + "args": [ + "publish", + "${workspaceFolder}/src/Azaion.Annotations.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary;ForceNoAlign" + ], + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "dotnet", + "type": "process", + "args": [ + "watch", + "run", + "--project", + "${workspaceFolder}/src/Azaion.Annotations.csproj" + ], + "problemMatcher": "$msCompile" + } + ] +} \ No newline at end of file diff --git a/README.md b/README.md new file mode 100644 index 0000000..162d0cf --- /dev/null +++ b/README.md @@ -0,0 +1,13 @@ +# Azaion.Annotations + +.NET REST API for media, annotations, datasets, and settings. + +## Documentation + +The **canonical** description of this service (HTTP API, media flows, RabbitMQ sync, SSE, settings) is maintained with the rest of the suite: + +**[suite/_docs/01_annotations.md](../_docs/01_annotations.md)** + +That file is the product and integration reference for this repository. Update it when you change public contracts, queues, or behavior it documents. + +If you use a standalone clone without the parent `suite` tree, open `01_annotations.md` from your checkout of the suite `_docs` folder (same content). diff --git a/src/README.md b/src/README.md index 3b1abd9..cd1983b 100644 --- a/src/README.md +++ b/src/README.md @@ -1,3 +1,5 @@ # Azaion.Annotations .NET 8 REST API for media, annotations, dataset, and settings management. + +Documentation for this service lives in the suite unified docs: see the repository [README](../README.md) (link to `01_annotations.md`).