@djordje-stojanovic/sigmaskills 0.15.0 → 0.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to [Sigmaskills](https://github.com/Djordje-Stojanovic/Sigma
4
4
 
5
5
  ## [Unreleased]
6
6
 
7
+ ## [0.15.1] — 2026-10-21
8
+
9
+ ### Fixed
10
+
11
+ - `sigmadeeplook --ask`: a question with two numeric words (such as "how many tool errors") no longer takes a column that names only one of them. `hookErrors` and `shape.tools` no longer answer it. The look now says no table answers exactly, and it shows the matching lines (ticket 83, K29a-1).
12
+
7
13
  ## [0.15.0] — 2026-10-21
8
14
 
9
15
  ### Added
@@ -379,7 +385,8 @@ Ship high-rigor, installable agent skills (not apps): full-repo audits, performa
379
385
  | 2026-08-11 | `5dab832` | Add CHANGELOG and mark v0.1.0 as the first Sigmaskills release |
380
386
  | 2026-08-11 | `124a666` | Polish v0.1.0 docs for multi-host install and use |
381
387
 
382
- [Unreleased]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.15.0...HEAD
388
+ [Unreleased]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.15.1...HEAD
389
+ [0.15.1]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.15.0...v0.15.1
383
390
  [0.15.0]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.14.0...v0.15.0
384
391
  [0.14.0]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.13.0...v0.14.0
385
392
  [0.13.0]: https://github.com/Djordje-Stojanovic/Sigmaskills/compare/v0.12.0...v0.13.0
package/README.md CHANGED
@@ -6,7 +6,7 @@ Portable [Agent Skills](https://agentskills.io/) that install once and run on **
6
6
 
7
7
  | | |
8
8
  |---|---|
9
- | **Release** | [**v0.15.0**](https://github.com/Djordje-Stojanovic/Sigmaskills/releases/tag/v0.15.0) |
9
+ | **Release** | [**v0.15.1**](https://github.com/Djordje-Stojanovic/Sigmaskills/releases/tag/v0.15.1) |
10
10
  | **Changelog** | [CHANGELOG.md](CHANGELOG.md) |
11
11
  | **License** | [MIT](LICENSE) |
12
12
  | **Spec** | [agentskills.io](https://agentskills.io/) |
package/manifest.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
3
  "name": "sigmaskills",
4
- "version": "0.15.0",
4
+ "version": "0.15.1",
5
5
  "description": "Portable Agent Skills monorepo and first-party Sigma Installer",
6
6
  "skills": [
7
7
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@djordje-stojanovic/sigmaskills",
3
- "version": "0.15.0",
3
+ "version": "0.15.1",
4
4
  "description": "Portable Agent Skills monorepo and first-party Sigma Installer",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -171,6 +171,16 @@
171
171
  "references/brief-method.md": "1bd9200bec7d41106bdff4f0ab39b86597bb2524b8d37af0eb663e9ec854770e",
172
172
  "references/prompt-contract.md": "198bc5ab7a4c27fa14f3c168fe2f79bf1851e1ab7ef89cd95e551df5e398485a"
173
173
  }
174
+ },
175
+ {
176
+ "release": "0.15.0",
177
+ "revision": "38d4d593658e4e3774f5b0a0f872d66a3fdcb108fdb289676a5e17359c1540d7",
178
+ "files": {
179
+ "SKILL.md": "f8b5421783cba8891b8fa1673e42a4bd0c1c79211143f6ea6443ab5023fcb483",
180
+ "agents/openai.yaml": "69c0219b0f8ab7974527ca9f6fb06b67b21683a42ac1de63ef6014cdef1dde85",
181
+ "references/brief-method.md": "1bd9200bec7d41106bdff4f0ab39b86597bb2524b8d37af0eb663e9ec854770e",
182
+ "references/prompt-contract.md": "4cc99f365ab2ad2c2782c29df4963f90b4b3c23e1c6183f0d27ca0cf43616eaa"
183
+ }
174
184
  }
175
185
  ],
176
186
  "sigmaperformance": [
@@ -402,6 +412,17 @@
402
412
  "references/method.md": "659848b0d8a7e2dbcbde3fa88de09d07f20b68bb91ea808e766d526b137adc03",
403
413
  "references/report.md": "ebabc522ac35dcfd7538abe4657d4933bf795d5ea20242a968592e0c569e7b41"
404
414
  }
415
+ },
416
+ {
417
+ "release": "0.15.0",
418
+ "revision": "341fb30b924c97cbc2fde344247c0ffea5993fd0d2a85120d9af012bd9bd8e77",
419
+ "files": {
420
+ "SKILL.md": "d6fd03185ebe905a257361a60b6dcb783cd2086faaf05feca016cce9297f1231",
421
+ "agents/openai.yaml": "fc9f585d84b751aa9978d3b275a9f8b0383a1d57cb49fec27e905e794fa14d5a",
422
+ "references/measure.md": "efd083364caedfce9c5e69a2267209d3317cfa218029b48455e49cdc2f9affe0",
423
+ "references/method.md": "659848b0d8a7e2dbcbde3fa88de09d07f20b68bb91ea808e766d526b137adc03",
424
+ "references/report.md": "ebabc522ac35dcfd7538abe4657d4933bf795d5ea20242a968592e0c569e7b41"
425
+ }
405
426
  }
406
427
  ],
407
428
  "sigmawrite": [
@@ -540,6 +561,14 @@
540
561
  "SKILL.md": "51893d97bf272ee77d149967c8fc70d5071f0cdc046c87b8f5a3607eac9fb406",
541
562
  "agents/openai.yaml": "19b53dc100195c2d8cfd03720028f577ce8e3ba95829551c6d31d96a23021144"
542
563
  }
564
+ },
565
+ {
566
+ "release": "0.15.0",
567
+ "revision": "91395be780dfa0c923a79f2876315c2a723f70e3bfe871dfeaa40b5d7b96d379",
568
+ "files": {
569
+ "SKILL.md": "51893d97bf272ee77d149967c8fc70d5071f0cdc046c87b8f5a3607eac9fb406",
570
+ "agents/openai.yaml": "19b53dc100195c2d8cfd03720028f577ce8e3ba95829551c6d31d96a23021144"
571
+ }
543
572
  }
544
573
  ],
545
574
  "sigmarefactor": [
@@ -668,6 +697,15 @@
668
697
  "agents/openai.yaml": "baaa351482edffe072ae708968dcc1c70842caebf38a8aa7fd667b8da7a01c70",
669
698
  "references/scan.md": "049715a6948138109b64994e969a1ed5541cab8151b8c8d9070d5eae379d45c5"
670
699
  }
700
+ },
701
+ {
702
+ "release": "0.15.0",
703
+ "revision": "25b4efaa5d9d9309791dbbec0f1a32eab409137c4cd16892f646714019b04115",
704
+ "files": {
705
+ "SKILL.md": "a6bef0c53cf780c79da20204cbbd15db65fa98dac3afa0ef1c8475725cd7f4cb",
706
+ "agents/openai.yaml": "baaa351482edffe072ae708968dcc1c70842caebf38a8aa7fd667b8da7a01c70",
707
+ "references/scan.md": "049715a6948138109b64994e969a1ed5541cab8151b8c8d9070d5eae379d45c5"
708
+ }
671
709
  }
