{ "version": "1.0.0", "description": "Deferred features and decisions for future implementation", "items": [ { "id": "fc-001", "category": "infrastructure", "title": "Workstation monitoring with Prometheus", "description": "Deploy node_exporter and Alertmanager for workstation metrics and alerting", "priority": "medium", "status": "pending", "created": "2024-12-28", "notes": "Design complete. Partially implemented: node_exporter running (port 9100), PrometheusRule deployed (12 alerts: 4 critical, 6 warning, 2 info), Prometheus scrape config updated. ⏳ PENDING TAILSACLE CONFIGURATION: Tailscale network attempted but ACLs preventing cluster ↔ workstation peering. See charts/willlaptop-monitoring/TAILSCALE-ACL-GUIDE.md for configuration steps. After ACL configuration, Prometheus should successfully scrape workstation metrics via 100.90.159.78:9100." }, { "id": "fc-002", "category": "agent", "title": "Network admin agent", "description": "Agent for network configuration, firewall rules, VPN management", "priority": "medium", "status": "deferred", "created": "2024-12-28", "notes": "Would manage iptables/nftables, NetworkManager, WireGuard" }, { "id": "fc-003", "category": "agent", "title": "Personal assistant agent", "description": "Agent for personal tasks, reminders, scheduling", "priority": "medium", "status": "deferred", "created": "2024-12-28", "notes": "Integration with calendar, task management" }, { "id": "fc-004", "category": "integration", "title": "External LLM integration", "description": "Support for non-Claude models in the agent system", "priority": "low", "status": "deferred", "created": "2024-12-28", "notes": "For specialized tasks or cost optimization" }, { "id": "fc-005", "category": "optimization", "title": "Model usage logging and cost tracking", "description": "Track model usage across agents for cost analysis", "priority": "medium", "status": "resolved", "created": "2024-12-28", "resolved": "2026-01-01", "notes": "Implemented /usage command. Parses history/index.json for session data. Extensible for detailed metrics when session content logging is available." }, { "id": "fc-006", "category": "design", "title": "Slash commands redesign", "description": "Revisit slash command architecture and user experience", "priority": "low", "status": "deferred", "created": "2024-12-28", "notes": "Current design may need refinement" }, { "id": "fc-007", "category": "optimization", "title": "Document structure optimization", "description": "Optimize agent document format for efficiency", "priority": "low", "status": "deferred", "created": "2024-12-28", "notes": "Balance between clarity and token usage" }, { "id": "fc-008", "category": "infrastructure", "title": "ArgoCD CLI authentication", "description": "Configure argocd CLI with proper authentication", "priority": "medium", "status": "resolved", "created": "2025-12-28", "resolved": "2025-12-28", "notes": "Using 10-year API token (expires 2035-12-26). Token ID: e3980c6a-1c4e-4f1a-8459-a120a5c60cc5. Stored in ~/.config/argocd/config. No renewal automation needed." }, { "id": "fc-009", "category": "infrastructure", "title": "Prometheus local port-forward", "description": "Document Prometheus access patterns for agents", "priority": "low", "status": "identified", "created": "2025-12-28", "notes": "Prometheus not accessible on localhost:9090. Options: (1) use kubectl exec to query, (2) set up port-forward, (3) use ingress. Currently works via pod exec." }, { "id": "fc-010", "category": "infrastructure", "title": "Clone homelab gitops repo locally", "description": "Clone git@github.com:will666/homelab.git for git-operator access", "priority": "low", "status": "resolved", "created": "2025-12-28", "resolved": "2025-12-28", "notes": "Cloned to ~/.claude/repos/homelab" }, { "id": "fc-011", "category": "k8s-health", "title": "Address OutOfSync ArgoCD apps", "description": "5 apps OutOfSync, 1 Degraded (porthole)", "priority": "medium", "status": "identified", "created": "2025-12-28", "notes": "OutOfSync: adopt-a-street, ai-stack, gitea, home-assistant, kubernetes-dashboard, speetest-tracker. Degraded: porthole" }, { "id": "fc-012", "category": "agent-memory", "title": "PA knowledge base with session caching", "description": "Local KB for infrastructure facts with lazy-load and in-session caching", "priority": "medium", "status": "resolved", "created": "2025-12-28", "resolved": "2025-12-28", "notes": "Implemented. KB files at state/kb.json (shared) and state/personal-assistant/kb.json (private). PA agent updated with lazy-load behavior." }, { "id": "fc-013", "category": "agent-memory", "title": "Vector database for agent long-term memory", "description": "Semantic search over agent knowledge using embeddings", "priority": "low", "status": "resolved", "created": "2025-12-28", "resolved": "2026-01-04", "notes": "Implemented as rag-search skill. Uses ChromaDB for vector storage and sentence-transformers (all-MiniLM-L6-v2) for embeddings. Two indexes: personal (state files) and docs (external documentation like k0s). Scripts: search.py, index_personal.py, index_docs.py, add_doc_source.py." }, { "id": "fc-014", "category": "observability", "title": "Grafana predefined reports", "description": "Slash command like /grafana-report services to get standard metrics from known dashboards", "priority": "low", "status": "deferred", "created": "2025-12-29", "notes": "Requires comprehensive dashboard coverage first. Revisit when observability matures." }, { "id": "fc-015", "category": "observability", "title": "Grafana integration in diagnostics", "description": "Auto-pull Grafana dashboard data during /k8s:diagnose or health checks", "priority": "low", "status": "deferred", "created": "2025-12-29", "notes": "Would make Grafana the first troubleshooting tool. Depends on fc-016 and mature observability setup." }, { "id": "fc-016", "category": "observability", "title": "Extend prometheus-analyst with Grafana API", "description": "Add Grafana API query capability to existing prometheus-analyst agent", "priority": "low", "status": "deferred", "created": "2025-12-29", "notes": "Preferred approach over creating new agent/skill. Natural extension when dashboards are comprehensive. Prerequisite for fc-014 and fc-015." }, { "id": "fc-017", "category": "optimization", "title": "Subagent spawning for skill delegation", "description": "Implement Task tool or similar mechanism to spawn lower-tier models for specific operations", "priority": "medium", "status": "resolved", "created": "2025-12-31", "resolved": "2025-12-31", "notes": "Implemented via Claude CLI subprocess. Helper at ~/.claude/mcp/delegation/gmail_delegate.py. Uses tiered delegation: fetch/list (no LLM), Sonnet for summarize/triage (via 'claude --print --model sonnet'). Uses subscription, no API key needed." }, { "id": "fc-018", "category": "gcal", "title": "Custom date range query", "description": "Support querying arbitrary date ranges like 'jan 2026' or 'next month'", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Currently only supports today/tomorrow/week/next. Would need new subcommand or natural language parsing." }, { "id": "fc-019", "category": "gcal", "title": "Natural language date parsing", "description": "Parse dates like 'next monday', 'jan 2026', 'next week' into calendar queries", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Could use dateparser library or LLM-based parsing. Would enhance hybrid command interface." }, { "id": "fc-020", "category": "gcal", "title": "Configurable timezone", "description": "Allow user to configure display timezone instead of hardcoded America/Los_Angeles", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Could read from personal-assistant-preferences.json or detect from system." }, { "id": "fc-021", "category": "gcal", "title": "Month subcommand", "description": "Add /gcal month for current month overview", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Would complement week view for longer-range planning." }, { "id": "fc-022", "category": "gcal", "title": "Free/busy check", "description": "Check availability like 'am I free Tuesday at 2pm?'", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Useful for scheduling. Could use Google Calendar freeBusy API or query events in time range." }, { "id": "fc-023", "category": "gcal", "title": "Write operations", "description": "Create, modify, delete calendar events", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Would change read-only policy. Requires careful consideration of autonomy levels and confirmation flows." }, { "id": "fc-024", "category": "gmail", "title": "Date range search", "description": "Search emails by date range like 'last week', 'in December', 'past 30 days'", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Currently uses newer_than:Nd. Could add natural language date parsing or explicit date range subcommand." }, { "id": "fc-025", "category": "gmail", "title": "Label and folder filtering", "description": "Filter by Gmail labels: starred, important, promotions, specific labels", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Gmail API supports label filtering. Would enable '/gmail starred' or '/gmail label:work'." }, { "id": "fc-026", "category": "gmail", "title": "Thread view", "description": "Show full email conversation thread instead of individual messages", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Gmail API returns threadId. Could fetch all messages in thread for context." }, { "id": "fc-027", "category": "gmail", "title": "Attachment detection and listing", "description": "List emails with attachments, show attachment names and sizes", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Useful for finding documents. API provides attachment metadata in message payload." }, { "id": "fc-028", "category": "gmail", "title": "Full email body view", "description": "Read complete email content on demand, not just snippets", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Currently shows snippets. Could add '/gmail read ' or expand specific emails." }, { "id": "fc-029", "category": "gmail", "title": "Sender statistics", "description": "Show who emails you most, email volume by sender", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Aggregate sender data over time period. Useful for identifying noise vs signal." }, { "id": "fc-030", "category": "gmail", "title": "Natural language search", "description": "Parse queries like 'emails from John about the project last month'", "priority": "medium", "status": "identified", "created": "2026-01-01", "notes": "Could use LLM to translate natural language to Gmail search syntax." }, { "id": "fc-031", "category": "gmail", "title": "Configurable urgency keywords", "description": "Customize what keywords/senders trigger urgent classification", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Currently hardcoded. Could store in personal-assistant-preferences.json." }, { "id": "fc-032", "category": "gmail", "title": "Mark as read", "description": "Mark emails as read after viewing", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Write operation. Would need gmail.modify scope and autonomy consideration." }, { "id": "fc-033", "category": "gmail", "title": "Archive emails", "description": "Archive emails from Claude interface", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Write operation. Requires gmail.modify scope. Consider batch operations." }, { "id": "fc-034", "category": "gmail", "title": "Reply and compose", "description": "Send emails and replies from Claude interface", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Write operation. Requires gmail.send scope. Significant policy change - needs careful autonomy controls." }, { "id": "fc-035", "category": "gmail", "title": "Unsubscribe detection", "description": "Identify subscription/newsletter emails, suggest unsubscribe", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Parse List-Unsubscribe headers. Could help with inbox cleanup." }, { "id": "fc-036", "category": "optimization", "title": "API token billing support", "description": "Track actual API costs when using Anthropic API instead of subscription", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Currently on Pro subscription. When/if using API, add token-based cost calculation using Anthropic pricing." }, { "id": "fc-037", "category": "optimization", "title": "Automatic usage summary", "description": "PA mentions usage stats at session end or provides weekly digest", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Depends on fc-005 (usage logging). Could be opt-in via preferences." }, { "id": "fc-038", "category": "optimization", "title": "Usage dashboard file", "description": "Generate Markdown/JSON usage report updated periodically", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Depends on fc-005 (usage logging). Could be daily/weekly cron or on-demand generation." }, { "id": "fc-039", "category": "registry", "title": "Registry git hook validation", "description": "Pre-commit hook to run validate-registry.py automatically", "priority": "low", "status": "identified", "created": "2026-01-01", "notes": "Would prevent commits with stale or TODO registry entries." }, { "id": "fc-040", "category": "registry", "title": "Registry trigger learning", "description": "Learn new triggers from successful routing patterns", "priority": "low", "status": "deferred", "created": "2026-01-01", "notes": "Track when user rephrases after failed routing, add successful phrases as new triggers." }, { "id": "fc-041", "category": "morning-report", "title": "Terminal output morning report", "description": "Quick text output for morning report when opening first terminal", "priority": "medium", "status": "identified", "created": "2026-01-02", "notes": "Alternative to dashboard. Could be triggered by shell hook or motd-style script." }, { "id": "fc-042", "category": "morning-report", "title": "Enhanced infrastructure dashboard detail", "description": "Expand infrastructure section from traffic light to summary stats or full metrics", "priority": "medium", "status": "identified", "created": "2026-01-02", "notes": "Start with simple green/yellow/red. Options: summary stats (node count, pod health %, disk/memory), problem-focused (only show issues), or full dashboard." }, { "id": "fc-043", "category": "rag", "title": "Auto-sync on tool version change", "description": "Automatically re-index external docs when upstream tool versions change", "priority": "low", "status": "deferred", "created": "2025-01-21", "notes": "Could hook into ArgoCD sync events or package update notifications. Part of Agentic RAG design." }, { "id": "fc-044", "category": "rag", "title": "Broad doc indexing", "description": "Expand from focused doc sources (10-20) to broad coverage (hundreds of sources, Stack Overflow, blogs)", "priority": "low", "status": "deferred", "created": "2025-01-21", "notes": "Option B from Agentic RAG brainstorm. Revisit once focused indexing proves value." }, { "id": "fc-045", "category": "rag", "title": "RAG k8s deployment", "description": "Deploy RAG stack (ChromaDB, embedding service) to k8s cluster instead of workstation", "priority": "low", "status": "deferred", "created": "2025-01-21", "notes": "Currently runs locally on workstation. Would enable cluster-based access but adds complexity." }, { "id": "fc-046", "category": "rag", "title": "RAG query caching", "description": "Cache frequent queries and their results to reduce embedding/search overhead", "priority": "low", "status": "deferred", "created": "2025-01-21", "notes": "Optimization for when query volume justifies it. Consider TTL and invalidation strategy." } ] }