원클릭으로
apastra-validate
Validate all promptops files against JSON schemas. Catch formatting errors before running evaluations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Validate all promptops files against JSON schemas. Catch formatting errors before running evaluations.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
PromptOps skills for versioning, evaluating, tracing, and shipping AI prompts as disciplined software assets. Agent-as-harness — your IDE agent runs evals, compares baselines, surfaces trace evidence, and gates quality.
Upgrade from local-first evaluation to automated GitHub Actions CI. Installs workflows for PR gating, release promotion, and auto-merge.
Quick setup guide for apastra PromptOps. Create your first prompt spec, dataset, evaluator, and suite in 5 minutes.
Run prompt evaluations using your IDE agent as the harness. Load suites, execute test cases, score results, and compare against baselines.
Generate new prompt specs, datasets, evaluators, and suites from templates. Creates correctly-formatted files that pass schema validation.
Inspect agent traces, hook events, tool-call transcripts, and run artifacts; turn them into PromptOps evidence, eval cases, and artifact references.
| name | apastra-validate |
| description | Validate all promptops files against JSON schemas. Catch formatting errors before running evaluations. |
Validate PromptOps files against the apastra JSON schemas. Uses the shell validators in promptops/validators/ for deterministic schema checks, plus agent-driven cross-reference checks.
Use this skill when you want to:
Use the shell scripts in promptops/validators/ to validate each file against its JSON schema. These use npx ajv-cli under the hood.
| File Pattern | Validator Script |
|---|---|
promptops/prompts/*.yaml | bash .agent/scripts/apastra/validators/validate-prompt-spec.sh <file> |
promptops/datasets/*.jsonl | bash .agent/scripts/apastra/validators/validate-dataset.sh <file> |
promptops/evaluators/*.yaml | bash .agent/scripts/apastra/validators/validate-evaluator.sh <file> |
promptops/suites/*.yaml | bash .agent/scripts/apastra/validators/validate-suite.sh <file> |
promptops/evals/*.yaml | bash .agent/scripts/apastra/validators/validate-quick-eval.sh <file> |
promptops/policies/*.yaml | bash .agent/scripts/apastra/validators/validate-regression-policy.sh <file> |
Run each validator for every file matching the pattern. Exit code 0 = pass, 1 = fail. Collect all results before reporting.
To validate everything at once:
for f in promptops/prompts/*.yaml; do bash .agent/scripts/apastra/validators/validate-prompt-spec.sh "$f"; done
for f in promptops/datasets/*.jsonl; do bash .agent/scripts/apastra/validators/validate-dataset.sh "$f"; done
for f in promptops/evaluators/*.yaml; do bash .agent/scripts/apastra/validators/validate-evaluator.sh "$f"; done
for f in promptops/suites/*.yaml; do bash .agent/scripts/apastra/validators/validate-suite.sh "$f"; done
for f in promptops/evals/*.yaml; do bash .agent/scripts/apastra/validators/validate-quick-eval.sh "$f"; done
for f in promptops/policies/*.yaml; do bash .agent/scripts/apastra/validators/validate-regression-policy.sh "$f"; done
After schema validation passes, compute digests for all validated files:
python .agent/scripts/apastra/runtime/digest.py <file>
Report the digest alongside each file so the user can track content changes.
These checks require reading file contents — the agent performs them after schema validation:
promptops/datasets/promptops/evaluators/inputs keys match prompt spec variables keysmetrics match suite thresholds keys (if thresholds are defined){{variable}} placeholders match case inputs keyscase_id values are unique within each datasetValidation Report
=================
Schema Validation (via promptops/validators/):
✅ promptops/prompts/summarize.yaml
✅ promptops/datasets/summarize-smoke.jsonl — 5 cases
❌ promptops/evaluators/broken.yaml
└── ajv error: must have required property 'metrics'
Cross-References:
✅ Suite summarize-smoke → dataset summarize-smoke exists
⚠️ Dataset classify-smoke → inputs.category not in prompt spec variables
Digests:
promptops/prompts/summarize.yaml sha256:abc123...
promptops/datasets/summarize-smoke.jsonl sha256:def456...
Summary: 4 passed, 1 error, 1 warning