Claude Code Plugins

Community-maintained marketplace

Feedback

source-code

@mgreenly/ikigai
1
0

Source Code skill for the ikigai project

Install Skill

1Download skill
2Enable skills in Claude

Open claude.ai/settings/capabilities and find the "Skills" section

3Upload to Claude

Click "Upload skill" and select the downloaded ZIP file

Note: Please verify skill by going through its instructions before using it.

SKILL.md

name source-code
description Source Code skill for the ikigai project

Source Code

Description

Comprehensive reference for all C source files in the Ikigai REPL project organized by functional area.

Core Infrastructure

  • src/client.c - Main entry point for the REPL application, loads configuration and initializes the event loop.
  • src/shared.c - Shared context initialization for terminal, rendering, database, and history.
  • src/panic.c - Panic handler for unrecoverable errors with safe async-signal-safe cleanup.
  • src/error.c - Error handling wrapper using talloc-based allocator for consistent memory management.
  • src/config.c - Configuration file loading and parsing with tilde expansion and default config creation.
  • src/credentials.c - API key management with environment variable and JSON file (~/.ikigai/credentials.json) support.
  • src/logger.c - Thread-safe logging system with ISO 8601 timestamps and local timezone support.
  • src/uuid.c - UUID generation using base64url encoding for compact agent identifiers.

Memory Management

  • src/array.c - Generic expandable array implementation with configurable element size and growth strategy.
  • src/byte_array.c - Typed wrapper for byte (uint8_t) arrays built on top of the generic array.
  • src/line_array.c - Typed wrapper for line (char*) arrays built on top of the generic array.
  • src/json_allocator.c - Talloc-based allocator for yyjson providing consistent memory management.

Terminal Management

  • src/terminal.c - Raw mode and alternate screen buffer management with CSI u support detection.
  • src/signal_handler.c - Signal handling infrastructure for SIGWINCH (terminal resize) events.
  • src/ansi.c - ANSI escape sequence parsing and color code generation utilities.

Rendering System

  • src/render.c - Direct ANSI terminal rendering with text and cursor positioning.
  • src/render_cursor.c - Cursor screen position calculation accounting for UTF-8 widths and line wrapping.
  • src/layer.c - Output buffer management for composable rendering layers.
  • src/layer_scrollback.c - Scrollback layer wrapper that renders conversation history.
  • src/layer_input.c - Input buffer layer wrapper that renders the current user input.
  • src/layer_separator.c - Separator layer wrapper that renders horizontal separators with debug info and navigation context.
  • src/layer_spinner.c - Spinner layer wrapper for animated loading indicators with frame cycling.
  • src/layer_completion.c - Completion layer wrapper that renders tab completion suggestions.
  • src/event_render.c - Universal event renderer that converts database events to styled scrollback content.

Scrollback Buffer

  • src/scrollback.c - Scrollback buffer implementation with line wrapping and layout caching.
  • src/scrollback_layout.c - Layout calculation for scrollback lines with segment width tracking and newline handling.
  • src/scrollback_render.c - Scrollback rendering helper functions for calculating display positions and byte offsets.
  • src/scrollback_utils.c - Utility functions for scrollback text analysis including display width calculation with ANSI escape handling.
  • src/scroll_detector.c - Distinguishes mouse wheel scrolling from keyboard arrow key presses using timing-based burst detection.

Input System

  • src/input.c - Input parser that converts raw bytes to semantic actions with UTF-8 and escape sequence handling.
  • src/input_escape.c - Escape sequence parsing for terminal control codes with CSI sequence handling.
  • src/input_xkb.c - XKB keyboard layout support for translating shifted keys to their base characters using reverse mapping.

Input Buffer

  • src/input_buffer/core.c - Input buffer text storage implementation with UTF-8 support and layout caching.
  • src/input_buffer/cursor.c - Cursor position tracking with byte and grapheme offset management using utf8proc.
  • src/input_buffer/cursor_pp.c - Cursor pretty-print implementation for debugging with structured output.
  • src/input_buffer/layout.c - Input buffer layout caching for efficient display width calculation with ANSI handling.
  • src/input_buffer/multiline.c - Multi-line navigation implementation for up/down arrow keys with line start/end detection.
  • src/input_buffer/pp.c - Input buffer pretty-print implementation for debugging with nested structure visualization.

