Skip to content

⚙️ Configuration & Developer Experience #320

@vasconceloscezar

Description

@vasconceloscezar

Summary

Improve configuration management and developer experience. Enable per-repository configs that can be shared with team members and better tooling validation.

Problems Identified

1. Per-Repository Scripts Configuration

Current: Scripts (setup, dev server, cleanup) configured in UI, stored locally.
Impact: Other team members can't reuse configs, manual setup on each machine.

Solution:

  • Store project config in .genie/forge.json or similar
  • Committed to repo, version controlled
  • UI reads/writes to this file
  • Fallback to local config if file missing

Proposed Schema:

{
  "scripts": {
    "setup": "make setup-dev",
    "dev": "make dev",
    "cleanup": "make quality"
  },
  "copyFiles": [".env", ".env.local"],
  "defaultBranch": "dev",
  "agents": {
    "preferred": "claude-code"
  }
}

2. Cursor CLI Validation

Current: Selecting Cursor as provider doesn't validate CLI installation.
Impact: Cryptic errors later when trying to execute tasks.

Solution:

  • Check CLI availability when provider selected
  • Show version if found: "Cursor CLI v1.2.3 ✓"
  • Show install instructions if missing
  • Optional: block save until CLI available (or show warning)

3. Provider Tool Validation (General)

Current: No validation that required tools are installed.

Solution:

  • Validation for each provider's requirements
  • Clear error messages with install instructions
  • "Test Connection" button for providers
  • Health check on app startup

4. Better Error Messages

Current: Some errors are cryptic, especially for missing dependencies.

Solution:

  • Human-readable error messages
  • Suggested fixes for common errors
  • Links to documentation
  • Copy-able error details for bug reports

5. Team Config Sharing

Current: Each user configures independently.

Solution:

  • .genie/forge.json shared in repo
  • Override mechanism for personal settings
  • Environment variable support in configs
  • Secrets handled separately (not committed)

Acceptance Criteria

  • Project config can be stored in .genie/forge.json
  • Cursor CLI validated on provider selection
  • Clear error messages with suggested fixes
  • Team members can share project configs via git

Technical Notes

File Structure:

project/
├── .genie/
│   ├── forge.json      # Project config (committed)
│   └── forge.local.json # Personal overrides (gitignored)

Implementation:

  • Config loader with merge logic (repo + local)
  • Provider validation hooks
  • Error message registry with suggestions

Team Feedback Sources

  • Feedback 1: Cursor CLI validation
  • Feedback 6: Per-repo scripts, team config

Priority

🟢 P2 - Medium (DX improvement, enables team workflows)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions