mirror of
https://github.com/khodges42/nightShift.git
synced 2026-06-14 18:18:36 +00:00
114 lines
2.9 KiB
Markdown
114 lines
2.9 KiB
Markdown
# Tutorial 03: Pastebin With Model Fallback And Telemetry
|
|
|
|
This tutorial uses the `tutorial-pastebin` template: a small Flask snippet-hosting service designed for deterministic NightShift orchestration tests.
|
|
|
|
It is intentionally simpler than the imageboard tutorial. There are no uploads, thumbnails, sessions, or moderation queues. The work is ordinary web-app behavior: snippet creation, viewing, listing, filtering, expiration handling, and simple HTML forms.
|
|
|
|
## What The Template Creates
|
|
|
|
Run this from a disposable parent directory:
|
|
|
|
```bash
|
|
nightshift init --template tutorial-pastebin --root nightshift-pastebin
|
|
cd nightshift-pastebin
|
|
```
|
|
|
|
For an isolated local integration run, use the integration sandbox command from the NightShift repository root:
|
|
|
|
```bash
|
|
python -m nightshift.cli integ-run --template tutorial-pastebin
|
|
```
|
|
|
|
Then set up the generated Python project:
|
|
|
|
```bash
|
|
python -m nightshift.cli integ-setup --project integ_runs/<timestamp>/project
|
|
```
|
|
|
|
The template creates:
|
|
|
|
```text
|
|
nightshift.yaml
|
|
.nightshift/
|
|
agents/
|
|
planner.md
|
|
implementer.md
|
|
debugger.md
|
|
reviewer.md
|
|
tasks.md
|
|
src/
|
|
pastebin_app/
|
|
templates/
|
|
tests/
|
|
pyproject.toml
|
|
README.md
|
|
```
|
|
|
|
The template includes a working baseline Flask app and deterministic pytest suite. NightShift tasks then extend or verify app behavior in small increments.
|
|
|
|
## Prerequisites
|
|
|
|
Install NightShift from this repository:
|
|
|
|
```bash
|
|
python -m pip install -e .
|
|
```
|
|
|
|
Install target dependencies:
|
|
|
|
```bash
|
|
python -m pip install -e . pytest flask
|
|
```
|
|
|
|
Install and start Ollama, then pull the fallback models you want available:
|
|
|
|
```bash
|
|
ollama pull qwen2.5-coder:14b
|
|
ollama pull carstenuhlig/omnicoder-9b
|
|
ollama pull deepseek-coder-v2:16b
|
|
ollama list
|
|
```
|
|
|
|
NightShift uses Ollama's local HTTP API, normally at `http://localhost:11434`.
|
|
|
|
## Model Fallback
|
|
|
|
The template's implementation stage uses this fallback order:
|
|
|
|
1. `qwen2.5-coder:14b`
|
|
2. `carstenuhlig/omnicoder-9b`
|
|
3. `deepseek-coder-v2:16b`
|
|
|
|
NightShift records which agent/model handled each stage in `telemetry-summary.md`.
|
|
|
|
## Task Plan
|
|
|
|
The template writes the full task list to `.nightshift/tasks.md`. A copy is included here as [tasks.md](tasks.md).
|
|
|
|
1. Snippet creation and viewing
|
|
2. Snippet listing and filtering
|
|
3. Expiration handling
|
|
4. HTML forms and templates
|
|
|
|
Run one task first:
|
|
|
|
```bash
|
|
python -m nightshift.cli validate
|
|
python -m nightshift.cli run --task TASK-001
|
|
```
|
|
|
|
Then inspect:
|
|
|
|
```text
|
|
.nightshift/runs/<run-id>/devlog.md
|
|
.nightshift/runs/<run-id>/telemetry-summary.md
|
|
.nightshift/runs/<run-id>/tasks/TASK-001/semantic-context.md
|
|
.nightshift/runs/<run-id>/tasks/TASK-001/telemetry-summary.md
|
|
.nightshift/runs/<run-id>/tasks/TASK-001/artifact-index.md
|
|
.nightshift/runs/<run-id>/tasks/TASK-001/test-output.txt
|
|
```
|
|
|
|
## Pipeline Reference
|
|
|
|
A copy of the template pipeline is included here as [nightshift.yaml](nightshift.yaml). The canonical runnable template lives under `nightshift/project_templates/tutorial-pastebin/`.
|