Pipelinen parannuksia building blockeilla

This commit is contained in:
Jaakko Vanhala
2026-04-12 18:48:14 +03:00
parent c1a5f8aff5
commit b2ee8b9031
175 changed files with 13311 additions and 237 deletions

View File

@@ -0,0 +1,170 @@
# Tasks — Kipinä Agentic Studio → CrewAI
step_0_requirements:
description: |
REST API käyttäjähallinnalle SQLite-tietokannalla
expected_output: >-
requirements
agent: client
step_1_json_speksi:
description: |
**PROJECT NAME:** User Management REST API
**GOAL:** To develop a RESTful API for managing users using an SQLite database.
**CORE FEATURES:**
1. Register new users with username, email, and password.
2. Authenticate users to gain access to the system.
3. Update user profile information (email, password).
4. Delete existing users.
5. Retrieve all registered users.
6. Retrieve a specific user by ID.
7. Search for users based on partial usernames or emails.
**DATA MODEL:**
- **User:**
- UserID (Integer, Primary Key)
- Username (String, Unique)
- Email (String, Unique)
- PasswordHash (String)
**API ENDPOINTS:**
1. **POST /users/register**: Register a new user.
- Request Body:
{
"username": "johndoe",
"email": "john@example.com",
"password": "securepassword"
}
2. **POST /auth/login**: Authenticate a user and return a token.
- Request Body:
{
"username": "johndoe",
"password": "securepassword"
}
3. **PUT /users/{UserID}**: Update a specific user's profile.
- Path Parameter: UserID (Integer)
- Request Body:
{
"email": "newjohn@example.com",
"password": "newsecurepassword"
}
4. **DELETE /users/{UserID}**: Delete a specific user.
- Path Parameter: UserID (Integer)
5. **GET /users**: Retrieve all registered users.
6. **GET /users/{UserID}**: Retrieve a specific user by ID.
7. **GET /users/search?query={searchTerm}**: Search for users based on partial usernames or emails.
**CONSTRAINTS:**
- Must use SQLite as the database.
- No authentication is needed to view all users, but authentication is required to update or delete any user.
expected_output: >-
JSON-speksi
agent: manager
step_2_models_py:
description: |
Generated from spec: ["User"]
expected_output: >-
models.py
agent: data
step_3_schemas_py:
description: |
Generated from spec: ["User"]
expected_output: >-
schemas.py
agent: coder
step_4_main_py:
description: |
Generated from spec: ["User"]
expected_output: >-
main.py
agent: coder
step_5_test_main_py:
description: |
Generated from spec: ["User"]
expected_output: >-
test_main.py
agent: qa
step_6_pyproject_toml:
description: |
Generated from spec: ["User"]
expected_output: >-
pyproject.toml
agent: coder
step_7_dockerfile:
description: |
Generated from spec: ["User"]
expected_output: >-
Dockerfile
agent: tester
step_8_validointi:
description: |
validateProjectCode(files)
expected_output: >-
validointi
agent: qa
step_9_readme_md:
description: |
You are an independent technical observer and risk analyst.
EVALUATE THE PROJECT FOR:
1. ARCHITECTURE: Is the file structure logical? Are responsibilities separated?
2. SECURITY: SQL injection risks? Input validation? Authentication?
3. RELIABILITY: Error handling? Database connection management? Edge cases?
4. MAINTAINABILITY: Consistent naming? Clear code structure? Would a new developer understand this?
OUTPUT FORMAT:
- RISK: [critical/high/medium/low] Description
- List max 3-5 most important findings
- End with overall assessment: "SHIP IT" or "NEEDS WORK: reason"
Write a project report in clean markdown for: REST API käyttäjähallinnalle SQLite-tietokannalla
FIRST LINE must be exactly one of:
VERDICT: GREEN
VERDICT: ORANGE
VERDICT: RED
Then write this report:
# REST API käyttäjähallinnalle SQLite-tietokannalla
## Overview
One paragraph describing what this project does.
## Files
| File | Purpose |
|------|---------|
| models.py | ... |
| schemas.py | ... |
| main.py | ... |
| test_main.py | ... |
| pyproject.toml | ... |
| Dockerfile | ... |
## Quick Start
```bash
git clone <repo>
cd project
uv sync
uv run uvicorn main:app --reload
```
## Docker
```bash
docker build -t rest-api-k-ytt-j-hallinnalle-sqlite-tietokannalla .
docker run -p 8000:8000 rest-api-k-ytt-j-hallinnalle-sqlite-tietokannalla
```
# ... (truncated)
expected_output: >-
README.md
agent: observer