From cf17e7aefe77476d3b6e4f4acce57b1d24903d1c Mon Sep 17 00:00:00 2001 From: sol Date: Wed, 21 Oct 2026 04:32:17 +0000 Subject: [PATCH] sol: profile census & classification triage artifact --- wizard-work/sol/_verify_triage_profiles.py | 65 ++++++ wizard-work/sol/checksum_verify.txt | 6 +- .../__pycache__/triage_rubric.cpython-314.pyc | Bin 0 -> 6059 bytes .../sol/triage-profiles-2026-10-21.json | 199 ++++++++++++++++++ wizard-work/sol/triage-profiles-2026-10-21.md | 43 ++++ 5 files changed, 308 insertions(+), 5 deletions(-) create mode 100644 wizard-work/sol/_verify_triage_profiles.py create mode 100644 wizard-work/sol/triage-inbox-2026-09-26/__pycache__/triage_rubric.cpython-314.pyc create mode 100644 wizard-work/sol/triage-profiles-2026-10-21.json create mode 100644 wizard-work/sol/triage-profiles-2026-10-21.md diff --git a/wizard-work/sol/_verify_triage_profiles.py b/wizard-work/sol/_verify_triage_profiles.py new file mode 100644 index 0000000..5e8dc69 --- /dev/null +++ b/wizard-work/sol/_verify_triage_profiles.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python3 +"""Independent re-check for sol's profile-census triage artifact. + +Recomputes the ACTIVE/STALE/PLACEHOLDER split straight from +/root/.hermes/profiles (config.yaml presence) and diffs it against the +artifact written at triage-profiles-2026-10-21.json. Exit 0 = correct. +""" +import json +import os +import re +import sys + +PROFILES = "/root/.hermes/profiles" +ARTIFACT = "/root/.hermes/wizard-outputs/sol/triage-profiles-2026-10-21.json" + +MISC_DIRS = { + "audits", "cache", "bin", "cron", "external-workers", "image_cache", + "keys", "logs", "lsp", "memories", "plugin-update-checks", "plugins", + "runtime", "sandboxes", "sessions", "skills", "skins", "source-checks", + "vault", "workspace", +} + + +def reclassify(name): + cfg = os.path.join(PROFILES, name, "config.yaml") + if not os.path.isfile(cfg): + return "PLACEHOLDER" + try: + t = open(cfg, encoding="utf-8", errors="replace").read() + m = re.search(r"model:\s*\n\s*default:\s*(.+)", t) + if not m: + m = re.search(r"default:\s*(.+)", t) + return "ACTIVE" if (m and not m.group(1).startswith("ERR")) else "STALE" + except Exception: + return "STALE" + + +def main(): + want_names = sorted( + n for n in os.listdir(PROFILES) + if os.path.isdir(os.path.join(PROFILES, n)) + ) + want = {"ACTIVE": 0, "STALE": 0, "PLACEHOLDER": 0} + for n in want_names: + want[reclassify(n)] += 1 + + got = json.load(open(ARTIFACT, encoding="utf-8")) + if got.get("generated_utc") is None: + print("CHECK FAIL: artifact missing generated_utc") + return 1 + got_counts = {k: got.get(k, 0) for k in ("ACTIVE", "STALE", "PLACEHOLDER")} + if got_counts != want: + print("CHECK FAIL: counts artifact=%s recomputed=%s" + % (got_counts, want)) + return 1 + if len(got.get("entries", [])) != len(want_names): + print("CHECK FAIL: entries=%d want %d" + % (len(got.get("entries", [])), len(want_names))) + return 1 + print("CHECK OK: %d profiles -> %s" % (len(want_names), want)) + return 0 + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/wizard-work/sol/checksum_verify.txt b/wizard-work/sol/checksum_verify.txt index eb254e7..1fab019 100644 --- a/wizard-work/sol/checksum_verify.txt +++ b/wizard-work/sol/checksum_verify.txt @@ -1,5 +1 @@ -# checksum_verify.txt — sol issue-triage artifact - -File: wizard-work/sol/issue-triage.md -sha256: 51b0135f7cf07a39daf095213832e7dcf0d6d3633eb1a749998c5fca50e69f8e -verifier: python3 wizard-work/sol/issue-triage-verify.py (exit 0 = counts reproduced) +0978d03660b66ecfd43fe3e4f881db57fcded54e93c7bb06b699fbfc53c854eb triage-profiles-2026-10-21.json diff --git a/wizard-work/sol/triage-inbox-2026-09-26/__pycache__/triage_rubric.cpython-314.pyc b/wizard-work/sol/triage-inbox-2026-09-26/__pycache__/triage_rubric.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83e7da075cb65e417f7db11829789f162119f493 GIT binary patch literal 6059 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 HxG4V(Q(2al literal 0 HcmV?d00001 diff --git a/wizard-work/sol/triage-profiles-2026-10-21.json b/wizard-work/sol/triage-profiles-2026-10-21.json new file mode 100644 index 0000000..4483d71 --- /dev/null +++ b/wizard-work/sol/triage-profiles-2026-10-21.json @@ -0,0 +1,199 @@ +{ + "generated_utc": "2026-10-21T01:51:00Z", + "profiles_base": "/root/.hermes/profiles", + "total": 27, + "ACTIVE": 26, + "STALE": 0, + "PLACEHOLDER": 1, + "entries": [ + { + "name": "argus", + "status": "ACTIVE", + "model": "meituan/longcat-2.5-preview:free", + "nfiles": 16, + "ndirs": 24 + }, + { + "name": "beam", + "status": "ACTIVE", + "model": "reflection/beam-1.0-501b-a23b:free", + "nfiles": 16, + "ndirs": 23 + }, + { + "name": "buzzpilot", + "status": "ACTIVE", + "model": "gpt-5.6-sol", + "nfiles": 23, + "ndirs": 26 + }, + { + "name": "courtney", + "status": "ACTIVE", + "model": "deepseek-v4-pro", + "nfiles": 12, + "ndirs": 21 + }, + { + "name": "forge", + "status": "ACTIVE", + "model": "poolside/laguna-s-2.1:free", + "nfiles": 29, + "ndirs": 24 + }, + { + "name": "home", + "status": "ACTIVE", + "model": "deepseek-v4-pro", + "nfiles": 10, + "ndirs": 19 + }, + { + "name": "hou3", + "status": "ACTIVE", + "model": "stepfun/step-3.7-flash:free", + "nfiles": 16, + "ndirs": 22 + }, + { + "name": "inference-lab", + "status": "ACTIVE", + "model": "gpt-5.6-sol", + "nfiles": 17, + "ndirs": 21 + }, + { + "name": "kendra", + "status": "ACTIVE", + "model": "deepseek-v4-pro", + "nfiles": 10, + "ndirs": 19 + }, + { + "name": "ledger", + "status": "ACTIVE", + "model": "upstage/solar-mini4:free", + "nfiles": 19, + "ndirs": 24 + }, + { + "name": "lilly", + "status": "ACTIVE", + "model": "deepseek-v4-pro", + "nfiles": 12, + "ndirs": 22 + }, + { + "name": "merlin", + "status": "ACTIVE", + "model": "stepfun/step-5-preview:free", + "nfiles": 17, + "ndirs": 24 + }, + { + "name": "nightprowl", + "status": "ACTIVE", + "model": "meituan/longcat-2.0:free", + "nfiles": 21, + "ndirs": 22 + }, + { + "name": "null", + "status": "ACTIVE", + "model": "meituan/longcat-2.5-preview:free", + "nfiles": 19, + "ndirs": 24 + }, + { + "name": "praetorian", + "status": "ACTIVE", + "model": "nemotron-3.5-lightning-free", + "nfiles": 31, + "ndirs": 27 + }, + { + "name": "quill", + "status": "ACTIVE", + "model": "stepfun/step-3.7-flash:free", + "nfiles": 18, + "ndirs": 23 + }, + { + "name": "scribe", + "status": "ACTIVE", + "model": "meituan/longcat-2.0:free", + "nfiles": 18, + "ndirs": 23 + }, + { + "name": "sentinel", + "status": "ACTIVE", + "model": "nvidia/nemotron-3.5-super-vl-120b-a12b", + "nfiles": 16, + "ndirs": 23 + }, + { + "name": "sherry", + "status": "ACTIVE", + "model": "deepseek-v4-pro", + "nfiles": 10, + "ndirs": 19 + }, + { + "name": "sol", + "status": "ACTIVE", + "model": "upstage/solar-mini4:free", + "nfiles": 31, + "ndirs": 27 + }, + { + "name": "spark", + "status": "ACTIVE", + "model": "poolside/laguna-xs-2.1:free", + "nfiles": 18, + "ndirs": 24 + }, + { + "name": "spark-snippet-wizard", + "status": "PLACEHOLDER", + "model": "", + "nfiles": 10, + "ndirs": 13 + }, + { + "name": "sphinx", + "status": "ACTIVE", + "model": "meituan/longcat-2.5-preview:free", + "nfiles": 19, + "ndirs": 24 + }, + { + "name": "timmy", + "status": "ACTIVE", + "model": "gpt-5.6-sol", + "nfiles": 21, + "ndirs": 25 + }, + { + "name": "vincent", + "status": "ACTIVE", + "model": "gpt-5.6-sol", + "nfiles": 19, + "ndirs": 23 + }, + { + "name": "volt", + "status": "ACTIVE", + "model": "deepseek-flash", + "nfiles": 15, + "ndirs": 23 + }, + { + "name": "worker", + "status": "ACTIVE", + "model": "stealth/space-bunny-alpha", + "nfiles": 10, + "ndirs": 18 + } + ] +} \ No newline at end of file diff --git a/wizard-work/sol/triage-profiles-2026-10-21.md b/wizard-work/sol/triage-profiles-2026-10-21.md new file mode 100644 index 0000000..b917187 --- /dev/null +++ b/wizard-work/sol/triage-profiles-2026-10-21.md @@ -0,0 +1,43 @@ +# Profile census & classification — Triage — 2026-10-21 + +Evidence: `ls` of `/root/.hermes/profiles`; each `config.yaml` parsed for a `default` model. + +Run the independent re-check: +`python3 /root/.hermes/wizard-outputs/sol/_verify_triage_profiles.py` → `CHECK OK: 27 profiles -> {'ACTIVE': 26, 'STALE': 0, 'PLACEHOLDER': 1}`, exit 0. + +| name | status | model | files | dirs | +|---|---|---|---|---| +| argus | ACTIVE | meituan/longcat-2.5-preview:free | 16 | 24 | +| beam | ACTIVE | reflection/beam-1.0-501b-a23b:free | 16 | 23 | +| buzzpilot | ACTIVE | gpt-5.6-sol | 23 | 26 | +| courtney | ACTIVE | deepseek-v4-pro | 12 | 21 | +| forge | ACTIVE | poolside/laguna-s-2.1:free | 29 | 24 | +| home | ACTIVE | deepseek-v4-pro | 10 | 19 | +| hou3 | ACTIVE | stepfun/step-3.7-flash:free | 16 | 22 | +| inference-lab | ACTIVE | gpt-5.6-sol | 17 | 21 | +| kendra | ACTIVE | deepseek-v4-pro | 10 | 19 | +| ledger | ACTIVE | upstage/solar-mini4:free | 19 | 24 | +| lilly | ACTIVE | deepseek-v4-pro | 12 | 22 | +| merlin | ACTIVE | stepfun/step-5-preview:free | 17 | 24 | +| nightprowl | ACTIVE | meituan/longcat-2.0:free | 21 | 22 | +| null | ACTIVE | meituan/longcat-2.5-preview:free | 19 | 24 | +| praetorian | ACTIVE | nemotron-3.5-lightning-free | 31 | 27 | +| quill | ACTIVE | stepfun/step-3.7-flash:free | 18 | 23 | +| scribe | ACTIVE | meituan/longcat-2.0:free | 18 | 23 | +| sentinel | ACTIVE | nvidia/nemotron-3.5-super-vl-120b-a12b | 16 | 23 | +| sherry | ACTIVE | deepseek-v4-pro | 10 | 19 | +| sol | ACTIVE | upstage/solar-mini4:free | 31 | 27 | +| spark | ACTIVE | poolside/laguna-xs-2.1:free | 18 | 24 | +| sphinx | ACTIVE | meituan/longcat-2.5-preview:free | 19 | 24 | +| timmy | ACTIVE | gpt-5.6-sol | 21 | 25 | +| vincent | ACTIVE | gpt-5.6-sol | 19 | 23 | +| volt | ACTIVE | deepseek-flash | 15 | 23 | +| worker | ACTIVE | stealth/space-bunny-alpha | 10 | 18 | +| spark-snippet-wizard | PLACEHOLDER | | 10 | 13 | + +## Summary + +- **27** total profile directories +- **26** ACTIVE (installed agent with a config model) +- **0** STALE +- **1** PLACEHOLDER (no config.yaml, bare dir)