GreyCat C API and GCL Standard Library reference. Use for: (1) Native C development with gc_machine_t context, tensors, objects, memory management, HTTP, crypto, I/O; (2) GCL Standard Library modules - std::core (Date/Time/Tuple/geospatial types), std::runtime (Scheduler/Task/Logger/User/Security/System/OpenAPI/MCP), std::io (CSV/JSON/XML/HTTP/Email/FileWalker), std::util (Queue/Stack/SlidingWindow/Gaussian/Histogram/Quantizers/Random/Plot). Keywords: GreyCat, GCL, native functions, tensors, task automation, scheduler.
Provides GreyCat C API and GCL Standard Library reference for native development. Use when implementing native C functions with gc_machine_t context, tensor operations, HTTP/crypto I/O, or working with std modules for scheduling, file operations, and data processing.
/plugin marketplace add datathings/marketplace/plugin install greycat-c@datathingsThis skill inherits all available tools. When active, it can use any tool Claude has access to.
references/api_reference.mdreferences/standard_library.mdComprehensive reference for GreyCat native development (C API) and the GCL Standard Library.
gc_machine_t - Execution context passed to all native functions. Use to get parameters, set results, report errors, and create objects.
gc_slot_t - Universal value container (union type) holding any GreyCat value: integers, floats, bools, objects, etc.
gc_type_t - Type system enum defining all GreyCat types (null, bool, int, float, str, object, static_field, etc.).
Parameter handling:
gc_slot_t param = gc_machine__get_param(ctx, offset);
gc_type_t type = gc_machine__get_param_type(ctx, offset);
Object field access:
gc_slot_t value = gc_object__get_at(obj, field_offset, &type, ctx);
Tensor operations:
gc_core_tensor_t *tensor = gc_core_tensor__create(ctx);
gc_core_tensor__init_2d(tensor, rows, cols, gc_core_TensorType_f32, ctx);
f32_t val = gc_core_tensor__get_2d_f32(tensor, row, col, ctx);
Memory management:
char *temp = (char *)gc_gnu_malloc(size); // Per-worker allocator
double *shared = (double *)gc_global_gnu_malloc(size); // Global allocator
File: references/api_reference.md (1,461 lines)
Load when implementing:
Contains: Complete function signatures, real production examples, and documentation for Machine API, Object API, Tensor API, Array/Table APIs, Buffer/String APIs, Memory Allocation, Program/Type System, HTTP Client, Cryptography, and I/O.
File: references/standard_library.md (957 lines)
Load when working with:
Contains: Complete documentation for all four standard library modules with code examples, usage patterns, and best practices.
This skill should be used when the user asks to "create an agent", "add an agent", "write a subagent", "agent frontmatter", "when to use description", "agent examples", "agent tools", "agent colors", "autonomous agent", or needs guidance on agent structure, system prompts, triggering conditions, or agent development best practices for Claude Code plugins.
This skill should be used when the user asks to "create a slash command", "add a command", "write a custom command", "define command arguments", "use command frontmatter", "organize commands", "create command with file references", "interactive command", "use AskUserQuestion in command", or needs guidance on slash command structure, YAML frontmatter fields, dynamic arguments, bash execution in commands, user interaction patterns, or command development best practices for Claude Code.
This skill should be used when the user asks to "create a hook", "add a PreToolUse/PostToolUse/Stop hook", "validate tool use", "implement prompt-based hooks", "use ${CLAUDE_PLUGIN_ROOT}", "set up event-driven automation", "block dangerous commands", or mentions hook events (PreToolUse, PostToolUse, Stop, SubagentStop, SessionStart, SessionEnd, UserPromptSubmit, PreCompact, Notification). Provides comprehensive guidance for creating and implementing Claude Code plugin hooks with focus on advanced prompt-based hooks API.