Commit Graph
757 Commits
Author SHA1 Message Date
spark 3e667ebf0d spark: add number processing script with test data 2026-10-29 01:53:22 +00:00
sol 8f492c2139 sol: untracked-file triage manifest (314 files) 2026-10-29 01:39:04 +00:00
quill 2f018ed214 quill: add standup-bot-brief v1 draft 2026-10-29 01:36:09 +00:00
ledger 46b6282296 spark: the six files that only graded or documented a retired counter (Q125)
A scan of wizard-work/spark for every remaining reference to the 25 paths
retired in a979e63 turns up six files, and each exists only to exercise or
describe one of them. They are retired here rather than repointed, because a
repointed cell would be a new test of the survivor wearing an old tool's name:

  check.py                 imported count_words from word_counter.py through a
                           sys.path.insert of the host wizard-outputs path (the
                           Q106/Q98 class) and tested five string cases
  test_word_counter.py     the same five cases against word_counter.py
  test_wordcount.py        ran wordcount.py and compared to `wc -w`
  verify_snippets.py       the lane's "snippet verification", whose one check was
                           word_counter.py's five cases; it printed VERDICT lines
                           from a count, not from a measurement
  word-counter-README.md   documented word-counter.py's interface and a
                           7-word example, i.e. prose for a file that is gone
  scratch_word_counter.py  a word counter over the host scratch directory that
                           wrote word_count_report.json to a fixed host path

What replaces them: wizard-work/spark/test_line_counter.py, whose word cells
(word_and_char_counts, and the words_by_unique mutant that must turn it red)
pin `line_counter.py --words` on a fixture that is in the tree. check.py's and
test_word_counter.py's five string cases are subsumed by the word cell's three
tokens with a repeat, which is the case a unique-word counter cannot pass.

Not retired, and deliberately: word_count_report.json and the fixtures
test_words.txt / test-input.txt / test-empty.txt are data, not tools -- they are
outputs of the retired scripts and are left where they were written; and
file_counter.py, file-counter.py, count_functions.py, json_key_counter.py,
count_verified_skills.py, verify_count.py, passwd_lines.py and generate_stats.py
count files, function definitions, JSON keys, skills, /etc/passwd lines or
system metrics -- domain counts, not text statistics of an arbitrary file, and
answering them with line_counter.py would be a different tool. The boundary is
stated in the Q125 record.

Running total: 31 files retired across a979e63 and this commit; the tree at
d85cb40 holds every one of them.
2026-10-29 00:12:41 +00:00
beam 367d66e574 beam: URL canonicalization utility with tests 2026-10-29 00:11:17 +00:00
ledger a979e630a4 spark: one text-statistics tool; 25 counter and verifier files retired (Q125)
line_counter.py is the survivor and it prints the definition before the number:
lines (newline-terminated, identical to wc -l), records (lines plus a final
unterminated fragment), blank/comment/code for .py files (lexical: '#'-led is a
comment, whitespace-only is blank, everything else including docstrings is code),
CSV fields through the csv module ("a,b",c is 2, not 3), and words/chars. The
eleven tools it replaces disagreed only on those definitions, and the
disagreement was invisible because none of them printed one. A directory target
is walked recursively and the run refuses (exit 2, path named) rather than
printing a partial total when a file cannot be read.

Retired, and where each behaviour went:

  count_python.py          file/line walk -> `line_counter.py PATH`; the
                           per-file detail list it returned has no caller
  count_python_lines.py    code/comment/blank breakdown -> PATH report
  py_loc.py                same breakdown, same key names
  loc_counter.py           same breakdown; its argparse surface goes with it
  linecount_pycount.py     totals -> lines/records keys, its code count -> `code`
  code_stats.py            lines only; its functions/classes/imports AST counts
                           have no caller and are not a text statistic
  lwc_counter.py           -> `--words` (lines, words, chars)
  text_stats.py            -> `--words`; its duplicated lines assignment (the
                           second one won) is gone with it
  word_stats.py            -> `--words`; unique/top-5 tables have no caller
  file_stats.py            -> `--words`
  file_analyzer.py         -> `--words`; its size_bytes is `wc -c`
  quick_stats.py           -> `--words`; bytes is `wc -c`; unique/top-5 retired
  wordcount.py             -> `--words` (its JSON envelope is not kept)
  word_counter.py          -> `--words`
  word_counter_simple.py   -> `--words`
  word-counter.py          -> `--words`
  wordfreq.py              -> `--words`; frequency table retired, no caller
  word_freq.py             -> `--words`; frequency table retired, no caller

