From 0f50db1e9ca7394478c0be9dd365f9b6d6d10957 Mon Sep 17 00:00:00 2001 From: null Date: Tue, 19 May 2026 01:18:46 -0500 Subject: [PATCH] docs: add project manifest and planning docs (batch 0) --- DEVELOPMENT_LOG.md | 8 +++++++ FUTURE.md | 26 +++++++++++++++++++++++ HISTORY.md | 7 +++++++ PROJECT.md | 52 ++++++++++++++++++++++++++++++++++++++++++++++ STRUCTURE.md | 44 +++++++++++++++++++++++++++++++++++++++ 5 files changed, 137 insertions(+) create mode 100644 DEVELOPMENT_LOG.md create mode 100644 FUTURE.md create mode 100644 HISTORY.md create mode 100644 PROJECT.md create mode 100644 STRUCTURE.md diff --git a/DEVELOPMENT_LOG.md b/DEVELOPMENT_LOG.md new file mode 100644 index 0000000..578c9b6 --- /dev/null +++ b/DEVELOPMENT_LOG.md @@ -0,0 +1,8 @@ +# Pipeline — Development Log + +## 2026-05-19 — Project Initialized (Ripley) +- Created Forgejo repo `null/Pipeline` +- Copied Mission Control v0.0.4 codebase as base +- Set up dev branch, pushed to origin +- Created PROJECT.md, FUTURE.md, HISTORY.md, STRUCTURE.md +- Next: Phase 1 — Forgejo API integration backend \ No newline at end of file diff --git a/FUTURE.md b/FUTURE.md new file mode 100644 index 0000000..51ec6c0 --- /dev/null +++ b/FUTURE.md @@ -0,0 +1,26 @@ +# Pipeline — Up Next + +## Phase 1: Backend — Forgejo API Integration +- [ ] Forgejo API client service (`backend/app/services/forgejo/`) +- [ ] DB models: `ForgejoRepo`, `ForgejoIssue`, `ForgejoLabel` +- [ ] Alembic migration for new models +- [ ] API endpoints: `/api/v1/forgejo/repos`, `/api/v1/forgejo/issues` +- [ ] Config: `FORGEJO_URL`, `FORGEJO_TOKEN`, `FORGEJO_REPOS` env vars +- [ ] On-demand sync endpoint: `POST /api/v1/forgejo/sync` +- [ ] Scheduled sync (background task or cron) + +## Phase 2: Frontend — Issues Panel +- [ ] New "Issues" sidebar link and route +- [ ] Issue list page with repo/label/priority filters +- [ ] Issue detail page +- [ ] "Create Task from Issue" button + +## Phase 3: Task Integration +- [ ] Link tasks to Forgejo issues (foreign key on task) +- [ ] Task detail view shows linked issue info +- [ ] Dashboard issue count widgets + +## Phase 4: Polish +- [ ] Forgejo webhook for real-time updates +- [ ] Issue status sync (open/closed) +- [ ] Auto-archive closed issues \ No newline at end of file diff --git a/HISTORY.md b/HISTORY.md new file mode 100644 index 0000000..3967254 --- /dev/null +++ b/HISTORY.md @@ -0,0 +1,7 @@ +# Pipeline — Version History + +## v0.0.1 — 2026-05-19 +- **Base:** Forked from openclaw-mission-control v0.0.4 +- **Repo:** Created on Forgejo (`null/Pipeline`) +- **Project:** Initialized with Forgejo issue integration plan +- **Status:** Codebase copied, not yet modified \ No newline at end of file diff --git a/PROJECT.md b/PROJECT.md new file mode 100644 index 0000000..7779f48 --- /dev/null +++ b/PROJECT.md @@ -0,0 +1,52 @@ +# Pipeline — Project Manifest + +**What:** Mission Control fork with Forgejo issue integration. Single pane of glass for project management — pull issues from our Forgejo repos, view them alongside MC tasks, and create work from them. + +**Why:** Stop bouncing between Forgejo and MC. Issues live in Forgejo, work lives in MC. Pipeline bridges them. + +**Stack:** Python/FastAPI (backend) + Next.js 15 (frontend) + PostgreSQL 16 + Redis 7 + Docker Compose +**Base:** Forked from `abhi1693/openclaw-mission-control` v0.0.4 +**Remote:** `ssh://forgejo/null/Pipeline.git` | **Branches:** main (stable), dev (working) +**Ports:** 3030 (frontend), 8001 (backend), 5433 (postgres), 6379 (redis) +**Auth:** Local mode, token in .env + +## Architecture Decisions + +1. **Forgejo issues are read-only in Pipeline** — Forgejo is the source of truth for issue content. Pipeline mirrors them for display and creates MC tasks linked to them. No bidirectional sync. +2. **"Create Task from Issue" flow** — User selects a Forgejo issue, Pipeline creates an MC task with a foreign key back to the issue. Task status is managed in Pipeline; issue content stays in Forgejo. +3. **No new languages** — Python/FastAPI on backend, TypeScript/Next.js on frontend. Same as base MC. + +## Configured Forgejo Repos + +| Repo | Forgejo URL | Issues | +|------|-------------|--------| +| BillTracker | `null/BillTracker` | 34 | +| Queue-North-Website | `null/Queue-North-Website` | 7 | +| Mission-Control | `null/Mission-Control` | 0 | +| relationship-app | `null/relationship-app` | 0 | +| Pipeline | `null/Pipeline` | 0 | + +## Phase Plan + +### Phase 1: Backend — Forgejo API Integration +- Forgejo API client service (fetch repos, issues, labels) +- New DB models: `ForgejoRepo`, `ForgejoIssue` (cached mirrors) +- API endpoints: `/api/v1/forgejo/repos`, `/api/v1/forgejo/issues` +- Config: which repos to track (env vars or DB settings) +- Scheduled sync (pull issues on interval or on-demand) + +### Phase 2: Frontend — Issues Panel +- New "Issues" page in the dashboard sidebar +- Issue list view (filterable by repo, label, priority) +- Issue detail view with "Create Task from Issue" button +- Link from tasks back to Forgejo issues + +### Phase 3: Task Integration +- "Create Task from Issue" creates an MC task linked to the Forgejo issue +- Task detail view shows linked Forgejo issue info +- Dashboard shows issue counts alongside task counts + +### Phase 4: Polish +- Webhook support for real-time Forgejo issue updates +- Issue status badges (open/closed) synced +- Auto-archive closed issues \ No newline at end of file diff --git a/STRUCTURE.md b/STRUCTURE.md new file mode 100644 index 0000000..34cd965 --- /dev/null +++ b/STRUCTURE.md @@ -0,0 +1,44 @@ +# Pipeline — Directory Structure + +## Agent Ownership + +| Agent | Owns | +|-------|------| +| **Neo** | `backend/` — all Python/FastAPI code, models, services, API routes, migrations | +| **Scarlett** | `frontend/` — all React/Next.js/TypeScript code, components, pages, styles | +| **Private_Hudson** | Security review of all code before merge | +| **Bishop** | Build verification, docs, version bumps | + +## Key Directories + +``` +Pipeline/ +├── backend/ +│ ├── app/ +│ │ ├── api/ # FastAPI route handlers (Neo) +│ │ ├── core/ # Config, auth, security (Neo) +│ │ ├── db/ # DB session, CRUD, pagination (Neo) +│ │ ├── models/ # SQLModel/SQLAlchemy models (Neo) +│ │ ├── schemas/ # Pydantic schemas (Neo) +│ │ └── services/ # Business logic services (Neo) +│ │ └── forgejo/ # NEW — Forgejo API client (Neo) +│ └── migrations/ # Alembic migrations (Neo) +├── frontend/ +│ ├── src/ +│ │ ├── api/ # API client code (auto-generated + manual) +│ │ ├── app/ # Next.js App Router pages (Scarlett) +│ │ ├── components/ # React components (Scarlett) +│ │ └── lib/ # Utilities, hooks (Scarlett) +│ └── ... +├── compose.yml # Docker Compose (shared) +├── PROJECT.md # This project's manifest +├── FUTURE.md # What's next +├── HISTORY.md # What shipped +├── STRUCTURE.md # This file +└── DEVELOPMENT_LOG.md # Agent activity log +``` + +## Cross-Cutting Concerns +- **Forgejo API client** — `backend/app/services/forgejo/` handles all Forgejo communication +- **Issue-to-Task linking** — Task model gets `forgejo_issue_id` field, backend handles the join +- **Frontend issue pages** — New routes under `/issues/` in Next.js App Router \ No newline at end of file