Compare commits
2 Commits
claude/iss
...
claude/iss
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae201aee26 | ||
| fd75985db6 |
93
docs/GHOST_WIZARD_AUDIT.md
Normal file
93
docs/GHOST_WIZARD_AUDIT.md
Normal file
@@ -0,0 +1,93 @@
|
||||
# Ghost Wizard Audit — #827
|
||||
|
||||
**Audited:** 2026-04-06
|
||||
**By:** Claude (claude/issue-827)
|
||||
**Parent Epic:** #822
|
||||
**Source Data:** #820 (Allegro's fleet audit)
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
Per Allegro's audit (#820) and Ezra's confirmation, 7 org members have zero activity.
|
||||
This document records the audit findings, classifies accounts, and tracks cleanup actions.
|
||||
|
||||
---
|
||||
|
||||
## Ghost Accounts (TIER 5 — Zero Activity)
|
||||
|
||||
These org members have produced 0 issues, 0 PRs, 0 everything.
|
||||
|
||||
| Account | Classification | Status |
|
||||
|---------|---------------|--------|
|
||||
| `antigravity` | Ghost / placeholder | No assignments, no output |
|
||||
| `google` | Ghost / service label | No assignments, no output |
|
||||
| `grok` | Ghost / service label | No assignments, no output |
|
||||
| `groq` | Ghost / service label | No assignments, no output |
|
||||
| `hermes` | Ghost / service label | No assignments, no output |
|
||||
| `kimi` | Ghost / service label | No assignments, no output |
|
||||
| `manus` | Ghost / service label | No assignments, no output |
|
||||
|
||||
**Action taken (2026-04-06):** Scanned all 107 open issues — **zero open issues are assigned to any of these accounts.** No assignment cleanup required.
|
||||
|
||||
---
|
||||
|
||||
## TurboQuant / Hermes-TurboQuant
|
||||
|
||||
Per issue #827: TurboQuant and Hermes-TurboQuant have no config, no token, no gateway.
|
||||
|
||||
**Repo audit finding:** No `turboquant/` or `hermes-turboquant/` directories exist anywhere in `the-nexus`. These names appear nowhere in the codebase. There is nothing to archive or flag.
|
||||
|
||||
**Status:** Ghost label — never instantiated in this repo.
|
||||
|
||||
---
|
||||
|
||||
## Active Wizard Roster (for reference)
|
||||
|
||||
These accounts have demonstrated real output:
|
||||
|
||||
| Account | Tier | Notes |
|
||||
|---------|------|-------|
|
||||
| `gemini` | TIER 1 — Elite | 61 PRs created, 33 merged, 6 repos active |
|
||||
| `allegro` | TIER 1 — Elite | 50 issues created, 31 closed, 24 PRs |
|
||||
| `ezra` | TIER 2 — Solid | 38 issues created, 26 closed, triage/docs |
|
||||
| `codex-agent` | TIER 3 — Occasional | 4 PRs, 75% merge rate |
|
||||
| `claude` | TIER 3 — Occasional | 4 PRs, 75% merge rate |
|
||||
| `perplexity` | TIER 3 — Occasional | 4 PRs, 3 repos |
|
||||
| `KimiClaw` | TIER 4 — Silent | 6 assigned, 1 PR |
|
||||
| `fenrir` | TIER 4 — Silent | 17 assigned, 0 output |
|
||||
| `bezalel` | TIER 4 — Silent | 3 assigned, 2 created |
|
||||
| `bilbobagginshire` | TIER 4 — Silent | 5 assigned, 0 output |
|
||||
|
||||
---
|
||||
|
||||
## Ghost Account Origin Notes
|
||||
|
||||
| Account | Likely Origin |
|
||||
|---------|--------------|
|
||||
| `antigravity` | Test/throwaway username used in FIRST_LIGHT_REPORT test sessions |
|
||||
| `google` | Placeholder for Google/Gemini API service routing; `gemini` is the real wizard account |
|
||||
| `grok` | xAI Grok model placeholder; no active harness |
|
||||
| `groq` | Groq API service label; `groq_worker.py` exists in codebase but no wizard account needed |
|
||||
| `hermes` | Hermes VPS infrastructure label; individual wizards (ezra, allegro) are the real accounts |
|
||||
| `kimi` | Moonshot AI Kimi model placeholder; `KimiClaw` is the real wizard account if active |
|
||||
| `manus` | Manus AI agent placeholder; no harness configured in this repo |
|
||||
|
||||
---
|
||||
|
||||
## Recommendations
|
||||
|
||||
1. **Do not route work to ghost accounts** — confirmed, no current assignments exist.
|
||||
2. **`google` account** is redundant with `gemini`; use `gemini` for all Gemini/Google work.
|
||||
3. **`hermes` account** is redundant with the actual wizard accounts (ezra, allegro); do not assign issues to it.
|
||||
4. **`kimi` vs `KimiClaw`** — if Kimi work resumes, route to `KimiClaw` not `kimi`.
|
||||
5. **TurboQuant** — no action needed; not instantiated in this repo.
|
||||
|
||||
---
|
||||
|
||||
## Cleanup Done
|
||||
|
||||
- [x] Scanned all 107 open issues for ghost account assignments → **0 found**
|
||||
- [x] Searched repo for TurboQuant directories → **none exist**
|
||||
- [x] Documented ghost vs. real account classification
|
||||
- [x] Ghost accounts flagged as "do not route" in this audit doc
|
||||
@@ -12,6 +12,7 @@
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@300;400;500;600&family=Orbitron:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<link rel="manifest" href="./manifest.json">
|
||||
<style>
|
||||
:root {
|
||||
--color-bg: #050510;
|
||||
|
||||
39
tests/test_manifest.py
Normal file
39
tests/test_manifest.py
Normal file
@@ -0,0 +1,39 @@
|
||||
"""Tests for manifest.json PWA support. Fixes #832 (Missing manifest.json)."""
|
||||
import json
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
def test_manifest_exists() -> None:
|
||||
assert Path("manifest.json").exists(), "manifest.json must exist for PWA support"
|
||||
|
||||
|
||||
def test_manifest_is_valid_json() -> None:
|
||||
content = Path("manifest.json").read_text()
|
||||
data = json.loads(content)
|
||||
assert isinstance(data, dict)
|
||||
|
||||
|
||||
def test_manifest_has_required_pwa_fields() -> None:
|
||||
data = json.loads(Path("manifest.json").read_text())
|
||||
assert "name" in data, "manifest.json must have 'name'"
|
||||
assert "short_name" in data, "manifest.json must have 'short_name'"
|
||||
assert "start_url" in data, "manifest.json must have 'start_url'"
|
||||
assert "display" in data, "manifest.json must have 'display'"
|
||||
assert "icons" in data, "manifest.json must have 'icons'"
|
||||
|
||||
|
||||
def test_manifest_icons_non_empty() -> None:
|
||||
data = json.loads(Path("manifest.json").read_text())
|
||||
assert len(data["icons"]) > 0, "manifest.json must define at least one icon"
|
||||
|
||||
|
||||
def test_index_html_references_manifest() -> None:
|
||||
content = Path("index.html").read_text()
|
||||
assert 'rel="manifest"' in content, "index.html must have <link rel=\"manifest\">"
|
||||
assert "manifest.json" in content, "index.html must reference manifest.json"
|
||||
|
||||
|
||||
def test_help_html_references_manifest() -> None:
|
||||
content = Path("help.html").read_text()
|
||||
assert 'rel="manifest"' in content, "help.html must have <link rel=\"manifest\">"
|
||||
assert "manifest.json" in content, "help.html must reference manifest.json"
|
||||
Reference in New Issue
Block a user