{"_id":"@dombaras/agent-harness","_rev":"19-e079913221bd2bbb9cf6755000a93750","name":"@dombaras/agent-harness","dist-tags":{"latest":"0.1.21"},"versions":{"0.1.0":{"name":"@dombaras/agent-harness","version":"0.1.0","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.0","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"71fe5405d2ceea41fe8695ed7d0bc0608f406bc6","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.0.tgz","fileCount":41,"integrity":"sha512-dTBbnNWfVv4CtC04nGaqW7Hb2n1QFWgnI0Gj7BWDqAjivHRMyMtBXe5olC9B/st5LCvct55lOA2qqFegPyEbuQ==","signatures":[{"sig":"MEUCICVRfPrX7jF09RR7faz6FoTlyDXzctnXLJPNiCSq3vHhAiEApcTgv2m0icfuRLn1tVhIcjN9NsMP5tTWKlzPS+DICAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":100996},"engines":{"node":">=18"},"gitHead":"5408d4b66eccdfe752fcbf8ad94b35720ebc9f21","_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.0_1787921924360_0.05254415616552466","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@dombaras/agent-harness","version":"0.1.1","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.1","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"01563045450b19b1100c67a2998d28972108d809","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.1.tgz","fileCount":44,"integrity":"sha512-vt7FubwvOphnRa0jwN9rWWW4HlvRWeldfIezja/d05imt0reanXPLoPRHZpqP3B1M7x3oth9CVNr5sZLTLMUVQ==","signatures":[{"sig":"MEUCIQC9nFrV60giFzuERaf9RXxGHEfbym9jXZs6vSAcG6cljwIgCE8ZaqgZss/8BwOBEotWIANku/I6DehGOy3/+9dyRDo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":106151},"engines":{"node":">=18"},"gitHead":"43a4742763db7a58832e9e7b435aebce586867d0","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.1_1787924122701_0.966173241174396","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@dombaras/agent-harness","version":"0.1.2","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.2","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"aa8185166f83271453545328d507ce6944666911","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.2.tgz","fileCount":44,"integrity":"sha512-IGj2GFA27vyQovt7x754mtS0G9mUxQpHYiLxuD3q9WbL6jnQ+bf59y2YuPHVPG8g3ak4xAR8foo76JRcT4Bm5Q==","signatures":[{"sig":"MEQCIC7dtNFhIV7yyaB1daWQpC529eQmZH0mKNX+ReAQHUn8AiBzaRPuvGIIRsbDRVcDUIhQ1hSXX7pGX+CLPO6jhuruUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":113032},"engines":{"node":">=18"},"gitHead":"dce611d6005dce6fba59b4178cc3d93de186ad14","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.2_1787945240752_0.881201439730448","host":"s3://npm-registry-packages-npm-production"}},"0.1.5":{"name":"@dombaras/agent-harness","version":"0.1.5","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.5","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"9913cbccd887615a0ec39aa6c6bd3ae28d59eec8","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.5.tgz","fileCount":47,"integrity":"sha512-04GAFIe1leMxtvfGQqaRUdcGH/3z9r+B7G64Q4XbvQ9+Yu5DBpQaZ4q06srUNWfCtYO2vAlvlxZjLSi8qs7Mrw==","signatures":[{"sig":"MEYCIQCnMPXgBSOwX0ggpyje9d4Wdbk0WK4UEuW27cYIRTjAhQIhAO/byrP1z/LdC+CE9ODs6TtEF+3HDTc3knOrLwvdSdWJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":147125},"engines":{"node":">=18"},"gitHead":"39cb6377e76af8f8f969218d4149dd5f35d63682","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.5_1787979984217_0.990231130934919","host":"s3://npm-registry-packages-npm-production"}},"0.1.6":{"name":"@dombaras/agent-harness","version":"0.1.6","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.6","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"7608ff266543c1e812e7db95083e4e405e6659c1","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.6.tgz","fileCount":47,"integrity":"sha512-tXMjMd98FDlVbL5/r85iIWV37wnMTWQ9ryMouoFZQPTWEbRlPv3SjaLNId9UNT5jB3LxrTzCagNn1ROHH4GYyQ==","signatures":[{"sig":"MEYCIQDE6uyfsH7xYZWB11aWF/zCLmBaRd+9VPsDKX1F/lreywIhAOxSetKSrRkEGD0ArWBvtRcuAtnBqjmTfy0y/Wspu9xA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":149869},"engines":{"node":">=18"},"gitHead":"70ebe8a062850eff66ebc38e94baa482ebc3c385","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.6_1787980447896_0.607958075098229","host":"s3://npm-registry-packages-npm-production"}},"0.1.7":{"name":"@dombaras/agent-harness","version":"0.1.7","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.7","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"9fd47f0d3464a0c1409472c2b872473e0a499885","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.7.tgz","fileCount":47,"integrity":"sha512-YkGiARw+HC3NACrj8dj72Ik4OtnraxSYqF88UMvCtn6SKx/AVfaAYFJIHOUwDX6b4g8j1yKwV19VqE75NJbUrw==","signatures":[{"sig":"MEUCICWGKgmaxKaZVVpJCeLf8XCC6c1dr5Cgf5Y5Fr8FypFCAiEA/nvsJiZ16FRV01pzKer1zEcw2tIGY2i7h4GXqyRdV2U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151238},"engines":{"node":">=18"},"gitHead":"4252b8da0767de320d4e524506c0c625347b3186","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.7_1787980738874_0.6425833764320608","host":"s3://npm-registry-packages-npm-production"}},"0.1.8":{"name":"@dombaras/agent-harness","version":"0.1.8","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.8","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"53d1853b73eef3f2c9c063af2c1b3ab8875e7258","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.8.tgz","fileCount":50,"integrity":"sha512-xA0t/HWvX67kNGEp8B06kUcnGYb643tfBUcUvKVrkRMMPu7nURRxxXav74FH4hSsQmmUXcC+AyaG/KPuqZwO3Q==","signatures":[{"sig":"MEUCIEkOHibzFp9T+WhxbVJQTPj7pS9TWuoGxGgdX/IxQopEAiEAi10VtQ+2Yp5D2VnhhTCmywhsL3frmI2Ag4hMftZ5HJQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":162967},"engines":{"node":">=18"},"gitHead":"d8f449892d4b7a29b71eda43341ec212928753b9","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.8_1787982222532_0.5389559095838243","host":"s3://npm-registry-packages-npm-production"}},"0.1.9":{"name":"@dombaras/agent-harness","version":"0.1.9","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.9","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"6fc5986a232121bad733c85c907fa546a4e07e3a","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.9.tgz","fileCount":52,"integrity":"sha512-C/UBJNDaxDBiS9q6q5ppiChWQPjz+MgQ0/eLDRoIvP2/JW7LVpqTsc2vHmfHc6vJv6dZYsuS6RLAFFBkqixusQ==","signatures":[{"sig":"MEUCIQCpATJShvh1uSsP/zl61BXYSalZGAzedl2kBc4DwHhCdAIgM/JDFHtdCrqfrJaaXjnVx7HHlrCvGeAE2IqKxaz07CI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":166905},"engines":{"node":">=18"},"gitHead":"337b735d569d82b5cea92a10b3d6af9d537e237e","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.9_1788093011734_0.4309447369894497","host":"s3://npm-registry-packages-npm-production"}},"0.1.10":{"name":"@dombaras/agent-harness","version":"0.1.10","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.10","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"5fb69d8aebae2abe979d402219edd57891725f01","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.10.tgz","fileCount":54,"integrity":"sha512-6vQil9lal5p4Kedq/beaTNRtXRCHlmKH5x4Ys/9DeD9Bty1BPsZ6JZyrMlaZNbK6mfciHQOBy17EbUuUafRbpw==","signatures":[{"sig":"MEYCIQDReQmyeWUdaZCJMpjdNd9wo0hkQTEHmjmMfQXHo5+bngIhAJBgZVp3DVqxJdjNRNdXCM6fBd/9VH79sRxIMDDHX9nV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":186643},"engines":{"node":">=18"},"gitHead":"337b735d569d82b5cea92a10b3d6af9d537e237e","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.10_1788177414857_0.9611275754390916","host":"s3://npm-registry-packages-npm-production"}},"0.1.11":{"name":"@dombaras/agent-harness","version":"0.1.11","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.11","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"53b969b41f8743dc09c4b5f1cb496dd6f7923a72","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.11.tgz","fileCount":55,"integrity":"sha512-8KcYNNsDSqxLiFS+BtMvd+hPeLUkfuSo4KIbJ6UceW7TWuoznhfCslZ2Xxdx0hQverl/9MVRmq9kIIBah+uVdg==","signatures":[{"sig":"MEQCIDX69FaLZvnR+2jEiAhc8gFKyI4V0ZlMlkf2Z5PvwvInAiAguKUgAlAFUNFw0gn6ox/t3TVCFy8xwkHnU5mHDFMn7w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":190596},"engines":{"node":">=18"},"gitHead":"337b735d569d82b5cea92a10b3d6af9d537e237e","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.11_1788184487443_0.7351602180307375","host":"s3://npm-registry-packages-npm-production"}},"0.1.12":{"name":"@dombaras/agent-harness","version":"0.1.12","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.12","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"b7acba4fe27ff6554f7e3e5f7c79fd17ad192989","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.12.tgz","fileCount":55,"integrity":"sha512-tXAtyPknwP4QXzRlCSPMBmasIdQs5/stUiIpXEZTOWY5HyEeyHzeTi0H4jIM9gO4Nt8V6MGVMtXMqmUxlE14Cw==","signatures":[{"sig":"MEQCICMJ6Y0cA+3DspwfRGbbfz95j+gz7s2j404eHzv/8BZ8AiAdQAxkkBxcaC5tRZN1Ua8XAPqjk2VSXdfA9wlH69GUCw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":192878},"engines":{"node":">=18"},"gitHead":"337b735d569d82b5cea92a10b3d6af9d537e237e","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.12_1788202882090_0.15179273668801674","host":"s3://npm-registry-packages-npm-production"}},"0.1.14":{"name":"@dombaras/agent-harness","version":"0.1.14","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.14","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"a6a8266ad696d3d8e282a60442d54ee82904cdb5","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.14.tgz","fileCount":57,"integrity":"sha512-xxSgrtpZRzy0FFKW2YRoa/uU6TU0lvQiCt1icZUrSyYjRerortsMMX+j0QOJipzkvJh4LXsY74WRcOhu8rYNHQ==","signatures":[{"sig":"MEUCIQDsttqKQ6e2DeQi0JsAIS15PBT6RLQ8q07at1hBwCVccAIgNVgWHaO+nzJ4ac2SBKfTbL4ogW9lnT5BMoJ8AdtQg7o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":211250},"engines":{"node":">=18"},"gitHead":"646244721851b3b068d32af60f25c2acb60bf017","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.14_1788289194060_0.8370795265382982","host":"s3://npm-registry-packages-npm-production"}},"0.1.15":{"name":"@dombaras/agent-harness","version":"0.1.15","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.15","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"9210e32030c7a128b58765a86f29f6c6eb50a206","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.15.tgz","fileCount":60,"integrity":"sha512-SLfSvsbi0eJghdX00vHA5sSuAUHEZX0kRCQNxXd/15WlYhAeiDlBZESlz55P4LUftfcxi9T51+NzdTYYoCOk+w==","signatures":[{"sig":"MEQCIFikBunUiOmeZMuyf2zTSfb1ejXfTz6GSKhU+Zy/qaxqAiAH+q0t4NelS+PIk9E/TfxuyouKJN2EnkX1wd7Wg5L3cw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":224372},"engines":{"node":">=18"},"gitHead":"3be4b6dee6b2dd65ca5bd25ed572cb841f81ee9b","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.15_1788291499249_0.718135198547259","host":"s3://npm-registry-packages-npm-production"}},"0.1.16":{"name":"@dombaras/agent-harness","version":"0.1.16","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.16","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"af0ed1c6fe97ec58ff94b69f61129f29fdc5820f","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.16.tgz","fileCount":60,"integrity":"sha512-TIGgg3kZVLayIiOMFdLesyrxsz8TOwgBBKOs5dH6xeh1DKqxxSGbtgyr83yLLeF6R1gGQ9ByzyuguBkAC9nz+g==","signatures":[{"sig":"MEQCICLbsbZ17F7a93+wEBrbDdb8wKJdmEb6ktQjRyDWcLUrAiBtXWDekExTOlE6wM2RTQ8MG6CNkDjL4WKYX0yLywLK6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233016},"engines":{"node":">=18"},"gitHead":"209635902a521ae392e80f6ede91041eed653dbc","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.16_1788361815111_0.29634749493709966","host":"s3://npm-registry-packages-npm-production"}},"0.1.17":{"name":"@dombaras/agent-harness","version":"0.1.17","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.17","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"ae618788e2e6fbfec63ccfa3460f773e9bd633f1","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.17.tgz","fileCount":60,"integrity":"sha512-9A9lYtav8llm5T6J8zKcu0kFVn1ivnLxh8UKoTJZ/jjL5wR//Ri8Xxkr5kvH7IoPOPTsiiQSsq6Uokbl9pAYew==","signatures":[{"sig":"MEQCIDBewYvM1f/hi8YVCM3wvoeM3ixyHoCK9xjoLfsC/VqyAiAtt9n4/DYeSBp8H00T/FdP5Qhoz4pO/e4S/nYMYmUzvg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233371},"engines":{"node":">=18"},"gitHead":"ef43076872b419e9cefaee83d051be7f66078869","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.17_1788375403040_0.3848455759607379","host":"s3://npm-registry-packages-npm-production"}},"0.1.18":{"name":"@dombaras/agent-harness","version":"0.1.18","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.18","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"07320925baa4c5845dcd75bf3de5cfeabfcc7649","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.18.tgz","fileCount":60,"integrity":"sha512-yGMEws1FfpMsNXEU2gSUVoO3xN37sEJQotJBKQUdtzuWZ57UuejubtcDyuduyNianySAjIhnafEo60KOon/qtA==","signatures":[{"sig":"MEQCIGytjF/9TdNmpIsxLjEN9w3so4QdEpoGyGob3u32B5kFAiBQFP1EZ0bquq6AaaRsOo8WERtiFOIKKYvXLdWInkyVUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAJvuddou2B37BGTudxnBNswA7xcaZ5XVY353o+lUEG9AiAkNKKPhscsp89/JTZnnNa89duzBsyO9dR10VQr0SueSg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236498},"engines":{"node":">=18"},"gitHead":"e7242742dedafdc1fc38634e50475fa6de0c73f7","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.18_1788467452931_0.15594040095303496","host":"s3://npm-registry-packages-npm-production"}},"0.1.19":{"name":"@dombaras/agent-harness","version":"0.1.19","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.19","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"0da88d954945104258606053d6d481a050983ad3","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.19.tgz","fileCount":60,"integrity":"sha512-RYsClDwOFUeFLh2+fyiy2d8SgrLrZtq9zlgWeEe6NHbSZMtLl5anFdsXQ+WQdH0+c3Q0rjyppkNOudZQ6sH4Qw==","signatures":[{"sig":"MEQCIHoEeHqdUnivLGULhyjpPfq9T1qLjUzbyQJ6t8/i399fAiA7ZRslBgrr6JxY97ejzJM6rJ+d21nBlGMgXeo87iSjkw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAnXYc+v3Kg2rVwmE7Eb2Z0pXfie9phIu9O/Zm37PfGBAiEAtEWoKjFvZ39pXKnNA5HrXSzMbowTqdTmX8Q4pHLM/9c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":236959},"engines":{"node":">=18"},"gitHead":"e7242742dedafdc1fc38634e50475fa6de0c73f7","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.19_1788495066849_0.47402232364128327","host":"s3://npm-registry-packages-npm-production"}},"0.1.20":{"name":"@dombaras/agent-harness","version":"0.1.20","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"license":"MIT","_id":"@dombaras/agent-harness@0.1.20","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"81fe4ff9c7667d187863fd8614f2e14417997d1b","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.20.tgz","fileCount":63,"integrity":"sha512-ZohR9DMt8sBPkp97X+NydJo8vxdbAqoOme7Fu/u946r8RmsTlgp9bu3+q/3JtH6gYxau95SB3Bp7krhoNEUUeg==","signatures":[{"sig":"MEQCIDRm2FrlxJ/3DN5A4Oydw8eUBVQkp8PnJJQSFfZkckp6AiBzrHaP6tX5VdSXk1iamuHpvCiM1B2HxsQ1rJO5qFKxcA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDDR9WaNBoDOa+ci+v3zqXWgRyMAM1gV4edTl4hZC3xUgIgbpug2pWsC6Yv0S2G+NvFbU8n353krtQLrdEfvYm1umE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":258945},"engines":{"node":">=18"},"gitHead":"2e123553b411a867907441dd0f7830543c712584","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/backlog.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/agent-harness_0.1.20_1788505646535_0.4920919118829734","host":"s3://npm-registry-packages-npm-production"}},"0.1.21":{"_id":"@dombaras/agent-harness@0.1.21","bin":{"agent-harness":"bin/agent-harness.js"},"dist":{"shasum":"2b1cfe6a73fef8fa75fb23bc953ea086a2b95bfa","tarball":"https://registry.npmjs.org/@dombaras/agent-harness/-/agent-harness-0.1.21.tgz","fileCount":63,"integrity":"sha512-quCkVCb4wAATJrbS5Qdu87kPnUt6VN1aQOorwkse0QACSBehUSegyVrbU/m+WWVpXcdSsVbP0FmYGL3svWU0vQ==","signatures":[{"sig":"MEYCIQC2++V1lZpQHrk0oDAoku+pf4XCN4dzNpqcdCzMTjCbngIhAI8g4/CEdbhkUGxATTT8YWPJe3mw7CV5iUalXBUAnrlf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCBMHH98MNkN+IoXaR8Xce+sBENgN6QPFRThM+OK9ODygIhAJtKj/cmINtRjeCN7evO/fSvT3D1IqpJske2/vZ3QMqd"}],"unpackedSize":259872},"name":"@dombaras/agent-harness","engines":{"node":">=18"},"gitHead":"37c329fd1aa12265cb370174d4e708302e7b3a1f","license":"MIT","scripts":{"lint":"node --check bin/agent-harness.js && node --check templates/scripts/backlog.js && node --check templates/scripts/qa/check-dispatch-config.js && node --check templates/scripts/qa/governance.js && node --check templates/scripts/qa/check-qa-plan.js && node --check templates/scripts/qa/check-qa-scripts.js && node --check templates/scripts/qa/check-backlog.js && node --check templates/scripts/qa/check-product.js && node --check templates/scripts/qa/check-docs.js","test":"node --test"},"version":"0.1.21","_npmUser":{"name":"dombaras","email":"rahuvia@gmail.com"},"keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"_npmVersion":"11.16.0","description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","directories":{},"maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"_nodeVersion":"24.18.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent-harness_0.1.21_1788518654758_0.9707713837458649"}}},"time":{"created":"2026-08-28T12:58:44.184Z","modified":"2026-09-04T10:44:15.006Z","0.1.0":"2026-08-28T12:58:44.493Z","0.1.1":"2026-08-28T13:35:22.847Z","0.1.2":"2026-08-28T19:27:20.882Z","0.1.5":"2026-08-29T05:06:24.365Z","0.1.6":"2026-08-29T05:14:08.176Z","0.1.7":"2026-08-29T05:18:59.001Z","0.1.8":"2026-08-29T05:43:42.691Z","0.1.9":"2026-08-30T12:30:11.882Z","0.1.10":"2026-08-31T11:56:54.994Z","0.1.11":"2026-08-31T13:54:47.568Z","0.1.12":"2026-08-31T19:01:22.231Z","0.1.14":"2026-09-01T18:59:54.203Z","0.1.15":"2026-09-01T19:38:19.397Z","0.1.16":"2026-09-02T15:10:15.313Z","0.1.17":"2026-09-02T18:56:43.180Z","0.1.18":"2026-09-03T20:30:53.118Z","0.1.19":"2026-09-04T04:11:06.942Z","0.1.20":"2026-09-04T07:07:26.717Z","0.1.21":"2026-09-04T10:44:14.848Z"},"license":"MIT","keywords":["opencode","agents","subagents","personas","ai-harness","claude-code","copilot"],"description":"Reusable multi-agent harness for AI-assisted development: personas, skills, operating rules, model routing, and QA gates. Deploy into any project with `npx @dombaras/agent-harness init`.","maintainers":[{"name":"dombaras","email":"rahuvia@gmail.com"}],"readme":"# @dombaras/agent-harness\n\nA reusable multi-agent harness for AI-assisted development. Ships a persona\nfleet (planner, engine engineer, mobile, QA architect/runner, security,\narchitecture, product, data, devops, handoff, docs), operating rules, model routing,\nand QA gates — then deploys them into any project.\n\n> Extracted from a production project so the \"agents / subagents / guardrails /\n> personas\" layer is **not** an inherent part of the app codebase. It lives in its\n> own repo and is installed via `npx @dombaras/agent-harness init`.\n\n## Why\n\n- The agent harness is tooling, not application code. Its source lives in the\n  npm package — you deploy it with `init`/`update` rather than hand-copying it\n  into every repo.\n- One canonical, versioned source of truth for personas/rules/QA tiers, deployed\n  on demand and updatable via `npx @dombaras/agent-harness update`.\n\n## Install & initialize\n\n```bash\n# from anywhere (uses a target dir or defaults to cwd)\nnpx @dombaras/agent-harness init --target /path/to/project --name \"MyApp\" --domain \"a widget catalog\"\n\n# non-interactive\nnpx @dombaras/agent-harness init --target . --yes\n\n# preview what would change, without writing anything\nnpx @dombaras/agent-harness init --target . --dry-run\n```\n\n`init` writes:\n\n| Path | Content | Ownership |\n|---|---|---|\n| `AGENTS.md` | root dispatcher (points to the rulebook) | harness (overwrite) |\n| `BACKLOG.md` | canonical task list (Open / In progress / Frozen / Archive / Not tracking) | **project** (create-if-missing) |\n| `.opencode/agents/*.md` | 15 persona subagent defs (with `model:` pins + `permission`/`steps`/`temperature`/`hidden`) | harness (overwrite) |\n| `.agents/AGENTS.md` | full canonical operating rulebook | harness (overwrite) |\n| `.agents/rules/00-operating.md` | always-loaded rules summary (wired into `opencode.json` `instructions`) | harness (overwrite) |\n| `.agents/skills/*/SKILL.md` | persona instruction skills | harness (overwrite) |\n| `.agents/features/INDEX.md` | pointer to `BACKLOG.md` (per-feature doc tree root) | **project** (create-if-missing) |\n| `opencode.json` | main/small model routing + `instructions` | harness (**merged**, see below) |\n| `scripts/qa/*` | `test:dispatch` / `test:governance` / `test:qa-plan` gates + QA-script wiring check | harness (overwrite) |\n| `scripts/backlog.js` | deterministic `BACKLOG.md` editor (list/add/take/archive/freeze) | harness (overwrite) |\n| `.opencode/tools/backlog.ts` | `backlog_*` custom tools the LLM calls (shell out to the CLI) | harness (overwrite) |\n| `.opencode/plugins/backlog-notify.ts` | toast/log whenever an agent mutates the board | harness (overwrite) |\n| `.agents/memory/*` | project data (domain-map, stack-versions, locations, model-routing, history, flow-map, product-principles) | **project** (create-if-missing) |\n| `.agents/handoffs/*` | project data (one session handoff file per session — sharded so concurrent sessions never collide) | **project** (create-if-missing) |\n| `.agents/qa-plans/*` | project data (one QA plan file per change — sharded so concurrent sessions never collide) | **project** (create-if-missing) |\n| `.harness.json` | deployed version + project profile + per-file checksums | harness |\n| `.gitignore` | harness-managed section (`.harness-backup/`) merged in, project entries preserved | harness (merged) |\n\n### `opencode.json` is merged, not clobbered\n\nThe harness owns only `$schema`, `model`, `small_model`, and its own\n`instructions` entry (`.agents/rules/00-operating.md`). Every other key your\nproject adds — `permission`, `mcp`, `plugin`, custom `instructions`, etc. — is\npreserved across `init`/`update`.\n\n## Placeholders\n\nTemplates use `{{PROJECT_NAME}}` and `{{PROJECT_DOMAIN}}`; `init` substitutes\nthem from `--name` / `--domain` (or prompts, or `.harness.json`). Domain facts\nthat are genuinely project-specific (entity model, external sources, visibility\ntiers, trust tiers) live in `.agents/memory/domain-map.md`, which `init`\nscaffolds for you to fill in — the skills and rules reference memory instead of\nhardcoding domain assumptions.\n\n**Features (`.agents/features/`)** — the durable, feature-centric plan of record. A\nfound item is captured as one light row in the canonical `BACKLOG.md` (repo root; the\nsingle write-path for all open work: what's known, priority, evidence). When a feature\nis picked up, the `features` persona authors the per-feature doc chain\n(`.agents/features/<slug>/`), each layer routed to its author persona — `intent.md`\n(product-manager) → `scope.md` (system-architect, HIGH-risk only) → `plan.md` (planner)\n→ `tests.md` (qa-architect, points to the feature's QA plan). Ceremony is right-sized to blast\nradius: trivial → none, low → single `intent.md`, high (auth/DB/public API/flow-siblings)\n→ full chain. Docs live beside the code, are written-back before continuing when\nimplementation invalidates them, and are archived on ship. `.agents/features/INDEX.md`\nis a pointer to `BACKLOG.md`. See `.agents/skills/features/SKILL.md`.\n\n**Product-first planning (`.agents/memory/product-principles.md`)** — the project-owned\nproduct concepts (actors, product concepts, UX heuristics, design language, key journeys,\nvalue-maximization rules) that LEAD planning. The `planner` reads it (plus a feature's\n`intent.md`) before emitting a dispatch plan and sequences work value-first — smallest\nslice that delivers the core outcome first — rather than by tech dependency. `intent.md`\nmust define Actor(s) → Need → Outcome → Acceptance criteria, and `plan.md` a Value-first\nsequence + Product concepts applied; `npm run test:product` fails a feature that reaches\nplanning/implementation without them (a plan with no intent, or an intent that never\nnames a user/need/outcome). Fill `product-principles.md` in at `init`; evolve it as the\nproduct does — see `.agents/skills/planner/SKILL.md` and\n`.agents/skills/features/SKILL.md`.\n\n**Flow map (`.agents/memory/flow-map.md`)** — the project-owned registry powering the\nflow-closure half of `test:qa-plan`. Each user-facing flow lists the code surfaces that\nimplement the same behavior across codebases/layers (e.g. web component, `mobile/` sheet,\nAPI route) plus its optional variants (e.g. `condition-selector-present` vs `-absent`). Fill\nit in so a change to one surface is forced to account for all the others. If empty, the gate\nwarns but does not block; the guarantee only applies to registered flows.\n\n## Model routing & enforcement\n\n- Concrete models are set in `.opencode/agents/<name>.md` (`model:` field) and\n  `opencode.json` (`model` + `small_model`).\n- Personas also carry mechanical guardrails in frontmatter:\n  - thinkers (`planner`, `product-manager`) → `permission: { edit: deny, bash: deny }`\n  - `qa-architect`, `handoff`, `docs` → `permission: { bash: deny }`\n  - code personas (`frontend-engineer`, `mobile-engineer`, `ui-designer`,\n    `data-engineer`, `devops-engineer`, `security-engineer`, `system-architect`,\n    `diagnostics-expert`) → `permission.edit` allows everything EXCEPT\n    `opencode.json`, `.harness.json`, `.opencode/**`, `.agents/**` (governance\n    and harness files are read-only), plus `bash: allow`\n  - deterministic personas → `temperature: 0.1`\n  - all personas → a `steps:` cap (cost ceiling)\n  - `planner`, `handoff` → `hidden: true`\n- `.agents/skills/*/SKILL.md` carries a `model:` label only (informational).\n- `npx @dombaras/agent-harness list` prints the persona → model mapping.\n- `npm run test:dispatch` mechanically verifies model pins against\n  `scripts/qa/models.allowlist.txt` and that `model-routing.md` does not name a\n  stale model no longer pinned anywhere (doc↔config drift).\n- **`/switch-model` command** — every deploy ships an opencode command\n  (`.opencode/command/switch-model.md`) plus `scripts/switch-reasoning-model.ps1`\n  that rewrites the main `opencode.json` `model` and the six reasoning-tier\n  agents (planner, system-architect, security-engineer, diagnostics-expert,\n  product-manager, qa-architect) in one step. Aliases: `deepseek`/`direct` →\n  `deepseek/deepseek-v4-pro` (default, direct API key), `zen`/`opencode` →\n  `opencode/deepseek-v4-pro` (gateway), `pickle` → `opencode/big-pickle`,\n  `nvidia`/`kimi`/`kimi-k3` → `nvidia/moonshotai/kimi-k3` (NVIDIA NIM), or any\n  explicit `provider/model`. Restart opencode after switching (config reads once).\n- **`/board` command** — every deploy ships an opencode command\n  (`.opencode/command/board.md`) that runs the deterministic `scripts/backlog.js\n  list` and shows the active rows verbatim — no LLM filtering, no re-ordering, no\n  transformation. Read-only, no git — the local file is the source of truth.\n\n### Backlog management — fast, deterministic, no LLM in the loop\n\n`BACKLOG.md` is the single source of truth; it is managed by a **deterministic\nNode CLI** (no model round-trip) that both humans and agents share:\n\n```bash\nnpm run backlog -- list              # In progress + Open, evidence on its own line (add --all for Frozen/Archive, --full to skip truncation)\nnpm run backlog -- add \"NLI search times out\" --p P2 --evidence docs/issues.md\nnpm run backlog -- take F-001 --handoff .agents/handoffs/F-001.md\nnpm run backlog -- archive F-001 --closed \"shipped 2026-09-04\"\nnpm run backlog -- freeze F-002 --why \"not now\" --reopen \"customer asks\"\n```\n\n`list` renders each row on two lines (task on top, evidence/handoff/reopen on a\nlabeled line below) and truncates long cells by default for scannability — pass\n`--full` for the untruncated text. The `backlog_list` tool always uses `--full`\nso agents see complete descriptions.\n\n- The CLI validates the schema (`P1..P4`, non-empty evidence/handoff/reopen),\n  generates unique IDs, and sorts `Open` by priority — every write stays\n  `npm run test:backlog`-green.\n- **Agents use the same path** via opencode custom tools (`backlog_add`,\n  `backlog_take`, `backlog_archive`, `backlog_freeze`, `backlog_list`) that shell\n  out to the CLI — never hand-edit `BACKLOG.md`.\n- A **notify plugin** (`.opencode/plugins/backlog-notify.ts`) pushes a toast +\n  structured log the moment an agent mutates the board, so \"an agent finished an\n  item\" reaches you as a notification instead of a manual refresh.\n\n## QA gates\n\n- `npm run test:dispatch` — persona model-pin preflight + persona↔skill parity + model-routing↔pin drift check.\n- `npm run test:governance` — session wrap-up dispatch-log enforcement.\n- `npm run test:backlog` — canonical single-backlog gate: `BACKLOG.md` is the one\n  source of truth; status/priority enums, frozen-reopen conditions, non-empty\n  priority/evidence (and non-empty task/handoff on `In progress` rows), no\n  duplicate IDs, and `INDEX.md`/`todo.md` must be pointers (not live lists).\n- `npm run test:product` — **product/UX-first gate**: every feature doc in\n  `.agents/features/<slug>/` must define its user before planning/implementation.\n  `intent.md` must carry Actor(s) → Need → Outcome → Acceptance criteria, and `plan.md`\n  a Value-first sequence + Product concepts applied; a `plan.md` with no `intent.md`\n   fails (never plan around an undefined user need). Backward-compatible — no feature\n   docs, gate passes.\n- `npm run test:docs` — **docs-as-code gate**: `README.md` / `docs/**` must have no\n  un-substituted `{{PLACEHOLDER}}` template vars, no dangling relative links, and every\n  ADR (`docs/adr/*.md`) must carry Context → Decision → Consequences + a Status.\n  Backward-compatible — no docs, gate passes.\n- `npm run test:qa-plan` — **diff-coverage + flow-closure gate**:\n  every changed CODE path must have a covering assertion (or a waivered reason) in\n  a QA plan (one per-change file under `.agents/qa-plans/`) before a change is verified — and every touched flow\n  (`.agents/memory/flow-map.md`) must have every sibling surface and declared optional\n  variant addressed in the plan's `## Parallel-surface & variant audit`. Kills the\n  \"verified by a suite that never touched the change\" failure mode: a tier label never\n  proves coverage. It also makes **\"Fix One, Fix All\" mechanical**: a change to one\n  surface (e.g. web) cannot ship while the same flow in another codebase (e.g. `mobile/`)\n  silently keeps old behavior — the plan must name each sibling as covered (`->`) or\n  out-of-scope (`audited: reason`, e.g. `deferred — logged in handoffs/`).\n- `node scripts/qa/check-qa-scripts.js` — warns (or `--strict` fails) when the\n  DoD-referenced runtime QA tiers aren't wired into `package.json`.\n\nThe harness ships only these gates. The runtime QA tiers (`test:quick`,\n`test:routes`, `test:api`, `test:verify`, `test:security`) and their backing\nscripts are **project-provided** — the rulebook references them, and\n`check-qa-scripts.js` reminds you if they're missing.\n\n## Update\n\n```bash\nnpx @dombaras/agent-harness update --target /path/to/project\n```\n\n- Overwrites harness-owned files, preserves `.agents/memory/*`, `.agents/handoffs/*`, `.agents/qa-plans/*`, and `BACKLOG.md`.\n- Auto-wires the harness gate scripts (`test:dispatch`, `test:governance`,\n  `test:qa-plan`, `test:backlog`, `test:product`, `test:docs`) into the target's `package.json` (merged, add-only).\n- **Auto-commits** the harness files it changed (`chore(harness): @dombaras/agent-harness\n  <old> -> <new>`) and **pushes** to origin, so the next session never sees unexplained\n  modified harness files. Your unrelated uncommitted work is never staged.\n  - `--no-commit` to skip commit+push, `--no-push` to commit but not push.\n  - `init` auto-commits + pushes by default too: it commits everything it scaffolds\n    (including `.agents/memory/*`, `.agents/features/*`, `.agents/handoffs/*`, and `BACKLOG.md`) so a fresh\n    project starts fully tracked and no harness file is left untracked.\n  - Harness-owned paths are **force-added**, so a project that gitignores deployment\n    artifacts (an inherited `.agents/` `.opencode/` `AGENTS.md` pattern) still gets the\n    harness commit instead of a raw `git add` failure that silently skips it — force-added\n    files are called out in the summary.\n- **`[Nothing-to-Update]` confirmation**: if the target is already at this CLI's version and no\n  harness-owned file changed, `update` says so explicitly, writes nothing, and makes no commit —\n  a no-op is never mistaken for a sync and never churns `.harness.json`.\n- **Downgrade guard**: `update` refuses to run on a target whose deployed harness is NEWER than\n  this CLI (e.g. deployed from a local checkout that was never published) and tells you to publish\n  that version first.\n- **Published-version check**: if this CLI's version is not the latest `dist-tags.latest` on npm,\n  `update` warns you — catches the \"bumped the version and updated a project from a local\n  checkout, but never published\" gap before it silently forks the projects.\n- **Non-destructive**: if a harness-owned file was modified locally since the\n  last deploy (tracked by checksum in `.harness.json`), it is backed up to\n  `.harness-backup/<timestamp>/` before overwrite.\n- `opencode.json` is merged (project keys preserved).\n- **Managed `.gitignore`**: the harness merges a marked section (`.harness-backup/`, its\n  local rollback artifacts) into the project's `.gitignore`, preserving every project entry.\n  New harness files are tracked (committed), not ignored — so they don't need a gitignore\n  change. If the harness ever adds a new local-only artifact, `update` re-merges the entry.\n- `--dry-run` previews the plan without writing.\n\n### Backlog migration (`migrate-backlog`)\n\n```bash\nnpx @dombaras/agent-harness migrate-backlog --target /path/to/project\n```\n\nConsolidates any live `.agents/features/INDEX.md` F-rows and\n`.agents/memory/todo.md` list items into the canonical `BACKLOG.md`, then rewrites\nboth as pointers. Idempotent — re-running never duplicates rows (it only merges into\nan empty board) — and never deletes a source before `BACKLOG.md` is written and\nverified. Logs a summary: `N open · M frozen · K archived`.\n\n## Develop\n\n```bash\nnpm test          # node --test\nnpm run lint      # syntax-check the CLI + QA scripts\nnode bin/agent-harness.js list\nnode bin/agent-harness.js init --target /tmp/demo --name Demo --yes\n```\n\nClear the data-test except keep `templates/` generic; do not commit a target\nproject's `.agents/memory/` into this repo.\n","readmeFilename":"README.md"}