features-zettel_ids

Allocate Dodder ZettelIds from a pool and manage two-part IDs with Yin/Yang mapping and concurrency safety.

2|Updated Jun 26, 2025
One-click install
npx skills add https://github.com/amarbel-llc/dodder --skill features-zettel-ids
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: features-zettel_ids
Source: https://github.com/amarbel-llc/dodder/tree/main/.claude/skills/features-zettel_ids
Command: npx skills add https://github.com/amarbel-llc/dodder --skill features-zettel-ids

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

This skill provides a structured approach to managing Dodder two-part Zettel IDs, including allocation, tracking, and exhaustion handling, enabling reliable generation and lookups of IDs.

Core Features & Use Cases

  • ZettelId lifecycle management: allocation, addition, and lookup of IDs.
  • Coordinate mapping: translates between 2D (Left/Right) and 1D indices for efficient storage.
  • Exhaustion handling and testing: detects when no IDs are left and supports testing scenarios.
  • Use Case: During Dodder initialization or when minting new zettels, allocate and mark IDs consumed; debug exhaustion messages.

Quick Start

Allocate a new ZettelId from the available pool and mark it as consumed for a new zettel.

Frequently Asked Questions about features-zettel_ids

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I allocate a two-part ID safely in a concurrent environment?

To allocate a two-part ID safely, identify and consume a valid ID from the available pool using built-in concurrency controls. This ensures safe, concurrent access while mapping Left/Right parts via Yin/Yang providers without race conditions.

What happens when Zettel ID allocation hits pool exhaustion?

When Zettel ID allocation hits pool exhaustion, the system provides proper error handling to detect and report that no IDs are left. This prevents over-allocation and supports testing scenarios for debugging exhaustion messages.

How does two-part ID mapping work between 2D and 1D indices?

Two-part ID mapping translates between 2D Left/Right coordinates and 1D indices for efficient storage. This coordinate mapping uses Yin/Yang providers to handle creation, addition, and peeking operations reliably.

Can I peek at available Zettel IDs without consuming them?

Yes, you can peek at available Zettel IDs without marking them as consumed. The provider supports peeking operations alongside creation and addition, allowing you to inspect the pool before final allocation.

What is the best way to manage ZettelId lifecycle and track consumption?

The best way to manage ZettelId lifecycle is through structured allocation, addition, and lookup operations that mark IDs as consumed. This enables reliable generation, tracking, and exhaustion handling during initialization or minting.

Why do I need Yin/Yang providers for Dodder Zettel ID allocation?

You need Yin/Yang providers for Dodder Zettel ID allocation to handle the two-part Left/Right ID structure and coordinate mapping. They ensure safe concurrent access and proper error handling during creation and addition operations.