# COMPLIANCE_CHECK

> Apply the OpenAI SDK compliance checklist to audit files or directories and produce a Markdown report with findings and suggested fixes. Use when asked to "check compliance", "run compliance check", or "audit against OpenAI SDK rules".

- Skill: `majiayu000/compliance-check-6` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds add majiayu000/compliance-check-6`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/compliance-check-6/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Marketing & Growth
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/compliance-check-6

---


# COMPLIANCE CHECK

**Owner:** QA

## Goal
Audit a target (file set or directory) against `.codex/checklists/openai-sdk-compliance-checklist.yaml` and deliver a Markdown report with evidence and actionable fixes.

## Workflow

### 1. Load Inputs
- Read `target_path` (file, directory, or list).
- Respect context: apply strictly to agent implementations, tools, and orchestration code.

### 2. Evaluate Rules
- Process rules top-down (A1 → A11).
- Apply `activation_hint` and `stop_condition`:
  - Stop on first HIGH unless `--exhaustive` is requested.
  - Stop if findings_count > 25.

- Enforce **Kira Constitution** and **OpenAI Agents SDK** standards:
  - **A1. Primitives Only**: Orchestration uses only `run()`/`Runner.run()` and `handoff()`; no extra verbs like `routeAgent` or `pipeTo`.
  - **A2. Tool Categories Valid**: Every tool is one of: Function | Hosted | Agent-as-Tool | MCP.
  - **A3. No Custom Routing**: No bespoke agent-to-agent communication (axios/fetch/custom) beyond SDK patterns.
  - **A4. Tool Input Schema (Zod)**: All tools define parameters via `tool({ parameters: z.object({...}) })`.
  - **A5. Structured Outputs (Zod)**: Agents with non-text outputs declare `outputType: z.object({...})`.
  - **A6. Single RunContext<T>**: One canonical `RunContext<T>` shared across agents/tools/guardrails.
  - **A7. History Threading**: Conversation history flows via `result.history` → next `run()`.
  - **A8. Model Settings Casing**: Uses `modelSettings.toolChoice` (camelCase), not `tool_choice`.
  - **A9. Tracing Enabled/Declared**: Tracing wired to Langfuse (or explicitly disabled with rationale).
  - **A10. Vision & Whisper Usage**: Use OpenAI Vision for images/PDFs and Whisper for audio; custom file analysis only for text formats.
  - **A11. Deterministic IDs via Context**: IDs (userId, wid, aid, etc.) come from `RunContext`; never inferred or generated by agents.

- For each rule:
  - Mark PASS/FAIL with evidence (file path + line/snippet).
  - For FAIL, provide a concrete fix that matches the rule’s `fix` guidance.
  - Preserve `severity` and `autofix` flags from the checklist.

### 3. Apply Lean Guards
- Do not expand scope beyond `meta.scope`.
- Prefer small, safe fixes.
- Refactor only when required by a rule.
- Skip large migrations.
- If a standard conflicts with a functional requirement, flag it for manual review rather than forcing a breaking change.

### 4. Produce Report
- Follow the checklist `output_schema`.
- Include:
  - **Summary**: counts by severity + decision (READY | NEEDS_REVISION | BLOCKED).
  - **Findings**: list items with `id`, `severity`, `file`, `symbol` (if known), `evidence`, `fix`, `autofix`.
  - **Suggestions**: targeted next steps based on findings.

### 5. Save Output
- Write Markdown to `docs/qa/reports/compliance-{{target_slug}}.md`.
- Create directories if missing.

## Anti-Patterns
- Do not mark PASS without evidence.
- Do not invent IDs, symbols, or file paths.
- Do not ignore `severity: HIGH` violations.
- Do not propose custom orchestration verbs or "clever" routing logic that bypasses the SDK.
- Do not recommend using raw `tool_choice` or `messages` arrays without SDK types.
- Do not allow UUID generation inside agents (must come from context).

