Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
556370d
feat(flow): /flow:next --finish and an xhard pipeline eval tier
TomasPalsson Sep 29, 2026
73c4f1d
feat(flow): flow eval --case narrows a run to named cases
TomasPalsson Sep 29, 2026
014a356
fix(flow): flow eval only passes --plugin-dir when claude supports it
TomasPalsson Sep 29, 2026
11ff34b
fix(evals): per-case timeouts actually apply; 9 more xhard pipeline c…
TomasPalsson Sep 29, 2026
aae22cd
feat(evals): case-selfcheck --live runs cases headless outside the ev…
TomasPalsson Sep 29, 2026
2990420
fix(evals): case-selfcheck --live refuses an --out under ~/.claude
TomasPalsson Sep 29, 2026
bc3713f
fix(evals): live judge has no tools, sees the whole run and the prompt
TomasPalsson Sep 29, 2026
6a95ca1
fix(flow): seven next-skill and router fixes from live eval round 1
TomasPalsson Sep 29, 2026
d73e38f
fix(evals): xhard checks that failed correct live runs
TomasPalsson Sep 29, 2026
3a0f585
feat(evals): six round-3 xhard cases — Go, monorepo, security, scale
TomasPalsson Sep 29, 2026
0ab8c54
fix(evals): live grading survives string-valued system messages
TomasPalsson Sep 29, 2026
8fb283e
fix(evals): round-2 case checks that failed correct live runs
TomasPalsson Sep 29, 2026
98aa25f
feat(flow): flow check --since <ref> gates only what the feature changed
TomasPalsson Sep 29, 2026
f153af1
fix(flow): next-skill fixes K1-K7 from live eval round 2
TomasPalsson Sep 29, 2026
b9b94bc
chore(progress): eval loop at round 3
TomasPalsson Sep 29, 2026
54547ae
feat(flow): check-all --since ratchets ruff/eslint to new violations …
TomasPalsson Oct 1, 2026
dc9efd7
fix(flow): round-3 next-skill fixes — Seen chain, biting tests, AC id…
TomasPalsson Oct 1, 2026
3366bdf
fix(evals): round-3 case checks that failed correct live runs
TomasPalsson Oct 1, 2026
7ea3dca
feat(design): vary and design ground every look in the project and dr…
TomasPalsson Oct 1, 2026
23d3df2
fix(evals): live runs use only the plugin under test, isolated stores…
TomasPalsson Oct 1, 2026
e239a1c
fix(evals): round-4 case checks that failed correct live runs
TomasPalsson Oct 1, 2026
704f5f5
feat(design): the first screen is a scene; a fold gate proves it
TomasPalsson Oct 1, 2026
3bd2a3c
chore(progress): design upgrade and the held round-4 flow patch
TomasPalsson Oct 1, 2026
8d4e992
feat(design): art down the whole page, finish pass, type in the art, …
TomasPalsson Oct 1, 2026
85c95fa
chore(progress): design upgrade through round 4, trial 3 running
TomasPalsson Oct 1, 2026
4dd63ee
feat(design): fold gate measures full bleed, rendering depth, solid c…
TomasPalsson Oct 1, 2026
9bc84d3
fix(flow): round-4 next-skill fixes, applied on the user's go-ahead (…
TomasPalsson Oct 1, 2026
70c966d
feat(design): worlds must fit the business's temperament; objects not…
TomasPalsson Oct 1, 2026
4187821
chore(progress): eli5 published, hard design eval round 1 built
TomasPalsson Oct 1, 2026
1aba05c
feat(design): an illustrator crew and a critic before shipping; craft…
TomasPalsson Oct 1, 2026
fea6ac2
feat(design): a real h1 on a drawn surface, mood fit, blocking craft …
TomasPalsson Oct 1, 2026
5dc5001
chore(progress): design generality requirement and plan
TomasPalsson Oct 1, 2026
b24a2ec
chore(progress): generality spec and next steps
TomasPalsson Oct 1, 2026
a355b37
feat(design): one hero treatment per concept; user directives outrank…
TomasPalsson Oct 1, 2026
6181105
chore(progress): generality landed, breadth + hard-4 running
TomasPalsson Oct 1, 2026
d9d45a3
feat(design): scene by default for small businesses; phone, no-meta, …
TomasPalsson Oct 1, 2026
1f405b0
feat(vary): product-ui grounded by described screens; world pool is h…
TomasPalsson Oct 2, 2026
ed3e6ba
test(vary): seed each round by key, not reroll, in the new pool tests
TomasPalsson Oct 2, 2026
ca578b8
feat(design): fold-check page-overflow and meta-copy blocking rows
TomasPalsson Oct 2, 2026
7a1e000
feat(design): signature fact leads, genre-native product UI, required…
TomasPalsson Oct 2, 2026
77fd4c5
chore(progress): round 9 running, scores so far
TomasPalsson Oct 2, 2026
d9f2a0b
feat(design): loudest element is the most important, text faces for p…
TomasPalsson Oct 2, 2026
72a78ad
chore(progress): design eval goal met (hard 7.97, breadth 7.79), demo…
TomasPalsson Oct 2, 2026
8d7b11a
Merge remote-tracking branch 'origin/main' into worktree-hard-evals-a…
TomasPalsson Oct 3, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions PROGRESS.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Progress