672
710
  ],
673
711
  "sigmaimprove": [
@@ -813,6 +851,17 @@
813
851
  "references/issue.md": "59300698c9a1d32e1d868173b22dea5fcc7ea7b7ca97198faf688256e5638300",
814
852
  "references/lenses.md": "c5f2982ed1f4330035895dabacef550a5c1b241e0e1a370547b8715f89f3f8b3"
815
853
  }
854
+ },
855
+ {
856
+ "release": "0.15.0",
857
+ "revision": "9efbc885f031786dd84637009a3b8c38806c50d587b84799692fe60828c32da0",
858
+ "files": {
859
+ "SKILL.md": "118dacdc212f6f359ad9be0564492451bb2dc93f1f03c8af0094994caeff3060",
860
+ "agents/openai.yaml": "ba80d59887cef951c006ad52ddd42fa1999d12b464dff17b6bb0b711f7eb505f",
861
+ "references/categories.md": "58ad43e0da22b5a67f0bec01abc13760ffa835dec9efc07343b07e8326cba7bd",
862
+ "references/issue.md": "59300698c9a1d32e1d868173b22dea5fcc7ea7b7ca97198faf688256e5638300",
863
+ "references/lenses.md": "c5f2982ed1f4330035895dabacef550a5c1b241e0e1a370547b8715f89f3f8b3"
864
+ }
816
865
  }
817
866
  ],
818
867
  "sigmaship": [
@@ -945,6 +994,16 @@
945
994
  "references/land.md": "9b2a264abdc4c011ca43e6b49ef50f0e17ebd523d898c00ae5c38c204d152dd1",
946
995
  "references/review-round.md": "9a4ff45aa7961142bfd9230e98beae53b5b0f4efcd723a20f50ed0415c538af8"
947
996
  }
997
+ },
998
+ {
999
+ "release": "0.15.0",
1000
+ "revision": "e3a6f3c5b74d417ff5a5eb0476ae80365bae9622bbb9bd9185b1c9ddf7c9edad",
1001
+ "files": {
1002
+ "SKILL.md": "0e2fd83f531d07d8ca901274608601d0608712d537969889a272dcfca954a0cf",
1003
+ "agents/openai.yaml": "29f73f7ef65b71dfd4efa27dfef26a961dae98eee2882c63084528b7abef3b96",
1004
+ "references/land.md": "9b2a264abdc4c011ca43e6b49ef50f0e17ebd523d898c00ae5c38c204d152dd1",
1005
+ "references/review-round.md": "9a4ff45aa7961142bfd9230e98beae53b5b0f4efcd723a20f50ed0415c538af8"
1006
+ }
948
1007
  }
949
1008
  ],
950
1009
  "sigmawritegui": [
@@ -1028,6 +1087,15 @@
1028
1087
  "agents/openai.yaml": "33215ab50d5d81d54397ac3bfa4a3d6b47ae334a30e5dd262b19f6c45b126323",
1029
1088
  "template.html": "25669e5f711da8b314b745b6aa99e7734eafad5f0dfd75e10cabb298270b2f92"
1030
1089
  }
1090
+ },
1091
+ {
1092
+ "release": "0.15.0",
1093
+ "revision": "9e3b2ccb9c88e75f1b404ba1ac4cfd498becf08f869d9bf09eee1a5e39b4d775",
1094
+ "files": {
1095
+ "SKILL.md": "3f8218118b971437c496210d01ef1d3ee18ce30fc02df779d8442b61029af704",
1096
+ "agents/openai.yaml": "33215ab50d5d81d54397ac3bfa4a3d6b47ae334a30e5dd262b19f6c45b126323",
1097
+ "template.html": "25669e5f711da8b314b745b6aa99e7734eafad5f0dfd75e10cabb298270b2f92"
1098
+ }
1031
1099
  }
1032
1100
  ],
1033
1101
  "sigmaresearch": [
@@ -1206,6 +1274,24 @@
1206
1274
  "scripts/sr_core.py": "b0e73b1f826577deae986de7c9afb9f3c3b6e6fc5ae5f4a65f453e12212ff3d4",
1207
1275
  "scripts/sr_readers.py": "ebed1201837f211ee34be420dcc912237b7fc61dcf362139e5157a2282d35c2c"
1208
1276
  }
1277
+ },
1278
+ {
1279
+ "release": "0.15.0",
1280
+ "revision": "cf68ba04962b3d9fc710936d24cc1e721fb76c97dd843e60c168da66713f7665",
1281
+ "files": {
1282
+ "SKILL.md": "1c4d9840f170fbf509a0c92d7ac1778e659ef8e60d156cdbaae6cb0300f42e0b",
1283
+ "agents/openai.yaml": "147b99833f77e6d12c4d72424c8b4f06248de7b0ad3f260357429c6a2bce4b68",
1284
+ "references/access-ladder.md": "5c30c7691d7788e1c4da576f604a131d3b484d1e594575b3070126922ab9c711",
1285
+ "references/counting.md": "3213da1b93d383c4855a4fdfb8bce2593c6254f8a67736835ce8cd91279c921c",
1286
+ "references/deep-routes.md": "1b21ad16f6cc58a6e88b33963ba8a09b33d95c85ce10f018b539557c0299d9c4",
1287
+ "references/public-sources.md": "9d847996482e8fd48dc24826a4d7effa2edb831ea1523aa8b203101937e7b48e",
1288
+ "references/reddit.md": "c60e8eadabe26fa636acf1946645071ab994303869726926696710d13f52b475",
1289
+ "references/x.md": "b00fe58bdba537e3d1e9214fd07a70b6369bc2638ba70b62fd4a68953e147b23",
1290
+ "scripts/read.py": "ed2959813c1a4a2f8631d11c4acb905cf5137190da1c5590001d250a133dca95",
1291
+ "scripts/source_log.py": "21fa54180b67b5a66ba4377fe3c209ae6f87d0ae40047a91856cf2bc483d0e09",
1292
+ "scripts/sr_core.py": "b0e73b1f826577deae986de7c9afb9f3c3b6e6fc5ae5f4a65f453e12212ff3d4",
1293
+ "scripts/sr_readers.py": "ebed1201837f211ee34be420dcc912237b7fc61dcf362139e5157a2282d35c2c"
1294
+ }
1209
1295
  }
1210
1296
  ],
1211
1297
  "sigmacreatearena": [
@@ -1341,6 +1427,25 @@
1341
1427
  "kit/template/server.py": "34d00183f3ec333fee4ea365749fe1e30987c4cf775e03316cc702b16ca43b2c",
1342
1428
  "references/arena-guide.md": "887677f41a75b8064d9bac9653b4ce12ed3855ef176e44e4261fa1ec690c9649"
1343
1429
  }
