{ "planPath": "docs/plans/2026-06-09-monaco-script-editor.md", "branch": "feat/monaco-script-editor", "tasks": [ {"id": 163, "planTask": 0, "subject": "Task 0: AdminUI project references + feature branch", "status": "pending"}, {"id": 164, "planTask": 1, "subject": "Task 1: Vendor Monaco + MonacoEditor.razor + minimal monaco-init.js + App.razor", "status": "pending", "blockedBy": [163]}, {"id": 165, "planTask": 2, "subject": "Task 2: ScriptAnalysis contracts + service seam + endpoints + DI", "status": "pending", "blockedBy": [163]}, {"id": 166, "planTask": 3, "subject": "Task 3: Diagnostics (Roslyn + ForbiddenTypeAnalyzer + DependencyExtractor)", "status": "pending", "blockedBy": [165]}, {"id": 167, "planTask": 4, "subject": "Task 4: Completions (scope + dot-member)", "status": "pending", "blockedBy": [166]}, {"id": 168, "planTask": 5, "subject": "Task 5: IScriptTagCatalog (tag + virtual-tag path provider)", "status": "pending", "blockedBy": [165]}, {"id": 169, "planTask": 6, "subject": "Task 6: Tag-path string-literal completion", "status": "pending", "blockedBy": [167, 168]}, {"id": 170, "planTask": 7, "subject": "Task 7: Hover + signature help", "status": "pending", "blockedBy": [169]}, {"id": 171, "planTask": 8, "subject": "Task 8: Format (+ InlayHints stub)", "status": "pending", "blockedBy": [170]}, {"id": 172, "planTask": 9, "subject": "Task 9: Wire 6 Monaco language providers in monaco-init.js", "status": "pending", "blockedBy": [164, 171]}, {"id": 173, "planTask": 10, "subject": "Task 10: Swap ScriptEdit page to MonacoEditor", "status": "pending", "blockedBy": [164]}, {"id": 174, "planTask": 11, "subject": "Task 11: VirtualTagModal inline script-source panel", "status": "pending", "blockedBy": [164]}, {"id": 175, "planTask": 12, "subject": "Task 12: Live verification in docker-dev", "status": "pending", "blockedBy": [172, 173, 174]}, {"id": 176, "planTask": 13, "subject": "Task 13: Docs + memory + finish branch", "status": "pending", "blockedBy": [175]} ], "lastUpdated": "2026-06-09" }