{ "version": "1.0.0", "description": "Master manifest of all Timmy automations", "_health_snapshot": { "note": "Quick health check before coding — CI, P0/P1 issues, flakiness" }, "last_updated": "2026-03-23", "automations": [ { "id": "cycle_retro", "name": "Cycle Retrospective", "description": "Logs structured retrospective data after each development cycle", "script": "scripts/cycle_retro.py", "category": "daily_run", "enabled": true, "trigger": "post_cycle", "executable": "python3", "config": { "retro_file": ".loop/retro/cycles.jsonl", "summary_file": ".loop/retro/summary.json", "summary_window": 50, "epoch_enabled": true }, "outputs": [ ".loop/retro/cycles.jsonl", ".loop/retro/summary.json" ] }, { "id": "loop_guard", "name": "Loop Guard", "description": "Idle detection with exponential backoff to prevent burning cycles on empty queues", "script": "scripts/loop_guard.py", "category": "daily_run", "enabled": true, "trigger": "pre_cycle", "executable": "python3", "config": { "queue_file": ".loop/queue.json", "idle_state_file": ".loop/idle_state.json", "backoff_base_seconds": 60, "backoff_max_seconds": 600, "backoff_multiplier": 2, "cycle_duration_seconds": 300 }, "outputs": [ ".loop/idle_state.json" ] }, { "id": "triage_score", "name": "Mechanical Triage Scoring", "description": "Pure heuristic scoring of open issues based on scope, acceptance criteria, and alignment", "script": "scripts/triage_score.py", "category": "daily_run", "enabled": true, "trigger": "scheduled", "schedule": "every_10_cycles", "executable": "python3", "config": { "ready_threshold": 5, "quarantine_lookback": 20, "queue_file": ".loop/queue.json", "retro_file": ".loop/retro/triage.jsonl", "quarantine_file": ".loop/quarantine.json" }, "outputs": [ ".loop/queue.json", ".loop/retro/triage.jsonl", ".loop/quarantine.json" ] }, { "id": "deep_triage", "name": "Deep Triage", "description": "LLM-driven intelligent issue refinement, breaking down large issues, adding acceptance criteria", "script": "scripts/deep_triage.sh", "category": "triage", "enabled": true, "trigger": "scheduled", "schedule": "every_20_cycles", "executable": "bash", "depends_on": ["loop_introspect"], "config": { "queue_file": ".loop/queue.json", "retro_file": ".loop/retro/deep-triage.jsonl", "prompt_file": "scripts/deep_triage_prompt.md", "timmy_consultation": true, "timmy_timeout_seconds": 60 }, "outputs": [ ".loop/queue.json", ".loop/retro/deep-triage.jsonl" ] }, { "id": "loop_introspect", "name": "Loop Introspection", "description": "Self-improvement engine that analyzes retro data and produces structured recommendations", "script": "scripts/loop_introspect.py", "category": "triage", "enabled": true, "trigger": "scheduled", "schedule": "every_20_cycles", "executable": "python3", "config": { "cycles_file": ".loop/retro/cycles.jsonl", "deep_triage_file": ".loop/retro/deep-triage.jsonl", "triage_file": ".loop/retro/triage.jsonl", "quarantine_file": ".loop/quarantine.json", "insights_file": ".loop/retro/insights.json", "trend_window_days": 7 }, "outputs": [ ".loop/retro/insights.json" ] }, { "id": "agent_workspace", "name": "Agent Workspace Manager", "description": "Creates and maintains isolated git clones, port ranges, and data directories per agent", "script": "scripts/agent_workspace.sh", "category": "workspace", "enabled": true, "trigger": "manual", "executable": "bash", "config": { "agents_dir": "/tmp/timmy-agents", "canonical_repo": "~/Timmy-Time-dashboard", "gitea_remote": "http://localhost:3000/rockachopa/Timmy-time-dashboard.git", "agents": ["hermes", "kimi-0", "kimi-1", "kimi-2", "kimi-3", "smoke"], "port_base_dashboard": 8100, "port_base_serve": 8200 }, "outputs": [] }, { "id": "kimi_bootstrap", "name": "Kimi Workspace Bootstrap", "description": "One-time setup script for new Kimi agent workspaces", "script": ".kimi/scripts/bootstrap.sh", "category": "workspace", "enabled": true, "trigger": "manual", "executable": "bash", "config": {}, "outputs": [] }, { "id": "kimi_resume", "name": "Kimi Resume", "description": "Quick status check and resume prompt for Kimi workspaces", "script": ".kimi/scripts/resume.sh", "category": "workspace", "enabled": true, "trigger": "manual", "executable": "bash", "config": {}, "outputs": [] }, { "id": "backfill_retro", "name": "Backfill Retrospective", "description": "One-time script to seed retrospective data from Gitea PR history", "script": "scripts/backfill_retro.py", "category": "metrics", "enabled": true, "trigger": "manual", "executable": "python3", "config": { "retro_file": ".loop/retro/cycles.jsonl", "summary_file": ".loop/retro/summary.json", "gitea_api": "http://localhost:3000/api/v1" }, "outputs": [ ".loop/retro/cycles.jsonl", ".loop/retro/summary.json" ] }, { "id": "pre_commit_checks", "name": "Pre-commit Checks", "description": "CI hygiene validation before commits — import checks, model config, syntax, formatting", "script": "scripts/pre_commit_checks.py", "category": "metrics", "enabled": true, "trigger": "pre_commit", "executable": "python3", "config": { "check_imports": true, "check_model_config": true, "check_test_syntax": true, "check_platform_paths": true, "check_docker_tests": true, "check_black_formatting": true }, "outputs": [] }, { "id": "daily_run_orchestrator", "name": "Daily Run Orchestrator", "description": "The 10-minute ritual — fetches candidate issues and produces a concise Daily Run agenda plus day summary", "script": "timmy_automations/daily_run/orchestrator.py", "category": "daily_run", "enabled": true, "trigger": "manual", "executable": "python3", "config": { "config_file": "timmy_automations/config/daily_run.json", "candidate_labels": ["daily-run"], "size_labels": ["size:XS", "size:S"], "max_agenda_items": 3, "lookback_hours": 24, "agenda_time_minutes": 10 }, "outputs": [] }, { "id": "golden_path", "name": "Golden Path Generator", "description": "Generates coherent 30-60 minute mini-sessions from real Gitea issues — triage, fixes, and tests", "script": "timmy_automations/daily_run/golden_path.py", "category": "daily_run", "enabled": true, "trigger": "manual", "executable": "python3", "config": { "target_minutes": 45, "size_labels": ["size:XS", "size:S", "size:M"], "min_items": 3, "max_items": 5 }, "outputs": [] }, { "id": "weekly_narrative", "name": "Weekly Narrative Summary", "description": "Generates a human-readable weekly summary of work themes, agent contributions, and token economy shifts", "script": "timmy_automations/daily_run/weekly_narrative.py", "category": "daily_run", "enabled": true, "trigger": "scheduled", "schedule": "weekly", "executable": "python3", "config": { "lookback_days": 7, "output_file": ".loop/weekly_narrative.json", "gitea_api": "http://localhost:3000/api/v1", "repo_slug": "rockachopa/Timmy-time-dashboard" }, "outputs": [ ".loop/weekly_narrative.json", ".loop/weekly_narrative.md" ] }, { "id": "health_snapshot", "name": "Health Snapshot", "description": "Quick health check before coding — CI status, P0/P1 issues, test flakiness, token economy", "script": "timmy_automations/daily_run/health_snapshot.py", "category": "daily_run", "enabled": true, "trigger": "pre_cycle", "executable": "python3", "config": { "critical_labels": ["P0", "P1", "priority/critical", "priority/high"], "flakiness_lookback_cycles": 20, "ci_timeout_seconds": 5 }, "outputs": [] }, { "id": "retrain", "name": "AutoLoRA Continuous Improvement Loop", "description": "Weekly sovereignty loop — exports trajectories, filters quality, appends to training dataset, triggers LoRA fine-tune, loads new adapter, and logs iteration metrics", "script": "timmy_automations/retrain/retrain.py", "category": "autolora", "enabled": true, "trigger": "scheduled", "schedule": "weekly_sunday", "executable": "python3", "epic": "#1091", "pipeline": "AutoLoRA Sovereignty Loop (Step 6 of 7)", "config": { "weeks_ago": 1, "base_model": "hermes4-14b", "dry_run": false, "logs_dir": "logs", "dataset_path": ".loop/retrain/training_data.jsonl", "adapter_dir": ".loop/retrain/adapters", "training_log_path": ".loop/retrain/training_log.jsonl", "training_summary_path": ".loop/retrain/training_log.md" }, "outputs": [ ".loop/retrain/training_data.jsonl", ".loop/retrain/dataset_index.json", ".loop/retrain/training_log.jsonl", ".loop/retrain/training_log.md", ".loop/retrain/adapters/" ] } ] }