{"_id":"@almadar/parity","_rev":"7-b5a63c3f088f9f1ef26170be8f6dae8e","name":"@almadar/parity","dist-tags":{"latest":"2.0.4"},"versions":{"0.1.2":{"name":"@almadar/parity","version":"0.1.2","_id":"@almadar/parity@0.1.2","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"bin":{"almadar-parity":"dist/cli.js"},"dist":{"shasum":"4802fb8606a4ca6f7c1e309fa6b831fad1cf57c2","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-0.1.2.tgz","fileCount":50,"integrity":"sha512-2GfCc/4WZo8yUc6yTc0zNhybsIk45noX9npCzTMiW7Ko/9neSjwh/NtX2HHDQR9HyfaOXIv0mvCapCYTwy2Qig==","signatures":[{"sig":"MEYCIQD71tAZVVtu4QWGbl33K4NiY8sqPAsDiJzfh1+ZO69E/AIhAOh0iVgXWA601x2qqoqM9RD71D0iPi6Dlw2t+6dfbx3x","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2389464},"main":"./dist/index.js","type":"module","_from":"file:almadar-parity-0.1.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js"},"./reporters":{"types":"./dist/reporters/index.d.ts","import":"./dist/reporters/index.js"},"./validators":{"types":"./dist/validators/index.d.ts","import":"./dist/validators/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:report":"tsx src/cli.ts report","parity:update":"tsx src/cli.ts update-fixtures"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/458f1f94e42498775826e79b9e3d96d6/almadar-parity-0.1.2.tgz","_integrity":"sha512-2GfCc/4WZo8yUc6yTc0zNhybsIk45noX9npCzTMiW7Ko/9neSjwh/NtX2HHDQR9HyfaOXIv0mvCapCYTwy2Qig==","deprecated":"Deprecated. Use @almadar/parity@^2.0.0 (independent package repos, minified dist).","_npmVersion":"11.6.2","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","directories":{},"_nodeVersion":"24.11.1","dependencies":{"execa":"^8.0.1","@almadar/std":"1.0.15","@almadar/core":"1.0.17","@almadar/runtime":"1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"@almadar/std":"^1.0.0","@almadar/core":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/parity_0.1.2_1770985764924_0.34770012909446635","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@almadar/parity","version":"2.0.0","_id":"@almadar/parity@2.0.0","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"bin":{"almadar-parity":"dist/cli.js"},"dist":{"shasum":"a496849714679e279447fa95135833e029b413da","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-2.0.0.tgz","fileCount":50,"integrity":"sha512-/XiVeUaV/e4kdrBcllpaLUrIzwG8MoHQAqq6P9BFkLS9JJlqh1/g/CluRSu4z4Pg2xX81pDXAfB4qmhCS+QZGA==","signatures":[{"sig":"MEUCIHqNL3Jv3ri1p5gPcMMrnra6IBqSjP3owR0FXYwIfvWsAiEAioXYZ53QJ5dbFqkERy9i9ygf9PcLJhCKZsItx+GtLfY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2423083},"main":"./dist/index.js","type":"module","_from":"file:almadar-parity-2.0.0.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js"},"./reporters":{"types":"./dist/reporters/index.d.ts","import":"./dist/reporters/index.js"},"./validators":{"types":"./dist/validators/index.d.ts","import":"./dist/validators/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:report":"tsx src/cli.ts report","parity:update":"tsx src/cli.ts update-fixtures"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/73cf7339811e92f15aaac244694fae30/almadar-parity-2.0.0.tgz","_integrity":"sha512-/XiVeUaV/e4kdrBcllpaLUrIzwG8MoHQAqq6P9BFkLS9JJlqh1/g/CluRSu4z4Pg2xX81pDXAfB4qmhCS+QZGA==","repository":{"url":"git+https://github.com/almadar-io/almadar.git","type":"git","directory":"docs/packages/parity"},"_npmVersion":"11.6.2","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","directories":{},"_nodeVersion":"24.11.1","dependencies":{"execa":"^8.0.1","@almadar/std":">=2.0.0","@almadar/core":">=2.0.0","@almadar/runtime":">=2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"@almadar/std":"^1.0.0","@almadar/core":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/parity_2.0.0_1771872232714_0.8768367086976092","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@almadar/parity","version":"2.0.1","_id":"@almadar/parity@2.0.1","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"bin":{"almadar-parity":"dist/cli.js"},"dist":{"shasum":"d70f1125af008df19620a6aedb24d8321b964056","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-2.0.1.tgz","fileCount":50,"integrity":"sha512-ZNME9q+YvEpEOZ7rIIlYUHfEqzDfMup6n5FEtlM8uNRdvaswMQzrSaab8JSWPWnJbQd8vg+zhP08P6Ph42BXHA==","signatures":[{"sig":"MEUCIQDKWkTvq+OPOfE+4gmiNsG6RFhnQZaoEI1Y8Nd2I8PZ1AIgZKUgXdNGRf/CiYHNbYFVVgv2tq8mU/xaYeq7eDSSGYg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2423083},"main":"./dist/index.js","type":"module","_from":"file:almadar-parity-2.0.1.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js"},"./reporters":{"types":"./dist/reporters/index.d.ts","import":"./dist/reporters/index.js"},"./validators":{"types":"./dist/validators/index.d.ts","import":"./dist/validators/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:report":"tsx src/cli.ts report","parity:update":"tsx src/cli.ts update-fixtures"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/c24e1317ef08dec73566316e832667d2/almadar-parity-2.0.1.tgz","_integrity":"sha512-ZNME9q+YvEpEOZ7rIIlYUHfEqzDfMup6n5FEtlM8uNRdvaswMQzrSaab8JSWPWnJbQd8vg+zhP08P6Ph42BXHA==","repository":{"url":"git+https://github.com/almadar-io/almadar.git","type":"git","directory":"docs/packages/parity"},"_npmVersion":"10.9.4","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","directories":{},"_nodeVersion":"22.22.0","dependencies":{"execa":"^8.0.1","@almadar/std":">=2.0.0","@almadar/core":">=2.0.0","@almadar/runtime":">=2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.10.0"},"peerDependencies":{"@almadar/std":"^1.0.0","@almadar/core":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/parity_2.0.1_1772630809734_0.09314479866336645","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@almadar/parity","version":"2.0.2","_id":"@almadar/parity@2.0.2","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"bin":{"almadar-parity":"dist/cli.js"},"dist":{"shasum":"8bc00dd7ed92ef4998886ae135fde74dcbdeffa9","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-2.0.2.tgz","fileCount":50,"integrity":"sha512-JKUmWDw6OFYnKW574ZW3sYHautEcqHVQ4N5aV8Q53Mdcuv3snyZ9AwqDi0rY9SASEEAohkVhsGDirKLulUR3nw==","signatures":[{"sig":"MEYCIQCO2C7mCWfqYa0/1susZijxm01mCFOENiPkF2Npe4VZrgIhAJP+yN5KZiRLmjL+mYPnibv54J40SMYAAX+Wu3Ll8oSM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2423191},"main":"./dist/index.js","type":"module","_from":"file:almadar-parity-2.0.2.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js"},"./reporters":{"types":"./dist/reporters/index.d.ts","import":"./dist/reporters/index.js"},"./validators":{"types":"./dist/validators/index.d.ts","import":"./dist/validators/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:report":"tsx src/cli.ts report","parity:update":"tsx src/cli.ts update-fixtures"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/0c92623293381380580844ae9ba41094/almadar-parity-2.0.2.tgz","_integrity":"sha512-JKUmWDw6OFYnKW574ZW3sYHautEcqHVQ4N5aV8Q53Mdcuv3snyZ9AwqDi0rY9SASEEAohkVhsGDirKLulUR3nw==","repository":{"url":"git+https://github.com/almadar-io/almadar.git","type":"git","directory":"docs/packages/parity"},"_npmVersion":"10.9.4","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"execa":"^8.0.1","@almadar/std":">=2.0.0","@almadar/core":">=2.0.0","@almadar/runtime":">=2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","eslint":"10.0.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.10.0","@almadar/eslint-plugin":">=2.3.0","@typescript-eslint/parser":"8.56.0"},"peerDependencies":{"@almadar/std":"^1.0.0","@almadar/core":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/parity_2.0.2_1773510869855_0.9627455954719615","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@almadar/parity","version":"2.0.3","_id":"@almadar/parity@2.0.3","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"homepage":"https://github.com/almadar-io/almadar#readme","bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"bin":{"almadar-parity":"dist/cli.js"},"dist":{"shasum":"53c9d4dfe34faa015fbb39a252df7c432240daaa","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-2.0.3.tgz","fileCount":50,"integrity":"sha512-lHfBS7yBfIMUa0+/C9flNrdU+fKX5rowkV1l4+TX62y31wA6MM3Y6IdZRAfIpQrnZHEjE98a6g4BHgBSyrEbRA==","signatures":[{"sig":"MEYCIQCCMdHKUocwPTUm1VZBZi6F6a5jIfsEGEKKy3ZmG7gSYQIhALi4Tii4pPX5rPPMsyHXqu1x+LGseBNTKFBnaaj8eWth","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2423191},"main":"./dist/index.js","type":"module","_from":"file:almadar-parity-2.0.3.tgz","types":"./dist/index.d.ts","module":"./dist/index.js","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js"},"./utils":{"types":"./dist/utils/index.d.ts","import":"./dist/utils/index.js"},"./harness":{"types":"./dist/harness/index.d.ts","import":"./dist/harness/index.js"},"./reporters":{"types":"./dist/reporters/index.d.ts","import":"./dist/reporters/index.js"},"./validators":{"types":"./dist/validators/index.d.ts","import":"./dist/validators/index.js"}},"scripts":{"dev":"tsup --watch","test":"vitest run --passWithNoTests","build":"tsup","typecheck":"tsc --noEmit","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:report":"tsx src/cli.ts report","parity:update":"tsx src/cli.ts update-fixtures"},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"_resolved":"/tmp/dcf146632c080764a11a4ce760ed7424/almadar-parity-2.0.3.tgz","_integrity":"sha512-lHfBS7yBfIMUa0+/C9flNrdU+fKX5rowkV1l4+TX62y31wA6MM3Y6IdZRAfIpQrnZHEjE98a6g4BHgBSyrEbRA==","repository":{"url":"git+https://github.com/almadar-io/almadar.git","type":"git","directory":"docs/packages/parity"},"_npmVersion":"10.9.4","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","directories":{},"_nodeVersion":"22.22.1","dependencies":{"execa":"^8.0.1","@almadar/std":">=2.0.0","@almadar/core":">=2.0.0","@almadar/runtime":">=2.0.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.7.0","tsup":"^8.0.0","eslint":"10.0.0","vitest":"^1.2.0","typescript":"^5.3.0","@types/node":"^20.10.0","@almadar/eslint-plugin":">=2.3.0","@typescript-eslint/parser":"8.56.0"},"peerDependencies":{"@almadar/std":"^1.0.0","@almadar/core":"^1.0.0"},"_npmOperationalInternal":{"tmp":"tmp/parity_2.0.3_1773650314212_0.026694485540203372","host":"s3://npm-registry-packages-npm-production"}},"2.0.4":{"name":"@almadar/parity","version":"2.0.4","description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","type":"module","main":"./dist/index.js","module":"./dist/index.js","types":"./dist/index.d.ts","bin":{"almadar-parity":"dist/cli.js"},"exports":{".":{"import":"./dist/index.js","types":"./dist/index.d.ts"},"./harness":{"import":"./dist/harness/index.js","types":"./dist/harness/index.d.ts"},"./validators":{"import":"./dist/validators/index.js","types":"./dist/validators/index.d.ts"},"./reporters":{"import":"./dist/reporters/index.js","types":"./dist/reporters/index.d.ts"},"./utils":{"import":"./dist/utils/index.js","types":"./dist/utils/index.d.ts"}},"dependencies":{"@almadar/core":">=2.0.0","@almadar/runtime":">=2.0.0","@almadar/std":">=2.0.0","execa":"^8.0.1"},"devDependencies":{"@types/node":"^20.10.0","tsup":"^8.0.0","tsx":"^4.7.0","typescript":"^5.3.0","vitest":"^1.2.0","eslint":"10.0.0","@typescript-eslint/parser":"8.56.0","@almadar/eslint-plugin":">=2.3.0"},"engines":{"node":">=18"},"peerDependencies":{"@almadar/core":"^1.0.0","@almadar/std":"^1.0.0"},"repository":{"type":"git","url":"git+https://github.com/almadar-io/almadar.git","directory":"docs/packages/parity"},"publishConfig":{"access":"public"},"homepage":"https://github.com/almadar-io/almadar#readme","scripts":{"build":"tsup","dev":"tsup --watch","test":"vitest run --passWithNoTests","test:watch":"vitest","parity:check":"tsx src/cli.ts check","parity:update":"tsx src/cli.ts update-fixtures","parity:report":"tsx src/cli.ts report","typecheck":"tsc --noEmit"},"_id":"@almadar/parity@2.0.4","bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"_integrity":"sha512-mwWs68jte4f+jvgZbtSP79giIckTYuUUtCpTfeO6e7+a2HAWdppRTp/czDgsBND+MQJFuuse4r/MpiBARBTj/Q==","_resolved":"/tmp/fc96fc1bd58f29e2e43f1205628871c7/almadar-parity-2.0.4.tgz","_from":"file:almadar-parity-2.0.4.tgz","_nodeVersion":"22.22.1","_npmVersion":"10.9.4","dist":{"integrity":"sha512-mwWs68jte4f+jvgZbtSP79giIckTYuUUtCpTfeO6e7+a2HAWdppRTp/czDgsBND+MQJFuuse4r/MpiBARBTj/Q==","shasum":"940d27ac11a57067b0f0c02e8c7161ee744babbc","tarball":"https://registry.npmjs.org/@almadar/parity/-/parity-2.0.4.tgz","fileCount":50,"unpackedSize":2423191,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIGqVspWID/QXsTK0ehpsrZibUV5I4CQT1PEXIHBKBoSDAiEAxZbl5WmW+pM53gB90wNvCKEHzCC4GMw7HMKDJ1N/BwY="}]},"_npmUser":{"name":"javasop","email":"osamah.net.m@gmail.com"},"directories":{},"maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/parity_2.0.4_1773693739916_0.7516948976399906"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-13T12:29:24.830Z","modified":"2026-03-16T20:42:20.263Z","0.1.2":"2026-02-13T12:29:25.138Z","2.0.0":"2026-02-23T18:43:52.930Z","2.0.1":"2026-03-04T13:26:49.962Z","2.0.2":"2026-03-14T17:54:30.051Z","2.0.3":"2026-03-16T08:38:34.366Z","2.0.4":"2026-03-16T20:42:20.151Z"},"bugs":{"url":"https://github.com/almadar-io/almadar/issues"},"homepage":"https://github.com/almadar-io/almadar#readme","repository":{"type":"git","url":"git+https://github.com/almadar-io/almadar.git","directory":"docs/packages/parity"},"description":"Cross-implementation parity testing for Almadar (Rust compiler vs TypeScript runtime)","maintainers":[{"name":"javasop","email":"osamah.net.m@gmail.com"}],"readme":"# @almadar/parity\n\nCross-implementation parity testing for Almadar. Ensures the Rust compiler (`orbital-compiler`) and TypeScript runtime (`almadar-runtime`) behave identically.\n\n**Integrates with:** `@almadar/core` (types), `@almadar/std` (operators), `@almadar/runtime` (execution)\n\n## Purpose\n\nAlmadar has multiple implementations:\n- **orbital-compiler** (Rust): Reference implementation, validation, code generation\n- **almadar-runtime** (TypeScript): Builder IDE runtime, client-side execution\n- **orbital-server** (Rust): Server-side runtime\n- **almadar-server** (TypeScript): Firebase-based server runtime\n\nThis package ensures they all produce the same behavior for the same schemas.\n\n## Installation\n\n```bash\npnpm install\n```\n\n## Prerequisites\n\nBuild the Rust CLI:\n```bash\ncd orbital-rust\ncargo build --release\n```\n\n## Usage\n\n### CLI\n\n```bash\n# Check parity on a single schema\nnpx almadar-parity check 01-basic-entity.orb\n\n# Check with detailed diffs\nnpx almadar-parity check 03-guards.orb --verbose\n\n# Check with JSON output\nnpx almadar-parity check 04-effects.orb --format=json\n\n# Validate a schema\nnpx almadar-parity validate schemas/03-guards.orb\n\n# Check harness availability\nnpx almadar-parity status\n```\n\n### Programmatic\n\n```typescript\nimport { createRustHarness, createTSHarness, validateParity } from '@almadar/parity';\n\nconst rust = createRustHarness({\n  binaryPath: './orbital-rust/target/release/orbital'\n});\n\nconst ts = createTSHarness();\n\n// Execute with both implementations\nconst [rustResult, tsResult] = await Promise.all([\n  rust.execute('schema.orb', 'INIT', { id: '123' }),\n  ts.execute('schema.orb', 'INIT', { id: '123' }),\n]);\n\n// Compare results\nconst report = validateParity(rustResult, tsResult, {\n  validateStdOperators: true  // Validate against @almadar/std\n});\n\nconsole.log('Parity:', report.isParity);\nconsole.log('Errors:', report.errorCount);\n```\n\n### Schema Loading (using `@almadar/core`)\n\n```typescript\nimport { loadSchema, extractGuards, extractEffects } from '@almadar/parity/utils';\n\n// Load and validate schema using almadar-core\nconst { schema, raw } = await loadSchema('schema.orb');\n\n// Extract components using core types\nconst guards = extractGuards(schema);\nconst effects = extractEffects(schema);\nconst transitions = extractTransitions(schema);\n\n// Get schema metrics\nconst metrics = getSchemaMetrics(schema);\nconsole.log(`Schema has ${metrics.transitions} transitions, ${metrics.guards} guards`);\n```\n\n### Test Building (using `@almadar/std`)\n\n```typescript\nimport { guardTest, effectTest, generateCommonGuardTests } from '@almadar/parity/utils';\n\n// Build guard test cases\nconst guardTestCase = guardTest()\n  .withEntity({ balance: 100, isVerified: true })\n  .withPayload({ amount: 50 })\n  .expect(true)\n  .description('Can withdraw when balance sufficient and verified')\n  .build();\n\n// Build effect test cases\nconst effectTestCase = effectTest()\n  .fromState({ count: 0 })\n  .withEffect('increment', '@entity.count', 1)\n  .expectState({ count: 1 })\n  .description('Increment count by 1')\n  .build();\n\n// Generate common test cases using std operators\nconst commonTests = generateCommonGuardTests();\n```\n\n## Test Schemas\n\nAll test schemas are symlinked in `schemas/`:\n- `01-basic-entity.orb` through `10-kitchen-sink.orb`: Core feature tests\n- `11-uses-basic.orb` through `13-uses-circular.orb`: `uses` primitive tests\n- `trait-wars.orb`: Complex integration test\n- `inspection-system.orb`: Real-world workflow test\n\n## Architecture\n\n### Harness System\n\n- **RustHarness**: Spawns `orbital` CLI process, parses output\n- **TSHarness**: Uses `@almadar/runtime` directly\n- Both implement `ParityHarness` interface for uniform execution\n\n### Validation System\n\nUses `@almadar/std` operator registry for validation:\n- Validates operators against known std operators\n- Reports unknown operators as warnings\n- Supports effect and guard operator classification\n\n### Schema Loading\n\nUses `@almadar/core` types and validation:\n- `loadSchema()` validates schemas using core Zod schemas\n- `extractGuards()`, `extractEffects()` return core types\n- `getSchemaMetrics()` analyzes schema complexity\n\n### ExecutionResult\n\nNormalized result structure:\n```typescript\ninterface ExecutionResult {\n  success: boolean;\n  initialState: string;\n  finalState: string;\n  transitions: StateTransition[];\n  effects: NormalizedEffect[];\n  guardEvaluations: GuardResult[];\n  implementation: 'rust' | 'typescript';\n  executionTimeMs: number;\n}\n```\n\n## Development\n\n```bash\n# Build\npnpm build\n\n# Test\npnpm test\n\n# Type check\npnpm typecheck\n\n# Run CLI locally\npnpm parity:check 01-basic-entity.orb\n```\n\n## Package Structure\n\n```\npackages/almadar-parity/\n├── src/\n│   ├── cli.ts                 # CLI entry point\n│   ├── index.ts               # Public API exports (re-exports core/std)\n│   ├── harness/\n│   │   ├── types.ts           # ExecutionResult, ParityHarness (uses core types)\n│   │   ├── rust-harness.ts    # Rust CLI wrapper\n│   │   └── ts-harness.ts      # TypeScript runtime wrapper\n│   ├── validators/\n│   │   ├── types.ts           # Validation types (uses core types)\n│   │   ├── guard-validator.ts # Validates guards (uses std operators)\n│   │   ├── effect-validator.ts # Validates effects (uses std operators)\n│   │   ├── state-validator.ts # Validates state transitions\n│   │   ├── snapshot-validator.ts # Golden master comparison\n│   │   └── index.ts           # validateParity() orchestrator\n│   ├── reporters/\n│   │   ├── console-reporter.ts # Human-readable output\n│   │   ├── json-reporter.ts   # JSON output for CI\n│   │   └── index.ts\n│   └── utils/\n│       ├── schema-loader.ts   # Schema loading with almadar-core\n│       ├── test-builder.ts    # Test utilities with almadar-std\n│       └── index.ts\n├── schemas/                   # 20 symlinks to test schemas\n└── fixtures/                  # Golden master snapshots\n```\n\n## Phases Status\n\n- ✅ **Phase 1**: Foundation (package scaffolding, harnesses)\n- ✅ **Phase 2**: Validators (guard, effect, state, snapshot validators)\n- ✅ **Phase 2.2**: Package Integration (integrated with core/std)\n- ⏳ **Phase 3**: CLI and Reporting (enhanced CLI, HTML reporter)\n- ⏳ **Phase 4**: CI Integration (GitHub Actions)\n- ⏳ **Phase 5**: Advanced Testing (property-based testing)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}