Marketplace verify-output
Pattern for verifying your output matches required schema before completing. Use before writing final output to ensure validity.
install
source · Clone the upstream repo
git clone https://github.com/aiskillstore/marketplace
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/aiskillstore/marketplace "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/clouder0/verify-output" ~/.claude/skills/aiskillstore-marketplace-verify-output && rm -rf "$T"
manifest:
skills/clouder0/verify-output/SKILL.mdsource content
Verify Output Skill
Pattern for ensuring outputs match required schemas using automated validation.
When to Use
- Before writing final output file
- After completing a task
- When producing structured JSON output
Quick Reference
Validate before writing:
./scripts/validate.sh <schema_name> <file_path>
Available Schemas
| Schema | Used By | Output Path |
|---|---|---|
| PM | |
| Architect | |
| Implementer | |
| Verifier | |
| Reflector | |
| Evolver | |
| Executor | |
Validation Process
Step 1: Determine Your Schema
Based on your agent role:
PM agent → demand.schema.json Architect agent → design.schema.json Implementer agent → task-output.schema.json Verifier agent → verification.schema.json Reflector agent → reflection.schema.json Evolver agent → evolution-proposal.schema.json
Step 2: Write Output to Temp Location
Write(memory/tasks/{id}/output.json.tmp, content)
Step 3: Validate
./scripts/validate.sh task-output memory/tasks/{id}/output.json.tmp
Step 4: If Valid, Move to Final Location
mv memory/tasks/{id}/output.json.tmp memory/tasks/{id}/output.json
Step 5: If Invalid, Fix and Retry
Common validation errors and fixes:
| Error | Fix |
|---|---|
| Add the missing field |
| Use valid enum value |
| Wrap value in array: |
| Remove extra fields |
Output Format: Compact JSON
All agent outputs MUST be compact JSON (single line, no extra whitespace):
{"task_id":"001","status":"pre_complete","knowledge_updates":[],"reflection":{"what_worked":[],"what_failed":[],"patterns_noticed":[]}}
Mandatory Fields (All Agents)
Every output MUST include:
{"knowledge_updates":[{"category":"codebase","content":"string","confidence":"certain"}],"reflection":{"what_worked":["string"],"what_failed":["string"],"patterns_noticed":["string"]}}
Or empty arrays if no updates:
{"knowledge_updates":[],"reflection":{"what_worked":[],"what_failed":[],"patterns_noticed":[]}}
Valid values:
:category
|"codebase"
|"convention"
|"decision""gotcha"
:confidence
|"certain"
|"likely""uncertain"
Pre-Write Validation Pattern
Recommended pattern for agents:
1. Construct output object in memory 2. Write to {output_path}.tmp 3. Run: ./scripts/validate.sh {schema} {output_path}.tmp 4. IF validation passes: → mv {output_path}.tmp {output_path} → Log: "Output validated and written" 5. ELSE: → Read validation errors → Fix output object → Retry from step 2 → Max 3 retries, then report validation failure
Common Mistakes
- Forgetting
(even if empty array)knowledge_updates - Forgetting
fieldsreflection - Using invalid enum values (check schema for allowed values)
- Missing required nested fields
- Wrong type (string instead of array, etc.)
- Using YAML instead of JSON
- Pretty-printing JSON (use compact format)
Principles
- Validate before write - Never output invalid data
- Schema is law - Missing fields = rejection by executor
- Empty is valid -
is okay"knowledge_updates":[] - Fail fast - Catch errors before they propagate
- Compact JSON - Single line, no formatting