1430
+ },
1431
+ {
1432
+ "release": "0.15.0",
1433
+ "revision": "423d17e47a77dfba66dd851731db9f4b9a4707c69964b3073ccbb6f38ff03efe",
1434
+ "files": {
1435
+ "SKILL.md": "e2d961449b62b1437c93198592cfa18448b88a3368f1148b508f49163ab2aed5",
1436
+ "agents/openai.yaml": "42b371e61bdef29ea71fbc46153580cafad6de5df10229c0f10dbbcb24eca4ab",
1437
+ "kit/README.md": "9bce3ff2230c9633578a372815626d06ab520e8cff30e283d1dbd52c47e74987",
1438
+ "kit/screenshots/caption-rank.png": "3a02d0bf0c5d9047649271bf4fc052cc2f8da8dee1fb17f031fcd79cea7f31c4",
1439
+ "kit/screenshots/image-board.png": "3aa55effa50652f62991b316df1e151f4c576d6e9ae9adeda9c0e06451271b51",
1440
+ "kit/screenshots/image-rank.png": "b0dc05828fc706c93e38a9561f4f1b4ba8565f9fbe4339c0a8b9376b8bbfff5c",
1441
+ "kit/template/arena.json": "fc21175edf3efec826c8506a21b79c202e3603c3c4daac1d6a331d9c967a4c12",
1442
+ "kit/template/arena.py": "b086db96a7e11471a25ec0fb7eaf23d12260b391a557db7775e189dab893e5a6",
1443
+ "kit/template/index.html": "19b37dbe299c89d3fa5a1936504fe9b20b54dc1eae06cfb983a1f915954f1194",
1444
+ "kit/template/make_items.py": "bbacc3ad78bd503063fc0f53d92383c761021237badfe6331f98e6fdd1567b54",
1445
+ "kit/template/selftest.py": "72d9697ea380614032fde91b996f880ff46f94896de6efb3960bf8ed439b3a86",
1446
+ "kit/template/server.py": "34d00183f3ec333fee4ea365749fe1e30987c4cf775e03316cc702b16ca43b2c",
1447
+ "references/arena-guide.md": "887677f41a75b8064d9bac9653b4ce12ed3855ef176e44e4261fa1ec690c9649"
1448
+ }
1344
1449
  }
1345
1450
  ],
1346
1451
  "easytalk": [
@@ -1871,6 +1976,83 @@
1871
1976
  "scripts/dl_xmlvals.py": "47b9e303e74e932e5f450fc5bc7b999913f8e46afbee21f67bcdb653c60209f5",
1872
1977
  "scripts/look.py": "00c862b170bb5b6d78663fe81645a6b6d2178c153afc59ff1444abc720f6fe2a"
1873
1978
  }
