# What Is the Agent Skill Standard and How Career-Ops Implements It

> Discover the Agent Skill Standard and how Career-Ops uses this convention to expose AI capabilities via text entry points. Learn how it enables seamless integration with AI coding tools.

- Repository: [Santiago Fernández de Valderrama/career-ops](https://github.com/santifer/career-ops)
- Tags: deep-dive
- Published: 2026-08-22

---

**The Agent Skill Standard is a lightweight convention that exposes AI-driven capabilities as text-based entry points, and Career-Ops leverages it by storing skill definitions in `.agents/skills/` and exposing them through thin CLI wrappers like [`OPENCODE.md`](https://github.com/santifer/career-ops/blob/main/OPENCODE.md) and [`CODEX.md`](https://github.com/santifer/career-ops/blob/main/CODEX.md), enabling any compliant AI-coding tool to invoke the same business logic without code changes.**

The *Open Agent Skill Standard* defines a vendor-neutral protocol for exposing AI capabilities that any AI-coding CLI—including Claude Code, Codex, OpenCode, Qwen, Copilot, Kimi, Antigravity, Grok Build, and others—can discover and execute. According to the public specification at agentskills.io, a **skill** is simply a text-based entry point (typically `*.md` or `*.mjs`) that describes a task, its inputs and outputs, and the prompts the model should use. The santifer/career-ops repository adopts this standard to ensure its career optimization toolkit remains accessible across all major AI coding environments.

## Understanding the Open Agent Skill Standard

The standard addresses fragmentation in the AI-coding ecosystem by treating capabilities as **portable, declarative units** rather than proprietary implementations.

A compliant skill entry point contains:
- A description of the task objective
- Expected input parameters and output formats
- System prompts or context files the model should load
- Execution logic (either embedded in markdown or referenced JavaScript modules)

Because the interface is text-based and CLI-agnostic, tools adhering to the Agent Skill Standard can drive functionality from many different agents without rewriting underlying logic or maintaining separate integrations for each platform.

## How Career-Ops Adopts the Agent Skill Standard

Career-Ops implements the standard through three architectural layers that separate skill definition from CLI-specific invocation mechanisms.

### Canonical Skill Registry

All skill definitions reside in the hidden folder `.agents/skills/` at the repository root. The canonical entry point [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md) declares that Career-Ops follows the Open Agent Skill Standard and enumerates supported CLIs.

Rather than duplicating logic for each tool, thin wrapper files re-export this central configuration:
- [`OPENCODE.md`](https://github.com/santifer/career-ops/blob/main/OPENCODE.md) – Exposes skills to the OpenCode CLI
- [`CODEX.md`](https://github.com/santifer/career-ops/blob/main/CODEX.md) – Exposes skills to OpenAI's Codex CLI  
- [`CLAUDE.md`](https://github.com/santifer/career-ops/blob/main/CLAUDE.md) – Exposes skills to Claude Code
- [`GEMINI.md`](https://github.com/santifer/career-ops/blob/main/GEMINI.md) – Exposes skills to Google's Gemini CLI

Each wrapper references the same core entry point [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md), ensuring that capability declarations remain synchronized across all supported environments.

### CLI-Independent Prompt Files

The actual business logic—covering resume scoring, job evaluation, candidate scanning, and PDF generation—lives in markdown files under the `modes/` directory. Key files include:
- [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) – Core scoring rubrics and evaluation criteria shared across all market-specific modes
- [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) – The primary offer-evaluation skill that consumes shared prompts and user CV data

Because these files contain pure prompts rather than imperative code, any compliant CLI can read them, inject the user's profile from [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml), and produce consistent output regardless of the underlying model. This satisfies the **AI-agnostic** principle documented in [`ARCHITECTURE.md`](https://github.com/santifer/career-ops/blob/main/ARCHITECTURE.md).

### Uniform Invocation Syntax

Career-Ops documents standardized command-line entry points that map directly onto the skill standard's execution protocol. For example:

- `opencode run "prompt"` – Executes a skill via the OpenCode CLI
- `codex exec "prompt"` – Executes the identical skill via the Codex CLI

Both commands load the same skill definitions from `.agents/skills/`, ensuring behavior remains consistent even when switching between Claude, GPT-4, Gemini, or other models.

## Practical Implementation Examples

The repository exposes several concrete skills that demonstrate the standard in action.

**Running a generic evaluation prompt:**

```bash
opencode run "evaluate the following JD with my CV"

```

**Executing the same prompt through Codex:**

```bash
codex exec "evaluate the following JD with my CV"

```

**Invoking the zero-token portal scanner:**

```bash
opencode run "scan"

```

This command loads `scan.mjs`, which functions as the skill entry point for the scanner capability.

**Generating a PDF resume:**

```bash
opencode run "pdf" --input cv.md

```

This invocation triggers `generate-pdf.mjs`, which uses Playwright to render the output while sourcing language and market settings from [`config/profile.yml`](https://github.com/santifer/career-ops/blob/main/config/profile.yml).

## Benefits of the Skill-Based Architecture

By centralizing capabilities as **skills** according to the standard, Career-Ops achieves:

- **Model portability** – Swap between Claude, Codex, or Grok without modifying internal scripts
- **Extensibility** – Add new capabilities (plugins) while preserving backward compatibility with existing CLI wrappers  
- **Version-controlled prompts** – Store core logic in markdown files ([`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md), [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md)) rather than compiled code, enabling contributors to refine AI behavior through pull requests rather than codebase modifications

## Summary

- The **Agent Skill Standard** (agentskills.io) defines text-based skill entry points (`*.md` or `*.mjs`) that describe AI tasks, inputs, and prompts.
- Career-Ops stores skill definitions in `.agents/skills/` and declares compliance through [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md), referenced by thin wrappers ([`OPENCODE.md`](https://github.com/santifer/career-ops/blob/main/OPENCODE.md), [`CODEX.md`](https://github.com/santifer/career-ops/blob/main/CODEX.md), [`CLAUDE.md`](https://github.com/santifer/career-ops/blob/main/CLAUDE.md), [`GEMINI.md`](https://github.com/santifer/career-ops/blob/main/GEMINI.md)).
- Business logic resides in CLI-agnostic prompt files under `modes/`, including [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) for scoring and [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) for offer evaluation.
- Commands like `opencode run` and `codex exec` invoke the same underlying skills, ensuring consistent behavior across AI coding environments.
- Specific skills include the `scan.mjs` portal scanner and `generate-pdf.mjs` resume generator.

## Frequently Asked Questions

### What defines an Agent Skill Standard compliant entry point?

An entry point is a text file (usually markdown or JavaScript) that declares the skill's objective, input/output specifications, and system prompts. According to the Career-Ops implementation in [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md), these files live in `.agents/skills/` and must be discoverable by any AI-coding CLI following the convention documented at agentskills.io.

### How does Career-Ops handle different AI CLI tools?

Career-Ops provides thin wrapper files ([`OPENCODE.md`](https://github.com/santifer/career-ops/blob/main/OPENCODE.md), [`CODEX.md`](https://github.com/santifer/career-ops/blob/main/CODEX.md), [`CLAUDE.md`](https://github.com/santifer/career-ops/blob/main/CLAUDE.md), [`GEMINI.md`](https://github.com/santifer/career-ops/blob/main/GEMINI.md)) that re-export the central [`AGENTS.md`](https://github.com/santifer/career-ops/blob/main/AGENTS.md) configuration. Each wrapper adapts the generic skill definitions to the specific command syntax of its respective CLI while loading the same underlying prompts from the `modes/` directory.

### Where are the core business logic prompts stored in Career-Ops?

The core logic resides in the `modes/` directory. [`modes/_shared.md`](https://github.com/santifer/career-ops/blob/main/modes/_shared.md) contains scoring rubrics and evaluation criteria used across all markets, while [`modes/oferta.md`](https://github.com/santifer/career-ops/blob/main/modes/oferta.md) implements the specific offer-evaluation skill. These markdown files are pure prompts that any compliant agent can execute.

### Can I add custom skills to Career-Ops without modifying the source code?

Yes. By following the Agent Skill Standard, you can add new capabilities by placing skill definitions in `.agents/skills/` and optionally creating wrapper references in the appropriate CLI markdown files. Because the system loads these dynamically, new skills integrate seamlessly with existing commands like `opencode run` or `codex exec` without requiring changes to the core application code.