From e155c2179802ba88fd8078df1c94fbd51c287712 Mon Sep 17 00:00:00 2001 From: giles Date: Fri, 24 Apr 2026 06:44:20 +0000 Subject: [PATCH] HS-plan: add scoreboard + require loop agent to maintain it plans/hs-conformance-scoreboard.md is the at-a-glance ledger (baseline 1213, merged 1240, +2 pending on worktree). Added rule 11 to hs-conformance-to-100.md so the loop agent bumps it per commit. Co-Authored-By: Claude Opus 4.7 (1M context) --- plans/hs-conformance-scoreboard.md | 102 +++++++++++++++++++++++++++++ plans/hs-conformance-to-100.md | 2 + 2 files changed, 104 insertions(+) create mode 100644 plans/hs-conformance-scoreboard.md diff --git a/plans/hs-conformance-scoreboard.md b/plans/hs-conformance-scoreboard.md new file mode 100644 index 00000000..541e6f16 --- /dev/null +++ b/plans/hs-conformance-scoreboard.md @@ -0,0 +1,102 @@ +# HS Conformance Scoreboard + +Live tally for `plans/hs-conformance-to-100.md`. Update after every cluster commit. + +``` +Baseline: 1213/1496 (81.1%) +Merged: 1240/1496 (82.9%) delta +27 +Worktree: +2 pending merge (0b9bbc7b select, 821794cc unless) +Target: 1496/1496 (100.0%) +Remaining: ~256 tests (after worktree merge) +``` + +## Cluster ledger + +### Bucket A — runtime fixes + +| # | Cluster | Status | Δ | Commit | +|---|---------|--------|---|--------| +| 1 | fetch JSON unwrap | done | +4 | 39a597e9 | +| 2 | element → HTML via outerHTML | done | +1 | e195b5bd | +| 3 | Values dict insertion order | done | +2 | e59c0b8e | +| 4 | `not` precedence over `or` | done | +3 | 4fe0b649 | +| 5 | `some` selector for nonempty match | done | +1 | e7b86264 | +| 6 | string template `${x}` | done | +2 | 108e25d4 | +| 7 | `put` hyperscript reprocessing | partial | +1 | f21eb008 | +| 8 | `select` returns selected text | worktree | +1 | 0b9bbc7b | +| 9 | `wait on event` basics | done | +4 | f79f96c1 | +| 10 | `swap` variable ↔ property | done | +1 | 30f33341 | +| 11 | `hide` strategy | partial | +3 | beb120ba | +| 12 | `show` multi-element + display retention | done | +2 | 98c957b3 | +| 13 | `toggle` multi-class + timed + until-event | partial | +2 | bd821c04 | +| 14 | `unless` modifier | worktree | +1 | 821794cc | +| 15 | `transition` query-ref + multi-prop + initial | in-progress | — | — | +| 16 | `send can reference sender` | done | +1 | ed8d71c9 | +| 17 | `tell` semantics | pending | — | — | +| 18 | `throw` respond async/sync | pending | — | — | + +### Bucket B — parser/compiler additions + +| # | Cluster | Status | Δ | +|---|---------|--------|---| +| 19 | `pick` regex + indices | pending | (+10–13 est) | +| 20 | `repeat` property for-loops + where | pending | (+3 est) | +| 21 | `possessiveExpression` property access via its | pending | (+1 est) | +| 22 | window global fn fallback | pending | (+2–4 est) | +| 23 | `me symbol works in from expressions` | pending | (+1 est) | +| 24 | `properly interpolates values 2` | pending | (+1 est) | +| 25 | parenthesized commands and features | pending | (+1 est) | + +### Bucket C — feature stubs (observer mocks) + +| # | Cluster | Status | Δ | +|---|---------|--------|---| +| 26 | resize observer mock + `on resize` | pending | (+3 est) | +| 27 | intersection observer mock + `on intersection` | pending | (+3 est) | +| 28 | `ask`/`answer` + prompt/confirm mock | pending | (+4 est) | +| 29 | `hyperscript:before:init` / `:after:init` / `:parse-error` | pending | (+4–6 est) | +| 30 | `logAll` config | pending | (+1 est) | + +### Bucket D — medium features + +| # | Cluster | Status | Δ | +|---|---------|--------|---| +| 31 | runtime null-safety error reporting | pending | (+15–18 est) | +| 32 | MutationObserver mock + `on mutation` | pending | (+10–15 est) | +| 33 | cookie API | pending | (+5 est) | +| 34 | event modifier DSL | pending | (+6–8 est) | +| 35 | namespaced `def` | pending | (+3 est) | + +### Bucket E — subsystems (human-driven) + +| # | Cluster | Status | +|---|---------|--------| +| 36 | WebSocket + `socket` + rpc proxy | blocked (design) | +| 37 | Tokenizer-as-API | blocked (design) | +| 38 | SourceInfo API | blocked (design) | +| 39 | WebWorker plugin | blocked (design) | +| 40 | Fetch non-2xx / before-fetch event / real response | blocked (design) | + +### Bucket F — generator translation gaps + +Defer until A–D drain. Estimated ~25 recoverable tests. + +## Buckets roll-up + +| Bucket | Done | Partial | Worktree | In-prog | Pending | Blocked | Total | +|--------|-----:|--------:|---------:|--------:|--------:|--------:|------:| +| A | 10 | 3 | 2 | 1 | 2 | 0 | 18 | +| B | 0 | 0 | 0 | 0 | 7 | 0 | 7 | +| C | 0 | 0 | 0 | 0 | 5 | 0 | 5 | +| D | 0 | 0 | 0 | 0 | 5 | 0 | 5 | +| E | 0 | 0 | 0 | 0 | 0 | 5 | 5 | +| F | — | — | — | — | ~10 | — | ~10 | + +## Maintenance + +After each cluster commit, update: +- `Merged:` pass count + `delta` line at top +- The row's `Status` / `Δ` / `Commit` in the relevant bucket +- The buckets roll-up table counts + +Use `mcp__hs-test__hs_test_run(start=0, end=195)` + targeted-suite runs to get the real number; don't run the full suite every iteration (hangs on 196/199/200/615/1197/1198). diff --git a/plans/hs-conformance-to-100.md b/plans/hs-conformance-to-100.md index 03d0c3b0..da025cbb 100644 --- a/plans/hs-conformance-to-100.md +++ b/plans/hs-conformance-to-100.md @@ -142,6 +142,8 @@ Many tests are `SKIP (untranslated)` because `tests/playwright/generate-sx-tests 8. **If stuck >30min on a cluster**, mark it `blocked ()` in the plan and move to the next pending cluster. 9. **Branch: `architecture`.** Commit locally. Never push. Never touch `main`. 10. **Log every iteration** in the Progress log below: one paragraph, what you touched, delta, commit SHA. +11. **Update the scoreboard** at `plans/hs-conformance-scoreboard.md` in the SAME plan-update commit: bump the `Merged:` line, update the row's `Status` / `Δ` / `Commit`, and adjust the buckets roll-up counts. +12. **Also expand scope to include** `plans/hs-conformance-scoreboard.md` (for rule 6 purposes). ## Known gotchas