optiquant Claude Opus 4.8 (1M context) commited on
Commit
d11afff
Β·
1 Parent(s): 744013f

Fold doc corrections through writeup + README prose

Browse files

- writeup: second 'short ready tasks' instance (line 29) -> 'short, high-impact'
(matches QuickWin = impact+effort, not readiness).
- writeup + README 'How it works': prompts.py asks for JSON / llm.py grammar-
constrains it (json_object), reflecting the prefill removal in f92e318.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

README.md CHANGED
@@ -77,8 +77,10 @@ brain-dump / photo ──▢ Qwen2.5-VL-3B (llama.cpp, localhost) ──▢
77
 
78
  - `score.py` β€” the scoring + deadline-ranking engine (pure standard-library math).
79
  - `llm.py` β€” client for the local llama.cpp server (brain-dump parse, image
80
- extract, single-task re-score). Every model output is re-clamped before scoring.
81
- - `prompts.py` β€” the system prompts that pin the model to strict JSON.
 
 
82
  - `app.py` β€” the Gradio UI: capture, ranked table, and sliders to correct any
83
  score and re-rank live.
84
 
 
77
 
78
  - `score.py` β€” the scoring + deadline-ranking engine (pure standard-library math).
79
  - `llm.py` β€” client for the local llama.cpp server (brain-dump parse, image
80
+ extract, single-task re-score). Each call is grammar-constrained to a JSON
81
+ object; every model output is re-clamped before scoring.
82
+ - `prompts.py` β€” the system prompts that ask for strict-JSON output and define
83
+ the scoring scales.
84
  - `app.py` β€” the Gradio UI: capture, ranked table, and sliders to correct any
85
  score and re-rank live.
86
 
submission/whatfirst-small-writeup.md CHANGED
@@ -26,7 +26,7 @@ tags:
26
 
27
  Deciding _what to do first_ is a real, daily problem β€” and most "AI to-do" apps answer it with a black box. You get a reordered list and no idea why. The whole category bet on opaque intelligence and lost the one axis that actually builds trust: _I understand why this is at the top._
28
 
29
- whatfirst keeps the AI where it earns its keep β€” turning vague human language into structured fields β€” and makes the **prioritization itself legible**: two competing scores, an urgency curve that explodes as a deadline nears, a quick-win boost for short ready tasks, and deadlines treated as a hard constraint rather than a number folded into a blob.
30
 
31
  ## The small question
32
 
@@ -48,9 +48,9 @@ brain-dump / photo ──▢ Qwen2.5-VL-3B (llama.cpp, localhost) ──▢
48
  ranked list + "do this first"
49
  ```
50
 
51
- - **`llm.py`** β€” client for the local llama.cpp server (brain-dump parse, image extract, single-task re-score). Every model output is treated as untrusted: parsed tolerantly, then **re-clamped to its domain** before it reaches the scorer.
52
  - **`score.py`** β€” the scoring + deadline-ranking engine. Pure standard-library math, fully deterministic.
53
- - **`prompts.py`** β€” the system prompts that pin the model to strict JSON.
54
  - **`app.py`** β€” the Gradio UI: capture, ranked table, and sliders to correct any score and re-rank live.
55
 
56
  ## The model
 
26
 
27
  Deciding _what to do first_ is a real, daily problem β€” and most "AI to-do" apps answer it with a black box. You get a reordered list and no idea why. The whole category bet on opaque intelligence and lost the one axis that actually builds trust: _I understand why this is at the top._
28
 
29
+ whatfirst keeps the AI where it earns its keep β€” turning vague human language into structured fields β€” and makes the **prioritization itself legible**: two competing scores, an urgency curve that explodes as a deadline nears, a quick-win boost for short, high-impact tasks, and deadlines treated as a hard constraint rather than a number folded into a blob.
30
 
31
  ## The small question
32
 
 
48
  ranked list + "do this first"
49
  ```
50
 
51
+ - **`llm.py`** β€” client for the local llama.cpp server (brain-dump parse, image extract, single-task re-score). Each call is grammar-constrained to a single JSON object (llama.cpp's `json_object` response format), and every model output is still treated as untrusted: parsed tolerantly, then **re-clamped to its domain** before it reaches the scorer.
52
  - **`score.py`** β€” the scoring + deadline-ranking engine. Pure standard-library math, fully deterministic.
53
+ - **`prompts.py`** β€” the system prompts that ask for strict-JSON output and define the three scoring scales.
54
  - **`app.py`** β€” the Gradio UI: capture, ranked table, and sliders to correct any score and re-rank live.
55
 
56
  ## The model