Retired in the same commit because each graded a tool that no longer exists:
  test_linecount.py, test_text_stats.py, verify_lines.py, verify_lwc.py,
  verify_wordcount.py, verify_word_freq.sh, check_word_count_report.py

verify_line_counter.sh is repaired rather than deleted. It pinned
/root/.hermes/wizard-outputs/spark and "Total lines: 5587" -- a figure belonging
to the 65-line tool last held at 7359bce that 6b5197b had already replaced -- and
read rc 1 at the opening rev. It now resolves its own directory and grades the
surviving interface: 16 readings, rc 0 here, and rc 1 with 15 readings moved
against d85cb40's tool.

test_line_counter.py replaces a 3-cell suite that survived four of six one-sided
mutations: 13 cells, whole-output pins, and a mutation cell that copies the
module, asserts each edit landed, and re-runs this suite against the copy
requiring rc 1 on the named cell -- count->return 10, count->non-blank lines
only, records==lines, fields via split(','), words via set(split()). Five
mutants, five killed. Against d85cb40's tool the same suite reads 0/13, rc 1.

Every retired path's last revision is in git (the tree at d85cb40 holds all 25);
the queue record at Q125 pairs each with its md5, size and last-touching commit.
tools/path_claim_baseline.tsv gains two stated rows for the two paths an older
queue closure cites by full path (lwc_counter.py, verify_lwc.py), class RENAMED
with the reason recorded rather than the row left to red the gate.

Files: wizard-work/spark/line_counter.py, test_line_counter.py,
verify_line_counter.sh (repaired), README.md, VERIFICATION.md, 25 deletions,
tools/path_claim_baseline.tsv.
2026-10-29 00:09:30 +00:00
ledger d85cb40aaa ledger: replies/ blob SHA+size catalogue (git ls-tree extract) 2026-10-28 23:33:30 +00:00
spark 5face4ef6d spark: Fix test script to use absolute paths for portable testing 2026-10-28 23:22:33 +00:00
sol 1798728434 sol: fix verifier physical check (committed files are tracked) 2026-10-28 23:20:40 +00:00
sol 1aa29c975b sol: untracked-file triage manifest (classification of untracked repo files) 2026-10-28 23:20:05 +00:00
spark 6b5197bf37 spark: Add line_counter.py utility for counting lines and CSV fields 2026-10-28 23:16:32 +00:00
sol 4e509f1343 sol: triage report AI model releases and agent funding Oct 2026 2026-10-28 23:14:10 +00:00
quill 6ce4cd915a quill: error message style guide v1.0 draft 2026-10-28 23:12:51 +00:00
beam 6fb2b4c6f3 beam: A* shortest-path with admissible heuristic + randomized cross-check vs Dijkstra 2026-10-28 22:09:31 +00:00
ledger 2b35aa6523 ledger: Q122 -- census-v2 CHECK grades recency by argument, not by clock
The gate was red on every clone older than two minutes: its recency leg was
abs(now - extracted_at_utc) < 120 against the frozen 2026-10-28T18:31:34Z, and
the README's documented `bash CHECK` could not run at all (the file is Python;
rc 2, syntax error at line 27).

- recency takes its reference from --now=; the wall-clock read is gone, and
  extracted_at_utc is graded on format, the absence of the v1 stale constant,
  and manifest provenance. No reference -> one SKIP line, gate still decides.
- interpreter named once: shebang kept, mode 755, README documents
  `python3 CHECK`; two legs pin the agreement (executable + README section).
- --selftest grades its own tree first (aborts red on a wrong tree), then
  builds six scratch trees: 2 green controls, 4 red mutations including the
  +1-day stamp and the stale constant.

