Update documentation with GUI application details

- CLAUDE.md: Added GUI architecture, key classes, features, shortcuts
- README.md: Added quick start for GUI, features section, shortcuts

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
rob 2026-01-06 02:19:48 -04:00
parent bb7c665d03
commit ec08f878f7
2 changed files with 121 additions and 9 deletions

View File

@ -4,9 +4,73 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## Project Overview ## Project Overview
**Development Hub** is the central orchestration project for Rob's multi-project development ecosystem. It provides tooling to create and manage projects that follow consistent patterns for documentation, repository structure, and AI-assisted development. **Development Hub** is the central orchestration project for Rob's multi-project development ecosystem. It provides:
## Key Scripts 1. **GUI Application** - PyQt6-based workspace with project list, splittable terminal panes, and session persistence
2. **CLI Tools** - Scripts to create and manage projects following consistent patterns
## GUI Application
### Running the App
```bash
cd ~/PycharmProjects/development-hub
source .venv/bin/activate
python -m development_hub
```
### Architecture
```
src/development_hub/
├── __init__.py
├── __main__.py # Entry point
├── app.py # QApplication subclass
├── main_window.py # Main window with menus
├── project_list.py # Left panel - project discovery & context menu
├── workspace.py # Right panel - splittable panes with tabs
├── terminal_widget.py # PTY terminal with pyte emulation
├── project_discovery.py # Parse projects from build-public-docs.sh
├── dialogs.py # New Project (with Ramble), Settings dialogs
├── settings.py # JSON persistence for settings & session
└── styles.py # Dark theme stylesheet
```
### Key Classes
| Class | File | Purpose |
|-------|------|---------|
| `MainWindow` | main_window.py | QMainWindow with menus, splitter layout |
| `ProjectListWidget` | project_list.py | Project list with context menu actions |
| `WorkspaceManager` | workspace.py | Manages splittable pane layout |
| `PaneWidget` | workspace.py | Tab container within a pane |
| `TerminalWidget` | terminal_widget.py | PTY-based terminal with pyte screen emulation |
### Features
- **Project List**: Discovers projects from `build-public-docs.sh` config
- **Context Menu**: Open terminal, editor, Gitea, docs, deploy
- **Splittable Panes**: Horizontal/vertical splits, each pane has own tab bar
- **Terminal**: Full PTY with pyte for TUI support (vim, htop work)
- **Drag & Drop**: Drop files/folders into terminal to inject paths
- **Session Persistence**: Remembers pane layout and open terminals
- **New Project Dialog**: Integrates with Ramble for voice input
### Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
| `Ctrl+Shift+T` | New terminal tab |
| `Ctrl+Shift+W` | Close current tab |
| `Ctrl+Shift+D` | Split pane horizontal |
| `Ctrl+Shift+E` | Split pane vertical |
| `Ctrl+Shift+P` | Close active pane |
| `Ctrl+Alt+Left/Right` | Switch panes |
| `Ctrl+B` | Toggle project panel |
| `Ctrl+N` | New project dialog |
| `F5` | Refresh project list |
## CLI Scripts
### `bin/new-project` ### `bin/new-project`
@ -38,8 +102,9 @@ new-project myproject
``` ```
development-hub/ development-hub/
├── src/development_hub/ # GUI application (see Architecture above)
├── bin/ ├── bin/
│ └── new-project # Main scaffolding script │ └── new-project # CLI scaffolding script
├── templates/ ├── templates/
│ ├── gitignore.template # Python .gitignore with docs exclusion │ ├── gitignore.template # Python .gitignore with docs exclusion
│ ├── CLAUDE.md.template # AI context file │ ├── CLAUDE.md.template # AI context file
@ -48,6 +113,7 @@ development-hub/
│ ├── overview.md.template # Docs overview │ ├── overview.md.template # Docs overview
│ └── updating-documentation.md.template │ └── updating-documentation.md.template
├── docs/ # Symlink to project-docs ├── docs/ # Symlink to project-docs
├── pyproject.toml # Python packaging with PyQt6 dep
├── CLAUDE.md # This file ├── CLAUDE.md # This file
├── README.md ├── README.md
└── .gitignore └── .gitignore

View File

@ -4,16 +4,31 @@ Central orchestration project for managing Rob's multi-project development ecosy
## Overview ## Overview
Development Hub provides tooling to create and manage projects that follow consistent patterns: Development Hub provides:
- Centralized documentation via Docusaurus - **GUI Application** - PyQt6 workspace with project list, splittable terminal panes, and session persistence
- Gitea repository hosting with Pages support - **CLI Tools** - Scripts to create and manage projects with consistent patterns
- AI-assistant context files (CLAUDE.md) - **Centralized Documentation** - Docusaurus-based docs with Gitea Pages deployment
- Python project structure
## Quick Start ## Quick Start
### Create a New Project ### Run the GUI
```bash
cd ~/PycharmProjects/development-hub
source .venv/bin/activate
python -m development_hub
```
### Install Dependencies (first time)
```bash
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```
### Create a New Project (CLI)
```bash ```bash
# Add to PATH (one-time) # Add to PATH (one-time)
@ -71,6 +86,37 @@ To create manually:
2. Generate token with 'repo' scope 2. Generate token with 'repo' scope
3. Set `GITEA_TOKEN` env var or let the script save it 3. Set `GITEA_TOKEN` env var or let the script save it
## GUI Features
### Project List (Left Panel)
- Auto-discovers projects from build configuration
- Double-click to open terminal at project root
- Right-click context menu:
- Open Terminal
- Open in Editor
- View on Gitea
- View Documentation
- Deploy Docs
### Workspace (Right Panel)
- Splittable panes (horizontal/vertical)
- Each pane has its own tab bar
- Full PTY terminals with TUI support (vim, htop, etc.)
- Drag & drop files/folders to inject paths
- Session persistence - remembers layout on restart
### Keyboard Shortcuts
| Shortcut | Action |
|----------|--------|
| `Ctrl+Shift+T` | New terminal tab |
| `Ctrl+Shift+W` | Close current tab |
| `Ctrl+Shift+D` | Split horizontal |
| `Ctrl+Shift+E` | Split vertical |
| `Ctrl+Alt+Left/Right` | Switch panes |
| `Ctrl+B` | Toggle project panel |
| `Ctrl+N` | New project dialog |
## Full Documentation ## Full Documentation
https://pages.brrd.tech/rob/development-hub/ https://pages.brrd.tech/rob/development-hub/