1979
+ },
1980
+ {
1981
+ "release": "0.15.0",
1982
+ "revision": "e13a472c6b2a2763abb8b9fb4a748ee7a86f89243fcfdb32d8dcb0ebf8e7cc40",
1983
+ "files": {
1984
+ "SKILL.md": "68f9a560e750fea146302a348966aa8e93d84731088fe899517c59f024b28790",
1985
+ "agents/openai.yaml": "019b5763cdb1af585ec74d4abe36e25b27841491cf434bc0bcf593ab7ab2403b",
1986
+ "references/3d.md": "f8e2fcd679ab67010aef0ce261d09764e3c08e53aea82942ee2cbe14e77c3931",
1987
+ "references/archive.md": "91cfb4f97cea4a739473a622e019ac9973bd9b7b6e7d2cc2204242910276e285",
1988
+ "references/audio.md": "74ca4d8c936e912eabf80d415cbc1eb8bc77648ca8e28bab6ccb4d7f247df3f2",
1989
+ "references/binary.md": "e91c6a54924793f546541b2c67ae274954a58c6e317338698ff79de54920aa00",
1990
+ "references/code.md": "0ecb8899f876a795f92d488c74d694888a4c3abe6e027b800b70ec45c878e233",
1991
+ "references/data.md": "ea8872dd51f5969001fa88b2ecf4952bf6c0b09a04c50f6727adf5837a50c65d",
1992
+ "references/email.md": "2c9a4167e645a718922d991b6ca95b2eccedabdbd6274a279589a5bc4fcb52a2",
1993
+ "references/font.md": "e59dafd6a9b2ed472dedaf1568cc154ca2b29f2ddb0922efbdeee74210a87acc",
1994
+ "references/image.md": "8eed977846d1de28f627a2b85df5f9b2c21d84da1516bab0aef424c3ac7bb99d",
1995
+ "references/installs.md": "eb2ed8f11aa41c87642b07945d0194906c4114e2d444bd3546437cfd6d35dbd7",
1996
+ "references/notebook.md": "a457145e357fcdfbe2cf6ee8accbad7e5d044c39116405b4017b2a5f40d0ab0e",
1997
+ "references/office.md": "d7cb6b81ed0dfde6bad400441e7c62053c63bf1741497c90f2c6c5db10bac54b",
1998
+ "references/other.md": "b52ded38848ade208319ee61291af967bd77913aa1ea5a9728b1f4d899df4c09",
1999
+ "references/output.md": "15158461ff9b177b59eed89288b27a2a2c6dde207c9c0c694eadbf47798ae56b",
2000
+ "references/pdf.md": "fc25c90c78175dcd897c7c5b32d8eb6f9f0787cd0d02c51d03739f835a5eee97",
2001
+ "references/video.md": "51797a527013593f2dc520ecd3f517eddab994fdca36c0e4041e2fb80c20b683",
2002
+ "references/web.md": "93a099a3a2b07d105c84c91cf04b771d8e8e06db37b2a3d622d57fa3437c6fc4",
2003
+ "scripts/dl_3d.py": "647a41815661d35b9616bfd341fb8986c3831f1cf5a2a5da777e5525e1783e7e",
2004
+ "scripts/dl_adapt.py": "5a38163deda37df45fb8f05ca1744e52eb785cdd2b68afe3a7391c8ea13096fd",
2005
+ "scripts/dl_ask.py": "e5e1f00b30c77fa5a2c163602336a636394f7dbe261d0a040d3a01d6043e9631",
2006
+ "scripts/dl_asklang.py": "cf9c32b9100d3d42611d6ca947c505ac518fa814d7daa9c84d5d8b04faf70080",
2007
+ "scripts/dl_asr.py": "ed5387f16c47c9a3150484e2d900519e5d78da3e53fe49bdc62e373b3d55e346",
2008
+ "scripts/dl_bins.py": "7f6d53843acde9570776f50061acfa8cad21e64bd0675f81fee182161a342ce2",
2009
+ "scripts/dl_binx.py": "cbde32b08c572e59578c3c649c569d0bd7248d80fd4ebd4c2b9eb69b0fc168ff",
2010
+ "scripts/dl_books.py": "a05ea074e11ba8ac45d7aa33e562fe48ab9fd6626da02ef3f63dd62aaf7b2b0e",
2011
+ "scripts/dl_cal.py": "2a8025e58f3df548d86955144b5bd44062160c1e60002705167eca2ea40d5af4",
2012
+ "scripts/dl_cls.py": "1b6f29590c18fb564fb0de9915ec0154b9f470af52b0d7e9a498b81210b1af6b",
2013
+ "scripts/dl_colmeta.py": "cc481f811e1e6eb7bf44e09ceb314efa2a6ff026c00b755c47dfc4016eb49c4f",
2014
+ "scripts/dl_conf.py": "57e88d3bc7f10dc5e44cc0ee40c75c159499e3b55e73ae2fe5a06c21513fd66f",
2015
+ "scripts/dl_core.py": "d8bdaaaa4482131f9a54339b7d2ab2989ec6c52445c12cf1bbb923d5e2dca1cf",
2016
+ "scripts/dl_ctr.py": "fa31cc2383a3313cafacfec233058901a6302bd234957c5041c0aae69da3ddd2",
2017
+ "scripts/dl_data.py": "46423cc933efc030e19cee4a0302f88361ab02908623336dcc161653bf2a9f7b",
2018
+ "scripts/dl_dbf.py": "4221926f451ff886a52570486000724dced08c63ca3bd1884c8b654e77760f08",
2019
+ "scripts/dl_delim.py": "f9ec557e6cd0afe08c8b51dae7fce12e0b3fbd31f8853137044e024b6721e573",
2020
+ "scripts/dl_docs.py": "d9be45afdde4ec0158d646dd0aa0aad6b70ca28cbd1b3c7c42fd791388c1b31c",
2021
+ "scripts/dl_drill.py": "bc2e290cd5f96115675b67d18c8c13fb910ee326a50facd2e98a178d7e84bc49",
2022
+ "scripts/dl_drill_ext.py": "ea8c95e55ff3e8011a8abeb4c35cab9ab1d1e0dd6fe7a3b6fa29576da6fe8181",
2023
+ "scripts/dl_extra.py": "6d7b578fde93e7dfcecdabb9a70c7278aaac03685e433caf1e7cf125cea6b4dc",
2024
+ "scripts/dl_gate.py": "c2aa890798109de0e2accf8103146f1a0e6e5a13cc27ff7931f19b3ac9a87458",
2025
+ "scripts/dl_geo.py": "bbba45f57594d99697367f42dfb2f536228bb6bd9e778c8ca124d2a769d80989",
2026
+ "scripts/dl_lex.py": "c9f35951ae26199da30bfbf36af74fdc49abbddd62a23d8cbc19240b77745b23",
2027
+ "scripts/dl_listcol.py": "8adc32776b29fd96865ff555ed81f52b62c7841bbb690b747e7f200b3ca52ebf",
2028
+ "scripts/dl_logs.py": "ca08fc3f551122e57f833bb6c982f9c1db8d8586c4389eef345e5bb88b9b7646",
2029
+ "scripts/dl_media.py": "23b456b49a73396d6155ecaff73031620a41aeda8899b768d5dd5adf981e2e07",
2030
+ "scripts/dl_mediax.py": "dbd42ca799be599d2489c723c95ec2a51b394d307a312969ee50812861a05bc8",
2031
+ "scripts/dl_misc.py": "0811c51d37d80200b649a3c203a0f7f19aab57766ab28c794a734710c40a5851",
2032
+ "scripts/dl_mmeta.py": "f92851880371d2b8fef2d8f5aba56c364b647635d602b7d5bbf0ff62e5e18aac",
2033
+ "scripts/dl_models.py": "861278163b38d37ae67542f03e69c6f327f2a48ad6f19be2e9fae0fe0d8ea612",
2034
+ "scripts/dl_more.py": "f3efd68a3cefa4a7f8c843a0bf2494f832c5ab5dc2c8423c7ebccf620c78c3ad",
2035
+ "scripts/dl_offx.py": "bce98dacbeedc91459126868b64a174422f2bf6c7a9a4239c57bc7b19319c79b",
2036
+ "scripts/dl_pcap.py": "0014bc068049df7514ef48236922756ec8218c4a664a1e7c07cfacc659ee5ace",
2037
+ "scripts/dl_pdffacts.py": "365bee7c1e0af832c45ed26f02e5244505bbd0466397e83a6dbed8bbaccdfd98",
2038
+ "scripts/dl_pe.py": "764fc73d41415cfb10b77e3ed27794abfd9a02dbbdaec31618a0458b3a1e8261",
2039
+ "scripts/dl_pick.py": "d15aaf8ffb272553d5e1be49554d0a702eda45203f75d109c491117e26c72e64",
2040
+ "scripts/dl_prof.py": "5fef66a7c14021532d2158083622b64374d12936cad8c8ba4bc069e80791e0b6",
2041
+ "scripts/dl_reg.py": "1d94cbfc1de1519797d0d5a8d43015833915cf84fa3b32003c222a880c6ebc4f",
2042
+ "scripts/dl_sample.py": "7fa9237f7b4e38cd1532ae6d9ce1154f63a06581fa6afee7a7944cfc40216856",
2043
+ "scripts/dl_selftest.py": "c4573d674307d3cea617a786c547ded20b676ca9dc18e9b881b17648ec6ec6b9",
2044
+ "scripts/dl_skel.py": "d1eedbd48a591d01b4f28f454af226f2d0075e50ffd077d1e80c7a70edcef161",
2045
+ "scripts/dl_svg.py": "0e09a161ffd207dd8ed69528acdd398b65e4f9c44221c07db114664e6b29599a",
2046
+ "scripts/dl_tab2.py": "e2a3474cc84220580daf8a2ac38f9f8e7edf0194e20f99a550d4d21e66a42332",
2047
+ "scripts/dl_util.py": "cfd2ea34492521200f8ec0b616006e8825bc1dc64bd757afc5d60653ace1fdb1",
2048
+ "scripts/dl_vba.py": "43fb2eaa8d50b6cb950fb1beba0590939db87cbe9bf9e0eaa952cc445870a019",
2049
+ "scripts/dl_view.py": "cdc7387579323f0f8a16765ad3798776a0e3a8071493cd3415a081f46cf63463",
2050
+ "scripts/dl_write.py": "5ed1e732b6e0da7ce2de47e08834e4857d68155bd90fdbbaa7449b0e22ad3901",
2051
+ "scripts/dl_xl.py": "f94cfe3b79906e08649497d0114cfa0fc7267ba992cd481caf3d159d7949a9d2",
2052
+ "scripts/dl_xlcalc.py": "9b811d6c0dc49429f6fca560a9b819e62c467a6a87be21abf9f6fec19f308a89",
2053
+ "scripts/dl_xmlvals.py": "47b9e303e74e932e5f450fc5bc7b999913f8e46afbee21f67bcdb653c60209f5",
2054
+ "scripts/look.py": "00c862b170bb5b6d78663fe81645a6b6d2178c153afc59ff1444abc720f6fe2a"
2055
+ }
1874
2056
  }
1875
2057
  ],
1876
2058
  "storgestudio-arena-create": [
@@ -1960,6 +2142,17 @@
1960
2142
  "scripts/guardrail_allowlist.txt": "2de31b8a96c5754fbc10014f8f7ae5519b9a3981ce236d2f0be32be8d690f502",
1961
2143
  "scripts/guardrail_lint.py": "daa5e093a0d2ca47031638d2015c13ab91cd3af14933d9792b43414495e8bef3"
1962
2144
  }
2145
+ },
2146
+ {
2147
+ "release": "0.15.0",
2148
+ "revision": "17d7af19c96d4750df563a15549f85edd5f08e63d39cb0f5249956d384f0cd25",
2149
+ "files": {
2150
+ "SKILL.md": "04ced82da2ea41ac8ac43c710d15bea3b355e31bee001915ed76d9d91562c559",
2151
+ "agents/openai.yaml": "202d5e64c27f08cb942b175f3ee6dd25be76e33456fe3ecb182bc6a697e97406",
2152
+ "references/doctrine.md": "70feb8fa346aa727397275f7fbb20256ebd86148aa7b694cb8c1f9f1563e4e12",
2153
+ "scripts/guardrail_allowlist.txt": "2de31b8a96c5754fbc10014f8f7ae5519b9a3981ce236d2f0be32be8d690f502",
2154
+ "scripts/guardrail_lint.py": "daa5e093a0d2ca47031638d2015c13ab91cd3af14933d9792b43414495e8bef3"
2155
+ }
1963
2156
  }
