Files
devin/hack_plan.md
T
2025-09-02 18:45:00 +01:00

120 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
Below is a “readytohack” checklist that covers everything youll need to set up before the hack day starts.
Its broken into three phases
* **preplanning**
* **environment & tooling**
* **projectspecific prep**
---
## 1️⃣ PrePlanning (What were building)
| Item | Why it matters | How to decide |
|------|----------------|---------------|
| **Problem statement + success metric** | Keeps the hack focused; avoids “well just keep adding features” trap. | Write a onesentence goal and a concrete KPI (e.g., 80 % of user intents correctly handled). |
| **Scope & MVP** | Defines what you can finish in 2448 h. | List core features, then prune until only 35 “musthave” items remain. |
| **User stories / personas** | Helps surface edge cases early. | Draft 23 short scenarios (e.g., “As a student, I want the agent to schedule a meeting”). |
| **Success criteria & demo plan** | Gives you a clear finish line and a demo script. | Write bullet points for each feature that can be shown in the final demo. |
| **Team roles** | Prevents overlap and gaps (e.g., one person on NLP, another on UI). | Assign: Lead dev, AI/ML engineer, frontend/UI, documentation & testing. |
---
## 2️⃣ Environment & Tooling
### UV To handle virtual environment, package and dependancy handling.
> uv add {package name}
### Language Model
| Service | What you need | Notes |
|---------|---------------|-------|
| local running LLMs | lmstudio | Keeping things local (for LLMs) is one of the Goals. |
### Agent Framework
TBC, need to plan this
Think about agent LLMs and tool callers
### Development Tools
| Tool | Purpose |
|------|---------|
| VSCode / Zed | IDE with Python support. |
| ruff | Autoformatting & linting. |
| pytest | Quick unit tests for critical functions. |
### Data / Knowledge Base
- **Static docs**: Markdown/HTML files you want the agent to read.
- **Vector store**: Use FAISS, Pinecone, or Chroma for embeddings if youll do RAG.
- **Sample user intents**: Create a JSON file with example queries.
---
## 3️⃣ ProjectSpecific Prep
### 1. Architecture Sketch
```
┌─────────────────────┐ ┌───────────────┐
│ Frontend UI / CLI │ │ API Layer │
├─────────────────────┤ ├───────────────┤
│ Request handler │◄─►│ Agent core │
├─────────────────────┤ │ (MCP) │
│ State manager │ └───────────────┘
└─────────────────────┘
```
- Decide: CLI vs web app? Quick prototype → Flask or FastAPI + `uvicorn`.
### 2. Prompt Templates
- Draft **system**, **user**, and **assistant** messages.
- Keep them generic; add placeholders for dynamic content (e.g., `{user_name}`).
### 3. Agent Workflow
| Step | Action | Notes |
|------|--------|-------|
| 1 | Parse user input | Use regex or simple NLP to detect intent. |
| 2 | Retrieve context | Query vector store if needed. |
| 3 | Formulate LLM prompt | Inject retrieved docs + system instructions. |
| 4 | Call LLM | Get response, optionally chain multiple calls (e.g., “verify facts”). |
| 5 | Postprocess & output | Format as JSON or plain text for UI. |
### 4. Testing Strategy
- **Unit tests**: Prompt generation, vector lookup.
- **Integration test**: Endtoend request → response cycle.
- Run tests nightly in a CI (GitHub Actions) if time permits.
### 5. Security & RateLimiting
- Sanitize user input before sending to LLM (avoid injection attacks).
---
## 4️⃣ DayofHack Checklist
| Time | Task |
|------|------|
| **030 min** | Finalise repo, install deps, load env vars. |
| **3060 min** | Build minimal UI (CLI or web). |
| **12 h** | Implement core agent loop & prompt templates. |
| **23 h** | Wire vector store / RAG if chosen. |
| **34 h** | Write unit tests for the most critical parts. |
| **45 h** | Run integration test, debug. |
| **56 h** | Prepare demo script; record or capture demo. |
| **6+ h** | Polish README, add usage instructions, commit final changes. |
---
## 5️⃣ PostHack
1. **Documentation** add a `docs/` folder with architecture and prompt design.
2. **License** choose MIT / Apache-2.0 if you want to share.
3. **Deploy (optional)** push to Render, Fly.io, or a Docker container on Heroku.
4. **Feedback loop** ask friends for usability testing; iterate.
---
## 🎉 Final Tips
- **Keep it simple** you can always extend later.
- **Version control** commit often; tag a “readytodemo” commit.
- **Timeboxing** set 15min timers for each feature to avoid overengineering.
- **Have fun** the best hacks happen when the team is laughing and learning.
Good luck with your hack day! 🚀