Determinism Reproducible outcomes through code verification and prompt versioning. Core Principle "Claude can run scripts without loading either the script or the PDF into context. And because code is deterministic, this workflow is consistent and repeatable." - Anthropic Engineering Instructions 1. Replace LLM judgment with script verification 2. Version prompts with semantic versioning 3. Hash-validate critical prompts: 4. Use exit codes (0 = pass, 1 = fail), not text LLM Judgment vs Code Verification | Task | LLM (Bad) | Code (Good) | |------|-----------|-------------| | Tests passed? | "T…

)\nACTUAL=$(echo \"$CONTENT\" | shasum -a 256 | cut -d' ' -f1)\n\n# Compare (declared may be truncated)\nif [[ \"$ACTUAL\" == \"$DECLARED\"* ]]; then\n echo \"PASS: Hash valid for $PROMPT_FILE\"\n exit 0\nelse\n echo \"FAIL: Hash mismatch in $PROMPT_FILE\"\n echo \" Declared: $DECLARED\"\n echo \" Actual: ${ACTUAL:0:32}...\"\n exit 1\nfi\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":947,"content_sha256":"3a3f1b583d8a2ac02ed33e6ce9e70ee7e9d2f4eb0e2962f5bdfedeed059e2df1"},{"filename":"scripts/verify-json.sh","content":"#!/bin/bash\n# Verify file is valid JSON\n# Usage: verify-json.sh FILE\n# Exit: 0 = valid, 1 = invalid\n\nFILE=$1\n\nif [ ! -f \"$FILE\" ]; then\n echo \"ERROR: File not found: $FILE\"\n exit 1\nfi\n\nif python3 -c \"import json; json.load(open('$FILE'))\" 2>/dev/null; then\n echo \"PASS: Valid JSON\"\n exit 0\nelse\n echo \"FAIL: Invalid JSON\"\n exit 1\nfi\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":351,"content_sha256":"b93d6355283dd8d9412bb2b089805ac01d76b2fe296affd0b0acd58cc90ea00d"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Determinism","type":"text"}]},{"type":"paragraph","content":[{"text":"Reproducible outcomes through code verification and prompt versioning.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Core Principle","type":"text"}]},{"type":"blockquote","content":[{"type":"paragraph","content":[{"text":"\"Claude can run scripts without loading either the script or the PDF into context. And because code is deterministic, this workflow is consistent and repeatable.\" - Anthropic Engineering","type":"text"}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Instructions","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Replace LLM judgment with script verification","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Version prompts with semantic versioning","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Hash-validate critical prompts: ","type":"text"},{"text":"scripts/validate-prompt.sh","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use exit codes (0 = pass, 1 = fail), not text","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"LLM Judgment vs Code Verification","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Task","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"LLM (Bad)","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Code (Good)","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Tests passed?","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"\"The tests appear to pass\"","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"pytest; echo $?","type":"text","marks":[{"type":"code_inline"}]},{"text":" → 0 or 1","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Valid JSON?","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"\"This looks like valid JSON\"","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"python -c \"json.load(f)\"","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Server running?","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"\"The server should be up\"","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"curl -s localhost/health","type":"text","marks":[{"type":"code_inline"}]}]}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"References","type":"text"}]},{"type":"table","attrs":{"layout":null},"content":[{"type":"tr","content":[{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"File","type":"text"}]}]},{"type":"th","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Load When","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/code-verification.md","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Writing verification scripts","type":"text"}]}]}]},{"type":"tr","content":[{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"references/prompt-versioning.md","type":"text"}]}]},{"type":"td","attrs":{"colspan":1,"rowspan":1,"colwidth":null,"alignment":""},"content":[{"type":"paragraph","content":[{"text":"Versioning/hashing prompts","type":"text"}]}]}]}]},{"type":"hr","attrs":{"markup":"---"}}]},"metadata":{"date":"2026-06-05","name":"determinism","author":"@skillopedia","source":{"stars":7,"repo_name":"skills","origin_url":"https://github.com/ingpoc/skills/blob/HEAD/determinism/SKILL.md","repo_owner":"ingpoc","body_sha256":"395375658508258920aa76836cc6ae7ace3bd69b842a1848af1c812c2a0d1cea","cluster_key":"9fa8df933224faa014a6a5f999f6194e7916359f4c51fb596b07e8b3188f77f4","clean_bundle":{"format":"clean-skill-bundle-v1","source":"ingpoc/skills/determinism/SKILL.md","attachments":[{"id":"fceaba8f-74c1-5be4-ae29-46f60f67b355","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/fceaba8f-74c1-5be4-ae29-46f60f67b355/attachment.md","path":"references/code-verification.md","size":6661,"sha256":"50b23f4972eae10f0ce1773973e5dcd9933f05265b61f4618a2127235d4d6b59","contentType":"text/markdown; charset=utf-8"},{"id":"e7b48dd3-2375-514e-963d-d2172067d68f","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/e7b48dd3-2375-514e-963d-d2172067d68f/attachment.md","path":"references/prompt-versioning.md","size":7699,"sha256":"fef34d4942b1966a0150d706d118ba6d124a329c3bdc401d115bdaa555c2e92a","contentType":"text/markdown; charset=utf-8"},{"id":"b9cd2a2a-c7b8-53c0-a193-7032bfb8a896","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/b9cd2a2a-c7b8-53c0-a193-7032bfb8a896/attachment.sh","path":"scripts/validate-prompt.sh","size":947,"sha256":"3a3f1b583d8a2ac02ed33e6ce9e70ee7e9d2f4eb0e2962f5bdfedeed059e2df1","contentType":"application/x-sh; charset=utf-8"},{"id":"11b89d2a-62db-5aac-ae85-d694ddbad86b","key":"uploads/10433ee7-ad12-4ae0-b34e-97553e46c6c8/11b89d2a-62db-5aac-ae85-d694ddbad86b/attachment.sh","path":"scripts/verify-json.sh","size":351,"sha256":"b93d6355283dd8d9412bb2b089805ac01d76b2fe296affd0b0acd58cc90ea00d","contentType":"application/x-sh; charset=utf-8"}],"bundle_sha256":"bc50ac40f7bb282ce2bfef8e5dd6d3a57a1233981d715a84dbf2bc346a4d1f0a","attachment_count":4,"text_attachments":4,"attachment_storage":"skillopedia-attachments-v1","binary_attachments":0,"excluded_attachments":[]},"cluster_size":1,"skill_md_path":"determinism/SKILL.md","import_metadata":{"date":"2026-06-05","author":"@skillopedia","version":"v1","category":"ai-agent-development","category_label":"AI"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"ai-agent-development","keywords":"verification, deterministic, hash, version, reproducible, code-not-judgment","import_tag":"clean-skills-v1","description":"Use when verifying outcomes with code instead of LLM judgment, versioning prompts with hashes, or ensuring reproducible agent behavior. Load for any critical verification. Scripts return boolean exit codes, not subjective assessments. Prompts use semantic versioning with SHA256 validation."}},"renderedAt":1782986934606}

Determinism Reproducible outcomes through code verification and prompt versioning. Core Principle "Claude can run scripts without loading either the script or the PDF into context. And because code is deterministic, this workflow is consistent and repeatable." - Anthropic Engineering Instructions 1. Replace LLM judgment with script verification 2. Version prompts with semantic versioning 3. Hash-validate critical prompts: 4. Use exit codes (0 = pass, 1 = fail), not text LLM Judgment vs Code Verification | Task | LLM (Bad) | Code (Good) | |------|-----------|-------------| | Tests passed? | "T…