1964
2157
  ],
1965
2158
  "sigmaloop": [
@@ -2042,6 +2235,23 @@
2042
2235
  "references/loop-file.md": "b425d8c54eff79f954aa441b6dfa7eb5be72c7fd8dbc5621a51b606781cb7eae",
2043
2236
  "references/questions.md": "89ecc36e3ad517ae9ceac4095b822aef303ec911e0fa90573a151a82a24de1fe"
2044
2237
  }
2238
+ },
2239
+ {
2240
+ "release": "0.15.0",
2241
+ "revision": "b1f744c6afa57f016db6e42c5314373f22298750020a06cb3b5331c46f30885a",
2242
+ "files": {
2243
+ "SKILL.md": "86f78f1e9df9daf9d00b3973646e3e267b452476fdf92a311f1e1f4e2c24640e",
2244
+ "agents/openai.yaml": "e594017139e56805ecebdfafd1ae157ae36a37969ed9bdef9b3b3d3f0ffbe36f",
2245
+ "references/example.md": "2d105291a0310a2ef1e625b49635df10be9bd6c25e6e6b134f834b5134685964",
2246
+ "references/host-antigravity.md": "f76c54450f0f8c120e474bf64f03f4cebd05e7e40522fb8d969d72ef9d913272",
2247
+ "references/host-claude-code.md": "b39af06242ff83060a05803eead3d49f5aadd959d9a49bc3cab6adc47be19f28",
2248
+ "references/host-codex.md": "8d8091952ac4bee4c5ffeb87ecd39586162c6157d3bc574fd9823b246203d1b3",
2249
+ "references/host-pi.md": "e93bb7a0239f7da95a816fa0ebcfaa857b2b410501152065496ebd14e9856744",
2250
+ "references/host-t3-code.md": "0516a24479232f66af7334c269a5f70432f0e949ef2ba772f8bcf550b4c6d683",
2251
+ "references/hosts.md": "9871c67db185f99b03897c34bb630aad40a559d97329ae9b4424e0e39dc3f5b7",
2252
+ "references/loop-file.md": "b425d8c54eff79f954aa441b6dfa7eb5be72c7fd8dbc5621a51b606781cb7eae",
2253
+ "references/questions.md": "89ecc36e3ad517ae9ceac4095b822aef303ec911e0fa90573a151a82a24de1fe"
2254
+ }
2045
2255
  }
2046
2256
  ],
2047
2257
  "sigmataste": [
@@ -2173,6 +2383,32 @@
2173
2383
  "references/sources.md": "2361e0ad0a1a8688203064627899bc91920ddf5302d2aa5c515a26b60067203f",
2174
2384
  "references/wait-what.md": "c5ffc8f9c87f81757b345178a7b7d7e9c74908341143b4702c0c5c62663c6a00"
2175
2385
  }
2386
+ },
2387
+ {
2388
+ "release": "0.15.0",
2389
+ "revision": "bee422d9eb6ded3a1bf20ef0b8a40d2464670724877488ef071178a90aa9c476",
2390
+ "files": {
2391
+ "SKILL.md": "335f1f2d2c942d8a1db6bc1b81e1ba3ad8643f48e9be93af572f11849e910f97",
2392
+ "agents/openai.yaml": "048119bc327a16d9d9c98b2f71fb695b911e22850eeea5135481ed38a3a10237",
2393
+ "references/lenses/charts.md": "562696b6bee3e95884ff2fd6be4a1331c15839a36d522bdb9d47a997d758f3a2",
2394
+ "references/lenses/colour.md": "1396cdbbd93351a17f995f1c8ad3351a93be73722a0dc46ba14f9fd40d8727ac",
2395
+ "references/lenses/everyone.md": "38d57b3687aeb7cfdca267956f9cb99d4e158fd5477f2cbeeefe3f2303bcf9a3",
2396
+ "references/lenses/feel.md": "41fb18cdf8a69d6e86197f6dfe901639885d236c180b873c230cef149482dc86",
2397
+ "references/lenses/first-glance.md": "44d2cb01c21866c1ce84f747e0ae0ef6271aaf221faa1be62919d79337bd6b98",
2398
+ "references/lenses/interface-words.md": "0dc1f0b4bf974b732c2be78c65554739a12ddc87733223442acb74db831f886d",
2399
+ "references/lenses/motion.md": "05d6094411f9207a9b527cae08d7e485f4404d669eec06e82d8c760ba4abd598",
2400
+ "references/lenses/one-bold-place.md": "eee40942a7153003d54d5f47a716fbaea179a2774fb355e24310811d30c72711",
2401
+ "references/lenses/only-this-one.md": "29a2c88a85d6a868b7e00deeeb8f6821fceb27dd437e611851f30ba249f170fc",
2402
+ "references/lenses/prose.md": "fc547447fd7d8022036977029e9067e7f74caa82e439145b3da4c5cde7048e8d",
2403
+ "references/lenses/rhythm.md": "d860ba187addae6e1f28dee36ecb343644829db7274ea8c43f867c15a97987ce",
2404
+ "references/lenses/spent-defaults.md": "ec76a9d33184fe365cb5bb1fda4f59a2107a7d70957147fde321f669344f398c",
2405
+ "references/lenses/the-pitch.md": "7167de0fabaa751fe06e501acaf83f66cb4b8ffc58a51de477d38bd7537f996c",
2406
+ "references/lenses/type.md": "1796a2c8ebf6038d6fe921264ff6d74cae30245b7502519e6439125d592d3024",
2407
+ "references/plan.md": "7dce96ee72cc39dd95b813cc611e49e092501d2eec03ea66c4e718593836a224",
2408
+ "references/questions.md": "0916780c3b873b8e70ba7d58156db64902f43aa3b4cce4e971e795066fa0b84b",
2409
+ "references/sources.md": "2361e0ad0a1a8688203064627899bc91920ddf5302d2aa5c515a26b60067203f",
2410
+ "references/wait-what.md": "c5ffc8f9c87f81757b345178a7b7d7e9c74908341143b4702c0c5c62663c6a00"
2411
+ }
2176
2412
  }
2177
2413
  ],
2178
2414
  "sigmahuman": [
@@ -2230,6 +2466,22 @@
2230
2466
  "upstream/UPSTREAM.json": "932a28e8f23a2272138bbaa6b4e5829f045b791142aee3858248b5bef86f9e61",
2231
2467
  "upstream/humanizer-SKILL.md": "0612f1dfb1672b0ea9b97e139bf1f06cabe98d8b27424fe8ff01e1fb4cc99cad"
2232
2468
  }
