Skip to main content

Kindling (Capture Layer)

Kindling is the foundation of the Edda Stack—where observations begin.

Role in the Stack

Edda Stack

├── Edda (Curated) ← Verified knowledge
│ ▲
├── Ember (Candidate) ← Promoted observations
│ ▲
└── Kindling (Capture) ← Raw observations [YOU ARE HERE]

Kindling captures observations during development. It's optimised for:

  • Speed — Capture quickly, don't interrupt flow
  • Structure — Enough metadata for later use
  • Simplicity — Works without the rest of the stack

Current Status

Available Now

Kindling is fully functional:

  • CLI for capture and search
  • SQLite storage
  • Adapter framework
  • Export capabilities

Full Kindling Documentation →

Quick Start

# Install
pnpm add -g @eddacraft/kindling

# Initialise
kindling init

# Capture
kindling observe "API uses OAuth2 with PKCE"

# Search
kindling search "OAuth"

# Export
kindling export --format markdown

Integration with Stack

Promotion to Ember (Future)

When Ember is available:

# Flag observation for promotion
kindling promote obs_abc123

# Or via review interface
kindling review --session today

Context for Edda (Future)

Kindling observations provide source data for Edda entries:

Edda Entry: "OAuth2 PKCE Flow"
Sources:
- obs_abc123: "API uses OAuth2 with PKCE" (2024-01-15)
- obs_def456: "PKCE prevents code interception" (2024-01-15)

What to Capture

Kindling works best when you capture:

Discoveries

kindling observe "The cache TTL is 5 minutes" --kind discovery

Decisions

kindling observe "Using Redis for sessions due to TTL support" --kind decision

Gotchas

kindling observe "Don't use sync writes in production" --kind gotcha

References

kindling observe "See RFC 7231 for status codes" --kind reference

Best Practices

Capture During Flow

Don't wait—capture while context is fresh:

# Right after solving a problem
kindling observe "The bug was caused by race condition in auth"

Be Specific

# ❌ Vague
kindling observe "API issue"

# ✓ Specific
kindling observe "API returns 500 when payload > 1MB"

Tag Consistently

Establish conventions:

kindling observe "..." --tag api --tag auth
kindling observe "..." --tag bug --tag performance

Next: Ember (Candidate Layer) →