Update olddocs to reflect current implementation state
- REGISTRY.md: Mark phases 1-4, 6-8 complete; phase 5 partial - WEB_UI.md: Update Phase 7 checklist with completion status - DESIGN.md: Note TUI replaced by PySide6 GUI, update structure - PROJECT.md: Update source structure and database schema - PROVIDERS.md, META_TOOLS.md, COLLECTIONS.md: Add status notes - Add "Features Implemented Beyond Original Design" sections Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
a46add05b7
commit
0d91eb7fa0
|
|
@ -1,5 +1,14 @@
|
|||
# CmdForge Collections
|
||||
|
||||
> **Document Status (January 2026)**: Collections are partially implemented:
|
||||
> - ✅ API endpoints (`/api/v1/collections`, etc.)
|
||||
> - ✅ Web UI pages (`/collections`, `/collections/:name`)
|
||||
> - ✅ Database schema
|
||||
> - ❌ CLI commands (`cmdforge collections list/install`) - Not implemented
|
||||
> - ❌ Registry repo sync - Not implemented
|
||||
>
|
||||
> Collections can be browsed on the web and via API, but must be installed tool-by-tool via CLI.
|
||||
|
||||
Collections are curated groups of tools that can be installed together with a single command.
|
||||
|
||||
## Use Cases
|
||||
|
|
|
|||
|
|
@ -2,6 +2,11 @@
|
|||
|
||||
> A lightweight personal tool builder for AI-powered CLI commands
|
||||
|
||||
> **Document Status (January 2026)**: This is the original design document. The core concepts
|
||||
> (tool format, steps, variables, providers) remain accurate. The Terminal UI section describes
|
||||
> the original urwid TUI which has been replaced by a PySide6 desktop GUI. For the latest
|
||||
> documentation, see the project-docs system.
|
||||
|
||||
## Overview
|
||||
|
||||
CmdForge lets you create custom AI-powered terminal commands. You define a tool once (name, steps, provider), then use it like any Linux command.
|
||||
|
|
@ -188,7 +193,11 @@ cmdforge check sum # Check dependencies for meta-tools
|
|||
cmdforge ui # Launch interactive UI
|
||||
```
|
||||
|
||||
## Terminal UI
|
||||
## Terminal UI (Historical)
|
||||
|
||||
> **Note**: The urwid TUI described below has been replaced by a modern PySide6 desktop GUI.
|
||||
> The GUI provides the same functionality with a more polished interface. Run `cmdforge` to
|
||||
> launch the GUI, or `cmdforge ui` for legacy TUI mode if available.
|
||||
|
||||
A BIOS-style terminal UI using `urwid` with full mouse support.
|
||||
|
||||
|
|
@ -281,16 +290,27 @@ The current section's title is highlighted with brackets: `[ Tool Info ]`
|
|||
|
||||
### Directory Structure
|
||||
|
||||
> **Note**: The structure below is simplified. See `src/cmdforge/` for the full implementation.
|
||||
|
||||
```
|
||||
cmdforge/
|
||||
src/cmdforge/
|
||||
__init__.py
|
||||
cli.py # Entry point, argument parsing
|
||||
ui.py # UI dispatcher (chooses urwid/snack/dialog)
|
||||
ui_urwid.py # Urwid-based BIOS-style UI
|
||||
ui_snack.py # Snack/newt fallback UI
|
||||
cli/ # CLI commands (list, create, edit, run, registry, etc.)
|
||||
gui/ # PySide6 desktop GUI
|
||||
main_window.py
|
||||
pages/ # Tools, Registry, Providers, Profiles pages
|
||||
dialogs/ # Step editors, Publish dialog, Connect dialog
|
||||
web/ # Flask web application
|
||||
app.py
|
||||
routes.py
|
||||
templates/
|
||||
registry/ # Registry API
|
||||
app.py
|
||||
db.py
|
||||
tool.py # Tool loading/saving/wrapper scripts
|
||||
runner.py # Execute tools
|
||||
providers.py # Provider abstraction
|
||||
profiles.py # AI persona profiles
|
||||
```
|
||||
|
||||
### Provider System
|
||||
|
|
@ -380,29 +400,34 @@ output: "{result}"
|
|||
|
||||
## What This Design Doesn't Include
|
||||
|
||||
Intentionally omitted (not needed for personal use):
|
||||
Intentionally omitted for local tool execution (not needed for personal use):
|
||||
|
||||
- Trust tiers / security levels
|
||||
- Cryptographic signing
|
||||
- Container isolation / sandboxing
|
||||
- Certification testing
|
||||
- Distribution packaging
|
||||
- PII redaction
|
||||
- Audit logging
|
||||
- Provider capability negotiation
|
||||
|
||||
**Why?** This is a personal tool builder. You write the tools, you run the tools, you accept the responsibility. Just like any bash script you write.
|
||||
|
||||
> **Note**: Some features were later added for the **registry** (community tool sharing):
|
||||
> - Trust tiers → Publisher trust scores and badges
|
||||
> - Security scanning → Scrutiny system with AI review
|
||||
> - Audit logging → Admin audit trail for moderation actions
|
||||
> - Distribution → Registry publishing with version management
|
||||
|
||||
## Dependencies
|
||||
|
||||
Required:
|
||||
- Python 3.10+
|
||||
- PyYAML
|
||||
- urwid (for TUI)
|
||||
- PySide6 (for GUI)
|
||||
|
||||
Optional fallbacks:
|
||||
- python3-newt/snack (simpler TUI)
|
||||
- dialog/whiptail (basic TUI)
|
||||
Optional (for web/registry):
|
||||
- Flask
|
||||
- SQLite with FTS5
|
||||
|
||||
Legacy TUI (no longer primary):
|
||||
- urwid
|
||||
- python3-newt/snack
|
||||
|
||||
## Example Workflow
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# Meta-Tools: Tools That Call Other Tools
|
||||
|
||||
> **Document Status (January 2026)**: The `tool` step type is implemented and works as described.
|
||||
> The CLI dependency commands (`cmdforge install --deps`, `cmdforge check`) are not yet implemented.
|
||||
> Tools can still use `tool` steps, but dependency resolution is manual.
|
||||
|
||||
Meta-tools are CmdForge tools that can invoke other tools as steps in their workflow. This enables powerful composition and reuse of existing tools.
|
||||
|
||||
## Step Type: `tool`
|
||||
|
|
|
|||
|
|
@ -1,5 +1,9 @@
|
|||
# CmdForge Project Overview
|
||||
|
||||
> **Document Status (January 2026)**: This overview is mostly accurate but the source structure
|
||||
> section is outdated. The TUI has been replaced by a PySide6 GUI. Database now has 25+ tables.
|
||||
> For current architecture, see `src/cmdforge/` directly.
|
||||
|
||||
This document provides a comprehensive overview of the CmdForge project structure, components, and how everything fits together.
|
||||
|
||||
## What is CmdForge?
|
||||
|
|
@ -32,52 +36,68 @@ See `docs/diagrams/` for visual representations:
|
|||
|
||||
```
|
||||
src/cmdforge/
|
||||
├── cli.py # Entry point, subcommand routing
|
||||
├── cli/ # CLI commands
|
||||
│ ├── __init__.py # Entry point, subcommand routing
|
||||
│ └── registry_commands.py # Registry CLI commands
|
||||
├── tool.py # Tool dataclasses, YAML loading
|
||||
├── runner.py # Step execution engine
|
||||
├── providers.py # AI provider abstraction
|
||||
├── profiles.py # AI persona profiles
|
||||
├── config.py # Global configuration
|
||||
├── manifest.py # Tool manifest handling
|
||||
│
|
||||
├── gui/ # PySide6 Desktop GUI (primary UI)
|
||||
│ ├── main_window.py # Main application window
|
||||
│ ├── pages/ # Tools, Registry, Providers, Profiles pages
|
||||
│ ├── dialogs/ # Step editors, Publish, Connect dialogs
|
||||
│ └── workers/ # Background threads for API calls
|
||||
│
|
||||
├── registry/ # Registry API Server
|
||||
│ ├── app.py # Flask API application
|
||||
│ ├── db.py # Database operations, FTS5 search
|
||||
│ ├── app.py # Flask API with 100+ endpoints
|
||||
│ ├── db.py # Database operations, FTS5 search (25+ tables)
|
||||
│ ├── rate_limit.py # API rate limiting
|
||||
│ ├── sync.py # Git sync for tool submissions
|
||||
│ ├── categorize.py # Auto-categorization
|
||||
│ └── similarity.py # Similar tool recommendations
|
||||
│ ├── scrutiny.py # Automated code analysis
|
||||
│ ├── similarity.py # Duplicate detection
|
||||
│ └── sync.py # Git sync for tool submissions
|
||||
│
|
||||
├── web/ # Web UI Application
|
||||
│ ├── app.py # Flask web app, Sentry integration
|
||||
│ ├── app.py # Flask web app
|
||||
│ ├── routes.py # Page routes and handlers
|
||||
│ ├── auth.py # Password hashing, login/register
|
||||
│ ├── sessions.py # Session management
|
||||
│ ├── docs_content.py # Documentation text content
|
||||
│ ├── seo.py # Sitemap, robots.txt
|
||||
│ ├── filters.py # Jinja template filters
|
||||
│ ├── forum/ # Forum blueprint
|
||||
│ ├── templates/ # Jinja HTML templates
|
||||
│ └── static/ # CSS, JS, images
|
||||
│ └── static/ # CSS (Tailwind), JS, images
|
||||
│
|
||||
├── registry_client.py # CLI client for registry API
|
||||
├── resolver.py # Dependency resolution
|
||||
│
|
||||
├── ui.py # TUI dispatcher
|
||||
├── ui_urwid.py # urwid TUI implementation
|
||||
└── ui_snack.py # newt/snack TUI fallback
|
||||
└── registry_client.py # CLI client for registry API
|
||||
```
|
||||
|
||||
## Database Schema
|
||||
|
||||
SQLite database at `data/cmdforge.db`:
|
||||
SQLite database at `~/.cmdforge/registry.db` (or via `CMDFORGE_REGISTRY_DB` env var):
|
||||
|
||||
| Table | Purpose |
|
||||
|-------|---------|
|
||||
| `publishers` | User accounts (username, email, password_hash) |
|
||||
| `tools` | Published tools (name, owner, description, config) |
|
||||
| `publishers` | User accounts with roles, banning, verification |
|
||||
| `tools` | Published tools with moderation status, fork tracking |
|
||||
| `api_tokens` | Authentication tokens for API access |
|
||||
| `download_stats` | Tool download tracking |
|
||||
| `pageviews` | Analytics for tool detail pages |
|
||||
| `download_stats` | Tool download tracking by date |
|
||||
| `reviews` | Tool reviews with 1-5 star ratings |
|
||||
| `review_votes` | Helpful/unhelpful votes on reviews |
|
||||
| `tool_issues` | Bug, security, compatibility issue reports |
|
||||
| `collections` | Curated tool groups |
|
||||
| `announcements` | Admin announcements |
|
||||
| `featured_tools` | Featured tool placement |
|
||||
| `featured_contributors` | Featured publisher placement |
|
||||
| `reports` | Abuse reports for moderation |
|
||||
| `audit_log` | Admin action audit trail |
|
||||
| `pairing_requests` | App pairing flow |
|
||||
| `web_sessions` | Session storage |
|
||||
| `consents` | User consent for analytics/ads |
|
||||
| `pageviews` | Analytics tracking |
|
||||
| `tools_fts` | Full-text search index (FTS5) |
|
||||
| `tool_stats` | Cached tool statistics |
|
||||
| `publisher_stats` | Cached publisher statistics |
|
||||
| `registry_settings` | Runtime-configurable settings |
|
||||
|
||||
## API Endpoints
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
# Provider Setup Guide
|
||||
|
||||
> **Document Status (January 2026)**: This guide is current and accurate. Provider benchmarks
|
||||
> may vary based on model updates. Use `cmdforge providers install` for the latest setup.
|
||||
|
||||
CmdForge works with any AI CLI tool that accepts input via stdin or arguments. This guide covers setup for the most popular providers.
|
||||
|
||||
## Provider Comparison
|
||||
|
|
|
|||
|
|
@ -1,5 +1,11 @@
|
|||
# CmdForge Registry Design
|
||||
|
||||
> **Document Status (January 2026)**: This is the original design document used to build the registry.
|
||||
> Phases 1-4 and 6-8 are complete. Phase 5 (Project Dependencies) is partially implemented.
|
||||
> Many features beyond this spec have been added (reviews, issues, fork tracking, scrutiny, admin
|
||||
> moderation). See the Implementation Phases section for current status. For the latest
|
||||
> documentation, see the project-docs system.
|
||||
|
||||
## Purpose
|
||||
Build a centralized registry for CmdForge to enable discovery, publishing, dependency management, and future curation at scale.
|
||||
|
||||
|
|
@ -1969,55 +1975,116 @@ def render_readme_safe(readme_raw: str) -> str:
|
|||
|
||||
## Implementation Phases
|
||||
|
||||
### Phase 1: Foundation
|
||||
- Define `cmdforge.yaml` manifest format
|
||||
- Implement tool resolution order (local → global → registry)
|
||||
- Create CmdForge-Registry repo on Gitea (bootstrap)
|
||||
- Add 3-5 example tools to seed the registry
|
||||
> **Status as of January 2026**: Phases 1-4 and 6-8 are complete. Phase 5 is partially complete.
|
||||
|
||||
### Phase 2: Core Backend
|
||||
- Set up Flask/FastAPI project structure
|
||||
- Implement SQLite database schema
|
||||
- Build core API endpoints (list, search, get, download)
|
||||
- Implement webhook receiver for Gitea sync
|
||||
- Set up HMAC verification
|
||||
### Phase 1: Foundation ✅ Complete
|
||||
- [x] Define `cmdforge.yaml` manifest format
|
||||
- [x] Implement tool resolution order (local → global → registry)
|
||||
- [x] Create CmdForge-Registry repo on Gitea (bootstrap)
|
||||
- [x] Add 3-5 example tools to seed the registry (233+ Fabric patterns imported)
|
||||
|
||||
### Phase 3: CLI Commands
|
||||
- `cmdforge registry search`
|
||||
- `cmdforge registry install`
|
||||
- `cmdforge registry info`
|
||||
- `cmdforge registry browse` (TUI)
|
||||
- Local index caching
|
||||
### Phase 2: Core Backend ✅ Complete
|
||||
- [x] Set up Flask/FastAPI project structure
|
||||
- [x] Implement SQLite database schema (25+ tables including FTS5, reviews, issues, audit)
|
||||
- [x] Build core API endpoints (list, search, get, download)
|
||||
- [x] Implement webhook receiver for Gitea sync
|
||||
- [x] Set up HMAC verification
|
||||
|
||||
### Phase 4: Publishing
|
||||
- Publisher registration (web UI)
|
||||
- Token management
|
||||
- `cmdforge registry publish` command
|
||||
- PR creation via Gitea API
|
||||
- CI validation workflows
|
||||
### Phase 3: CLI Commands ✅ Complete
|
||||
- [x] `cmdforge registry search` (with faceted search, tags, categories, owner, date range)
|
||||
- [x] `cmdforge registry install`
|
||||
- [x] `cmdforge registry info`
|
||||
- [x] `cmdforge registry browse` (opens PySide6 GUI)
|
||||
- [x] Local index caching
|
||||
- [x] `cmdforge registry tags` (list available tags)
|
||||
- [x] `cmdforge registry uninstall`
|
||||
- [x] `cmdforge registry my-tools`
|
||||
- [x] `cmdforge registry status`
|
||||
- [x] `cmdforge registry config` (admin settings)
|
||||
|
||||
### Phase 5: Project Dependencies
|
||||
- `cmdforge install` (from manifest)
|
||||
- `cmdforge add` command
|
||||
- Runtime override application
|
||||
- Dependency resolution
|
||||
### Phase 4: Publishing ✅ Complete
|
||||
- [x] Publisher registration (web UI)
|
||||
- [x] Token management
|
||||
- [x] `cmdforge registry publish` command (with dry-run, version bump, similarity warnings)
|
||||
- [x] PR creation via Gitea API
|
||||
- [x] CI validation workflows
|
||||
- [x] App pairing/connection flow (polling-based, replaces manual token entry)
|
||||
- [x] Connected apps management
|
||||
|
||||
### Phase 6: Smart Features
|
||||
- SQLite FTS5 search index
|
||||
- AI-powered auto-categorization
|
||||
- Duplicate/similarity detection
|
||||
- Security scanning
|
||||
### Phase 5: Project Dependencies ⚠️ Partial
|
||||
- [ ] `cmdforge install` (from manifest) - Not implemented
|
||||
- [ ] `cmdforge add` command - Not implemented
|
||||
- [ ] Runtime override application - Not implemented
|
||||
- [ ] Dependency resolution - Not implemented
|
||||
- [x] Individual tool install via `cmdforge registry install`
|
||||
|
||||
### Phase 7: Full Web UI
|
||||
- Landing page
|
||||
- Tool browsing/search pages
|
||||
- Tool detail pages with README rendering
|
||||
- Publisher dashboard
|
||||
- Documentation/tutorials section
|
||||
### Phase 6: Smart Features ✅ Complete
|
||||
- [x] SQLite FTS5 search index (with prefix matching)
|
||||
- [x] AI-powered auto-categorization
|
||||
- [x] Duplicate/similarity detection
|
||||
- [x] Security scanning (scrutiny system)
|
||||
- [x] AI-powered secondary review (scrutiny-ai-review integration)
|
||||
- [x] Auto-approve/review/reject decision logic
|
||||
- [x] Confidence-based moderation
|
||||
|
||||
### Phase 8: Polish & Scale
|
||||
- Rate limiting
|
||||
- Abuse reporting
|
||||
- Analytics integration
|
||||
- Performance optimization
|
||||
- Monitoring/alerting
|
||||
### Phase 7: Full Web UI ✅ Complete
|
||||
- [x] Landing page (with featured tools, tutorials, contributor spotlight)
|
||||
- [x] Tool browsing/search pages (with faceted filters)
|
||||
- [x] Tool detail pages with README rendering (plus reviews, issues, versions, forks)
|
||||
- [x] Publisher dashboard (tools, tokens, settings)
|
||||
- [x] Documentation/tutorials section
|
||||
- [x] Admin dashboard (pending queue, publishers, reports, scrutiny, settings)
|
||||
- [x] Forum (categories, topics, replies)
|
||||
- [x] Collections pages
|
||||
- [x] Publisher profiles with trust scores and badges
|
||||
|
||||
### Phase 8: Polish & Scale ✅ Complete
|
||||
- [x] Rate limiting
|
||||
- [x] Abuse reporting
|
||||
- [x] Analytics integration (pageviews, consent management)
|
||||
- [x] Performance optimization
|
||||
- [x] Monitoring/alerting (Sentry integration)
|
||||
- [x] Audit logging
|
||||
- [x] Role-based access control (user, moderator, admin)
|
||||
- [x] Publisher banning/unbanning
|
||||
- [x] Review voting and flagging
|
||||
- [x] Issue tracking (bug, security, compatibility)
|
||||
|
||||
## Features Implemented Beyond Original Design
|
||||
|
||||
The following features were added during development but not in the original design:
|
||||
|
||||
### Reviews & Ratings System
|
||||
- 1-5 star ratings with text reviews
|
||||
- Helpful/unhelpful voting on reviews
|
||||
- Review flagging for moderation
|
||||
- Rating aggregates and statistics
|
||||
- Publisher reputation scores
|
||||
|
||||
### Issue Tracking
|
||||
- Bug, security, and compatibility issue types
|
||||
- Severity levels (low, medium, high, critical)
|
||||
- Issue status workflow (open, confirmed, fixed, wontfix, duplicate)
|
||||
- Issue resolution with notes
|
||||
|
||||
### Fork Tracking
|
||||
- Track original tool when forking (`forked_from` field)
|
||||
- Store `forked_version` for version tracking
|
||||
- Display fork information in GUI and web
|
||||
|
||||
### Scrutiny System (Automated Vetting)
|
||||
- Automated security/compatibility analysis on publish
|
||||
- AI-powered secondary review
|
||||
- Confidence-based approval decisions
|
||||
- Admin scrutiny dashboard with statistics
|
||||
|
||||
### Trust & Badges
|
||||
- Publisher trust scores
|
||||
- Achievement badges
|
||||
- Download milestones
|
||||
|
||||
### PySide6 Desktop GUI
|
||||
- Modern desktop GUI replacing urwid TUI
|
||||
- Tool Builder with visual form editor
|
||||
- AI-assisted code generation for code steps
|
||||
- AI persona profiles system
|
||||
|
|
|
|||
|
|
@ -1,5 +1,10 @@
|
|||
# CmdForge Web UI Design
|
||||
|
||||
> **Document Status (January 2026)**: This is the original design document used to build the web UI.
|
||||
> The implementation is complete with additional features beyond this spec. See the Phase 7
|
||||
> Implementation Checklist below for current status. For the latest documentation, see the
|
||||
> project-docs system.
|
||||
|
||||
## Purpose
|
||||
Deliver a professional web front-end that explains CmdForge, helps users discover tools, and supports a collaborative ecosystem. The site should drive sustainable revenue without undermining trust or usability.
|
||||
|
||||
|
|
@ -1162,123 +1167,174 @@ Sitemap: https://cmdforge.dev/sitemap.xml
|
|||
|
||||
## Phase 7 Implementation Checklist
|
||||
|
||||
### 7.1 Foundation & Setup
|
||||
- [ ] Set up Flask project structure with blueprints
|
||||
- [ ] Configure Jinja2 templates with base layout
|
||||
- [ ] Integrate Tailwind CSS (build pipeline)
|
||||
- [ ] Set up static asset handling (CSS, JS, images)
|
||||
- [ ] Configure development/production environments
|
||||
- [ ] Set up database models for web-specific tables
|
||||
> **Status as of January 2026**: Phase 7 is complete with most items implemented. See notes for partial items.
|
||||
|
||||
### 7.2 Core Templates & Components
|
||||
- [ ] Create base template with header/footer
|
||||
- [ ] Implement navigation component (desktop + mobile)
|
||||
- [ ] Build reusable card components (tool, tutorial, contributor)
|
||||
- [ ] Create form components (inputs, buttons, dropdowns)
|
||||
- [ ] Implement callout/alert components
|
||||
- [ ] Build code block component with copy functionality
|
||||
- [ ] Create loading states (skeleton, spinner)
|
||||
- [ ] Implement responsive grid system
|
||||
### 7.1 Foundation & Setup ✅ Complete
|
||||
- [x] Set up Flask project structure with blueprints
|
||||
- [x] Configure Jinja2 templates with base layout
|
||||
- [x] Integrate Tailwind CSS (build pipeline)
|
||||
- [x] Set up static asset handling (CSS, JS, images)
|
||||
- [x] Configure development/production environments
|
||||
- [x] Set up database models for web-specific tables (25+ tables)
|
||||
|
||||
### 7.3 Landing Page
|
||||
- [ ] Hero section with install snippet
|
||||
- [ ] Three pillars section (Easy, Powerful, Community)
|
||||
- [ ] Featured tools grid (API integration)
|
||||
- [ ] Getting started tutorial cards
|
||||
- [ ] Featured contributor spotlight
|
||||
- [ ] Footer with links and optional ad zone
|
||||
### 7.2 Core Templates & Components ✅ Complete
|
||||
- [x] Create base template with header/footer
|
||||
- [x] Implement navigation component (desktop + mobile)
|
||||
- [x] Build reusable card components (tool, tutorial, contributor)
|
||||
- [x] Create form components (inputs, buttons, dropdowns)
|
||||
- [x] Implement callout/alert components
|
||||
- [x] Build code block component with copy functionality
|
||||
- [x] Create loading states (skeleton, spinner)
|
||||
- [x] Implement responsive grid system
|
||||
|
||||
### 7.4 Registry Pages (Ad-Free)
|
||||
- [ ] Tool browse page with search bar
|
||||
- [ ] Category dropdown filter
|
||||
- [ ] Sort options (popular, recent, name)
|
||||
- [ ] Pagination component
|
||||
- [ ] Tool card grid layout
|
||||
- [ ] Tool detail page with README rendering
|
||||
- [ ] Version selector in sidebar
|
||||
- [ ] Install command with copy
|
||||
- [ ] Report abuse button/modal
|
||||
- [ ] Category pages
|
||||
### 7.3 Landing Page ✅ Complete
|
||||
- [x] Hero section with install snippet
|
||||
- [x] Three pillars section (Easy, Powerful, Community)
|
||||
- [x] Featured tools grid (API integration)
|
||||
- [x] Getting started tutorial cards
|
||||
- [x] Featured contributor spotlight
|
||||
- [x] Footer with links and optional ad zone
|
||||
|
||||
### 7.5 Documentation & Tutorials
|
||||
- [ ] Docs landing page with section links
|
||||
- [ ] Tutorial listing page
|
||||
- [ ] Content page template with TOC
|
||||
- [ ] Scroll-spy for TOC highlighting
|
||||
- [ ] Code syntax highlighting (Prism/Highlight.js)
|
||||
- [ ] Video embed component (YouTube)
|
||||
- [ ] Related articles section
|
||||
- [ ] Sidebar ad placement (desktop only)
|
||||
### 7.4 Registry Pages (Ad-Free) ✅ Complete
|
||||
- [x] Tool browse page with search bar
|
||||
- [x] Category dropdown filter
|
||||
- [x] Sort options (popular, recent, name)
|
||||
- [x] Pagination component
|
||||
- [x] Tool card grid layout
|
||||
- [x] Tool detail page with README rendering
|
||||
- [x] Version selector in sidebar
|
||||
- [x] Install command with copy
|
||||
- [x] Report abuse button/modal
|
||||
- [x] Category pages
|
||||
- [x] **Added**: Reviews and ratings display
|
||||
- [x] **Added**: Issue tracking display
|
||||
- [x] **Added**: Fork information display
|
||||
- [x] **Added**: Publisher profile pages with trust scores
|
||||
- [x] **Added**: Collections pages
|
||||
|
||||
### 7.6 Authentication & Dashboard
|
||||
- [ ] Registration page and flow
|
||||
- [ ] Login page with error handling
|
||||
- [ ] Password reset flow (if implementing)
|
||||
- [ ] Session management (cookies, CSRF)
|
||||
- [ ] Dashboard layout with sidebar
|
||||
- [ ] My Tools tab with tool list
|
||||
- [ ] API Tokens tab with create/revoke
|
||||
- [ ] Settings tab with profile edit
|
||||
- [ ] Logout functionality
|
||||
### 7.5 Documentation & Tutorials ⚠️ Mostly Complete
|
||||
- [x] Docs landing page with section links
|
||||
- [x] Tutorial listing page
|
||||
- [x] Content page template with TOC
|
||||
- [ ] Scroll-spy for TOC highlighting (not implemented)
|
||||
- [x] Code syntax highlighting (Prism/Highlight.js)
|
||||
- [ ] Video embed component (YouTube) (not implemented)
|
||||
- [ ] Related articles section (limited implementation)
|
||||
- [x] Sidebar ad placement (desktop only)
|
||||
|
||||
### 7.7 Privacy & Consent
|
||||
- [ ] Cookie consent banner
|
||||
- [ ] Consent preferences modal
|
||||
- [ ] Consent state storage
|
||||
- [ ] Privacy policy page
|
||||
- [ ] Terms of service page
|
||||
- [ ] Honor consent in analytics/ad loading
|
||||
### 7.6 Authentication & Dashboard ✅ Complete
|
||||
- [x] Registration page and flow
|
||||
- [x] Login page with error handling
|
||||
- [ ] Password reset flow (placeholder only - not functional)
|
||||
- [x] Session management (cookies, CSRF)
|
||||
- [x] Dashboard layout with sidebar
|
||||
- [x] My Tools tab with tool list (version consolidation, ratings, issues)
|
||||
- [x] API Tokens tab with create/revoke (now "Connections" with app pairing)
|
||||
- [x] Settings tab with profile edit
|
||||
- [x] Logout functionality
|
||||
- [x] **Added**: Admin dashboard (pending queue, publishers, reports, scrutiny, settings)
|
||||
- [x] **Added**: Role-based access (user, moderator, admin)
|
||||
|
||||
### 7.8 Ads & Monetization
|
||||
- [ ] AdSense integration (account setup)
|
||||
- [ ] Ad container components
|
||||
- [ ] Lazy loading for ad scripts
|
||||
- [ ] Ad placement rules enforcement
|
||||
- [ ] Sponsored content styling (if applicable)
|
||||
- [ ] Donate page with donation options
|
||||
### 7.7 Privacy & Consent ⚠️ Mostly Complete
|
||||
- [x] Cookie consent banner (API exists)
|
||||
- [x] Consent preferences modal (API exists)
|
||||
- [x] Consent state storage
|
||||
- [x] Privacy policy page
|
||||
- [x] Terms of service page
|
||||
- [x] Honor consent in analytics/ad loading
|
||||
|
||||
### 7.9 SEO & Performance
|
||||
- [ ] Meta tags for all page types
|
||||
- [ ] Open Graph tags
|
||||
- [ ] Schema.org structured data
|
||||
- [ ] Sitemap generation
|
||||
- [ ] robots.txt configuration
|
||||
- [ ] Canonical URL implementation
|
||||
- [ ] Image optimization pipeline
|
||||
- [ ] CSS/JS minification
|
||||
- [ ] Critical CSS inlining
|
||||
- [ ] Lazy loading for images
|
||||
### 7.8 Ads & Monetization ⚠️ Partial
|
||||
- [ ] AdSense integration (account setup) (placeholders only)
|
||||
- [x] Ad container components
|
||||
- [x] Lazy loading for ad scripts
|
||||
- [x] Ad placement rules enforcement
|
||||
- [ ] Sponsored content styling (if applicable) (not implemented)
|
||||
- [x] Donate page with donation options
|
||||
|
||||
### 7.10 Testing & QA
|
||||
- [ ] Responsive design testing (all breakpoints)
|
||||
- [ ] Accessibility testing (WCAG 2.1 AA)
|
||||
- [ ] Cross-browser testing (Chrome, Firefox, Safari, Edge)
|
||||
- [ ] Performance testing (Lighthouse scores)
|
||||
- [ ] Form validation testing
|
||||
- [ ] Error state testing
|
||||
- [ ] Mobile usability testing
|
||||
### 7.9 SEO & Performance ✅ Mostly Complete
|
||||
- [x] Meta tags for all page types
|
||||
- [x] Open Graph tags
|
||||
- [ ] Schema.org structured data (not verified)
|
||||
- [x] Sitemap generation
|
||||
- [x] robots.txt configuration
|
||||
- [x] Canonical URL implementation (partial)
|
||||
- [ ] Image optimization pipeline (not implemented)
|
||||
- [x] CSS/JS minification (via Tailwind build)
|
||||
- [ ] Critical CSS inlining (not implemented)
|
||||
- [x] Lazy loading for images
|
||||
|
||||
### 7.11 Launch Preparation
|
||||
- [ ] Content creation (initial docs, tutorials)
|
||||
- [ ] Seed featured tools selection
|
||||
- [ ] Initial contributor spotlight
|
||||
- [ ] Analytics setup (privacy-respecting)
|
||||
- [ ] Error monitoring (Sentry or similar)
|
||||
- [ ] SSL certificate configuration
|
||||
- [ ] CDN setup (optional)
|
||||
- [ ] Backup and recovery procedures
|
||||
### 7.10 Testing & QA ⚠️ Ongoing
|
||||
- [x] Responsive design testing (all breakpoints)
|
||||
- [ ] Accessibility testing (WCAG 2.1 AA) (not formally verified)
|
||||
- [ ] Cross-browser testing (Chrome, Firefox, Safari, Edge) (not formally verified)
|
||||
- [ ] Performance testing (Lighthouse scores) (not formally verified)
|
||||
- [x] Form validation testing
|
||||
- [x] Error state testing
|
||||
- [x] Mobile usability testing
|
||||
|
||||
### 7.11 Launch Preparation ✅ Complete
|
||||
- [x] Content creation (initial docs, tutorials)
|
||||
- [x] Seed featured tools selection (233+ Fabric patterns)
|
||||
- [x] Initial contributor spotlight
|
||||
- [x] Analytics setup (privacy-respecting)
|
||||
- [x] Error monitoring (Sentry or similar)
|
||||
- [x] SSL certificate configuration (via Cloudflare)
|
||||
- [ ] CDN setup (optional) (not implemented)
|
||||
- [x] Backup and recovery procedures
|
||||
|
||||
## Features Implemented Beyond Original Checklist
|
||||
|
||||
### Admin Moderation System
|
||||
- Pending tools queue with approve/reject/request-changes workflow
|
||||
- Publisher management (ban/unban, role changes)
|
||||
- Report resolution workflow
|
||||
- Audit logging for all admin actions
|
||||
- Scrutiny dashboard with auto-vetting statistics
|
||||
- Registry settings management
|
||||
|
||||
### Forum/Community
|
||||
- Categories (General, Tutorials, Showcase, Help)
|
||||
- Topics within categories
|
||||
- Replies with threading
|
||||
- View counts
|
||||
- Honeypot spam protection
|
||||
|
||||
### Reviews & Ratings
|
||||
- 5-star rating system
|
||||
- Review text with title
|
||||
- Helpful/unhelpful voting
|
||||
- Review flagging
|
||||
- Average rating aggregates
|
||||
|
||||
### Issue Tracking
|
||||
- Bug, security, compatibility issue types
|
||||
- Severity levels
|
||||
- Status workflow (open, confirmed, fixed, wontfix, duplicate)
|
||||
- Resolution notes
|
||||
|
||||
## API Endpoints for Web UI
|
||||
|
||||
The web UI consumes these existing API endpoints:
|
||||
> **Note**: This section lists the originally planned endpoints. The actual implementation includes
|
||||
> 100+ endpoints. See `src/cmdforge/registry/app.py` for the complete API.
|
||||
|
||||
The web UI consumes these API endpoints:
|
||||
|
||||
**Public (read-only):**
|
||||
- `GET /api/v1/tools` - List tools with pagination/filters
|
||||
- `GET /api/v1/tools/search?q=...` - Search tools
|
||||
- `GET /api/v1/tools/search?q=...` - Search tools with facets
|
||||
- `GET /api/v1/tools/{owner}/{name}` - Tool details
|
||||
- `GET /api/v1/tools/{owner}/{name}/versions` - Version list
|
||||
- `GET /api/v1/tools/{owner}/{name}/forks` - Fork list
|
||||
- `GET /api/v1/tools/{owner}/{name}/reviews` - Review list
|
||||
- `GET /api/v1/tools/{owner}/{name}/issues` - Issue list
|
||||
- `GET /api/v1/tools/{owner}/{name}/rating` - Rating summary
|
||||
- `GET /api/v1/categories` - Category list
|
||||
- `GET /api/v1/tags` - Tag list with counts
|
||||
- `GET /api/v1/collections` - Collection list
|
||||
- `GET /api/v1/collections/{name}` - Collection details
|
||||
- `GET /api/v1/stats/popular` - Popular tools
|
||||
- `GET /api/v1/publishers/{slug}/stats` - Publisher stats
|
||||
- `GET /api/v1/index.json` - Full index for offline use
|
||||
|
||||
**Authenticated (dashboard):**
|
||||
- `POST /api/v1/login` - User login (returns session)
|
||||
|
|
@ -1288,13 +1344,43 @@ The web UI consumes these existing API endpoints:
|
|||
- `POST /api/v1/tokens` - Create new token
|
||||
- `DELETE /api/v1/tokens/{id}` - Revoke token
|
||||
- `PUT /api/v1/me/settings` - Update profile
|
||||
- `POST /api/v1/me/password` - Change password
|
||||
|
||||
**New endpoints for web UI:**
|
||||
**App Pairing (replaces manual token entry):**
|
||||
- `POST /api/v1/pairing/initiate` - Start pairing flow
|
||||
- `GET /api/v1/pairing/check/{username}` - Check pairing status
|
||||
- `GET /api/v1/connected-apps` - List connected apps
|
||||
- `DELETE /api/v1/connected-apps/{app_id}` - Remove app
|
||||
|
||||
**Reviews & Issues:**
|
||||
- `POST /api/v1/tools/{owner}/{name}/reviews` - Submit review
|
||||
- `PUT /api/v1/reviews/{id}` - Edit review
|
||||
- `DELETE /api/v1/reviews/{id}` - Delete review
|
||||
- `POST /api/v1/reviews/{id}/vote` - Vote on review
|
||||
- `POST /api/v1/reviews/{id}/flag` - Flag review
|
||||
- `POST /api/v1/tools/{owner}/{name}/issues` - Report issue
|
||||
- `PUT /api/v1/issues/{id}` - Update issue
|
||||
- `POST /api/v1/issues/{id}/resolve` - Resolve issue
|
||||
|
||||
**Content & Featured:**
|
||||
- `GET /api/v1/featured/tools` - Curated featured tools
|
||||
- `GET /api/v1/featured/contributors` - Featured contributor
|
||||
- `GET /api/v1/content/announcements` - Site announcements
|
||||
- `POST /api/v1/reports` - Abuse report submission
|
||||
|
||||
**Admin Endpoints (moderator/admin role required):**
|
||||
- `GET /api/v1/admin/tools/pending` - Pending moderation queue
|
||||
- `POST /api/v1/admin/tools/{id}/approve` - Approve tool
|
||||
- `POST /api/v1/admin/tools/{id}/reject` - Reject tool
|
||||
- `POST /api/v1/admin/tools/{id}/request-changes` - Request changes
|
||||
- `GET /api/v1/admin/publishers` - Publisher management
|
||||
- `POST /api/v1/admin/publishers/{id}/ban` - Ban publisher
|
||||
- `GET /api/v1/admin/reports` - Report queue
|
||||
- `GET /api/v1/admin/scrutiny` - Scrutiny dashboard
|
||||
- `GET /api/v1/admin/audit-log` - Audit log
|
||||
- `GET /api/v1/admin/settings` - Registry settings
|
||||
- `PUT /api/v1/admin/settings/{key}` - Update setting
|
||||
|
||||
## Diagram References
|
||||
|
||||
- Landing page mockup: `discussions/diagrams/cmdforge-registry_rob_6.svg`
|
||||
|
|
|
|||
Loading…
Reference in New Issue