## Now
- DONE (2026-10-02) design eval goal: hard exam (5 hard fixtures x {design, vary}) 5.81 -> 6.55 -> 4.74 (generality overshoot) -> 5.80 -> 5.65 -> **7.97** (Opus builder; min 6.1; 10/10 no blocking fold rows); breadth exam (6 non-illustrated genres, genre-anchored judges) 6.38 -> 5.85 -> 5.88 -> **7.79**, obeys_brief 48/48. Biggest lever was the builder model (memory: design-eval-builder-model). Demo sites (/design:design, Opus): Spói https://claude.ai/artifact/KGQNEUu5ypejFhsygbbmeH, Tally https://claude.ai/artifact/TJ4GjyQUv94ruCzS2geooS, Hrímgangan https://claude.ai/artifact/4yYZdfzdkDNffk2J5ySKPm. ELI5 (flow + design + demos): https://claude.ai/artifact/C7AvjnyfHRqEHDP1HSb7oM. Harness: ~/.claude/jobs/905f7787/tmp/design/ (trial.sh on Opus, judge-hard.js, judge-breadth.js, score.py). Open: fold-check `plates` counts only inline svg/canvas, not `<img src=*.svg>` (non-blocking false FAIL on Hrímgangan); hitataekni benchmark needs its store backend for bench-fold.sh.
- xhard eval loop (branch `worktree-hard-evals-and-next-finish`, pushed): 32 `xhard-*` pipeline cases, `scripts/case-selfcheck` (static proof; `--live` = headless `claude -p` outside the eval sandbox, which masks /bin/git). `/flow:next --finish` = draft PR #13. Live: L1 9/26 (judge noise), L2 30/52 runs mean 0.86; landed F1-F7, K1-K7, `flow check --since <Base>`. L3 (32x2) → `/tmp/flow-live-L3`. Loop: live → triage (one agent per failing case) → fix flow + cases → harder cases. Resume: `python3 plugins/flow/scripts/case-selfcheck --live -j 6 --runs 2 --ledger --out /tmp/flow-live-L<n>`
- /claude-api prompt-audit applied to all 69 skills on branch `worktree-prompt-audit-skills`: caps emphasis and load-gates at normal volume (constraints kept), dated prompting advice rewritten (prompt-engineer, agent-architecture, agent-evals, claude-md), old-model fossils dropped. Skill-text tests 3715/35, no new failure. Report + 9 open items needing a human: `docs/research/21-prompt-audit-skills-2026-09-27.md`. Next: read the PR, decide the open items
- spec 009 (ECC borrows, from a 48-agent 3-lens comparison with affaan-m/ECC) on branch `flow/ecc-borrows`, draft PR: loop child wall-clock cap, review lenses fail closed (`failedLenses`/`incomplete`), `context-pressure.sh` PreToolUse nudge, injection-as-data rule, hidden-unicode scan in tamper-notice, doctor `worktree-hygiene`/`personal-paths`/`reference-docs`, skill-forge reuse check, install/stealth write-confinement tests; plus both suites repaired to green on macOS (TMPDIR slash, shellcheck 0.11) and `flow lint` fixed to join `files:` by pathspec like `flow tick` (every ticked gate with `files: .` read as `lying`). Gates: hooks 1333/0, 9 touched scripts files green, full scripts suite 20 fixed / 0 new (`.specs/009-*/verify/`). Next: human read of the PR, then mark ready; I-001 parks ~87 unrelated scripts-suite failures, I-002 a garbled `started_at` silently disabling the loop's max-minutes cap
- spec 007 (plugin eval suite + no-slop) on branch `flow/plugin-eval-suite-v2` (worktree `../code-worktrees/flow/plugin-eval-suite-and-optimisation-loop`, draft PR #5): `flow eval` (ledger, tags, -j, Bash grant, post-checks), 31-case suite under `plugins/flow/evals/`, `no-slop` skill (rubric NS-01..29, `slop-check`, developer block in every `task-brief`, `slop` lens per task and at gating), `search-first.sh` hook. v1.1 certification 3 runs/case: quality **1.00** (post-checks 35/36, delta +0.13); pipeline **0.99** (post-checks 9/9); routing **0.93**; invariant **1.00** (`.specs/007-*/loop-log.md`). Next: PR review
Expand Down
24 changes: 24 additions & 0 deletions docs/reference/scripts.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,3 +286,27 @@ the file is now over 60 lines, a warning to stderr (exit stays 0).

Exit codes: 0 written · 2 usage · 3 exact duplicate · 4 cannot write
```

## case-selfcheck

```
Usage: case-selfcheck [--root <evals-dir>] [--keep] [<case-name>...]

Proves each eval case can tell a no-op from a fix. Default: every
evals/xhard-* case. Per case: shape (case.yaml, tags, executable scaffold),
then scaffold a pristine tree — its file graders + postcheck.sh must NOT all
pass (unless the case ships selfcheck-pristine-passes) — then scaffold again,
run solution.sh, and every file grader + postcheck.sh must pass. llm,
tool_used and trace graders are skipped and counted.
Prints PASS/FAIL per case; exit 0 iff no FAIL.

case-selfcheck --live [--model M] [--judge-model J] [--runs N] [-j N]
[--out <dir>] [--keep] [--ledger] [<case-name>...]

Runs the cases headless with `claude -p` outside the plugin-eval sandbox, in
throwaway trees, with this checkout's plugin bin first on PATH. Grades regex,
tool_used, llm (headless judge), file graders and postcheck.sh. One
`LIVE <case> score=.. post=.. turns=.. cost=$.. <secs>s` line per run, results in
<out>/results.json. --ledger appends one line to evals/ledger.jsonl.
Exit 0 iff every run passed, 1 otherwise, 2 on setup errors. Spends money.
```
2 changes: 1 addition & 1 deletion docs/reference/workflows-and-cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ Commands:
install [--dry-run] [--dotfiles <path>] [--marketplace <path>] [--force]
Deploy the harness on this machine
(idempotent); ends by running doctor
check [--fix] Run project quality gates (check-all)
check [--fix] [--since <ref>] Run project quality gates (check-all; --since scopes lint/format)
skills-lint Run ~/.claude/scripts/skills-lint
next [--json] [--force] [--peek] Print the one thing to do next, from
.specs/ and git alone (14 states; --json
Expand Down
Loading