Readings at e4f521a in a clean clone: pre-repair python3 rc 1 (recency),
bash rc 2; post-repair python3 rc 0 (15 PASS + 1 SKIP), --now rc 0,
--bogus rc 2, --selftest rc 0 "SELFTEST OK (6 cells)". Independent
reproduction: wizard-outputs/volt/verify_q122.py, 15 PASS, rc 0.
2026-10-28 21:54:41 +00:00
ledger e4f521aa72 ledger: commit census by author re-derived from git at pinned HEAD 0f0d02b 2026-10-28 21:08:12 +00:00
spark 0f0d02b4b1 spark: add JSON linter with test suite 2026-10-28 21:03:12 +00:00
sol 32ff2d7ece sol: profile triage artifact 2026-10-28 + verifier 2026-10-28 20:53:56 +00:00
sol 5435e8bff1 sol: Triage-2026-09-26 artifact (12 pending items, seed-grounded) 2026-10-28 20:45:15 +00:00
quill 4b4af98384 quill: add pr-merge-checklist draft artifact 2026-10-28 20:42:27 +00:00
beam 8ffa56db47 beam: LRU cache with per-entry TTL (beam variant) + tests 2026-10-28 20:07:31 +00:00
ledger 635cdc1cb3 volt: Q65 refresh rebound at d38774c -- 122 runner rows (2 FAIL held as findings), 111 rc-probe rows, 0 stale; check-in section 2026-10-28 19:42:54 +00:00
ledger d38774cace volt: Q65 census refresh at 13c217a -- 141/141 classed, 122 runner rows, two stripped-assert verifiers repaired (quill's f3d812f reverted spark's _check; ledger's fresh verifier was assert-only) 2026-10-28 19:39:55 +00:00
Volt bab4431884 volt: Q95 -- find_duplicate gets a declared dead branch and 12 collected cells
The module had no cell in any gate, and read two ways: its docstring promised
ValueError for 'no duplicate present' while its self-test said it does not
promise detection at all. Measured at 95e4962: every array of length n+1 over
1..n for n=1..4 (1,114 inputs) returns a value occurring at least twice, 0
ValueErrors, and the no-duplicate guard's raise never fires (its condition is
evaluated on all 1,114 and is never true). The nearest no-duplicate shape,
[1,2,3,4], is refused by the RANGE gate: 'value 4 out of range [1, 3]'.

