Skip to content
cccskills
FreePublished on GitHub

build-one-cc-file

Build a single C++ file. Use when a single .cc file needs to be compiled to check for errors.

The English summary is being prepared. Showing the original description.

See how to install

Files included (2)

  • SKILL.md3.3 KB
  • scripts/omake.sh2.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Build One C++ File

Use this skill when needing to compile one *.cc C++ file to check for errors. This provides a fast validation path without building the entire project.

Deterministic Rules

  • MUST run only from ${IMPALA_HOME}.
  • MUST configure the environment in the same shell session before building: export IMPALA_HOME=<git_repo_root> && cd "${IMPALA_HOME}" && source "${IMPALA_HOME}/bin/impala-config.sh" && source "${IMPALA_HOME}/bin/set-classpath.sh"
  • MUST use .agents/skills/build-one-cc-file/scripts/omake.sh as the only build command path.
  • MUST NOT use the agent's compile tool, Ninja, or direct CMake/Ninja invocation.

Available Scripts

  • .agents/skills/build-one-cc-file/scripts/omake.sh [--dry-run] <input> — builds the single object file for one C++ source.
    • Accepts a bare basename (rpc-trace).
    • --dry-run: prints the resolved make command on stdout and exits 0. Does not build.
    • Without --dry-run: runs the make command; exits 0 on success, non-zero on failure.
    • If no build target is found: exits non-zero (grep failure propagated via set -e).

Input Contract

Pass exactly one argument: the source basename only.

  • Input MUST be one token with no path separators.
  • Input MUST NOT include a directory path.
  • If input ends with .cc, strip .cc and continue.
  • Basename MUST match this pattern: [A-Za-z0-9_-]+
  • If validation fails, stop and request corrected input.

Examples:

  • Correct: .agents/skills/build-one-cc-file/scripts/omake.sh rpc-trace
  • Incorrect: .agents/skills/build-one-cc-file/scripts/omake.sh be/src/rpc/rpc-trace.cc
  • Incorrect: .agents/skills/build-one-cc-file/scripts/omake.sh rpc-trace.cc

If starting from a path like be/src/rpc/rpc-trace.cc, convert it to rpc-trace before invocation.

Execution Procedure

  1. Preflight and setup:
    • Ensure current directory is ${IMPALA_HOME}.
    • Ensure environment configuration has run in the current shell session.
  2. First attempt MUST use dry-run:
    • Run: .agents/skills/build-one-cc-file/scripts/omake.sh --dry-run <basename>
    • If dry-run fails, stop and report failure details.
  3. Execute real build after successful dry-run:
    • Run: .agents/skills/build-one-cc-file/scripts/omake.sh <basename>

Ambiguity Handling

If basename collision occurs (multiple candidate source files map to the same basename), do not guess.

  • MUST ask the user to clarify which source path to use.
  • MUST wait for clarification before running the real build command.

Failure and Retry Policy

On any failure:

  • MUST report the exact command run.
  • MUST report exit code.
  • MUST report the first non-empty line from stderr; if stderr is empty, first stdout line containing "error:"

Retry behavior:

  • MUST analyze the failure first.
  • MUST attempt a concrete fix (for example corrected basename input or environment setup).
  • MAY retry the real build (step 3) once after analysis and fix attempt.
  • MUST NOT perform blind repeated retries.

Success Output Contract

On success, report:

  • Normalized basename used.
  • Dry-run command and result.
  • Real build command and result.
  • Final exit code and success confirmation.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Combines all git commits for a change into a single commit and pushes it to gerrit. Use when you push to gerrit.

The English summary is being prepared. Showing the original description.

apache/impala1.3KUpdated Oct 20, 2026

See all skills by apache

Report a problem with this skill