REPL Core

  • src/repl.c - REPL main event loop with select()-based multiplexing for input, HTTP, and tool execution.
  • src/repl_init.c - REPL initialization and cleanup with session restoration support and agent tree reconstruction.
  • src/repl_viewport.c - Viewport calculation logic for determining what's visible on screen with scroll offset tracking.
  • src/repl_callbacks.c - HTTP callback handlers for streaming OpenAI responses with line buffering.
  • src/repl_event_handlers.c - Event handlers for stdin, HTTP completion, tool completion, and timeouts with timeout calculation.
  • src/repl_tool.c - Tool execution helper that runs tools in background threads with mutex-protected result passing.
  • src/repl_tool_completion.c - Tool completion handling with tool loop continuation and provider request submission.

REPL Actions

  • src/repl_actions.c - Core action processing including arrow key handling through scroll detector with multiline scrollback append.
  • src/repl_actions_llm.c - LLM and slash command handling with conversation management and command dispatching.
  • src/repl_actions_viewport.c - Viewport and scrolling actions (page up/down, scroll up/down) with max offset calculation.
  • src/repl_actions_history.c - History navigation actions (Ctrl+P/N for previous/next) with pending entry preservation.
  • src/repl_actions_completion.c - Tab completion functionality for slash commands with auto-update after character insertion.

Agent Management

  • src/agent.c - Agent context creation and lifecycle management with layer system, conversation state, and mutex initialization.
  • src/agent_messages.c - Agent message handling for adding messages to conversation arrays with capacity growth.
  • src/agent_provider.c - Agent provider interface for lazy-initializing LLM providers with caching.
  • src/agent_state.c - Agent state machine transitions between idle, waiting, and tool-executing states.
  • src/repl_agent_mgmt.c - REPL agent array management for adding/removing agents with capacity growth.
  • src/repl_navigation.c - Agent navigation helpers for switching between agents and finding by UUID.
  • src/repl/agent_restore.c - Agent restoration on startup with conversation replay, mark stack reconstruction, and sorted agent tree building.
  • src/repl/agent_restore_replay.c - Agent restoration replay helpers for populating conversation and scrollback from database.

Commands

  • src/commands.c - REPL command registry and dispatcher for slash commands (/clear, /help, /model, /system, /debug, etc).
  • src/commands_basic.c - Basic command implementations (/clear, /help, /system, /debug).
  • src/commands_mark.c - Mark and rewind command implementations for conversation checkpoints with database truncation.
  • src/commands_model.c - Model command implementation for switching AI models with provider validation.
  • src/commands_fork.c - Fork command handler for creating child agents with quoted prompt parsing and conversation cloning.
  • src/commands_fork_args.c - Fork command argument parsing with quoted prompt extraction and message ID detection.
  • src/commands_fork_helpers.c - Fork command helper functions for agent creation and conversation cloning.
  • src/commands_kill.c - Kill command handler for terminating agents and descendants with depth-first collection and database updates.
  • src/commands_mail.c - Mail command handlers (/send, /inbox) for inter-agent messaging with unread count tracking.
  • src/commands_mail_helpers.c - Mail command helper functions for message formatting and delivery.
  • src/commands_agent_list.c - /agents command implementation for displaying agent hierarchy tree with indentation and status.
  • src/marks.c - Mark creation and management with ISO 8601 timestamps and scrollback rendering.
  • src/completion.c - Tab completion data structures and fuzzy matching logic with model/agent argument providers.

History

  • src/history.c - Command history management with capacity limits and duplicate detection.
  • src/history_io.c - History persistence to JSON file with load/save operations.