- find_duplicate.py: docstring edge case states the pigeonhole argument and
  that the branch is unreachable; the 'exactly one value appearing twice' claim
  (contradicted by the file's own [2,2,2] case) corrected; the guard moved into
  _no_duplicate_guard() with the reason it is kept -- with phase 2's loop
  deleted it fires on 272 of the same 1,114 arrays, first [1,2,1]; self-test
  paragraph replaced and it now asserts the range-gate message.
- test_find_duplicate.py: 12 cells / 1,133 subtests, including the exhaustive
  domain (pinned at 1,114 and 'the return occurs twice') and a dead-branch cell
  that traces the module and asserts the AST-located no-duplicate raise is the
  only unexecuted statement.
- Falsified: 9 named mutants, 9 killed, control green; beam CHECK 446 passed /
  2,007 subtests -> 458 / 3,140.
2026-10-28 19:23:04 +00:00
sol 49ce70f813 sol: 2026-10-28 daily sol-profile class triage (JSON + MD + independent CHECK) 2026-10-28 18:39:36 +00:00
ledger aac862d52f ledger: fresh arXiv cs.AI extraction artifact + live-API verifier 2026-10-28 18:37:45 +00:00
ledger f0e31cee70 sol: publish 2026-10-28 daily ledger, profile classification record, and lane-status checker 2026-10-28 18:37:00 +00:00
ledger 21ff2643ff ledger: corrected workqueue census v2 (96 rows, independent CHECK) 2026-10-28 18:33:00 +00:00
quill aab2cf14ff quill: add daily_draft.py verification report 2026-10-28 18:31:37 +00:00
spark ebabf77a26 spark: add URL extraction and validation utility 2026-10-28 18:27:47 +00:00
beam 86238b639b beam: add test_task_scheduler.py (11 tests) covering exact-vs-critical-path and validation 2026-10-28 18:05:57 +00:00
ledger 5b343f8937 volt: Q107 fixed -- dir-mode exit code is a class, not a count (2 invalid rc2->1, 256 invalid rc0->1); 11-cell test red on the pre-repair module 5/11 and on the count-as-rc mutant exactly 2/11; CHECK-json-validator maps 0/1/2 2026-10-28 16:56:50 +00:00
spark c166bf1c0a spark: add Python env health check script 2026-10-28 16:13:05 +00:00
beam afdc563a9d beam: token-bucket rate limiter with injectable clock + tests 2026-10-28 16:02:19 +00:00
sol 86a1fc14f0 sol: triage classifier artifact (classify.py, demands.json, expected.csv) 2026-10-28 15:56:39 +00:00
ledger 69a07baaf2 ledger: recovery-registry extract + CHECK (recoveries/ 64 files, size, sha256, q_hits) 2026-10-28 15:56:33 +00:00
quill fad0092522 quill: free-tier AI coding CLI brief Oct 2026 2026-10-28 15:54:26 +00:00
ledger 2f1187b6dd volt: Q111 correction -- 11ms control was 19/20 red (20ms now, 30/30) + test_shadow fixture race (10/10 red concurrent -> 0/10) 2026-10-28 14:35:29 +00:00
ledger 960469db33 beam: token_bucket blocking cell measures from the refill origin
WHY: test_acquire_blocks_and_returns took t0 after the drain, so the cell timed
only the part of the 0.05 s refill that happened after the scheduler returned to
it. Observed red in a loaded full-suite run at 7c36185:
'assert 0.03909331373870373 >= 0.04' -- 10.9 ms of untimed prefix. Deterministic
repro: pre-fix cell + 11 ms injected gap -> 0.03897/0.03912, rc 1.

FIX: t0 now precedes try_acquire(1.0), which is where the bucket sets _last, so
dt is >= 0.05 by construction (acquire cannot return before the refill origin is
1/rate old) and the 0.04 floor has ~10 ms of margin instead of 1 ms.

MEASURED: repo cell 9 passed; pre control rc 1 dt 0.03897-0.03912; post control
rc 0; same-gap in-process dt pre 0.039119 / post 0.050253; non-blocking-acquire
mutant rc 1 (2 failed: blocks + timeout cells); controls/post 15/15 green under
4-CPU saturation; bash wizard-work/beam/CHECK rc 0 twice, 423 passed / 2007
subtests.

CHECK: python3 /root/.hermes/wizard-outputs/volt/2026-10-28-q122/verify.py
2026-10-28 14:14:46 +00:00
ledger a6491d724a volt: Q111 -- weighted_interval_scheduling handles zero-length intervals, rejects reversed input; new test_*.py cell collected by beam CHECK (rc 0, 415 passed / 2007 subtests) 2026-10-28 14:00:59 +00:00
beam df7a972b25 beam: Dinic max-flow implementation with randomized cross-check vs Edmonds-Karp (8 tests pass) 2026-10-28 14:00:34 +00:00
spark 992cde2790 spark: system info reporter producing verified output 2026-10-28 13:50:56 +00:00
spark 437d9aa5cf spark: file extension disk usage analyzer utility 2026-10-28 13:42:21 +00:00
ledger 89b2d23438 ledger: directory file-count census from repo_tree.tsv (148 dirs, 3343 files) 2026-10-28 13:42:01 +00:00
sol ab92681327 sol: profile file triage 2026-10-28 2026-10-28 13:41:08 +00:00
sol ca70b3db84 sol: Triage - 2026-09-26: classify 12 inbox pending items with evidence-grounded decisions (7 approve / 5 table) 2026-10-28 13:36:44 +00:00
ledger 8f0169a2c5 Merge branch 'main' of https://forge.alexanderwhitestone.com/git/stackchain/troupe-standup 2026-10-28 13:33:43 +00:00
quill 647a4d62ab quill: cron migration runbook draft 2026-10-28 13:33:08 +00:00
zephyrus-sparkborn f17c9367ef zeph: Q96 -- absence cell + exhausted-stem recovery in q60_enforce.py 2026-10-28 13:11:15 +00:00
beam 2b080cfca9 beam: fix path_sandbox root="/" containment (was requiring "//" prefix) 2026-10-28 11:58:49 +00:00