Context and Problem Statement
Entire.io is a Tier 1 competitive threat building multi-agent orchestration with session capture infrastructure. Their production-ready system (990 commits) stores AI agent session checkpoints in Git using a dedicated branch (entire/checkpoints/v1) with JSONL transcript format.
Entire.io's Value Proposition: Session history, rewind capability, attribution tracking (agent vs human line-level)
Spec Kitty's Value Proposition: Spec-driven orchestration, cross-repo convergence, team SaaS, progressive privacy
There is potential for complementary value: Users may want BOTH session history (Entire) AND orchestration (Spec Kitty). However, we face an architectural decision:
- Adopt Git-native storage (Entire's approach): Store events on Git branches instead of PostgreSQL
- Build interoperability (import Entire checkpoints): Read their format, convert to our events
- Ignore Entire (compete head-to-head): Build everything ourselves, no compatibility
Adopting Git-native storage contradicts ADR 2026-02-09-1 (Canonical WP Status Model), which established PostgreSQL JSONL as the event log foundation for team SaaS. Git-native storage cannot support:
- Real-time queries (dashboard aggregations, WP status lookups)
- Multi-tenant isolation (teams see only their projects)
- CRDT conflict resolution (requires database transactions)
- WebSocket sync (requires event log subscriptions)
However, ignoring Entire misses partnership/acquisition opportunities and forces users to choose one tool or the other.
Strategic Question: How can Spec Kitty leverage Entire's session infrastructure without compromising our SaaS architecture?
Decision Drivers
- Preserve SaaS architecture: PostgreSQL event log (ADR 2026-02-09-1) is correct for team SaaS
- Enable interoperability: Users should be able to use BOTH tools (Entire for sessions, Spec Kitty for orchestration)
- Partnership potential: Compatible format enables future integration or acquisition discussions
- Focus on strengths: Spec Kitty excels at orchestration; Entire excels at session capture infrastructure
- Avoid duplication: Don't rebuild session capture when Entire solves it well
- Strategic optionality: Keep acquisition option open (estimated $10-30M if they gain traction)
- User flexibility: Don't force "either Entire or Spec Kitty" choice
Considered Options
- Option 1: Build EntireCheckpointReader (import only) - chosen
- Option 2: Adopt Git-native storage (replace PostgreSQL)
- Option 3: Build own session capture (duplicate Entire)
- Option 4: Ignore Entire (no compatibility)
Decision Outcome
Chosen option: "Build EntireCheckpointReader for optional import", because:
- Preserves architecture: Keeps PostgreSQL event log (ADR 2026-02-09-1) for team SaaS queries, dashboards
- Enables interoperability: Users can run Entire (session capture) + Spec Kitty (orchestration) together
- Partnership optionality: Compatible format enables acquisition discussions if Entire gains traction
- Focus on strengths: Leverage Entire's session infrastructure instead of rebuilding
- Low risk: Import is optional feature, doesn't affect core architecture
- Strategic: Positions as "orchestration layer" complementary to Entire's "infrastructure layer"
Implementation: Create EntireCheckpointReader class in spec_kitty_events/sources/entire_checkpoint.py to read entire/checkpoints/v1 branch and convert to Spec Kitty Event objects. Store imported sessions in PostgreSQL event log (NOT Git).
Consequences
Positive
- Interoperability proof: Users can use both tools together (Entire for history, Spec Kitty for orchestration)
- Partnership potential: Compatible format opens acquisition/integration discussions with Entire team
- Focus on strengths: Avoid scope creep into session capture infrastructure (Entire solves this)
- Unified history: Imported sessions appear in Spec Kitty dashboard alongside WP events
- Attribution data: Extract agent vs human attribution from Entire checkpoints for transparency
- Strategic optionality: Acquisition path preserved ($10-30M estimated if they reach scale)
Negative
- Maintenance burden: Must keep reader compatible with Entire's checkpoint format (risk of breaking changes)
- Dependency risk: If Entire shuts down or pivots, import feature becomes obsolete
- Format lock-in: Tightly coupled to Entire's JSONL format (migration cost if they change)
- Limited value if Entire fails: If Entire doesn't gain traction, import feature has low ROI
- Complexity: Adds another event source to maintain (Git branch reading, JSONL parsing)
Neutral
- Optional feature: Doesn't affect users who don't use Entire (zero impact on core flows)
- One-way import: Spec Kitty imports from Entire, but doesn't export to Entire format (asymmetric)
- Storage remains PostgreSQL: Imported events stored in PostgreSQL (not Git), maintains SaaS architecture
Confirmation
Success Metrics:
- Compatibility: Successfully import 100+ Entire checkpoints without errors
- Adoption: 5-10% of Spec Kitty users also use Entire (indicates interoperability value)
- Partnership: Initiate discussions with Entire team (if they gain traction: 5K+ GitHub stars, funding)
- Format stability: Entire's checkpoint format remains stable (no breaking changes in 6 months)
Validation Timeline:
- Month 1: Implement EntireCheckpointReader, test with sample Entire repository
- Month 2: Release CLI command (
spec-kitty import-sessions --source entire) - Month 3-6: Monitor adoption, format stability, partnership signals
Confidence Level: MEDIUM (6/10)
- High confidence: Interoperability is valuable (users can combine tools)
- Medium confidence: Entire will gain traction (Tier 1 threat, but early stage)
- Low confidence: Format will remain stable (no version control guarantees from Entire)
- Mitigation: Import is optional, can deprecate if Entire fails or format breaks
Pros and Cons of the Options
Build EntireCheckpointReader (Import Only) - Chosen
Description: Read Entire checkpoints from Git branch, convert to Spec Kitty events, store in PostgreSQL.
Pros:
- Preserves SaaS architecture (PostgreSQL event log)
- Enables interoperability (users can use both tools)
- Partnership optionality (acquisition path preserved)
- Focus on strengths (leverage Entire's infrastructure)
- Low risk (optional feature, doesn't affect core)
- Strategic positioning ("orchestration vs infrastructure")
Cons:
- Maintenance burden (keep reader compatible)
- Dependency risk (if Entire shuts down)
- Format lock-in (coupled to Entire's JSONL)
- Limited value if Entire fails
- Complexity (another event source)
Adopt Git-Native Storage (Replace PostgreSQL)
Description: Replace PostgreSQL event log with Git-native storage (Entire's approach).
Pros:
- Full compatibility with Entire (same storage model)
- Simpler infrastructure (no database required)
- Version control for events (Git history)
Cons:
- Contradicts ADR 2026-02-09-1 (PostgreSQL event log foundation)
- Breaks team SaaS: Cannot query events efficiently (no real-time dashboard)
- No multi-tenancy: Git branches don't provide tenant isolation
- No CRDT: Cannot implement conflict resolution (requires database transactions)
- No WebSocket sync: Cannot subscribe to event streams
- Wrong architecture: Git-native is for session history (Entire's use case), NOT orchestration (Spec Kitty's use case)
Build Own Session Capture
Description: Duplicate Entire's session capture infrastructure in Spec Kitty.
Pros:
- Full control (no dependency on Entire)
- Native integration (no import step)
Cons:
- Scope creep: Session capture is NOT Spec Kitty's core competency (we focus on orchestration)
- Duplication of effort: Entire already solves this (990 commits, production-ready)
- Resource drain: Engineering time better spent on orchestration features
- Competitive risk: Competing with Entire on their strength (session capture) instead of ours (orchestration)
Ignore Entire (No Compatibility)
Description: Build nothing related to Entire, compete head-to-head.
Pros:
- Zero maintenance burden (no compatibility code)
- Simple (no additional complexity)
Cons:
- Misses partnership opportunity: No acquisition path if Entire gains traction
- Forces user choice: Users must pick Entire OR Spec Kitty (not both)
- Perception risk: "Spec Kitty ignores competitors" (not collaborative)
- Lost learning: Entire's session capture patterns could inform our architecture
More Information
References:
- Competitive analysis:
competitive/tier-1-threats/entire-io/THREAT-ASSESSMENT.md,VISION-COMPARISON.md - Entire.io codebase: https://github.com/entireio/cli (checkpoint storage implementation)
- Product requirements:
product-ideas/prd-agent-orchestration-integration-v1.md(AD-003) - Integration spec:
competitive/tier-1-threats/entire-io/INTEGRATION-SPEC.md(Section 1.1)
Implementation Files:
spec_kitty_events/sources/entire_checkpoint.py- EntireCheckpointReader classspecify_cli/commands/import_sessions.py- CLI command for import
Related ADRs:
- ADR-2026-02-09-1: Canonical WP Status Model (PostgreSQL event log - this ADR aligns with that decision)
- ADR-2026-02-11-4: Agent Attribution Tracking (Entire's attribution data feeds into this)
- ADR-2026-01-31-1: Vendor spec-kitty-events (event library available for checkpoint reading)
Entire.io Checkpoint Format (reference):
{
"checkpoint_id": "2026-02-11-abc123",
"timestamp": "2026-02-11T10:30:00Z",
"agent": "claude-code",
"strategy": "manual-commit",
"transcript": [{"role": "user", "content": "..."}, {"role": "assistant", "content": "..."}],
"file_changes": [{"path": "src/main.py", "diff": "...", "status": "modified"}],
"git_metadata": {"branch": "main", "commit_sha": "abc123", "parent_sha": "def456"}
}
CLI Usage Example:
spec-kitty import-sessions \
--source entire \
--checkpoint-branch entire/checkpoints/v1 \
--project-id <project-id> \
--start-date 2026-01-01 \
--end-date 2026-02-11
# Output:
# Importing Entire.io checkpoints...
# Found 42 checkpoints on branch 'entire/checkpoints/v1'
# Imported 42 events successfully.
# Events visible in spec-kitty dashboard under project <project-id>.
Partnership/Acquisition Scenarios:
Scenario A: Entire gains traction (10K+ stars, funding, enterprise customers)
- Action: Reach out to Entire team (Stefan Haubold, Alex Ong)
- Proposal: Integration partnership ("Entire infrastructure + Spec Kitty orchestration")
- Acquisition estimate: $10-30M (depending on traction, revenue)
Scenario B: Entire format breaks (breaking changes to checkpoint JSONL)
- Action: Version EntireCheckpointReader (detect format version, handle multiple)
- Fallback: Deprecate import if maintenance burden too high
Rollback Plan:
- If format breaks repeatedly: Deprecate import feature (remove from CLI)
- If Entire shuts down: Archive feature (no longer maintained)
- Zero impact on core Spec Kitty flows (import is optional)