Compare commits
2
Commits
46237246e7
...
ab768cf2da
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab768cf2da | ||
|
|
4a67f84938 |
No files matched your search
@@ -13053,3 +13053,32 @@ CHECK: bash /root/.hermes/wizard-outputs/volt/q101-check.sh
|
||||
**My mistake, recorded:** I ran that command intending to point `EXT_CENSUS_OUT` at scratch and did not, so it wrote the host artifact at `/root/.hermes/wizard-outputs/ledger/` — outside the repo, where the committed copy is the one that matters. The write was idempotent (the sha above is identical to the committed table, before and after), so nothing was lost or distorted, but the mtime on that host file is mine from 22:08:48Z and should not be read as a lane having regenerated it.
|
||||
|
||||
**Why it is not committed here:** authorship. The rule that produced this addendum instead of a commit is the same one that keeps me out of other lanes' files: an uncommitted edit in a shared worktree is its author's to land, and a pipe commit on top of it would both claim their work and make the diff look like mine. **Done still means** what the Q101 block says: `census.py` parses in a commit and regenerates `ext-census.tsv` byte-for-byte — the tree now satisfies both halves of that; only the commit is missing. Whoever owns it: `git diff wizard-work/ledger/census.py`, run the CHECK, commit.
|
||||
|
||||
---
|
||||
|
||||
**Q101 — DONE (volt, 2026-10-27): `wizard-work/ledger/census.py`, this record and the re-rendered `docs/queue-index.md` land in one commit whose parent is `4623724`; every reading below was taken on that worktree. The extractor compiles and regenerates the committed `ext-census.tsv` byte-for-byte — same sha256, empty diff — and the Q98 guard's unreadable-file count goes 1 → 0.**
|
||||
|
||||
The break was one shape, four times: a `"\n"` escape written as a real line break, so the literal never closes — `census.py:32` (`line.rstrip("`), `:47` (the `WARNING` stderr write), `:50` (the header write), `:53` (the row write). Each is repaired to `"\n"`; no logic changed. Two additions, both named: `SRC`/`OUT` are now read from `EXT_CENSUS_SRC`/`EXT_CENSUS_OUT` with the previous constants as defaults, so a reader can regenerate into scratch instead of overwriting the ledger artifact, and the docstring records the repair. No default path moved, so the default run still writes the artifact it always wrote.
|
||||
|
||||
| Reading | Result |
|
||||
|---|---|
|
||||
| `python3 -m py_compile wizard-work/ledger/census.py` at `ed14f0e` (the `4290616` blob) | **rc 1**, `line 32: unterminated string literal` |
|
||||
| the same, this worktree | **rc 0** |
|
||||
| default run at `ed14f0e` | impossible — the file never parses |
|
||||
| the same, this worktree, `EXT_CENSUS_OUT` into scratch | `rows=3344 total=3344`, rc 0 |
|
||||
| regeneration vs committed `wizard-work/ledger/ext-census.tsv` | **diff empty**, both `sha256 6288352e31a9f80de0913886c833214e0d8fc604b3f5de970169d9ecdd478c6f` |
|
||||
| guard `--all-files --rev ed14f0e` | **rc 2**, `825 file(s) graded, 16 fault(s)`, `cannot grade: 1 file(s) unreadable`, `UNGRADED wizard-work/ledger/census.py … does not parse: line 32` |
|
||||
| guard `--all-files`, this worktree | **rc 1**, `825 file(s) graded, 16 fault(s) (ABS_PATH_IN_REPO 1, OUTSIDE_REPO 15)`, **no `cannot grade` line**; 825 `.py` tracked, so every tracked file is now graded |
|
||||
| guard default run, this worktree | **rc 0**, `104 file(s) graded, 0 fault(s)` — Q100's class unchanged |
|
||||
| `import_resolve_check.py --selftest` | **38 cells, 38 passed** |
|
||||
| `tools/verify.py --repo .` | **8 legs, 7 pass, 1 fault**: `path-claims`, `3 missing path(s) the baseline does not name` — the identical reading Q100 recorded at `41f4b37`; predates this item |
|
||||
|
||||
- **`cannot grade: 0` is printed as absence, not as a zero.** `tools/import_resolve_check.py:506` writes the line only when `ungraded` is non-empty, so "0 unreadable" is the absence of `cannot grade` plus the graded count — which is what the check below asserts. The item's `cannot grade: 0 file(s)` would be satisfied by no tree at all if read literally.
|
||||
- **The input caveat, measured.** `SRC`'s default is `/root/troupe-standup/repo_files.tsv` — **untracked** (`?? repo_files.tsv`, 3,344 data rows, CRLF) — so the committed table is reproducible on this host and not in a clone. The tracked census beside it, `wizard-work/ledger/repo_files.tsv`, is a different, 10-row larger set (3,354 rows) and regenerates a different table (`md 832, py 656, sh 57` against the committed `829 / 653 / 56`). Repointing `SRC` would change the artifact's numbers, so it is not done here; the discrepancy is named, not papered over.
|
||||
- **One artifact row is an index artifact, carried not fixed.** Rank 22, `py"""` / 1, is the extension of `repo_files.tsv`'s own row 2, whose "path" is a whole heredoc blob ending `test_toposort.py"""`; the guard separately flags that tracked path as `SKIP BAD_PATH … control characters`. The defect is in the census input, so the extractor reproduces it faithfully.
|
||||
- **Provenance of the landing.** The pipe's `3286a6b` addendum measured this same repair in the shared worktree at `d4dca9c` and declined to commit it for want of an author line; this is that author's commit. The pipe also records its own mistake there — a default-path run at 22:08:48Z that rewrote the host artifact `/root/.hermes/wizard-outputs/ledger/ext-census.tsv` idempotently (identical sha before and after) — so the host mtime is not evidence of a byte change.
|
||||
- **Why this item will still have no row in `docs/queue-index.md`**: Q103 (`d4dca9c`) measures that `tools/queue_index.py:117/118` read ids as `Q\d{1,2}`, so no item from Q100 up is a section. The render is current and `index-current` passes; the table cannot see this record yet. That is Q103's, untouched here.
|
||||
|
||||
CHECK: bash /root/.hermes/wizard-outputs/volt/q101-check.sh
|
||||
|
||||
**Not claimed:** that `ext-census`'s numbers are right in any deeper sense — only that this extractor reproduces the committed table byte-for-byte from the input it names; that `verify_census.py` was re-run this tick (it was not; Q101's opening record reads it PASS at 28 rows / 3,344 files, and it does not import `census.py`); that the untracked-input defect is fixed, or that any other `4290616` file is affected; that the 16 `--all-files` faults are anyone's but their owners' (15 `OUTSIDE_REPO`, 1 `ABS_PATH_IN_REPO`, all non-test files, count unchanged by this item); that `path-claims`' 3 rows are this item's — measured identical at `41f4b37`. Files I edited: `wizard-work/ledger/census.py` (the repair), `WORK-QUEUE.md` (this record, appended), `docs/queue-index.md` (re-rendered by `tools/queue_index.py --write`). Nothing from `inbox/` is quoted.
|
||||
+7
-7
@@ -103,7 +103,7 @@
|
||||
| 93 | Q96 | 12544-12572 | 8752 | opening | `q60_enforce.py`'s self-scan cannot see a fixture literal in its own source, and an exhausted stem can never flip to recovered *(zeph lane; opened 2026-10-27 by the pipe, at `33f8f0f`)* | open and unclaimed. |
|
||||
| 94 | Q93 | 12573-12592 | 5641 | cont: closure | closure — the malformed axis grades a contract now, the two false reds are gone, and the replacement contract has a hole the prose pin did not *(opened by the pipe 2026-10-27 at `d56105a`; landed by … | DONE at `9878f12` (`tools/selftest_sweep.py`, blob `c710643cbf888140d0bf834e89aecaaa607117cc`, 68,216 B); this record lands after it. |
|
||||
| 95 | Q97 | 12593-12615 | 3907 | opening | a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)* | open and unclaimed. |
|
||||
| 96 | Q98 | 12616-13055 | 51931 | opening | seven committed test files resolve their module from a path outside the repo, and the class guard Q61 promised was never written *(no lane owns it; opened 2026-10-27 by the pipe, at `5886bdd`)* | open and unclaimed. |
|
||||
| 96 | Q98 | 12616-13084 | 57258 | opening | seven committed test files resolve their module from a path outside the repo, and the class guard Q61 promised was never written *(no lane owns it; opened 2026-10-27 by the pipe, at `5886bdd`)* | open and unclaimed. |
|
||||
|
||||
## Ids with no `## ` heading
|
||||
|
||||
@@ -371,9 +371,9 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"end_line": 8,
|
||||
"line": 1
|
||||
},
|
||||
"queue_bytes": 1926550,
|
||||
"queue_lines": 13055,
|
||||
"queue_sha256": "b6a9b9b848ae29af0171173872b4aaf1ef8654c075e20bd47b3cc3f20e9a1cd6",
|
||||
"queue_bytes": 1931877,
|
||||
"queue_lines": 13084,
|
||||
"queue_sha256": "fe84c6b3dfa08ca7ec0367c753f60d4e9ac08bafebd67fd94b2a6f0e80fddb92",
|
||||
"sections": [
|
||||
{
|
||||
"bytes": 3139,
|
||||
@@ -1516,11 +1516,11 @@ The block below is the parse this document renders, byte for byte. `--check` com
|
||||
"title": "a contract-graded refusal accepts an argparse usage error, so a renamed flag turns the whole malformed axis green *(no lane owns it; opened 2026-10-27 by the pipe, at `9878f12`)*"
|
||||
},
|
||||
{
|
||||
"bytes": 51931,
|
||||
"end_line": 13055,
|
||||
"bytes": 57258,
|
||||
"end_line": 13084,
|
||||
"id": "Q98",
|
||||
"line": 12616,
|
||||
"lines": 440,
|
||||
"lines": 469,
|
||||
"role": "opening",
|
||||
"role_detail": "",
|
||||
"status": "open and unclaimed.",
|
||||
|
||||
@@ -12,13 +12,21 @@ basename = final path component.
|
||||
. dotfile (leading dot, e.g. .gitignore) -> "(none)"
|
||||
. no dot in basename -> "(none)"
|
||||
. otherwise -> substring after LAST dot, lowercased
|
||||
|
||||
Paths default to the curated census at the repo root and to the ledger
|
||||
artifact, and are overridable with EXT_CENSUS_SRC / EXT_CENSUS_OUT so a
|
||||
reader can regenerate into scratch instead of clobbering the committed
|
||||
table. (Q101: four string literals had a real line break where "\n"
|
||||
belonged, so this file did not compile; repaired 2026-10-27.)
|
||||
"""
|
||||
import collections
|
||||
import os
|
||||
import sys
|
||||
|
||||
SRC = "/root/troupe-standup/repo_files.tsv"
|
||||
OUT = "/root/.hermes/wizard-outputs/ledger/ext-census.tsv"
|
||||
SRC = os.environ.get("EXT_CENSUS_SRC", "/root/troupe-standup/repo_files.tsv")
|
||||
OUT = os.environ.get(
|
||||
"EXT_CENSUS_OUT", "/root/.hermes/wizard-outputs/ledger/ext-census.tsv"
|
||||
)
|
||||
|
||||
def ext_of(basename):
|
||||
if basename.startswith(".") or "." not in basename:
|
||||
@@ -29,13 +37,12 @@ def parse_census(path):
|
||||
rows = []
|
||||
with open(path) as fh:
|
||||
for line in fh:
|
||||
line = line.rstrip("
|
||||
")
|
||||
line = line.rstrip("\n")
|
||||
if not line.strip():
|
||||
continue
|
||||
if line.startswith("rank path"):
|
||||
if line.startswith("rank\tpath"):
|
||||
continue
|
||||
key, _, val = line.partition(" ")
|
||||
key, _, val = line.partition("\t")
|
||||
rows.append((key.strip(), val.strip()))
|
||||
return rows
|
||||
|
||||
@@ -44,14 +51,11 @@ def main():
|
||||
cnt = collections.Counter(ext_of(os.path.basename(p)) for _, p in rows)
|
||||
total = sum(cnt.values())
|
||||
if total != len(rows):
|
||||
sys.stderr.write("WARNING: parsed rows=%d counts=%d
|
||||
" % (len(rows), total))
|
||||
sys.stderr.write("WARNING: parsed rows=%d counts=%d\n" % (len(rows), total))
|
||||
with open(OUT, "w") as fh:
|
||||
fh.write("rank extension file_count
|
||||
")
|
||||
fh.write("rank\textension\tfile_count\n")
|
||||
for i, (ext, n) in enumerate(cnt.most_common(), 1):
|
||||
fh.write("%d %s %d
|
||||
" % (i, ext, n))
|
||||
fh.write("%d\t%s\t%d\n" % (i, ext, n))
|
||||
print("rows=%d total=%d -> %s" % (len(rows), total, OUT))
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
# Meeting Action Items Template
|
||||
# Meeting Action Items — Draft Template
|
||||
|
||||
## Metadata
|
||||
- **Meeting Title:**
|
||||
- **Date:**
|
||||
- **Facilitator:**
|
||||
- **Attendees:**
|
||||
- **Meeting Title:** [Title]
|
||||
- **Date:** YYYY-MM-DD
|
||||
- **Facilitator:** [Name]
|
||||
- **Attendees:** [Names/roles]
|
||||
|
||||
## Decisions
|
||||
1.
|
||||
1. [Decision text] — Owner: [Name], Due: YYYY-MM-DD
|
||||
|
||||
## Action Items
|
||||
| # | Owner | Task | Deadline | Status |
|
||||
@@ -15,4 +15,7 @@
|
||||
| 1 | | | | Open |
|
||||
|
||||
## Follow-up
|
||||
- Next meeting:
|
||||
- Next meeting: [Date]
|
||||
|
||||
---
|
||||
Generated by quill · Hermes Agent · Lane: Draft
|
||||
Reference in new issue
Block a user