Database Layer

  • src/db/connection.c - PostgreSQL connection management with connection string validation and automatic migrations.
  • src/db/migration.c - Database schema migration system with version tracking and directory scanning.
  • src/db/session.c - Session management for creating and querying conversation sessions.
  • src/db/message.c - Message persistence with event kind validation, parameterized queries, and conversation/metadata filtering.
  • src/db/agent.c - Agent persistence with insert/update/list operations and status tracking.
  • src/db/agent_row.c - Agent row parsing from PostgreSQL results with field extraction.
  • src/db/agent_zero.c - Root agent (Agent 0) creation and lookup for ensuring root agent exists.
  • src/db/agent_replay.c - Agent replay helpers for finding clear events and loading conversation history with mark boundaries.
  • src/db/mail.c - Mail message persistence with insert/query/update operations for inter-agent messaging.
  • src/db/replay.c - Replay context for loading and replaying conversation history with mark stack, message array, and rewind support.
  • src/db/pg_result.c - PGresult wrapper with automatic cleanup using talloc destructors for RAII-style resource management.

AI Provider System

Provider Interface

  • src/providers/factory.c - Provider factory for creating provider instances by name with API key lookup.
  • src/providers/provider.c - Model capability lookup with thinking support detection and provider inference from model name.
  • src/providers/request.c - Request builder implementation for constructing LLM requests with messages, tools, and thinking config.
  • src/providers/request_tools.c - Standard tool definitions (glob, file_read, grep, bash, file_write) and schema generation.
  • src/providers/response.c - Response builder for constructing LLM responses with content blocks and usage statistics.
  • src/providers/stubs.c - Stub implementations placeholder (actual implementations in provider-specific directories).

Common Provider Utilities

  • src/providers/common/error_utils.c - Error category utilities for mapping HTTP status codes and determining retryability.
  • src/providers/common/http_multi.c - Shared HTTP multi-handle client for async requests with curl integration.
  • src/providers/common/http_multi_info.c - HTTP multi-handle info reading and completion callback dispatching.
  • src/providers/common/sse_parser.c - Server-Sent Events parser for streaming HTTP responses with event extraction.

Anthropic Provider

  • src/providers/anthropic/anthropic.c - Anthropic provider implementation with vtable for async HTTP operations.
  • src/providers/anthropic/error.c - Anthropic error handling with HTTP status mapping and error response parsing.
  • src/providers/anthropic/request.c - Anthropic request serialization to Messages API format with thinking config.
  • src/providers/anthropic/request_serialize.c - Anthropic request serialization helpers for content blocks and tool_use format.
  • src/providers/anthropic/response.c - Anthropic response parsing with finish reason mapping.
  • src/providers/anthropic/response_helpers.c - Anthropic response parsing helper functions.
  • src/providers/anthropic/streaming.c - Anthropic streaming implementation with SSE parsing and context management.
  • src/providers/anthropic/streaming_events.c - Anthropic SSE event processors for message_start, content_block, and message_delta.
  • src/providers/anthropic/thinking.c - Anthropic thinking budget implementation with model-specific limits.

OpenAI Provider

  • src/providers/openai/openai.c - OpenAI provider implementation with vtable for async HTTP operations.
  • src/providers/openai/error.c - OpenAI error handling with HTTP status mapping and content filter detection.
  • src/providers/openai/openai_handlers.c - OpenAI HTTP completion handlers for non-streaming and streaming requests.
  • src/providers/openai/reasoning.c - OpenAI reasoning effort implementation for o-series models.
  • src/providers/openai/request_chat.c - OpenAI Chat Completions request serialization with strict mode and reasoning_effort.
  • src/providers/openai/request_responses.c - OpenAI Responses API request serialization.
  • src/providers/openai/response_chat.c - OpenAI Chat Completions response parsing with tool call extraction.
  • src/providers/openai/response_responses.c - OpenAI Responses API response parsing with reasoning tokens.
  • src/providers/openai/serialize.c - OpenAI JSON serialization for messages with role and content handling.
  • src/providers/openai/streaming_chat.c - OpenAI Chat Completions streaming implementation with context creation.
  • src/providers/openai/streaming_chat_delta.c - OpenAI Chat Completions delta processing for streaming events.
  • src/providers/openai/streaming_responses.c - OpenAI Responses API streaming implementation.
  • src/providers/openai/streaming_responses_events.c - OpenAI Responses API event processing.

