Add Philosophy page and improve documentation

- Add /philosophy page explaining the paradigm shift from libraries to capabilities
- Visual diagrams comparing traditional vs CmdForge approach (bin of circuits vs organized workshop)
- Composition flow diagram showing tools chaining together
- Link from About page and homepage
- Update CLAUDE.md with accurate field names (output_schema not structured_output)
- Add Provider Install dialog to GUI dialogs list

Co-Authored-By: Claude Opus 4.5 <[email protected]>
This commit is contained in:
rob
2026-04-04 17:49:59 -03:00
co-authored by Claude Opus 4.5
parent 1087b65c50
commit 468a999b80
5 changed files with 458 additions and 5 deletions
+22 -4
View File
@@ -56,7 +56,7 @@ python -m cmdforge.cli # Alternative CLI invocation
- **gui/**: PySide6 desktop GUI
- **main_window.py**: Main application window with sidebar navigation
- **pages/**: Welcome page, Tools page, Tool Builder, Registry browser, Collections page, Providers management, Profiles
- **dialogs/**: Step editors (prompt/code/tool), Argument editor, Provider dialog, Connect/Publish dialogs, Test Step dialog, Settings dialog, System Dep dialog, Help dialogs, Review/Issue dialogs
- **dialogs/**: Step editors (prompt/code/tool), Argument editor, Provider dialog, Provider Install dialog, Connect/Publish dialogs, Test Step dialog, Settings dialog, System Dep dialog, Help dialogs, Review/Issue dialogs
- **widgets/**: Flow graph visualization (`flow_graph.py`), Icon utilities (`icons.py`)
### Key Paths
@@ -73,7 +73,7 @@ python -m cmdforge.cli # Alternative CLI invocation
Tools are YAML configs with:
- `name`, `description`, `category`
- `arguments`: Custom flags with defaults (e.g., `--max` → `{max}`)
- `steps`: Ordered list of `prompt` or `code` steps
- `steps`: Ordered list of `prompt`, `code`, or `tool` steps
- `output`: Template for final output (e.g., `"{response}"`)
### Step Types
@@ -81,9 +81,11 @@ Tools are YAML configs with:
1. **Prompt Step**: Calls AI provider with template, stores result in `output_var`
- `profile`: AI persona (system prompt prefix)
- `strip_fences`: Remove markdown code fences from output
- `structured_output`: JSON schema for validated structured responses
- `output_schema`: JSON schema for validated structured responses
- `max_tokens`: Max output tokens (provider-dependent, e.g., 4096 for haiku)
- `plain_text`: Bypass structured output enforcement
2. **Code Step**: Executes Python code via `exec()`, captures specified variables (comma-separated for multiple outputs)
3. **Tool Step**: Calls another tool (meta-tools), supports `args` dict and `provider` override. Dependencies resolved via `resolver.py`
3. **Tool Step**: Calls another tool (meta-tools), supports `input_template`, `args` dict, and `provider` override. Dependencies resolved via `resolver.py`
### Variable Flow
@@ -104,12 +106,28 @@ Providers are CLI tools that accept prompts via stdin and output to stdout. Defi
providers:
- name: claude
command: "claude -p"
description: "Anthropic Claude"
fallback: claude-haiku # Optional: try this provider if primary fails
- name: mock
command: "echo '[MOCK]'"
```
Provider fields:
- `name`: Provider identifier used in tool configs
- `command`: Shell command to invoke (prompt sent via stdin)
- `description`: Optional human-readable description
- `fallback`: Optional provider to try if this one fails (prevents infinite loops)
The `mock` provider is built-in for testing without API calls. Use `--provider mock` or `--dry-run` flags when testing tools.
Provider CLI commands:
- `cmdforge providers list` - List all providers and their status
- `cmdforge providers add <name> <command>` - Add/update a provider
- `cmdforge providers remove <name>` - Remove a provider
- `cmdforge providers test <name>` - Test a provider
- `cmdforge providers install` - Interactive guide to install AI providers
- `cmdforge providers for-tools <tool> [tools...]` - List providers used by tools (with `--warm` to pre-load local models)
## Web UI & Registry
CmdForge includes a web interface and tool registry: