{"_id":"@doraemon-hug-u/oh-my-harness","_rev":"19-66a880c9404cd02e2fa971205bd245a1","name":"@doraemon-hug-u/oh-my-harness","dist-tags":{"latest":"0.3.8-beta.0"},"versions":{"0.0.1":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.0.1","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.0.1","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"cf4352881db31a52442bd263c8dfe18e3be41556","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.0.1.tgz","fileCount":40,"integrity":"sha512-Nczd/oNpMm2IDaHCY/jE0rPbmiLDtr1W35qswIgpy0s+N4MuguJMzXEgitreK/5TEe1UmH1H8Oy+KrHafbqwjQ==","signatures":[{"sig":"MEQCIHPbp2tdxzI2rbmmwGNi/88rsGXuzCMfjLpBArWVUhOXAiBHqFnRfLRzW6hUd+BYpHjbqWJNqgvQyih5e/si1DEWSw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":135461},"type":"module","engines":{"node":">=18"},"gitHead":"8a17a0ebe1dbe3ee261951471c11802a881173bd","scripts":{"dev":"tsx src/cli.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.0.1_1779623167321_0.22029881545950336","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.1.1","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.1.1","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"d823b5e7238c835761dc5132562d1e1c5fe2cb2f","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.1.1.tgz","fileCount":40,"integrity":"sha512-MQg5Y1ZVobAor6xcBIzWFfzkYXkadkxlS0kkx8QXYQA7fD79hI0nrl8HwBFGkbg/NuoLwL//L1dfMXo4iPxkfA==","signatures":[{"sig":"MEUCIH/kfZSDuWhaV+/BZipVZzDP1pAnDnzoQ76o+2MRJ3sjAiEA/XYp4DOKOgdVc3ooK3WaAXsZlKqa/chulrfVT+lFRkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":136162},"type":"module","engines":{"node":">=18"},"gitHead":"c0126adffdf2f46d48bbcbe34a17994e0e8f3ec1","scripts":{"dev":"tsx src/cli.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.1.1_1779623964094_0.2724155478186554","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.0","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.0","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"ac4b724f5674be12d9559f2e0bcb51e5240f32f7","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.0.tgz","fileCount":58,"integrity":"sha512-5E2j4hF9a3qTXzpS0eRs7jKRx1UWmXYk18dAsnY7+9dAQitJaYieOA9ZmkUm4t7tcGQdSfC5lhHLnjA+VbBtEw==","signatures":[{"sig":"MEUCIDGIkqVDEgJrNQkhzW60rdsUM5sqi2h46SQFJ1wFC7ouAiEAwi1GvZQ00nT6ZEQIw+9Zjmn+uaL0pnIUF50uWcOE9KA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":200567},"type":"module","engines":{"node":">=18"},"gitHead":"4ffe1ed1bb740729a7641c9b82bd73d69f01e555","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.0_1779769513940_0.1451279601746729","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.1","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.1","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"590cdba66e72baf8afddcad65ad8041e3ce7e882","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.1.tgz","fileCount":59,"integrity":"sha512-ymUhdS5V4VaIPBqui9KBVp4LaU8/hmfCorNbb+ZztU291ftdPexqgcKkURtXOEhh4Ih3M9vW6atRLG6rJhNvIQ==","signatures":[{"sig":"MEUCIDsD4NQ05MadF+PDbH+apfZUzQ9dAkeCQT+8e9ku/GgUAiEAwdmts9wn1ZmaEO85RU74D5DJrqpRWMmf36pZ/AcBR9E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":204683},"type":"module","engines":{"node":">=18"},"gitHead":"45926c4b61f0c545369db60f90c9c9c397415c6f","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.1_1779770559746_0.9798842224145028","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.2","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.2","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"a68ac66d650ca724a4d7f61d39768795ecd6c8b8","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.2.tgz","fileCount":62,"integrity":"sha512-Ju75lEeamK9J67nxlwWko3MZ+9KXBeRwBbDxF2+VxoZZ4L2/5e4UaY8+fnsEwiIIE5XwJYnKen0ZhvqgSqR8Fg==","signatures":[{"sig":"MEYCIQDJWDe7a3EBkyvAM4m9+ylFyeyNNNejv//1E/058yXUzQIhALzMA5LXKKe16dSa/mKVUC0lWDRyTMw5vNf6NUy4UqGD","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":207072},"type":"module","engines":{"node":">=18"},"gitHead":"64c3dcd291f718b3cac59e9a3e5aea5b9355ab2f","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.2_1779771646567_0.08487282520670769","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.3","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.3","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"204100d40260867025e00037251e6e9382a29d81","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.3.tgz","fileCount":62,"integrity":"sha512-Un5pMQHPtNsI8zOzyY2ytoOscqvqumcBh4zCb4zMJ1zFG57qOVy0lUZpmieIK4uY+Cj3Lc8ct/30Xt1oXjy8Zg==","signatures":[{"sig":"MEUCIQC2N8TH1NnRDtAzgFM12Y6Pn6goGEopmmDx4eYmFt/nzAIgLZrUGPFozG2bkvrEst6zVE1L2s+8a8EjgNT/RxO+OE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206227},"type":"module","engines":{"node":">=18"},"gitHead":"b3541195266ceebd1dccfd0138b613fe50cc8896","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.3_1779772022808_0.948112332524744","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.4","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.4","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"e2faf53c333026e6d2c8824cff1bf43fbfa65531","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.4.tgz","fileCount":62,"integrity":"sha512-eE4hjbvm3b/Q52M/m1Sw8Uzy743BcLE5XcE+I1FdlbSPxSiAu8IHamJqcpvt3amVGV1GPmBpQkYzoD5pGr1oXA==","signatures":[{"sig":"MEQCIHlm618JUgExHIycJSqFl/t89DmtZqYo0HxJCrlYLItoAiBKFiWMrz50a/YGNOUdLfNjRhD2siqIeu/Ripn4kFOpVA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":206911},"type":"module","engines":{"node":">=18"},"gitHead":"5abe466ae54c74f39538aa4996a0cb8057c8eecc","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.4_1779772452351_0.6375579653169345","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.2.5","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.2.5","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"41787422ee4361ed8556b2812a963b601d239168","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.2.5.tgz","fileCount":62,"integrity":"sha512-XPYYecSyy+OI09Tso5d9UGe9RhNJOL3FyfEarumMjo3LyjOkMSdPvnoSYp0qM2LI0ciWVJWaJWrtX9UNu7IY6g==","signatures":[{"sig":"MEUCID3myfuGiJ5e0ghRrFVK/htw00B1ZtIQAjBMIwXng0knAiEAgKP+dbPJ6nS0uc1XEMrbG13/x7242dI+Kxjq4ha6riI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":205675},"type":"module","engines":{"node":">=18"},"gitHead":"a67239f150c51272c7c0569ba1c16cdedbd7e39a","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.2.5_1779775470824_0.9150431848096561","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.0","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.0","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"7b0176cb2b85cccccdc8e9974336a49f0307306a","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.0.tgz","fileCount":62,"integrity":"sha512-++qcifdDlGjFoc/Pk3/k/P0GuusQm7dFDtl2xf6MaKjiT0o7MofXiJCjRA3Jv90OOTXFuUbhTEsEBkU3IQ0j3Q==","signatures":[{"sig":"MEUCIASyDcyFKfoIv77a81+OCMx5LuJHTEJsv484c00vIYqJAiEAycoc0LMqmIAFa+uv3tyIlxHEtV6FW8cvBPMWPskl9KI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214328},"type":"module","engines":{"node":">=18"},"gitHead":"72919cce5eb31697561813919e64f1ba146c7870","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.0_1779784789439_0.672971780850226","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.1","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.1","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"5924ccb7828aabe6e3a69017fea59383f5a20d00","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.1.tgz","fileCount":62,"integrity":"sha512-aLQTPNxmeO8hKpDUxN9qLCWCiyJzS1Oe4MhETrDjo/ssRrODk67AQfnrkLj/h0GpoFsv0bGUJ+O00DE18QzVSw==","signatures":[{"sig":"MEUCIGuSghYhvO0HVuLA6R+FxgTYh3zsYWs9o7vtLZWk0dAeAiEA4K/vIVDMqogONAHRz650wLq6cAemPKzvcHQEUjcgIxo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214325},"type":"module","engines":{"node":">=18"},"gitHead":"4f4164395744070a0a76beb010f6796e8d5bc3ec","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.1_1779785374690_0.14949038903098044","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.2","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.2","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"976bf17978f782b67d410596bfc6b1926369103e","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.2.tgz","fileCount":61,"integrity":"sha512-Llngf0aRhSmPDJElxXuOCo0lFeGo4eO7RCjBbhtuyybTvRHzKrapn8DzcU4alNgx3qYI9czDNiWBRTQNo4GhlQ==","signatures":[{"sig":"MEYCIQDKHAGFTYgqG0IwMEqMH44zczVkBqttjLwUTNNK/ocaEQIhAKh0tsimFuga9dI2/2oqjf+tBuZDSzK2gmKzunAwD1g9","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":212982},"type":"module","engines":{"node":">=18"},"gitHead":"4f4164395744070a0a76beb010f6796e8d5bc3ec","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.2_1779848155995_0.05472254080810002","host":"s3://npm-registry-packages-npm-production"}},"0.3.3":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.3","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.3","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"2d11cccaab3084f6395c3de6a452af8a0ef94b22","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.3.tgz","fileCount":61,"integrity":"sha512-TqXp7vHw4dfrWxyX9avPcXRNMtEvpIK9hYkMH9aaHSwlPhfa8nuqqv62MtzwjPyKXSFtRAzzZjSUhgxGjVuFMg==","signatures":[{"sig":"MEUCIBKNBT9CD21xhgFwmid1bEyrhF7i1LlHlIxs88lghWjNAiEA4OHfgu18+Zn6H51D2pWiYI7UxLO36dKj6QcN2dd8cCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213023},"type":"module","engines":{"node":">=18"},"gitHead":"4f4164395744070a0a76beb010f6796e8d5bc3ec","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.3_1779854185065_0.9191095414023909","host":"s3://npm-registry-packages-npm-production"}},"0.3.4":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.4","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.4","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"3d685572815e75ebcb0855cdc32df2a171e54b21","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.4.tgz","fileCount":61,"integrity":"sha512-RSSyC9iPxOwTeICJ+mZJyQxXjm30zEnB3kZcsrdR9R/Ya1//tPF9g8XQaCklP7myawHBxB2epiuvLXd6Z5DKqw==","signatures":[{"sig":"MEYCIQC/4kGQLubKGZ/rrDzxDxO5E1xaeOHECGaBIE6Ns/B23wIhAJC/8Mp33YJQBlQkWkgIaxaI8nDeYGnLcjsflQp8ELvI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214358},"type":"module","engines":{"node":">=18"},"gitHead":"4f4164395744070a0a76beb010f6796e8d5bc3ec","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.4_1779880489567_0.6022450968103317","host":"s3://npm-registry-packages-npm-production"}},"0.3.4-beta.1":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.4-beta.1","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.4-beta.1","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"770fe4726d98f4a667306f877b709aa6ef25340b","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.4-beta.1.tgz","fileCount":61,"integrity":"sha512-mPfdIYzNi014M2nTN1lnW7XpspDdVVRA5czuqtSWWaveo2Vp77bi0RnLT4pxMQs5oiJmdKeDNBpbgAu/W9e+kg==","signatures":[{"sig":"MEUCIFjJMO7QDkqJyBN2UPnpAqHMBpbWBa/uOgEA5CBuc1t1AiEAsHu01tKVepsGrkWqNrRGq+mo5bEtZ1yjSUoJVTuCJVo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214522},"type":"module","engines":{"node":">=18"},"gitHead":"d3c4d06efa0df2da43cf4a544ce72a344c8abda8","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.4-beta.1_1779884878724_0.8411075607452716","host":"s3://npm-registry-packages-npm-production"}},"0.3.4-beta.2":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.4-beta.2","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.4-beta.2","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"70570ed5f2ba4310f83f2c585cd63a8adb1676da","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.4-beta.2.tgz","fileCount":61,"integrity":"sha512-JAuQVuG/0iW8E4V1Iwo1yWltuNy2De/yHYbS2wcQ12FTpKCBUcAj5gIq2dV61mWXGXvXrshmvzqzQ4PrGAHh1A==","signatures":[{"sig":"MEUCIQCnt/cTPae5IjEAM5CV98yE0r2OLCYliDmRpWn1YdPwbwIgYolJp+yrpn+VetJ6VXgSbwrv3q6SmKGG4CMh9KHfFmM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":214414},"type":"module","engines":{"node":">=18"},"gitHead":"76f7e0fd168d2a91159182c41f9b028ad1552ff7","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.4-beta.2_1779945612423_0.39486049255111766","host":"s3://npm-registry-packages-npm-production"}},"0.3.5":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.5","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.5","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"841a9e2029b8435feff44ccde63fd042f5798647","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.5.tgz","fileCount":69,"integrity":"sha512-Bx63GXYh2/FxsvKTsC9fsTPJucBCvH5B6Tdl31FaG5xS+KSSV7rb1y6+QOthrtMo9zBAS9tAjoV1qpbtDBCeAg==","signatures":[{"sig":"MEQCIFWmgJjrakDbeJa3wBhLs2ADPUMGpp9sGpohnFN+NScIAiAfBVHWYtSwlD13uEJTU4UoYDU7V1ZgAicSjXBvbetIWg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":306688},"type":"module","engines":{"node":">=18"},"gitHead":"f29e1dd4b2419e80bb210261687f009be70f27d2","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json && node scripts/sync-review-wait-skill-script.mjs","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.5_1780318591418_0.7236181613038297","host":"s3://npm-registry-packages-npm-production"}},"0.3.6":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.6","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.6","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"07d5a6bff086c64203934642d1d796d2d8cba4b2","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.6.tgz","fileCount":69,"integrity":"sha512-NHjjQEH5SW2bJaanX7fS2EUJL0hfu/VIw3+MVSouMxOaafSTCUpvulvVV8Tdygrkelh7MhoNblg866yv8YKX/A==","signatures":[{"sig":"MEYCIQCSmHV2PggPTmKejU2ofydNAojMqjxtRj9Hx6FvG5fJagIhANfCly1JbRanjv0nymYwW0FKH16KquGjqIfO4QXCtrAr","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":308443},"type":"module","engines":{"node":">=18"},"gitHead":"f7deed02e26c735d7a78b91f53553b4996ee4f4c","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json && node scripts/sync-review-wait-skill-script.mjs","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.6_1780320265751_0.2853180015776211","host":"s3://npm-registry-packages-npm-production"}},"0.3.7":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.7","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"author":{"name":"doraemon-hug-u"},"license":"MIT","_id":"@doraemon-hug-u/oh-my-harness@0.3.7","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"bin":{"oh-my-harness":"dist/cli.js"},"dist":{"shasum":"50a9716089cf951ce7482d4eeadaeca4aac6b7cc","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.7.tgz","fileCount":69,"integrity":"sha512-bCxY/vn9lnU/tsKAWo3EKeX3vkAr1qavTlUtoBSVwaz6xZ4BRmLR56FaiOwvLYq2lYyW4nn0I/rK/WtywYfhSQ==","signatures":[{"sig":"MEQCIBCQeqCBBHlyH+ic9rIHX4uNEEE7j8mfD+64pEqTJjRCAiA9OJSz9Syt+pPp8GaLTVuZl84YdsJwaNaefJPmy9YKNg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":309181},"type":"module","engines":{"node":">=18"},"gitHead":"e69e611f6d87cce72f8fd53d7f632c04482fd23e","scripts":{"dev":"tsx src/cli.ts","test":"node --import tsx --test src/**/*.test.ts","build":"tsc -p tsconfig.json && node scripts/sync-review-wait-skill-script.mjs","check":"tsc -p tsconfig.json --noEmit","prepare":"npm run build","prepublishOnly":"npm run check"},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"repository":{"url":"git+https://github.com/DoraemonHugU/oh-my-harness.git","type":"git"},"_npmVersion":"10.9.4","description":"Chinese-first Codex PR-first / plan-first implementation harness.","directories":{},"_nodeVersion":"22.22.0","dependencies":{"ink":"^5.2.1","react":"^18.3.1","@inkjs/ui":"^2.0.0","smol-toml":"^1.6.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.22.3","typescript":"^6.0.3","@types/node":"^25.9.1","@types/react":"^18.3.29"},"_npmOperationalInternal":{"tmp":"tmp/oh-my-harness_0.3.7_1780394406663_0.21585226573947325","host":"s3://npm-registry-packages-npm-production"}},"0.3.8-beta.0":{"name":"@doraemon-hug-u/oh-my-harness","version":"0.3.8-beta.0","description":"Chinese-first Codex PR-first / plan-first implementation harness.","license":"MIT","author":{"name":"doraemon-hug-u"},"repository":{"type":"git","url":"git+https://github.com/DoraemonHugU/oh-my-harness.git"},"homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"type":"module","bin":{"oh-my-harness":"dist/cli.js"},"publishConfig":{"access":"public"},"keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"engines":{"node":">=18"},"scripts":{"build":"tsc -p tsconfig.json && node scripts/sync-review-wait-skill-script.mjs","check":"tsc -p tsconfig.json --noEmit","dev":"tsx src/cli.ts","prepare":"npm run build","prepublishOnly":"npm run check","test":"node --import tsx --test src/**/*.test.ts"},"dependencies":{"@inkjs/ui":"^2.0.0","ink":"^5.2.1","react":"^18.3.1","smol-toml":"^1.6.1"},"devDependencies":{"@types/node":"^25.9.1","@types/react":"^18.3.29","tsx":"^4.22.3","typescript":"^6.0.3"},"_id":"@doraemon-hug-u/oh-my-harness@0.3.8-beta.0","gitHead":"fc77d301e0f7a958496eba5042224b56ace79aee","_nodeVersion":"22.22.0","_npmVersion":"10.9.4","dist":{"integrity":"sha512-OdGQMdAFRAxffcvgWnq8F78cXN4L3cGi0/DG0OA028wN5tys0GC6SsiVLtuWSv43KDHta7VvIWcvHdB8KDcnng==","shasum":"fbb5885d6f5fbf659274619959e4ea1a43cdb973","tarball":"https://registry.npmjs.org/@doraemon-hug-u/oh-my-harness/-/oh-my-harness-0.3.8-beta.0.tgz","fileCount":69,"unpackedSize":310117,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC5FuhIKW40/xGgINJfW+iGa/9Qo9I8cKF9SKYH2T8SbgIgD+0iRv+Dy7keujxNOojmMxcR2TLBz6u84RovIYzs2cw="}]},"_npmUser":{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"},"directories":{},"maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/oh-my-harness_0.3.8-beta.0_1780410873270_0.577344262591079"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-24T11:46:07.199Z","modified":"2026-06-02T14:34:33.548Z","0.0.1":"2026-05-24T11:46:07.502Z","0.1.1":"2026-05-24T11:59:24.871Z","0.2.0":"2026-05-26T04:25:14.091Z","0.2.1":"2026-05-26T04:42:39.905Z","0.2.2":"2026-05-26T05:00:46.715Z","0.2.3":"2026-05-26T05:07:02.982Z","0.2.4":"2026-05-26T05:14:12.519Z","0.2.5":"2026-05-26T06:04:30.991Z","0.3.0":"2026-05-26T08:39:49.590Z","0.3.1":"2026-05-26T08:49:34.837Z","0.3.2":"2026-05-27T02:15:56.176Z","0.3.3":"2026-05-27T03:56:25.212Z","0.3.4":"2026-05-27T11:14:49.767Z","0.3.4-beta.1":"2026-05-27T12:27:58.876Z","0.3.4-beta.2":"2026-05-28T05:20:12.564Z","0.3.5":"2026-06-01T12:56:31.617Z","0.3.6":"2026-06-01T13:24:25.875Z","0.3.7":"2026-06-02T10:00:06.800Z","0.3.8-beta.0":"2026-06-02T14:34:33.435Z"},"bugs":{"url":"https://github.com/DoraemonHugU/oh-my-harness/issues"},"author":{"name":"doraemon-hug-u"},"license":"MIT","homepage":"https://github.com/DoraemonHugU/oh-my-harness#readme","keywords":["codex","harness","cli","implementation-plan","pr-first","plan-first"],"repository":{"type":"git","url":"git+https://github.com/DoraemonHugU/oh-my-harness.git"},"description":"Chinese-first Codex PR-first / plan-first implementation harness.","maintainers":[{"name":"doraemon-hug-u","email":"okanelailalnul3567@gmail.com"}],"readme":"# oh-my-harness\n\n![npm version](https://img.shields.io/npm/v/%40doraemon-hug-u%2Foh-my-harness)\n![npm downloads](https://img.shields.io/npm/dm/%40doraemon-hug-u%2Foh-my-harness)\n![license](https://img.shields.io/npm/l/%40doraemon-hug-u%2Foh-my-harness)\n![node](https://img.shields.io/badge/Node.js-%3E%3D18-43853d)\n![typescript](https://img.shields.io/badge/TypeScript-6.0%2B-3178c6)\n\n语言: [简体中文](./README.md) | [English](./README.en.md)\n\n中文优先的 Codex / Claude Code / OpenCode `PR-first / plan-first` implementation harness。\n\n`oh-my-harness` 是一个用于初始化和运行 `PR-first / plan-first` 工作流的轻量 harness：它提供 CLI、仓库模板、skills 和可选的全局配置 patch，把 research、plan、PR 准备和 review 尽量放到更低成本的环境里，再把必要的本地代码编写、验证和交付留给本地 coding agent。\n\n## CLI 支持范围\n\n默认目标仍是 Codex。也可以通过 `--cli claude`、`--cli opencode` 或 `--cli all` 选择 Claude Code、OpenCode 或全部目标。\n\n最小交集策略：\n\n- Codex / OpenCode 使用 `AGENTS.md` 和 `.agents/skills/`。\n- Claude Code 单目标只使用 `CLAUDE.md` 和 `.claude/skills/`。\n- 多目标同时包含 Claude Code 和 Codex/OpenCode 时，`AGENTS.md` 作为共享 instruction 源，`CLAUDE.md` 只保留 `@AGENTS.md` 引用入口。\n- Codex 专用的 `~/.codex/config.toml` 和 `~/.codex/agents/*` 只在目标包含 Codex 时安装。\n- Claude Code 和 OpenCode 只额外安装 reviewer 子代理，不安装 explorer；Claude reviewer 固定 `model: opus`，OpenCode reviewer 不指定 model 以继承当前模型。\n- 不把 Codex agent TOML 直接转换为 Claude/OpenCode subagent 配置；不同 CLI 的 subagent 字段和加载语义不同，当前只安装可共享的 rules、skills 和 reviewer agent。\n\n## 从现在开始,合理利用你的订阅\n\n**把不能编码的额度花在 research、plan 和 review 上**\n\n**把 Codex 编码额度留给真正的代码修改。**\n\n**别把 Codex 浪费在重复读代码和审查上，把本地额度主要用于实现、验证和交付。**\n\n## harness 核心循环\n\n`research -> plan -> implementation -> review -> follow-up -> repeat`\n\n- `research`：确定研究问题,收集所需的上下文信息\n- `plan`：产出可执行的 `Implementation Plan`\n- `implementation`：在本地仓库中修改代码\n- `review`：验证是否满足plan\n- `follow-up`：接受、修复、补研究、重规划或拆分\n\n## 为什么选择 `@doraemon-hug-u/oh-my-harness`\n\n- **把只读工作移出本地 Codex**：先在 `ChatGPT`、`Grok` 等 Web 平台结合 `GitHub connector` 阅读仓库、收敛问题、整理 plan，再把本地 Codex 留给真正的实现。参考：[Connecting GitHub to ChatGPT](https://help.openai.com/en/articles/11145903-connecting-github-to-chatgpt)\n- **把 plan 和实现解耦**：plan 可以来自 Research PR、Issue、外部分析或人工整理；本地 Codex 只负责接手并实现。\n- **让云端和本地额度分工**：研究、plan 和 review 尽量放到更低成本的环境里；本地 Codex 专注实现和交付。参考：[Codex pricing](https://developers.openai.com/codex/pricing)、[Codex code review in GitHub](https://developers.openai.com/codex/integrations/github)\n\n![云端研究与本地实现分工](https://raw.githubusercontent.com/DoraemonHugU/oh-my-harness/main/docs/images/workflow-overview.png)\n\n> GPT Plus 订阅具有额外的20-50次的/5h 云端审查额度。且该额度不和codex额度共享。\n\n## 工作流示例\n\n### 完整闭环示例：大任务先研究，再拆实现\n\n1. 在 `ChatGPT` 网页版中，通过 `GitHub connector` 连接当前仓库，阅读代码、找问题、判断下一步推进方向。\n2. 如果任务较大，先创建一个 `Research PR`，再拆成 `1-3` 个 `Implementation PR`；如果任务较小，直接创建 `Implementation PR`。\n3. 在 `Implementation PR` 中带上对应的 `Implementation Plan`。\n4. 切换回本地 `Codex`，触发 `$harness` 直接接手这个 `PR / plan`。\n5. 由 `harness` 完成必要的本地代码编写、验证和交付。\n6. 审查优先交给云端 reviewer（例如 `@codex review`）；如果需要，也可以切到本地审查。参考：[Codex code review in GitHub](https://developers.openai.com/codex/integrations/github)\n7. 后续修复、补充验证和再次审查，继续在这条链路里收口，直到任务完成。\n\n### 最小闭环示例：小任务直接进入实现\n\n1. 在任何更低成本的环境里完成 research、边界收敛和 `Implementation Plan` 编写。\n2. 如果需要，就顺手创建 `Research PR` 或 `Implementation PR`。\n3. 回到本地 `Codex`，让 `$harness` 接手 plan。\n4. 本地只做必要的代码修改、验证、审查和交付，不再重复做一轮大范围只读研究。\n\n## 相关参考\n\n- [Codex code review in GitHub](https://developers.openai.com/codex/integrations/github)：`@codex review`、自动审查和 `AGENTS.md` review guidance 的官方说明\n- [Codex pricing](https://developers.openai.com/codex/pricing)：Codex Web / CLI / 云端审查能力与额度说明\n- [Connecting GitHub to ChatGPT](https://help.openai.com/en/articles/11145903-connecting-github-to-chatgpt)：将 GitHub 仓库连接到 ChatGPT 的官方教程\n- [Claude Code skills](https://code.claude.com/docs/en/skills)：Claude Code project skills 的 `.claude/skills/<name>/SKILL.md` 位置。\n- [Claude Code subagents](https://code.claude.com/docs/en/sub-agents)：Claude Code subagent 的 `.claude/agents/` 和 plugin agent 语义。\n- [OpenCode rules](https://dev.opencode.ai/docs/rules/)：OpenCode 的 `AGENTS.md` / `CLAUDE.md` rules 兼容。\n- [OpenCode skills](https://opencode.ai/docs/skills/)：OpenCode 对 `.opencode/skills`、`.claude/skills`、`.agents/skills` 的发现规则。\n- [OpenCode agents](https://opencode.ai/docs/agents/)：OpenCode 的 `.opencode/agents/` 和全局 `~/.config/opencode/agents/` agent 文件位置。\n\n\n## 主要功能\n它提供一套可初始化到目标仓库中的工作流骨架，包括 CLI、仓库模板、skills 和可选的全局配置 patch：\n\n- 按目标 CLI 写入 `AGENTS.md` / `CLAUDE.md`、`.github/`、`docs/specs/` 等模板\n- 按目标 CLI 安装项目级或全局级 skills\n- 目标包含 Codex 时 patch 全局 `~/.codex/config.toml` 和 `~/.codex/agents/*`\n- 用统一工作流把需求收敛到 `Implementation PR / Implementation Plan`\n\n## 安装\n\n推荐直接使用 `npx`：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness\n```\n\n如果你希望全局安装，再使用：\n\n```bash\nnpm install -g @doraemon-hug-u/oh-my-harness\n```\n\n安装后命令名仍然是：\n\n```bash\noh-my-harness\n```\n\n## 快速开始\n\n在交互终端里，推荐直接运行：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness\n```\n\n也可以显式写 `init`：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init\n```\n\n为指定目录预设目标路径，再进入多步向导：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init my-project\n```\n\n命令行参数不会绕过 TUI，而是作为默认值带入向导。例如：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init my-project --cli all --force --global --dry-run --lang en\n```\n\n在非交互环境中，`init` 会直接执行，不进入 TUI。例如：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init my-project --dry-run </dev/null\n```\n\n如果你要让 agent 在交互终端中也直接按参数执行，而不是进入 TUI，可以显式加上 `--no-tui`：\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init my-project --dry-run --no-tui\n```\n\n给 agent 单独看的说明见：[`docs/agent-init-no-tui.md`](./docs/agent-init-no-tui.md)\n\n`init` 还会自动完成两件基础初始化：\n\n- 如果目标目录还不是 Git 仓库，则自动执行 `git init`\n- 在目标项目中生成首个 `.oh-my-harness/tree.md`\n\n完成 `init` 后，在 Codex 中打开目标仓库，然后让 `$harness` 接手当前的 `Implementation PR` 或 `Implementation Plan`。例如：\n\n```text\nUse $harness to pick up the current implementation plan and complete the implementation PR.\n```\n\n## 首次配置流程\n\n如果你要把“低成本环境做 research / plan / review，本地 Codex 做实现”的完整闭环真正跑起来，建议按下面这条链路配置：\n\n1. 先确认本地 `gh` 已登录：\n\n   ```bash\n   gh auth status\n   ```\n\n   如果尚未登录，再执行 `gh auth login`。\n\n2. 准备 GitHub 私有仓库，并确保当前项目已经推送到该仓库。必要时可以直接在本地 Codex 中下达：\n\n   ```text\n   帮我提交当前的项目到 GitHub 的私有仓库中\n   ```\n\n3. 在目标仓库执行 `init`，把工作流模板、skills 和基础配置写入当前项目：\n\n   ```bash\n   npx @doraemon-hug-u/oh-my-harness init\n   ```\n\n   然后把这批初始化文件提交并 push。云端侧后续会直接依赖这些文件，尤其是 `AGENTS.md`、`docs/specs/agent-workflow.md` 和 `.oh-my-harness/tree.md`。\n\n4. 打开 [Connecting GitHub to ChatGPT](https://help.openai.com/en/articles/11145903-connecting-github-to-chatgpt)，在 `https://chatgpt.com/codex/cloud/settings/connectors` 把你的 GitHub 账号连接到 ChatGPT，并选择当前开发仓库。\n\n5. 打开 [Codex code review in GitHub](https://developers.openai.com/codex/integrations/github)，在 `https://chatgpt.com/codex/cloud/settings/code-review` 启用代码审查，但不要启用自动审查。配置方式可参考下图：\n\n   ![云端代码审查配置示意图](https://raw.githubusercontent.com/DoraemonHugU/oh-my-harness/main/docs/images/code-review-settings.png)\n\n6. 回到 ChatGPT Web，通过 GitHub connector 连接到当前仓库，先让它阅读 `docs/specs/agent-workflow.md`，再分析下一步方向。常用提示词可以直接写成：\n\n   ```text\n   通过 GitHub connector 连接到 {仓库}，先阅读 docs/specs/agent-workflow.md，然后分析我们的下一步方向。\n   ```\n\n7. 根据分析结果，在云端侧提交 `Research PR` 或直接提交 `Implementation PR`。大任务通常先创建一个 `Research PR`，再拆成 `2-3` 个 `Implementation PR`；小任务可以直接创建 `Implementation PR`。常用提示词可以写成：\n\n   ```text\n   根据分析结果，帮我提交一个研究性 PR，涵盖 1、2、3、4、5 问题，并分成 2-3 个实现 PR。\n   ```\n\n8. 在云端侧确认 PR 创建、文件写入和 plan 更新；如果有 `Implementation PR`，先在对应 PR 中自检和审查 plan。\n\n9. 回到本地 Codex 或其他本地编程环境，让 `$harness` 接手实现 PR。你的常用输入可以直接写成：\n\n   ```text\n   $harness 接手实现 pr2、pr3、pr4，其中研究性 pr 是 pr1\n   ```\n\n10. 本地实现进行中时，云端侧可以继续研究其他模块、补充后续 `Research PR / Implementation PR / Plan`。最终收集所有结果，合并实现 PR，并同步本地仓库。\n\n## TUI 向导\n\n`init` 向导当前是固定 7 步：\n\n1. 输出语言\n2. 目标目录\n3. 目标 CLI（可多选）\n4. 安装范围（project / global）\n5. `--force`\n6. `--dry-run`\n7. 确认执行\n\n说明：\n\n- `Esc` 返回上一步；在第一步按 `Esc` 或任意步骤按 `q` 退出。\n- `npx @doraemon-hug-u/oh-my-harness` 与 `oh-my-harness init` 在交互终端里都会进入这个向导。\n- 命令行参数仍然保留，因为在脚本化或快速预设默认值时更方便。\n- 在“目标 CLI”步骤中，使用 `Space` 切换勾选，使用 `Enter` 确认并继续。\n- 每一步下方都会显示当前配置对应的 dry-run 预览；该预览不会实际写文件。\n- 宽终端会把“当前步骤”和“说明 / dry-run 预览”并排显示；窄终端会自动回退成上下布局。\n- 顶部会显示当前版本；如果 npm registry 上有更新版本，右侧会给出非强制的更新提示和命令。\n\n## 参数预设\n\n```bash\nnpx @doraemon-hug-u/oh-my-harness init my-project --lang zh\nnpx @doraemon-hug-u/oh-my-harness init my-project --lang en\nnpx @doraemon-hug-u/oh-my-harness init my-project --cli claude\nnpx @doraemon-hug-u/oh-my-harness init my-project --cli opencode\nnpx @doraemon-hug-u/oh-my-harness init my-project --cli all\n```\n\n这些参数在交互终端里会变成 TUI 的默认值：\n\n- `projectName`\n- `--dry-run`\n- `--force`\n- `--global`\n- `--lang <zh|en>`\n- `--cli <codex|claude|opencode|all>`\n\n## `init` 会写入什么\n\n项目级：\n\n- `<target>/AGENTS.md`（Codex / OpenCode；或多目标共享 instruction 源）\n- `<target>/CLAUDE.md`（Claude Code；Claude-only 时为完整模板，多目标共享时为 `@AGENTS.md` 引用入口）\n- `<target>/agents.back.md`（仅本次会写入且目标已存在 `AGENTS.md` 时）\n- `<target>/claude.back.md`（仅本次会写入且目标已存在 `CLAUDE.md` 时）\n- `<target>/.github/**`\n- `<target>/docs/specs/**`\n- `<target>/.agents/skills/**`（Codex / OpenCode）\n- `<target>/.claude/skills/**`（Claude Code）\n- `<target>/.oh-my-harness/hooks/tree.mjs`\n- `<target>/.oh-my-harness/tree.md`\n- `<target>/.claude/agents/reviewer.md`（Claude Code）\n- `<target>/.opencode/agents/reviewer.md`（OpenCode）\n\n全局级：\n\n- `~/.codex/config.toml`（仅目标包含 Codex）\n- `~/.codex/agents/*`（仅目标包含 Codex）\n- `~/.agents/skills/*`（仅 `--global` 且目标包含 Codex 或 OpenCode）\n- `~/.claude/skills/*`（仅 `--global` 且目标包含 Claude Code）\n- `~/.claude/agents/reviewer.md`（仅 `--global` 且目标包含 Claude Code）\n- `~/.config/opencode/agents/reviewer.md`（仅 `--global` 且目标包含 OpenCode）\n\n平台 hook 触发器：\n\n- `<target>/.codex/hooks.json`（仅目标包含 Codex）\n- `<target>/.claude/skills/oh-my-harness-hooks/`（仅目标包含 Claude Code，skills-directory plugin）\n- `<target>/.opencode/plugins/oh-my-harness-tree.js`（仅目标包含 OpenCode）\n\n## 命令参数\n\n| 参数 | 作用 |\n| --- | --- |\n| `projectName` | 目标目录；不传时使用当前目录 |\n| `--dry-run` | 只读取和计算变更，不落盘 |\n| `--no-tui` | 即使在交互终端中也直接执行，不进入 TUI |\n| `--cli <codex\\|claude\\|opencode\\|all>` | 选择初始化目标 CLI；默认 `codex` |\n| `--force` | 覆盖同名模板文件和 skill 目录，并 patch 已有全局配置 |\n| `--global` | 将 skills 安装到目标 CLI 对应的全局 skills 目录 |\n| `--lang <zh\\|en>` | 强制指定 CLI 输出语言 |\n\n## instruction 文件覆盖行为\n\n- 如果目标项目不存在 `AGENTS.md`，直接写入模板。\n- 如果目标项目已存在 `AGENTS.md`，先备份为 `agents.back.md`，再覆盖为新模板。\n- Claude-only 目标只写入 `CLAUDE.md`；不会新建或覆盖 `AGENTS.md`。\n- 多目标同时包含 Claude Code 和 Codex/OpenCode 时，写入 `AGENTS.md`，并让 `CLAUDE.md` 只引用 `AGENTS.md`。\n- CLI 会额外提示一条精简后续操作：对比 instruction 文件与对应备份，只迁移仍有价值的项目级规则，再清理备份文件。\n\n## reviewer 子代理行为\n\n- Claude Code / OpenCode 只安装 `reviewer` 子代理，不安装 `explorer`。两者的 explorer 使用各 CLI 自带能力。\n- reviewer prompt body 直接来自 `agents/reviewer.md`；平台 agent 文件只在前面增加各自 frontmatter。\n- Claude Code reviewer frontmatter 使用 `model: opus`。\n- OpenCode reviewer frontmatter 不写 `model`，让它继承当前会话模型。\n\n## prompt 驱动安装边界\n\n- 支持让 agent 根据用户 prompt 拼出并执行 `oh-my-harness init ... --no-tui`。\n- 支持通过 `--cli <codex|claude|opencode|all>` 选择目标 CLI。\n- 不支持从用户 prompt 传入任意 reviewer prompt body；reviewer 正文固定来自包内 `agents/reviewer.md`，以避免安装结果不可追踪。\n\n## Safety and rollback\n\n- 作用到已有仓库前，先运行 `--dry-run`\n- 已有 `AGENTS.md` / `CLAUDE.md` 会先备份为对应的 `agents.back.md` / `claude.back.md`\n- 只有目标包含 Codex 时，才会修改 `~/.codex/config.toml` 和 `~/.codex/agents/*`\n- 如需回滚 instruction 文件，可恢复 `agents.back.md` / `claude.back.md`，再删除本次新增的 instruction 文件。\n- 树刷新 hook 的共享脚本在 `.oh-my-harness/hooks/tree.mjs`；各 CLI 只安装自己的触发器，Claude Code / OpenCode 都走 plugin 形态，方便删除。\n\n## 删除 / 卸载\n\n当前没有自动 `uninstall` 子命令；删除需要按目标 CLI 清理本次 init 写入的文件。\n\n项目级删除清单：\n\n- Codex：删除 `AGENTS.md`、`.agents/skills/`、`.codex/hooks.json`。\n- Claude Code：删除 `CLAUDE.md`、`.claude/agents/reviewer.md`，并删除 `.claude/skills/` 中由本包写入的 skills；如果只移除 hook，删除 `.claude/skills/oh-my-harness-hooks/`。\n- OpenCode：删除 `AGENTS.md`、`.agents/skills/`、`.opencode/agents/reviewer.md`、`.opencode/plugins/oh-my-harness-tree.js`。\n- 共享工作流模板：按需删除 `.github/PULL_REQUEST_TEMPLATE/`、`.github/writing-plan.md`、`.github/pr-review-comment.md`、`docs/specs/`、`.oh-my-harness/hooks/tree.mjs`、`.oh-my-harness/tree.md` 和 `.gitignore` 中的 `oh-my-harness` block。\n\n全局级删除清单：\n\n- Codex：清理 `~/.codex/agents/*` 中由本包写入的条目，并从 `~/.codex/config.toml` 移除对应 `agents.*` 配置。\n- Claude Code：删除 `~/.claude/skills/` 中由本包写入的 skills，以及 `~/.claude/agents/reviewer.md`。\n- OpenCode：删除 `~/.agents/skills/` 中由本包写入的 skills，以及 `~/.config/opencode/agents/reviewer.md`。\n\n## 当前设计\n\n- `oh-my-harness init [projectName?]`：向目标仓库写入项目模板。\n- `plugin/`：分发 Codex plugin 与核心 harness skill。\n- `templates/repo/`：需要落到项目仓库中的模板。\n\n## 当前核心 skill\n\n- `harness`：主入口，接手 Implementation PR、Implementation Plan 或直接需求；内置计划、worktree、验证和审查流程。\n- `tdd`：按当前 plan 接入的 TDD 实现策略 skill。\n- `systematic-debugging`：独立的专项调试 skill。\n\n## 项目模板\n\n- `.github/PULL_REQUEST_TEMPLATE/implementation.md`：实现型 PR 模板。\n- `.github/PULL_REQUEST_TEMPLATE/research.md`：研究型 PR 模板。\n- `.github/pr-review-comment.md`：PR review 评论模板；默认内容仍是云端 Codex review 的 `@codex review`。\n- `.oh-my-harness/hooks/tree.mjs`：跨平台树索引刷新脚本；由 Codex hook、Claude Code plugin、OpenCode plugin 触发。\n- `docs/specs/*`：项目级长期规范。\n\n## 开源与许可证\n\n- 主项目许可证：`MIT`\n- 上游 vendored skills 的许可证和来源见：\n  - `THIRD_PARTY_NOTICES.md`\n\n## 发布（维护者）\n\n在包目录执行：\n\n```bash\ncd oh-my-harness\nnpm run check\nnpm pack --dry-run\nnpm publish\n```\n\n## 致谢\n- 感谢 [linux.do](https://linux.do/) 社区在开发过程中提供的反馈、讨论和灵感。\n- 感谢 `superpowers` 和 `mattpocock` 社区提供的优秀的skill。\n","readmeFilename":"README.md"}