{"_id":"@blundergoat/goat-flow","_rev":"44-1da60607e74037eb5905dc3c90b3851f","name":"@blundergoat/goat-flow","dist-tags":{"latest":"1.17.0"},"versions":{"0.9.1":{"name":"@blundergoat/goat-flow","version":"0.9.1","keywords":["ai","audit","claude","codex","coding-agent","gemini","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@0.9.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"eb529f07db99a6a03185be61501f2c58ce64f994","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-0.9.1.tgz","fileCount":199,"integrity":"sha512-ZXzwk+HIoBdCv7f/kaG48RjjIcCuQuLwOdhY5EL03XLgkUdXtEgLZXb5hIHvbacNVq1NfYwyKN40HEkddb2h2w==","signatures":[{"sig":"MEUCIQC6wn/CxsEWgPGCmiFtSkPzqVGxlTWFxi3WJ2i2S1PcrQIgO7ct6Jtn/gsANMm+Lz0gEX9plpbDHPmHIkq6+LpOuFQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1049021},"type":"module","engines":{"node":">=20.6.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"6852c3a508e9221ffbc54a960efb1298ed619ade","scripts":{"scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test 'test/**/*.test.ts'","build":"tsc && mkdir -p dist/dashboard && cp src/dashboard/index.html dist/dashboard/index.html","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","scan:verbose":"node dist/cli/cli.js scan . --verbose","prepublishOnly":"npm run build"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"deprecated":"This version is deprecated. Upgrade: npm install --save-dev @blundergoat/goat-flow@latest","repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor + scoring engine for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","typescript":"^5.4.0","@types/node":"^20.6.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_0.9.1_1774816125423_0.44687341804489855","host":"s3://npm-registry-packages-npm-production"}},"0.9.2":{"name":"@blundergoat/goat-flow","version":"0.9.2","keywords":["ai","audit","claude","codex","coding-agent","gemini","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@0.9.2","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"28787d8597124df9c59f6b01a98fa1f35dcc25d7","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-0.9.2.tgz","fileCount":213,"integrity":"sha512-IFuYUKRYGbcEB8Kpe+043+7Y3T6x7K0a417C0H2j9DEXlGPGRFWnv7ifoJ497y4b1P1pE2FO6y/TfYmRxptJSQ==","signatures":[{"sig":"MEUCIBBOnHoRlkytbL4g+520HtsYHUo30SbFo8C9aqm2MepSAiEA+ukvgNwRL1pANvlvxLIjet8vajSHbPNs/zgvhA4aWpw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1228664},"type":"module","engines":{"node":">=20.6.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"d50ca7df0579b7b3edaf644ac9cfdc8a727d5488","scripts":{"scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test 'test/**/*.test.ts'","build":"tsc && mkdir -p dist/dashboard && cp src/dashboard/index.html dist/dashboard/index.html","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","scan:verbose":"node dist/cli/cli.js scan . --verbose","prepublishOnly":"npm run build"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"deprecated":"This version is deprecated. Upgrade: npm install --save-dev @blundergoat/goat-flow@latest","repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI scanner, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","typescript":"^5.4.0","@types/node":"^20.6.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_0.9.2_1774823868444_0.5769789519789663","host":"s3://npm-registry-packages-npm-production"}},"0.9.3":{"name":"@blundergoat/goat-flow","version":"0.9.3","keywords":["ai","audit","claude","codex","coding-agent","gemini","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@0.9.3","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"a50aecd875f32780cf2fd692637d4c01db818065","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-0.9.3.tgz","fileCount":210,"integrity":"sha512-IJa84TORq4PEUeSnoOe1JGp1JpRYarWg/6jRMGqLoJa11bGXH8dzIzcbnVpQ0vh+Ro+ChEtQd1xyhE/kH58mqQ==","signatures":[{"sig":"MEUCICMG2suXfZU0kqOUqVcuoJD40CMRbz/77UlAjtwW6PR0AiEAnB1zvQKAN9dNWL6jKZR5WobGAidqRvVP13G742if8XQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1215572},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"7c981736e0e58c9207c0cd15c5aebac73e445d26","scripts":{"scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test 'test/**/*.test.ts'","build":"tsc && mkdir -p dist/dashboard && cp src/dashboard/index.html dist/dashboard/index.html","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","scan:verbose":"node dist/cli/cli.js scan . --verbose","prepublishOnly":"npm run build"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"deprecated":"This version is deprecated. Upgrade: npm install --save-dev @blundergoat/goat-flow@latest","repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI scanner, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","typescript":"^5.4.0","@types/node":"^20.6.0","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_0.9.3_1774866049531_0.3453530945604","host":"s3://npm-registry-packages-npm-production"}},"0.9.4":{"name":"@blundergoat/goat-flow","version":"0.9.4","keywords":["ai","audit","claude","codex","coding-agent","gemini","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@0.9.4","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"ae8383604e47720eada147652f0e1bdf8fe16c3b","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-0.9.4.tgz","fileCount":211,"integrity":"sha512-OGh1WkPquPASBhu7EQ2VwjshseDFc0XLU8prwKhA048vbrcKLN2D7+9SqU2EjK6FsFLCAIXAgsE5n24ixMsfHA==","signatures":[{"sig":"MEUCIQDenD10VOCz8mMHCWnGAz/dBYKCen9yTTIgapxaCYNzwgIgfyLba+Lvi1fOvK7+A+Xwlw+5IaDJ5AFUKV5pvRW+CEI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1275233},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"bedf150700bf6c81e1321f016aa7e31bcda35278","scripts":{"scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test test/*/*.test.ts","build":"tsc","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","scan:verbose":"node dist/cli/cli.js scan . --verbose","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"deprecated":"This version is deprecated. Upgrade: npm install --save-dev @blundergoat/goat-flow@latest","repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI scanner, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"ws":"^8.20.0","node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_0.9.4_1775125480572_0.0628019276241003","host":"s3://npm-registry-packages-npm-production"}},"0.10.0":{"name":"@blundergoat/goat-flow","version":"0.10.0","keywords":["ai","audit","claude","codex","coding-agent","gemini","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@0.10.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"f8b8ba703d9e58dd6d4ac4e78c2633a4aefdc959","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-0.10.0.tgz","fileCount":289,"integrity":"sha512-lGE2G+DfILgtUKUI5wGwjiYJD2qHa+UQot2YgPVotEMGJKRFXqEpGodtrCCngyVRlJuqMgegTb7Godd4ovRSPQ==","signatures":[{"sig":"MEYCIQD1XH6dV9S1Aa50dimA5EMRfJFW8odtoc3lVxnk9awXVQIhAIesjeeagCU5RgGYhP3j3VfJxAk/kDz68iekPk86kdEC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2104877},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"bd06876f4c18475d6a315e2085348b27b74931ac","scripts":{"dev":"tsc && node dist/cli/cli.js dashboard . --dev","scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test test/*/*.test.ts","build":"tsc","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","postinstall":"node scripts/warn-node-pty.mjs","scan:verbose":"node dist/cli/cli.js scan . --verbose","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"deprecated":"This version is deprecated. Upgrade: npm install --save-dev @blundergoat/goat-flow@latest","repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI scanner, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"ws":"^8.20.0","node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_0.10.0_1775366183394_0.35736934757907424","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@blundergoat/goat-flow","version":"1.0.0","keywords":["ai","ai-agent","audit","claude","claude-code","codex","coding-agent","copilot","dashboard","gemini","llm","scanner","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.0.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"3d5d8c9e239d1003b8b192616034bb2dd88edc08","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.0.0.tgz","fileCount":289,"integrity":"sha512-7B4VZe1bATQwXjyCiJtSDKJOdnG9FhcuVq+LiFykO54hBXS30nOk7mwGFCJ/ezEbudA7OB1lU+zWkDIejXJytg==","signatures":[{"sig":"MEUCIQDe5lVtUNiYiLtiPrb7kxEWflgfKZOsQqKjamx0DGapBgIgaB2oPqAaiTTzNdTQ5SmgEYk0GzGIMBFvoHIH8V8bN0k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2103125},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"2e05df42c331be0491e951260e6ba957656c3821","scripts":{"dev":"tsc && node dist/cli/cli.js dashboard . --dev","scan":"node dist/cli/cli.js scan .","test":"node --import tsx --test test/*/*.test.ts","build":"tsc","setup":"node dist/cli/cli.js setup . --agent claude","validate":"bash scripts/context-validate.sh","dashboard":"node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","scan:json":"node dist/cli/cli.js scan . --format json","typecheck":"tsc --noEmit","postinstall":"node scripts/warn-node-pty.mjs","scan:verbose":"node dist/cli/cli.js scan . --verbose","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI scanner, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.0.0_1775369076792_0.6342183084719148","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@blundergoat/goat-flow","version":"1.1.0","keywords":["ai","ai-agent","audit","claude","claude-code","codex","coding-agent","copilot","dashboard","gemini","llm","auditor","workflow"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.1.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"18f7bf259aa16c3bde4571f085a36eada2f8f262","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.1.0.tgz","fileCount":136,"integrity":"sha512-PpUUzPQNxfNaCo9qJqB46n5NQYqwbsblzsptBuhyWURbkE6srBGKZmRlu7jjgSyUDgJA+o/BeOuEt8TXw7LPrw==","signatures":[{"sig":"MEYCIQDgQqF7BvJTb2u2JZa0SKH+fMvdNz44zOsBob1S/C+6ywIhALjCZQZeTuCtcY1vHig6IJDwctNz5FvwBmefvVkngr66","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":735446},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"f1335cb10939f772f8971856045b28fb989aae00","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","validate":"bash workflow/validate-goat-flow-setup.sh","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.1.0_1776374052019_0.4776908980366681","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@blundergoat/goat-flow","version":"1.2.0","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"548ad3dd444809ee1947bdbdc46426e20219e68c","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.0.tgz","fileCount":191,"integrity":"sha512-goatS+gTqyfDa4mnj5bw/oabqYmLSZLzGhBgutOc7/x2rxiVtMraNlubZgNhjm7wY4VaRVDq5mpJB/soXYlHvg==","signatures":[{"sig":"MEUCIFXxWmOkX2LwFCiJkTrbmSEftXZPmAf9Ol9rXyWU/5uxAiEAgt5L6sb0NmPftKnpuGuvgxHgHXjtx7KBRSJz5wZGoRM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1187343},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"f597ff5872de765c2e2b7bbe8ecb30bdfd4298cb","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.0_1776720646306_0.00031787355983214916","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@blundergoat/goat-flow","version":"1.2.1","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"23ffbe16496b3ccda9f918ae1b0412181d6dd01c","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.1.tgz","fileCount":191,"integrity":"sha512-jxCNwF5MMXI+Ok8ioqVBOZkItrlaPTwpu+cpbnZcQwnxJm5P3l38V3P0NcSkeprQ/WdmKL+3lzDDBQe38rOyjQ==","signatures":[{"sig":"MEUCIFefldeaR+cnBdHQGTtFSYforBp5N2yvn9tdHs30ZjeNAiEAoydm8aIjOwn4p7UPKrdmwcAc+bUEyKJTEPIOPPQkhXI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1198578},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"f31630a12534eb8dfacb3c57b835eadbfdc87a83","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.7","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.2","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.1_1776749911578_0.5833329645773575","host":"s3://npm-registry-packages-npm-production"}},"1.2.2":{"name":"@blundergoat/goat-flow","version":"1.2.2","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.2","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"62a03b78a712624169b6f327b52a13f2c168fcd7","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.2.tgz","fileCount":196,"integrity":"sha512-d40wzhjz3vtQreVBvxhQcKbCkGqld5A2hx8wSsxPM/ltill/WZHad9jg5hP8PmWH1kDPPEuJofgIS4mwvw6JIA==","signatures":[{"sig":"MEQCIDyftpWW0JDZDM/F0cxogZ+AYF7Bwlz8oVxLwjRiNvsnAiBdiUQyrzf481XW8Mt+xKO9zsri1FwW7oOgVCTDDZptDQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1202514},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"e15f9b638677a7cda06b51e198d16c665b29a9ac","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0","node-pty":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.2_1776769559763_0.3087544660522994","host":"s3://npm-registry-packages-npm-production"}},"1.2.3":{"name":"@blundergoat/goat-flow","version":"1.2.3","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.3","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"d64564cc68439e66e717bfc87dce7e6210f63958","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.3.tgz","fileCount":196,"integrity":"sha512-Y5wR5S1tSpZkkKT495iWvfRq8OlEFHsJbE9luTbAxoquF8txpurZcgYlieqJ9tAFwHOPYfSl2UaLvZmrDAaD/w==","signatures":[{"sig":"MEQCIA1tU9h8RSYkFnolkD1JUcihB+qjnBzYO0WWBfdR62BnAiADW0pFCBZ0Hg9pw5ClnCBhm7Cvcw8jeRijl6PSSoREuw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1211553},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"00a42fc0290a08a11a73afffc82216482a040e50","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0","node-pty":"1.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.3_1776856417423_0.37300875248825727","host":"s3://npm-registry-packages-npm-production"}},"1.2.4":{"name":"@blundergoat/goat-flow","version":"1.2.4","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.4","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"338f5e010c761553e98ab111eff989aa67c1bae5","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.4.tgz","fileCount":202,"integrity":"sha512-3zbvkytdD38BeU1ZpATHeKtJDk+NZGFHYW1fEUD5Z1B2PqM1zXmk61vDhGpxsckTH4I/KwD8j+h6rG/33+n8Sg==","signatures":[{"sig":"MEYCIQCvmj7PwnZDv3H/iXaqlelmqAjIurd6Kd8+pLCV2W7x9QIhALTu6yFlR356tM/Kw/+d08jyxzim1DOD9CrwJSm4H6ho","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1282985},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"00aa5e0432e3fe60e546375e8f959ec079061bc6","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.4_1776978283472_0.2734580409890952","host":"s3://npm-registry-packages-npm-production"}},"1.2.5":{"name":"@blundergoat/goat-flow","version":"1.2.5","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.2.5","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"c6434b47aa17e94a5cfcce7df24c14283f95c188","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.2.5.tgz","fileCount":203,"integrity":"sha512-Pt6kifjhtWtGugq0xXbP266BCrq7WbQQWrUdp+o4SQaEOKc9Uhadaf/G+jdDODcCkSxGrT8D7chwpTt0nCNwRw==","signatures":[{"sig":"MEYCIQCaemKst6bLeHpnXdiOK2+5GNmkQ8ImjVPR3v+qt0ZhzQIhAI8ptoXvyQFGa4xJb0BeZ6xlmvg6qFjqlxsG1x/GH/zG","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1292758},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"01c79be24eeb550f1aa7254ea01d73d9c0a26b87","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"node --import tsx --test test/*/*.test.ts","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test test/*/*.test.ts","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.2.5_1776984222837_0.43124773097574387","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@blundergoat/goat-flow","version":"1.3.0","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.3.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"be3ea77a97b53a28c59fc458165bf1c496b16258","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.3.0.tgz","fileCount":206,"integrity":"sha512-BjySdz+tnlQBUxFiSXGizvN1nxnS73jZhdmxsrdJD4IXitbB0XsIuUEXbYow+hND1hneohnifU54yWLddZxjWA==","signatures":[{"sig":"MEYCIQCrOGKp3Smj+RJGcJtZTuATj0sJRY40f6mcExAUVSpC/AIhANLGomTHXdnRZ0avU9bb5z9xOaydqDwjDOVex9fUkOSL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1454497},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"521d81b3cb9ee430a38eea0a390c1a14e010cace","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"rm -rf dist/ && tsc && chmod +x dist/cli/cli.js && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && mkdir -p dist/dashboard && cp src/dashboard/index.html src/dashboard/styles.css src/dashboard/preset-prompts.json dist/dashboard/ && rm -rf dist/dashboard/views && cp -r src/dashboard/views dist/dashboard/views","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.3.0_1777282527703_0.3913150707440105","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@blundergoat/goat-flow","version":"1.3.1","keywords":["goat-flow","ai-agents","agentic-coding","ai-coding","ai-workflow","harness-engineering","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","ai-safety","developer-tools","cli","auditor"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.3.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"ed788b084db941f54ca72c119e86d940204630b8","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.3.1.tgz","fileCount":206,"integrity":"sha512-BbzotOZLD3f1oVNiPOScjtQbzNBCc5F5yO5xdZ4pK6f5E3RAyu4KO3eKZebhDtK3WvPe9p+Fzl/ZbSRE1wHdgw==","signatures":[{"sig":"MEQCIFuA2dyZTR7xZusk4lxetdQmTO+g9qPVGf1dOCcZwCXlAiAmWj2SwLh8V7kB5vznwWxpu4RWxLG+kcI/8jco8XUzFg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1461683},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"ec5e860c50ef7f45ce48b7818cd64b15cce88576","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"CLI auditor, dashboard, and setup generator for GOAT Flow AI coding agent workflows","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.3.1_1777412106467_0.3127268319730836","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@blundergoat/goat-flow","version":"1.3.2","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.3.2","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"be7a270ee6f6f3ef48ad2e8d6efd99987bcf70c6","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.3.2.tgz","fileCount":207,"integrity":"sha512-8STZJwIqd6QTb0O2WoXv9oEHbthHzpeMK+dvV9rOBOKqVqJS+h4OlbHXXDbk5Y1bkLdMXkPoeagKcfHsqq4XqQ==","signatures":[{"sig":"MEQCIDvrYkDWPb8j0P7DiEpMcddUvPYwCfiqEdOJEtmxSzhVAiBG7TiBxtcJdJoYrtHDRsTilhzJ7O0dY4KvF7FiPbnqCg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1514416},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"b35b490baee11b2dc6f04cd2c1ce8c1d0f0b30cc","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents — deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.3.2_1777602023714_0.7722929145963318","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"name":"@blundergoat/goat-flow","version":"1.4.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.4.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"0480aa35430aa896ab16d0025d888fe2c10a0d19","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.4.0.tgz","fileCount":220,"integrity":"sha512-rr3lj6lVHuRYR8hYo7WzwKHTFw0eWcmrhyRpQKUZ6qHOcNglO1zHso1FrBE9jy0plAbyxxwa+teyOClsYGl5JA==","signatures":[{"sig":"MEUCIBTLwDaxKPvXhfF73nmDnaUCH4oJ4TQY4ronu/S7EXWVAiEAhv39HkvAB7y+H/3BYhe9Rj/jjLgO2qeKTfu2HndgErs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1662133},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"684cad083c4c4ae31980d432c54901602668db56","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.4.0_1777719182536_0.12492762033582183","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@blundergoat/goat-flow","version":"1.4.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.4.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"a33d9019b5d7c873b5d3171cfa0bbb9a2c45d391","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.4.1.tgz","fileCount":222,"integrity":"sha512-Zv2jIgqDWgWYGOepgcltZlAcco+h6oF9t4InB00Rofl61UA0c5WLnkXiND/iSblM7vzJC4GqURIUjKSqetPncQ==","signatures":[{"sig":"MEQCICGmisDCCsFkB68DiTeKKBi/zfomFt0b8k987P38zKKJAiAFQ/TRo67KT1PqzmYXOEBCmMExJONoAIaZMc11bcHWqw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1715125},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"77221e8d7bf0553238811dd21d4fd737217e15af","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.4.1_1777789492138_0.8036122063496589","host":"s3://npm-registry-packages-npm-production"}},"1.4.2":{"name":"@blundergoat/goat-flow","version":"1.4.2","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.4.2","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"3819cf598c25234888834bcc00cdac7b9ee08704","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.4.2.tgz","fileCount":223,"integrity":"sha512-Yp9NppKgvVlYaqa360XKbaCpAdMGt+Ka/Ul6LuDL+kQhNpIpwtJwJP/3H8YhxFz23NP2SdF6OKIHXfLHTH1o5Q==","signatures":[{"sig":"MEYCIQDWIo2GNioR5LH/eqF3oAHCFubgJKhOE83gjnXL4MaK3QIhANj+ykJEora7dN0Tc1uGS1R0cssvhvdiTSb5i8dqZWRg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1728962},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"688fe3e81f499f57ba851286ebf254dabbe97836","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.4.2_1777841812539_0.648199172077671","host":"s3://npm-registry-packages-npm-production"}},"1.4.3":{"name":"@blundergoat/goat-flow","version":"1.4.3","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.4.3","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"76b7f8befef21bb8638296ea1e195a6b6903df3f","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.4.3.tgz","fileCount":224,"integrity":"sha512-xgpwriEcFNel3cg9KuAjPbASzul7jorrEcuxUcHrkIsAYPdCWTK4Egd0ki851a/RncyOZlYPhNYDfhSvmzCVDA==","signatures":[{"sig":"MEYCIQDaw7byDBOTEXf04d08uVbYAF6kxcMCrexYZBNJcou6GQIhAPgKhSADpG0wgxJ/o9fo2uAKwdiDkS7XXyNhFu3cS/lv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1744404},"pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"2b326241341070d63764e461da5ce65d413ed99a","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.4.3_1777851991845_0.20473060190254522","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@blundergoat/goat-flow","version":"1.5.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.5.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"865400b814f5260adc2b64ee17fd0b7a46fb87b4","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.5.0.tgz","fileCount":235,"integrity":"sha512-Q+J3PAEiNFtK3PtT0KJMNSVh+Qmxa701liirBCAOIrgqmH/u+G0zaZAGrWJtrsrAon3+DF+bjXPT4Rf6mW5rhg==","signatures":[{"sig":"MEQCIGkaaimxAixRsxVKd+ljMMQGTgNYp0RjYdfp+tY1xnNZAiBGMIrCQgi90smZB/YREYR1cW7ifPQu2GwVzi0g4QeHTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1942828},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"55349e748f844f62a332a0294ed6469f630a4b62","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.5.0_1778188402572_0.6732641156411208","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@blundergoat/goat-flow","version":"1.6.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.6.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"0519f39a1f69af351f9d45ca8ff46f3fe565eda7","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.6.0.tgz","fileCount":252,"integrity":"sha512-LdiB1jUyDc9+64pVW9Hqa7LsduyT/gki0sUaolm6ZXAAGm6XCtPH+AFmT8WPoIIdzCsXADRZP2jIDnF1+JVX5Q==","signatures":[{"sig":"MEUCIAv7kqRlbm9OrtG1b4B9YYpTn8RACNQjhm9HWYtgIbGCAiEAyJtBR+7Obdb6zaCKenMGioPd8Oxx1JJbIwGZnmRNfqg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2318453},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"10fd4032a3b5e26ab488443d61cc80b77a8fea99","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.6.0_1778408872456_0.8185196123299665","host":"s3://npm-registry-packages-npm-production"}},"1.6.1":{"name":"@blundergoat/goat-flow","version":"1.6.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.6.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"83a71594da65642466d3cb625ca11d41f7d93f39","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.6.1.tgz","fileCount":252,"integrity":"sha512-VmzEUHuAmdEMWBTwpltsn5HQlr5z6IPYAxqyWk5efGGmUtMKlYvziicLUDZXg9u1nkUw8usMNfPtbgO0b+3StA==","signatures":[{"sig":"MEUCIQCRiqp14JfRICHW6jAa1aN+vtHwNATF+fV/U1tC/HDEGgIgB4kDl8Pnul1M9fyHFZrkXllJjmr5Kw+XPhkuUGkumQc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2366223},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"a2e67ee7ed21cf77b44f613d0f14300c389e91de","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node -e \"const { cpSync, mkdirSync, rmSync } = require('node:fs'); mkdirSync('dist/dashboard', { recursive: true }); for (const file of ['index.html', 'styles.css', 'preset-prompts.json']) cpSync('src/dashboard/' + file, 'dist/dashboard/' + file); rmSync('dist/dashboard/views', { recursive: true, force: true }); cpSync('src/dashboard/views', 'dist/dashboard/views', { recursive: true });\"","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@types/js-yaml":"^4.0.9","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.6.1_1778497371489_0.8794927899428588","host":"s3://npm-registry-packages-npm-production"}},"1.6.2":{"name":"@blundergoat/goat-flow","version":"1.6.2","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.6.2","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"d39e8cda17eced942d6a0c37eb0cc8fa6332e158","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.6.2.tgz","fileCount":257,"integrity":"sha512-GVKFkmzolH7hvR3CY5EOWE0JT6e8Hvnn9n4r6COITCaTkyiC8KO1f+CK8Hc2VSPjWjbT4CHsBiAmQ+c+J3N2Ng==","signatures":[{"sig":"MEYCIQDEtf//RtNngjU7aB1V/r5ZTT/M0az2P/JKWkKNsdTL1AIhAL/yg8NEL98f8ZlxlWRDiBFH28VhZ3NXh6tA5CgdhC+Z","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2685298},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"68f46daee0f485d16257e960b5dedabd17852312","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.6.2_1778531082423_0.5694560828427424","host":"s3://npm-registry-packages-npm-production"}},"1.6.3":{"name":"@blundergoat/goat-flow","version":"1.6.3","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.6.3","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"6686b9e76aecdc2be4d9f06e09924d67f76a9b37","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.6.3.tgz","fileCount":258,"integrity":"sha512-6JSHm02cgHFMwdmH+w6no1lv41pVkKA8TYBRvcld/GatiOsEymDnOlren7ye7NurD85AQe26EtONJlxWlByoyw==","signatures":[{"sig":"MEUCIQDazUePPNtpTYcr594pt/Dmxeq2DjUPGpPm2G+SmrdO6gIgY0Un8j/YKMqptb/IQa/JgOv4E9iYyJFi/S1xzPWgdkE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2706077},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"cb021c25603ab52f49c5a96d8132fddd69eec523","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.6.3_1778534740753_0.39216122225311034","host":"s3://npm-registry-packages-npm-production"}},"1.6.4":{"name":"@blundergoat/goat-flow","version":"1.6.4","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.6.4","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"2b91be31abc16d2447ba2c78dc49ab52bd09fe95","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.6.4.tgz","fileCount":258,"integrity":"sha512-ua445n0c6eaeB+4FGRFb3wHrEl3O1Ec2piMgDxXGvSsZbS2zE3+uEdKooNVlsuXvw21roWScwi+INmGIgfuAzA==","signatures":[{"sig":"MEUCIQC0pZX3/8hyHnHFrBBOJrdmCLkY3RJatVhck7Opsz2ITwIgXwsFUFswPuvDhTDQPSnyUmSyZYYYQ7eAcLyjdu/S7kY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":2726294},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"5be13184c31b6b4678e71213ba33c2e782183235","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.0","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.6.4_1778576685730_0.9995016676144957","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@blundergoat/goat-flow","version":"1.7.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agents","ai-coding","agentic-coding","ai-workflow","ai-safety","ai-guardrails","prompt-engineering","claude-code","codex","gemini-cli","copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.7.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"7a89b6739ac1b9cfc3f998b19328bf8dd755adda","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.7.0.tgz","fileCount":281,"integrity":"sha512-pDhVbGGHEIRHH5vpSIdcFkMAjiIIyqatK7tGw30sPmoGlSN7+/ls0rb2R/x42DYbwli3ZokMiTyJFhGQBdJCpg==","signatures":[{"sig":"MEUCIQDXBEXCUwOuXwvo1Ss4pJO4xZxLIhud5MPnPgtyczyUzgIgQMNl/d7KVx0zLlpKoLaUrsfxd7wJaROWzmCywTGZcxw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3132233},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"b3d959c30b1d5d49a5674d1323ca090f7557eb9a","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/audit-quality.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts test/unit/audit-harness/check-evidence-before-claims.test.ts test/unit/dashboard-terminal-launch.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"Harness engineering framework for AI coding agents - deterministic audit, structured skills, deny-hook safety, feedback loops, and a local dashboard. Works with Claude Code, Codex, Gemini CLI, and GitHub Copilot.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.7.0_1779305559728_0.5975252086332365","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@blundergoat/goat-flow","version":"1.8.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.8.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"3c85ca6f9c97c3b84ff26f21cfa0315611036674","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.8.0.tgz","fileCount":301,"integrity":"sha512-XvisQYazI3nuniLKI7NxjLp4ufM9xtGU8usVM9jmRsf+bB5Ly6OVyMZqzgzB+ANHgYlQLSRQpuMoF27zQ2oWZg==","signatures":[{"sig":"MEQCIFL5+rnB/qeWleVTYfkh1DwihPWQi81uYQaammU072RhAiAtsTzbtvmVFpnzIIHb2FsfHSq+Rx/mfN2Si9+fwCcATg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3477284},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"08d2f624ef1235f1461b7b10d263e39d489509ad","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test test/integration/audit-drift.test.ts test/integration/audit-quality.test.ts test/integration/dashboard-server.test.ts test/integration/quality-constraint-isolation.test.ts test/unit/audit-harness/check-evidence-before-claims.test.ts test/unit/dashboard-terminal-launch.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","postinstall":"node scripts/warn-node-pty.mjs","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard-server.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","prepublishOnly":"npm run build && npm run check-versions && npm run check-package-links","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.2.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.8.0_1779917384889_0.4209018645404339","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@blundergoat/goat-flow","version":"1.9.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.9.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"0275fbb9d3bca7e228bfe8b8d9d88be424d246d1","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.9.0.tgz","fileCount":413,"integrity":"sha512-3LVOGfdOKtyuTdAjDQ7/kjlCjOysdTq0uadKhhPnIcuEzhMYjIx2rK3H47URB9/nIU0580BfsEeVJyTlrqSPmg==","signatures":[{"sig":"MEUCIQDcwfrDen+7UllG9G/b8QR0nW+1KNzXOvQRPn3BiPi+vAIgBNQAFqjEk1ZzjirgAQBgsnhWA6X4NYpFSPDGmlJ9thc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3692000},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"b04f876656d88e0b7363c17a5df2e5328604e284","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift*.test.ts' ! -path 'test/integration/main-guard.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard*.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch/*.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test --test-concurrency=1 test/integration/audit-drift*.test.ts test/integration/main-guard.test.ts test/integration/audit-quality.test.ts test/integration/dashboard*.test.ts test/integration/quality-constraint-isolation.test.ts test/unit/audit-harness/check-evidence-before-claims.test.ts test/unit/dashboard-terminal-launch/*.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift*.test.ts' ! -path 'test/integration/main-guard.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard*.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch/*.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.9.0_1780286337130_0.17147400536339208","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@blundergoat/goat-flow","version":"1.9.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.9.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"11696ccef830446efd52786953b54b7d2ef5841c","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.9.1.tgz","fileCount":416,"integrity":"sha512-GQz/jKfUyb2L74W9cnrAFJaq7dNaxqdZVskspiH5ZN4GxQeSB7ax6AWE86r2m3CqxFCOmIVHdgZW1fE2hc9ulg==","signatures":[{"sig":"MEUCIDxnXBlH9lIYif0M+AUhVjD4GWAen4C7H5R+FjvxvUmGAiEAjewvxGKJP3D5rADDu8OkkrRAGDCgScPxI9uuD6RRpQ4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3743650},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"332e11d0871df9ac3b01c5a370e53b31834669eb","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node --import tsx --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift*.test.ts' ! -path 'test/integration/main-guard.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard*.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch/*.test.ts' ! -path 'test/performance/*.test.ts' | sort)","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node --import tsx --test --test-concurrency=1 test/integration/audit-drift*.test.ts test/integration/main-guard.test.ts test/integration/audit-quality.test.ts test/integration/dashboard*.test.ts test/integration/quality-constraint-isolation.test.ts test/unit/audit-harness/check-evidence-before-claims.test.ts test/unit/dashboard-terminal-launch/*.test.ts","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node --import tsx --experimental-test-coverage --test --test-concurrency=8 $(find test -name '*.test.ts' ! -path 'test/integration/audit-drift*.test.ts' ! -path 'test/integration/main-guard.test.ts' ! -path 'test/integration/audit-quality.test.ts' ! -path 'test/integration/dashboard*.test.ts' ! -path 'test/integration/quality-constraint-isolation.test.ts' ! -path 'test/unit/audit-harness/check-evidence-before-claims.test.ts' ! -path 'test/unit/dashboard-terminal-launch/*.test.ts' ! -path 'test/performance/*.test.ts' | sort)","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && GOAT_FLOW_PERF_TESTS=1 node --import tsx --test test/performance/*.test.ts","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.9.1_1780658176549_0.5841932713632261","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@blundergoat/goat-flow","version":"1.10.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.10.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"44f537d8ce65af5502876a677710e6b62ddd9b3a","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.10.0.tgz","fileCount":424,"integrity":"sha512-L4ExoGG91cHiHKulKzCPxxDW0v9JjyIyfmLu4r9ogPsn3MbX5M2G1zkCBCq9wT/0erDPqqPvtl9+cVdu20ZmPQ==","signatures":[{"sig":"MEUCIAqSyAL14vE5P+2D0vIOgZ9fBAf98m/pIp+bgMmg/sNvAiEAy0f5UIXm42jrSIn+yxHjHiBAlsl4cNBFUiUnuXsOx7Q=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3824318},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"59827bd1f016d3832d31160d20bcbe4d6cfb81f2","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.10.0_1780824702049_0.853432160171282","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@blundergoat/goat-flow","version":"1.10.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.10.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"987ee91cd1b6a3dd4298382281bba1b415a4ce52","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.10.1.tgz","fileCount":420,"integrity":"sha512-6cFGuwVmDlq06dTsmumQh4KSLOXJiuzvWqG5VwIlLtjAw5FqXLZm+6J60MGQzxXTtNteg9BQA95kt+jD2vmRwg==","signatures":[{"sig":"MEQCIAVzHrv6NuM3FRt0AIyvHy0NKncYpsi5a6G+ZrG5g/PJAiAyrJlOrH5S3GLSIjbEI4K2d6Goi19f2ARq26eKEZEwwQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3834159},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"886a5278eee0fbab9ca745f00efd9623a361ce83","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.10.1_1780944468280_0.4175367014708633","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@blundergoat/goat-flow","version":"1.11.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.11.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"bd4f5750f870f1e732a8b503fa45c034ad70dfba","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.11.0.tgz","fileCount":432,"integrity":"sha512-HCW4YU2E/J8tHy7OgStjqC+e92/5TdTRxidmSC0F/cL6n9OMgdr8b04xqpHf4n5kC/ODPCq+tYmRcMoXhrgQsQ==","signatures":[{"sig":"MEYCIQDvKI8zNDrvH9bpiq9fWNGwOJrMDR4HbhzYjcAlGE99GwIhAKOl17vA5yl24fFo+1tcSb8gSXNV6zfwtGFqD+2D8RO+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3911933},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"8a6dd5f0ee035eb1668cca2bf7ce5af0503b823e","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.11.0_1781122966088_0.22516941515999833","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@blundergoat/goat-flow","version":"1.12.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.12.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"70878851f6adfdda644c7d97799f298109b454bc","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.12.0.tgz","fileCount":438,"integrity":"sha512-Np+Ld/8FS7xzaMg6DfA+xEnvPul6zcofRqhdK9BNzK2Zf5FGKYV8nIAPOF+tmDzad06uahODVWqpJXKxLs5yiQ==","signatures":[{"sig":"MEQCICKycU+R7Ga0hj9kuEs1fAaMSuOmfkurU/9HFF8vOD8+AiAbohyZBVzJ21Pi7+3h0CcWS0blULqKvf2qyVSvtLbW7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4004300},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"6fc1e3b8b36a89276ff76df51d9c41bcb10333b2","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.12.0_1781404817941_0.614142153123518","host":"s3://npm-registry-packages-npm-production"}},"1.12.1":{"name":"@blundergoat/goat-flow","version":"1.12.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.12.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"3571914a2adb428bb1ade327ebd8fa69128a2388","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.12.1.tgz","fileCount":438,"integrity":"sha512-nETEA6N8NjZWEMbtV+/GWJ1SnASUj/CIZoCIz3XESL6C6vD86KM1cbM1YNocqjL5JiIv4GjuAQwhM62Askou4w==","signatures":[{"sig":"MEUCIQCAmoaZ3CNEUMz94kx43JvU/MU09L3KIzTq430pKemEWQIgEx4xNw0sNb8qchKXrbCOVl+w/Q/Xm7L3rIvJguG3bKc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4005549},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"a4e45c136a7ea3d3fb9933fb5b134df5e1b60b1d","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run build && npm run check-versions && npm run check-package-links","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0","markdown-it":"^14.1.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@types/markdown-it":"^14.1.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.12.1_1781430998677_0.2551241700308744","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@blundergoat/goat-flow","version":"1.13.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.13.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"ed6feb1f3b5368de97dd719f736b88486a48d8cb","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.13.0.tgz","fileCount":436,"integrity":"sha512-0538T5V4XMom3BqHiUxTjIeiULKzn8x2o8SrRh/Ttj/uUt9q4Cz27FMJ3TjJLWyWzBdVfAjbUoa/24zKvU8zqQ==","signatures":[{"sig":"MEQCIHqkW+r0OmSfbFaz3oQ4nKJ353Wo1k5b2f6mr8sAmdr5AiBg5HJat8rzj4uo0Sl+6f13wsgKDkS5Zk9NgUDgxnAxxQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4204257},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"107cf3192ba1f5337a35fa53efe4dae0a22760d9","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:full","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.13.0_1783109682177_0.7476167418368951","host":"s3://npm-registry-packages-npm-production"}},"1.13.1":{"name":"@blundergoat/goat-flow","version":"1.13.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.13.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"d67ab31f12a13976224d8fdfd8ee1901e378007c","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.13.1.tgz","fileCount":436,"integrity":"sha512-ps2rRdwytfb3mgbyHITdHc7/UJlGL/ULeHIKSOH169KXoL4Ea7OOK5TeDBDi578PnfdYfywjfFE9KnNZnKdsfA==","signatures":[{"sig":"MEYCIQD8eMZrCN5lXcsRmUhSnwZdC971Mbf7UPoBmhfSUeMmMAIhAJ+Wztp30e3vtY5VD1XWPENOnaWGh9qC/AkKt4N9gnA/","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4393749},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"484c0a4fd47049bbf1fbb11fc8eefbc9ae353f19","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:full","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.13.1_1783230938087_0.8481089695507376","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@blundergoat/goat-flow","version":"1.14.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.14.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"0f0e7c0ea2c5578c834c3df073a4fa4addbeee2a","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.14.0.tgz","fileCount":473,"integrity":"sha512-kpD8Vvmj/eDYLsjfoNFWQVOR73MmYpUJG+eahbfjPRni2uY0o++6X6E6F0ynvlrKWcEATXdpCJlFsz2g3UMbyA==","signatures":[{"sig":"MEUCIDKtVaLkr69+ZCK4Jf3EGG9HrpQDeGCiCTvAvFeop49TAiEAiUcWqSLPmm4pnMu+JueLHa0kqt44og+kVnyXHToiEPs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4920159},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"b038d98b40e1ee9539559ad15feafe8c964ea7d5","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:full","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.2"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.3.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.14.0_1784450046763_0.02636855781593206","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@blundergoat/goat-flow","version":"1.15.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.15.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"e57b2fed05c7f1514901579e0b8826260e25c46a","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.15.0.tgz","fileCount":559,"integrity":"sha512-Ly0382ce00GwCb7Sv3kEThAnq4l4CCz8zYtYmK5QQXV2VJT+6ton05kzTYbnUvLzxSLcglRYuhlmMNUbIwSzyg==","signatures":[{"sig":"MEYCIQDT2VesL3Coe4IZKSgb13a6KKxDuYuWRffk8K8GIVk6JAIhAI3p1DcnG5Ek+lPKj/YyGT0rLWrs2OUIzDVQzSWrPyMA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":5599553},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"7a08295b1ccd46fd235c7fc2193a2c18787ec26f","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:full","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.3"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.4.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.15.0_1786101319032_0.47660790582358614","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@blundergoat/goat-flow","version":"1.15.1","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.15.1","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"1ab2264dff6a2bf349299288c639c791afae4348","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.15.1.tgz","fileCount":585,"integrity":"sha512-ywp7hqNZ2LK40/dqt/kb8EZ4Ue3rgray0b6KK0Xl0AfJ4kn9PO/yQy2odZqbS7iWY3swZzJouRkuQVNilxCW7w==","signatures":[{"sig":"MEUCIQDTe3aB8IyiPeYEWf4dcsJJt8GY3cNhc1pwVewyFq99CAIgSLe9qjYN26+auEvSKYpw4zgvRPZKaiEZsQpIurr8OvY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6136761},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"f80bc858bc4bfb4a5f8d822fc592da4ef3a3ec85","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:fast && node scripts/run-tests.mjs slow","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.3"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.4.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.15.1_1786395317455_0.45568278207431434","host":"s3://npm-registry-packages-npm-production"}},"1.16.0":{"name":"@blundergoat/goat-flow","version":"1.16.0","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","_id":"@blundergoat/goat-flow@1.16.0","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"homepage":"https://github.com/blundergoat/goat-flow#readme","bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"bin":{"goat-flow":"dist/cli/cli.js"},"dist":{"shasum":"fb5e9e91e35c3367fb678fb66d61b338ea30b1f2","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.16.0.tgz","fileCount":602,"integrity":"sha512-AVTzDYaXxW1cQnxpi0WCdO2eQrf63C1W+MnmahuSGjl+acKIf34IQDiNN8xPdtJt7zI/Bs2IpLa4eD2a9Utvbg==","signatures":[{"sig":"MEQCICCjFr/7iJrysdSyG2kS/cqMxd+hipmBMQ4LJoI8+ldXAiBA4JuDiYsiqTQnDQ16SqIMmTV2TK5ELmzJRcRrvm7zAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":6998863},"main":"dist/cli/index.js","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"2b109b443918b8db8d9c7f94fd02456be4e7922a","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"npm run check:managed-hook-contract && node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","test:slow:ci":"node scripts/run-tests.mjs slow","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:fast && node scripts/run-tests.mjs slow","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs","check:managed-hook-contract":"node --import tsx scripts/generate-managed-hook-desired-state.mjs --check","generate:managed-hook-contract":"node --import tsx scripts/generate-managed-hook-desired-state.mjs --write"},"_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"overrides":{"typed-rest-client":{"qs":"6.15.3"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.5.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"tmp":"tmp/goat-flow_1.16.0_1787172791661_0.6747891709524223","host":"s3://npm-registry-packages-npm-production"}},"1.17.0":{"_id":"@blundergoat/goat-flow@1.17.0","bin":{"goat-flow":"dist/cli/cli.js"},"bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"dist":{"shasum":"d2f0a04ad263c913819eba6b06a19f4821408a4e","tarball":"https://registry.npmjs.org/@blundergoat/goat-flow/-/goat-flow-1.17.0.tgz","fileCount":647,"integrity":"sha512-VvaOSzOsfTn6YguSSpdOpe0UgVh/TKW7j0SpNPf24fFXk20ipF1MAwKjyEQ4ddP3D0MbojO9vzYDs6gR2446Og==","signatures":[{"sig":"MEUCIGvH9zkxFG2O9DFtBVlO8iXp1N7Ir+QfZfxwm1u9vOA0AiEAlK0CYGaEWGP8dcU90Le0H9FF6wXg+zCmdWazu/pBjGU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCJFaZmQjwSoNkCgLwVjBseMRNzQIzOxSpslNkoCI5dQQIgXcZaQQ1xfV2AG0rq9VR9He4tzvkkMApyagUKmn9wzSQ="}],"unpackedSize":9074152},"main":"dist/cli/index.js","name":"@blundergoat/goat-flow","pnpm":{"onlyBuiltDependencies":["node-pty"]},"type":"module","types":"./dist/cli/index.d.ts","author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"engines":{"node":">=20.11.0"},"exports":{".":"./dist/cli/index.js"},"gitHead":"ba4c5d9e0f3d1cc72a9528fa1f1c4764dfdb6234","license":"MIT","scripts":{"dev":"tsc && npm run build:dashboard && node dist/cli/cli.js dashboard . --dev","test":"npm run test:fast","audit":"node dist/cli/cli.js audit .","build":"npm run check:hook-policy-parser && npm run check:hook-graphql-parser && npm run check:managed-hook-contract && node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true });\" && tsc && node -e \"require('node:fs').chmodSync('dist/cli/cli.js', 0o755);\" && npm run build:dashboard","format":"prettier --write --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","gruff-ts":"gruff-ts","dashboard":"npm run build && node dist/cli/cli.js dashboard .","preflight":"bash scripts/preflight-checks.sh","test:fast":"node scripts/run-tests.mjs fast","test:full":"npm run test:fast && npm run test:slow","test:slow":"npm run build && node scripts/run-tests.mjs slow","typecheck":"tsc --noEmit && tsc -p tsconfig.dashboard.json --noEmit","audit:json":"node dist/cli/cli.js audit . --format json","format:check":"prettier --check --no-error-on-unmatched-pattern \"src/**/*.{ts,js,html}\" \"test/**/*.ts\" \"scripts/**/*.mjs\"","test:slow:ci":"node scripts/run-tests.mjs slow","audit:harness":"node dist/cli/cli.js audit . --harness","goat-flow:cli":"node dist/cli/cli.js","publish:check":"npm run check-versions && npm run check-instruction-parity && npm run build && npm run check-package-links && npm run test:fast && node scripts/run-tests.mjs slow","test:coverage":"node scripts/run-tests.mjs coverage","check-versions":"node scripts/check-versions.mjs","check:node-pty":"node scripts/warn-node-pty.mjs","prepublishOnly":"npm run publish:check","build:dashboard":"tsc -p tsconfig.dashboard.json && node scripts/build-dashboard-assets.mjs","test:performance":"npm run build && node scripts/run-tests.mjs performance","check-package-links":"node scripts/check-package-readme-links.mjs","skill-quality:snapshot":"node --import tsx --input-type=module -e \"import { writeFileSync } from 'node:fs'; import { scoreAllArtifacts } from './src/cli/quality/skill-quality.ts'; const fixture = Object.fromEntries(scoreAllArtifacts(process.cwd()).map((report) => { const pct = Math.round((report.totalScore / report.profileMax) * 100); return [report.artifact.id, { minPct: Math.max(0, pct - 2), maxPct: Math.min(100, pct + 2), recommendation: report.recommendation, subtype: report.subtype }]; })); writeFileSync('test/fixtures/skill-quality/expected-scores.json', JSON.stringify(fixture, null, 2) + '\\n');\"","profile:dashboard-audit":"node scripts/profile-dashboard-audit.mjs","check-instruction-parity":"node scripts/check-instruction-parity.mjs","check:hook-policy-parser":"node scripts/generate-hook-policy-parser.mjs --check","check:hook-graphql-parser":"node scripts/generate-hook-graphql-parser.mjs --check","check:managed-hook-contract":"node --import tsx scripts/generate-managed-hook-desired-state.mjs --check","generate:managed-hook-contract":"node --import tsx scripts/generate-managed-hook-desired-state.mjs --write"},"version":"1.17.0","_npmUser":{"name":"blundergoat","email":"thatmatthansen@gmail.com"},"homepage":"https://github.com/blundergoat/goat-flow#readme","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"overrides":{"typed-rest-client":{"qs":"6.16.0"}},"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"_npmVersion":"10.9.4","description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","directories":{},"maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"_nodeVersion":"22.22.1","dependencies":{"ws":"^8.20.1","js-yaml":"^4.1.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.0.0","knip":"^6.0.2","eslint":"^10.1.0","esbuild":"0.28.2","graphql":"16.14.2","alpinejs":"^3.15.12","prettier":"^3.8.1","@types/ws":"^8.18.1","typescript":"^5.4.0","@types/node":"^20.6.0","@xterm/xterm":"^5.5.0","@types/js-yaml":"^4.0.9","@xterm/addon-fit":"^0.10.0","typescript-eslint":"^8.57.1","@tailwindcss/browser":"^4.3.2","@blundergoat/gruff-ts":"^0.5.0","@stryker-mutator/core":"^9.6.1"},"optionalDependencies":{"node-pty":"1.1.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/goat-flow_1.17.0_1790997420592_0.7020251392866816"}}},"time":{"created":"2026-03-29T20:28:45.299Z","modified":"2026-10-03T03:17:00.933Z","0.9.1":"2026-03-29T20:28:45.673Z","0.9.2":"2026-03-29T22:37:48.620Z","0.9.3":"2026-03-30T10:20:49.719Z","0.9.4":"2026-04-02T10:24:40.796Z","0.10.0":"2026-04-05T05:16:23.598Z","1.0.0":"2026-04-05T06:04:36.958Z","1.1.0":"2026-04-16T21:14:12.195Z","1.2.0":"2026-04-20T21:30:46.526Z","1.2.1":"2026-04-21T05:38:31.772Z","1.2.2":"2026-04-21T11:05:59.994Z","1.2.3":"2026-04-22T11:13:37.565Z","1.2.4":"2026-04-23T21:04:43.674Z","1.2.5":"2026-04-23T22:43:43.058Z","1.3.0":"2026-04-27T09:35:27.892Z","1.3.1":"2026-04-28T21:35:06.655Z","1.3.2":"2026-05-01T02:20:23.984Z","1.4.0":"2026-05-02T10:53:02.694Z","1.4.1":"2026-05-03T06:24:52.292Z","1.4.2":"2026-05-03T20:56:52.711Z","1.4.3":"2026-05-03T23:46:32.032Z","1.5.0":"2026-05-07T21:13:22.818Z","1.6.0":"2026-05-10T10:27:52.667Z","1.6.1":"2026-05-11T11:02:51.699Z","1.6.2":"2026-05-11T20:24:42.591Z","1.6.3":"2026-05-11T21:25:40.938Z","1.6.4":"2026-05-12T09:04:45.936Z","1.7.0":"2026-05-20T19:32:39.939Z","1.8.0":"2026-05-27T21:29:45.116Z","1.9.0":"2026-06-01T03:58:57.316Z","1.9.1":"2026-06-05T11:16:16.740Z","1.10.0":"2026-06-07T09:31:42.232Z","1.10.1":"2026-06-08T18:47:48.455Z","1.11.0":"2026-06-10T20:22:46.261Z","1.12.0":"2026-06-14T02:40:18.144Z","1.12.1":"2026-06-14T09:56:38.898Z","1.13.0":"2026-07-03T20:14:42.333Z","1.13.1":"2026-07-05T05:55:38.284Z","1.14.0":"2026-07-19T08:34:06.932Z","1.15.0":"2026-08-07T11:15:19.214Z","1.15.1":"2026-08-10T20:55:17.672Z","1.16.0":"2026-08-19T20:53:11.863Z","1.17.0":"2026-10-03T03:17:00.761Z"},"bugs":{"url":"https://github.com/blundergoat/goat-flow/issues"},"author":{"url":"https://www.blundergoat.com","name":"Matthew Hansen"},"license":"MIT","homepage":"https://github.com/blundergoat/goat-flow#readme","keywords":["goat-flow","harness-engineering","ai-harness","ai-agent-harness","ai-agents","coding-agent","coding-agents","ai-coding","agentic-coding","ai-workflow","agent-workflows","ai-safety","ai-guardrails","agent-guardrails","agent-dashboard","prompt-engineering","claude-code","codex","openai-codex","antigravity","copilot","github-copilot","llm","llm-tools","developer-tools","cli","auditor","code-quality","multi-agent"],"repository":{"url":"git+https://github.com/blundergoat/goat-flow.git","type":"git"},"description":"AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot - setup audits, guardrails, structured skills, deny hooks, and persistent learning loops.","maintainers":[{"name":"blundergoat","email":"thatmatthansen@gmail.com"}],"readme":"# GOAT Flow\n\n**An AI coding agent harness and local dashboard for Claude Code, OpenAI Codex, Google Antigravity, and GitHub Copilot.**\n\nGOAT Flow audits agent setup, installs guardrails and deny hooks, provides structured `/goat-*` workflows, and preserves lessons between sessions. Its manifest-backed registry keeps the same harness available across all four supported coding agents.\n\n[![npm version](https://img.shields.io/npm/v/@blundergoat/goat-flow.svg)](https://www.npmjs.com/package/@blundergoat/goat-flow) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE)\n\n```bash\nnpx @blundergoat/goat-flow@latest\n```\n\nOutput:\n\n```text\nWhat do you want to do?\n  1. Start dashboard\n  2. Install/update goat-flow files\n  3. Generate setup prompt\n  4. Audit current project\n  5. Show project status\n```\n\nInstall locally when you want a project-pinned version:\n\n```bash\nnpm install --save-dev @blundergoat/goat-flow\n```\n\nThen launch the dashboard through npm:\n\n```bash\nnpm exec --package=@blundergoat/goat-flow -- goat-flow dashboard .\n```\n\nThe embedded terminal needs the optional `node-pty` package to compile. See [Troubleshooting](#troubleshooting) if the terminal does not appear.\n\n## What GOAT Flow adds\n\n| Component | What it prevents |\n|---|---|\n| **Execution loop** (READ → SCOPE → ACT → VERIFY) | Guessing at unread code or shipping without checks |\n| **Eight skills** (seven `/goat-*` workflows, including direct `/goat-clarity`, plus dispatcher) | Free-form prompting that drifts mid-task |\n| **Enforcement hooks** | Destructive commands, repository publication, and direct secret-path access |\n| **Learning loop** | The same mistake recurring in later sessions |\n| **Autonomy tiers** | Agent overreach and missed approval boundaries |\n\nSkills provide explicit phases and human gates. Hooks reject covered tool calls before they execute. The learning loop turns verified failures into durable lessons, footguns, and decisions.\n\n## Dashboard\n\n![Dashboard](docs/assets/dashboard-preview.png)\n\nThe local dashboard keeps project and runner selection available while you move between operational views:\n\n| View | Use it for |\n|---|---|\n| **Home** | Compare setup and harness results across supported agents, then follow the highest-priority repair |\n| **Setup** | Detect the project, install deterministic files, and generate project-specific setup prompts |\n| **Prompts** | Search 24 visible presets across critique, debug, plan, QA, review, and security |\n| **Workspace** | Run up to 10 PTY-backed terminal sessions and attach images to prompts |\n| **Plans** | Inspect local milestones, checkbox progress, and the active-plan pointer |\n| **Projects** | Register projects, compare audit status, and switch the dashboard target |\n| **Skills** | Audit installed skills or evaluate draft Markdown without installing it |\n| **Quality** | Generate source-aware assessment prompts and compare saved reports |\n| **Hooks** | Inspect and toggle shipped guardrail, quality, and safety hooks |\n\nSettings and About provide local preferences and orientation. See the [Dashboard reference](docs/dashboard.md) for view details, security boundaries, and API endpoints.\n\n## Why an instruction file is not enough\n\nInstruction files tell the agent what to do. They don't enforce it.\n\n|  | Instruction file alone | GOAT Flow |\n|---|---|---|\n| Tell the agent the rules | yes | yes |\n| Block dangerous commands at tool level | no | yes |\n| Structured workflows with human gates | no | yes |\n| Capture lessons across sessions | no | yes |\n| Audit whether setup is actually correct | no | yes |\n\nUse an instruction file for rules the agent should remember. Use GOAT Flow when a rule also needs structural enforcement, verification, or recovery.\n\n## Getting started\n\nRequires Node.js 20.11+.\n\n### 1. Start with the menu\n\n```bash\nnpx @blundergoat/goat-flow@latest\n```\n\nNo install required. Choose dashboard, deterministic install/update, setup prompt generation, audit, or status from the menu.\n\n### 2. Install/update system files\n\nFor a brand new project, copy the goat-flow system files first. This step is deterministic and does not require an agent:\n\n```bash\nnpx @blundergoat/goat-flow@latest install . --agent claude\nnpx @blundergoat/goat-flow@latest install . --agent claude --dry-run\n```\n\n`--dry-run` shows managed-template drift without writing. A normal install refreshes system-owned files, preserves user-owned and external files, and blocks ambiguous local edits or unsafe paths. `--force` is an alias for `--force-managed` and accepts every inspected system-owned conflict. A replaceable user-owned file requires both `--force-user-owned` and a matching `--force-path`; settings, hook configs, and `.goat-flow/config.yaml` are never replaced. No authority bypasses path-safety failures. Replacements are atomic per file; the [CLI reference](docs/cli.md#atomic-installer-writes) explains failure and rollback behaviour.\n\nDashboard Home and aggregate `goat-flow audit .` read supported agents from `workflow/manifest.json`. Use `--agent <id>` when you intentionally want one runtime. Installs also include shared meta references and on-demand tool playbooks under `.goat-flow/skill-docs/`.\n\n### 3. Generate the setup prompt\n\nThe installer copies shared system files. The setup prompt still creates or refreshes project-specific content such as the instruction file, architecture, code map, and real project footguns/lessons.\n\n```bash\nnpx @blundergoat/goat-flow@latest setup . --agent claude\n```\n\nEquivalent deterministic setup/update command:\n\n```bash\nnpx @blundergoat/goat-flow@latest setup . --agent claude --apply\n```\n\n### 4. Re-audit\n\nBack on the Home view, click **Re-audit**. Each failure names the missing or stale surface and provides a repair hint. Harness cards show structural coverage across the five concerns.\n\n### 5. Use a prompt\n\nOpen the **Prompts** view, pick a workflow (code review, bug diagnosis, UI debugging with browser evidence, security assessment, test planning), and launch it in a terminal session. Each prompt invokes a structured `/goat-*` skill with phases and human gates.\n\n## Multi-agent support\n\nGOAT Flow's manifest-backed registry supports **Claude Code, Codex, Google Antigravity, and Copilot CLI**. Their installed templates share the execution loop, autonomy tiers, skills, and learning loop. The dashboard runner switcher shows their audit results side by side.\n\nRun `npx @blundergoat/goat-flow@latest manifest` to inspect the live agent matrix from `workflow/manifest.json`.\n\n## CLI commands\n\nThe dashboard covers most workflows visually. For CI or scripting, the same features are available as CLI commands:\n\n```bash\nnpx @blundergoat/goat-flow@latest dashboard .                  # Launch the dashboard\nnpx @blundergoat/goat-flow@latest audit .                      # Run audit (pass/fail output)\nnpx @blundergoat/goat-flow@latest audit . --harness            # Add AI harness scoring\nnpx @blundergoat/goat-flow@latest audit . --format json        # JSON output for CI\nnpx @blundergoat/goat-flow@latest audit . --format sarif       # SARIF output for code scanning upload\nnpx @blundergoat/goat-flow@latest install . --agent claude     # Copy/update system files\nnpx @blundergoat/goat-flow@latest setup . --agent claude       # Generate setup prompt\nnpx @blundergoat/goat-flow@latest quality . --agent claude     # Generate quality-assessment prompt\nnpx @blundergoat/goat-flow@latest redact --output .goat-flow/logs/sessions/YYYY-MM-DD-HHMM-handoff-rand5.md\nnpx @blundergoat/goat-flow@latest plans export .goat-flow/plans/<version> --format markdown\nnpx @blundergoat/goat-flow@latest status .                     # Project state (bare/partial/v0.9/outdated/current/error)\nnpx @blundergoat/goat-flow@latest manifest                     # Agent support matrix\n```\n\nAudit-backed CLI commands inspect checkout hook configuration statically by default. Add `--trusted-target` to a selected-agent audit, setup prompt, quality prompt, or `hooks verify` only after confirming that the checkout's configured hook launcher and managed scripts are safe to execute. The dashboard never runs target hook code.\n\nUse `redact` before saving a session, handoff, review, quality, security, or export draft. It replaces common credential shapes while preserving useful continuation context. File output must stay inside the selected project, uses private create-only persistence, and never replaces an existing artifact; choose a fresh filename for every run. Redaction is not perfect DLP or a substitute for reviewing the output.\n\nFor interrupted work without an active milestone, `.goat-flow/logs/sessions/README.md` provides the optional handoff receipt schema. Run the command, paste the receipt into stdin, and send EOF so raw text is scrubbed before the output file is created.\n\nThe dashboard prints a tokenized localhost URL. Open that URL from the terminal output; the token is process-local and is removed from the visible address bar after the page boots.\n\nSee [docs/cli.md](docs/cli.md) for the full reference.\n\n## The five harness concerns\n\nGOAT Flow groups its harness checks into five concerns:\n\n| Concern | Question |\n|---------|----------|\n| **Context** | Is the agent's context accurate, lean, and useful? |\n| **Constraints** | Do deterministic rules catch failures before the LLM runs? |\n| **Verification** | Can the agent verify its work, and does failure feed back? |\n| **Recovery** | Can the agent resume after crash or interruption? |\n| **Feedback Loop** | Is the harness getting smarter from failures over time? |\n\nSee [Harness engineering](docs/harness-engineering.md) for the model and [Audit & Quality](docs/audit-and-quality.md) for the evaluation workflow.\n\n## Troubleshooting\n\n**Terminal not showing in dashboard?**\ngoat-flow installs without a C++ toolchain as of v1.2.4. If you need the dashboard's embedded terminal, you'll also need `node-pty` to compile. Install build tools (`sudo apt install build-essential python3` on Debian/Ubuntu, `xcode-select --install` on macOS), then run `npm rebuild node-pty`. To skip the native build entirely: `npm install @blundergoat/goat-flow --omit=optional`.\n\n**Audit fails on a fresh project?**\nExpected. Run `npx @blundergoat/goat-flow@latest install . --agent claude`, then generate the setup prompt with `npx @blundergoat/goat-flow@latest setup . --agent claude`.\n\n**Audit still fails after setup?**\nRe-run `npx @blundergoat/goat-flow@latest audit . --verbose` to see which check failed. The `howToFix` hint on each failure points at the missing file or config key.\n\n**Agent isn't following the execution loop?**\nRestart the agent session after setup so it re-reads the instruction file. Agents only pick up instruction-file changes on session start.\n\n**Setup prompt looks wrong or incomplete?**\nRegenerate from the dashboard Setup page, which shows detected stack info alongside the prompt.\n\n## Documentation\n\n| Document | What it covers |\n|---|---|\n| [CLI Reference](docs/cli.md) | All commands, flags, and output formats |\n| [Dashboard](docs/dashboard.md) | Views, local access boundary, terminal, and API endpoints |\n| [Audit & Quality](docs/audit-and-quality.md) | Deterministic audit versus agent-driven quality assessment |\n| [Deterministic Audit Checks](docs/audit-checks.md) | Stable check IDs, scopes, and command matrix |\n| [Harness Engineering](docs/harness-engineering.md) | The five-concern model and its sources |\n| [Harness Audit](docs/harness-audit.md) | Harness scoring, evidence limits, and check semantics |\n| [Skills](docs/skills.md) | All eight skills, their modes, gates, and outputs |\n| [Skill Authoring](docs/skill-authoring.md) | Candidacy, RED evidence, scaffolding, and draft validation |\n| [Guardrails](docs/guardrails.md) | Runtime command-safety surfaces and limitations |\n| [Coding Standards](docs/coding-standards/conventions.md) | Repository architecture, commands, and implementation conventions |\n\n## Author\n\nBuilt by [Matthew Hansen](https://www.blundergoat.com/about).\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}