cubrid-oos-context
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.jsonis missing, tell the user to runjust build(which generates it via CMake'sCMAKE_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 |
More from vimkim/my-cubrid-skills
jira
Look up CUBRID JIRA issue context. Use when a CBRD-XXXXX ticket is mentioned or when the user asks about a JIRA issue.
9create-testcases
Create CUBRID test cases (unit/SQL/shell) for a given feature or bug fix. Use when the user asks to create tests, write test cases, or mentions testing a CBRD ticket.
9cubrid-manual
Search the CUBRID manual (RST docs in en/ and ko/) for SQL syntax, configuration parameters, API references, admin utilities, and any CUBRID documentation. Use when you need to look up CUBRID behavior, verify SQL semantics, or answer questions about CUBRID features.
9cubrid-pr-review
CUBRID C/C++ PR code review with LSP/clangd analysis and C++ safety checks. Use when reviewing a CUBRID pull request, when the user shares a GitHub PR URL from a CUBRID repo, asks to review or check a pull request, or requests LSP-based analysis of PR changes. Even if the user just pastes a CUBRID PR link without explicit instructions, this skill applies.
9cubrid-pr-create
Create a GitHub PR for the CUBRID project with [CBRD-XXXXX] title format and Korean body with English section headers. Use when the user wants to create a pull request for CUBRID changes.
9cubrid-jira-issue-write
Write a CUBRID JIRA issue report in Korean with English section headers (##). Analyzes codebase context, writes structured issue markdown to /home/vimkim/gh/my-cubrid-jira/issues/. Use when the user wants to write up a JIRA issue, document a bug finding, or create a feature/task report for CUBRID.
9