cubrid-oos-context

Installation
SKILL.md

CUBRID OOS Context

This skill loads context about the OOS (Out-of-row Overflow Storage) project — a CUBRID feature that separates large variable-length columns from heap records into dedicated OOS files to reduce unnecessary disk I/O.

$ARGUMENTS

Step 0: Validate environment

Before loading context, verify the workspace is ready for OOS development. Run the bundled validation script against the current working directory:

bash <skill-path>/scripts/validate-env.sh "$PWD"

This checks that:

  • You're in a git repository (or worktree) — needed for code search, grep, and git features
  • The directory is a CUBRID source tree (has CMakeLists.txt + CMakePresets.json)
  • OOS source files exist (oos_file.cpp — indicates you're on a feat/oos branch)
  • PRESET_MODE is set and a build directory exists (build_preset_*)
  • compile_commands.json is present at the project root — this is essential for LSP features (hover, goto-definition, find-references via clangd)
  • clangd and just are available

If the script reports errors (exit code 1):

  • Warn the user about what's missing and how to fix it
  • If compile_commands.json is missing, tell the user to run just build (which generates it via CMake's CMAKE_EXPORT_COMPILE_COMMANDS=ON) and then symlink it: ln -sf build_preset_${PRESET_MODE}/compile_commands.json .
  • If not in a git repo, suggest switching to a CUBRID worktree (e.g., one under ~/gh/cb/)
  • Do NOT skip context loading — proceed with Step 1, but note the limitations

If the script reports only warnings (exit code 0):

  • Note the warnings but proceed normally — the environment is usable

Step 1: Load OOS context

Read the single source of truth for OOS knowledge:

/home/vimkim/gh/cubrid-oos-context/OOS-CONTEXT.md

This file contains everything needed for OOS implementation and debugging:

  • Quick reference (trigger conditions, flags, key source files)
  • Architecture & design (record format, binary layout, multi-chunk chain, comparison with other DBs)
  • CRUD flows (INSERT, SELECT, UPDATE, DELETE step-by-step)
  • Recovery, replication & MVCC invariants
  • Known bugs, limitations & optimization ideas
  • Test scenarios and SQL patterns

This single file is sufficient for most OOS-related questions. Read it before answering.

Quick Reference

Concept Detail
OOS trigger record > DB_PAGESIZE/8 (2KB on 16KB pages) AND column > 512B
OOS file type FILE_OOS, one per heap file (1:1 mapping)
OOS pointer 8-byte OOS OID (volid, pageid, slotid) in variable area
MVCC flags OR_MVCC_FLAG_HAS_OOS (bit 3), OR_VAR_BIT_OOS (bit 0)
Key sources heap_file.c, oos_file.cpp, object_representation.h
Branch feat/oos
Current milestone M2 (3/10-4/17): bestspace, compaction, vacuum, drop table
Related skills

More from vimkim/my-cubrid-skills

Installs
9
GitHub Stars
2
First Seen
Apr 5, 2026