{"_id":"persona-harness","_rev":"165-5c900b5e871ed6dab60d0efa872b4703","name":"persona-harness","dist-tags":{"staging":"0.8.0-beta.34","next":"0.8.0-rc.1","latest":"1.1.0"},"versions":{"0.3.0-alpha.0":{"name":"persona-harness","version":"0.3.0-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.0-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"a1434980e0f2dbda347e17707fefe510319728d6","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.0-alpha.0.tgz","fileCount":176,"integrity":"sha512-BVP5ixN88KTYywhEpiiZlLKGJW4UnmEiSOoarA01DqYnLx39q+JUDfB3hFYqK98GS0GbyIbgQwbkFTMdnzVVwg==","signatures":[{"sig":"MEUCIGUXxADt+UudNfL/KJ09WV/dIm9oQUTId77Mp6Sd2bTsAiEA5D5fYQqdb9tli5j5c6dvpQXAUm8OM4SxmrYn4VTOeBQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":656614},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"b3df8244dfbc29e92591478ef1487c941ae940d3","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.0-alpha.0_1782026252857_0.8041145070467266","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha.1":{"name":"persona-harness","version":"0.3.0-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.0-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"d9214ae2c74cd975a7637f4d045d6153e9dd04eb","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.0-alpha.1.tgz","fileCount":176,"integrity":"sha512-bWunlsNPiEqqXAwzgaRlQ7DvlrMn60QiNeNT3TPtkpauXbwjwxX73URIIVfb5No6CWrVLUf7X2JUzZnCFDLanQ==","signatures":[{"sig":"MEQCICupGQWbwVoWtnXCVDHeQP45rgJGVc8nTQOTZT9Ix2AdAiBiSvqXwkHooTBDQByX726fVKMd331f3GkwifoMa3A6ug==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":661294},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"129ab6de1a50ec7480be812d1e5bffbb0b04ae9f","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.0-alpha.1_1782026888783_0.08486647452220453","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha.2":{"name":"persona-harness","version":"0.3.0-alpha.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.0-alpha.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"2f0fc7aa32351da553b12741148b48f9d25ee137","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.0-alpha.2.tgz","fileCount":176,"integrity":"sha512-sGflB0RFfUdNKhyeYQn2bhgNjxWiybaXUqSjBw1OLSsEFpgROSgqu6SJU5WiS7ky43kojTYf0thnwyAAyPcq+g==","signatures":[{"sig":"MEQCIGbisxf609491N7MTphfBJRvJtaIQQnEdjRyulLBqJ5JAiAVHW6hTFsr20URX19/YtnzIey5aXZiHVYatemTouQnbg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":676570},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"e93c5b665496d6cf70db37713fb4c407c8219634","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.0-alpha.2_1782035054717_0.36975864603972597","host":"s3://npm-registry-packages-npm-production"}},"0.3.0-alpha.3":{"name":"persona-harness","version":"0.3.0-alpha.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.0-alpha.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"855d4328f1e294e2a5b6e2ccd2d9cd28e624b280","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.0-alpha.3.tgz","fileCount":191,"integrity":"sha512-NSr7NVLVMfThDG22K5xoyy3TQNLU03kMUPVw4kCP9GmTy9Rl2Sk+ZXrSTAlgvNx8CWRUL2V8BQr4D6tHAewwVQ==","signatures":[{"sig":"MEQCIAtjdW4E4Oa6Z1M8bI/3qFCdqeCaQUz4S0MP5SS9Tp4rAiBjkU/V29TsTgD89iaPoeMPi7y8BJAOvWK/yuwkvrnWZw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735140},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"64f0b83a8f57a6e66464bfc98079fefb36e93459","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.0-alpha.3_1782091363478_0.8013297618128263","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-alpha.0":{"name":"persona-harness","version":"0.3.1-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.1-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"53352f63806ecb2f001b24e056463ef4fabfcefb","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.1-alpha.0.tgz","fileCount":216,"integrity":"sha512-zwEl8iXzF3aLKzAVHddsVMxe5UVQn2pL7WlvFCpiSE5XAYaHpiFdD2hSWRzqGb0LmWxIwoVMyFW4EIHS6SLImA==","signatures":[{"sig":"MEUCIQCUVAsgivKHPhluqg1GExd7GhC9ahgABx140Ca2fWrj/gIgWUY8E3UwLRepyMqFXDk9c22tGddDqVD4JPzdv/OuKCk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":827300},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"792965b38b9f46088e3839aa095897d9b9521254","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.1-alpha.0_1782107453111_0.988557208346381","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-alpha.1":{"name":"persona-harness","version":"0.3.1-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.1-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"bbc719f37cfd222f86cb8db04d87c03d110416af","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.1-alpha.1.tgz","fileCount":216,"integrity":"sha512-/1jCycdlLyhyFffFM/rg7IEvEWWT58tvq4omGNBG0RuXR2c6IH00RnLN5aZYO8PgivJi8fT9TtgbtmC+kNKZow==","signatures":[{"sig":"MEUCIEqSkCa4Am90+7lGj6XmfwAXBTpjrW+J/W4+P4C4jzVZAiEAobIh3g33ZZJVznNvD4Cw5yG3+dyA9ium+lnNz60L31k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":840145},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"086efca4491e5a4ed0c310d56ef41a51b8801735","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.1-alpha.1_1782113700310_0.926498577928484","host":"s3://npm-registry-packages-npm-production"}},"0.3.1-alpha.2":{"name":"persona-harness","version":"0.3.1-alpha.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.1-alpha.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"d7f41d6480630f0238b5b473fb18c3f11d955f7c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.1-alpha.2.tgz","fileCount":216,"integrity":"sha512-kdlBDyxpX0ZY8OHcINn8/46VwiP5conu+2763PjmEvrPJyKkRd6AS3CM/3NsQooFop4sKjSlBgGFoNSops6X3Q==","signatures":[{"sig":"MEUCIQDsfb1eSWKw4IiWUJ5oy1edJyzfIPemS6BeKn1llXh93gIgGLLkrI6MblwW0daHfCXU1D2hou7f6e9TiuCbdRQWJ2w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":850198},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"214916294e561be8f087f5c8d46727d21d7eeb6e","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.1-alpha.2_1782114872667_0.4908655455550499","host":"s3://npm-registry-packages-npm-production"}},"0.3.2-alpha.0":{"name":"persona-harness","version":"0.3.2-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.2-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"5a2b6d949de5750b3aa98e00820570f4499a9393","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.2-alpha.0.tgz","fileCount":220,"integrity":"sha512-yi5PUYvP2JYcGk7RdKFH6kOx9KhcCA2FnrzwarOrEuncRSetd9hx716UIOf3C1zwxgkRWCJRUBDyXmXaPw4BdA==","signatures":[{"sig":"MEUCIFihKMtiZJ/kPQY58Lhc7bEzRi01Ui9po0EnWaCReqkAAiEAn/bzuclPRngoTx20apzNwd73Su65zY2aRTqQwi9B/W4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":864656},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"e2e2de179d404f798898af618bf42befa81f4605","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.2-alpha.0_1782118346394_0.45303603498521827","host":"s3://npm-registry-packages-npm-production"}},"0.3.2-alpha.1":{"name":"persona-harness","version":"0.3.2-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.2-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"8a49fe194e291866fa8476fdf0a11b95275cc6f5","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.2-alpha.1.tgz","fileCount":221,"integrity":"sha512-0xvJNpx9ITOE+Sv+FNfjtdMdu42cTAJ00DqYZIjdD0Tap+GEu89ia/cI82qNgJXj4AJTcTKBwgy11Ko9lhVTMQ==","signatures":[{"sig":"MEQCIAGdKedcjsgfTp3tZKFLQkOfdofd7P8JsZs/nEO1f88AAiB/VzStGv7Dwc6JNUEYoP3yJxgkqkxkJTBM35wA7Q+o0Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":868943},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"7d2ecd2f4482a888623bfcf0770db3df64dec2ba","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.2-alpha.1_1782118802713_0.22692267234003993","host":"s3://npm-registry-packages-npm-production"}},"0.3.2-alpha.2":{"name":"persona-harness","version":"0.3.2-alpha.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.2-alpha.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"9e21ebcbda34555a3a3d26e97fcc75a8a9c22a29","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.2-alpha.2.tgz","fileCount":222,"integrity":"sha512-P6rz67ZQk1UinSkrndy/7Cz2QaZXwUFwveKp0Yy2pxcr2TwfJmTvpAiIEkXRVxfO4QZKJZLLRUR+42X+mn4f7A==","signatures":[{"sig":"MEQCIGO1CN9h0Cd1ZXnP/t7NGGUUZ1SUNQPZaHFmO6o9fvoHAiB8XvkCdaiaUB5UizD4rGs52hrjo1JWDsaK8Qej1JCw1Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":890113},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"2d9d6242e914ef9eee677a866246f2d08bd5a5f2","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.2-alpha.2_1782168362757_0.06873912347728584","host":"s3://npm-registry-packages-npm-production"}},"0.3.2-alpha.3":{"name":"persona-harness","version":"0.3.2-alpha.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.2-alpha.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"5c96bf91bef672e314e7050c4e992ccdc9fd1655","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.2-alpha.3.tgz","fileCount":227,"integrity":"sha512-Dqr245V/FBH76k+UgS2Hrrl1P8YkoKF5E50yoJ8Aq/69Us3XefOVo18qag5ic59qiKrUz8poVpR1QDW1HMqEAA==","signatures":[{"sig":"MEQCIAfnJz7WV3d1KZiLkcfxj2BZ010xVZmyDgiXaYhB6b7sAiBxJjW1md3xuVUxn3Rzv042QHqXZ8FYD/zZeyENKt0Cfg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":921009},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"455864450a741ca5eb842d07929ec11f79d5489f","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.2-alpha.3_1782182238407_0.5883869912368798","host":"s3://npm-registry-packages-npm-production"}},"0.3.3-alpha.0":{"name":"persona-harness","version":"0.3.3-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.3-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"98e3c13e2882ba5654bbac8a8b0316dea467de2e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.3-alpha.0.tgz","fileCount":229,"integrity":"sha512-IT1ssR7UeNrKSZPD/Tu4ynbZWqEZd721Xe4kBDKk3UsV9omWDu2+7F+KhxUpdEeRfkfWNV1Hof7ZDYFiU5UHpg==","signatures":[{"sig":"MEYCIQDmdW2gEBNsP8per00eo4mSY5Qae2Rcl83+T+u9wDf3qwIhAMyCnrQ+ZbbJ/7k0V5R/o5q1zkEoObnZbVupIUZ2ciy6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":949403},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"3b4d3cef0d2c6fb754ad9535ab76541cca98a8bd","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.3-alpha.0_1782187241166_0.9530920156939167","host":"s3://npm-registry-packages-npm-production"}},"0.3.4-alpha.0":{"name":"persona-harness","version":"0.3.4-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.4-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"2a9da65224e72588163eda92d28f0d273166e65a","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.4-alpha.0.tgz","fileCount":233,"integrity":"sha512-NOYd89HtX+XVazsaa+xOkiw56uJVXYCwadRyf/0Ogj4xzlSwXJwJQsDB7vdrteakABkmea/6gqX+QWDNVdqWUw==","signatures":[{"sig":"MEQCIBoTRVCI9tLOjVu8UeTylfP/bR/AQh9dOiyxcx+iQnvpAiBqtvtLmRcf/Yt5Ty9YHw5P9s7G7zJD1wgp9iuypBhDSQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":959458},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"676d56687fc46e267f07cf587a26621bea45d131","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.4-alpha.0_1782188404401_0.8410903344578486","host":"s3://npm-registry-packages-npm-production"}},"0.3.5-alpha.0":{"name":"persona-harness","version":"0.3.5-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.5-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"0ae20c17bba932005f13c828faaec8569f44e88f","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.5-alpha.0.tgz","fileCount":237,"integrity":"sha512-GYWi+VUgtLdFDm9EOhUrefATT1bAHvrypc8WFsKAwaMGFbVRnOzq4188wunoJ2pTTGz8jUV75VvOByU0E/+wnA==","signatures":[{"sig":"MEUCIQCqqDeUJi/yHDE8RWr5Z0OChhiWABPiLbOJjgzIXRxXtgIgZY8dEcUni+eISkcmu6jO3Vn3NgNRFJcmyJBX8jY/Jlg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":967801},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"169471b290da5799f5bbfc2e29a5eab9128351d7","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.5-alpha.0_1782190908573_0.2863796037219304","host":"s3://npm-registry-packages-npm-production"}},"0.3.6-alpha.0":{"name":"persona-harness","version":"0.3.6-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.6-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"c7f3daf6c3d6cba52b23bebc7387c6d2b0bce5d8","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.6-alpha.0.tgz","fileCount":263,"integrity":"sha512-DDy/K+K7wZEzpT83S9fV/jAYsekxA+QSFJiTjDgt1QQkCCklehwGSyTobR5EcGYuki7KNzB4v1ikVBvVYQG0fQ==","signatures":[{"sig":"MEQCICXFSBAKwMxPKQDiJde4TIovHQ4EEP8O+WCrio/Jp8TQAiBM/hNIAwO1V3CO+ayLILtgutFYMc2Mn8s1ORr/H8+7AQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1064546},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"1c284aec156b1efd79f6dabf5c0ab5c6b5f8804e","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.6-alpha.0_1782210035123_0.8885053411046442","host":"s3://npm-registry-packages-npm-production"}},"0.3.6-alpha.1":{"name":"persona-harness","version":"0.3.6-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.6-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"5c5e68de00a27043ca78871109ab1449b934d696","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.6-alpha.1.tgz","fileCount":264,"integrity":"sha512-54SgKI1ESe38LytCOCCjz4fyXAPBUqBxdlXDz1cODrhBSOwxwaUSxzfA3ztug9b3ZxucL4qOzIyt3LYe8py+tw==","signatures":[{"sig":"MEQCIEdBQjn7nKblr5+CFCPCyTHl+MRexkub/YM7huJHiunVAiB2vMbUOF0vxl9gg+EPzBzdBmTD5MrBG1zI/pzl9vcRBw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1072272},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"b569893abd5fa91d813f1b57bce6f219f0b33747","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.6-alpha.1_1782212833973_0.4409213773215883","host":"s3://npm-registry-packages-npm-production"}},"0.3.7-alpha.0":{"name":"persona-harness","version":"0.3.7-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.7-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"8a25bf1c75094f20dace74d2ab3ba4b5202ee06e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.7-alpha.0.tgz","fileCount":302,"integrity":"sha512-CHa3iWFYpW9/DmVxZZ6r3IlD3VJZCY/foku/QUUHhlwccvBoV90I1IP+lcdkc14sX+wfeaV2IdinNqs6vjNzpA==","signatures":[{"sig":"MEUCIBy3r4O7tFT0Lghdd4iJf+sYRAaimPJxzf29dbYt7Gc6AiEAiJqZplgV7T2NqzwCEvpNefo6DpHU77tX7P4Z9TJk6wM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1147721},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"9fb5c2f92763bb79bcef8f63b9377de256b97085","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.7-alpha.0_1782265704562_0.6311531119747571","host":"s3://npm-registry-packages-npm-production"}},"0.3.7-alpha.1":{"name":"persona-harness","version":"0.3.7-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.7-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"b54f71fd5511a8c83a18270e41f8ef447a79884c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.7-alpha.1.tgz","fileCount":303,"integrity":"sha512-Ijczz9LRkxiadbmXmajLJYVyA9AcC1WLvJEHNij/Ud6scKTP7Ak10fIRAEOqusxXvNSq2bukNFOgwzQAoVujWQ==","signatures":[{"sig":"MEQCICjf2Xf4Ks16zGj1br7iFhFtzKbuBVrMQ261eDM8HzLTAiAmk262+i/pF17ABantD7jm78ShKAgfJjfDuJPZPt8L5g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1167605},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"e3b801f0a182c59dcab8ce796e95e9bbccd979d7","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.7-alpha.1_1782276177107_0.09278278753254154","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.0":{"name":"persona-harness","version":"0.3.8-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"3dc628b96a05a41705b526172b5698e530e5c4f2","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.0.tgz","fileCount":307,"integrity":"sha512-+rxVp0P4C5Es75rE61I6KPUrw5aMmTpqKfahomWB3Xw3qEDZONiNZNR0axvUiezLMWBBBQnGN+g7sbDKbhAJ4Q==","signatures":[{"sig":"MEUCIQD3Vs78UM52dTbv6nO+x9c6VRax2JNRPLV7+PJTrl5xQQIgRY3hf5kA/iC99yGBoHIDzoZaEKC5ZAJ7ZNna469TdT0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1186744},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"80e7972044399ce24649582840b93f631c77cc35","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.0_1782281867421_0.11413605816571404","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.1":{"name":"persona-harness","version":"0.3.8-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"c0ddee7f06ffd27ca713c38ea41801189e25075c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.1.tgz","fileCount":308,"integrity":"sha512-mvbJk40U9cd2E8kew8QLlzqh078xJeuRLmUyv5XPSejG0CLelmHRuaTx34pb7CFMpUJgNr52O+Wdvl7mL54OYw==","signatures":[{"sig":"MEUCIDMUilUzsPDVatnDtF9zu0FTJUnpO4GX3VInQgtdWJfRAiEAg7f/wVcJYYKUZyQ0hnWW1mNkY/aPeBvmxNCJyNsxqUU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1191017},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"9ccf2137dd9114244c50ebca6857a8d22f5eda8d","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.1_1782288215586_0.08601898229026728","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.2":{"name":"persona-harness","version":"0.3.8-alpha.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"ad49a254701584479a856dbdbf0677eb387ceb41","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.2.tgz","fileCount":309,"integrity":"sha512-dIJwYzcQHO6x9dY4Dd3p4Vz9cyZbQXghxgvgtkp3kAQJ1takkuZ+mNp4fFFhqpCgYAn/4tmETPBfLyUSS8h5rQ==","signatures":[{"sig":"MEUCIQCjcVM8gty26ZVnSV04VjEawHXC0q5NZY/gT4seEfe7XwIgQ6evc1NuPO71xFeYtLU+S1X2GlYAIK2AT7ecFAUepTE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1201617},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"ffe754458741420a0e056faf44b79be1e43a85ea","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.2_1782293699243_0.957113345998253","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.3":{"name":"persona-harness","version":"0.3.8-alpha.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"b1dd23bfbbe6f240eef5e00ea53d170d1674e08b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.3.tgz","fileCount":328,"integrity":"sha512-PMNArOlj5OQr3qHvY1n7OspL7KCc2IGmZvnf7vqkXdedtD3+5m/j+3EwDbmTRrO1M5VnNTcYBm9myZT1It29Yg==","signatures":[{"sig":"MEYCIQDykO0GzKQ+lPyBDRnH5f48abjZ9KDqXgPfx6IiWue2ngIhAP09sDV4vIPFcul5ubT0HrhAVAboez3HkOZdB4MnR+cv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1273416},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"64179e52a3e345b451542ca996b2ff899e3f1c97","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.3_1782351442256_0.9621789654771102","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.4":{"name":"persona-harness","version":"0.3.8-alpha.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"541849eb5f8a066cec343a19815524edc65d1334","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.4.tgz","fileCount":329,"integrity":"sha512-c2tXEyvKdBw4P8h3aF/ap8urYC2y6GGXyiXIL22lSfG/Dbkt1q+RzONrC5faJFXA/tvtt7C17255dcHu5LIQLg==","signatures":[{"sig":"MEUCIQD+MHtxR4QwZXUnc33UeC9smIGxcrrl0J+RkgTV0WYU8QIgHfj+jlcgYJKV+ohG1vQmEsKSxztm97pnc02G+Uw5dZY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1286654},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"46bd336be8228f03c412ca8db3523330a1d1ed02","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.4_1782361232649_0.6747111803554016","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-alpha.5":{"name":"persona-harness","version":"0.3.8-alpha.5","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.8-alpha.5","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"f2da38ce9a40daeab62151b5fd0dac8632a4248b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.8-alpha.5.tgz","fileCount":336,"integrity":"sha512-Fx1MI67MshhlnSn0G+xC+P08DCmxE4xngaW+d7feBNmD32cK0NN2ji0mpmtxYo00LYNcX4HoLiJZCYp6Oxgxwg==","signatures":[{"sig":"MEQCIGI/9PvrAXZjTm4kuVOS/RDepVUjc5Gig0E48pp/EsVyAiBzP9b1TR8g4nvXogUr+X/kYIBJT1GhuTjBu5IT0KXJrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1323661},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"d99df548ca2151995f1896ec14fa957f7bc15900","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.8-alpha.5_1782370090771_0.5730108626288408","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.0":{"name":"persona-harness","version":"0.3.9-alpha.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"4a7060fe35fb1b94ff97112f9c89914f695dc6a5","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.0.tgz","fileCount":337,"integrity":"sha512-kyOfHxQwnoVneeRuQpw0kBUWrfT8lmyxNeaGmT25xMNiqPGBuw0MQyqsqTxcDMhe7wqvcRBtqCpH8XKKGSEmEg==","signatures":[{"sig":"MEYCIQC2AtxyqByPD+BkOS2m2hct/hS5Gj5874lJ3vyJvUJ+NwIhAPAz8ko84KWDc1mQjseF9gEnmMnv+Gj1mrsP1PwfhRnP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1345117},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"4338cc51b40eb9ba3b3853e9df394373fc2b0269","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.0_1782385994888_0.2606062307874606","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.1":{"name":"persona-harness","version":"0.3.9-alpha.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"c901e24a0c6da82658ebf6800f038223d0e93de4","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.1.tgz","fileCount":341,"integrity":"sha512-pHwpnEru7iVUt0tBlzQ8P0RVRSKkIH0jW02vGEuwva4ZsWepQv8KzBCkgF/WO4YqAnRaaceoZlqMy9k+aiWHSA==","signatures":[{"sig":"MEYCIQCTNzPymr6RfbHu12gRaUTjhcCs26FaNWYAq4yjVX7QPwIhAJjwU/8x/lLtFvUEJc0w5Mq5x4Iyq3RgzXil0RLRuiWs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1360983},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"bc7eaddc678b6268be1194d7e659123f895e6fd5","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.1_1782389731491_0.45468457255679207","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.2":{"name":"persona-harness","version":"0.3.9-alpha.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"cdd6a238da82a06b59f0c9ee75f7eea2bbec1440","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.2.tgz","fileCount":345,"integrity":"sha512-yxwDsj1oB/Qrn6qeX3a/jk8CWgzIldvDpxDCvWl61EW78sOCnVPfgvlgYOe1iA+/er0+iFPNpWHYAFT3Klq/uQ==","signatures":[{"sig":"MEUCIG21I+HY/8U8d4qSkeVmd2exFVwWT6a95TJwkShOTcPLAiEAgMD/FNhCDoq9qohaEXryXvu+iG2EsSn92zWJU6mhwoA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1378257},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"ecc65560af26df78656f6135237f44cdbf9c2607","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.2_1782527335540_0.3484842329769309","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.3":{"name":"persona-harness","version":"0.3.9-alpha.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"fcd8b7da9f0568510a73f9d25a1c083a8343e6b9","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.3.tgz","fileCount":352,"integrity":"sha512-pYoBxv5dWUGqTyt8eTtLCQ7TdRWI0zzWWr08fB4Ax2qIuE0hGnixcQjuL2xfV+i4lLPPKdPrgTtnt9gDeqKs0A==","signatures":[{"sig":"MEQCIDrD478fvmXyXPNwms0XiIeGfrGbFl0x9nxqc0Juv40yAiA+aHss9slX7kTpvdPugZJG3ZnbzYNV65kMewtyJz2b+g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1424313},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"d96941f6e212bd89f62cd0d7b12853a845cc1c86","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.3_1782539659990_0.187575051086186","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.4":{"name":"persona-harness","version":"0.3.9-alpha.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"ccd638553e52fe70a194578653ac1bb84b1eec1a","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.4.tgz","fileCount":359,"integrity":"sha512-yPVXnx8ykhffPX82UTZ/wdJSiv/xv+WqHUvrDGCKy+T/YOUN1FBkhhAIIRFuBqJWV+ZN9okb9/rT8SLYfPwQ8A==","signatures":[{"sig":"MEYCIQCiFtGh/hMHZKF2SMVqWa17XM84t8ct2jFVQXNavqtcIQIhALIDzYfG6o2rakgH7bpdxA3I1rhFjOsvapvmbbZPQFDN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1491079},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"8080699a1029e2740d055cf70af8c4dbc9508813","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.4_1782617504976_0.62273440632921","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.5":{"name":"persona-harness","version":"0.3.9-alpha.5","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.5","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"74ae2103be553d3e107a7e8167aadabe89a29e91","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.5.tgz","fileCount":369,"integrity":"sha512-ajzVrc4WNmgoIWySiTrDVVKJKzHpMe//iX3t58WnuvmYgT/gj2PylqMWaZma5teN1YiuIX6q4vFaPs9Nsv6vuQ==","signatures":[{"sig":"MEUCIQC8ig8Hd7a5uiCM8rrWtO03a9VLCr56tvSZ+SAmqWH5pQIgSVKmb9o3+cpCI3sVEDi1cM4lL2eEX2GU6xbGj1imL8c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1526384},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"07d36eb3a74c68b880b812dcd755cf6a2c464637","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.5_1782646168152_0.5048004217200339","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.6":{"name":"persona-harness","version":"0.3.9-alpha.6","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.6","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"e5c8c8efa17eac8e51f49e8f65e4daa579d72468","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.6.tgz","fileCount":373,"integrity":"sha512-VaDGSqqGKt3I4Dou8FPGe0bfGi0SfKTApq6BvSgfIWSZLGqyufvNA6q0zKtfc3ZfoFvcScgxgVDzdpwkAbSHow==","signatures":[{"sig":"MEYCIQCE+y0Uan1Z8FQDmBwmzM7rhlUc7bi/J94cIckHaQJ0nQIhAOtBxVSoVIWq0zmsZdZccm3o633KZWafk/t5MsxOZHFE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1541337},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"7b090bd26068a24d2fd7da5b9b7da680847c3a04","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.6_1782651271665_0.711963991902218","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.7":{"name":"persona-harness","version":"0.3.9-alpha.7","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.7","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"85af4864892a938310c0f1f87ead7bca8cf7a9cb","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.7.tgz","fileCount":377,"integrity":"sha512-bMWf9vENqGHehV92G0oBjlDv65MA/BfdihPXr5ecPB6SMWf4JEuglUcj3MYrZ+LM828qYX0Ay/aYCdROfjeezQ==","signatures":[{"sig":"MEQCIHYWndxY2S3pce+nJHgpnMdHvio2cRbixHlZ3QfjCNomAiB8JSJdSuWo2yVf35696HWKhdika3RKYVZoHEYg1L5umw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1575434},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"56f38eb2f37d217267cb51ee347538a18114625f","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.7_1782702286211_0.6911874784716241","host":"s3://npm-registry-packages-npm-production"}},"0.3.9-alpha.8":{"name":"persona-harness","version":"0.3.9-alpha.8","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.3.9-alpha.8","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"cd26989425223b5145f190c2dfbfa5ad84e57cf9","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.3.9-alpha.8.tgz","fileCount":379,"integrity":"sha512-YRZ/h/2cQQcA75pgtzt6eUMFKD4Zqxs+sE0tL+kMCOAhwIc7of0bXb96CtwQjZ3B8If2iczw5S1NvMcV/xb9FA==","signatures":[{"sig":"MEUCIQCTSPDnFdShdwlEUoi1biAj7tEbeuMd12EeQRf+XQQWCwIgWZEBsp/H2kn9sa33EiZjGGZzHpGRtV2QAUZZl4XWGAA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1609712},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"3bb90aa50c8d1231189a5ca00665e8d5bfccade9","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.3.9-alpha.8_1782713423137_0.16648235132644396","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.1":{"name":"persona-harness","version":"0.4.0-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"c987701b4ed55324e1a555f4e31545e4d0cb3757","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.1.tgz","fileCount":379,"integrity":"sha512-lJ7EKnFBgMqD/ikxJzCL5td0Jkl3u6Unxa1N8Xt6XW8u5MEG212DG7gHgfSRbhDv8FnYAIlRzVFX35dUnuvrqg==","signatures":[{"sig":"MEUCIQCL1+LdoCE+yrGCS135fqZjGoVoXbCMX68ntQ1dOnXbGwIge4H6Ezz5ulv/0+EPMtHGEycdSuoLmeqfRebfvgm5SGc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1612624},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"981b7b75d035ad16ee5e2b7f8bec5482d19f2873","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.1_1782718906093_0.1364015561413927","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.2":{"name":"persona-harness","version":"0.4.0-rc.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"67edcd51b56b4d0a05a2ad5b11878fd7e69a5765","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.2.tgz","fileCount":404,"integrity":"sha512-DKCQOvXua92qGYpYNrPBMJtHwNwTI9MeB4mc4hTdkbJoPHMQH1avaLypmVQHx9YWMnvLVmOT0laJy9S5cBQFmQ==","signatures":[{"sig":"MEQCICkbY9iqvMNomh8FaRAIg+XR/3M3Pk620BnthM/PfEZIAiB8hOCG8831wKYAeYXfY6ncPpkNZSpkRb4t0c1YpKPJlA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1744361},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"3c9c6e7f97a6509656cca335e98b86d47807039c","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.2_1782747780019_0.8548989874392676","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.3":{"name":"persona-harness","version":"0.4.0-rc.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"22c766080a0875d42516c41964bc3391eb5d8deb","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.3.tgz","fileCount":415,"integrity":"sha512-vpTgzMNPMIn0a1m2Woz+nEBYXaznC4I89Q+wblX5tdM6Pjns5JwIjkGKaMOJXxOUNMVyPfaAtldSUGPwg9WCaA==","signatures":[{"sig":"MEUCIAFOo6NYtwQlSfFLX+2J32qqeOcIDGLpvDdvWYBJC0cMAiEAtV6EN0E7Wu9v+Va4o8s64x7/KFQjMgw29PLROZWxWt4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1793539},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"cf1204ef77dd6479af2ca65099e4bae9ffedbda0","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.3_1782783552659_0.14810996418011757","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.4":{"name":"persona-harness","version":"0.4.0-rc.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"7cecf41e5baf6ebf383ea82fd352ab0d8a686b23","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.4.tgz","fileCount":422,"integrity":"sha512-GJ5QipEjI5Br/789uejP1Y2ztQK7S9Q/y90lw5VIhhhhOTqEgoK45qZXY6FnZADRsQnSMRcKaF1lHznrnkzTaw==","signatures":[{"sig":"MEYCIQCF2LK7ZET/yG1BOtcQ/uDZgyw045k8FlgKX+dOaQV3BQIhANMTpNhe5texpJ9ah4AZHzgfItyJWXnQ7c0Kjt3f4EEd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1821641},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"c3e4c2bc2178e6edc72581a8d34aedd406be922b","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.4_1782790066142_0.4018065377892963","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.5":{"name":"persona-harness","version":"0.4.0-rc.5","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.5","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"e101c31646d2ba080481b19b9231fd30d9ac9674","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.5.tgz","fileCount":438,"integrity":"sha512-PGU0tg99CU4/IHXO49NI7fXBhF921NuyFvv2dOCcpWrMhnaKpPJiM3d7knH1HQBoqQXmurR8Tzj396mqIogHQQ==","signatures":[{"sig":"MEUCIC+3m4jTi+9Fua0arKSHRt3fy5RVMRB31lociYll25J4AiEAiiC4289/hvluZRJ3UaQvft/zfyCZ3K3YXxQP0+A7m6Y=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1902369},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"78addeb5dc992973589e7f99635fe8ca277e4ad6","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.5_1782807170535_0.8201222142417914","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.6":{"name":"persona-harness","version":"0.4.0-rc.6","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.6","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js"},"dist":{"shasum":"ab3e2074d739add4bca547ceb9a2961b409e6250","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.6.tgz","fileCount":447,"integrity":"sha512-XXFor4ZeGVvxspShJb0AG1fbYe6CwEywBvqtYR/Jgu0kEoUTDM8RB/oHSZ4Yp6m83byimPOQUdDjcj9DP5+PEA==","signatures":[{"sig":"MEYCIQDdHskDi1wg35PTto88BRY4v6CrhZpT7TtoOFtTEmQFBAIhAObZ8ZN/SYzQl4pJIC06S5JkSRzHtPEMwtajJULVZCm+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1953208},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"30ded278ab5726e4f910d94b62d131647963807b","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.6_1782827946343_0.5441704420774567","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.7":{"name":"persona-harness","version":"0.4.0-rc.7","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.7","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"9d6cb2167fbbf5aa3bdb925b4ec2b6d3652ccd07","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.7.tgz","fileCount":459,"integrity":"sha512-qcEaV8XhG/0EHcYqSSjIcuJSleomZZMf/UF9JQ9j+Hc8ZXoeR6sbINyl9zbP+S+omNZHgU0a6rLF4v15xk90gg==","signatures":[{"sig":"MEQCIHxKa0iC5sbckvVoz6gqxaC23OXTB7hql531QJzcVZtpAiAPx94TRYLuFpukejs1U3hOabz0wZ0OqtL7P8BrhfYqqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2051146},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"640b8d3833e8de12657cdebf4ff0bc2877878c6d","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.7_1782881166944_0.6901291940043672","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.8":{"name":"persona-harness","version":"0.4.0-rc.8","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.8","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"fc4de25901d4c678799ea66b8e63293dc5f46a12","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.8.tgz","fileCount":463,"integrity":"sha512-k2aEwh3BDAjVE18uPq4QikX3q+JylNdsMNW06PMTDiAdjUEfBqzuouQNDqajMe0zJkLWtU5h4nALb8v3CbseDQ==","signatures":[{"sig":"MEUCIDMPgKz5U6106MlCdD2ufXBh01aZlZtzd0k3OQlO8OXkAiEA9jIhtWKQUNGUI/FkJ/4Iteb4qMOHyUI2jEqPfS8wrPY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2102542},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"18a9bb2f4a9706e4115ffff5d9e864934cd9f0bd","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.8_1782901895617_0.08542117134911664","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.9":{"name":"persona-harness","version":"0.4.0-rc.9","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.9","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"7bd42b00d669275b0995d37ec108cbb28b8b66b8","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.9.tgz","fileCount":467,"integrity":"sha512-e1LS9sTA0je7wx9swtTD+7uT5IUbeZsfAG/TG8oU+b41ldCW581D3PothR4DXdQjRaW4jXqeyXCkUw1szHxQPw==","signatures":[{"sig":"MEUCIAlcSHlo2jiMIFAf7zEMEVDCKMkU/91GPXmUpEURmerZAiEA6cd00vN+6dd8JzGff7fC5Aczb/W4vgjv9gM3Z+sb0A0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2152443},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"fd597970877756f0523fb73ad1e093473e75a97a","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.9_1782906483278_0.4165999171261068","host":"s3://npm-registry-packages-npm-production"}},"0.4.0-rc.10":{"name":"persona-harness","version":"0.4.0-rc.10","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0-rc.10","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f00f78e578a4b89390ffb8a91c907bf5033189c7","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0-rc.10.tgz","fileCount":476,"integrity":"sha512-WJPNVOZttrPxCxPIJR3OSSot2qH8gy/Tgqnpyv83fAw88WOJnT5YyY+dIp3j59SSzzxD8aFx1E/d6R4YVJdKbQ==","signatures":[{"sig":"MEUCIQDVnP2qe7lZfeTfZE0XT3hUNMK2+IXU1wQMX/Ri4tMlCAIgBuWJAUa4yTI/mhK6VHqtyB836aOFaDYoED4e3e6ejec=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2183296},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"58f9ac255b615f40cdd8046e9a73b772e7ceae36","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0-rc.10_1782910766781_0.7675371184652537","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"persona-harness","version":"0.4.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"45e3b49d162eeed6d9bc443b5b44508c1e956ebf","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.0.tgz","fileCount":477,"integrity":"sha512-KOtCkQw7w6VjekBQVFT29jOzi4rG/AvDYI93LMunkKly/Fz9/+tsyvIdfeZKLuF0SZaf8gEH/ZUP0ly1Z0/o8w==","signatures":[{"sig":"MEYCIQDhrLWibq6MrGj3BD1kR4Wh2NBtBcH/7TDBFI6fg9GedAIhAM1RTADJ9Wui5nZfy09iydMhMHQqEfHOBBWwm68xPoRQ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2194312},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"af51e8afa3bdb41e3eb3a2abf003d95bfa7c6055","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.0_1782911712025_0.629485688734633","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-rc.1":{"name":"persona-harness","version":"0.5.0-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.5.0-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"1387ae83cd6c014821014cfdb7167de006fb6ed6","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.5.0-rc.1.tgz","fileCount":509,"integrity":"sha512-glS3fHVXcIsfVgACeftqkdgG09DTRHPZsYiUqFzJc1qaWMjpapQSK6Ane8ssDeLjA6H3bqxnfxU9NkBULmjsjw==","signatures":[{"sig":"MEYCIQCEp6bm6v9z1G5L37xYsv1u1oeDo/bu514vBkMbPrRnxAIhANxd9XKyP5PtjC56iKIHlOgDkLnj8mQFWGrNQ0mEg0Hx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.5.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2303051},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"dcc34e071d167923b8cf40be095b303ba649d3ca","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c6b548dc-c307-4d55-9b6a-27048bb1d981"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.5.0-rc.1_1782927377946_0.8675007172943658","host":"s3://npm-registry-packages-npm-production"}},"0.4.1-rc.1":{"name":"persona-harness","version":"0.4.1-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.1-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"fbcc0cc5617d616983a48d3d20b51afe74de0b01","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.1-rc.1.tgz","fileCount":509,"integrity":"sha512-TLoSVf+DI7wjN0KFaWMa2xUoTKPQO6iP7hrcAVErNlxTPB9Emwbmj0y7qyyItiaaK7O2lsG3VHh0uZfkOvOtkQ==","signatures":[{"sig":"MEQCIHJo8sPMk6+cliBhwRIv/dY9pUX80Qu/S+eiAMQ/DlxRAiAdxRw/q26rEzP6QTJ3/cxaJJF66yxkJZTZ8gRicBJsrg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.4.1-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2303894},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"9d80e9c7f63986a3223901e9fe54550e86b8b425","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.1-rc.1_1782954346672_0.36243874356461614","host":"s3://npm-registry-packages-npm-production"}},"0.4.1-rc.2":{"name":"persona-harness","version":"0.4.1-rc.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.4.1-rc.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ab59b9d7e7689cdff6f997ae956edd2c3d3ab6b1","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.4.1-rc.2.tgz","fileCount":519,"integrity":"sha512-Q7ueJAvV7pjYw7fJsFoZvgif6tElDztHL89zqS6JMK97kV06j9pgMIh6MTnb0p3jAT5E6W+w/RJMgYSdI6q/3Q==","signatures":[{"sig":"MEUCIQCaXCUzY5Z7TbC+nC1LiVEewRfH0jreLwaBK2jLNzVyyQIgfH3W7Ce5Y4gOsWW5WbhSPf/Kfiewatq09/pAUfXSuLk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.4.1-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":2363276},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"bcb5f08cc7c0c99ac07ca3e93d04b3b35b7a1f70","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.13.0","description":"OpenCode plugin for Java/Spring backend Clean Code guidance injection and local/tarball Persona Harness verification.","directories":{},"_nodeVersion":"24.17.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.4.1-rc.2_1782958878528_0.9054974697913352","host":"s3://npm-registry-packages-npm-production"}},"0.5.0-rc.2":{"name":"persona-harness","version":"0.5.0-rc.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.5.0-rc.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"a09d6e84f368befddfc7193308ac4912568c4557","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.5.0-rc.2.tgz","fileCount":525,"integrity":"sha512-bVc2JysUCeAd0lEWxh6N7xd6Vsrez/Og+HCtH/u9LcoSyfCqvIPlbeg7OiBj8T3DQFQX9WLqRX/Uf+waLr06Sg==","signatures":[{"sig":"MEYCIQD9dsHPRUJHquRXBIwgiAA3r2Hfm/OC5jDTH2bWIQLzbwIhAIcHlI8J672nD1utaiK80cgCmohcDmpreYf41lD/RrQw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.5.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3307906},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"64696dce6daf5e4501609648f3ceb9acb830db87","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.5.0-rc.2_1782982932285_0.5928862232563099","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"persona-harness","version":"0.5.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.5.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"3a7c43e4807e7cc8bd1b6c697746d6334ee56b09","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.5.0.tgz","fileCount":532,"integrity":"sha512-D+21Ie9vb2ECT+Awjx8uW6ohT2gORhN8RHsVKtnSdKJKzDdvJWdLb83iE8hq7ZSayWOzlRz8sVqR8b8Uozs/9g==","signatures":[{"sig":"MEQCIGvjx1LYURqjuCyD7IMdb/KWNpwkB2CKze+u1ep6Bz95AiBVz5tapCDoQaRXTKyehfZpqp3jvayXALPtqxYuhR/fUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3345876},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"c0f1085a5182cdd17411bd043173aabc9a76b30e","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.5.0_1783015232874_0.811195432685639","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-rc.1":{"name":"persona-harness","version":"0.6.0-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.6.0-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"5c8bcd5c1bd4165dd129e39624408672f88091ce","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.6.0-rc.1.tgz","fileCount":563,"integrity":"sha512-LfRmIwo+HDfq9tcp8wcu1ngE0D/y0sogzeiH1cGAorXqLcPTzekmvs2K5lulOdhQHjyEt+lIpFwuQ0jU2JOcoA==","signatures":[{"sig":"MEQCIGqyYbIga40C0ur1YSlf4PAEc7WQQNGKDBpxw3S1lTWMAiAXpLGBm139WZMMVeZf4Qep5WVK3+z3TU2G75L0ou9Fgg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.6.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3546182},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"b673633533a314e1a64dd6dcb18c4097c5889a2c","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.6.0-rc.1_1783072991933_0.482100379785132","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-rc.2":{"name":"persona-harness","version":"0.6.0-rc.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.6.0-rc.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"0eae3cc232e3f37de9390b0afc662a001aaa0b56","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.6.0-rc.2.tgz","fileCount":567,"integrity":"sha512-HmJplQNf896/4Sfz/FiTdJoaDU5EkMrDtxCVMU1x0LfLJzJYNDa0NGafUAgiU4zWc/IA9byDUv4+DryubMVZrg==","signatures":[{"sig":"MEQCIBsjBbQoG0T0pVaOcyRUefPfufIRj5kwf7a1vH4w4Le3AiA/BPt+N+LssJxosqtx6IgyfRh3IZ3qnQTQQ6h5Z+/gMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.6.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3589882},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"d3d5fdced355f0ac0fbed5e700d57b2aa1592263","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.6.0-rc.2_1783139667460_0.013934710241587211","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-rc.3":{"name":"persona-harness","version":"0.6.0-rc.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.6.0-rc.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ef498adfac138d9d0843406cba53acf76b34c6f1","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.6.0-rc.3.tgz","fileCount":598,"integrity":"sha512-nXImwyxON5zoph8Y3LyXqJhW1NIcX+3JvsBSFAdQlersZ8zO1KmRuRJVKB1DF87fbYxDpVyxMqFU1C6sA8HJQQ==","signatures":[{"sig":"MEYCIQDgAdOk50ORzPt7C8gvOCw20PI3nS4Z/c0W6wxavqR9fgIhAN8vSCslRnf8F8LdzbLtVvHQhEoxEcHhdzkTtK00alcA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.6.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3821899},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"e1af520cf000e805e7df6a1616906f3f9b0e4976","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.6.0-rc.3_1783172065592_0.6364275704206506","host":"s3://npm-registry-packages-npm-production"}},"0.6.0-rc.4":{"name":"persona-harness","version":"0.6.0-rc.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.6.0-rc.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"76565f6e7d244595fa338bb646ea7888d8d5255a","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.6.0-rc.4.tgz","fileCount":608,"integrity":"sha512-8oBVX1vmudoNZCJEVXNdx/lJnPITKD0cW2OGk6Bv963oibNwyo+itxYquRNr8JlDQR7RKDmcQ5XTCVlIP9weaw==","signatures":[{"sig":"MEUCIDzm8ng2p13o+jRS5/B8X+33B6qO8Y4f5iiT55bF5UA4AiEA0UEfpLF7Zlsvilnu2arDiByv9U/KtE7CTcR8ByIm1kY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.6.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3886684},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"cf6835697f47da5a2a8372d00fc47e263ee781f8","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.6.0-rc.4_1783216621636_0.9152853458165153","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"persona-harness","version":"0.6.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.6.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ffd77996263cffb858bd977edb73b03cf2820c75","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.6.0.tgz","fileCount":612,"integrity":"sha512-0dY/LqXYuSD7/G/GsALoE0RBKClikt1MPVR6GvbXRieBiSDh5CEt0JNP0RxJ8Ur3howsURYeaFQX8aRhSzKP0A==","signatures":[{"sig":"MEUCIQDpjvrbdE1imrD8bO8EyUnkd1a0OTqbZejuBEtDURoCrwIgZxdjIry+t4r8VO/zt0xTYu4+b6z8QhpKRnlgAtBSCxU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":3929448},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"13b1f1b79884e2214c0b41a735b87cdd6d65ee00","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"deprecated":"persona-harness@0.6.0 is deprecated: security containment advisory: stable 0.6.0 can treat local/forged workflow evidence as finish-authoritative, does not fail closed on malformed harness config, and can overwrite modified generated init files. Do not use 0.6.0 for workflow authority decisions. Use a QA-accepted fixed release when published; prerelease next is not a stable replacement.","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.6.0_1783224385188_0.893038479558","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.1":{"name":"persona-harness","version":"0.7.0-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"5a15c8c15abc5169a4843cbe41d12ec481793f3b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.1.tgz","fileCount":724,"integrity":"sha512-lkW9FdQ7MKUBCx//wUm0EkxA+0e17bgOt//+fHKwRsqHEtIXi2yvg9XGIPx7VoZxMsSN99Ly/p/pVWlEBXyXcA==","signatures":[{"sig":"MEUCIGO/RJwRazrapS238509ad44WNZKYhOyTmrAKDDiC1kVAiEAj4ZPe70Sf9f/SZ00vXLgER+OuHoUtNqwFiRDlSQ2WV8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4363881},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"d4d4d9acb1e4198fb2001ac81fe77f6bd9d4efd9","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.1_1783782404407_0.8179265507397222","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.2":{"name":"persona-harness","version":"0.7.0-rc.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"0d5595b697694c54ece6adfd8c5e8e77f3c2f3e3","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.2.tgz","fileCount":761,"integrity":"sha512-LJhFcJq/Hp5HcriXfz6ziLYGESbHK7slPDXbnAAHwRExys6ywMPyaU/2KO/8h0tk5KjYCMlCsVE/Q4fG+Ah5Cg==","signatures":[{"sig":"MEYCIQCUds0Q65r793KS5udqiE5Sf4/leWPNUNJblxIf8ceQXAIhAN30dv4hGKFRl8ggt08/DrH5GqiIvTcKOTb0QJA9FZpv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4489365},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"185885b7918459ef12bbea120a4261962cd57059","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:1af02e10-b4ee-4370-b083-68a27c1cc2df"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.2_1783841542900_0.24876785679248714","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.3":{"name":"persona-harness","version":"0.7.0-rc.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"9d1fb27ab86d344afcd748b66959188ea9553258","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.3.tgz","fileCount":831,"integrity":"sha512-P7ITZAhnOKmbq5RFKzTun7ruL8E4bJP1E049QcaAl3iMtPQZnQRevBfN+pE/tIBPyfNv0la5kPmQOwSADm4epQ==","signatures":[{"sig":"MEYCIQCoCXSPp/s+1okMvAZvQHvYjy4j92TAYuzGVLqaL8/3iAIhAMFg/TDPDiUp8074pbmbTjTTxkj0oAbXSp2JEXvLe74k","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":4828153},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"728e9c339463ea521fa4388a37d1c76f76c9d726","private":false,"scripts":{"test":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.3_1784010044376_0.22762276614314136","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.4":{"name":"persona-harness","version":"0.7.0-rc.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"7258cf7c35a038d7f33c96090950010ada1ac17c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.4.tgz","fileCount":966,"integrity":"sha512-o1wb21ijvqKmMTJleWzYBwthcVmQ/fluJsuj3BHcFqpR+5gN4gJAi9zmbEsyeEQX+evUepxQt80oIOpq2I/cXg==","signatures":[{"sig":"MEQCIEGhndkldAPuRNSAXwe96H5y92RAJC4wk3svrN+CLzW1AiBb+4KgbgoYDoESMU72KdD0w1rXVks7VCWdFjg/Ds+Zdw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5329177},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"1c7a99e4deea1629c5292e5fed96623a6a8b9d2e","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.4_1784267733931_0.3748482199710408","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.5":{"name":"persona-harness","version":"0.7.0-rc.5","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.5","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f93d983fd2a4cd2ff894f2fe00116a1c84cd1e49","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.5.tgz","fileCount":967,"integrity":"sha512-86pc9jf+jJ8VkQOmrBkQI7O9zXBrdPooHiNGRr5NM4kmcm+LSP6COyGHkgJ8owBD3ONM3pACPhDoFC+I5U+z1g==","signatures":[{"sig":"MEUCIQC+6IJQFCQJVt/YpYOhfogN7SwxwprHXYacAv1QYCqHagIgXuUQcKun7o3CPeY2Qk+CqGorbP5T5u6GQjykccrDadc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5334637},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"77f084002ed899fd4e58d8e6c8a75e8709db3cd4","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.5_1784280336388_0.08928281304561181","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.6":{"name":"persona-harness","version":"0.7.0-rc.6","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.6","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"3fa7e7579e885ee9446f2e4b55bdaa13b1abf80e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.6.tgz","fileCount":968,"integrity":"sha512-Gf3g0U4YZ3fmD327ruboyPCEctMITx+0X9l7iUN9IKD82jWygwxVZS+tiYvYRSAn1udYW5Lq8QwldZ+4n7mY7Q==","signatures":[{"sig":"MEYCIQDi/QRlmof2wX3KJru7cgnPLjHGJ27tA+rjc7GZbK9kdwIhAO+LiDj/f5n9dKQN2E/9R/iIlvx9rcxBJrWkxZh/2eUq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5339673},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"1c8976c58102908329f63dc78286b2646bfc52dd","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.6_1784287000462_0.4975306340157284","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.7":{"name":"persona-harness","version":"0.7.0-rc.7","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.7","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"bc7ab743bf60da438a9cd1a63dcca25f8a0c67e6","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.7.tgz","fileCount":984,"integrity":"sha512-XtS49ExdPOUMf288+BzG9R/u26OCGt8WFCNna7/XfAI/mVTziUfaduaTdzVwMg4N3BP76vjfilJi6ej2GxrjyA==","signatures":[{"sig":"MEQCIAT8BlgwoCWrxQF7EDi1jRKFZYTmqN6wjBTrndKDIQmUAiA3sUCde2ddBxzHP73jc/+ohOeOKhs/SVLFAaed+Lx5OA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5395809},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"659f7d86fcd653f49eead719b91093f35f73ad3e","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.7_1784295826521_0.941642096473287","host":"s3://npm-registry-packages-npm-production"}},"0.7.0-rc.8":{"name":"persona-harness","version":"0.7.0-rc.8","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0-rc.8","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f769f3c7ef36208700a008ba61c96d6cb9574127","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0-rc.8.tgz","fileCount":986,"integrity":"sha512-mQtHCkWeJyhMKJ59hM5SzbRN9rMWaqmaxZetujRViJdPvtIFm8lF9rZFJ2QgWv89TFQavgH4vimp7WsTnWkG5g==","signatures":[{"sig":"MEUCIEgImFvy8njTeBZZPB2S2/4yAHScTCaTNMf3p+/vk7NmAiEAiNJEVa9OkTJfq7OyTY0pg2kPOLDe0z9PjF3wytXH5WY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0-rc.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5400447},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"75b3815af678d351e8e118968e5709e891c74e18","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0-rc.8_1784303493267_0.2679729815558365","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"persona-harness","version":"0.7.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.7.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"07ab945a08e610124025330cb23efa3ff132f048","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.7.0.tgz","fileCount":987,"integrity":"sha512-PvtCxT8q++9kcRljlJrRyOuHnXz/05i5mOcGXB81VdZGP3oYplhTrXjmCzlqhXT/82RnE92O+sGzSlNLpDt+JA==","signatures":[{"sig":"MEUCIQCqLyDl4kfzIZOl5jOkofTr016xaFJBJ8Kc4zwTcdWX9gIgFzY/x0Tcjx/YDg4ib+aOOD76RJHyJI0Yywoagi/SGuU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5403815},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=20.0.0"},"exports":{".":"./dist/index.js"},"gitHead":"e0290bd1a22fa55cea1405352c2b96971ad3b54d","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.7.0_1784311659305_0.3561467025584215","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.1":{"name":"persona-harness","version":"0.8.0-beta.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"00406599435742b98325635626fc26957c3d500d","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.1.tgz","fileCount":1110,"integrity":"sha512-AUKQTRh0CNHr63JmBADYhNM6HaObfKBwgSZbI5pHxlXaHvs68BBCF68ismkN997efDHQy4dLx3ozS0QkJdwaYA==","signatures":[{"sig":"MEYCIQCMX8gozIC+Sbd6oou8okqAXdEaFdhbwiqJoLkwg8SyBgIhAOBUS/ekLxo7u/d11+NiBTy7hNQ5zr0nR1Hey1lE7tz8","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":5869792},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"b1eda56657cc19f3aabd89cc7a49c164acdf22ee","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.1_1785028999643_0.6777510585653395","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.2":{"name":"persona-harness","version":"0.8.0-beta.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"76b2718510864d0c45173435c0a06808d0427cac","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.2.tgz","fileCount":1117,"integrity":"sha512-1IpqlekdSpf2q7u3SSq/Rp/Ja+9Kv8hYWVNoHYeTWDJgyrpZgd2L7v43e6H1jI0V2qDvllBhpVZYHGGULKKJ+Q==","signatures":[{"sig":"MEUCIQD3E/lRdiCpIWmJ5/t9m3M5VBwu5g7b87NUqT6u/csKkQIgUtTq7kR/cYbuu2t4wcxI4MTYhKgbuqn07EBtSybiQ0A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6007096},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"5d962e180f484e8b6db23a21410dc080b81afce2","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.2_1785075552326_0.6020764923289914","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.3":{"name":"persona-harness","version":"0.8.0-beta.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"d91c29af368f7b6690dd08f496d6e9132dff8085","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.3.tgz","fileCount":1119,"integrity":"sha512-iB4w/QaMIjqM4uomFeesxKUBlkxbI7Ibr8xY2dNgeqbTd+iuAo1vdmAm6v0VHWcB7/8ohcq8GljIC8wLOJr+7A==","signatures":[{"sig":"MEYCIQCxO2NctZD1yQ1GhTb13v/3fuCcNN0ZjFygHyWxkpHhRAIhAL666zVJBeJwU3qO3oIbvyFLGnN6i4dXkzGe/Ptgdyi3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6016105},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"e318af49128e0c264939901694ab5ddf1cf40b59","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.3_1785082247598_0.5374451636895405","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.6":{"name":"persona-harness","version":"0.8.0-beta.6","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.6","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e78eb0d6f7977816a7cb30606701c246ae7be56d","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.6.tgz","fileCount":1144,"integrity":"sha512-ICWB92Akkk+rUMmU3zA7F+QJ/9AyxqnlmFdm8xaZ9BSBfZ41/41tvpvaoEqs2um1FKpP57LZOFcHiZbFRJD90w==","signatures":[{"sig":"MEYCIQDFt2wLSePWIMz7FqSFAVXmMPhy8rnArSktbKNcNc6hvAIhAOg6tbregr4DkTeJWxa773gt2KPaRvZtkEMW5N+04xow","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6580664},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"cccbd8307085b86a8f966c70fc474c3b874602f7","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.6_1785249137751_0.29126108513113613","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.7":{"name":"persona-harness","version":"0.8.0-beta.7","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.7","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"bfd88de98e15fddee312070462dfda84a6e6246d","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.7.tgz","fileCount":1153,"integrity":"sha512-Y1de9BQV6NBek4fKv2Ulr7CDRuTq/ngg1c4WxN7O2ArhM9zprhqp/w6fvvV9nPBM5tRtkjS/tlah1P3LJqYxnw==","signatures":[{"sig":"MEQCIHy+6FTmipQbYCyAnc6fpDXyPwSCJ7w8HJQxWimMS5eXAiB8u6zlGX9/6XZFVdLTKMNSn1YX3P7CiTEw8N1eYKNz8w==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6659010},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"e0d1822706e70f29a4981bbf0d67b01400b1e76a","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.7_1785273254622_0.6137982014568018","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.8":{"name":"persona-harness","version":"0.8.0-beta.8","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.8","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"247aa98f8c426f612518f69a38f1f5594fc3d6d1","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.8.tgz","fileCount":1155,"integrity":"sha512-oQjhZNGqHe/8LG90CSI8hzS2Up9OGpemJb7t0WglunXqdhO8vgDKbSv1kwxU9O20/J5rTGxPVVgPmwwQIRw4ZA==","signatures":[{"sig":"MEYCIQCMWC9B4fuCn/IVisdl9jCs0/rSy/vxC7ZZHpECphjGTAIhAOA4Xp5nSjz2wNam5y5uJ6oIzwWQ7XDk++Sa3yN6qw5T","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6678633},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"c13caf30f058c4112101ec3ac093c114463aa74b","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.8_1785282552452_0.13617540859725086","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.9":{"name":"persona-harness","version":"0.8.0-beta.9","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.9","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"2c6d10a3983547ceef2830c18a0844f7060e6248","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.9.tgz","fileCount":1163,"integrity":"sha512-5CAoGPsu2FdJdJGFdtIp/mYJ4Tg2VeG1sFqnI/DBqiX26szsKdGm5rpLodMe+PED7I4Xw7kOYGgab26jXLg/tg==","signatures":[{"sig":"MEUCIQCf1vfQcllcsjoz4/gMogUUCFpzEJHY184viU8w6MAQLwIgMB/prJMIJ+7pUW0KHS8b5yCFiHbm5vYU42+l755Qvak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6694567},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"5533c9618faee40052966b6eec624fe2329788b1","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.9_1785297781168_0.3012914783587679","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.10":{"name":"persona-harness","version":"0.8.0-beta.10","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.10","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8b33d8bc8d429d03e579c81a62f3b5289e9aa6e0","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.10.tgz","fileCount":1165,"integrity":"sha512-93bKT8/mRX6nszE/aetkzcenzy9b4KcdoODInPwB6AGTVumO4KML6S3Y+ewU1EGCEMScI3C7Ni/FzTe9tZmYpQ==","signatures":[{"sig":"MEQCIGRxxqWd+FTaSO22Z6CjLrjqdg+lJEUmYO3jztNL7IE+AiBgOyQX0b2KBMVGFLHGLAy5UiVtvLB5iPrW299D2h1/gA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6707912},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"f5e2301c0f0d6d8317b0ff58c83267301b769368","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract && npm run test:clean-package-boundary","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.10_1785370468977_0.5052030818492284","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.11":{"name":"persona-harness","version":"0.8.0-beta.11","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.11","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e2157a502860743743512824d228bb05c1803c16","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.11.tgz","fileCount":1167,"integrity":"sha512-JTOqemvOOQ7EyCqLvOXbfornuAJBnwAdxSMinv8TSqfEK0fpurF/XoXVg+hN4qWnZcWfPDvhKF/JdNKb++3I1w==","signatures":[{"sig":"MEUCIQCVl29FEJ7SMzVWH9HzCgQRDgS8R5cPCjHgYNjlBzD83AIgHqogR0vkD/QHOQLL9WlG5DUQ0SPs3OZMD4s/K1IXyxs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6720227},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"ab0b3d79d4a950c1f3ef85d1ba111ff9550d9882","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract && npm run test:clean-package-boundary","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.11_1785378685945_0.1878674573298289","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.12":{"name":"persona-harness","version":"0.8.0-beta.12","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.12","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"82893d5fd1ad3ad4dffe83e49347a2edffc9198c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.12.tgz","fileCount":1175,"integrity":"sha512-+LLZ55BF7jK6QJVb1ZbAlPawEICROUS9bQVfcuJ1wnp6DFH1z0QeukZmJV52H5G6pPCQje3YahPUHefFwhVjxA==","signatures":[{"sig":"MEQCIA0lfO12nSFE2Jx7hYOYzbR4nUaikcy8UWIQhAcD+KIJAiBYCK4EfMbp21qwbwg1rYKZohTBRFQApzcolz2//iC52A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6747710},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"b4160a1835449489c63e65435341185afeb4bd21","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract && npm run test:clean-package-boundary","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.12_1785386100704_0.3249464005673024","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.13":{"name":"persona-harness","version":"0.8.0-beta.13","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.13","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8b17953979b3e34446a53649b93396dc1bae3351","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.13.tgz","fileCount":1177,"integrity":"sha512-MNtCsN5f2YT1z4FCZT04Yl3yu7YjstdAhCeb8DYZs9xHgRJ99jNaamIbT9DqI7zqbiacacku3Fefz83/qpQYmw==","signatures":[{"sig":"MEYCIQDZNF9WKB2gPxt7/ONJdLbFA+yZWPiVJwGZDQ1PLSvhLgIhALKzkpvSqbxdS82z5+oZiQZushuL41CUjLf3M+BXJBxu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.13","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6761395},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"73e8654ce3307a6be7fb511e0c1f67df93c7d1b3","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract && npm run test:clean-package-boundary","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.13_1785405137655_0.5990340940453505","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.14":{"name":"persona-harness","version":"0.8.0-beta.14","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.14","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8919a21dfbfce87be413aba9808ba5f8cc73aa4b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.14.tgz","fileCount":1179,"integrity":"sha512-4gecsruAy2yuXtsrbKMImznrWcnEqLIBH52rYHAoy+KQRprM6gn0T92N06mCQaMv22Cq41MX9+IujqCQVvOKCw==","signatures":[{"sig":"MEUCIFXBRGEES5zxO69vji0QSNyckA/YtR3IGwN7cFtr1C2fAiEAma/NQB7XJBdMjbOvEdqIT40+o/UQJyalWRiSh4PkZIg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6776278},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"543e7e6e04dea577df07f2dfb2a045d4d97bb4e3","private":false,"scripts":{"test":"npm run test:package","build":"npm run clean && tsc -p tsconfig.build.json && node -e \"require('node:fs').chmodSync('dist/cli/index.js', 0o755)\"","clean":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"","prepack":"npm run build","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:installed-package-contract && npm run test:clean-package-boundary","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.14_1785462112792_0.3451119786367416","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.15":{"name":"persona-harness","version":"0.8.0-beta.15","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.15","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f9b70d48c21cb5f8b1b285a282d6bdd08a10b2bb","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.15.tgz","fileCount":1182,"integrity":"sha512-MYg7LJVqwKjbDw1qDn+3MSJbiwIFCQUx6TFW/UoOc4rdB2kyRi4AD8xsISQ/vwnxNsWscwF7XdUMobbP0+ylHQ==","signatures":[{"sig":"MEYCIQDBhQZeZYQqO38QKu1+wC/IZsKLur9OZI9BfBxBKA7WtQIhAJqhmW4+HJtK6HZALyJ5ZeMFLGXZjqxMBqN+G6JpGZsY","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6798420},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"9c39c45cdeca849edf24793187df58088ea89bcd","private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.15_1785595462907_0.6649376657979782","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.16":{"name":"persona-harness","version":"0.8.0-beta.16","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.16","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ee66a8c132a11b4617fe0be8c9432cc5903c7c64","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.16.tgz","fileCount":1191,"integrity":"sha512-azQHYRhYPIpe100y3cvW8nFSWx4O7r+hYQ+WTR+guBxQAEWpi5KYyVwmptz1xWddsBcGW6vKH52ZOaGY2pRN7w==","signatures":[{"sig":"MEYCIQDWUDDOg9xzDZj/H7zdCHw27OzkhJwzeJn9ymPD6YCpXAIhANGJwCYrIxDgc5dCij/fTTeWKUXzzhrDfLozNGhGdtKR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6856158},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"0db29f0ba24385ae94779ee05597b41fbd14293a","private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.16_1785603805661_0.6106945812347495","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.18":{"name":"persona-harness","version":"0.8.0-beta.18","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.18","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"37beae7c59ca0e2d73fec2bd8c0f98d32227a117","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.18.tgz","fileCount":1210,"integrity":"sha512-7/wkh22rmxOGLOKRHkhLtukuclGh6ZJXUeS0RdhaxBcij8dImn1yNRhWssQslaaUL+Ii4g1qLU+TQBoLU8FF9w==","signatures":[{"sig":"MEYCIQDTKx8C3HN5SIum7xv1mCNHKpl2Ex9q5BiuBtu2JNfa0wIhAPOub2SzwT1ZhpgkyJ8rafM+i9Bsmz5aa1mZ2byuPbvJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":6997749},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.18.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.18.tgz","_integrity":"sha512-7/wkh22rmxOGLOKRHkhLtukuclGh6ZJXUeS0RdhaxBcij8dImn1yNRhWssQslaaUL+Ii4g1qLU+TQBoLU8FF9w==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.18_1785629497079_0.35158330821414574","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.19":{"name":"persona-harness","version":"0.8.0-beta.19","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.19","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"c45f28d23afd14381ec9b4907465bb61eedad5fd","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.19.tgz","fileCount":1215,"integrity":"sha512-mOxAhJLSCCU8tlVzl3zkKHc4y6/AypNfOhdSxLwxPMHzr7GGltRFALAq7pwqHXAxHVwdOQNKb+taMQTiQH/EKg==","signatures":[{"sig":"MEYCIQC5UsSqpgwaadR8Ggo6sHWfzyEVS2COPJoA1eLcfjf/JwIhAMUdMi7mpdpVPuT8NF9RItEY/RpPSsQwWK4OGi2D0C0V","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7029154},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.19.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.19.tgz","_integrity":"sha512-mOxAhJLSCCU8tlVzl3zkKHc4y6/AypNfOhdSxLwxPMHzr7GGltRFALAq7pwqHXAxHVwdOQNKb+taMQTiQH/EKg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.19_1785647585868_0.9292491726027234","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.20":{"name":"persona-harness","version":"0.8.0-beta.20","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.20","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"9eb588401e435901a671c71240780b800f95568e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.20.tgz","fileCount":1219,"integrity":"sha512-LsoawJbA9d6IJz7vCNzCzBo+4VZXq5QMAnqKgE9JvPqIrNzZpGn6VfsiK5HDZYz34ah3vMzoMx/da/zeNNN7Vg==","signatures":[{"sig":"MEYCIQDHncO9C4h826gHrjrt+nlvhKs9QJhUoRHXeQSXmVLtGgIhAKfdTSgM8Ir2vW81/rJ2A2XUOwOu3sOLnkRaNt/+gFxF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7058758},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.20.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.20.tgz","_integrity":"sha512-LsoawJbA9d6IJz7vCNzCzBo+4VZXq5QMAnqKgE9JvPqIrNzZpGn6VfsiK5HDZYz34ah3vMzoMx/da/zeNNN7Vg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.20_1785657970672_0.810134828166136","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.21":{"name":"persona-harness","version":"0.8.0-beta.21","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.21","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"be603b02588f94f82f4c00a54b7f5b5f84fc0892","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.21.tgz","fileCount":1223,"integrity":"sha512-iNnP/cfYii0rAn8983vDwtM3fTWhd/y1SaK1s5SxgYOP5mNV4JhiBpUXkXZMDq+NMDuLqRjNlWj8wYLTNKcN8w==","signatures":[{"sig":"MEYCIQCcVs+ty0h/iLnWQ3SQpPsRXh+dr0IA7ZcMSCBc5EYwAgIhAKz2ogeH7C4dObAYxlQqd9Igtu4bJ7+RlqahuKpQGftd","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7091156},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.21.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.21.tgz","_integrity":"sha512-iNnP/cfYii0rAn8983vDwtM3fTWhd/y1SaK1s5SxgYOP5mNV4JhiBpUXkXZMDq+NMDuLqRjNlWj8wYLTNKcN8w==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.21_1785666164123_0.4557769545446071","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.22":{"name":"persona-harness","version":"0.8.0-beta.22","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.22","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"6af7ecbe6e3374fdad72f6707c668157b3ba8b7b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.22.tgz","fileCount":1227,"integrity":"sha512-Z5SW5uwTtCgiiJjciWARazrv2KcvCALP4AUik8jsmzq0xvTjZyHvGI3jgJ6jrLTZhmEZsczAxEq5YLrBGqxUNw==","signatures":[{"sig":"MEUCIG/0ooNNFjvR7zJg3HX7+Y75jtmsX9h3D9B/dhz7twwaAiEA8uN/HavVCKkRSY9kPBvnEY/gvfQtzQimSaMjmXx69Cc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7130073},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.22.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.22.tgz","_integrity":"sha512-Z5SW5uwTtCgiiJjciWARazrv2KcvCALP4AUik8jsmzq0xvTjZyHvGI3jgJ6jrLTZhmEZsczAxEq5YLrBGqxUNw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.22_1785674331721_0.02454419363644833","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.23":{"name":"persona-harness","version":"0.8.0-beta.23","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.23","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"a3dbc62ca037e414618ae98d8926f4947740fada","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.23.tgz","fileCount":1231,"integrity":"sha512-cefd5anWWR+dILzxj8v+ADxFZC8okDM49IjdqatYNfovoepi+iwL9Ow6+dvFssVw/i37/4DWALNsAijL09dFKQ==","signatures":[{"sig":"MEUCIFdl4I+5D/R4V87qRg3hVk0OTZspOgLyWsWWM/k6fFnbAiEAlp91vj3orYBGICm1tLBpYH8wIc+uuZcS/dT85kbRHW8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7172253},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.23.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.23.tgz","_integrity":"sha512-cefd5anWWR+dILzxj8v+ADxFZC8okDM49IjdqatYNfovoepi+iwL9Ow6+dvFssVw/i37/4DWALNsAijL09dFKQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.23_1785719459966_0.7947083652583804","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.33":{"name":"persona-harness","version":"0.8.0-beta.33","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.33","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"03e4c5585392c87a2e2b28a3c7a1a278d6a50d05","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.33.tgz","fileCount":1280,"integrity":"sha512-JZIKOhqb+Jx9IiDz0gJhDUmlE88rp82Iwdq2jA+0GzWsfFTXhDZUxHwk3j8nKcRS+jKZvCW/x1DHKQOb3IAWPw==","signatures":[{"sig":"MEYCIQDV426ur8G6yhps2aIiM/X0Ra4YJEoADftNOiYvvVwtzQIhALHozlpKyyGe5ksEucPQCbB/kNjvozV6twm7vdAMcy6z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":7678242},"main":"dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"gitHead":"1d05e0592ce84966eb97a4e5ec230dd1548f00f2","private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\"","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"black_bear","email":"jyt6640@naver.com"},"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"10.9.8","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"22.22.3","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@ast-grep/cli":"0.45.0","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.33_1786204541860_0.8581350292441488","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-beta.34":{"name":"persona-harness","version":"0.8.0-beta.34","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-beta.34","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8a015009c23de544f8792ecad100d1400fe57f1c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-beta.34.tgz","fileCount":1284,"integrity":"sha512-Z1oaKQ4N9i4JaZa+ZhmBvw1PHEBxWETG7ceXUuxGj9eJdZODISDYUxfwhqmbRXswIXCGlXGUiQjDMkcWTgrMSQ==","signatures":[{"sig":"MEUCIQCw/2QMZGO7V3dQwoQQc6W0DsKrDE5hnK2YwoaitMwiIwIgMT5FwFp4JArUaxGmrgBgLImk75qH3sy6m6h/r1aLGW4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-beta.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7728228},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.34.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\"","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-beta.34.tgz","_integrity":"sha512-Z1oaKQ4N9i4JaZa+ZhmBvw1PHEBxWETG7ceXUuxGj9eJdZODISDYUxfwhqmbRXswIXCGlXGUiQjDMkcWTgrMSQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@ast-grep/cli":"0.45.0","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-beta.34_1786236334712_0.9235343024896829","host":"s3://npm-registry-packages-npm-production"}},"0.8.0-rc.1":{"name":"persona-harness","version":"0.8.0-rc.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0-rc.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"5a1916ec7815fb99578254eed035f1a4c9f7dfb8","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0-rc.1.tgz","fileCount":1288,"integrity":"sha512-Lt6qmucSks31EgBeD5Ztwp6cRY+z4y6+NLIPY8Z2a7Qreew3f/zBSKpEuiluY1n7S+OrHckzGFPpycb0oATFRw==","signatures":[{"sig":"MEYCIQD+TT+G9u5MnWxifey7i/j8ENj6bqXyGPgjcb7hbw6GzQIhAMzC/Y/9Thn5iTWv9Dnu5IHfmWUqihtpMa6I1dGYxCeM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0-rc.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7787135},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-rc.1.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\"","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0-rc.1.tgz","_integrity":"sha512-Lt6qmucSks31EgBeD5Ztwp6cRY+z4y6+NLIPY8Z2a7Qreew3f/zBSKpEuiluY1n7S+OrHckzGFPpycb0oATFRw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","readmeFilename":"README.zh-cn.md","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@ast-grep/cli":"0.45.0","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0-rc.1_1786255571474_0.40243667814127493","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"persona-harness","version":"0.8.0","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"affa5e504247235d18c703fb09c96a86a2c80da9","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.0.tgz","fileCount":1292,"integrity":"sha512-LM7I/TIY+h3iWiwncWgT85MKId5iR8n04tYOuE/79ThWSBJmqJCCzuGyFsKpAlCXLiNezhcn2Fh9xXWKiYL5dA==","signatures":[{"sig":"MEQCIF9fM4BinPD/tJ9XG4Ch2/qD6uHBZuD7ShBTQqMAGqVmAiB6yUcLmPtrFqnLlDqpE+3KnuTfngVflsNU03XzcbNHKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7838481},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\"","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.0.tgz","_integrity":"sha512-LM7I/TIY+h3iWiwncWgT85MKId5iR8n04tYOuE/79ThWSBJmqJCCzuGyFsKpAlCXLiNezhcn2Fh9xXWKiYL5dA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@ast-grep/cli":"0.45.0","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.0_1786257890009_0.9580696042043706","host":"s3://npm-registry-packages-npm-production"}},"0.8.1":{"name":"persona-harness","version":"0.8.1","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"cde1de4a1cbd00bbeff5b8fde269b15859fd689a","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.1.tgz","fileCount":1296,"integrity":"sha512-LmO79VC+JR2J0fCyLtO7iDe187v+7Bj0UrPiGO43ZtxqN3ltiXSgE7OKOG0IhxHIP/TyKtfOvhu2FH3FEi8WBA==","signatures":[{"sig":"MEUCIQCR5err1pSA6ob7o3tEsbjB/fIN4y0MLwNdgNNXp2I/FwIgNHcmVZRSxoAuahYslND6w+4vEhyGL117onNjs89uYqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7898719},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.1.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\"","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.1.tgz","_integrity":"sha512-LmO79VC+JR2J0fCyLtO7iDe187v+7Bj0UrPiGO43ZtxqN3ltiXSgE7OKOG0IhxHIP/TyKtfOvhu2FH3FEi8WBA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring backend workflow evidence, completion checks, and optional OpenCode runtime guidance.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappy":"7.3.3","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0","@opencode-ai/plugin":"1.15.13"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0"},"optionalDependencies":{"@ast-grep/cli":"0.45.0","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.1_1786270281196_0.2559732393097134","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"persona-harness","version":"0.8.2","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"507a0f7fb3a46d8fc602d5deedae0fcb7aef75fc","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.2.tgz","fileCount":1327,"integrity":"sha512-2DUqpknARW97VNXLPWCFgDbnkScj8LMMRsIfTtxKEiJmPL4cxZo1tPDIKwMswaBxvn5UEX2apuldNHua5GhtsQ==","signatures":[{"sig":"MEYCIQCwGYnz2pfMk7VPAhQcRxKCgmaM/DB3WPfxn/Kg3E9zzwIhAIECrHN9pE3+AYOKbP0l/ax5b4EPA5BPSaMvQrVk4ExD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":7926441},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.2.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.2.tgz","_integrity":"sha512-2DUqpknARW97VNXLPWCFgDbnkScj8LMMRsIfTtxKEiJmPL4cxZo1tPDIKwMswaBxvn5UEX2apuldNHua5GhtsQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.2_1786335967812_0.08211678641293263","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"persona-harness","version":"0.8.3","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.3","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"55ca1a4c05bfe96f2b29b66b7146bcdf35562446","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.3.tgz","fileCount":1336,"integrity":"sha512-Ez7m+XV+MqLDUvAUQq9sfi/+VCD7qc6hIsoGvWib4gs3g+J/RxM5AEhd7ed2g7ow81dmxT/rQZdGQMuPgi833Q==","signatures":[{"sig":"MEQCIDaDMqK7rAgJjSVoYnrh1YfLlB4ani8hYjj5+AGlkSYmAiAtS6JT8+whWRK7z79V7PWwsGEnCEJzJYnGZbOeozaiaQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8019511},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.3.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.3.tgz","_integrity":"sha512-Ez7m+XV+MqLDUvAUQq9sfi/+VCD7qc6hIsoGvWib4gs3g+J/RxM5AEhd7ed2g7ow81dmxT/rQZdGQMuPgi833Q==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.3_1786428882287_0.9375847272837057","host":"s3://npm-registry-packages-npm-production"}},"0.8.4":{"name":"persona-harness","version":"0.8.4","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.4","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"29c7b0e3e6312238df9dbb2a5ac4939a2d62faa0","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.4.tgz","fileCount":1340,"integrity":"sha512-J6ls8Y+h1YquSVM+T4zuTm+jo+xH9u6m8SW8vRvDqFvXudCoqBCiJ/xdDDjJku4G99P5YzoUOSWLBsPiSa3pSw==","signatures":[{"sig":"MEYCIQDEB5mnJBSBif9GIqmK+yek+nKWgfa0w/Mh12YafZnglQIhAO7InyhFrvGTkg+1oEwHBOg036ERs2fp78rGKBbqRWsl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8087485},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.4.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.4.tgz","_integrity":"sha512-J6ls8Y+h1YquSVM+T4zuTm+jo+xH9u6m8SW8vRvDqFvXudCoqBCiJ/xdDDjJku4G99P5YzoUOSWLBsPiSa3pSw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.4_1786441487631_0.39450156984260554","host":"s3://npm-registry-packages-npm-production"}},"0.8.6":{"name":"persona-harness","version":"0.8.6","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.6","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"4e2b8d5c018f7a406a797464435f72b3a0e823e3","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.6.tgz","fileCount":1365,"integrity":"sha512-Wm3gmsM3l86271G/CkvlTKPj0a72vuH9BfcFtSnic2tZjVg2hzoMH9ethLW/MepvGQ4wxt4VuVXF0QsQ0Hi9qA==","signatures":[{"sig":"MEYCIQCQ1oBJImVJjeZk/bwBWTX5GTRQIqk6CWAU1GWmWTzKFwIhAOnWeF+ehq25SWXZpCi6zy7NaBXtRGeJk3FF3e74hvCR","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8288682},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.6.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.6.tgz","_integrity":"sha512-Wm3gmsM3l86271G/CkvlTKPj0a72vuH9BfcFtSnic2tZjVg2hzoMH9ethLW/MepvGQ4wxt4VuVXF0QsQ0Hi9qA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.6_1786540056736_0.834814056935469","host":"s3://npm-registry-packages-npm-production"}},"0.8.7":{"name":"persona-harness","version":"0.8.7","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.7","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"819d50099a9e256568c529d7fa51e0e333be55b0","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.7.tgz","fileCount":1393,"integrity":"sha512-rsF5D0Mv/M0IdD0to+VOxtblpLFu1JRinyk8AEjBGFbjw+a6uuWI1rvlFXK2PIXBXGSYhoxfE7d+bicc9qr0YQ==","signatures":[{"sig":"MEUCIQDECTaXjWfWT7cW9cQj9J/qG6fwVBMZRoEi6C00r2u9NwIgRuCiaXGiMkhVGTvc4xohHrpkmRov/ciVfjxVlB+4I0c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.7","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8383572},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.7.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.7.tgz","_integrity":"sha512-rsF5D0Mv/M0IdD0to+VOxtblpLFu1JRinyk8AEjBGFbjw+a6uuWI1rvlFXK2PIXBXGSYhoxfE7d+bicc9qr0YQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.7_1786608881894_0.8670432520773417","host":"s3://npm-registry-packages-npm-production"}},"0.8.8":{"name":"persona-harness","version":"0.8.8","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.8","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e4a3f2413e3e88bd07f321e58d8f7fbcd8cc9431","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.8.tgz","fileCount":1400,"integrity":"sha512-Hl6+7qQI0TFOjB4Ov3mqoKwTymAXNaPC7JY+3K+D8n2VmCcMK9s39HdoKUZcQvtenFuqcWZd4MPQj/Pm0d/mXw==","signatures":[{"sig":"MEYCIQDYMjwVl3/PPUMo3yORoGmJ4QLxsNQ8dOJS6LtbKBY0uwIhALeM2WW8fsjY4buaLEET4EAbJTJbpUvzjyt4uCc9wEfw","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.8","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8448188},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.8.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.8.tgz","_integrity":"sha512-Hl6+7qQI0TFOjB4Ov3mqoKwTymAXNaPC7JY+3K+D8n2VmCcMK9s39HdoKUZcQvtenFuqcWZd4MPQj/Pm0d/mXw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.8_1786697849177_0.3440888211553428","host":"s3://npm-registry-packages-npm-production"}},"0.8.9":{"name":"persona-harness","version":"0.8.9","keywords":["opencode","plugin","persona-harness","java","spring","gradle","clean-code","ai-agent"],"license":"Apache-2.0","_id":"persona-harness@0.8.9","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"02f84345eb862d68d9a8bb7d41518288bf607256","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.9.tgz","fileCount":1404,"integrity":"sha512-wGyO5bPxSowk5lWDMG3CrI8kdskqvyIidvcVBgLumRH9wIng7aM1WucYrzdIGph9EKsATMB2Bm67HitjGA47Lw==","signatures":[{"sig":"MEQCIA/KwpdUEel+dRU0ZLy8ZnAjOGi9Xx5wZKIeXcK5hP1gAiAm/heUxb86Y1+rAbLC6Nu6dfiQ5OHTX9mmvfUfUgnmFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.9","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":8503804},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.9.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.9.tgz","_integrity":"sha512-wGyO5bPxSowk5lWDMG3CrI8kdskqvyIidvcVBgLumRH9wIng7aM1WucYrzdIGph9EKsATMB2Bm67HitjGA47Lw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Gate-first CLI for Java/Spring workflow evidence, completion checks, and optional Persona-owned advisory skill routing.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.9_1786962907527_0.2747984599248181","host":"s3://npm-registry-packages-npm-production"}},"0.8.10":{"name":"persona-harness","version":"0.8.10","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.10","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"16bdee99b30a3778df5703925db9ede75fe10ce5","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.10.tgz","fileCount":1409,"integrity":"sha512-VaMaZTpCN1AYqB17wO6yk2nxp2CYthmNfhiqsj/FSprtA7Kgvyg2kdtoM6UdftSx8SiNP3acurKqNZE8Jjwvjg==","signatures":[{"sig":"MEYCIQDj4h7vASIA2lAupN2GR+iqypNcHPFqNWxv2X9hQc1a8gIhAKizRhWYMdbg1AaCHlLYJmse8uSAm38ZRnoyhQ24xp80","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.10","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9493492},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.10.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.10.tgz","_integrity":"sha512-VaMaZTpCN1AYqB17wO6yk2nxp2CYthmNfhiqsj/FSprtA7Kgvyg2kdtoM6UdftSx8SiNP3acurKqNZE8Jjwvjg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.10_1786971107450_0.1575309567481904","host":"s3://npm-registry-packages-npm-production"}},"0.8.11":{"name":"persona-harness","version":"0.8.11","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.11","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"bdf28f49fd53afbcadff1f244f9187126f6c87db","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.11.tgz","fileCount":1442,"integrity":"sha512-lt19sO+MARr/m5QT8nSp7CXurdQvx+Qdz0exg9D9wQJxboD0CiiwVVToplkp9TpUREKmbko9BTSRtaQsJclTpg==","signatures":[{"sig":"MEUCIQC3bMRQIVB5bLgPIzz6/zfZ5bbkKQtAGAX1VvyyfDtxBgIgfQri6LtX/8cbBi0Tk8C46m+S2tRXvdCkAh81/MO/HAs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.11","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9700132},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.11.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.11.tgz","_integrity":"sha512-lt19sO+MARr/m5QT8nSp7CXurdQvx+Qdz0exg9D9wQJxboD0CiiwVVToplkp9TpUREKmbko9BTSRtaQsJclTpg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.11_1787178488392_0.5922188343329906","host":"s3://npm-registry-packages-npm-production"}},"0.8.12":{"name":"persona-harness","version":"0.8.12","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.12","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f8c7faff2be31b13393f96a5c8fec710cb2cb27b","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.12.tgz","fileCount":1446,"integrity":"sha512-a6soINOH0DPPuTpCyKX401pWlh/RUQzG5ypIfYglpu1VP0G8TqpbZmH8y3ATODaGCuc7kaaYRAM+ls0edG64/A==","signatures":[{"sig":"MEQCIGmtuAYWBLbrmFq2qe7ZmlATw2ECZby13mdvjQdMP9V7AiAoNdQIIVxmZRkaRGFwum0sLNu3yl61PmlMQzPJbPX9hQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.12","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9767201},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.12.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.12.tgz","_integrity":"sha512-a6soINOH0DPPuTpCyKX401pWlh/RUQzG5ypIfYglpu1VP0G8TqpbZmH8y3ATODaGCuc7kaaYRAM+ls0edG64/A==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.12_1787199406348_0.6285867711951267","host":"s3://npm-registry-packages-npm-production"}},"0.8.14":{"name":"persona-harness","version":"0.8.14","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.14","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8ff94fa130b9b1a38a7e9ca9f44706f40cb08d1e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.14.tgz","fileCount":1454,"integrity":"sha512-koU+cefh3MLthOWAu4uHOYZTzZeQaRMJ4sq4zQ4wUAey/3hdQvDYbaJNuDnh8TgiZLIlK5uaMigoXpU08dr8ww==","signatures":[{"sig":"MEUCIQDy0zAGkeuaDYGjBRVPS7PXuZPhdaE0djcsMKyYq1wx2AIgerZsaVADc/OmeeRXyUvTqEJEEkHuMNIZJt3vhzMTcdQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9893087},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.14.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.14.tgz","_integrity":"sha512-koU+cefh3MLthOWAu4uHOYZTzZeQaRMJ4sq4zQ4wUAey/3hdQvDYbaJNuDnh8TgiZLIlK5uaMigoXpU08dr8ww==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.14_1787216254636_0.6019393524308347","host":"s3://npm-registry-packages-npm-production"}},"0.8.15":{"name":"persona-harness","version":"0.8.15","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.15","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e461a8f5b628c3598713235d0c292ef525d09be2","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.15.tgz","fileCount":1458,"integrity":"sha512-xhjl//1qetXvdC2uPjdp8s83U+r1Clqb0JuDGhZfThoQpKXGCbLb9mOdWFEBKOijZG5OliIJlDBkX6km9J4x5A==","signatures":[{"sig":"MEYCIQDchqTolSP+zfEE3y+gQGOsQRDhUoNRt8JQQ0XKtwKj4QIhAIjbKuTiRJTvpf804S++oWRNIX8DUTFFMf8/tGvfbz8t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDsj0LCvVH7tnlSfftcJua878c5tiIwNx1FJ8knu797xgIhANygehVISWP281CArgMuLfl4NJKIj5T5q1HUMleu3KgP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":9974209},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.15.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.15.tgz","_integrity":"sha512-xhjl//1qetXvdC2uPjdp8s83U+r1Clqb0JuDGhZfThoQpKXGCbLb9mOdWFEBKOijZG5OliIJlDBkX6km9J4x5A==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.15_1787317262737_0.6703601383279958","host":"s3://npm-registry-packages-npm-production"}},"0.8.16":{"name":"persona-harness","version":"0.8.16","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.16","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e8297794d7da99f0be01de33e5b24287a803d551","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.16.tgz","fileCount":1462,"integrity":"sha512-XwNFNhm3ClPq4LKxdl6A17F1n8d4kR/uglxN+z0nLZWIBhnTsultBKJHusIXAK7DuFolXdpCFK6812GrZERoxg==","signatures":[{"sig":"MEQCICQcO4dfvDsBu/2y3CeWPF+DLb9vHtqZVheCkUa1rLKwAiA9d6QG88jS2CpZeRl/BCFM4yKi7odgJjNareKLJuSsMA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDm2yzAjYpCpkFJMbRcpRCi0DIsC7f75xGrG/yKXTEsxAiAPdK5dZCjnj9MQAyXcpvtejEo98bYnOkBMIWb+jzZcsA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10036118},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.16.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.16.tgz","_integrity":"sha512-XwNFNhm3ClPq4LKxdl6A17F1n8d4kR/uglxN+z0nLZWIBhnTsultBKJHusIXAK7DuFolXdpCFK6812GrZERoxg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.16_1787328491073_0.924418296336462","host":"s3://npm-registry-packages-npm-production"}},"0.8.17":{"name":"persona-harness","version":"0.8.17","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.17","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"4b990b3c410480cc0223e4ce2bced64ebeeb6698","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.17.tgz","fileCount":1469,"integrity":"sha512-Sk3umnstf/mbO8NO4UYPVZLclnD1P5xHWq4GY1bsXTEZULdZdgdAndzHaUB2GZhG4rprdz3IV/4VeJSJG9y6Tg==","signatures":[{"sig":"MEQCIBwyeHl/0f6Yqr6Oauvlz7DQjJORwfkDeyYLEnRswtV9AiB/fme50E/mt569LBSh9VeDOm8ftEvMeoRtpzbfjGG7cQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDfy07KNehnRoxpKXPjWQNebT8nStKrT25BU2HClsRlcgIgLiV1w0Tv8nDX1UcvizNOI5avYbfk7p/YNCY+Xk4ktk4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10100650},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.17.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.17.tgz","_integrity":"sha512-Sk3umnstf/mbO8NO4UYPVZLclnD1P5xHWq4GY1bsXTEZULdZdgdAndzHaUB2GZhG4rprdz3IV/4VeJSJG9y6Tg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.17_1787337892861_0.3884726833908916","host":"s3://npm-registry-packages-npm-production"}},"0.8.19":{"name":"persona-harness","version":"0.8.19","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.19","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"e53054a25dd477b00c3534ef436ed4043ad62b4c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.19.tgz","fileCount":1477,"integrity":"sha512-mtIjQ2uj35r4RTdsQgXR0aFNsz0hlAI6T6WulkVt48ck/FtwWqBujmlRINkvi/aqaoHxwpjsE7NKnzsrtZautw==","signatures":[{"sig":"MEUCIDJCfpPzsU2kxm14KoBGr011xTb2YFxu57Wqjn4E41ogAiEAlTCjQkncw29jrTM7vV3ZBhGBTgT9TJRmF/9Drb9LBKQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHkQ5XqVyMtcZxBJpFv5L9802uOLf7gY566vUkA/T2zYAiEA/lJkJDBiLpE52TjL0ZsznqOwhNKYL2JnVqCRwvcu1H0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10226638},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.19.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.19.tgz","_integrity":"sha512-mtIjQ2uj35r4RTdsQgXR0aFNsz0hlAI6T6WulkVt48ck/FtwWqBujmlRINkvi/aqaoHxwpjsE7NKnzsrtZautw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.19_1787347095597_0.5508806529521661","host":"s3://npm-registry-packages-npm-production"}},"0.8.20":{"name":"persona-harness","version":"0.8.20","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.20","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"1645d00fc2e5290387cbcbc57aef9abc15c10af3","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.20.tgz","fileCount":1481,"integrity":"sha512-N7czRJAkPFuoXVT8u4mFeQld+cJ4b30Eowpzge0KiuXmwUQLRyd0LfN2LY0yAS1vUe1M8QDyQLcDyWTInRZk0w==","signatures":[{"sig":"MEYCIQD12N2UKBw9bshCw1oHqJrga8ZLask1xNsmaBdEswxgYQIhAKKT78UGEhNic0nNJsp1UND5heOSociHuaGRH1PrPCOs","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD7HFPmg5hosYuKz0OG+GFR30eePI9ZtcjitJgfQoQugAIhALp4xLfte63/fjI5bFI9gr5DM9myU1SMTcx1QlxokLY/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10291791},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.20.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.20.tgz","_integrity":"sha512-N7czRJAkPFuoXVT8u4mFeQld+cJ4b30Eowpzge0KiuXmwUQLRyd0LfN2LY0yAS1vUe1M8QDyQLcDyWTInRZk0w==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.20_1787352259127_0.47307702659533213","host":"s3://npm-registry-packages-npm-production"}},"0.8.21":{"name":"persona-harness","version":"0.8.21","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.21","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"280b3fc3e9e3a9600e8f311f59d7e93b83ebe41f","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.21.tgz","fileCount":1485,"integrity":"sha512-/zfy+TGFBfgo0Rr7rTbReFI6j2M3RF2wNRoKx/ZFW62m3fxtOXRQjeEgL2BNtR8gzk0bDawXHDpWENF2p8SI2Q==","signatures":[{"sig":"MEQCIHeUzn7+aZuq4tBYRyQAgxJ5OENmpVqz3xjtbdHQzs8oAiBvAkW/wiu7377slhqZ7mVISh0r0Jn2EmfhacSGnJOvxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCge5/oTGTN5OTc1FJLcLHwpTA1jss2dsUKPYRlmg3pHQIgdPzgk5kFImQaOlP4fJ83CLG/DEnMmC7PMp/+bVdu5ac=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.21","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10353635},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.21.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.21.tgz","_integrity":"sha512-/zfy+TGFBfgo0Rr7rTbReFI6j2M3RF2wNRoKx/ZFW62m3fxtOXRQjeEgL2BNtR8gzk0bDawXHDpWENF2p8SI2Q==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.21_1787357165082_0.7498225062126924","host":"s3://npm-registry-packages-npm-production"}},"0.8.22":{"name":"persona-harness","version":"0.8.22","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.22","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"17b7710d65a04729f999c0985d9b75bf59a22c85","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.22.tgz","fileCount":1489,"integrity":"sha512-t5WABmbkXSBetQKt7WiX38FBcJsOZ8ZFDF/NukZ2sLPTS+dCHqX0ISYDNN6v1nysheabVAY9WG6rNLLzwz9jUg==","signatures":[{"sig":"MEYCIQCLpPGHrzL/KiQr3+qxc+6y9bkNBASnfajOQKvZO3jN8wIhANAsm+6dsULxjLtmEklG/e8m/WpVyyOP/3VNwrLcjcyT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIGh95CEP2gh8ZEp/KrtoYUn2Ch9ct3s2oKSqAv3xc4IwAiACck9e0WDynQ7RSc3uqer9sQov/1547MYPqNIOMUjODg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.22","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10416060},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.22.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.22.tgz","_integrity":"sha512-t5WABmbkXSBetQKt7WiX38FBcJsOZ8ZFDF/NukZ2sLPTS+dCHqX0ISYDNN6v1nysheabVAY9WG6rNLLzwz9jUg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.22_1787362468697_0.8617581935035155","host":"s3://npm-registry-packages-npm-production"}},"0.8.23":{"name":"persona-harness","version":"0.8.23","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.23","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"2e97cb96cf34ea6644c7c518ed4284ebc7e30499","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.23.tgz","fileCount":1490,"integrity":"sha512-z1u4dTr+SS3jxpcJVZTOkca0klMwqV9bspmJrZs8fYPGADithAqNMWMJnWC/haV+EsXv4n9w1ybyV81RxOViJg==","signatures":[{"sig":"MEYCIQCz6RZfqqr4m4kNz7EGCCN9nsJbzQH+0aiTK95VQlyT8AIhAJdOfEyXdzPiAaN4DUxVl5V8qT922J4PxFdwNUIDTq/J","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIEzJh7/jW1PJCth2IefbhpJTudxzF0QY9OaPgaduH6ZFAiEAirbyIVfJjsYcGzgl3Nnv0XrYyp0UciVUxirgT3rpSyU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.23","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10449936},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.23.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.23.tgz","_integrity":"sha512-z1u4dTr+SS3jxpcJVZTOkca0klMwqV9bspmJrZs8fYPGADithAqNMWMJnWC/haV+EsXv4n9w1ybyV81RxOViJg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.23_1787370098666_0.06564486521369006","host":"s3://npm-registry-packages-npm-production"}},"0.8.24":{"name":"persona-harness","version":"0.8.24","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.24","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"10fdb82e9a5880562c9736814b6a405366227a0f","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.24.tgz","fileCount":1494,"integrity":"sha512-XfET1D5C0WgV88idlgz0EhHX0E3mYpAvtKMU2uvtynOf8X11TNjzhSeTC4B5xMXy+DPL5+odqiFmj6SlLcJ3Lw==","signatures":[{"sig":"MEQCIB8HIoSPGG/5AfI68nH3qpe1tFATkqrBaFPMRKn3PHPvAiA+RzJq0oUT721+hE0q/tVHGIepxPCdWeWL76ifDhekeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICiQ+fBmZ7x7R2HV5HG7ZpAwGW9ivb2Ia1klWjGl5nRPAiEA5ooK9T/LA/AcMyzT04KccKOxvapszGu/hrNU0qASfPM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.24","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10514643},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.24.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.24.tgz","_integrity":"sha512-XfET1D5C0WgV88idlgz0EhHX0E3mYpAvtKMU2uvtynOf8X11TNjzhSeTC4B5xMXy+DPL5+odqiFmj6SlLcJ3Lw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.24_1787376075938_0.06383200124523603","host":"s3://npm-registry-packages-npm-production"}},"0.8.25":{"name":"persona-harness","version":"0.8.25","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.25","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"9cafe0cc482858fa0b431fef4e75fa21d781b425","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.25.tgz","fileCount":1498,"integrity":"sha512-ESFvcIBebYqX26TA9gXehb0BQPa9Gw6ZazI9qOP8U2lWLzdw03twSqCXIfR8Zn1afrwXokOOKT2RmHU9aAtt7A==","signatures":[{"sig":"MEUCIQC2lwUWzaNY65DmlUDuD1PkjCb9crtxH774oaOM1wP6UQIgXBy0XTvy02SROgodsUaPxcfZ4bHaXpvJeTKcQ81vQeE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIBpcNRW8jBG4FocBWVWbI14B87lj5MultvD6djwo7pD4AiAkO626AxixOHAaKnh6FHkwFDmwerCM6A1nlYGKV53OUQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.25","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10578898},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.25.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.25.tgz","_integrity":"sha512-ESFvcIBebYqX26TA9gXehb0BQPa9Gw6ZazI9qOP8U2lWLzdw03twSqCXIfR8Zn1afrwXokOOKT2RmHU9aAtt7A==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.25_1787380527897_0.7386589738474258","host":"s3://npm-registry-packages-npm-production"}},"0.8.26":{"name":"persona-harness","version":"0.8.26","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.26","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ea9ea2b016bf6cd12556c02209d813ec99f59874","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.26.tgz","fileCount":1502,"integrity":"sha512-fQTB5bbqBFtAnkrZeOrwgUsV09+/7ycsYG6tW22AhKpPkXN+OxuFH7LTeXEgxnn3fD3L3JU+8rGf1RhaHDmYNA==","signatures":[{"sig":"MEUCICFGNwlMmJZ/2pczajxeaAzgaK0JKtnhHHtbP6rCKH8qAiEAyo4rpI4lOBSsuRPCSvvhdYXym4t9FCif6HVPAXNjGuM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIBSTX4+P80FtTB+38ve+GcFVRCxXitI04rApCvNz1jgGAiEAvOE2aAQ7oMV93rbAijGAUv31uWJWVs2uiJfoYbGtc8I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.26","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10640429},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.26.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.26.tgz","_integrity":"sha512-fQTB5bbqBFtAnkrZeOrwgUsV09+/7ycsYG6tW22AhKpPkXN+OxuFH7LTeXEgxnn3fD3L3JU+8rGf1RhaHDmYNA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.26_1787384834856_0.8521524962535267","host":"s3://npm-registry-packages-npm-production"}},"0.8.27":{"name":"persona-harness","version":"0.8.27","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.27","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ae69b0a18e0e6f4dc022fe225ba06fd33e7e92e2","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.27.tgz","fileCount":1512,"integrity":"sha512-iNygCBKIs7qcO+R6W8aEjHy6CizLrg57Vu8pvuHUYcx0syNNpAipbunWDrMosICs3ObN8YrRsp413dKMdsgOZA==","signatures":[{"sig":"MEYCIQD7gEsYKEtpp4kQSXvTZPwmjdXpzzxkg12hMjRf2o97RAIhANreFrsLtfPVTU7ay2NEaodLjkP3eTEpn4Cxle5zcqfe","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFFl8xKoxWcymG04z0Z+30HGYZfzvhF4LIMoOsuL5286AiEA+dNJCOId/1Sl6qRTkb1YVuiaVLE1+kEPh58Yp54/oUI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.27","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10711387},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.27.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.27.tgz","_integrity":"sha512-iNygCBKIs7qcO+R6W8aEjHy6CizLrg57Vu8pvuHUYcx0syNNpAipbunWDrMosICs3ObN8YrRsp413dKMdsgOZA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.27_1787536217614_0.09303346561872794","host":"s3://npm-registry-packages-npm-production"}},"0.8.28":{"name":"persona-harness","version":"0.8.28","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.28","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"6d4e5f391c110281c8ff9cd8177affe3aebf1649","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.28.tgz","fileCount":1525,"integrity":"sha512-LF/sosDLeEDyEc10iL1LpdIxpbFcuROcCJwlED1lJ8t9fBLkkxRZfKaDHdlpPG4vKm3x4leLIOJbxl2Cts+ghg==","signatures":[{"sig":"MEQCIHtPiBuoO5IdMv9x+6mtC3YD+zFh1KiPoUUmVd8LrHn1AiBs6Flt2Jx9x3apURrMy5dfxCLi+hf3mHnwsAOny3iZkg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDl693lzF+sOOTZQDrURhaWJsqICtrOAREsgt+oTml6TgIgO7Mv4KigF8hUs+apJkH35XBXRUWYbFq/OSpbI5cyCiA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.28","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10818399},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.28.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.28.tgz","_integrity":"sha512-LF/sosDLeEDyEc10iL1LpdIxpbFcuROcCJwlED1lJ8t9fBLkkxRZfKaDHdlpPG4vKm3x4leLIOJbxl2Cts+ghg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.28_1787547708496_0.3971041739912098","host":"s3://npm-registry-packages-npm-production"}},"0.8.29":{"name":"persona-harness","version":"0.8.29","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.29","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8dbb873ad3cfb7708eaab263f94a55558134cb49","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.29.tgz","fileCount":1532,"integrity":"sha512-wS1WydeM13EqzNVbr9KRBSPXMSSxbZFbzr2qwCOu4mLY4ZvkxPgaa+tUK03ptNeL/1gNWte3i+W5K22MVX51cA==","signatures":[{"sig":"MEUCIQCdZn7wv/bAcUp3idbJUko5015CesL8zlw1b691A0H+QgIgBc+C+aw+ls/2IY+gjVfABG90nbDV7Ffp9Nf1piJ9QS8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDnwDymMPj6bZezVqSw9OxRWj4m6ta4ej0lt+uS5pegZAiAextZOQ9COxXP9pXLkMH0eeCu565J7AiTtqAPFwlpQfA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.29","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":10907806},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.29.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.29.tgz","_integrity":"sha512-wS1WydeM13EqzNVbr9KRBSPXMSSxbZFbzr2qwCOu4mLY4ZvkxPgaa+tUK03ptNeL/1gNWte3i+W5K22MVX51cA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.29_1787571312274_0.9564867972510314","host":"s3://npm-registry-packages-npm-production"}},"0.8.30":{"name":"persona-harness","version":"0.8.30","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.30","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"0f473b96e11f70259282a2c77dd0b8d850ea2a2d","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.30.tgz","fileCount":1545,"integrity":"sha512-gNHO4Ag2ANPQ2JllHd3UH+ctTR0ZGI9eDJ6JEdAArZq8p8U9MQG5zQrXlyxvfdXRA1GaakGh8uZMeHiYuXUl+g==","signatures":[{"sig":"MEUCIEUeoILuIFY8o9HOHUGRJI4Js+ezEpiBKf5ZHIe25j4RAiEAgZCKbt+dJK7eud2zvcVEmG0Hk6zp31kOen8BjKa72Ic=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDKHNxKos+S3nXpv74PHJNgqfwxlxzVHu+wnKocN881pAiAtFa2oODJoq3ciVwMOtAaBm5dicUQCF00pJ8ScKRCqoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.30","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11009322},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.30.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.30.tgz","_integrity":"sha512-gNHO4Ag2ANPQ2JllHd3UH+ctTR0ZGI9eDJ6JEdAArZq8p8U9MQG5zQrXlyxvfdXRA1GaakGh8uZMeHiYuXUl+g==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.30_1787583234773_0.5863063930146717","host":"s3://npm-registry-packages-npm-production"}},"0.8.31":{"name":"persona-harness","version":"0.8.31","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.31","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"4c7044204bf4287655f6157b624192f82999a006","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.31.tgz","fileCount":1549,"integrity":"sha512-idWjfKlKPQmpdxkm2FaO3/7vauNzdhD/Lm/RrTUVOYPor9NzS+koiw+rV+0oSDwPKnD0fx0jpUItz0WaajzV4Q==","signatures":[{"sig":"MEUCID50FnnD1OjW0A8PKtEuFk8GTte/jojBKsb70tXPNpwlAiEAsB8b5v0JOiURqfvlKAvYVCvejGrTDv3STCNnkuN65bs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQC+PrNcSMQem8Q96kQLP5fbi+gNKmaiL/O3TKpbfZWdaAIgdee0rSiI3vX6a4utX85Lpw3z7AtbFxTaHhd4w918Dbs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.31","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11073412},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.31.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.31.tgz","_integrity":"sha512-idWjfKlKPQmpdxkm2FaO3/7vauNzdhD/Lm/RrTUVOYPor9NzS+koiw+rV+0oSDwPKnD0fx0jpUItz0WaajzV4Q==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.31_1787589125739_0.7958587290914472","host":"s3://npm-registry-packages-npm-production"}},"0.8.32":{"name":"persona-harness","version":"0.8.32","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.32","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"9b00dc877b5bd68a0e2f01e53df865ba89cdacee","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.32.tgz","fileCount":1553,"integrity":"sha512-OYaYTCRppnBuB/GdrLKyPWQtOHHTYsPpdk/4Yi3Na6q/aUjCaShTW9nwDOfsUZ8V4HTCKBDSyNvHXtGreHdkhQ==","signatures":[{"sig":"MEUCIHZ2vyrT4nYe5qP6YIq99xMwRB2VG8JjyjEBQRyq2k7mAiEA0PpV56uXZBAG+pI5F5q1mgaAfVFiS5Qhe364rO9xjZ0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFZfJ2nwd/hmIJzjhLk9VqHtatzIy5P5PCWuRwlgN/S2AiEAtMqTBpyPupqerqjmx4GlsWM6DbeGGc5xzxOx1LJ0KmA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.32","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11151770},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.32.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"npm run test:package","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:unit":"vitest run","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node dist/cli/index.js --help","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.32.tgz","_integrity":"sha512-OYaYTCRppnBuB/GdrLKyPWQtOHHTYsPpdk/4Yi3Na6q/aUjCaShTW9nwDOfsUZ8V4HTCKBDSyNvHXtGreHdkhQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.32_1787623265919_0.1261751539936602","host":"s3://npm-registry-packages-npm-production"}},"0.8.33":{"name":"persona-harness","version":"0.8.33","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.33","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"f50e2c4bb5236ad820354b46d8688f6b0c4f31b1","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.33.tgz","fileCount":1631,"integrity":"sha512-zrbqE9bI7vZAFbAtyoO9og/0q+JEAWEhYjD2d0XBacaSW88di2YSVujKy+h2dyERiiUJubqKo1GP+1KpaBHlSg==","signatures":[{"sig":"MEYCIQDLLEj0gz9XmsORxwdc8cZXoyWjAEI68E5uX4bsOtBTfgIhAPfWPsrIrJRZ6K2QmyALcsHcyeoV2GGFKazw0iqL07IO","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDH7Uen1bvONXUMLNgOwm8jnUHjVywm22BzDTn+Ij1+AgIhAPeUmhycu0hzMzLYUoQOaF+tz5fCXZHPe5NhYIVAWw9o","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.33","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11333987},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.33.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-config.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.33.tgz","_integrity":"sha512-zrbqE9bI7vZAFbAtyoO9og/0q+JEAWEhYjD2d0XBacaSW88di2YSVujKy+h2dyERiiUJubqKo1GP+1KpaBHlSg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.33_1788008603548_0.6723660844209307","host":"s3://npm-registry-packages-npm-production"}},"0.8.34":{"name":"persona-harness","version":"0.8.34","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.34","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"668952cd132a9dee42be32803240b3bb76baefba","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.34.tgz","fileCount":1644,"integrity":"sha512-IcA1cZU7Og6c1PoUp3u1z+CrA8Y9eqGjxMp1eQ5vpbgEwOdAufEX//8/b7x6/P92LsioWcGGmR4LuPFztmrPeQ==","signatures":[{"sig":"MEYCIQCPVMzEiMaiWq8k5B8RdiQrIOTtTe+VHAmrOTxrqqgk6wIhAKvSH1jmWQTibIHrxSDMFEobSMbWFSPCZarHqJL72FnT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIByzE+BqUUK1MnhC+4rTExUpHiJAgL62eaTCHRIoe8xyAiEA0pr/pRKMlHBYieD/IepHty6KQm+uMaNZ3ooMPI3IOrY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.34","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11383159},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.34.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.34.tgz","_integrity":"sha512-IcA1cZU7Og6c1PoUp3u1z+CrA8Y9eqGjxMp1eQ5vpbgEwOdAufEX//8/b7x6/P92LsioWcGGmR4LuPFztmrPeQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.34_1788013940002_0.5893289215641335","host":"s3://npm-registry-packages-npm-production"}},"0.8.35":{"name":"persona-harness","version":"0.8.35","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.35","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8066c04e269b201ffd9b93eb117f759e5aae94bc","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.35.tgz","fileCount":1652,"integrity":"sha512-bhMceYq89xmuC4cjL0kCu/41SAHgLfe+pgt6DG8cNG8A6doXB5UnOrY1R7U+SZQ34fPyMatEQv4Y3a5PxemkmA==","signatures":[{"sig":"MEQCIFqZHvwF+C05jmpBP2tcyn/C2hdYuK7iDUuhWN6YRapIAiAhb3VpLsh297a7xZMByxU5U8x0RcOCIxCKWu/DsI0o7Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDmt8vE39wzlyvnJvB5suJGH59kDMi/L4UUKVoluzfuXwIhANfNk1PnOHKAxsZOEoYa8JRV+GR/0nogh9PaSe2IEoWv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.35","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11405931},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.35.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.35.tgz","_integrity":"sha512-bhMceYq89xmuC4cjL0kCu/41SAHgLfe+pgt6DG8cNG8A6doXB5UnOrY1R7U+SZQ34fPyMatEQv4Y3a5PxemkmA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.35_1788019360726_0.7884020106256784","host":"s3://npm-registry-packages-npm-production"}},"0.8.36":{"name":"persona-harness","version":"0.8.36","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.36","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"7604b0e73b9cc951a233108b8ec1fafc9ad1e335","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.36.tgz","fileCount":1653,"integrity":"sha512-NAlvJFzXYBbR+jJWVYxOGlrr+s3u+k6oXMp5k/VZ2+wXWJRF0pP2Fw58Q3v18v3QeJvFUMwpAv3VegQyY56+4w==","signatures":[{"sig":"MEUCIFMn80usGXaKiyXbJE20l53qgQyxe0hEA5/6q09AXBL5AiEAhzIJx301FJoW2tXOZLW07Y9F5bIb4Vyxw6nAI+xTVCU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIHUSIUPEMmNqGlyK/p30l/mpVfcqnRMBQFuf77Jrxh7hAiAGytPvnAZOYo76OwJpqG0+bEwU+INMkVWJaVEfYu0KUw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.36","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11408171},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.36.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.36.tgz","_integrity":"sha512-NAlvJFzXYBbR+jJWVYxOGlrr+s3u+k6oXMp5k/VZ2+wXWJRF0pP2Fw58Q3v18v3QeJvFUMwpAv3VegQyY56+4w==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.36_1788026963718_0.8883602126200112","host":"s3://npm-registry-packages-npm-production"}},"0.8.37":{"name":"persona-harness","version":"0.8.37","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.37","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"0bb4ad52cf91251cec4c13ba32fab1c40b630881","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.37.tgz","fileCount":1672,"integrity":"sha512-tyqP6H8kVOI9oZ/M9+8s48ayixSGnAHXh1ziIvbMKg3+cXWQ51K7At+k8Zrsfzdu3nQPAWqXpfWoyHJEk8WJbQ==","signatures":[{"sig":"MEQCIGYHNwNgAo/6LmazDr0wcESTru/Qi/Mdx0JG6bngdN7NAiAaFzXnSquNG4++5jfr66c39VHcuLPxTXxDd5b9wRhXPQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDZvdZGLPyWjqm1b/Ap4kh8e6F6S8b3jSvZAiRqEeJspgIhAMNlCW5uc7jLxeKmo0U0gI2afJvbEl5lNpdvVtR9Kbdu","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.37","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11457627},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.37.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.37.tgz","_integrity":"sha512-tyqP6H8kVOI9oZ/M9+8s48ayixSGnAHXh1ziIvbMKg3+cXWQ51K7At+k8Zrsfzdu3nQPAWqXpfWoyHJEk8WJbQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.37_1788033422919_0.8299437600383723","host":"s3://npm-registry-packages-npm-production"}},"0.8.38":{"name":"persona-harness","version":"0.8.38","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.38","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"933596169b76227b47deafbccddc9d4f9c0211ed","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.38.tgz","fileCount":1673,"integrity":"sha512-5cdtnopj6C7KJykaTPuVY9XRwrllCB+ehhGsFQ7CxT7Ubmp51AFutPjnzrzWXFTB4wS21UsIBdgebypAH9cNNQ==","signatures":[{"sig":"MEUCIQCQwhFAVkkmMSbHMmnLJy/+y0mqfYl/pJDXLqyhFi6WawIgYOn1bT6O3XWrrllDHcAc/k/Qy1VioTZnFX0ez2wyhXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDwLUGNGZCrDr6v3ckx1w0aZg/SB0QV+xV+VbnSxJo00AIgTga4fCTpnXxjOB3oBDyGDgmIWhOG0YvWaHP2/9LLxzI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.38","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11461345},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.38.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.38.tgz","_integrity":"sha512-5cdtnopj6C7KJykaTPuVY9XRwrllCB+ehhGsFQ7CxT7Ubmp51AFutPjnzrzWXFTB4wS21UsIBdgebypAH9cNNQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.38_1788037920912_0.39585581334283493","host":"s3://npm-registry-packages-npm-production"}},"0.8.39":{"name":"persona-harness","version":"0.8.39","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.39","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"df8f2063044d3d443cf79a41598440e979fd60a0","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.39.tgz","fileCount":1674,"integrity":"sha512-6g5y6XesR0JCbh/YkVaKG4PjnVsK9drEeePImxVgdY0YpQhjQh1VpfVcXE5tz/kEjzeUNFyJ7U8jg/6xkBBb6w==","signatures":[{"sig":"MEUCIQCG+vmMMFC36IAyQ3UqxJEZxWV39WcXf3YOYvsJwXDtXQIgd/CuMSN5cUShMPQWsR1ci0TpXjaEGwEw8tL+PvmNDWg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIDxKroz1u134UBvSG5KMA/9/qivlikbyQEFCONueauEZAiAkoLXw9mYCqJNZ2whuoJsEShnm6XxjI9p6UdzQjg6y9g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.39","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11463570},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.39.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.39.tgz","_integrity":"sha512-6g5y6XesR0JCbh/YkVaKG4PjnVsK9drEeePImxVgdY0YpQhjQh1VpfVcXE5tz/kEjzeUNFyJ7U8jg/6xkBBb6w==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.39_1788059350730_0.12405358631799768","host":"s3://npm-registry-packages-npm-production"}},"0.8.40":{"name":"persona-harness","version":"0.8.40","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.40","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"4965782536d9c9df87085769a9aefbe2f97b13b4","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.40.tgz","fileCount":1678,"integrity":"sha512-Ml3S88IXfQ8KL7hb+72jdcDTK+Q03HgMnq+dyl20eiemd1bE4K6HvBp9dBC4QAcNeNqu1k+JCf2ZSbIRL95GDA==","signatures":[{"sig":"MEUCIHA0kzLPfbYiu8EON+GWQHJS/DcOkh8+ht49MIzh2w3iAiEAxDwjS4c4XIjM4v/dszPVMOiFkiu0M3GPCzEy7t1FiEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDSHbtARCxEeoz9vuJQE5hnkDqs8xa0gXqprkxW1u5fHgIgZg0PG9GVRcgtoMX8Uiig3maUo5X4dbILQkCgTpE7g6E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.40","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11476941},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.40.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.40.tgz","_integrity":"sha512-Ml3S88IXfQ8KL7hb+72jdcDTK+Q03HgMnq+dyl20eiemd1bE4K6HvBp9dBC4QAcNeNqu1k+JCf2ZSbIRL95GDA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.40_1788068292243_0.3702875070210654","host":"s3://npm-registry-packages-npm-production"}},"0.8.41":{"name":"persona-harness","version":"0.8.41","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.41","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"57d6937d6875d978b3b766e6b5ad36418459d954","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.41.tgz","fileCount":1688,"integrity":"sha512-r6mEA5YUItQxKfXco5yV6+9Ye01fXjecX6ToAh+UVzZKSoU2n08LJIIiUXGFnETm1aZSldNYVt1cK2M6KDKqLQ==","signatures":[{"sig":"MEUCIQDLSN0QWIBe5oxZoVEIYYsB7lyKnXQ2bqPlX7RjxGiMwgIgAa7fhWfRIexDgDt69kudkePgyF0RlbbzgcXQ0aMIFKw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIHET/9IIALffVtbFeEwFTOgKrFeC3mwr4PCrgIUOdTItAiEA+psGIx64jtonKhdOE7PeTihdj/5Ny6HJmwObYVPVrjw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.41","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11519613},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.41.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.41.tgz","_integrity":"sha512-r6mEA5YUItQxKfXco5yV6+9Ye01fXjecX6ToAh+UVzZKSoU2n08LJIIiUXGFnETm1aZSldNYVt1cK2M6KDKqLQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.41_1788075221953_0.5310777892434919","host":"s3://npm-registry-packages-npm-production"}},"0.8.42":{"name":"persona-harness","version":"0.8.42","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.8.42","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"af8b0556be46109c84f094bd6aff06b7b3a4e48c","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.8.42.tgz","fileCount":1689,"integrity":"sha512-AX+gHH6hj5UqocNAT9xFaqxxLYJByHcK8fSeoNV9A/lcyUUSIG7oFiLkoL3WWighJZ8sHV+p+YQiiKjz9AZ4ug==","signatures":[{"sig":"MEYCIQDKoabVmU4Vo3ZLAfN1IZhK1meW3c0I43ZM4ddo0kVbrQIhAPY1UC8j5FQB0SxAIvO8UXd8CXHiuRFGQxK4gXcAeR4I","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDFVmnm8e+F/o5uM0NdaoSw+Y5s1oGh1+ErKH8AXPq72gIhAI2DynU+9ZjJr0cNAyi/t/wDsBW2d0kReOmm511kNNI5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.8.42","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11520955},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.42.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.8.42.tgz","_integrity":"sha512-AX+gHH6hj5UqocNAT9xFaqxxLYJByHcK8fSeoNV9A/lcyUUSIG7oFiLkoL3WWighJZ8sHV+p+YQiiKjz9AZ4ug==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.8.42_1788097812484_0.3035994944730913","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"persona-harness","version":"0.9.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.9.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"6bad383b01a8ed7bb67d48b3d7ae375053f935ff","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.9.0.tgz","fileCount":1696,"integrity":"sha512-cAk91byJ0M4znR9xhXnbIKDZA01Zs/4Fk2aWIFyd6C8lw1fOPRTqWI0/dUyUvJIXAsxd1ugxsJyiw1qjQOnFkw==","signatures":[{"sig":"MEUCIBSk+3dRDDOvyMtvkDS8FSivfw4MmatZsdVzZmGYqu+rAiEA0JwKlWJ1iQfM2bVGOczwdtMnPXQj8gjE80et7wyggeg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDUj3X3xhvcDqcWIVkVA2zntp7pteklJrFy1y9PIj4ljgIhAO3Pq1IkE1CATod6fhDhlNyr2rcMdumCrj4jpQmDzPqv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11562034},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.0.tgz","_integrity":"sha512-cAk91byJ0M4znR9xhXnbIKDZA01Zs/4Fk2aWIFyd6C8lw1fOPRTqWI0/dUyUvJIXAsxd1ugxsJyiw1qjQOnFkw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.9.0_1788156842218_0.2076853569925703","host":"s3://npm-registry-packages-npm-production"}},"0.9.1":{"name":"persona-harness","version":"0.9.1","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.9.1","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"29cf63ecd4bfe1d30b0560edd5bb5d7e422f3073","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.9.1.tgz","fileCount":1698,"integrity":"sha512-7Eqx9iPiW/q0sZqAAMOVepWNVaoDQz2IY+92hvASA9Ng4Ug9O/unH28uLZwE5fRa2paCXQ8TfTEDathF+9IVlw==","signatures":[{"sig":"MEUCIQD8Uq2ynM10AtL/6+raflmxmWFtakKCE7Zc6Q+dWBzc+QIgUWQu8o227jwNWT7ItvyqM2ZZKwPmDi5MPyWvNNOIsI4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCLdPDlfKV22lShsnzBDHLoCB0hpqWgF8Og1u6vLj6QgwIgc2rW9Uu3o/R16xz/qQTw7eKaQhlPYX5cEwQMFd4fVA4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.9.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11574957},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.1.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.1.tgz","_integrity":"sha512-7Eqx9iPiW/q0sZqAAMOVepWNVaoDQz2IY+92hvASA9Ng4Ug9O/unH28uLZwE5fRa2paCXQ8TfTEDathF+9IVlw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.9.1_1788163201102_0.31320560138163467","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"persona-harness","version":"0.9.2","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.9.2","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"b6523407d87c6539d23aacde9b207db47e5ef2b6","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.9.2.tgz","fileCount":1699,"integrity":"sha512-toHPphqHoe14r5a79xlCj77wA5bPtNWKzUwohvFa9Y/bnRSUxsucGKWnnp189alvviolnr9ycTYaoFHX7Z3pIQ==","signatures":[{"sig":"MEYCIQC8TGajk1kkD1H/NvtUwag6cDQlcnkbCTwPTegOqsGezwIhANg3yBRqceVWCe1zihMLfacmHCd3zXQY7fFcsehwGTVp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDGim+B5h1ivdqmPRBDUYjEGfsUd0kHhaCqRBVvEYWS/AiEAhTkkSHCzRhIDtNhdJVjoceETF/ENGf4CCJhIqIfEd14=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.9.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11576804},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.2.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.9.2.tgz","_integrity":"sha512-toHPphqHoe14r5a79xlCj77wA5bPtNWKzUwohvFa9Y/bnRSUxsucGKWnnp189alvviolnr9ycTYaoFHX7Z3pIQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.9.2_1788180634765_0.27191526406585775","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"persona-harness","version":"0.10.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.10.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"ffb3a080bb87e5832eea5b5a62fb5402cc3ff75a","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.10.0.tgz","fileCount":1703,"integrity":"sha512-YNgiZuaLWSVLES0JIz70P7W3mV/t6i0sBZ79n59kZfk3EGZMZ8JdfydRah+4HFQ/wgIzFo77LdaBTR+bwdJarg==","signatures":[{"sig":"MEUCIQCRZEJhQFXXuu3K7jch2YuUHFt/K59TzMlQ9YyvFxrKmAIgMY5dUe4ZC1EJPhCIJt098+fRIrF9iMxKzwO26t64e28=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIFtwFZ8zTKRFr5sY/ydMsw9xsZsbSgSy+eq31uAAOv0FAiAipQOnKy8OKqgJoJL7t5xt6krL6vTU3k1TbhxooG76Hg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.10.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11596326},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.10.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.10.0.tgz","_integrity":"sha512-YNgiZuaLWSVLES0JIz70P7W3mV/t6i0sBZ79n59kZfk3EGZMZ8JdfydRah+4HFQ/wgIzFo77LdaBTR+bwdJarg==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow for OpenCode: require real verification before agents claim done.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.10.0_1788194588697_0.41531061626545673","host":"s3://npm-registry-packages-npm-production"}},"0.11.0":{"name":"persona-harness","version":"0.11.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.11.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"8f98d6b09d896f1539ad8b4b6e94d57572aa4ad3","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.11.0.tgz","fileCount":1748,"integrity":"sha512-2jRMPF0aLtP42+pfsymCD2/5/MjaqLRsavvu5zx4vD4PN0YOarzuIgL0v4p+7Ldc3Lkp7UJc+IwXtny0IoiUVw==","signatures":[{"sig":"MEUCIAhXWup1be0frREYAuYQmGB1HBWHp8tGFRUjusGfJzu7AiEApSrdAawztyaFhVRu2i+UbT/jkVwudaaKMs+5YR+q+88=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDOEpKnp1qQOYxQNZ2qZzyagjGDoRFlEu3wTjLvh8B/MAiEAuNZvpYOvUsubdi1X7oAmMcrKctf5kOyfBAV9NUO0REg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.11.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11669579},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.11.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs && node scripts/check-host-skill-plugins.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:host-plugins":"npm run build && node scripts/check-host-skill-plugins.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","generate:host-plugins":"npm run build && node scripts/generate-host-skill-plugins.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.11.0.tgz","_integrity":"sha512-2jRMPF0aLtP42+pfsymCD2/5/MjaqLRsavvu5zx4vD4PN0YOarzuIgL0v4p+7Ldc3Lkp7UJc+IwXtny0IoiUVw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, and Claude Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.11.0_1788361096601_0.5739583847134717","host":"s3://npm-registry-packages-npm-production"}},"0.12.0":{"name":"persona-harness","version":"0.12.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.12.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"bb02f2dd212c44f8217b936b92d48438b6f4345e","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.12.0.tgz","fileCount":1767,"integrity":"sha512-E9sBU7l8d4MHp1ddMtNnud1AG6PUqn6SA1/XNRr2jT3yDteSIJz1eyi7LwR8jUwvv9byODVERnUJerNF47+kww==","signatures":[{"sig":"MEUCIDa3hnEFDPneo+ZHPWWrK6DfVEV52wZTzSLaRYliuK0TAiEAjfBWFRYVQqQQqnKwpDskN4TkaB5J5ksJ78Q4e5Zogcs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIE6V+p6WueIE7Cl6zWVhmKljqNR9srEY5R3Lh/Z/kB2fAiBwx38lW3vSSGwyHrSmQ57Rd/MnPGV+06ugM1yU04rgEg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.12.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11692312},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.12.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs && node scripts/check-host-skill-plugins.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:host-plugins":"npm run build && node scripts/check-host-skill-plugins.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","generate:host-plugins":"npm run build && node scripts/generate-host-skill-plugins.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.12.0.tgz","_integrity":"sha512-E9sBU7l8d4MHp1ddMtNnud1AG6PUqn6SA1/XNRr2jT3yDteSIJz1eyi7LwR8jUwvv9byODVERnUJerNF47+kww==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, and Claude Code.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.12.0_1788368452847_0.0649551105097923","host":"s3://npm-registry-packages-npm-production"}},"0.13.0":{"name":"persona-harness","version":"0.13.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@0.13.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"88527c0fc20ab4ffe6f25fdafd259b5be7b502c0","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-0.13.0.tgz","fileCount":1789,"integrity":"sha512-OcsM58P1UXV1pKpvAaLJUGtYBQCspqV2oj6h9mqsAZyweWjB3j6+dXzOPhrVHN+Y3xThgs1Tw+405IfltBDaXA==","signatures":[{"sig":"MEQCIFR+bqtW4GkpEU3FfQdcmtCNIF0bmu5rRcEPoFeeKHc7AiAjyyrUZQ04XUSweFaJ94z0v5x4QzhflAEekRVLEyJYIA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCb8JZGdS1+KpHOeYYkRk0/PKK4Z15i7kxD3Tdr0jFkVwIgCyZOESQaUt2ui/v43eM4t/hPASH6/WL2foMRLhyOa10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@0.13.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11814551},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.13.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs && node scripts/check-host-skill-plugins.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/bootstrap-write-boundary-security.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts tests/socratic-interview-core.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-product-interview-hook.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts tests/product-deep-interview.test.ts tests/socratic-interview-command.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:host-plugins":"npm run build && node scripts/check-host-skill-plugins.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","generate:host-plugins":"npm run build && node scripts/generate-host-skill-plugins.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-0.13.0.tgz","_integrity":"sha512-OcsM58P1UXV1pKpvAaLJUGtYBQCspqV2oj6h9mqsAZyweWjB3j6+dXzOPhrVHN+Y3xThgs1Tw+405IfltBDaXA==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, Claude Code, and Antigravity.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_0.13.0_1788405639644_0.5344964406291404","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"persona-harness","version":"1.0.0","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"license":"Apache-2.0","_id":"persona-harness@1.0.0","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"homepage":"https://github.com/jyt6640/persona-harness#readme","bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"dist":{"shasum":"6cbfeaf036d320bed74cdb20134a197b82995d15","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-1.0.0.tgz","fileCount":1794,"integrity":"sha512-4rLMbhCfiJPKwMEPS4v2yvL0225f2LGIKggIwHKQajVbJ6DnY1m1seN2S8ZisSzWynakWWixE5l2kZnENhGmFQ==","signatures":[{"sig":"MEUCIBH2kHzPX4HIJueoXZRk2jObDIpIwIuaxnidlsHyGzLzAiEA0P/iaatYZx4qalHDuOcz8B7hsn5ef7mAmyHUlPfIt9Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbgvPmlOdVxWbNxQfXTLqIp8AS1SSz8xaz9wGxjWRm9QIhAMe4acSAuxRSUn/zdacbFz6k0PfRph7BMYN3KYaPgitA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":11915165},"main":"dist/index.js","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-1.0.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs && node scripts/check-host-skill-plugins.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/bootstrap-write-boundary-security.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts tests/socratic-interview-core.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-product-interview-hook.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts tests/product-deep-interview.test.ts tests/socratic-interview-command.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:host-plugins":"npm run build && node scripts/check-host-skill-plugins.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","generate:host-plugins":"npm run build && node scripts/generate-host-skill-plugins.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-1.0.0.tgz","_integrity":"sha512-4rLMbhCfiJPKwMEPS4v2yvL0225f2LGIKggIwHKQajVbJ6DnY1m1seN2S8ZisSzWynakWWixE5l2kZnENhGmFQ==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, Claude Code, and Antigravity.","directories":{},"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/persona-harness_1.0.0_1788621844402_0.31611643794681066","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"_id":"persona-harness@1.1.0","bin":{"ph":"dist/cli/index.js","ph-lsp-mcp":"packages/lsp-mcp/bin/lsp-mcp.mjs","persona-harness":"dist/cli/index.js","ph-codegraph-mcp":"packages/codegraph-mcp/bin/codegraph-mcp.mjs"},"bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"dist":{"shasum":"0d7aca79a20e7e7676824cf2b1c2a72035efe110","tarball":"https://registry.npmjs.org/persona-harness/-/persona-harness-1.1.0.tgz","fileCount":1914,"integrity":"sha512-WpAnsue6O7AOUlwYYTKBE31tEgIlY3r5mBCySHyd/Z2GtHBkY36FXbn00DcxcLghS/mX9sujnOigwIODH8ktAw==","signatures":[{"sig":"MEYCIQCyBZP44PyTN3EmMl09YxW/7kxsqYQHIS+Lh8L9dUwC9AIhAJq6v06GQd6w0lPw4cRERbyHh3rd0MGz6XFFF2Xe8n8W","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIGz3xjs7gwQRa8iIblTafDQ6/jXqQNBPj4ig35MjIfHbAiBzh/SPb2IVqZ2PEv6FwsTQmE7abXTJaYNW7skxFM7rGQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/persona-harness@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":13263223},"main":"dist/index.js","name":"persona-harness","type":"module","_from":"file:/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-1.1.0.tgz","types":"./dist/index.d.ts","engines":{"node":"^20.17.0 || >=22.9.0"},"exports":{".":"./dist/index.js","./portable-skill":"./dist/portable-skill.js","./effective-profile":"./dist/effective-profile.js","./context-external-validation":"./dist/context-external-validation.js"},"license":"Apache-2.0","private":false,"scripts":{"test":"node scripts/run-default-test.mjs","build":"node scripts/package-root-build.mjs","clean":"node scripts/package-root-build.mjs --clean","prepack":"node scripts/package-root-build.mjs && node scripts/check-host-skill-plugins.mjs","demo:init":"npm run build && node scripts/verify-init-demo.mjs","test:fast":"npm run test:unit && npm run test:integration","test:full":"npm run test:repository","test:unit":"vitest run --testTimeout=15000 tests/npm-test-contract.test.ts tests/bootstrap-write-boundary-security.test.ts tests/context-compatibility-manifest.test.ts tests/context-config.test.ts tests/context-comparison.test.ts tests/context-comparison-runner.test.ts tests/context-value-window.test.ts tests/context-contributor-route.test.ts tests/context-core-import-boundary.test.ts tests/context-envelope-builder.test.ts tests/context-external-validation.test.ts tests/context-program-status.test.ts tests/context-readme-boundary.test.ts tests/effective-context-v2.test.ts tests/effective-profile-resolution.test.ts tests/phase0-harness-config.test.ts tests/opencode-skill-adapter.test.ts tests/host-capability-manifest.test.ts tests/portable-skill-contract.test.ts tests/socratic-interview-core.test.ts tests/context-delivery-store.test.ts tests/context-tool-targets.test.ts tests/context-rendered-budget.test.ts","typecheck":"tsc --noEmit -p tsconfig.json","check:docs":"node scripts/check-docs-taxonomy.mjs && npm run check:acceptance-results && npm run check:github-release-notes && npm run check:release-truth","test:smoke":"npm run build && node dist/cli/index.js --help","check:scope":"node scripts/check-mvp-scope.mjs","report:rules":"npm run build && node scripts/report-rule-diagnostics.mjs","test:package":"node scripts/test-package-smoke.mjs","demo:java-mvp":"npm run build && node scripts/verify-java-mvp-demo.mjs","demo:bootstrap":"npm run build && node scripts/verify-bootstrap-demo.mjs","test:repository":"npm run check:scope && npm run check:docs && npm run check:release-workflows && vitest run --testTimeout=15000 && npm run test:authoritative-bundle-package-contract","observe:phase1-2":"node scripts/observe-phase1-2.mjs","test:integration":"vitest run --testTimeout=15000 tests/context-command-routing.test.ts tests/context-doctor.test.ts tests/context-init.test.ts tests/context-preview.test.ts tests/context-explain.test.ts tests/context-status.test.ts tests/opencode-context-delivery.test.ts tests/persona-harness-doctor-reachability.test.ts tests/personalization-profile-store.test.ts tests/team-profile-store.test.ts tests/team-profile-v2-store.test.ts tests/phase0-product-interview-hook.test.ts tests/phase0-runtime-context-delivery.test.ts tests/personalization-profile-package-contract.test.ts tests/product-deep-interview.test.ts tests/socratic-interview-command.test.ts tests/context-personal-scope.test.ts tests/context-checkout-binding.test.ts tests/context-checkout-binding-failures.test.ts tests/context-task-binding.test.ts tests/context-task-binding-boundaries.test.ts tests/context-target-selection.test.ts tests/opencode-context-batch.test.ts tests/portable-context-hook.test.ts tests/portable-context-package.test.ts tests/portable-context-session.test.ts","benchmark:context":"npm run build && node scripts/eval/run-context-comparison.mjs --manifest docs/current/context-comparison-manifest.json --current-checkout","experiment:phase0":"node scripts/run-phase0-experiment.mjs","smoke:product-mvp":"npm run build && node scripts/smoke-product-mvp.mjs","check:host-plugins":"npm run build && node scripts/check-host-skill-plugins.mjs","check:scope:strict":"node scripts/check-mvp-scope.mjs --strict","check:release-truth":"node scripts/check-release-truth.mjs","cleanup:experiments":"node scripts/cleanup-phase-artifacts.mjs","release:github-notes":"node scripts/generate-github-release-notes.mjs","test:repository:fast":"npm run test:repository:parallel && npm run test:repository:resource-sensitive","check:injection-value":"node scripts/check-injection-value.mjs","generate:host-plugins":"npm run build && node scripts/generate-host-skill-plugins.mjs","observe:test-contract":"node scripts/observe-test-contract.mjs","measure:entry-steering":"npm run build && node experiments/entry-intent-corpus/measure.mjs","check:release-workflows":"node scripts/check-release-workflows.mjs","docs:acceptance-results":"node scripts/generate-acceptance-results-index.mjs","check:acceptance-results":"node scripts/generate-acceptance-results-index.mjs --check","test:repository:parallel":"vitest run --testTimeout=15000 --project parallel","experiment:phase0:prepare":"node scripts/run-phase0-experiment.mjs --no-run","experiment:phase0:step2-3":"node scripts/run-phase0-step2-3-experiment.mjs --run","check:github-release-notes":"node scripts/generate-github-release-notes.mjs --check","test:clean-package-boundary":"node scripts/verify-clean-package-boundary.mjs","test:installed-package-contract":"node scripts/test-installed-package-contract.mjs --package-acceptance","experiment:phase0:step2-3:prepare":"node scripts/run-phase0-step2-3-experiment.mjs","test:repository:resource-sensitive":"vitest run --testTimeout=15000 --project resource-sensitive","test:authoritative-bundle-package-contract":"node scripts/verify-clean-package-boundary.mjs --exercise-contract --observer-gh \"$PERSONA_HARNESS_OBSERVER_GH\""},"version":"1.1.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c067eea3-b128-406a-ad65-044c07998d25"}},"homepage":"https://github.com/jyt6640/persona-harness#readme","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"_resolved":"/home/runner/work/_temp/persona-harness-canonical-package/persona-harness-1.1.0.tgz","_integrity":"sha512-WpAnsue6O7AOUlwYYTKBE31tEgIlY3r5mBCySHyd/Z2GtHBkY36FXbn00DcxcLghS/mX9sujnOigwIODH8ktAw==","repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"_npmVersion":"11.16.0","description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, Claude Code, and Antigravity.","directories":{},"maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"_nodeVersion":"24.18.0","dependencies":{"snappyjs":"0.7.0","@sigstore/tuf":"4.0.0","@sigstore/bundle":"4.0.0","@sigstore/verify":"3.0.0"},"_hasShrinkwrap":false,"packageManager":"npm@10.8.2","devDependencies":{"vitest":"^4.0.0","rolldown":"1.0.3","typescript":"^5.9.0","@types/node":"^24.0.0","@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependencies":{"@ast-grep/cli":"0.45.0","@opencode-ai/plugin":"1.15.13","@theupsider/lsp-mcp":"1.1.2","@colbymchenry/codegraph":"1.1.6"},"peerDependenciesMeta":{"@ast-grep/cli":{"optional":true},"@opencode-ai/plugin":{"optional":true},"@theupsider/lsp-mcp":{"optional":true},"@colbymchenry/codegraph":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/persona-harness_1.1.0_1788776892578_0.33875200176005493"}}},"time":{"created":"2026-06-21T07:17:32.806Z","modified":"2026-09-07T10:28:13.217Z","0.3.0-alpha.0":"2026-06-21T07:17:33.029Z","0.3.0-alpha.1":"2026-06-21T07:28:08.950Z","0.3.0-alpha.2":"2026-06-21T09:44:14.889Z","0.3.0-alpha.3":"2026-06-22T01:22:43.673Z","0.3.1-alpha.0":"2026-06-22T05:50:53.310Z","0.3.1-alpha.1":"2026-06-22T07:35:00.494Z","0.3.1-alpha.2":"2026-06-22T07:54:32.840Z","0.3.2-alpha.0":"2026-06-22T08:52:26.572Z","0.3.2-alpha.1":"2026-06-22T09:00:02.913Z","0.3.2-alpha.2":"2026-06-22T22:46:02.925Z","0.3.2-alpha.3":"2026-06-23T02:37:18.635Z","0.3.3-alpha.0":"2026-06-23T04:00:41.366Z","0.3.4-alpha.0":"2026-06-23T04:20:04.602Z","0.3.5-alpha.0":"2026-06-23T05:01:48.810Z","0.3.6-alpha.0":"2026-06-23T10:20:35.285Z","0.3.6-alpha.1":"2026-06-23T11:07:14.151Z","0.3.7-alpha.0":"2026-06-24T01:48:24.699Z","0.3.7-alpha.1":"2026-06-24T04:42:57.302Z","0.3.8-alpha.0":"2026-06-24T06:17:47.601Z","0.3.8-alpha.1":"2026-06-24T08:03:35.781Z","0.3.8-alpha.2":"2026-06-24T09:34:59.412Z","0.3.8-alpha.3":"2026-06-25T01:37:22.437Z","0.3.8-alpha.4":"2026-06-25T04:20:32.884Z","0.3.8-alpha.5":"2026-06-25T06:48:11.024Z","0.3.9-alpha.0":"2026-06-25T11:13:15.077Z","0.3.9-alpha.1":"2026-06-25T12:15:31.625Z","0.3.9-alpha.2":"2026-06-27T02:28:55.729Z","0.3.9-alpha.3":"2026-06-27T05:54:20.145Z","0.3.9-alpha.4":"2026-06-28T03:31:45.352Z","0.3.9-alpha.5":"2026-06-28T11:29:28.356Z","0.3.9-alpha.6":"2026-06-28T12:54:31.814Z","0.3.9-alpha.7":"2026-06-29T03:04:46.376Z","0.3.9-alpha.8":"2026-06-29T06:10:23.298Z","0.4.0-rc.1":"2026-06-29T07:41:46.245Z","0.4.0-rc.2":"2026-06-29T15:43:00.164Z","0.4.0-rc.3":"2026-06-30T01:39:12.855Z","0.4.0-rc.4":"2026-06-30T03:27:46.317Z","0.4.0-rc.5":"2026-06-30T08:12:50.700Z","0.4.0-rc.6":"2026-06-30T13:59:06.551Z","0.4.0-rc.7":"2026-07-01T04:46:07.132Z","0.4.0-rc.8":"2026-07-01T10:31:35.791Z","0.4.0-rc.9":"2026-07-01T11:48:03.460Z","0.4.0-rc.10":"2026-07-01T12:59:26.957Z","0.4.0":"2026-07-01T13:15:12.265Z","0.5.0-rc.1":"2026-07-01T17:36:18.228Z","0.4.1-rc.1":"2026-07-02T01:05:46.871Z","0.4.1-rc.2":"2026-07-02T02:21:18.730Z","0.5.0-rc.2":"2026-07-02T09:02:12.447Z","0.5.0":"2026-07-02T18:00:33.068Z","0.6.0-rc.1":"2026-07-03T10:03:12.150Z","0.6.0-rc.2":"2026-07-04T04:34:27.641Z","0.6.0-rc.3":"2026-07-04T13:34:25.833Z","0.6.0-rc.4":"2026-07-05T01:57:01.845Z","0.6.0":"2026-07-05T04:06:25.383Z","0.7.0-rc.1":"2026-07-11T15:06:44.615Z","0.7.0-rc.2":"2026-07-12T07:32:23.082Z","0.7.0-rc.3":"2026-07-14T06:20:44.604Z","0.7.0-rc.4":"2026-07-17T05:55:34.122Z","0.7.0-rc.5":"2026-07-17T09:25:36.557Z","0.7.0-rc.6":"2026-07-17T11:16:40.660Z","0.7.0-rc.7":"2026-07-17T13:43:46.711Z","0.7.0-rc.8":"2026-07-17T15:51:33.447Z","0.7.0":"2026-07-17T18:07:39.594Z","0.8.0-beta.1":"2026-07-26T01:23:19.860Z","0.8.0-beta.2":"2026-07-26T14:19:12.528Z","0.8.0-beta.3":"2026-07-26T16:10:47.794Z","0.8.0-beta.6":"2026-07-28T14:32:17.998Z","0.8.0-beta.7":"2026-07-28T21:14:14.844Z","0.8.0-beta.8":"2026-07-28T23:49:12.700Z","0.8.0-beta.9":"2026-07-29T04:03:01.387Z","0.8.0-beta.10":"2026-07-30T00:14:29.186Z","0.8.0-beta.11":"2026-07-30T02:31:26.186Z","0.8.0-beta.12":"2026-07-30T04:35:00.935Z","0.8.0-beta.13":"2026-07-30T09:52:17.887Z","0.8.0-beta.14":"2026-07-31T01:41:53.004Z","0.8.0-beta.15":"2026-08-01T14:44:23.111Z","0.8.0-beta.16":"2026-08-01T17:03:25.947Z","0.8.0-beta.18":"2026-08-02T00:11:37.286Z","0.8.0-beta.19":"2026-08-02T05:13:06.104Z","0.8.0-beta.20":"2026-08-02T08:06:10.943Z","0.8.0-beta.21":"2026-08-02T10:22:44.362Z","0.8.0-beta.22":"2026-08-02T12:38:51.936Z","0.8.0-beta.23":"2026-08-03T01:11:00.231Z","0.8.0-beta.33":"2026-08-08T15:55:42.118Z","0.8.0-beta.34":"2026-08-09T00:45:34.943Z","0.8.0-rc.1":"2026-08-09T06:06:11.729Z","0.8.0":"2026-08-09T06:44:50.236Z","0.8.1":"2026-08-09T10:11:21.416Z","0.8.2":"2026-08-10T04:26:08.088Z","0.8.3":"2026-08-11T06:14:42.559Z","0.8.4":"2026-08-11T09:44:47.858Z","0.8.6":"2026-08-12T13:07:36.958Z","0.8.7":"2026-08-13T08:14:42.126Z","0.8.8":"2026-08-14T08:57:29.403Z","0.8.9":"2026-08-17T10:35:07.748Z","0.8.10":"2026-08-17T12:51:47.746Z","0.8.11":"2026-08-19T22:28:08.656Z","0.8.12":"2026-08-20T04:16:46.696Z","0.8.14":"2026-08-20T08:57:34.844Z","0.8.15":"2026-08-21T13:01:02.938Z","0.8.16":"2026-08-21T16:08:11.275Z","0.8.17":"2026-08-21T18:44:53.119Z","0.8.19":"2026-08-21T21:18:15.789Z","0.8.20":"2026-08-21T22:44:19.378Z","0.8.21":"2026-08-22T00:06:05.255Z","0.8.22":"2026-08-22T01:34:28.946Z","0.8.23":"2026-08-22T03:41:38.891Z","0.8.24":"2026-08-22T05:21:16.164Z","0.8.25":"2026-08-22T06:35:28.072Z","0.8.26":"2026-08-22T07:47:15.070Z","0.8.27":"2026-08-24T01:50:17.796Z","0.8.28":"2026-08-24T05:01:49.162Z","0.8.29":"2026-08-24T11:35:12.491Z","0.8.30":"2026-08-24T14:53:54.939Z","0.8.31":"2026-08-24T16:32:06.000Z","0.8.32":"2026-08-25T02:01:06.199Z","0.8.33":"2026-08-29T13:03:23.999Z","0.8.34":"2026-08-29T14:32:20.227Z","0.8.35":"2026-08-29T16:02:40.944Z","0.8.36":"2026-08-29T18:09:23.952Z","0.8.37":"2026-08-29T19:57:03.123Z","0.8.38":"2026-08-29T21:12:01.131Z","0.8.39":"2026-08-30T03:09:10.910Z","0.8.40":"2026-08-30T05:38:12.450Z","0.8.41":"2026-08-30T07:33:42.122Z","0.8.42":"2026-08-30T13:50:12.718Z","0.9.0":"2026-08-31T06:14:02.432Z","0.9.1":"2026-08-31T08:00:01.279Z","0.9.2":"2026-08-31T12:50:34.967Z","0.10.0":"2026-08-31T16:43:08.953Z","0.11.0":"2026-09-02T14:58:16.788Z","0.12.0":"2026-09-02T17:00:53.094Z","0.13.0":"2026-09-03T03:20:39.834Z","1.0.0":"2026-09-05T15:24:04.600Z","1.1.0":"2026-09-07T10:28:12.872Z"},"bugs":{"url":"https://github.com/jyt6640/persona-harness/issues"},"license":"Apache-2.0","homepage":"https://github.com/jyt6640/persona-harness#readme","keywords":["ai-agent","ai-coding","agent-review","agentic-workflows","ai-workflow","cli","coding-agents","developer-tools","evidence","gradle","java","opencode","persona-harness","spring","spring-boot"],"repository":{"url":"git+https://github.com/jyt6640/persona-harness.git","type":"git"},"description":"Evidence-first Java/Spring AI coding workflow with portable skills for OpenCode, Codex, Claude Code, and Antigravity.","maintainers":[{"name":"black_bear","email":"jyt6640@naver.com"}],"readme":"<!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->\n\n<div align=\"center\">\n\n<img src=\"img/Persona-Harness-Logo.png\" alt=\"Persona Harness logo\" width=\"180\">\n\n# Persona Harness\n\n**Project philosophy, conventions, and evidence-first workflows for AI coding agents, with portable skills and a Java/Spring workflow rail.**\n\n[![npm version](https://img.shields.io/npm/v/persona-harness?color=369eff&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)\n[![npm downloads](https://img.shields.io/npm/dt/persona-harness?color=ff6b35&labelColor=black&style=flat-square)](https://www.npmjs.com/package/persona-harness)\n[![node](https://img.shields.io/badge/node-%5E20.17.0%20%7C%7C%20%3E%3D22.9.0-c4f042?labelColor=black&style=flat-square)](https://nodejs.org)\n[![License](https://img.shields.io/badge/license-Apache--2.0-white?labelColor=black&style=flat-square)](./LICENSE)\n\n[English](https://github.com/jyt6640/persona-harness/blob/main/README.md) | [한국어](https://github.com/jyt6640/persona-harness/blob/main/docs/current/README.ko.md) | [日本語](https://github.com/jyt6640/persona-harness/blob/main/docs/current/README.ja.md) | [简体中文](https://github.com/jyt6640/persona-harness/blob/main/docs/current/README.zh-cn.md)\n\n**[Start Here](docs/START-HERE.md) · [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md)**\n\n[Astra migration, prompts, and AGENTS.md (한국어)](docs/current/astra-migration-guide.ko.md)\n\n</div>\n\n<!-- </CENTERED SECTION FOR GITHUB DISPLAY> -->\n\n## See it in 30 seconds\n\n**The problem:** an AI coding agent says \"Done!\" after a Java/Spring change,\nbut the test, build, and review evidence behind that claim is missing or stale.\n\n**Install from a project directory:**\n\n```bash\nnpm install -D persona-harness && npx ph init && npx ph bootstrap backend\n```\n\n**Give the agent one concrete backend goal, then ask the gate to verify it:**\n\n```bash\nnpx ph go \"Add a task creation endpoint.\"\nnpx ph workflow finish implement\n```\n\nFor an explicitly selected product-discovery conversation that can carry only\napproved decisions across Codex, Claude Code, OpenCode, and Antigravity:\n\n```bash\nnpx ph interview start --json\n```\n\n**What has actually been observed:** a simple forged-evidence fixture is\nignored and `finish` exits `1`; the opt-in TDD rail blocked green-only\ncompletion in 5/5 measured runs. Runtime injection did not improve the paired\nOpenCode measurements and added cost, so it remains default-off. Compact\nshared-skill routing is separate, defaults on after `ph init`, and can be\ndisabled with `features.sharedSkillRouting: false`.\n\n**Built for:** Java/Spring/Gradle projects with explicit workflow gates and\nevidence checks. `ph init` materializes portable, project-local skill adapters\nfor Codex, Claude Code, OpenCode, and Antigravity. Static adapter installation\nis package behavior; a host's live skill selection and delivery are separate\nobservation boundaries.\n\n**Not a promise of:** automatic implementation, generated-app quality,\nproduction readiness, token savings, or broad security guarantees.\n\n**Start with:** [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md) · [Install guide](docs/START-HERE.md)\n\n> [!IMPORTANT]\n> **Versioned, evidence-first.** Live registry channels, tags, GitHub releases,\n> and audit lifecycle facts are maintained by governed workflows and release\n> records; source release notes are inputs, not standalone proof. Runtime\n> injection remains **default-off / opt-in**. See\n> [`docs/current/p3-integrity-roadmap.md`](docs/current/p3-integrity-roadmap.md),\n> [`docs/MEASURED-CLAIMS.md`](docs/MEASURED-CLAIMS.md), and\n> [`injection-value-status.json`](docs/current/injection-value-status.json).\n\n## Measured Behavior\n\nUnlike most agent-harness projects, PH publishes what it has actually measured — including negatives.\n\n- **Simple forged TDD evidence fixture** planted before `workflow finish` → `finish` exits **1**, forged file ignored.\n- **Green-only completion** with the TDD rail on → blocked **5/5** (vs allowed 5/5 off). Measured against the pre-authority gate; `finish` now also requires external authority in every configuration, so the \"allowed\" arm is no longer reproducible as written.\n- **Runtime injection**, 10 paired OpenCode runs → equal success (10/10 both), but PH ON cost more on every pair → kept **default-off**.\n- **Observer findings surfaced to the agent**, 10 paired OpenCode runs → remaining violations did not drop (3.50 off vs 3.80 on) → kept **default-off**.\n\nCompletion-integrity measurements are bounded local fixtures. They are *not*\ntoken-saving, app-quality, product-efficacy, security, GA, or broad\nanti-forgery claims. Full boundary and P3 hold:\n**[docs/MEASURED-CLAIMS.md](docs/MEASURED-CLAIMS.md)** and\n**[docs/current/p3-integrity-roadmap.md](docs/current/p3-integrity-roadmap.md)**.\n\n## What it is\n\nA workflow + evidence CLI (`ph`) with an optional OpenCode plugin, for Java/Spring backend work done by AI agents. It:\n\n- turns a project idea or README into implementation tickets;\n- keeps the agent on a repeatable backend workflow;\n- runs verification through bounded commands;\n- records local evidence of what was read, run, and finished;\n- can block completion when required reports or evidence for defined gates are\n  missing.\n\nPersona Harness exposes two deliberately separate tracks:\n\n- **Workflow Integrity** is the existing evidence and completion-gate product.\n- **Context Personalization (Experimental)** is a local, default-off path for\n  targeted convention guidance. Enabled adapters offer a bounded Context block\n  after safe observed file targets. Version 1.1.0 adds\n  Codex and Claude plugin hooks alongside OpenCode; this does not establish\n  live model receipt or grant completion authority.\n\n### Context Boundary\n\n- **Activation:** `context.enabled` is explicit and `default-off`; it does not\n  inherit broad runtime guidance switches.\n- **Authority:** Context is `non-authoritative`: it cannot grant completion or\n  verification authority.\n- **Isolation:** Context-only paths do not execute project commands or contact\n  GitHub/network.\n- **No inferred skill route:** for the existing OpenCode route, a Context-only or partial `.persona` directory\n  without the regular manifest created by `ph init` does not enable automatic\n  shared-skill routing or an interview. Resolve the project state explicitly\n  before enabling those routes.\n- **Host:** `ph init` installs static skill adapters for Codex, Claude Code,\n  OpenCode, and Antigravity. The packaged Codex/Claude hooks add\n  bounded session guidance and targeted Context transport after host trust.\n  Actual delivery and behavior remain separate observations; see the\n  [portable host boundary](docs/current/portable-host-adapters.md).\n- **Evidence:** Context usefulness remains `INCONCLUSIVE` until independent\n  external evidence exists.\n- **Product focus:** the productized workflow focus is Java/Spring. The\n  TypeScript reference implementation and fixtures support this experimental\n  Context boundary; they are not a TypeScript code-quality claim.\n\nContext configuration is separate from legacy runtime guidance switches. A\nmissing block stays disabled. An explicit `context.enabled` setting controls\nonly the targeted Context adapter; it does not enable legacy runtime guidance,\nwrite configuration, or create workflow/evidence/authority state:\n\n```jsonc\n{\n  \"context\": {\n    \"enabled\": false,\n    \"mode\": \"targeted\",\n    \"maxCapsules\": 8,\n    \"maxChars\": 1600\n  }\n}\n```\n\nOnly `targeted` is accepted. Invalid or unknown Context fields leave Context\ndisabled with a bounded diagnostic; they do not inherit enablement from\n`features.runtimeInjection` or `features.projectPhilosophyInjection`.\n\n`ph context status` is available as a read-only local inspection of that\nconfiguration and an optional safe Team Profile. `ph context preview\n<target-file>` accepts a safe project-relative path without opening the target,\nthen renders a deterministic local Context Envelope from product invariants,\nstarter defaults, and any available Team or personal rules. It remains an\ninspection surface: it neither enables Context nor delivers to a host.\n`ph context explain <target-file>` renders the envelope's bounded selection,\nshadowing, resolution, budget, and digest metadata without exposing rule text.\nBoth inspection commands are read-only: they do not enable Context, activate a\nhost adapter, or create state. Bare `ph context init` remains a no-write\npreview. `ph context init --enable` creates only the minimal Context config in\na fresh safe project; it refuses to overwrite an existing harness config and\ndoes not change legacy feature flags. `ph context doctor` reports the actual\nlocal configuration and Team Profile state, including the bundled OpenCode 1.x\nadapter. It cannot prove that a particular OpenCode session has loaded the\nproject plugin.\n\n### Context Lifecycle\n\nContext configuration lives only in `.persona/harness.jsonc`. Inspect the\ncurrent local state before changing it:\n\n```bash\nnpx ph context status\n```\n\nFor a safe project with no existing harness configuration, create the minimal\nopt-in configuration explicitly:\n\n```bash\nnpx ph context init --enable\n```\n\nThe command does not overwrite an existing `.persona/harness.jsonc`. For an\nexisting harness configuration, review and preserve the file, then manually\nmerge only this top-level `context` object using its existing JSONC style:\n\n```jsonc\n{\n  \"context\": {\n    \"enabled\": true,\n    \"mode\": \"targeted\",\n    \"maxCapsules\": 8,\n    \"maxChars\": 1600\n  }\n}\n```\n\nTo disable Context while keeping its bounded settings for a later opt-in, set\n`context.enabled` to `false`. A missing `context` object is also disabled by\ndefault. Remove only the `context` object when it is no longer wanted; do not\ndelete a shared `.persona/harness.jsonc` that contains other Persona Harness\nconfiguration. To roll back a tracked change, review local edits and restore\nthe previous tracked configuration through your normal version-control flow.\n\nThese lifecycle actions do not enable `features.runtimeInjection`, and they do\nnot create workflow, evidence, or authority state or use network or GitHub.\n\nWith Context enabled, the OpenCode adapter collects safe observed\nproject-relative targets from supported file tools, including multi-file patches.\nIt resolves one current profile snapshot for the entire pending batch,\nrejects invalid/unsafe/budget-exceeding input without a rule payload, and\nprepends the selected bounded capsule content to the next user message for the\nsame session. It suppresses a duplicate only when the exact synthetic block is\nvisible in the current model input; it does not assume retained delivery from\nan earlier transform. It does not infer a target from the prompt, inject a full skill\ncatalog, access the network, execute shell commands, or write workflow,\nevidence, or authority records. The adapter's actual behavior in a live\nOpenCode release remains a separate host-observation boundary.\n\n`ph init` materializes the bundled Persona-owned shared-skill catalog at each\nhost's project-local discovery path. An enabled host routing layer can select\nthe product interview for an ambiguous product idea; the direct portable\n`ph interview` CLI remains explicit/default-off. The interview asks one question\nat a time and requires explicit brief approval; adapters never create workflow\nstate or invoke host agents automatically. When an installed host\nintegration sees a relevant request in a new project, it may first show a\nsingle `(PH) Setup` recommendation instead of starting a skill. The proposal\ndoes not write files or run commands; only a later explicit acceptance permits\nthe existing `npx ph init` command to create `.persona` and its managed host\nregistration. See [Persona Shared Skills Core](docs/current/persona-shared-skills-core.md).\n\nIt is **not** a code-quality guarantee, a token-saving product, a broad linter,\nproof that generated apps are production-ready, or a strong completion-integrity\nguarantee before P3 closes. Every claim broader than the measured gates must be\nearned by measurement first — see [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).\n\n## Install\n\nRequires Node.js ^20.17.0 || >=22.9.0 (Node 21 is unsupported). Java 21+ /\nGradle are required for the Java/Spring workflow rail. Install the coding-agent\nhost you already use separately; OpenCode is optional unless you want its\nplugin-only Context delivery.\n\n```bash\n# Any supported host project\nnpm install -D persona-harness\nnpx ph init\nnpx ph doctor\n```\n\n`ph init` installs host-native discovery files without requiring a\nPersona-specific launch command. See the [portable host adapter guide](docs/current/portable-host-adapters.md)\nfor the generated paths, host-specific limits, and safe update procedure.\n\n## Quick Start\n\nFor a clean project directory (not the Persona Harness repo itself):\n\n```bash\nmkdir -p /tmp/ph-demo && cd /tmp/ph-demo && npm init -y\nnpm install -D persona-harness\n\nnpx ph init                 # minimal integration files only\nnpx ph bootstrap backend    # AGENTS.md, profile, plan, report templates\nnpx ph go \"Add a task creation endpoint.\"\n```\n\n`ph init` writes manifest-owned shared-skill adapters beneath `.agents/skills`,\n`.claude/skills`, and `.opencode/skills`. It refuses a modified, user-owned, or\nsymlinked generated target instead of overwriting it. The generated files make\nthe catalog discoverable to the host; they do not prove that a running session\nselected a skill or grant a workflow command any authority.\n\nFor an existing Java/Spring/Gradle project, inspect the inferred draft first,\nthen accept it explicitly:\n\n```bash\nnpx ph attach\nnpx ph attach --yes\n\n# Only for a recognized weak Persona Harness installation, never a ready one:\nnpx ph attach --repair --yes\n```\n\n`attach` refuses unrecognized or corrupt existing Persona Harness files rather\nthan overwriting them, and it rejects repair for an already-ready attachment.\nA successful attach enables PH-run verification and the narrow\n`projectPhilosophyInjection` default: when a ready project profile has one safe\n`philosophy.project` convention, it is available automatically as project-local\nguidance. It does not enable the broader `runtimeInjection`,\n`systemConstitution`, `idleContinuation`, or Ralph loop rails, which remain off.\n\nIf bootstrap workspace intake or `attach --repair --yes` stops, do not repeat\nthe repair blindly. Run `npx ph workflow diagnose` first. It is read-only and\nclassifies the workspace, active workflow artifacts, retained history, and the\ncurrent source-read prerequisite; see [workflow intake troubleshooting](docs/troubleshooting/workflow-intake.md).\n\n`ph go` is the host-neutral single entry for one concrete implementation\nrequirement after bootstrap and plan acceptance. It captures the requirement,\ncreates and selects the ticket, and prints the existing implementation rail;\nit does not require a runtime hook or enable runtime injection. The agent should\nfollow that rail and end with `npx ph workflow finish implement`. Its workflow\nconflict preservation applies to cooperative local PH/user writers and does not\naddress hostile same-user filesystem path replacement.\n\n### Opt-in project updates\n\nProject-local updates are off by default. In an intact Persona Harness project,\nopt in with:\n\n```bash\nnpx ph update enable --yes\nnpx ph update status --json\n```\n\nOn a later OpenCode session, Persona Harness makes one bounded npm `latest`\ncheck in the background. If a newer stable version exists, it updates only the\nactive exact `persona-harness@<version>` plugin pin and its owned init manifest;\nthe already-running session, rules, profile, workflow files, and other plugins\nare left alone. The new pin is picked up by the following session. Disable it\nwith `npx ph update disable --yes`.\n\nOlder projects attached through a disposable staging directory can have a\nvalid-looking manifest that still binds that temporary path. If `ph update\nenable --yes` reports `ownership-unavailable`, run the explicit recovery once:\n\n```bash\nnpx ph update repair --yes\nnpx ph update enable --yes\n```\n\nRecovery recognizes only that bounded legacy attach shape. It replaces the\nlegacy absolute Persona Harness plugin entry with the installed versioned npm\nspecifier and rebinds the manifest to the current project. It preserves other\nOpenCode configuration and never overwrites changed rules, profiles, workflow\nstate, or `.gitignore`; malformed, symlinked, foreign, or ordinary projects are\nleft unchanged.\n\nThis automatic update path is OpenCode-plugin-specific. It does not rewrite the\nportable host adapter trees. After upgrading the npm package, run `npx ph init`\nto refresh only unchanged Persona-owned adapters; modified, user-owned, or\nsymlinked adapter files stay blocked rather than being overwritten.\n\n> [!NOTE]\n> If `workflow finish` fails, the agent must fix the reported blocker before claiming completion. **That failure is the product working, not a bug.**\n\n> [!IMPORTANT]\n> `workflow finish` cannot reach a trusted PASS from a purely local checkout. Clearing every content gate still leaves `trusted-authority-required`, because only a verified external attestation from an enrolled repository grants finish authority. Enrol one with `npx ph authority`, and run `npx ph doctor` to see the current `Finish authority` and `Consumer authority` state before you rely on the gate.\n\nThree-beat setup, gate, and goal-entry walkthrough: **[Quick Demo](docs/QUICK-DEMO.md)**. Repository maintainers and reviewers can run the separate exact-package Gradle/JUnit contract: **[Full cooperative verification demo](docs/QUICK-DEMO.md#full-cooperative-verification-demo)**.\n\n## Maintainer verification\n\nFrom a source checkout, the commands have deliberately different scopes:\n\n```bash\nnpm test                    # source checkout: fast tests; installed tarball: CLI smoke\nnpm run test:unit           # focused pure resolver/config/adapter tests\nnpm run test:integration    # focused profile/runtime/package-policy integration\nnpm run test:smoke          # build plus packaged CLI help smoke\nnpm run test:package        # fresh tarball and installed-package contract\nnpm run test:full           # complete repository/release contract\nnpm run test:repository:parallel           # parallel-safe Vitest project\nnpm run test:repository:resource-sensitive # isolated fixture-heavy Vitest project\nnpm run test:repository:fast               # both PR test projects, sequentially for local use\nnpm run test:repository     # full repository contract for release: policy, docs, all tests, and clean-package checks\nnode scripts/verify-cooperative-finish-demo.mjs # exact packed-package Java/Spring Gradle/JUnit demo\n```\n\nThe required `Verify repository` aggregate waits for policy, typecheck, build,\nand both Vitest projects on pull requests. On `main` pushes it additionally\nrequires the authoritative clean-package boundary, Linux source and installed\npackage surfaces, and the exact cooperative demo. Release and publish workflows\nretain the full `test:repository` contract. These commands establish their\nnamed contracts; they do not certify generated application quality or external\nFinish authority.\n\nFor the measured CI decision and operational failure modes, see [CI fast\nfeedback troubleshooting](docs/troubleshooting/ci-fast-feedback.md).\n\n## TDD Rail (opt-in)\n\nEnable both settings in `.persona/harness.jsonc`:\n\n```json\n{ \"enforce\": { \"executeVerification\": true, \"tdd\": true } }\n```\n\n`ph workflow test` is intended to record red evidence from PH-run Gradle/JUnit\nfailures, and `workflow check` / `archive` / `finish` record green evidence for\nthe same ticket/test id. Current P3 work is strengthening the authority model so\nunsigned project-local artifacts cannot satisfy finish authority by themselves.\nIt is a red-first completion gate; it does not scaffold tests, prove test\nsufficiency, run coverage/mutation, or certify app quality.\n\n## Commands\n\n```bash\nnpx ph attach [--yes]                                  # existing Java/Spring/Gradle project\nnpx ph go \"Add a task creation endpoint.\"                 # concrete single entry\nnpx ph workflow check | diagnose | implement | finish implement | archive <ticket-id>\nnpx ph workflow split README.md && npx ph workflow next   # multi-ticket\nnpx ph bearshell --shell 'gradle test'                    # bounded execution\nnpx ph evidence summary | metrics --json | ab-report --json | pminus-report --json\nnpx ph authority status | enroll github <owner/repository> --workflow <path> | fetch github [owner/repository]\nnpx ph feedback                                      # project-local tester feedback template\nnpx ph feedback dogfood source-read-runtime-unavailable # private bounded owner dogfooding event\nnpx ph observe src/main/java                              # Java/Spring observer findings\nnpx ph review backend-shape\n```\n\nRun `npx ph --help` for the full list. The workflow ledger lives under `.persona/workflow/` (`work/`, `history/`, `requirements/`).\n\n`ph feedback dogfood <code>` is intentionally separate from the project\nfeedback template. It records only a fixed diagnostic code and timestamp in\n`events.jsonl` inside the private owner state directory\n`~/.local/state/persona-harness/owner-dogfood-feedback`. Set\n`PH_OWNER_DOGFOOD_FEEDBACK_ROOT` only to an absolute replacement state\ndirectory; the command appends `events.jsonl` inside it. It does not capture\nproject files or conversation text, and it cannot grant workflow, release,\nauthority, or external-observation permission.\n\n## Advanced surfaces\n\nPreview integrations, shared-skill source material, Role Checklist Relay, and\ndeveloper MCP details are intentionally outside the Quick Start. Repository\ncontributors can use `docs/current/advanced-surface-index.md`; these surfaces\ndo not change the P0-3 root CLI discovery contract.\n\n## Platform And Host Support\n\n### Portable host adapters\n\n`ph init` materializes the same catalog into each host's project-local discovery\nlayout. This proves the installed package produced safe static files, not that a\nspecific live session loaded or followed one.\n\n| Host | Project-local adapter path | What the package establishes |\n| --- | --- | --- |\n| Codex and Antigravity | `.agents/skills/persona-harness-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |\n| Claude Code | `.claude/skills/persona-harness-claude-<skill-id>/SKILL.md` | Manifest-owned, host-neutral skill discovery metadata. |\n| OpenCode | `.opencode/skills/persona-harness-opencode-<skill-id>/SKILL.md` | Manifest-owned discovery metadata; the optional plugin remains a separate runtime boundary. |\n\nThe `.agents` and `.claude` adapters explicitly opt out of OpenCode automatic\ndiscovery so an OpenCode project receives one native candidate rather than\nduplicates. For the full ownership, upgrade, and non-claim boundary, read the\n[portable host adapter guide](docs/current/portable-host-adapters.md).\n\nThe npm package also ships verified, versioned Antigravity, Codex, and Claude\nCode plugin directories. `npx ph plugin path antigravity` prints the\npackage-local Antigravity plugin root, `npx ph plugin path codex` prints the\nCodex marketplace root, and `npx ph plugin path claude` prints the Claude\nplugin root. Those commands are read-only; installing, adding a marketplace,\nor loading a plugin remains an explicit host command. See the [portable host\nadapter guide](docs/current/portable-host-adapters.md#install-packaged-host-plugins)\nfor the exact commands and the boundary between static readiness and live host\nselection.\n\n### Node runtime floor\n\nThe packaged CLI and its product-owned Sigstore authority verifiers require\nNode.js ^20.17.0 || >=22.9.0. `ph doctor` reports this range without reflecting\nunsafe runtime input; a lower or malformed runtime blocks CLI authority work\nbefore verification. Repository source tests use a stricter Vite toolchain\nfloor (Node 20.19.0 or Node 22.12.0+), which is distinct from the published\npackage engine.\n\nOn a supported runtime, `ph doctor` makes fixed, read-only npm registry\nreadbacks for this installed package version's deprecation field and the\n`latest`, `next`, `staging`, and legacy (`legacy`/`alpha`) channels. Missing,\nmalformed, oversized, or unsafe registry data becomes a bounded diagnostic.\nRegistry channels never grant Finish authority. External assurance readiness is\na separate non-consuming inspection and does not move registry or trust state.\nFor a public enrolled project, `ph authority enroll github ...` requires an\ninteractive confirmation, and `ph authority fetch github` retrieves only a\nmatching original public artifact through fixed GitHub policy. `GH_TOKEN` (or\n`GITHUB_TOKEN`) is an in-memory credential with Actions read access only: it\nauthenticates fixed GitHub API requests and cannot supply repository, workflow,\nsource, digest, or redirect identity. An independent observer obtains its\nephemeral `GH_TOKEN` from an already authenticated host only immediately before\nthe read-only authority command, keeps the consumer `HOME` isolated, and never\nlogs or persists that credential. Persona Harness does not read a host keychain\nor provide a credential fallback. When more than one repository is enrolled,\npass the selected enrolled `owner/repository` to `fetch github`. Neither\ncommand publishes a package, moves a channel, or consumes Finish authority.\n\n| CLI/runtime surface | Status | Evidence boundary |\n| --- | --- | --- |\n| Linux CLI/package | Product: Node ^20.17.0 || >=22.9.0; source checks: Node 20.19.0 | Required Verify repository aggregates PR fast feedback and main package integration. Pull requests run policy, typecheck, build, and the two Vitest projects; main pushes additionally run Linux Node 20.19.0 source-built, packed-tarball, and fresh local-tarball installed checks. The dispatch-only support matrix retains exact product-floor Linux Node 20.17.0 and 22.9.0 imports plus latest Linux Node 20, 22, and 24 on demand. |\n| macOS CLI/package | Manual limited smoke | The dispatch-only support matrix retains macOS Node 22 smoke only; this is not a promise of macOS Node 20/24 coverage. |\n| Windows | Unverified / nonblocking | No Windows matrix job or support claim. Lock identity device/inode behavior and stale-lock/concurrency conclusions are not measured or verified. |\n\nAutomatic CI boundary: Verify repository is the required PR/main aggregate. Pull requests require only the fast feedback lanes; main pushes also require Linux Node 20.19.0 package integration. The dispatch-only support matrix is deferred multi-runtime evidence, not a required PR/main gate. It is distinct from the canonical clean-CI builder's main-push signed evidence and the ordinary path-filtered diagnostic selftest.\n\n## Boundaries & safety\n\nEvidence answers one bounded question — *\"What did this PH workflow observe for\nthis defined gate?\"* — and nothing more. PH does **not** promise app-quality\ncertification, token savings, Clean Code guarantees, broad AST/linter\nenforcement, a full TDD framework, closure guarantees, strong anti-forgery\nintegrity before P3, or a proven live workflow route on every host. The\ncanonical list is in [MEASURED-CLAIMS](docs/MEASURED-CLAIMS.md).\n\n> [!WARNING]\n> `ph bearshell` is **not a sandbox**. It limits runtime and output size, but commands still run on your machine with your permissions. See [SECURITY](SECURITY.md).\n\n## Docs\n\n- **New users** → [Start Here](docs/START-HERE.md) · [Quick Demo](docs/QUICK-DEMO.md) · [Measured Claims](docs/MEASURED-CLAIMS.md)\n- **Codex, Claude Code, OpenCode, or Antigravity** → [portable host adapter guide](docs/current/portable-host-adapters.md)\n- **Agent not following the rail?** → [Troubleshooting](docs/troubleshooting/README.md)\n- **Install & backend shape** → [MVP install guide](docs/current/java-backend-mvp-install-guide.md)\n- **Contributors** → [CONTRIBUTING](CONTRIBUTING.md) · [ROADMAP](ROADMAP.md) · [CODE_OF_CONDUCT](CODE_OF_CONDUCT.md)\n- **Release & measurement** → [release operations](docs/current/release/README.md) · [versioned release docs](docs/releases/README.md) · [package index](docs/releases/package-index.md) · [Changelog](CHANGELOG.md)\n- **Advanced repository surfaces** → `docs/current/advanced-surface-index.md`\n\n## Contributing\n\nContributions are welcome — including negative measurement results. PH only asserts what its evidence supports, and PRs that expand a claim must bring the measurement. Start with [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nApache-2.0. See [LICENSE](LICENSE).\n","readmeFilename":"README.md"}