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) <noreply@anthropic.com>
This commit is contained in:
2026-04-24 06:44:20 +00:00
parent e5346d5ea3
commit e155c21798
2 changed files with 104 additions and 0 deletions

View File

@@ -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 | (+1013 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 | (+24 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 | (+46 est) |
| 30 | `logAll` config | pending | (+1 est) |
### Bucket D — medium features
| # | Cluster | Status | Δ |
|---|---------|--------|---|
| 31 | runtime null-safety error reporting | pending | (+1518 est) |
| 32 | MutationObserver mock + `on mutation` | pending | (+1015 est) |
| 33 | cookie API | pending | (+5 est) |
| 34 | event modifier DSL | pending | (+68 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 AD 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).

View File

@@ -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 (<reason>)` 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