Repository navigation
Conversation
Replace the stale README with a current overview: what the service does, architecture diagram, quick start (incl. split LLM/embedding backends), CLI, the full API surface (buddy, orientation, diagram, phase, starter work, insights, vector-db), key concepts, configuration and dev workflow. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Hosting Ollama on consumer hardware no longer holds up for the project's size. Quick start now uses a minimal OpenAI .env, Anthropic and Ollama move to an "Other providers" section, and the config table is reordered. Notes that LLM_BACKEND must be set explicitly since unset still means Ollama. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
README is now a hero, feature list, quick start, architecture sketch and doc links, in the style of popular open-source repos. The detailed API tables, concepts and configuration (incl. Anthropic/Ollama setup) move to docs/api.md, docs/concepts.md and docs/configuration.md. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
| Try it from the terminal: | ||
|
|
||
| **Scope:** only text and PDF content are affected; code and image parsing are unchanged. For PDFs, the LLM is invoked **per page** (pages are already parsed independently), so semantic boundaries and context blocks are page-scoped, not whole-document-scoped. The batch endpoint `POST /api/v1/ingest/sync` (GitHub run sync) does not expose these flags and always uses the plain chunker — changing that would mean changing the batch wire contract with the backend, which is a separate decision. | ||
| ```bash | ||
| uv run python scripts/sprintstart.py ingest ./some/docs | ||
| uv run python scripts/sprintstart.py chat | ||
| ``` |
There was a problem hiding this comment.
These CLI commands do not support the current project-scoped API.
ChatClient.ask() sends only prompt and context, but ChatRequest requires projectId, so asking a question returns HTTP 422. The ingestion CLI also omits projectIds, making the ingested documents unreachable through project-scoped retrieval.
Please replace this example with working API requests that ingest with projectIds=[""] and chat with the same projectId. Alternatively, update both CLI commands to accept and forward the project ID before advertising this workflow.
Please verify the complete ingest → chat example against a running instance.
| | Method | Path | Purpose | | ||
| |---|---|---| | ||
| | `POST` | `/insights/knowledge-gaps/detect` | Documentation-coverage gaps per component. | | ||
| | `POST` | `/insights/faq/group`, `/classify`, `/groups/merge` | Group recurring questions, file a new one, propose merges. | |
There was a problem hiding this comment.
/classify and /groups/merge are listed as paths relative to /api/v1, but both belong to the /insights/faq router. Following the documented paths returns 404.
Please list all three paths explicitly:
- /insights/faq/group
- /insights/faq/classify
- /insights/faq/groups/merge
The chat surface is retired on the frontend (sprintstart-frontend#206) — /chat redirects to the buddy and nothing calls /api/v1/chat any more — so the service side goes in one piece rather than as a route that outlives the UI that stopped asking for it. What goes: the /api/v1/chat route with its SSE path, ChatAgent and ChatOrchestrator, the chat CLI (scripts/chat_cli.py, `sprintstart chat`) that was their only non-HTTP caller, ChatRequest/HistoryEntry and the legacy-field validator in schemas.py (the `prompt`/`context` acceptance existed for pre-rename clients), and the chat-only docstrings that referenced any of it. What stays, and why: the buddy runs on the same retrieval stack and the same SSE event shapes, so `agents/__init__.py` stays as the package root, `ChatFilters` still describes the buddy request's filters, and BuddyStreamEvent is untouched. The shared `chat_stream` client primitive keeps its tests — only its docstrings stopped claiming a chat agent. The README is deliberately left alone: it has an open rewrite (SprintStartProject#216), and folding prose about the service's entry points into a removal would make both harder to review.
Summary
docs/api.md: every endpoint (buddy, orientation, diagram, phase, starter work, insights, vector-db, sources) and the chat stream eventsdocs/concepts.md: project separation, hybrid retrieval, context-aware chunking, blueprintsdocs/configuration.md: provider setup (OpenAI, Anthropic, Ollama, split embeddings) and the variable tableLLM_BACKENDmust be set explicitly, since the code still falls back to Ollama when it is empty.Test plan
docs/api.mdagainst/docson a running instance🤖 Generated with Claude Code