Compare commits

..

1 Commits

Author SHA1 Message Date
Timmy-Sprint
11d94d9dad fix: Fleet Operator Incentives & Partner Program (implements #987) (closes #1003) (closes #1004)
Some checks failed
Self-Healing Smoke / self-healing-smoke (pull_request) Failing after 22s
Smoke Test / smoke (pull_request) Failing after 25s
Agent PR Gate / gate (pull_request) Failing after 31s
Agent PR Gate / report (pull_request) Successful in 5s
2026-05-02 08:22:31 -04:00
5 changed files with 740 additions and 1 deletions

View File

@@ -0,0 +1,130 @@
# Fleet Operator Incentives & Partner Program
> Implements Fleet Epic IV: Human Capital & Incentives (Issue #987)
> Closes #1003
## Overview
This specification defines the incentive structures, certification pathways, and partner program mechanics for operating and maintaining Timmy Fleet nodes. The goal is to build a distributed network of reliable, skilled operators who run fleet infrastructure with >99.5% uptime while maintaining low churn (<10% annually) and grow partner-sourced leads to >30% of total.
## Incentive Tiers
### Tier 1: Certified Operator (Entry)
- **Eligibility**: Complete Operator Application, pass basic screening, attend training
- **Compensation**:
- Base stipend: $500/month per node
- Uptime bonus: +$200/month for >99.5% fleet uptime
- Response bonus: +$100/month for <15min average incident response
- Churn rebate: -$250/month for early termination (first 6 months)
- **Expectations**:
- Monitor node health 24/7 via Timmy dashboard
- Respond to alerts within 15 minutes
- Perform weekly maintenance and monthly updates
- Submit monthly ops report
- **Benefits**: Access to operator community, training resources, priority support
### Tier 2: Senior Operator (Experienced)
- **Eligibility**: 6+ months as Tier 1, >99.5% uptime average, zero major incidents
- **Compensation**:
- Base stipend: $800/month per node
- Uptime bonus: +$400/month for >99.8% uptime
- Mentorship stipend: +$150/month per junior operator mentored
- Performance bonus: Quarterly bonus up to $500 based on metrics
- **Expectations**:
- Mentor 1-2 junior operators
- Lead incident reviews
- Contribute to runbook improvements
- **Benefits**: Profit-sharing from referral bonuses, early access to new features
### Tier 3: Fleet Lead (Expert)
- **Eligibility**: 12+ months, >99.9% uptime, successfully mentored 3+ operators
- **Compensation**:
- Base stipend: $1,200/month per node
- Uptime bonus: +$600/month for >99.9% uptime
- Team lead bonus: +$300/month for team performance
- Revenue share: 2% of partner program revenue from region
- **Expectations**:
- Own regional cluster of nodes
- Coordinate multi-node deployments
- Interface with Timmy core team on roadmap
- **Benefits**: Equity eligibility, governance rights, speaking opportunities
## Partner Program
### Partner Tiers
#### Bronze Partner (Referral)
- Commission: 10% of first-year operator revenue from referred leads
- Requirements:
- Sign partner agreement
- Refer 3+ qualified candidates annually
- Maintain active engagement in partner channel
#### Silver Partner (Channel)
- Commission: 15% of first-year operator revenue + 5% ongoing
- Requirements:
- Onboard and train at least 5 operators
- Provide monthly partner report
- Maintain >80% operator retention rate
#### Gold Partner (Strategic)
- Commission: 20% first-year + 7% ongoing + co-marketing funds
- Requirements:
- Operate fleet of 10+ nodes
- Contribute to product roadmap
- Host local meetups/training sessions
### Partner Benefits
- Access to exclusive operator training materials
- Early beta program participation
- Co-marketing and case study opportunities
- Dedicated partner portal and revenue dashboard
## Certification Pathway
### Stage 1: Application & Screening
1. Submit Operator Application (see `templates/operator-application.md`)
2. Technical interview (30 min)
3. Infrastructure audit (existing hardware/network)
4. Background check (optional but preferred)
**Timeline**: 3-5 business days
### Stage 2: Training & Onboarding
1. Complete Fleet Ops 101 module (2 hours self-paced)
2. Shadow a senior operator (2 weeks)
3. Deploy test node (sandbox environment)
4. Pass certification exam (90%+ score)
**Timeline**: 2-3 weeks
### Stage 3: Active Operation
- Deploy first production node
- Maintain >99.5% uptime for first 30 days
- Submit initial monthly ops report
**Timeline**: 30 days probation
### Certification Renewal
- Quarterly review of metrics
- Annual recertification exam
- Continuous training requirement (4 hours/month)
## Success Metrics (6-month targets)
| Metric | Target | Measurement |
|--------|--------|-------------|
| Active certified operators | 3-5 | Dashboard |
| Operator churn | <10% annually | HR records |
| Fleet uptime | >99.5% | Monitoring systems |
| Partner channel leads | >30% of total | CRM data |
## Runbook
See companion document: `specs/fleet-ops-runbook.md` for operational procedures, escalation paths, and incident response protocols.
## Templates
- **Operator Application**: `templates/operator-application.md`
- **Partner Report**: `templates/partner-report.md`
## Revision History
- 2025-05-02: Initial specification (implements #987, closes #1003)

291
specs/fleet-ops-runbook.md Normal file
View File

@@ -0,0 +1,291 @@
# Fleet Operations Runbook
> Fleet Operator Incentives & Partner Program — Operational Procedures
> Implements #987 | Closes #1003
## Table of Contents
1. [Daily Ops Checklist](#daily-ops-checklist)
2. [Weekly Maintenance](#weekly-maintenance)
3. [Monthly Responsibilities](#monthly-responsibilities)
4. [Incident Response](#incident-response)
5. [Escalation Paths](#escalation-paths)
6. [Communication Protocols](#communication-protocols)
7. [Node Deployment](#node-deployment)
8. [Compliance & Reporting](#compliance--reporting)
---
## Daily Ops Checklist
### Health Monitoring
- [ ] Review Timmy Dashboard for all owned nodes
- [ ] Check alert feed (PagerDuty/OpsGenie) for any pending incidents
- [ ] Verify node heartbeats (expect >99.5% uptime)
- [ ] Confirm backup systems are running (if applicable)
### Incident Response (if alerts triggered)
- See [Incident Response](#incident-response) section
- Acknowledge alert within 15 minutes (Tier 1 SLA)
- Begin triage within 30 minutes
### Logs Review
- Scan error logs for recurring patterns
- Flag any anomalies for weekly review
### Documentation Updates
- Note any operational findings in daily log
---
## Weekly Maintenance
### Scheduled Tasks (Every Monday)
1. **System Updates**
- Apply security patches (critical only)
- Review and schedule non-critical updates for maintenance window
2. **Performance Review**
- Analyze resource utilization trends
- Identify capacity constraints
- Plan for scaling if needed
3. **Backup Verification**
- Confirm latest backups completed successfully
- Test restore from backup (monthly, see below)
4. **Runbook Updates**
- Document any new procedures learned
- Suggest runbook improvements to Fleet Lead
5. **Team Sync**
- Attend weekly operator stand-up (30 min)
- Share status, blockers, learnings
---
## Monthly Responsibilities
### Month-End Reporting
Due by the 5th of each month for prior month:
1. **Ops Report** (use `templates/partner-report.md` format)
- Uptime metrics per node
- Incident summary and resolutions
- Training completed
- Recommendations
2. **Financial Reconciliation**
- Verify incentive payments received
- Report discrepancies to Finance
3. **Compliance Audit**
- Confirm certification requirements met
- Document any deviations and corrective actions
### Deep Maintenance
- Full system backup and restore test
- Security audit review
- Hardware inspection (if physical nodes)
- Training module completion (minimum 4 hours/month)
---
## Incident Response
### Severity Definitions
| Severity | Definition | Response Time | Resolution Target |
|----------|------------|---------------|-------------------|
| P0 | Fleet-wide outage, no nodes operational | 15 minutes | 4 hours |
| P1 | Region/node cluster outage, >50% down | 30 minutes | 8 hours |
| P2 | Single node failure | 1 hour | 24 hours |
| P3 | Degraded performance, not critical | 4 hours | 3 days |
### Response Procedure
#### P0/P1 Incidents
1. Acknowledge alert immediately
2. Declare incident in `#fleet-incidents` Slack channel
3. Notify Fleet Lead (direct message/call)
4. Execute recovery procedures from relevant playbook
5. Document timeline and actions taken
6. Schedule post-mortem within 48 hours
#### P2 Incidents
1. Acknowledge within 1 hour
2. Open incident ticket in tracking system
3. Follow single-node recovery playbook
4. Report resolution in daily ops log
#### P3 Incidents
1. Log in issue tracker
2. Schedule during next maintenance window
3. Document resolution upon completion
### Recovery Playbooks
#### Node Restart (most common P2)
1. SSH to node (or use remote management)
2. Check system logs (`/var/log/timmy/fleet.log`)
3. Restart service: `sudo systemctl restart timmy-fleet`
4. Verify node rejoins cluster
5. Monitor for 30 minutes post-recovery
#### Network Partition
1. Verify network connectivity (ping, traceroute)
2. Check firewall rules
3. Contact network provider if external
4. Switch to backup connection if available
5. Document root cause
#### Storage Full
1. Identify large directories (`du -sh /* | sort -hr`)
2. Rotate logs: `sudo logrotate -f /etc/logrotate.d/timmy`
3. Clean temporary files
4. Expand storage or add new volume
5. Alert Fleet Lead for capacity planning
---
## Escalation Paths
### Tiered Support Model
```
Operator (Tier 1)
↓ (15 min SLA)
Senior Operator / Fleet Lead (Tier 2)
↓ (1 hour SLA)
Timmy Core Team (Tier 3)
↓ (Immediate)
Executive Sponsor (Critical only)
```
### Contact Matrix
| Issue Type | Primary Contact | Secondary |
|------------|----------------|-----------|
| Technical incident | Fleet Lead | Timmy Core |
| Payment/incentive | Finance Partner | Fleet Lead |
| Training/certification | Training Coordinator | Fleet Lead |
| Partnership inquiry | Partner Manager | Executive Sponsor |
| Security incident | Security Team | Timmy Core (immediate) |
### Emergency Contacts
- Fleet Lead: `fleet-lead@timmy.foundation` (Slack: @fleet-lead)
- Timmy Core On-Call: `oncall@timmy.foundation` (PagerDuty)
- Security: `security@timmy.foundation`
- Finance: `finance@timmy.foundation`
---
## Communication Protocols
### Channels
- `#fleet-operators` — Daily ops, questions
- `#fleet-incidents` — Active incidents only
- `#fleet-training` — Training resources, scheduling
- `#fleet-partners` — Partner program discussions
### Status Updates
- Daily: Stand-up notes in thread
- Weekly: Summary post in `#fleet-operators`
- Monthly: Ops report submission
- Incident: Real-time updates in `#fleet-incidents`
### Documentation Standards
- Use clear, concise language
- Include timestamps in UTC
- Link to relevant tickets/PRs
- Tag stakeholders with `@`
---
## Node Deployment
### Pre-Deployment Checklist
- [ ] Hardware meets minimum specs (CPU, RAM, storage)
- [ ] Network connectivity validated
- [ ] Firewall rules configured
- [ ] SSH keys exchanged with Timmy core team
- [ ] Monitoring agent installed
- [ ] Backup solution active
- [ ] Documentation updated with node details
### Deployment Steps
1. Provision hardware/VM
2. Install Timmy Fleet software
3. Configure node ID and credentials
4. Join cluster via `timmy-fleet join <cluster-endpoint>`
5. Validate connectivity and heartbeat
6. Update inventory spreadsheet
7. Set up monitoring alerts
8. Complete handover to operator
### Decommissioning
1. Drain node from cluster
2. Migrate workloads
3. Backup final state
4. Shut down cleanly
5. Update inventory
6. Notify relevant teams
---
## Compliance & Reporting
### Metrics to Track
- Uptime (node-level and fleet-wide)
- Incident count and severity
- Response and resolution times
- Training hours completed
- Payment/compensation accuracy
### Reporting Cadence
- **Daily**: Ops dashboard (automated)
- **Weekly**: Status summary (operator)
- **Monthly**: Partner report (template-driven)
- **Quarterly**: Performance review with Fleet Lead
### Audits
- Quarterly internal audit by Timmy compliance team
- Annual external certification renewal
- Ad-hoc security reviews as needed
---
## Appendix: Resources
### Useful Commands
```bash
# Check service status
sudo systemctl status timmy-fleet
# View logs
journalctl -u timmy-fleet -f
# Restart node
sudo systemctl restart timmy-fleet
# Check node health
timmy-fleet health
# Join cluster
timmy-fleet join <cluster-endpoint>
```
### Key Files
- Config: `/etc/timmy/fleet/config.yaml`
- Logs: `/var/log/timmy/fleet.log`
- Health data: `/var/lib/timmy/fleet/health.json`
### Support Resources
- Internal Wiki: `https://wiki.timmy.foundation/fleet`
- Operator Portal: `https://fleet.timmy.foundation`
- Training Videos: `https://learn.timmy.foundation/fleet-ops`
---
**Last Updated**: 2025-05-02
**Next Review**: 2025-06-02

View File

@@ -0,0 +1,143 @@
# Fleet Operator Application
> {{APPLICATION_DATE}}
> Candidate: {{CANDIDATE_NAME}}
## Contact Information
**Full Name**: {{CANDIDATE_FULL_NAME}}
**Email**: {{CANDIDATE_EMAIL}}
**Phone**: {{CANDIDATE_PHONE}}
**Location**: {{CANDIDATE_LOCATION}}
**Time Zone**: {{CANDIDATE_TIMEZONE}}
### Availability
- **Hours per week**: {{AVAILABILITY_HOURS}}
- **Primary availability window (UTC)**: {{AVAILABILITY_WINDOW}}
- **On-call flexibility**: {{ONCALL_FLEXIBILITY}}
## Technical Qualifications
### Experience
```
Years in IT/DevOps: {{YEARS_EXPERIENCE}}
Relevant roles:
{{ROLE_HISTORY}}
```
### Skills (check all that apply)
- [ ] Linux system administration
- [ ] Container orchestration (Kubernetes/Docker)
- [ ] Cloud infrastructure (AWS/GCP/Azure)
- [ ] Networking fundamentals
- [ ] Monitoring & alerting (Prometheus/Grafana)
- [ ] Incident response/ITIL
- [ ] Security best practices
- [ ] Automation (Ansible/Terraform)
- [ ] Scripting (Python/Bash/Go)
- [ ] Timmy platform experience
**Additional skills**: {{ADDITIONAL_SKILLS}}
### Certifications
{{CERTIFICATIONS}}
## Infrastructure Readiness
### Proposed Node Environment
- **Type**: ☐ Physical ☐ Cloud VM ☐ Hybrid
- **Provider**: {{CLOUD_PROVIDER}}
- **Region**: {{REGION}}
- **Hardware specs**:
- CPU: {{CPU_SPEC}}
- RAM: {{RAM_SPEC}}
- Storage: {{STORAGE_SPEC}}
- Network: {{NETWORK_SPEC}}
### Redundancy & HA
- [ ] Backup power (UPS/generator)
- [ ] Secondary internet connection
- [ ] Off-site backup solution
- [ ] Remote management (IPMI/iDRAC)
### Connectivity
- **Bandwidth**: {{BANDWIDTH}} Mbps
- **Latency to Timmy core**: {{LATENCY}} ms
- **Uptime SLA**: {{UPTIME_SLA}}
---
## Motivation & Alignment
### Why do you want to run a Timmy Fleet node?
{{MOTIVATION}}
### What attracts you to decentralized infrastructure?
{{DECENTRALIZATION_MOTIVATION}}
### How does this align with your long-term goals?
{{LONG_TERM_GOALS}}
---
## Partner Program Interest (Optional)
### Interested in?
- [ ] Referral partner (refer operators, earn commission)
- [ ] Channel partner (onboard and train operators)
- [ ] Strategic partner (run fleet of 10+ nodes)
### Existing network
{{PARTNER_NETWORK}}
### Referral pipeline
{{REFERRAL_PIPELINE}}
---
## References
### Professional References
1. Name: {{REF1_NAME}}
Email: {{REF1_EMAIL}}
Relationship: {{REF1_RELATION}}
2. Name: {{REF2_NAME}}
Email: {{REF2_EMAIL}}
Relationship: {{REF2_RELATION}}
### Timmy Community Involvement
{{COMMUNITY_INVOLVEMENT}}
---
## Agreement & Signatures
### Code of Conduct
- [ ] I have read and agree to the Timmy Fleet Operator Code of Conduct
- [ ] I understand the uptime and response time requirements
- [ ] I agree to the incentive structure and terms
### Signature
**Candidate signature**: ___________________________
**Date**: {{SIGNATURE_DATE}}
**Timmy representative**: ___________________________
**Date**: {{TIMPY_SIGN_DATE}}
---
## Internal Use Only
**Interviewer**: {{INTERVIEWER}}
**Technical score**: {{TECH_SCORE}}/100
**Culture fit**: {{CULTURE_FIT}}/50
**Infrastructure audit**: ☐ Pass ☐ Fail
**Background check**: ☐ Complete ☐ In-progress
**Decision**: ☐ Approved ☐ Rejected ☐ Waitlist
**Comments**: {{INTERNAL_COMMENTS}}
**Certification ID**: {{CERT_ID}}
**Onboarding start date**: {{ONBOARDING_DATE}}

View File

@@ -0,0 +1,175 @@
# Fleet Partner Monthly Report
> {{REPORT_MONTH}} {{REPORT_YEAR}}
> Partner: {{PARTNER_NAME}} ({{PARTNER_TIER}})
> Submitted: {{SUBMISSION_DATE}}
## Executive Summary
| Metric | Current Month | Target | Variance |
|--------|---------------|--------|----------|
| Active nodes managed | {{ACTIVE_NODES}} | {{TARGET_NODES}} | {{NODES_VARIANCE}} |
| Fleet uptime | {{UPTIME}}% | 99.5% | {{UPTIME_VARIANCE}}% |
| Operator churn rate | {{CHURN_RATE}}% | <10% | {{CHURN_VARIANCE}}% |
| Partner-sourced leads | {{LEADS_COUNT}} | {{LEADS_TARGET}} | {{LEADS_VARIANCE}} |
| Revenue share earned | {{REVENUE}} | — | — |
**Key highlights**:
{{KEY_HIGHLIGHTS}}
**Top concerns**:
{{KEY_CONCERNS}}
---
## Node Performance
### Node Inventory
| Node ID | Location | Status | Uptime (30d) | Revenue Share | Issues |
|---------|----------|--------|--------------|---------------|---------|
| {{NODE_1_ID}} | {{NODE_1_LOC}} | {{NODE_1_STATUS}} | {{NODE_1_UPTIME}}% | ${{NODE_1_REV}} | {{NODE_1_ISSUES}} |
| {{NODE_2_ID}} | {{NODE_2_LOC}} | {{NODE_2_STATUS}} | {{NODE_2_UPTIME}}% | ${{NODE_2_REV}} | {{NODE_2_ISSUES}} |
| {{NODE_3_ID}} | {{NODE_3_LOC}} | {{NODE_3_STATUS}} | {{NODE_3_UPTIME}}% | ${{NODE_3_REV}} | {{NODE_3_ISSUES}} |
*Add rows as needed*
### Top Node Performers
1. **{{TOP_NODE_1_ID}}**: {{TOP_NODE_1_UPTIME}}% uptime, zero incidents
2. **{{TOP_NODE_2_ID}}**: {{TOP_NODE_2_UPTIME}}% uptime, quickest response times
### Nodes Requiring Attention
1. **{{ATTN_NODE_1_ID}}**: {{ATTN_NODE_1_ISSUE}}
2. **{{ATTN_NODE_2_ID}}**: {{ATTN_NODE_2_ISSUE}}
---
## Incidents & Resolutions
### Incident Log
| Date | Severity | Node(s) | Duration | Root Cause | Resolution |
|------|----------|---------|----------|------------|------------|
| {{INC1_DATE}} | {{INC1_SEV}} | {{INC1_NODES}} | {{INC1_DURATION}} | {{INC1_CAUSE}} | {{INC1_RES}} |
| {{INC2_DATE}} | {{INC2_SEV}} | {{INC2_NODES}} | {{INC2_DURATION}} | {{INC2_CAUSE}} | {{INC2_RES}} |
| {{INC3_DATE}} | {{INC3_SEV}} | {{INC3_NODES}} | {{INC3_DURATION}} | {{INC3_CAUSE}} | {{INC3_RES}} |
*Add rows as needed*
### Mean Time to Recovery (MTTR)
- **P0 incidents**: {{MTTR_P0}} hours
- **P1 incidents**: {{MTTR_P1}} hours
- **P2 incidents**: {{MTTR_P2}} hours
- **P3 incidents**: {{MTTR_P3}} hours
**Improvement opportunities**:
{{MTTR_IMPROVEMENTS}}
---
## Operator Management
### Active Operators
| Operator | Tier | Nodes Managed | Status | Cert Date |
|----------|------|---------------|--------|-----------|
| {{OP1_NAME}} | {{OP1_TIER}} | {{OP1_NODES}} | {{OP1_STATUS}} | {{OP1_CERT}} |
| {{OP2_NAME}} | {{OP2_TIER}} | {{OP2_NODES}} | {{OP2_STATUS}} | {{OP2_CERT}} |
### Churn / Attrition
- **Departed operators**: {{DEPARTED_COUNT}}
- **Departure reasons**: {{DEPARTURE_REASONS}}
- **Retention initiatives**: {{RETENTION_INITIATIVES}}
### Training & Certification
- **New certifications**: {{NEW_CERTS}}
- **Training hours logged**: {{TRAINING_HOURS}}
- **Upcoming recertifications**: {{UPCOMING_RECERTS}}
---
## Partner Program Metrics
### Lead Generation
- **Total leads received**: {{TOTAL_LEADS}}
- **Qualified leads**: {{QUALIFIED_LEADS}}
- **Converted to operators**: {{CONVERTED_OPERATORS}}
- **Conversion rate**: {{CONVERSION_RATE}}%
- **Partner contribution to total pipeline**: {{PARTNER_PIPELINE_PERCENT}}%
### Referral Commission
- **Referral fee earned**: ${{REFERRAL_FEE}}
- **Ongoing revenue share**: ${{ONGOING_SHARE}}
- **Total YTD earnings**: ${{YTD_EARNINGS}}
### Partner Activity
- **Marketing events hosted**: {{EVENTS_HOSTED}}
- **Training sessions conducted**: {{TRAINING_SESSIONS}}
- **Community engagement posts**: {{COMMUNITY_POSTS}}
- **Collateral created**: {{COLLATERAL}}
---
## Financial Summary
### Incentive Payouts
| Category | Amount | Notes |
|----------|--------|-------|
| Operator stipends | ${{STIPENDS}} | {{STIPENDS_NOTES}} |
| Uptime bonuses | ${{UPTIME_BONUS}} | {{UPTIME_NOTES}} |
| Mentorship bonuses | ${{MENTOR_BONUS}} | {{MENTOR_NOTES}} |
| Performance bonuses | ${{PERF_BONUS}} | {{PERF_NOTES}} |
| Partner commissions | ${{PARTNER_COMM}} | {{PARTNER_NOTES}} |
**Total payout this month**: ${{TOTAL_PAYOUT}}
### Cost Efficiency
- **Cost per node**: ${{COST_PER_NODE}}
- **Cost per uptime hour**: ${{COST_PER_UPTIME_HOUR}}
- **Efficiency rating**: {{EFFICIENCY_RATING}}/10
---
## Goals & Objectives
### Next Month Targets
1. **Uptime**: {{NEXT_UPTIME_TARGET}}%
2. **Qualified leads**: {{NEXT_LEADS_TARGET}}
3. **New operators**: {{NEXT_OPS_TARGET}}
4. **Incident reduction**: {{NEXT_INCIDENT_TARGET}} incidents
### Priority Initiatives
- {{PRIORITY_1}}
- {{PRIORITY_2}}
- {{PRIORITY_3}}
### Support Needed
- {{SUPPORT_NEEDED_1}}
- {{SUPPORT_NEEDED_2}}
---
## Attestation
By submitting this report, I certify that the information provided is accurate and complete to the best of my knowledge.
**Submitted by**: {{SUBMITTER_NAME}}
**Title**: {{SUBMITTER_TITLE}}
**Signature**: ___________________________
**Date**: {{SUBMISSION_DATE}}
**Approved by** (Timmy Core): {{APPROVER_NAME}}
**Date**: {{APPROVAL_DATE}}
---
## Appendix
### Supporting Documents
- [ ] Ops dashboard screenshots attached
- [ ] Incident post-mortems attached
- [ ] Training completion records attached
- [ ] Financial reconciliation attached
### Notes
{{APPENDIX_NOTES}}

View File

@@ -5,7 +5,7 @@ import sys
import os
import json
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "..", "src"))
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "..", "src"))
from timmy.claim_annotator import ClaimAnnotator, AnnotatedResponse