Google Provider

  • src/providers/google/google.c - Google Gemini provider implementation with vtable for async HTTP operations.
  • src/providers/google/error.c - Google error handling with HTTP status mapping and error response parsing.
  • src/providers/google/request.c - Google request serialization to Gemini contents/parts format.
  • src/providers/google/request_helpers.c - Google request serialization helpers for content blocks and role mapping.
  • src/providers/google/response.c - Google response parsing with content parts extraction.
  • src/providers/google/response_error.c - Google error response parsing with category mapping.
  • src/providers/google/response_utils.c - Google response utilities including tool ID generation and finish reason mapping.
  • src/providers/google/streaming.c - Google streaming implementation with response builder.
  • src/providers/google/streaming_helpers.c - Google streaming helper functions for tool call handling and error mapping.
  • src/providers/google/thinking.c - Google thinking implementation with model series detection and budget/level handling.

Tool System

  • src/tool.c - Tool call data structures and JSON schema generation for OpenAI function definitions with parameter helpers.
  • src/tool_dispatcher.c - Tool dispatcher that routes tool calls to appropriate handlers with JSON validation and error envelope building.
  • src/tool_arg_parser.c - Tool argument parsing utilities for extracting string/boolean/integer parameters from JSON.
  • src/tool_response.c - Tool response building helpers for success/error envelopes with custom data callbacks.
  • src/tool_bash.c - Bash command execution tool using popen with output capture and exit code extraction.
  • src/tool_file_read.c - File reading tool with error handling for missing/inaccessible files and size limits.
  • src/tool_file_write.c - File writing tool with error handling for permission/space issues and byte counting.
  • src/tool_glob.c - File pattern matching tool using glob() with JSON result formatting and count tracking.
  • src/tool_grep.c - Pattern search tool using regex with file filtering, line matching, and result formatting.

Utilities

  • src/format.c - Format buffer implementation for building strings with printf-style formatting and JSON appending.
  • src/pp_helpers.c - Pretty-print helpers for debugging data structures with indentation and type formatting.
  • src/fzy_wrapper.c - Wrapper for fzy fuzzy matching library used in tab completion with scoring and prefix matching.
  • src/debug_pipe.c - Debug output pipe system for capturing tool output in separate channels with non-blocking reads.
  • src/msg.c - Canonical message format utilities for distinguishing conversation kinds from metadata events.
  • src/message.c - Message creation utilities for building ik_message_t structures with text, tool calls, and tool results.
  • src/file_utils.c - File I/O utilities for reading entire files with error handling and size limits.

Mail System

  • src/mail/msg.c - Mail message structure creation with timestamp generation and field initialization.

Wrapper Functions

  • src/wrapper_curl.c - libcurl function wrappers with mockable link seams for testing.
  • src/wrapper_internal.c - Internal ikigai function wrappers for database, scrollback, and provider operations.
  • src/wrapper_json.c - yyjson wrapper implementations for JSON parsing and generation.
  • src/wrapper_posix.c - POSIX system call wrappers for file operations and terminal control.
  • src/wrapper_postgres.c - PostgreSQL function wrappers for database queries and result handling.
  • src/wrapper_pthread.c - pthread wrapper implementations for mutex and thread operations.
  • src/wrapper_stdlib.c - C standard library wrappers for formatting and time functions.
  • src/wrapper_talloc.c - talloc wrapper implementations for memory allocation and string operations.

Vendor Libraries

  • src/vendor/yyjson/yyjson.c - High-performance JSON library for parsing and generation (vendored).
  • src/vendor/fzy/match.c - Fuzzy string matching algorithm from the fzy project with bonus scoring (vendored).