Tasker Core Principles
This directory contains the core principles and design philosophy that guide Tasker Core development. These principles are not arbitrary rules but hard-won lessons extracted from implementation experience, root cause analyses, and architectural decisions.
Core Documents
| Document | Description |
|---|---|
| Tasker Core Tenets | The 11 foundational principles that drive all architecture and design decisions |
| Defense in Depth | Multi-layered protection model for idempotency and data integrity |
| Fail Loudly | Why errors beat silent defaults, and phantom data breaks trust |
| Cross-Language Consistency | The “one API” philosophy for Rust, Ruby, Python, and TypeScript workers |
| Composition Over Inheritance | Mixin-based handler composition pattern |
| Intentional AI Partnership | Collaborative approach to AI integration |
Influences
| Document | Description |
|---|---|
| Twelve-Factor App Alignment | How the 12-factor methodology shapes our architecture, with codebase examples and honest gap assessment |
| Zen of Python (PEP-20) | Tim Peters’ guiding principles — referenced as inspiration |
How These Principles Were Derived
These principles emerged from:
- Root Cause Analyses: Ownership removal revealed that “redundant protection with harmful side effects” is worse than minimal, well-understood protection
- Cross-Language Development: Handler harmonization established patterns for consistent APIs across four languages
- Architectural Migrations: Actor pattern refactoring proved the pattern’s effectiveness
- Production Incidents: Real bugs in parallel execution (Heisenbugs becoming Bohrbugs) shaped defensive design
- Protocol Trust Analysis: gRPC client refactoring exposed how silent defaults create phantom data that breaks consumer trust
When to Consult These Documents
- Design decisions: Read Tasker Core Tenets before proposing architecture changes
- Adding protections: Consult Defense in Depth to understand existing layers
- Error handling: Review Fail Loudly before adding defaults or fallbacks
- Worker development: Review Cross-Language Consistency for API alignment
- Handler patterns: Study Composition Over Inheritance for proper structure
Related Documentation
- Architecture Decisions:
docs/decisions/for specific ADRs - Historical Context:
docs/CHRONOLOGY.mdfor development timeline - Implementation Details:
docs/ticket-specs/for original specifications