2469
+ },
2470
+ {
2471
+ "release": "0.15.0",
2472
+ "revision": "3d24386133080c9ad810215f03912970ef6783de4229b0dde6fed37a5311e286",
2473
+ "files": {
2474
+ "SKILL.md": "1a69a9e3c3aea8b3e8c97fdadab6ed803067200a5b359bbbcb214f43625792a1",
2475
+ "agents/openai.yaml": "a0a399732ca02b27d58fd79d85e5618c4387ba0a76c7ae7f403e57f91c4629fd",
2476
+ "references/LICENSE-humanizer.txt": "4ac4810254ab36d45419141aeb8e69bf50652cfafe5b2dab947d06d44e5cbf96",
2477
+ "references/lanes.md": "785fcab631418fc9efac8684bd66fceddff2c5d4ccc599c19c575bb38f6a0129",
2478
+ "references/patterns.md": "cbb25d3e8d12f2ab6001405f3a5c70c272c9bfa890db1bc4d5fa0d943b2b2076",
2479
+ "references/sources.md": "6b4a23c7ac9f2c6a2ffea0938646dbb12e8268fdf45c2eb1508897a91aff221c",
2480
+ "scripts/factcheck.py": "6ab632df24d9b2105fae50ffb75b60e598fbac58abc2192c92d3d7cc7af0dbc7",
2481
+ "scripts/upstream.py": "276d113a5edac9980557a27fb2a886d6c97ee8bb960f95f0f9fed254aba867e1",
2482
+ "upstream/UPSTREAM.json": "932a28e8f23a2272138bbaa6b4e5829f045b791142aee3858248b5bef86f9e61",
2483
+ "upstream/humanizer-SKILL.md": "0612f1dfb1672b0ea9b97e139bf1f06cabe98d8b27424fe8ff01e1fb4cc99cad"
2484
+ }
2233
2485
  }
2234
2486
  ],
2235
2487
  "sigmadesign": [
@@ -2268,6 +2520,18 @@
2268
2520
  "references/quality.md": "e8d0078e1bc88cb5e4e34745311bb16551506acddebacf490b64e9333ee41ac1",
2269
2521
  "scripts/sigmadesign.py": "8494a049e433744304dbc15a93765f11fda0544d42949b1533969ca7d623fabe"
2270
2522
  }
2523
+ },
2524
+ {
2525
+ "release": "0.15.0",
2526
+ "revision": "5da7cb5726919b8a5d02fc923c7d5993de686140763d15f4c4f01437ee66b169",
2527
+ "files": {
2528
+ "SKILL.md": "34352604d40ca2166191f9154caf8d637fff854e0e28e003d1fc04db0c62c17c",
2529
+ "agents/openai.yaml": "a2d95e9ee78aebba4d0f71ffa867ee449224c6f13c96c91a86b7665dc1ac919e",
2530
+ "references/format.md": "dc97a3d10d1636f65144b5c8caa5ffaef81d8cc078cb5a9aa7096f10eceb2420",
2531
+ "references/integrate.md": "45018c8df8ea137fae57d74d9f701d92a29514a785dace0c642952c83ef752ac",
2532
+ "references/quality.md": "e8d0078e1bc88cb5e4e34745311bb16551506acddebacf490b64e9333ee41ac1",
2533
+ "scripts/sigmadesign.py": "8494a049e433744304dbc15a93765f11fda0544d42949b1533969ca7d623fabe"
2534
+ }
2271
2535
  }
2272
2536
  ],
2273
2537
  "sigmafork": [
@@ -2312,6 +2576,20 @@
2312
2576
  "references/questions.md": "14f94d47838c59a9a12ddd430697d8687ebc43bce1c84e4986b3bd6222164cea",
2313
2577
  "scripts/sigmafork.py": "1d8e34d77cf1933ffa069cd5fbdbc60284289825e2ab10e92c1d3696729b9e73"
2314
2578
  }
2579
+ },
2580
+ {
2581
+ "release": "0.15.0",
2582
+ "revision": "a55e732b5a3448cdba82594c68781b80f3bdfe85ca0cecd61cf2a000bf61564c",
2583
+ "files": {
2584
+ "SKILL.md": "ee61593f1018c5b81bfc28249cd69286c9b6c7eca3ccabd76ab39c9988541bb6",
2585
+ "agents/openai.yaml": "5e2709ab8e6d37b883f103f993ac23574a55c02f7f03499bded8e6ab1926133d",
2586
+ "assets/guide-template.html": "727c373416bf5f3feb3125595bb3e7720e92f5d830804144b4bd38989d7b9eb2",
2587
+ "references/bundles.md": "8fadea377a9948d7aa6f2ce6af43108efbe6a776493c72b2a617c5a26630e3db",
2588
+ "references/copy.md": "c50cae1cf9258ab4f5918b12b35c8ce3f115cd8af1e6879dc50d3b51346f0a78",
2589
+ "references/guide.md": "f21911883ab2d791e11c158559d6e175d2e984078ee0b72ae7c7738166bd5e88",
2590
+ "references/questions.md": "14f94d47838c59a9a12ddd430697d8687ebc43bce1c84e4986b3bd6222164cea",
2591
+ "scripts/sigmafork.py": "1d8e34d77cf1933ffa069cd5fbdbc60284289825e2ab10e92c1d3696729b9e73"
2592
+ }
2315
2593
  }
2316
2594
  ],
2317
2595
  "sigmatour": [
@@ -2325,6 +2603,41 @@
2325
2603
  "references/tour.md": "057570be997db00df40fa001b2a4826468eb32e0c3ea5928d350ed30b8ff4300",
2326
2604
  "scripts/sigmatour.py": "93d32221941648a925d9878e0029ed85e21c1835518ab441dafea7c125ccf788"
2327
2605
  }
