Go Daemon
Legacy
cmd/daemon is the backend for the legacy Electron desktop app and isn't under active feature development. The primary backend is cmd/visionstudio — see Architecture Overview.
The Go daemon provides the backend API for VisionStudio.
Location
cmd/daemon/
├── main.go # Entry point and core routes
├── aidlc.go # AIDLC workflow handlers
├── v2mom.go # V2MOM cascade handlers
├── capability.go # Capability stack handlers
├── roadmap.go # Roadmap handlers
├── organization.go # Organization handlers
├── methodologies.go # Methodology selection handlers
├── samples.go # Sample projects handlers
└── devx.go # DevX dashboard passthrough handler
pkg/
├── api/types.go # API request/response types
└── config/
├── projects.go # Project configuration
└── organization.go # Organization configuration
API Endpoints
Core
| Method |
Endpoint |
Description |
| GET |
/api/health |
Health check |
| GET |
/api/profiles |
List available profiles |
Projects
| Method |
Endpoint |
Description |
| GET |
/api/projects |
List all projects |
| POST |
/api/projects |
Create project |
| GET |
/api/projects/{project} |
Get project details |
| DELETE |
/api/projects/{project} |
Delete project |
Specs
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/specs/{type} |
Get spec content |
| PUT |
/api/projects/{project}/specs/{type} |
Save spec content |
| POST |
/api/projects/{project}/specs/{type}/evaluate |
Evaluate spec |
Methodology
| Method |
Endpoint |
Description |
| GET |
/api/methodologies/requirements |
List requirements methodologies |
| GET |
/api/methodologies/implementation |
List implementation methodologies |
| GET |
/api/projects/{project}/methodology |
Get project methodology |
| PUT |
/api/projects/{project}/methodology |
Update methodology selection |
AIDLC Workflow
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/aidlc/workflow |
Get workflow status |
| GET |
/api/projects/{project}/aidlc/phases |
List phases and deliverables |
| POST |
/api/projects/{project}/aidlc/transition |
Transition to next phase |
| GET |
/api/projects/{project}/aidlc/sync |
Get sync status |
| GET |
/api/projects/{project}/aidlc/documents/{docType} |
Get AIDLC document |
| POST |
/api/projects/{project}/aidlc/documents/{docType} |
Create/generate document |
| PUT |
/api/projects/{project}/aidlc/documents/{docType} |
Update document |
V2MOM
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/v2moms |
List project V2MOMs |
| GET |
/api/projects/{project}/v2moms/{id} |
Get specific V2MOM |
| PUT |
/api/projects/{project}/v2moms/{id} |
Update V2MOM |
| GET |
/api/v2mom/cascade |
Get full V2MOM cascade |
Capability Stack
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/capabilities |
List capabilities |
| GET |
/api/projects/{project}/capabilities/{id} |
Get capability |
| POST |
/api/projects/{project}/capabilities |
Create capability |
| PUT |
/api/projects/{project}/capabilities/{id} |
Update capability |
| DELETE |
/api/projects/{project}/capabilities/{id} |
Delete capability |
Roadmap
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/roadmap |
Get roadmap |
| POST |
/api/projects/{project}/roadmap/initiatives |
Create initiative |
| PUT |
/api/projects/{project}/roadmap/initiatives/{id} |
Update initiative |
| DELETE |
/api/projects/{project}/roadmap/initiatives/{id} |
Delete initiative |
Maturity Model
| Method |
Endpoint |
Description |
| GET |
/api/projects/{project}/maturity |
List maturity models |
| GET |
/api/projects/{project}/maturity/{id} |
Get maturity model |
| GET |
/api/projects/{project}/maturity/{id}/dashboard |
Get HTML dashboard |
Organization
| Method |
Endpoint |
Description |
| GET |
/api/organization |
Get organization details |
| PUT |
/api/organization |
Update organization |
| GET |
/api/organization/v2mom |
Get organization V2MOM |
| PUT |
/api/organization/v2mom |
Update organization V2MOM |
| GET |
/api/organization/teams |
List teams |
| POST |
/api/organization/teams |
Create team |
Samples
| Method |
Endpoint |
Description |
| GET |
/api/samples |
List available samples |
| GET |
/api/samples/{id} |
Get sample details |
| POST |
/api/samples/{id}/import |
Import sample to workspace |
DevX
Not project-scoped, unlike the routes above — OmniDevX activity is person/machine-scoped.
| Method |
Endpoint |
Description |
| GET |
/api/devx/dashboard |
Serve ~/.plexusone/omnidevx/dashboard.json as-is (404 with a generating-command hint if missing) |
Chat
| Method |
Endpoint |
Description |
| POST |
/api/chat |
LLM chat |
Configuration
The daemon runs on 127.0.0.1:8765 by default.
Dependencies
| Package |
Purpose |
chi |
HTTP router |
cors |
CORS middleware |
visionspec |
Spec orchestration and AIDLC |
structured-evaluation |
LLM-as-Judge evaluation |
Handler Structure
Each handler file follows a consistent pattern:
// Handler methods
func (s *Server) handleListX(w http.ResponseWriter, r *http.Request)
func (s *Server) handleGetX(w http.ResponseWriter, r *http.Request)
func (s *Server) handleCreateX(w http.ResponseWriter, r *http.Request)
func (s *Server) handleUpdateX(w http.ResponseWriter, r *http.Request)
func (s *Server) handleDeleteX(w http.ResponseWriter, r *http.Request)
// Helper methods
func (s *Server) discoverX(projectPath string) []api.XSummary
func (s *Server) loadX(projectPath, id string) (api.X, error)
Error Handling
All endpoints return consistent error responses:
{
"error": "Error message here"
}
HTTP status codes:
| Code |
Meaning |
| 200 |
Success |
| 201 |
Created |
| 400 |
Bad request (validation error) |
| 404 |
Not found |
| 409 |
Conflict (already exists) |
| 500 |
Internal server error |
Extending
To add a new endpoint:
- Create handler file in
cmd/daemon/ (e.g., myfeature.go)
- Add handler methods to
Server struct
- Add API types in
pkg/api/types.go
- Register routes in
main.go Router() method
- Update this documentation