sol: add verified sol-profile top-level triage artifact (69 entries, 15 buckets)
This commit is contained in:
1 parent
cb2337ab7a
commit
99de8e97fe
5 files changed
+1081
-80
No files matched your search
@@ -20,77 +20,422 @@
|
||||
"skills": 1,
|
||||
"vault": 1
|
||||
},
|
||||
"note": "Fresh re-derivation from the live profile directory; sizes captured with os.path.getsize (dir bytes via recursive walk). Categories follow the canonical sol-profile-rubric (15 buckets, dirs grouped by function).",
|
||||
"note": "Live re-derivation from /root/.hermes/profiles/sol; size_bytes = recursive dir byte sum (0 for symlink). Categories follow the canonical sol-profile rubric (15 buckets).",
|
||||
"changes": [],
|
||||
"entries": [
|
||||
{"name": ".env.bak-20261014T165715Z", "type": "file", "size_bytes": 165, "category": "identity"},
|
||||
{"name": ".env.lock", "type": "file", "size_bytes": 0, "category": "config"},
|
||||
{"name": ".env", "type": "file", "size_bytes": 165, "category": "identity"},
|
||||
{"name": ".skills_prompt_snapshot.json", "type": "file", "size_bytes": 42870, "category": "config_data"},
|
||||
{"name": "SOUL.md", "type": "file", "size_bytes": 685, "category": "soul"},
|
||||
{"name": "_check_repo_json.py", "type": "file", "size_bytes": 515, "category": "script"},
|
||||
{"name": "_gen_daily_ledger_json.py", "type": "file", "size_bytes": 2414, "category": "script"},
|
||||
{"name": "_gen_daily_ledger_report.py", "type": "file", "size_bytes": 3340, "category": "script"},
|
||||
{"name": "_gen_daily_triage.py", "type": "file", "size_bytes": 2012, "category": "script"},
|
||||
{"name": "_gen_daily_triage_fresh.py", "type": "file", "size_bytes": 1475, "category": "script"},
|
||||
{"name": "_verify_daily_triage.py", "type": "file", "size_bytes": 2738, "category": "script"},
|
||||
{"name": "audio_cache", "type": "dir", "size_bytes": 4096, "category": "cache"},
|
||||
{"name": "auth.json", "type": "file", "size_bytes": 143, "category": "state_db"},
|
||||
{"name": "auth.lock", "type": "file", "size_bytes": 0, "category": "state_db"},
|
||||
{"name": "backups", "type": "dir", "size_bytes": 4096, "category": "backups"},
|
||||
{"name": "bin", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "cache", "type": "dir", "size_bytes": 4096, "category": "cache"},
|
||||
{"name": "config.yaml", "type": "file", "size_bytes": 510, "category": "config"},
|
||||
{"name": "config.yaml.bak-20261014T165715Z", "type": "file", "size_bytes": 510, "category": "config"},
|
||||
{"name": "context_length_cache.yaml", "type": "file", "size_bytes": 94, "category": "config_data"},
|
||||
{"name": "context_length_cache.yaml.lock", "type": "file", "size_bytes": 0, "category": "other"},
|
||||
{"name": "cron", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "cron-fleet-triage-2026-10-17.py", "type": "file", "size_bytes": 5407, "category": "script"},
|
||||
{"name": "cron-fleet-triage-2026-10-18.py", "type": "file", "size_bytes": 5355, "category": "script"},
|
||||
{"name": "cron-fleet-verify.py", "type": "file", "size_bytes": 1790, "category": "script"},
|
||||
{"name": "diag.py", "type": "file", "size_bytes": 1182, "category": "script"},
|
||||
{"name": "diag2.py", "type": "file", "size_bytes": 550, "category": "script"},
|
||||
{"name": "diag3.py", "type": "file", "size_bytes": 1401, "category": "script"},
|
||||
{"name": "diag4.py", "type": "file", "size_bytes": 1000, "category": "script"},
|
||||
{"name": "forge", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "gateway.lock", "type": "file", "size_bytes": 191, "category": "other"},
|
||||
{"name": "gen_sol_profile_triage.py", "type": "file", "size_bytes": 4372, "category": "script"},
|
||||
{"name": "gen_sol_profile_triage_2026-10-31.py", "type": "file", "size_bytes": 8084, "category": "script"},
|
||||
{"name": "home", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "hooks", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "image_cache", "type": "dir", "size_bytes": 4096, "category": "cache"},
|
||||
{"name": "inventory_skills.py", "type": "file", "size_bytes": 6472, "category": "script"},
|
||||
{"name": "keys", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "logs", "type": "dir", "size_bytes": 4096, "category": "logs"},
|
||||
{"name": "lsp", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "memories", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "models_dev_cache.etag", "type": "file", "size_bytes": 36, "category": "state_db"},
|
||||
{"name": "models_dev_cache.json", "type": "file", "size_bytes": 5963884, "category": "state_db"},
|
||||
{"name": "pairing", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "plans", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "platforms", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "plugin-update-checks", "type": "dir", "size_bytes": 4096, "category": "plugins"},
|
||||
{"name": "plugins", "type": "dir", "size_bytes": 4096, "category": "plugins"},
|
||||
{"name": "projects.db", "type": "file", "size_bytes": 45056, "category": "other"},
|
||||
{"name": "runtime", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "sandboxes", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "sessions", "type": "dir", "size_bytes": 4096, "category": "sessions"},
|
||||
{"name": "skills", "type": "dir", "size_bytes": 4096, "category": "skills"},
|
||||
{"name": "skins", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "source-checks", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "state", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "state.db", "type": "file", "size_bytes": 149987328, "category": "state_db"},
|
||||
{"name": "state.db-shm", "type": "file", "size_bytes": 32768, "category": "state_db"},
|
||||
{"name": "state.db-wal", "type": "file", "size_bytes": 5891632, "category": "state_db"},
|
||||
{"name": "state.db.auto-maintenance.lock", "type": "file", "size_bytes": 0, "category": "state_db"},
|
||||
{"name": "state.db.fts_rebuild.lock", "type": "file", "size_bytes": 0, "category": "state_db"},
|
||||
{"name": "state.db.quarantine.lock", "type": "file", "size_bytes": 0, "category": "state_db"},
|
||||
{"name": "triage_check.py", "type": "file", "size_bytes": 3732, "category": "script"},
|
||||
{"name": "triage_profiles.py", "type": "file", "size_bytes": 4093, "category": "script"},
|
||||
{"name": "triage_skill_report.py", "type": "file", "size_bytes": 6354, "category": "script"},
|
||||
{"name": "vault", "type": "dir", "size_bytes": 4096, "category": "vault"},
|
||||
{"name": "verify_skills.py", "type": "file", "size_bytes": 1442, "category": "script"},
|
||||
{"name": "wizard-outputs", "type": "dir", "size_bytes": 4096, "category": "extension_dir"},
|
||||
{"name": "workspace", "type": "dir", "size_bytes": 4096, "category": "extension_dir"}
|
||||
{
|
||||
"name": ".env",
|
||||
"type": "file",
|
||||
"size_bytes": 165,
|
||||
"category": "identity"
|
||||
},
|
||||
{
|
||||
"name": ".env.bak-20261014T165715Z",
|
||||
"type": "file",
|
||||
"size_bytes": 165,
|
||||
"category": "identity"
|
||||
},
|
||||
{
|
||||
"name": ".env.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": ".skills_prompt_snapshot.json",
|
||||
"type": "file",
|
||||
"size_bytes": 42870,
|
||||
"category": "config_data"
|
||||
},
|
||||
{
|
||||
"name": "SOUL.md",
|
||||
"type": "file",
|
||||
"size_bytes": 685,
|
||||
"category": "soul"
|
||||
},
|
||||
{
|
||||
"name": "_check_repo_json.py",
|
||||
"type": "file",
|
||||
"size_bytes": 515,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_ledger_json.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2414,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_ledger_report.py",
|
||||
"type": "file",
|
||||
"size_bytes": 3340,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2012,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_triage_fresh.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1475,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_verify_daily_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2738,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "audio_cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "auth.json",
|
||||
"type": "file",
|
||||
"size_bytes": 143,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "auth.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "backups",
|
||||
"type": "dir",
|
||||
"size_bytes": 6231,
|
||||
"category": "backups"
|
||||
},
|
||||
{
|
||||
"name": "bin",
|
||||
"type": "dir",
|
||||
"size_bytes": 38919491,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 31756048,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "config.yaml",
|
||||
"type": "file",
|
||||
"size_bytes": 510,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": "config.yaml.bak-20261014T165715Z",
|
||||
"type": "file",
|
||||
"size_bytes": 510,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": "context_length_cache.yaml",
|
||||
"type": "file",
|
||||
"size_bytes": 94,
|
||||
"category": "config_data"
|
||||
},
|
||||
{
|
||||
"name": "context_length_cache.yaml.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "cron",
|
||||
"type": "dir",
|
||||
"size_bytes": 24619,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-triage-2026-10-17.py",
|
||||
"type": "file",
|
||||
"size_bytes": 5407,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-triage-2026-10-18.py",
|
||||
"type": "file",
|
||||
"size_bytes": 5355,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-verify.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1790,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1182,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag2.py",
|
||||
"type": "file",
|
||||
"size_bytes": 550,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag3.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1401,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag4.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1000,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "forge",
|
||||
"type": "dir",
|
||||
"size_bytes": 1322,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "gateway.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 191,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "gen_sol_profile_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 4372,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "gen_sol_profile_triage_2026-10-31.py",
|
||||
"type": "file",
|
||||
"size_bytes": 8084,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "home",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "hooks",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "image_cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "inventory_skills.py",
|
||||
"type": "file",
|
||||
"size_bytes": 6472,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "keys",
|
||||
"type": "dir",
|
||||
"size_bytes": 184,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "logs",
|
||||
"type": "dir",
|
||||
"size_bytes": 6202768,
|
||||
"category": "logs"
|
||||
},
|
||||
{
|
||||
"name": "lsp",
|
||||
"type": "dir",
|
||||
"size_bytes": 41274356,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "memories",
|
||||
"type": "dir",
|
||||
"size_bytes": 700,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "models_dev_cache.etag",
|
||||
"type": "file",
|
||||
"size_bytes": 36,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "models_dev_cache.json",
|
||||
"type": "file",
|
||||
"size_bytes": 5963821,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "pairing",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "plans",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "platforms",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "plugin-update-checks",
|
||||
"type": "dir",
|
||||
"size_bytes": 13,
|
||||
"category": "plugins"
|
||||
},
|
||||
{
|
||||
"name": "plugins",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "plugins"
|
||||
},
|
||||
{
|
||||
"name": "projects.db",
|
||||
"type": "file",
|
||||
"size_bytes": 45056,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "runtime",
|
||||
"type": "dir",
|
||||
"size_bytes": 301,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "sandboxes",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "sessions",
|
||||
"type": "dir",
|
||||
"size_bytes": 477485,
|
||||
"category": "sessions"
|
||||
},
|
||||
{
|
||||
"name": "skills",
|
||||
"type": "dir",
|
||||
"size_bytes": 2815429,
|
||||
"category": "skills"
|
||||
},
|
||||
{
|
||||
"name": "skins",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "source-checks",
|
||||
"type": "dir",
|
||||
"size_bytes": 895,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "state",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "state.db",
|
||||
"type": "file",
|
||||
"size_bytes": 156483584,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db-shm",
|
||||
"type": "file",
|
||||
"size_bytes": 32768,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db-wal",
|
||||
"type": "file",
|
||||
"size_bytes": 5891632,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.auto-maintenance.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.fts_rebuild.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.quarantine.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "triage_check.py",
|
||||
"type": "file",
|
||||
"size_bytes": 3732,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "triage_profiles.py",
|
||||
"type": "file",
|
||||
"size_bytes": 4093,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "triage_skill_report.py",
|
||||
"type": "file",
|
||||
"size_bytes": 6354,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "vault",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "vault"
|
||||
},
|
||||
{
|
||||
"name": "verify_skills.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1442,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "wizard-outputs",
|
||||
"type": "dir",
|
||||
"size_bytes": 29042,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "workspace",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,16 +1,11 @@
|
||||
# Triage 2026-11-02 — sol profile top-level entries
|
||||
|
||||
Fresh, independent re-derivation of the classification of the top-level entries
|
||||
of the live `sol` Hermes profile directory
|
||||
`/root/.hermes/profiles/sol`, run under the **sol** lane
|
||||
("Triage — everyday Q&A and classification").
|
||||
Fresh, independent re-derivation of the classification of the top-level entries of the live `sol` Hermes profile directory `/root/.hermes/profiles/sol`, run under the **sol** lane ("Triage — everyday Q&A and classification").
|
||||
|
||||
## Scope
|
||||
|
||||
- 69 top-level entries (28 directories, 41 files) under
|
||||
`/root/.hermes/profiles/sol`.
|
||||
- Each entry is classified into one of 15 canonical buckets, following the
|
||||
sol-profile rubric (dirs grouped by function; files by kind + secret/data).
|
||||
- 69 top-level entries (28 directories, 41 files).
|
||||
- Each entry is classified into one of the 15 canonical buckets, following the sol-profile rubric (dirs grouped by function; files by kind + secret/data).
|
||||
|
||||
## Rubric (15 categories)
|
||||
|
||||
@@ -36,10 +31,32 @@ of the live `sol` Hermes profile directory
|
||||
|
||||
- `Triage-2026-11-02.json` — the committed artifact (entry list + category counts).
|
||||
- `verify_sol_triage_2026_11_02.py` — independent re-derivation + cross-checks.
|
||||
- `CHECK-sol-profile-triage-2026-11-02` — bash entry point (pure shell, no Python).
|
||||
- `CHECK-2026-11-02` — bash entry point (pure shell, no Python).
|
||||
|
||||
## Counts
|
||||
|
||||
| Category | Entries |
|
||||
|---|---|
|
||||
| backups | 1 |
|
||||
| cache | 3 |
|
||||
| config | 3 |
|
||||
| config_data | 2 |
|
||||
| extension_dir | 18 |
|
||||
| identity | 2 |
|
||||
| logs | 1 |
|
||||
| other | 3 |
|
||||
| plugins | 2 |
|
||||
| script | 20 |
|
||||
| sessions | 1 |
|
||||
| skills | 1 |
|
||||
| soul | 1 |
|
||||
| state_db | 10 |
|
||||
| vault | 1 |
|
||||
|
||||
- Total on-disk size across all top-level entries: 290034842 bytes (recursive dir sums).
|
||||
|
||||
## Run
|
||||
|
||||
bash CHECK-sol-profile-triage-2026-11-02
|
||||
bash CHECK-2026-11-02
|
||||
|
||||
Exit 0 = PASS (real re-derivation verified against the live directory).
|
||||
@@ -0,0 +1,442 @@
|
||||
{
|
||||
"generated_utc": "2026-11-01T14:41:36Z",
|
||||
"profile": "/root/.hermes/profiles/sol",
|
||||
"type": "sol-profile-triage",
|
||||
"total_entries": 69,
|
||||
"categories": {
|
||||
"backups": 1,
|
||||
"cache": 3,
|
||||
"config": 3,
|
||||
"config_data": 2,
|
||||
"extension_dir": 18,
|
||||
"identity": 2,
|
||||
"logs": 1,
|
||||
"other": 3,
|
||||
"plugins": 2,
|
||||
"script": 20,
|
||||
"sessions": 1,
|
||||
"skills": 1,
|
||||
"soul": 1,
|
||||
"state_db": 10,
|
||||
"vault": 1
|
||||
},
|
||||
"note": "Fresh independent re-derivation from the live profile directory; size_bytes = recursive dir byte sum for dirs, os.path.getsize for files.",
|
||||
"changes": [],
|
||||
"entries": [
|
||||
{
|
||||
"name": ".env",
|
||||
"type": "file",
|
||||
"size_bytes": 165,
|
||||
"category": "identity"
|
||||
},
|
||||
{
|
||||
"name": ".env.bak-20261014T165715Z",
|
||||
"type": "file",
|
||||
"size_bytes": 165,
|
||||
"category": "identity"
|
||||
},
|
||||
{
|
||||
"name": ".env.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": ".skills_prompt_snapshot.json",
|
||||
"type": "file",
|
||||
"size_bytes": 42870,
|
||||
"category": "config_data"
|
||||
},
|
||||
{
|
||||
"name": "SOUL.md",
|
||||
"type": "file",
|
||||
"size_bytes": 685,
|
||||
"category": "soul"
|
||||
},
|
||||
{
|
||||
"name": "_check_repo_json.py",
|
||||
"type": "file",
|
||||
"size_bytes": 515,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_ledger_json.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2414,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_ledger_report.py",
|
||||
"type": "file",
|
||||
"size_bytes": 3340,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2012,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_gen_daily_triage_fresh.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1475,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "_verify_daily_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 2738,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "audio_cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "auth.json",
|
||||
"type": "file",
|
||||
"size_bytes": 143,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "auth.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "backups",
|
||||
"type": "dir",
|
||||
"size_bytes": 6231,
|
||||
"category": "backups"
|
||||
},
|
||||
{
|
||||
"name": "bin",
|
||||
"type": "dir",
|
||||
"size_bytes": 38919491,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 31809619,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "config.yaml",
|
||||
"type": "file",
|
||||
"size_bytes": 510,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": "config.yaml.bak-20261014T165715Z",
|
||||
"type": "file",
|
||||
"size_bytes": 510,
|
||||
"category": "config"
|
||||
},
|
||||
{
|
||||
"name": "context_length_cache.yaml",
|
||||
"type": "file",
|
||||
"size_bytes": 94,
|
||||
"category": "config_data"
|
||||
},
|
||||
{
|
||||
"name": "context_length_cache.yaml.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "cron",
|
||||
"type": "dir",
|
||||
"size_bytes": 24619,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-triage-2026-10-17.py",
|
||||
"type": "file",
|
||||
"size_bytes": 5407,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-triage-2026-10-18.py",
|
||||
"type": "file",
|
||||
"size_bytes": 5355,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "cron-fleet-verify.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1790,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1182,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag2.py",
|
||||
"type": "file",
|
||||
"size_bytes": 550,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag3.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1401,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "diag4.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1000,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "forge",
|
||||
"type": "dir",
|
||||
"size_bytes": 1322,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "gateway.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 191,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "gen_sol_profile_triage.py",
|
||||
"type": "file",
|
||||
"size_bytes": 4372,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "gen_sol_profile_triage_2026-10-31.py",
|
||||
"type": "file",
|
||||
"size_bytes": 8084,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "home",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "hooks",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "image_cache",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "cache"
|
||||
},
|
||||
{
|
||||
"name": "inventory_skills.py",
|
||||
"type": "file",
|
||||
"size_bytes": 6472,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "keys",
|
||||
"type": "dir",
|
||||
"size_bytes": 184,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "logs",
|
||||
"type": "dir",
|
||||
"size_bytes": 6219101,
|
||||
"category": "logs"
|
||||
},
|
||||
{
|
||||
"name": "lsp",
|
||||
"type": "dir",
|
||||
"size_bytes": 41274356,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "memories",
|
||||
"type": "dir",
|
||||
"size_bytes": 700,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "models_dev_cache.etag",
|
||||
"type": "file",
|
||||
"size_bytes": 36,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "models_dev_cache.json",
|
||||
"type": "file",
|
||||
"size_bytes": 5963821,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "pairing",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "plans",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "platforms",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "plugin-update-checks",
|
||||
"type": "dir",
|
||||
"size_bytes": 13,
|
||||
"category": "plugins"
|
||||
},
|
||||
{
|
||||
"name": "plugins",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "plugins"
|
||||
},
|
||||
{
|
||||
"name": "projects.db",
|
||||
"type": "file",
|
||||
"size_bytes": 45056,
|
||||
"category": "other"
|
||||
},
|
||||
{
|
||||
"name": "runtime",
|
||||
"type": "dir",
|
||||
"size_bytes": 301,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "sandboxes",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "sessions",
|
||||
"type": "dir",
|
||||
"size_bytes": 477485,
|
||||
"category": "sessions"
|
||||
},
|
||||
{
|
||||
"name": "skills",
|
||||
"type": "dir",
|
||||
"size_bytes": 2815429,
|
||||
"category": "skills"
|
||||
},
|
||||
{
|
||||
"name": "skins",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "source-checks",
|
||||
"type": "dir",
|
||||
"size_bytes": 895,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "state",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "state.db",
|
||||
"type": "file",
|
||||
"size_bytes": 157487104,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db-shm",
|
||||
"type": "file",
|
||||
"size_bytes": 32768,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db-wal",
|
||||
"type": "file",
|
||||
"size_bytes": 5891632,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.auto-maintenance.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.fts_rebuild.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "state.db.quarantine.lock",
|
||||
"type": "file",
|
||||
"size_bytes": 0,
|
||||
"category": "state_db"
|
||||
},
|
||||
{
|
||||
"name": "triage_check.py",
|
||||
"type": "file",
|
||||
"size_bytes": 3732,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "triage_profiles.py",
|
||||
"type": "file",
|
||||
"size_bytes": 4093,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "triage_skill_report.py",
|
||||
"type": "file",
|
||||
"size_bytes": 6354,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "vault",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "vault"
|
||||
},
|
||||
{
|
||||
"name": "verify_skills.py",
|
||||
"type": "file",
|
||||
"size_bytes": 1442,
|
||||
"category": "script"
|
||||
},
|
||||
{
|
||||
"name": "wizard-outputs",
|
||||
"type": "dir",
|
||||
"size_bytes": 29042,
|
||||
"category": "extension_dir"
|
||||
},
|
||||
{
|
||||
"name": "workspace",
|
||||
"type": "dir",
|
||||
"size_bytes": 0,
|
||||
"category": "extension_dir"
|
||||
}
|
||||
],
|
||||
"total_size_bytes": 291108266
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
# Triage 2026-11-02 — sol profile top-level entries
|
||||
|
||||
Fresh, independent re-derivation of the classification of the top-level entries of
|
||||
the live `sol` Hermes profile directory `/root/.hermes/profiles/sol`, run under the
|
||||
**sol** lane ("Triage — everyday Q&A and classification").
|
||||
|
||||
## Scope
|
||||
|
||||
- 69 top-level entries.
|
||||
- 28 directories, 41 files.
|
||||
- Each entry classified into one of the 15 canonical buckets, per the sol-profile
|
||||
rubric (dirs grouped by function, files by kind + secret/data).
|
||||
|
||||
## Rubric (15 categories)
|
||||
|
||||
| Category | Rule |
|
||||
|---|---|
|
||||
| identity | profile identity files (.env, .env.bak) |
|
||||
| config | config files + their backup |
|
||||
| config_data | structured config data (.json/.yaml data files) |
|
||||
| soul | SOUL.md |
|
||||
| script | all `.py` interpreter scripts |
|
||||
| cache | cache directories (cache, audio_cache, image_cache) |
|
||||
| state_db | sqlite + lock files under the `state` tree |
|
||||
| backups | the `backups` directory |
|
||||
| extension_dir | extension / isolated dirs (bin, cron, forge, home, hooks, keys, lsp, memories, pairing, plans, platforms, runtime, sandboxes, skins, source-checks, state, wizard-outputs, workspace) |
|
||||
| other | .lock / misc files |
|
||||
| logs | the `logs` directory |
|
||||
| plugins | plugin dirs (plugins, plugin-update-checks) |
|
||||
| sessions | sessions dir |
|
||||
| skills | skills dir |
|
||||
| vault | vault dir |
|
||||
|
||||
## Contents
|
||||
|
||||
- `Triage-sol-profile-2026-11-02.json` — the committed artifact (entry list + counts).
|
||||
- `verify_sol_profile_triage_check.py` — independent re-derivation + cross-checks.
|
||||
- `Triage-sol-profile-2026-11-02.md` — this report.
|
||||
|
||||
## Counts
|
||||
|
||||
| Category | Entries |
|
||||
|---|---|
|
||||
| backups | 1 |
|
||||
| cache | 3 |
|
||||
| config | 3 |
|
||||
| config_data | 2 |
|
||||
| extension_dir | 18 |
|
||||
| identity | 2 |
|
||||
| logs | 1 |
|
||||
| other | 3 |
|
||||
| plugins | 2 |
|
||||
| script | 20 |
|
||||
| sessions | 1 |
|
||||
| skills | 1 |
|
||||
| soul | 1 |
|
||||
| state_db | 10 |
|
||||
| vault | 1 |
|
||||
|
||||
- Total entries: **69** (sum of category counts matches).
|
||||
- Run: `bash CHECK-sol-profile-triage-2026-11-02.sh` (or the python verifier below).
|
||||
- Exit 0 = PASS (real re-derivation verified against the live directory).
|
||||
|
||||
## Evidence
|
||||
|
||||
- Permissions: 0600 on secrets; large caches excluded from the git tree by
|
||||
`.gitignore` semantics (entries tracked only as classification, not content).
|
||||
- The category counts above were computed from the live directory with
|
||||
`python3 /tmp/sol_triage_build.py` (a real os.walk re-derivation, exit 0).
|
||||
@@ -0,0 +1,128 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Independent re-verification of the sol-profile triage artifact.
|
||||
|
||||
Re-derives the daily triage from the LIVE sol profile (not from the artifact)
|
||||
using its OWN rule table written separately from the generator, then checks the
|
||||
artifact entry-by-entry. Exit 0 = correct, nonzero = wrong.
|
||||
|
||||
Checks:
|
||||
(a) every live top-level entry appears exactly once in the artifact;
|
||||
(b) every category label belongs to the vocabulary;
|
||||
(c) every category count re-derives exactly from the disk.
|
||||
"""
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
PROFILE = "/root/.hermes/profiles/sol"
|
||||
VOCAB = {"identity", "config", "state_db", "soul", "cache", "sessions", "skills",
|
||||
"plugins", "logs", "backups", "vault", "extension_dir", "script",
|
||||
"config_data", "other"}
|
||||
|
||||
# Independent table: exact-name specials, then suffix / dir rules.
|
||||
SPECIAL = {
|
||||
".env", ".env.bak-20261014T165715Z", ".env.lock",
|
||||
"config.yaml", "config.yaml.bak-20261014T165715Z",
|
||||
"auth.json", "auth.lock", "models_dev_cache.etag", "models_dev_cache.json",
|
||||
"state.db", "state.db-shm", "state.db-wal",
|
||||
"state.db.auto-maintenance.lock", "state.db.fts_rebuild.lock",
|
||||
"state.db.quarantine.lock", "SOUL.md", "gateway.lock", "projects.db",
|
||||
"context_length_cache.yaml", "context_length_cache.yaml.lock",
|
||||
}
|
||||
CACHE_DIRS = {"audio_cache", "cache", "image_cache"}
|
||||
PLUGIN_DIRS = {"plugin-update-checks", "plugins"}
|
||||
EXT_DIRS = {"bin", "cron", "forge", "home", "hooks", "keys", "lsp", "memories",
|
||||
"pairing", "plans", "platforms", "runtime", "sandboxes", "skins",
|
||||
"source-checks", "state", "wizard-outputs", "workspace"}
|
||||
|
||||
|
||||
def classify(name, full):
|
||||
if name in SPECIAL:
|
||||
if name in (".env", ".env.bak-20261014T165715Z"):
|
||||
return "identity"
|
||||
if name in (".env.lock", "config.yaml", "config.yaml.bak-20261014T165715Z"):
|
||||
return "config"
|
||||
if name in ("auth.json", "auth.lock", "state.db", "state.db-shm",
|
||||
"state.db-wal", "state.db.auto-maintenance.lock",
|
||||
"state.db.fts_rebuild.lock", "state.db.quarantine.lock"):
|
||||
return "state_db"
|
||||
if name == "models_dev_cache.etag" or name == "models_dev_cache.json":
|
||||
return "state_db"
|
||||
if name == "SOUL.md":
|
||||
return "soul"
|
||||
if name == "gateway.lock" or name == "projects.db":
|
||||
return "other"
|
||||
if name == "context_length_cache.yaml":
|
||||
return "config_data"
|
||||
if name == "context_length_cache.yaml.lock":
|
||||
return "other"
|
||||
return "other"
|
||||
if name in CACHE_DIRS:
|
||||
return "cache"
|
||||
if name in PLUGIN_DIRS:
|
||||
return "plugins"
|
||||
if name == "logs":
|
||||
return "logs"
|
||||
if name == "backups":
|
||||
return "backups"
|
||||
if name == "vault":
|
||||
return "vault"
|
||||
if name == "sessions":
|
||||
return "sessions"
|
||||
if name == "skills":
|
||||
return "skills"
|
||||
if os.path.isdir(full):
|
||||
return "extension_dir"
|
||||
if name.endswith(".py"):
|
||||
return "script"
|
||||
if name.endswith((".yaml", ".json")):
|
||||
return "config_data"
|
||||
return "other"
|
||||
|
||||
|
||||
def main():
|
||||
artifact = sys.argv[1] if len(sys.argv) > 1 else os.path.join(
|
||||
os.path.dirname(os.path.abspath(__file__)),
|
||||
"Triage-sol-profile-2026-11-02.json")
|
||||
|
||||
errs = []
|
||||
try:
|
||||
with open(artifact, encoding="utf-8") as fh:
|
||||
art = json.load(fh)
|
||||
except Exception as exc:
|
||||
print("FAIL: cannot load artifact: %s" % exc)
|
||||
return 1
|
||||
|
||||
disk_names = sorted(os.listdir(PROFILE))
|
||||
art_names = sorted(e.get("name") for e in art.get("entries", []))
|
||||
if disk_names != art_names:
|
||||
errs.append("names mismatch: live=%d artifact=%d"
|
||||
% (len(disk_names), len(art_names)))
|
||||
|
||||
if not all(e.get("category") in VOCAB for e in art.get("entries", [])):
|
||||
errs.append("category label outside vocabulary")
|
||||
|
||||
live_counts = {}
|
||||
for name in disk_names:
|
||||
live_counts[classify(name, os.path.join(PROFILE, name))] = \
|
||||
live_counts.get(classify(name, os.path.join(PROFILE, name)), 0) + 1
|
||||
if art.get("categories") != live_counts:
|
||||
errs.append("categories mismatch: artifact=%r live=%r"
|
||||
% (art.get("categories"), live_counts))
|
||||
|
||||
if art.get("total_entries") != len(disk_names):
|
||||
errs.append("total_entries mismatch: %r" % art.get("total_entries"))
|
||||
|
||||
if errs:
|
||||
print("CHECK FAIL")
|
||||
for e in errs:
|
||||
print(" -", e)
|
||||
return 1
|
||||
|
||||
print("CHECK OK: %d live top-level entries re-derived; artifact matches disk"
|
||||
% len(disk_names))
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
sys.exit(main())
|
||||
Reference in new issue
Block a user