2606
+ },
2607
+ {
2608
+ "release": "0.15.0",
2609
+ "revision": "73fee2387cada35540e7e7da496da5f76238b0f6c62f81bd669e7e6ebffaa55f",
2610
+ "files": {
2611
+ "SKILL.md": "d93c6a13df6bcfe86221f111845c724b80943d3b31c01812994526704843b998",
2612
+ "agents/openai.yaml": "d4814d7dd985573a3b546bcedeb30a0b4c2f7a8c4fef63736719ef366024d8f9",
2613
+ "assets/tour-template.html": "35335ff36fc7edf358ecf6369e738dda05b7f791a0c5ce6e928be72a9647d40c",
2614
+ "references/tour.md": "057570be997db00df40fa001b2a4826468eb32e0c3ea5928d350ed30b8ff4300",
2615
+ "scripts/sigmatour.py": "93d32221941648a925d9878e0029ed85e21c1835518ab441dafea7c125ccf788"
2616
+ }
2617
+ }
2618
+ ],
2619
+ "sigmafinanceman": [
2620
+ {
2621
+ "release": "0.15.0",
2622
+ "revision": "e8ec54a63c4ae27d74cfe09a1d82ae81ed06a09e5de6dc209537851d964a5dbe",
2623
+ "files": {
2624
+ "SKILL.md": "0e61b2030afd3b07cf41caf60ca4096fb5c94d3ed2a1088c5c01079b7e611676",
2625
+ "agents/openai.yaml": "4a21cfdab71dd2142aeceeaaa6e91b19e0c0aa574bd268746ca8b61f7cd6a466",
2626
+ "assets/household-example.json": "a0ed673e5e3c98132833cff0a55dac0347f0a3b31a09714aa56085fa2cf2c55c",
2627
+ "references/budget.md": "8120bc872e5b99bd5dd6dfa3ec2b7e1820baad8bd6e4b8fa705be622f3030adc",
2628
+ "references/grill.md": "4bed7feded1cf53327adea08f16f50376946116381baf140da45e144de7e179e",
2629
+ "references/methods.md": "33155eb546e2c7e98932a368f811e87540a49db18a1eb52bab53fbeed485010b",
2630
+ "references/outputs.md": "8011506029461e1584100f2706344e21b41278a4184b973d47e1ff2e47662a47",
2631
+ "references/sources.md": "2ab056f57e434aa86ccd0b70c8e6babfb31ba19de1da0afd235fd1b7be60e4f5",
2632
+ "scripts/fin_data.py": "54cbd8e54b9b792d431ca810295e7f1c9ab6c053b24895fe81fb122e5c3ae76d",
2633
+ "scripts/fin_models.py": "db399b95c4d20b471ce059b1fee76ab01784d460d8fe19540a826d29bc4b83bb",
2634
+ "scripts/fin_pptx.py": "2c1d258f61c6c27a05dff82bdffac2ec21a7a9596a4b32cc9938c8a6f2be3bbd",
2635
+ "scripts/fin_report.py": "84b2598bc899df2901e0d5798712e092004330401475f5ebe6492a4f539feb18",
2636
+ "scripts/fin_selftest.py": "15b6650edccd4de71fb5a10e1a02a95ba124515cf3def7b681a59f490fcba629",
2637
+ "scripts/fin_svg.py": "b4c825bc60b85c6397050ebdf8bc0a6e99465e027a34364bec654df88b821d22",
2638
+ "scripts/fin_xlsx.py": "f7277b9fb7ebe7c03e00823a14c5015e2b835f1fb086e4c58789025f92c1b807",
2639
+ "scripts/finman.py": "77a07710a3c99816e30df63455808c620e6f173ec6426a0ee64c2af03a91d54d"
2640
+ }
2328
2641
  }
2329
2642
  ]
2330
2643
  }
@@ -26,7 +26,7 @@ Apply these invariants throughout the run:
26
26
  - **Do not merge. Keep any worktree while the PR is open. Cleanup only after human merge or user cancel/abandon.**
27
27
  - **Shell native to the executing machine:** use the shell of the machine that runs the agent: PowerShell and Windows paths on Windows, POSIX shell elsewhere. Do not assume WSL.
28
28
  - **No secrets** in briefs. Redact tokens, keys, and credentials from issue bodies or notes.
29
- - **Three questions and the honesty rule.** Every brief carries invariants 14 and 15 of [prompt-contract.md](references/prompt-contract.md): three questions before a build, and sub-agents read the real code for each claim and cite no file they did not open.
29
+ - **Three questions and the honesty rule.** Every brief carries invariants 14 and 15 of [prompt-contract.md](references/prompt-contract.md).
30
30
 
31
31
  ## Resolve inputs
32
32
 
@@ -381,6 +381,18 @@ def col_for(t, w, numeric=None):
381
381
  return None
382
382
 
383
383
 
384
+ def named_words(t, pq):
385
+ """The question words that name a numeric column, except the words that name the group ('per region', 'which tool')."""
386
+ skip = set(pq["group"]) | ({pq["which"]} if pq["which"] else set())
387
+ return [w for w in dict.fromkeys(pq["words"]) if w not in skip and col_for(t, w, True) is not None]
388
+
389
+
390
+ def measure_ok(t, pq, i):
391
+ """A column may answer when the question names all of its words, or when the question names only one numeric word.
392
+ 'How many tool errors' names two: hookErrors and shape.tools each name only one of them, so neither answers it."""
393
+ return len(named_words(t, pq)) < 2 or (t.colw[i] - {"count"}) <= set(pq["words"])
394
+
395
+
384
396
  def pick_measure(t, pq, exclude=()):
385
397
  best = None
386
398
  for w in pq["words"]:
@@ -389,7 +401,7 @@ def pick_measure(t, pq, exclude=()):
389
401
  sc = len(t.colw[i] & set(pq["words"])) / len(t.colw[i])
390
402
  if best is None or sc > best[0]:
391
403
  best = (sc, i)
392
- return best[1] if best else None
404
+ return best[1] if best and measure_ok(t, pq, best[1]) else None
393
405
 
394
406
 
395
407
  def answer(t, pq, q, vals):
@@ -459,10 +471,13 @@ def answer(t, pq, q, vals):
459
471
 
460
472
  main_op = next((o for o in ("mean", "sum", "max", "min", "distinct", "count") if o in ops), None)
461
473
  hm = AL.compiled(pq["lang"])["howmany"].search(pq["fq"])
462
- if main_op == "count" and hm and stem(hm.group(1)) not in t.namew and col_for(t, stem(hm.group(1)), True) is not None: # "how many units": the Units column, summed
463
- measure, main_op = col_for(t, stem(hm.group(1)), True), "sum"
474
+ hw = col_for(t, stem(hm.group(1)), True) if main_op == "count" and hm and stem(hm.group(1)) not in t.namew else None
475
+ if hw is not None and measure_ok(t, pq, hw): # "how many units": the Units column, summed
476
+ measure, main_op = hw, "sum"
464
477
  if main_op == "count" and measure is not None and "sum" in ops:
465
478
  main_op = "sum"
479
+ if measure is None and main_op in ("count", "sum", "mean", "max", "min") and len(named_words(t, pq)) >= 2:
480
+ return None # the question names two numeric columns and no column names both: no table answers it exactly
466
481
  if group is not None and main_op in (None, "count", "sum", "mean", "max", "min"):
467
482
  uniq = len({str(t.rows[k][group]) for k in keep}) == len(keep)
468
483
  if uniq and measure is not None and main_op in ("max", "min", None): # which <id> has the highest <measure>: a row-level answer
@@ -627,7 +642,8 @@ def run(o, path, out, lj):
627
642
  elif stated:
628
643
  lines.append("Counts stated in the look: " + "; ".join(f"{k} {P.fmt(v) if isinstance(v, (int, float)) else v}" for k, v in stated))
629
644
  if not got:
630
- lines.append("No table answers this exactly" + (" (no table matched the question words)" if tables else " (this file has no table the look can re-read)") + "; the lines below match the question words.")
645
+ why = " (no column names every question word)" if ranked and ranked[0][0][0] > 0 else " (no table matched the question words)" if tables else " (this file has no table the look can re-read)"
646
+ lines.append("No table answers this exactly" + why + "; the lines below match the question words.")
631
647
  srcs = dl_drill.text_sources(out, lj, path)
