ledger: 2026-11-01 users census (JSONPlaceholder /users)
This commit is contained in:
1 parent
f77975e2c5
commit
9e3e4a0135
12 files changed
+2053
-16
No files matched your search
File diff suppressed because it is too large.
Load diff
@@ -0,0 +1,154 @@
|
||||
# Check-in census - 2026-11-01
|
||||
|
||||
*source*: every `YYYY-MM-DD-<signer>.md` file under `checkins/` (non-dated files like README.md skipped). Per-row section flags and did-item counts; `latest_per_signer` = newest dated check-in per signer.
|
||||
|
||||
## Headline
|
||||
|
||||
| measure | value |
|
||||
| --- | --- |
|
||||
| dated check-in files | 109 |
|
||||
| non-dated files skipped | 1 |
|
||||
| signers | 22 |
|
||||
| total did items | 20 |
|
||||
| total did chars | 136577 |
|
||||
|
||||
## Per-signer latest check-in
|
||||
|
||||
| signer | latest check-in | file |
|
||||
| --- | --- | --- |
|
||||
| cassian | 2026-10-07 | `2026-10-07-cassian.md` |
|
||||
| cassian-02 | 2026-10-07 | `2026-10-07-cassian-02.md` |
|
||||
| cassian-q5-census | 2026-10-07 | `2026-10-07-cassian-q5-census.md` |
|
||||
| cassian-q5-recount | 2026-10-07 | `2026-10-07-cassian-q5-recount.md` |
|
||||
| forge | 2026-10-27 | `2026-10-27-forge.md` |
|
||||
| gemini | 2026-10-13 | `2026-10-13-gemini.md` |
|
||||
| mercury | 2026-10-30 | `2026-10-30-mercury.md` |
|
||||
| merlin | 2026-10-15 | `2026-10-15-merlin.md` |
|
||||
| sentinel | 2026-10-28 | `2026-10-28-sentinel.md` |
|
||||
| timmy | 2026-10-30 | `2026-10-30-timmy.md` |
|
||||
| volt | 2026-10-31 | `2026-10-31-volt.md` |
|
||||
| zephyrus | 2026-10-31 | `2026-10-31-zephyrus.md` |
|
||||
| zephyrus-01 | 2026-10-02 | `2026-10-02-zephyrus-01.md` |
|
||||
| zephyrus-02 | 2026-10-07 | `2026-10-07-zephyrus-02.md` |
|
||||
| zephyrus-03 | 2026-10-05 | `2026-10-05-zephyrus-03.md` |
|
||||
| zephyrus-04 | 2026-10-06 | `2026-10-06-zephyrus-04.md` |
|
||||
| zephyrus-05 | 2026-10-06 | `2026-10-06-zephyrus-05.md` |
|
||||
| zephyrus-06 | 2026-10-06 | `2026-10-06-zephyrus-06.md` |
|
||||
| zephyrus-07 | 2026-10-01 | `2026-10-01-zephyrus-07.md` |
|
||||
| zephyrus-wizards | 2026-10-06 | `2026-10-06-zephyrus-wizards.md` |
|
||||
| zephyrus-wizards-02 | 2026-10-06 | `2026-10-06-zephyrus-wizards-02.md` |
|
||||
| zephyrus-wizards-03 | 2026-10-06 | `2026-10-06-zephyrus-wizards-03.md` |
|
||||
|
||||
## Full inventory
|
||||
|
||||
| date | signer | file | Did | Blocked | Next | Ask | did items | did chars |
|
||||
| --- | --- | --- | --- | --- | --- | --- | --- | --- |
|
||||
| 2026-09-24 | zephyrus | `2026-09-24-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-24 | zephyrus-02 | `2026-09-24-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-25 | zephyrus | `2026-09-25-zephyrus.md` | 1 | 0 | 1 | 1 | 0 | 2277 |
|
||||
| 2026-09-26 | zephyrus | `2026-09-26-zephyrus.md` | 1 | 0 | 0 | 0 | 0 | 4830 |
|
||||
| 2026-09-26 | zephyrus-02 | `2026-09-26-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-27 | zephyrus | `2026-09-27-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-28 | zephyrus | `2026-09-28-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-28 | zephyrus-02 | `2026-09-28-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-09-30 | zephyrus | `2026-09-30-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-01 | zephyrus | `2026-10-01-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-01 | zephyrus-03 | `2026-10-01-zephyrus-03.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-01 | zephyrus-04 | `2026-10-01-zephyrus-04.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-01 | zephyrus-05 | `2026-10-01-zephyrus-05.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-01 | zephyrus-06 | `2026-10-01-zephyrus-06.md` | 1 | 1 | 1 | 1 | 0 | 2847 |
|
||||
| 2026-10-01 | zephyrus-07 | `2026-10-01-zephyrus-07.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-02 | zephyrus-01 | `2026-10-02-zephyrus-01.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-03 | zephyrus | `2026-10-03-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-03 | zephyrus-02 | `2026-10-03-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-03 | zephyrus-03 | `2026-10-03-zephyrus-03.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-04 | zephyrus | `2026-10-04-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-04 | zephyrus-02 | `2026-10-04-zephyrus-02.md` | 1 | 1 | 1 | 1 | 0 | 3908 |
|
||||
| 2026-10-05 | zephyrus | `2026-10-05-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-05 | zephyrus-02 | `2026-10-05-zephyrus-02.md` | 0 | 1 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-05 | zephyrus-03 | `2026-10-05-zephyrus-03.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | cassian | `2026-10-06-cassian.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus | `2026-10-06-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-02 | `2026-10-06-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-04 | `2026-10-06-zephyrus-04.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-05 | `2026-10-06-zephyrus-05.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-06 | `2026-10-06-zephyrus-06.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-wizards | `2026-10-06-zephyrus-wizards.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-wizards-02 | `2026-10-06-zephyrus-wizards-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-06 | zephyrus-wizards-03 | `2026-10-06-zephyrus-wizards-03.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | cassian | `2026-10-07-cassian.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | cassian-02 | `2026-10-07-cassian-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | cassian-q5-census | `2026-10-07-cassian-q5-census.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | cassian-q5-recount | `2026-10-07-cassian-q5-recount.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | zephyrus | `2026-10-07-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-07 | zephyrus-02 | `2026-10-07-zephyrus-02.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-08 | merlin | `2026-10-08-merlin.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-08 | zephyrus | `2026-10-08-zephyrus.md` | 1 | 0 | 0 | 0 | 0 | 4663 |
|
||||
| 2026-10-09 | merlin | `2026-10-09-merlin.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-09 | zephyrus | `2026-10-09-zephyrus.md` | 1 | 1 | 1 | 1 | 0 | 4247 |
|
||||
| 2026-10-10 | mercury | `2026-10-10-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-10 | merlin | `2026-10-10-merlin.md` | 1 | 1 | 1 | 1 | 0 | 5155 |
|
||||
| 2026-10-10 | zephyrus | `2026-10-10-zephyrus.md` | 1 | 0 | 1 | 1 | 0 | 2916 |
|
||||
| 2026-10-11 | mercury | `2026-10-11-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-11 | merlin | `2026-10-11-merlin.md` | 1 | 1 | 1 | 1 | 0 | 6443 |
|
||||
| 2026-10-11 | zephyrus | `2026-10-11-zephyrus.md` | 1 | 0 | 1 | 1 | 0 | 1930 |
|
||||
| 2026-10-12 | mercury | `2026-10-12-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-12 | merlin | `2026-10-12-merlin.md` | 1 | 1 | 1 | 1 | 0 | 4389 |
|
||||
| 2026-10-12 | zephyrus | `2026-10-12-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-13 | gemini | `2026-10-13-gemini.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-13 | mercury | `2026-10-13-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-13 | merlin | `2026-10-13-merlin.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-13 | zephyrus | `2026-10-13-zephyrus.md` | 1 | 0 | 0 | 0 | 0 | 4732 |
|
||||
| 2026-10-14 | mercury | `2026-10-14-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-14 | merlin | `2026-10-14-merlin.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-14 | zephyrus | `2026-10-14-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-15 | mercury | `2026-10-15-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-15 | merlin | `2026-10-15-merlin.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-15 | volt | `2026-10-15-volt.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-15 | zephyrus | `2026-10-15-zephyrus.md` | 1 | 1 | 1 | 1 | 0 | 2959 |
|
||||
| 2026-10-16 | mercury | `2026-10-16-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-16 | volt | `2026-10-16-volt.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-16 | zephyrus | `2026-10-16-zephyrus.md` | 1 | 1 | 1 | 1 | 0 | 2856 |
|
||||
| 2026-10-17 | mercury | `2026-10-17-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-17 | volt | `2026-10-17-volt.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-17 | zephyrus | `2026-10-17-zephyrus.md` | 1 | 0 | 0 | 0 | 0 | 2099 |
|
||||
| 2026-10-18 | mercury | `2026-10-18-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-18 | volt | `2026-10-18-volt.md` | 1 | 1 | 1 | 1 | 0 | 5903 |
|
||||
| 2026-10-18 | zephyrus | `2026-10-18-zephyrus.md` | 1 | 0 | 0 | 1 | 0 | 2646 |
|
||||
| 2026-10-19 | mercury | `2026-10-19-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-19 | volt | `2026-10-19-volt.md` | 1 | 1 | 1 | 1 | 0 | 5100 |
|
||||
| 2026-10-19 | zephyrus | `2026-10-19-zephyrus.md` | 1 | 0 | 0 | 1 | 0 | 2174 |
|
||||
| 2026-10-20 | mercury | `2026-10-20-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-20 | volt | `2026-10-20-volt.md` | 1 | 1 | 1 | 1 | 0 | 1727 |
|
||||
| 2026-10-20 | zephyrus | `2026-10-20-zephyrus.md` | 1 | 0 | 0 | 1 | 0 | 3611 |
|
||||
| 2026-10-21 | mercury | `2026-10-21-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-21 | volt | `2026-10-21-volt.md` | 1 | 1 | 1 | 1 | 0 | 1469 |
|
||||
| 2026-10-21 | zephyrus | `2026-10-21-zephyrus.md` | 1 | 0 | 0 | 1 | 0 | 4158 |
|
||||
| 2026-10-22 | mercury | `2026-10-22-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-22 | zephyrus | `2026-10-22-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-23 | mercury | `2026-10-23-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-23 | volt | `2026-10-23-volt.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-23 | zephyrus | `2026-10-23-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-24 | mercury | `2026-10-24-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-24 | zephyrus | `2026-10-24-zephyrus.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-25 | mercury | `2026-10-25-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-25 | volt | `2026-10-25-volt.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-25 | zephyrus | `2026-10-25-zephyrus.md` | 1 | 0 | 0 | 1 | 0 | 6393 |
|
||||
| 2026-10-26 | mercury | `2026-10-26-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-26 | zephyrus | `2026-10-26-zephyrus.md` | 1 | 0 | 0 | 0 | 0 | 6050 |
|
||||
| 2026-10-27 | forge | `2026-10-27-forge.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-27 | mercury | `2026-10-27-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-27 | sentinel | `2026-10-27-sentinel.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-27 | zephyrus | `2026-10-27-zephyrus.md` | 1 | 0 | 0 | 0 | 5 | 9085 |
|
||||
| 2026-10-28 | mercury | `2026-10-28-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-28 | sentinel | `2026-10-28-sentinel.md` | 1 | 1 | 1 | 1 | 0 | 1968 |
|
||||
| 2026-10-28 | volt | `2026-10-28-volt.md` | 1 | 1 | 1 | 1 | 0 | 2533 |
|
||||
| 2026-10-28 | zephyrus | `2026-10-28-zephyrus.md` | 1 | 1 | 1 | 1 | 6 | 10930 |
|
||||
| 2026-10-29 | mercury | `2026-10-29-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-29 | zephyrus | `2026-10-29-zephyrus.md` | 1 | 0 | 1 | 1 | 4 | 7555 |
|
||||
| 2026-10-30 | mercury | `2026-10-30-mercury.md` | 0 | 0 | 0 | 0 | 0 | 0 |
|
||||
| 2026-10-30 | timmy | `2026-10-30-timmy.md` | 0 | 0 | 1 | 0 | 0 | 0 |
|
||||
| 2026-10-30 | volt | `2026-10-30-volt.md` | 1 | 1 | 1 | 1 | 0 | 1413 |
|
||||
| 2026-10-30 | zephyrus | `2026-10-30-zephyrus.md` | 1 | 0 | 1 | 1 | 2 | 1344 |
|
||||
| 2026-10-31 | volt | `2026-10-31-volt.md` | 1 | 1 | 1 | 0 | 0 | 2926 |
|
||||
| 2026-10-31 | zephyrus | `2026-10-31-zephyrus.md` | 1 | 0 | 1 | 1 | 3 | 3341 |
|
||||
@@ -0,0 +1,110 @@
|
||||
date signer file has_done has_blocked has_next has_ask did_items did_chars
|
||||
2026-09-24 zephyrus-02 2026-09-24-zephyrus-02.md False False False False 0 0
|
||||
2026-09-24 zephyrus 2026-09-24-zephyrus.md False False False False 0 0
|
||||
2026-09-25 zephyrus 2026-09-25-zephyrus.md True False True True 0 2277
|
||||
2026-09-26 zephyrus-02 2026-09-26-zephyrus-02.md False False False False 0 0
|
||||
2026-09-26 zephyrus 2026-09-26-zephyrus.md True False False False 0 4830
|
||||
2026-09-27 zephyrus 2026-09-27-zephyrus.md False False False False 0 0
|
||||
2026-09-28 zephyrus-02 2026-09-28-zephyrus-02.md False False False False 0 0
|
||||
2026-09-28 zephyrus 2026-09-28-zephyrus.md False False False False 0 0
|
||||
2026-09-30 zephyrus 2026-09-30-zephyrus.md False False False False 0 0
|
||||
2026-10-01 zephyrus-03 2026-10-01-zephyrus-03.md False False False False 0 0
|
||||
2026-10-01 zephyrus-04 2026-10-01-zephyrus-04.md False False False False 0 0
|
||||
2026-10-01 zephyrus-05 2026-10-01-zephyrus-05.md False False False False 0 0
|
||||
2026-10-01 zephyrus-06 2026-10-01-zephyrus-06.md True True True True 0 2847
|
||||
2026-10-01 zephyrus-07 2026-10-01-zephyrus-07.md False False False False 0 0
|
||||
2026-10-01 zephyrus 2026-10-01-zephyrus.md False False False False 0 0
|
||||
2026-10-02 zephyrus-01 2026-10-02-zephyrus-01.md False False False False 0 0
|
||||
2026-10-03 zephyrus-02 2026-10-03-zephyrus-02.md False False False False 0 0
|
||||
2026-10-03 zephyrus-03 2026-10-03-zephyrus-03.md False False False False 0 0
|
||||
2026-10-03 zephyrus 2026-10-03-zephyrus.md False False False False 0 0
|
||||
2026-10-04 zephyrus-02 2026-10-04-zephyrus-02.md True True True True 0 3908
|
||||
2026-10-04 zephyrus 2026-10-04-zephyrus.md False False False False 0 0
|
||||
2026-10-05 zephyrus-02 2026-10-05-zephyrus-02.md False True False False 0 0
|
||||
2026-10-05 zephyrus-03 2026-10-05-zephyrus-03.md False False False False 0 0
|
||||
2026-10-05 zephyrus 2026-10-05-zephyrus.md False False False False 0 0
|
||||
2026-10-06 cassian 2026-10-06-cassian.md False False False False 0 0
|
||||
2026-10-06 zephyrus-02 2026-10-06-zephyrus-02.md False False False False 0 0
|
||||
2026-10-06 zephyrus-04 2026-10-06-zephyrus-04.md False False False False 0 0
|
||||
2026-10-06 zephyrus-05 2026-10-06-zephyrus-05.md False False False False 0 0
|
||||
2026-10-06 zephyrus-06 2026-10-06-zephyrus-06.md False False False False 0 0
|
||||
2026-10-06 zephyrus-wizards-02 2026-10-06-zephyrus-wizards-02.md False False False False 0 0
|
||||
2026-10-06 zephyrus-wizards-03 2026-10-06-zephyrus-wizards-03.md False False False False 0 0
|
||||
2026-10-06 zephyrus-wizards 2026-10-06-zephyrus-wizards.md False False False False 0 0
|
||||
2026-10-06 zephyrus 2026-10-06-zephyrus.md False False False False 0 0
|
||||
2026-10-07 cassian-02 2026-10-07-cassian-02.md False False False False 0 0
|
||||
2026-10-07 cassian-q5-census 2026-10-07-cassian-q5-census.md False False False False 0 0
|
||||
2026-10-07 cassian-q5-recount 2026-10-07-cassian-q5-recount.md False False False False 0 0
|
||||
2026-10-07 cassian 2026-10-07-cassian.md False False False False 0 0
|
||||
2026-10-07 zephyrus-02 2026-10-07-zephyrus-02.md False False False False 0 0
|
||||
2026-10-07 zephyrus 2026-10-07-zephyrus.md False False False False 0 0
|
||||
2026-10-08 merlin 2026-10-08-merlin.md False False False False 0 0
|
||||
2026-10-08 zephyrus 2026-10-08-zephyrus.md True False False False 0 4663
|
||||
2026-10-09 merlin 2026-10-09-merlin.md False False False False 0 0
|
||||
2026-10-09 zephyrus 2026-10-09-zephyrus.md True True True True 0 4247
|
||||
2026-10-10 mercury 2026-10-10-mercury.md False False False False 0 0
|
||||
2026-10-10 merlin 2026-10-10-merlin.md True True True True 0 5155
|
||||
2026-10-10 zephyrus 2026-10-10-zephyrus.md True False True True 0 2916
|
||||
2026-10-11 mercury 2026-10-11-mercury.md False False False False 0 0
|
||||
2026-10-11 merlin 2026-10-11-merlin.md True True True True 0 6443
|
||||
2026-10-11 zephyrus 2026-10-11-zephyrus.md True False True True 0 1930
|
||||
2026-10-12 mercury 2026-10-12-mercury.md False False False False 0 0
|
||||
2026-10-12 merlin 2026-10-12-merlin.md True True True True 0 4389
|
||||
2026-10-12 zephyrus 2026-10-12-zephyrus.md False False False False 0 0
|
||||
2026-10-13 gemini 2026-10-13-gemini.md False False False False 0 0
|
||||
2026-10-13 mercury 2026-10-13-mercury.md False False False False 0 0
|
||||
2026-10-13 merlin 2026-10-13-merlin.md False False False False 0 0
|
||||
2026-10-13 zephyrus 2026-10-13-zephyrus.md True False False False 0 4732
|
||||
2026-10-14 mercury 2026-10-14-mercury.md False False False False 0 0
|
||||
2026-10-14 merlin 2026-10-14-merlin.md False False False False 0 0
|
||||
2026-10-14 zephyrus 2026-10-14-zephyrus.md False False False False 0 0
|
||||
2026-10-15 mercury 2026-10-15-mercury.md False False False False 0 0
|
||||
2026-10-15 merlin 2026-10-15-merlin.md False False False False 0 0
|
||||
2026-10-15 volt 2026-10-15-volt.md False False False False 0 0
|
||||
2026-10-15 zephyrus 2026-10-15-zephyrus.md True True True True 0 2959
|
||||
2026-10-16 mercury 2026-10-16-mercury.md False False False False 0 0
|
||||
2026-10-16 volt 2026-10-16-volt.md False False False False 0 0
|
||||
2026-10-16 zephyrus 2026-10-16-zephyrus.md True True True True 0 2856
|
||||
2026-10-17 mercury 2026-10-17-mercury.md False False False False 0 0
|
||||
2026-10-17 volt 2026-10-17-volt.md False False False False 0 0
|
||||
2026-10-17 zephyrus 2026-10-17-zephyrus.md True False False False 0 2099
|
||||
2026-10-18 mercury 2026-10-18-mercury.md False False False False 0 0
|
||||
2026-10-18 volt 2026-10-18-volt.md True True True True 0 5903
|
||||
2026-10-18 zephyrus 2026-10-18-zephyrus.md True False False True 0 2646
|
||||
2026-10-19 mercury 2026-10-19-mercury.md False False False False 0 0
|
||||
2026-10-19 volt 2026-10-19-volt.md True True True True 0 5100
|
||||
2026-10-19 zephyrus 2026-10-19-zephyrus.md True False False True 0 2174
|
||||
2026-10-20 mercury 2026-10-20-mercury.md False False False False 0 0
|
||||
2026-10-20 volt 2026-10-20-volt.md True True True True 0 1727
|
||||
2026-10-20 zephyrus 2026-10-20-zephyrus.md True False False True 0 3611
|
||||
2026-10-21 mercury 2026-10-21-mercury.md False False False False 0 0
|
||||
2026-10-21 volt 2026-10-21-volt.md True True True True 0 1469
|
||||
2026-10-21 zephyrus 2026-10-21-zephyrus.md True False False True 0 4158
|
||||
2026-10-22 mercury 2026-10-22-mercury.md False False False False 0 0
|
||||
2026-10-22 zephyrus 2026-10-22-zephyrus.md False False False False 0 0
|
||||
2026-10-23 mercury 2026-10-23-mercury.md False False False False 0 0
|
||||
2026-10-23 volt 2026-10-23-volt.md False False False False 0 0
|
||||
2026-10-23 zephyrus 2026-10-23-zephyrus.md False False False False 0 0
|
||||
2026-10-24 mercury 2026-10-24-mercury.md False False False False 0 0
|
||||
2026-10-24 zephyrus 2026-10-24-zephyrus.md False False False False 0 0
|
||||
2026-10-25 mercury 2026-10-25-mercury.md False False False False 0 0
|
||||
2026-10-25 volt 2026-10-25-volt.md False False False False 0 0
|
||||
2026-10-25 zephyrus 2026-10-25-zephyrus.md True False False True 0 6393
|
||||
2026-10-26 mercury 2026-10-26-mercury.md False False False False 0 0
|
||||
2026-10-26 zephyrus 2026-10-26-zephyrus.md True False False False 0 6050
|
||||
2026-10-27 forge 2026-10-27-forge.md False False False False 0 0
|
||||
2026-10-27 mercury 2026-10-27-mercury.md False False False False 0 0
|
||||
2026-10-27 sentinel 2026-10-27-sentinel.md False False False False 0 0
|
||||
2026-10-27 zephyrus 2026-10-27-zephyrus.md True False False False 5 9085
|
||||
2026-10-28 mercury 2026-10-28-mercury.md False False False False 0 0
|
||||
2026-10-28 sentinel 2026-10-28-sentinel.md True True True True 0 1968
|
||||
2026-10-28 volt 2026-10-28-volt.md True True True True 0 2533
|
||||
2026-10-28 zephyrus 2026-10-28-zephyrus.md True True True True 6 10930
|
||||
2026-10-29 mercury 2026-10-29-mercury.md False False False False 0 0
|
||||
2026-10-29 zephyrus 2026-10-29-zephyrus.md True False True True 4 7555
|
||||
2026-10-30 mercury 2026-10-30-mercury.md False False False False 0 0
|
||||
2026-10-30 timmy 2026-10-30-timmy.md False False True False 0 0
|
||||
2026-10-30 volt 2026-10-30-volt.md True True True True 0 1413
|
||||
2026-10-30 zephyrus 2026-10-30-zephyrus.md True False True True 2 1344
|
||||
2026-10-31 volt 2026-10-31-volt.md True True True False 0 2926
|
||||
2026-10-31 zephyrus 2026-10-31-zephyrus.md True False True True 3 3341
|
||||
|
@@ -1,5 +1,11 @@
|
||||
# CHECK for the albums census (JSONPlaceholder /albums)
|
||||
|
||||
Single bare shell command whose exit code IS the verdict (0 = correct, nonzero = wrong):
|
||||
|
||||
python3 /root/troupe-standup/wizard-work/ledger/2026-10-29-albums-census/verify_albums.py
|
||||
#!/usr/bin/env bash
|
||||
# CHECK for the albums census (JSONPlaceholder /albums).
|
||||
#
|
||||
# One bare command whose exit code IS the verdict: 0 = correct, 1 = wrong,
|
||||
# 2 = could not grade (an input is missing). It resolves its own directory, so
|
||||
# it reads the same from the repo root, from this directory, or from a clean
|
||||
# clone at another path -- the prose that used to sit in this file's body
|
||||
# explained that contract and was parsed as shell (Q144).
|
||||
set -u
|
||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit 2
|
||||
exec python3 "$HERE/verify_albums.py"
|
||||
@@ -3,21 +3,32 @@
|
||||
|
||||
Recomputes the expected aggregate straight from raw_albums.json (the real
|
||||
fetched source) and compares it byte-for-byte against albums_by_user.csv.
|
||||
Exit code 0 = correct; nonzero = wrong.
|
||||
|
||||
Paths are resolved from this file's own location, never from a host: the same
|
||||
reading is produced in a clean clone at any path (Q144).
|
||||
|
||||
Exit codes: 0 correct, 1 mismatch, 2 could not grade (an input is missing).
|
||||
"""
|
||||
import csv
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
from collections import Counter
|
||||
|
||||
DIR = "/root/troupe-standup/wizard-work/ledger/2026-10-29-albums-census"
|
||||
SRC = f"{DIR}/raw_albums.json"
|
||||
OUT = f"{DIR}/albums_by_user.csv"
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
SRC = os.path.join(HERE, "raw_albums.json")
|
||||
OUT = os.path.join(HERE, "albums_by_user.csv")
|
||||
|
||||
data = json.load(open(SRC))
|
||||
for p in (SRC, OUT):
|
||||
if not os.path.exists(p):
|
||||
print(f"CANNOT GRADE: missing input {p}")
|
||||
sys.exit(2)
|
||||
|
||||
with open(SRC, encoding="utf-8") as f:
|
||||
data = json.load(f)
|
||||
expected = [list(t) for t in sorted(((str(u), str(c)) for u, c in Counter(a["userId"] for a in data).items()), key=lambda t: int(t[0]))]
|
||||
|
||||
with open(OUT, newline="") as f:
|
||||
with open(OUT, newline="", encoding="utf-8") as f:
|
||||
rows = list(csv.reader(f))
|
||||
got = [[str(r[0]), str(r[1])] for r in rows[1:] if r]
|
||||
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env bash
|
||||
set -u
|
||||
HERE="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" || exit 2
|
||||
exec python3 "$HERE/verify_users.py"
|
||||
@@ -0,0 +1,21 @@
|
||||
import csv, json, os
|
||||
HERE = "/root/troupe-standup/wizard-work/ledger/2026-11-01-users-census"
|
||||
with open(os.path.join(HERE, "raw_users.json"), encoding="utf-8") as f:
|
||||
users = json.load(f)
|
||||
FIELDS = ["id", "name", "username", "email", "company", "phone", "website"]
|
||||
rows = []
|
||||
for u in users:
|
||||
c = u.get("company") or {}
|
||||
rows.append((str(u["id"]), u["name"], u["username"], u["email"], c.get("name", ""), u.get("phone", ""), u.get("website", "")))
|
||||
rows.sort(key=lambda r: int(r[0]))
|
||||
with open(os.path.join(HERE, "users.csv"), "w", newline="", encoding="utf-8") as f:
|
||||
w = csv.writer(f)
|
||||
w.writerow(FIELDS)
|
||||
w.writerows(rows)
|
||||
with open(os.path.join(HERE, "users.md"), "w", encoding="utf-8") as f:
|
||||
f.write("# JSONPlaceholder /users census\n\nFetched 2026-11-01 from https://jsonplaceholder.typicode.com/users (10 records).\n\n")
|
||||
f.write("| id | name | username | email | company | phone | website |\n")
|
||||
f.write("|---|---|---|---|---|---|---|\n")
|
||||
for r in rows:
|
||||
f.write("| " + " | ".join(r) + " |\n")
|
||||
print("built users.csv (%d rows), users.md" % len(rows))
|
||||
@@ -0,0 +1,232 @@
|
||||
[
|
||||
{
|
||||
"id": 1,
|
||||
"name": "Leanne Graham",
|
||||
"username": "Bret",
|
||||
"email": "Sincere@april.biz",
|
||||
"address": {
|
||||
"street": "Kulas Light",
|
||||
"suite": "Apt. 556",
|
||||
"city": "Gwenborough",
|
||||
"zipcode": "92998-3874",
|
||||
"geo": {
|
||||
"lat": "-37.3159",
|
||||
"lng": "81.1496"
|
||||
}
|
||||
},
|
||||
"phone": "1-770-736-8031 x56442",
|
||||
"website": "hildegard.org",
|
||||
"company": {
|
||||
"name": "Romaguera-Crona",
|
||||
"catchPhrase": "Multi-layered client-server neural-net",
|
||||
"bs": "harness real-time e-markets"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 2,
|
||||
"name": "Ervin Howell",
|
||||
"username": "Antonette",
|
||||
"email": "Shanna@melissa.tv",
|
||||
"address": {
|
||||
"street": "Victor Plains",
|
||||
"suite": "Suite 879",
|
||||
"city": "Wisokyburgh",
|
||||
"zipcode": "90566-7771",
|
||||
"geo": {
|
||||
"lat": "-43.9509",
|
||||
"lng": "-34.4618"
|
||||
}
|
||||
},
|
||||
"phone": "010-692-6593 x09125",
|
||||
"website": "anastasia.net",
|
||||
"company": {
|
||||
"name": "Deckow-Crist",
|
||||
"catchPhrase": "Proactive didactic contingency",
|
||||
"bs": "synergize scalable supply-chains"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 3,
|
||||
"name": "Clementine Bauch",
|
||||
"username": "Samantha",
|
||||
"email": "Nathan@yesenia.net",
|
||||
"address": {
|
||||
"street": "Douglas Extension",
|
||||
"suite": "Suite 847",
|
||||
"city": "McKenziehaven",
|
||||
"zipcode": "59590-4157",
|
||||
"geo": {
|
||||
"lat": "-68.6102",
|
||||
"lng": "-47.0653"
|
||||
}
|
||||
},
|
||||
"phone": "1-463-123-4447",
|
||||
"website": "ramiro.info",
|
||||
"company": {
|
||||
"name": "Romaguera-Jacobson",
|
||||
"catchPhrase": "Face to face bifurcated interface",
|
||||
"bs": "e-enable strategic applications"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 4,
|
||||
"name": "Patricia Lebsack",
|
||||
"username": "Karianne",
|
||||
"email": "Julianne.OConner@kory.org",
|
||||
"address": {
|
||||
"street": "Hoeger Mall",
|
||||
"suite": "Apt. 692",
|
||||
"city": "South Elvis",
|
||||
"zipcode": "53919-4257",
|
||||
"geo": {
|
||||
"lat": "29.4572",
|
||||
"lng": "-164.2990"
|
||||
}
|
||||
},
|
||||
"phone": "493-170-9623 x156",
|
||||
"website": "kale.biz",
|
||||
"company": {
|
||||
"name": "Robel-Corkery",
|
||||
"catchPhrase": "Multi-tiered zero tolerance productivity",
|
||||
"bs": "transition cutting-edge web services"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 5,
|
||||
"name": "Chelsey Dietrich",
|
||||
"username": "Kamren",
|
||||
"email": "Lucio_Hettinger@annie.ca",
|
||||
"address": {
|
||||
"street": "Skiles Walks",
|
||||
"suite": "Suite 351",
|
||||
"city": "Roscoeview",
|
||||
"zipcode": "33263",
|
||||
"geo": {
|
||||
"lat": "-31.8129",
|
||||
"lng": "62.5342"
|
||||
}
|
||||
},
|
||||
"phone": "(254)954-1289",
|
||||
"website": "demarco.info",
|
||||
"company": {
|
||||
"name": "Keebler LLC",
|
||||
"catchPhrase": "User-centric fault-tolerant solution",
|
||||
"bs": "revolutionize end-to-end systems"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 6,
|
||||
"name": "Mrs. Dennis Schulist",
|
||||
"username": "Leopoldo_Corkery",
|
||||
"email": "Karley_Dach@jasper.info",
|
||||
"address": {
|
||||
"street": "Norberto Crossing",
|
||||
"suite": "Apt. 950",
|
||||
"city": "South Christy",
|
||||
"zipcode": "23505-1337",
|
||||
"geo": {
|
||||
"lat": "-71.4197",
|
||||
"lng": "71.7478"
|
||||
}
|
||||
},
|
||||
"phone": "1-477-935-8478 x6430",
|
||||
"website": "ola.org",
|
||||
"company": {
|
||||
"name": "Considine-Lockman",
|
||||
"catchPhrase": "Synchronised bottom-line interface",
|
||||
"bs": "e-enable innovative applications"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 7,
|
||||
"name": "Kurtis Weissnat",
|
||||
"username": "Elwyn.Skiles",
|
||||
"email": "Telly.Hoeger@billy.biz",
|
||||
"address": {
|
||||
"street": "Rex Trail",
|
||||
"suite": "Suite 280",
|
||||
"city": "Howemouth",
|
||||
"zipcode": "58804-1099",
|
||||
"geo": {
|
||||
"lat": "24.8918",
|
||||
"lng": "21.8984"
|
||||
}
|
||||
},
|
||||
"phone": "210.067.6132",
|
||||
"website": "elvis.io",
|
||||
"company": {
|
||||
"name": "Johns Group",
|
||||
"catchPhrase": "Configurable multimedia task-force",
|
||||
"bs": "generate enterprise e-tailers"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 8,
|
||||
"name": "Nicholas Runolfsdottir V",
|
||||
"username": "Maxime_Nienow",
|
||||
"email": "Sherwood@rosamond.me",
|
||||
"address": {
|
||||
"street": "Ellsworth Summit",
|
||||
"suite": "Suite 729",
|
||||
"city": "Aliyaview",
|
||||
"zipcode": "45169",
|
||||
"geo": {
|
||||
"lat": "-14.3990",
|
||||
"lng": "-120.7677"
|
||||
}
|
||||
},
|
||||
"phone": "586.493.6943 x140",
|
||||
"website": "jacynthe.com",
|
||||
"company": {
|
||||
"name": "Abernathy Group",
|
||||
"catchPhrase": "Implemented secondary concept",
|
||||
"bs": "e-enable extensible e-tailers"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 9,
|
||||
"name": "Glenna Reichert",
|
||||
"username": "Delphine",
|
||||
"email": "Chaim_McDermott@dana.io",
|
||||
"address": {
|
||||
"street": "Dayna Park",
|
||||
"suite": "Suite 449",
|
||||
"city": "Bartholomebury",
|
||||
"zipcode": "76495-3109",
|
||||
"geo": {
|
||||
"lat": "24.6463",
|
||||
"lng": "-168.8889"
|
||||
}
|
||||
},
|
||||
"phone": "(775)976-6794 x41206",
|
||||
"website": "conrad.com",
|
||||
"company": {
|
||||
"name": "Yost and Sons",
|
||||
"catchPhrase": "Switchable contextually-based project",
|
||||
"bs": "aggregate real-time technologies"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": 10,
|
||||
"name": "Clementina DuBuque",
|
||||
"username": "Moriah.Stanton",
|
||||
"email": "Rey.Padberg@karina.biz",
|
||||
"address": {
|
||||
"street": "Kattie Turnpike",
|
||||
"suite": "Suite 198",
|
||||
"city": "Lebsackbury",
|
||||
"zipcode": "31428-2261",
|
||||
"geo": {
|
||||
"lat": "-38.2386",
|
||||
"lng": "57.2232"
|
||||
}
|
||||
},
|
||||
"phone": "024-648-3804",
|
||||
"website": "ambrose.net",
|
||||
"company": {
|
||||
"name": "Hoeger LLC",
|
||||
"catchPhrase": "Centralized empowering task-force",
|
||||
"bs": "target end-to-end models"
|
||||
}
|
||||
}
|
||||
]
|
||||
@@ -0,0 +1,11 @@
|
||||
id,name,username,email,company,phone,website
|
||||
1,Leanne Graham,Bret,Sincere@april.biz,Romaguera-Crona,1-770-736-8031 x56442,hildegard.org
|
||||
2,Ervin Howell,Antonette,Shanna@melissa.tv,Deckow-Crist,010-692-6593 x09125,anastasia.net
|
||||
3,Clementine Bauch,Samantha,Nathan@yesenia.net,Romaguera-Jacobson,1-463-123-4447,ramiro.info
|
||||
4,Patricia Lebsack,Karianne,Julianne.OConner@kory.org,Robel-Corkery,493-170-9623 x156,kale.biz
|
||||
5,Chelsey Dietrich,Kamren,Lucio_Hettinger@annie.ca,Keebler LLC,(254)954-1289,demarco.info
|
||||
6,Mrs. Dennis Schulist,Leopoldo_Corkery,Karley_Dach@jasper.info,Considine-Lockman,1-477-935-8478 x6430,ola.org
|
||||
7,Kurtis Weissnat,Elwyn.Skiles,Telly.Hoeger@billy.biz,Johns Group,210.067.6132,elvis.io
|
||||
8,Nicholas Runolfsdottir V,Maxime_Nienow,Sherwood@rosamond.me,Abernathy Group,586.493.6943 x140,jacynthe.com
|
||||
9,Glenna Reichert,Delphine,Chaim_McDermott@dana.io,Yost and Sons,(775)976-6794 x41206,conrad.com
|
||||
10,Clementina DuBuque,Moriah.Stanton,Rey.Padberg@karina.biz,Hoeger LLC,024-648-3804,ambrose.net
|
||||
|
@@ -0,0 +1,16 @@
|
||||
# JSONPlaceholder /users census
|
||||
|
||||
Fetched 2026-11-01 from https://jsonplaceholder.typicode.com/users (10 records).
|
||||
|
||||
| id | name | username | email | company | phone | website |
|
||||
|---|---|---|---|---|---|---|
|
||||
| 1 | Leanne Graham | Bret | Sincere@april.biz | Romaguera-Crona | 1-770-736-8031 x56442 | hildegard.org |
|
||||
| 2 | Ervin Howell | Antonette | Shanna@melissa.tv | Deckow-Crist | 010-692-6593 x09125 | anastasia.net |
|
||||
| 3 | Clementine Bauch | Samantha | Nathan@yesenia.net | Romaguera-Jacobson | 1-463-123-4447 | ramiro.info |
|
||||
| 4 | Patricia Lebsack | Karianne | Julianne.OConner@kory.org | Robel-Corkery | 493-170-9623 x156 | kale.biz |
|
||||
| 5 | Chelsey Dietrich | Kamren | Lucio_Hettinger@annie.ca | Keebler LLC | (254)954-1289 | demarco.info |
|
||||
| 6 | Mrs. Dennis Schulist | Leopoldo_Corkery | Karley_Dach@jasper.info | Considine-Lockman | 1-477-935-8478 x6430 | ola.org |
|
||||
| 7 | Kurtis Weissnat | Elwyn.Skiles | Telly.Hoeger@billy.biz | Johns Group | 210.067.6132 | elvis.io |
|
||||
| 8 | Nicholas Runolfsdottir V | Maxime_Nienow | Sherwood@rosamond.me | Abernathy Group | 586.493.6943 x140 | jacynthe.com |
|
||||
| 9 | Glenna Reichert | Delphine | Chaim_McDermott@dana.io | Yost and Sons | (775)976-6794 x41206 | conrad.com |
|
||||
| 10 | Clementina DuBuque | Moriah.Stanton | Rey.Padberg@karina.biz | Hoeger LLC | 024-648-3804 | ambrose.net |
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env python3
|
||||
# Independent CHECK for the /users census table.
|
||||
import csv, json, os, sys
|
||||
HERE = os.path.dirname(os.path.abspath(__file__))
|
||||
SRC = os.path.join(HERE, "raw_users.json")
|
||||
OUT = os.path.join(HERE, "users.csv")
|
||||
for p in (SRC, OUT):
|
||||
if not os.path.exists(p):
|
||||
print("CANNOT GRADE: missing " + p)
|
||||
sys.exit(2)
|
||||
with open(SRC, encoding="utf-8") as f:
|
||||
users = json.load(f)
|
||||
exp = sorted(
|
||||
([str(u["id"]), u["name"], u["username"], u["email"], (u.get("company") or {}).get("name", ""), u.get("phone", ""), u.get("website", "")] for u in users),
|
||||
key=lambda r: int(r[0]))
|
||||
with open(OUT, newline="", encoding="utf-8") as f:
|
||||
rows = list(csv.reader(f))
|
||||
ok = (rows[0] == ["id", "name", "username", "email", "company", "phone", "website"]) and (exp == rows[1:])
|
||||
print("raw_users.json records: " + str(len(users)))
|
||||
print("expected " + str(len(exp)) + " users")
|
||||
print("file rows: " + str(len(rows) - 1))
|
||||
print("CHECK: " + ("OK" if ok else "MISMATCH"))
|
||||
sys.exit(0 if ok else 1)
|
||||
@@ -10,16 +10,20 @@
|
||||
# Exits 0 only on exact match of all census fields.
|
||||
set -u
|
||||
|
||||
REPO=/root/troupe-standup
|
||||
REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" || exit 2
|
||||
OUT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
JSON="$OUT/wizard-work-census-2026-11-01.json"
|
||||
|
||||
python3 - "$JSON" <<'PY'
|
||||
python3 - "$JSON" "$REPO" <<'PY'
|
||||
import json, subprocess, sys
|
||||
from collections import Counter
|
||||
|
||||
json_path = sys.argv[1]
|
||||
repo = "/root/troupe-standup"
|
||||
# The tree is the one this CHECK sits in, never a host path: the first version
|
||||
# hardcoded /root/troupe-standup twice and graded the HOST repository at the
|
||||
# pin, so a clean clone at another path read a green tick about someone else's
|
||||
# tree (Q144).
|
||||
repo = sys.argv[2]
|
||||
|
||||
def git(repo, *args):
|
||||
return subprocess.run(["git", "-C", repo, *args],
|
||||
@@ -64,8 +68,16 @@ committed = json.load(open(json_path))
|
||||
pin = committed.get("head")
|
||||
if not pin:
|
||||
print("[CHECK] JSON missing 'head' pin", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
derived = derive_at(pin)
|
||||
sys.exit(2)
|
||||
try:
|
||||
derived = derive_at(pin)
|
||||
except (subprocess.CalledProcessError, OSError, ValueError) as exc:
|
||||
# rc 2 = could not grade: git could not answer at the pin (bad pin, not a
|
||||
# repository, detached HEAD with no branch to name). The old body let the
|
||||
# CalledProcessError escape as a traceback with rc 1, which reads as a
|
||||
# verdict on the artifact rather than on the instrument.
|
||||
print("[CHECK] CANNOT GRADE at pin %s: %r" % (pin, exc), file=sys.stderr)
|
||||
sys.exit(2)
|
||||
|
||||
fields = ["branch", "branch_head", "head", "commit_count", "tracked_file_count",
|
||||
"total_unique_emails"]
|
||||
|
||||
Reference in new issue
Block a user