You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-`questions`, `answers`, `scores`, `reports_and_feedback` (pre-pivot, may need cleanup)
140
-
-`container_sessions` (new)
134
+
**Alembic migrations** -- 10 migration files covering all tables. Note: 5 pre-pivot comprehension migrations remain in history (sessions, questions, answers, scores, reports_and_feedback) -- the backend code is removed but migration files are retained for history.
141
135
142
-
### Frontend (42 source files, 23 test files)
136
+
### Frontend (14 source files, 6 test files)
143
137
144
138
**Auth flow** -- stable:
145
139
-`OAuthCallback.tsx` -- handles GitHub OAuth redirect, exchanges code for token
@@ -154,31 +148,16 @@ Skills are mounted read-only into ephemeral containers via Docker volume binds.
@@ -239,14 +218,11 @@ Pre-pivot (still in tree, partially orphaned):
239
218
### Frontend integration
240
219
241
220
-**Frontend calls the right endpoints but hasn't been tested against a running backend.** The `containerApi.ts` client, `ContainerSession.tsx` SSE connection, and `TerminalOutput.tsx` renderer are built but only unit-tested with mocks.
242
-
-**No dashboard page exists.** The app routes from landing -> install -> settings -> session, but there's no `/dashboard` showing all installations and their sessions. (Referenced in project memory as a known gap.)
221
+
-**No dashboard page exists.** The app routes from landing -> install -> settings -> session, but there's no `/dashboard` showing all installations and their sessions.
243
222
244
-
### Cleanup needed
223
+
### Package cleanup
245
224
246
-
-**Pre-pivot comprehension components**: 15+ files in `apps/web/src/features/session/` (ChatPanel, ChatView, ChatMessage, ScoreCard, DiffViewer, AnswerInput, SessionHeader, etc.) with 17 test files are from the pre-pivot interactive Q&A approach. They are not used by the new container-based flow but remain in the tree.
247
-
-**Pre-pivot comprehension module**: `apps/api/src/helprs/modules/comprehension/` has empty directory structure (domain, application, infrastructure, presentation) with only `__pycache__`.
248
-
-**Pre-pivot billing module**: `apps/api/src/helprs/modules/billing/` is empty (only `__pycache__`).
249
-
-**Pre-pivot migrations**: `questions`, `answers`, `scores`, `reports_and_feedback` tables were created for the comprehension flow and are no longer needed by the container approach. They add schema weight without serving the current architecture.
225
+
-`react-diff-view` and `react-resizable-panels` remain in `package.json` but are no longer used by any component. They should be removed.
250
226
251
227
---
252
228
@@ -268,7 +244,7 @@ Pre-pivot (still in tree, partially orphaned):
4.**Logging and monitoring.** Structured logs for container lifecycle events are in place; add metrics (container count, duration, success rate) and alerting.
270
246
5.**Rate limiting per installation.** Current rate limits are per-IP; add per-installation limits to prevent abuse.
271
-
6.**Pre-pivot code cleanup.**Remove empty `comprehension` and `billing` modules, pre-pivot frontend components, and orphaned database migrations.
247
+
6.**Remove unused npm packages.**`react-diff-view`, `react-resizable-panels`, `refractor`, `react-markdown`, `remark-gfm` are leftover from the pre-pivot UI and no longer imported.
272
248
273
249
### P2 -- Feature expansion
274
250
@@ -285,7 +261,6 @@ Pre-pivot (still in tree, partially orphaned):
285
261
2.**Mobile responsive layout.** Terminal output and skill selection on small screens.
286
262
3.**Documentation site.** MkDocs config exists (`mkdocs.yml`) but is not deployed.
287
263
4.**Contributing guide for skill authors.** How to create a new skill, test it locally, submit a PR.
288
-
5.**Accessibility.**`useReducedMotion` hook exists but is not wired to all animated components.
289
264
290
265
---
291
266
@@ -325,9 +300,6 @@ Pre-pivot (still in tree, partially orphaned):
325
300
| Zustand | ^5.0.12 | State management |
326
301
| React Query | ^5.97.0 | Server state / data fetching |
Socratic comprehension sessions for pull requests. helPRs helps developers deeply understand code changes by guiding them through interactive question-and-answer sessions on PRs.
3
+
Pluggable AI skill runner for pull requests. helPRs spins up ephemeral Docker containers running Claude Code CLI to execute skills (comprehension quizzes, code reviews, security audits) against PRs and streams results back in real time.
4
+
5
+
**BYOK model** -- users provide their own Claude credentials. The backend never calls the Claude API directly; containers use the credentials natively.
4
6
5
7
## Quick Start
6
8
7
9
```bash
8
-
# Copy environment variables
9
-
cp .env.example .env
10
+
# Start all services (API :8000, Web :5173, Postgres :5432)
11
+
docker compose up --build
12
+
13
+
# Run tests
14
+
make test
10
15
11
-
#Start all services (api, web, db)
12
-
make dev
16
+
#Lint
17
+
make lint
13
18
```
14
19
15
-
Services:
16
-
-**API**: http://localhost:8000 (FastAPI + OpenAPI docs at `/docs`)
17
-
-**Web**: http://localhost:5173 (React + Vite)
18
-
-**DB**: PostgreSQL 16 on port 5432
20
+
## How It Works
19
21
20
-
## Development
21
-
22
-
```bash
23
-
make lint # Run ruff (backend) + eslint (frontend)
24
-
make test# Run pytest (backend) + vitest (frontend)
25
-
make build # Build production Docker images
26
-
make migrate # Run Alembic database migrations
27
-
```
22
+
1. GitHub PR event hits the webhook receiver
23
+
2. API posts a PR comment with a session link
24
+
3. User selects a skill (or auto-trigger if configured)
25
+
4. Backend spins up an ephemeral Docker container with Claude Code CLI
26
+
5. Container runs the skill against the PR
27
+
6. Results stream back via SSE passthrough to the frontend
28
+
7. Container is destroyed after completion or timeout
-**[docs/](docs/)** -- architecture, data models, API contracts, component inventory
55
+
-**[docs/adr-001-claude-code-container-pivot.md](docs/adr-001-claude-code-container-pivot.md)** -- architecture decision record for the container pivot
0 commit comments