Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
9875a6d
feat: add contributor vetting test script
whoabuddy Dec 14, 2025
41aeb5b
feat: use DAO name instead of ID and add dry-run flag
whoabuddy Dec 14, 2025
fb636d9
fix: implement direct OpenRouter call in contributor vetting test
whoabuddy Dec 14, 2025
fb361c2
docs: update docstring to use dao-name instead of dao-id
whoabuddy Dec 14, 2025
77248ae
fix: update prompting, formatting
whoabuddy Dec 14, 2025
5a47606
feat: update contributor vetting with production proposal formatting …
whoabuddy Dec 14, 2025
19e6768
feat: add system prompt to summary and filled user prompts to results
whoabuddy Dec 14, 2025
faea7f3
feat: add contributor vetting viewer and manifest generator
whoabuddy Dec 14, 2025
9f55483
feat: show details by default and add explorer links for contributors
whoabuddy Dec 14, 2025
6f2e5fd
refactor: simplify contributor tables by removing category column
whoabuddy Dec 14, 2025
2e3ad07
feat: add raw JSON display to contributor details
whoabuddy Dec 14, 2025
0dcc0fc
feat: enhance proposals table with details toggle and more info
whoabuddy Dec 14, 2025
8038120
fix: limit proposals to 20, fix event delegation and empty state
whoabuddy Dec 14, 2025
06cddc5
fix: add fallback loading, error UI, and simplify proposals table
whoabuddy Dec 14, 2025
b2dc87a
fix: ensure proposal ID is string before slicing
whoabuddy Dec 14, 2025
59217ad
feat: display contributor ID after dot instead of short slice
whoabuddy Dec 14, 2025
c7e6b49
feat: add x_handle to vetting output and display in UI
whoabuddy Dec 14, 2025
de7a8c7
feat: add manifest generation after vetting test
whoabuddy Dec 14, 2025
b766b60
feat: prioritize X handle in title and add agent account line
whoabuddy Dec 14, 2025
ad4403b
refactor: move agent account info inside collapsible details
whoabuddy Dec 14, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions scripts/generate_vettings_manifest.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
#!/usr/bin/env python3
"""
Utility script to generate or update vettings-manifest.json based on contents of ./evals/.
Scans for files matching *_summary_dao*_vetting.json and creates a manifest with path and name (timestamp).
"""

import json
import os
import re
from datetime import datetime


def generate_manifest(evals_dir="./evals", manifest_path="./evals/vettings-manifest.json"):
"""Generate manifest from vetting summary JSON files in evals_dir."""
manifest = []
timestamp_pattern = re.compile(r"^(\d{8}_\d{6})_summary_dao.*_vetting\.json$")
for filename in os.listdir(evals_dir):
match = timestamp_pattern.match(filename)
if match:
timestamp_str = match.group(1) # YYYYMMDD_HHMMSS
try:
timestamp = datetime.strptime(timestamp_str, "%Y%m%d_%H%M%S")
name = timestamp.strftime("%Y-%m-%d %H:%M:%S")
except ValueError:
name = filename
manifest.append({"path": f"./evals/{filename}", "name": name})

# Sort by timestamp descending
manifest.sort(key=lambda x: x["name"], reverse=True)

os.makedirs(os.path.dirname(manifest_path), exist_ok=True)
with open(manifest_path, "w") as f:
json.dump(manifest, f, indent=2)

print(
f"✅ Vettings manifest generated/updated at {manifest_path} with {len(manifest)} entries."
)


if __name__ == "__main__":
generate_manifest()
Loading
Loading