632
648
  figs = [s for s in ((lj.get("facts") or {}).get("stated_figures") or []) if sum(1 for w in pq["words"] if w in set(words(s))) >= max(1, len(pq["words"]) // 2)]
633
649
  if figs:
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sigmafinanceman
3
- description: 'The finance analyst: DCF, LBO, trading comps, three-statement models, ratios, statement analysis with red flags, a value-investing scorecard, earnings reviews and personal budgets, from public filings (SEC EDGAR) or the user''s own numbers. Asks one question round, then builds Excel with live formulas in banker colours, a slide deck, SVG charts and an HTML page, and checks every workbook. Use to value a company, model a deal, compare peers, read a 10-K, review a quarter or plan a budget. Do not use to place trades or move money, for tax filing, or for live intraday market data.'
3
+ description: 'Finance models from SEC filings or your numbers: DCF, LBO, comps, three-statement, budget, Excel. Use to value a company, model a deal, read a 10-K or plan a budget. Do not use to trade or file taxes.'
4
4
  ---
5
5
 
6
6
  # SigmaFinanceMan
@@ -20,7 +20,7 @@ One visual system for the workbook, the deck, the charts and the page: a white r
20
20
 
21
21
  Number formats: money `#,##0_);(#,##0);"-"_)`, percent `0.0%`, multiple `0.0"x"`, per share `$#,##0.00_);($#,##0.00)`. Negatives in brackets. The `_)` pad keeps positive digits in line with bracketed negatives; the page copies it with a hidden `)`.
22
22
 
23
- ## The three fixes from the design audit (2026-10-21)
23
+ ## Layout rules
24
24
 
25
25
  1. **Exact tables.** Digits line up (the pad above). Each header aligns with its column. 22 px between stacked tables. Totals bold with a thin top rule; the final line (value per share, equity out, left over) has a double bottom rule.
26
26
  2. **The answer first, colour roles clean.** One hero number at 44 px (60 pt on the title slide), then one sentence, then a small KPI row. Green and red only for gain and loss; parts of a total (PV of cash flows, PV of terminal value, savings) are steel. Green and red differ in lightness, and brackets and pass/fail words carry the meaning without colour.
@@ -10,7 +10,7 @@ The reader takes the post from the FxTwitter API (`api.fxtwitter.com/status/ID`:
10
10
 
11
11
  ## 2. Search: Grok first, then a signed-in browser
12
12
 
13
- 0. If a Grok route exists (an xAI sign-in behind an OpenAI-compatible Responses endpoint, with the `x_search` tool), ask it for the posts. It returns post URLs and short summaries, so it is a lead list, not a read. Read every URL in full with section 1. Grok cannot open one post by URL, so its answer counts as a lead only, and the read is always section 1. Keep the endpoint and the key out of the log; the call looks like this:
13
+ 0. If a Grok route exists (an xAI sign-in behind an OpenAI-compatible Responses endpoint, with the `x_search` tool), ask it for the posts. It returns post URLs and short summaries: a lead list, not a read. Grok cannot open one post by URL, so every URL is read in full with section 1. Keep the endpoint and the key out of the log; the call looks like this:
14
14
 
15
15
  ```bash
16
16
  curl -s "$ENDPOINT/v1/responses" -H "Authorization: Bearer $KEY" -H "Content-Type: application/json" \
@@ -30,7 +30,7 @@ Inventory every tracked file by role. Build the system map: entry points, primar
30
30
 
31
31
  Run the passes in [method.md](references/method.md) in order, and go deepest where the risk is highest. Try to break the system the way its users, attackers, and heaviest workloads will. Under authority B, run the test suite, build, start the app, measure the primary journeys, and probe your own local instance as [measure.md](references/measure.md) describes. Evidence you produce yourself beats evidence you infer.
32
32
 
33
- **Bugs only, no hypothetical risks.** A finding needs the input or the path that fails today, with its proof. A possible future problem is not a finding: leave it out.
33
+ **No hypothetical risks.** A possible future problem is not a finding; section 4 sets the proof bar.
34
34
 
35
35
  ## 4. Prove
36
36
 
@@ -30,7 +30,7 @@ If those skills are not installed, write the acceptance criteria into the issue
30
30
 
31
31
  ## 2. Set up
32
32
 
33
- 1. Sync: `git fetch origin`, and confirm the base branch (usually `main`) from the repository. Then search open PRs and issues for the same change before you write code: `gh pr list --state open --search "<words>"` and `gh issue list --state open --search "<words>"`. If an open PR already does the job, record it in the ledger and build on that PR instead.
33
+ 1. Sync: `git fetch origin`, and confirm the base branch (usually `main`) from the repository. Then search open PRs and issues for the same change before you write code: `gh pr list --state open --search "<words>"` and `gh issue list --state open --search "<words>"`. If an open PR already does the job, build on that PR instead and name it in the PR body, which is the ledger.
34
34
  2. Create the branch `ship/<issue>-<slug>` in a fresh worktree cut from `origin/<base>`, outside the main checkout: the host's worktree tool, or `git worktree add <path> -b <branch> origin/<base>`. If you are already in a linked worktree, use it. Another agent may have uncommitted work in the main checkout: never check out, reset, commit, or force there.
35
35
  3. Install and run the baseline checks (tests, type check, lint, build). A red in this ticket's area stops the run: report it. A red that belongs to another lane (prove it: it is also red on `origin/<base>`) is named under *Known reds* in the ledger, not fixed here.
36
36
 
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: sigmatour
3
- description: 'A visual 15-60 minute tour of any repository, end to end, in one HTML page: its job, how it works, a clickable map and architecture diagram, one real request traced file by file, examples run for real, the repo in numbers, and the README held against the repo (hidden settings, missing files, dead commands). Length by the user''s wish and the repo''s size. Plain technical English. Use when the user wants to understand, learn, explore or get a walkthrough or tour of a repo or codebase. Do not use to copy or fork the repo (SigmaFork), to review it for bugs (SigmaReview), or to suggest improvements (SigmaImprove).'
3
+ description: 'Visual tour of one repo or codebase: how it works, a traced request, examples run, README gaps. Use to understand, learn or walk through it. Do not use to fork, review or improve it.'
4
4
  ---
5
5
 
6
6
  # SigmaTour
@@ -40,7 +40,7 @@ Read the README against the repo. The scan finds the mechanical part: README com
40
40
 
41
41
  `python scripts/sigmatour.py build <repo> --out <page> --minutes <N>` makes the page from [the template](assets/tour-template.html) and writes the scan into its data block. The page draws the numbers band, the folder explorer, the history band, the README check and the entry points from it. Fill every `FILL` by [tour.md](references/tour.md): the transit map, how it works, the trace of one request, the examples with their real output, the hidden and missing list, the deep dives (their count sets the length), where things are, and three hands-on tasks.
42
42
 
43
- Write in the `/sigmawrite` voice: clear technical English a sharp outsider follows on the first read (the ASD-STE100 spirit). One lead line per stop, three sentences a paragraph at most, a tap-to-explain meaning for every term a newcomer would stop at (the wait-what check). When `/sigmahuman` is installed, give the text one pass with it.
43
+ Write in the `/sigmawrite` voice: clear technical English a sharp outsider follows on the first read (the ASD-STE100 spirit). One lead line per stop, three sentences a paragraph at most, a tap-to-explain meaning for every term a newcomer would stop at. When `/sigmahuman` is installed, give the text one pass with it.
44
44
 
45
45
  ## 4. Check
46
46
 
@@ -8,7 +8,7 @@ The stops carry their minutes in `data-min`; the page adds them up in the hero,
8
8
 
9
9
  | Target | Stops |
10
10
  |---|---|
11
- | 15 min | the eight base stops, at most one deep dive |
11
+ | 15 min | the base stops, at most one deep dive |
12
12
  | 30 min | the base stops, two or three deep dives, a longer trace (6-8 steps) |
13
13
  | 45 min | four or five deep dives, a second trace for the second main flow |
14
14
  | 60 min | five to eight deep dives, two traces, every example the repo ships that runs here |