{"_id":"@esoteric-logic/praxis-harness","_rev":"41-a6c2a0d68b15d60107b4f9334ce29abd","name":"@esoteric-logic/praxis-harness","dist-tags":{"latest":"3.6.0"},"versions":{"1.1.0":{"name":"@esoteric-logic/praxis-harness","version":"1.1.0","keywords":["claude-code","ai-harness","vault","obsidian","logseq","workflow","gsd"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@1.1.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"6c8d046bb53783fcecb748cef09f151edc52c49b","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-1.1.0.tgz","fileCount":79,"integrity":"sha512-FNEQW2dGK+87iA8yI8xbfbZsv42nFXno5ikdp/yUYyYc5BUBhqfHfG9qjkYhkMiSXQIQC71kJYSlfNOmx9mn3g==","signatures":[{"sig":"MEYCIQDxQPmu4TU+NiB59ya9qD04nMAaC8lmc9A/+MVQosMG7QIhAPNiKg6Y2kx4FbkKhl+ICeJSG5fTys8UsYfDKjWQf68f","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221252},"engines":{"node":">=18"},"gitHead":"df557d5e76f93a1dab0b2a06df3eea1990197271","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_1.1.0_1774191045785_0.24873389942296886","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@esoteric-logic/praxis-harness","version":"1.2.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow","gsd"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@1.2.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"87d57b3e53fc0ab8311fe789612219c826f1f238","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-1.2.0.tgz","fileCount":82,"integrity":"sha512-7uxRd4TclY3VRYJMIHH184aWToQdbyT/drp68drN09LlJKgD2oRP88rL+t/1RGLPCThQ8lt4RVzOI+cMeERtBQ==","signatures":[{"sig":"MEUCIFWVl8iv4KOFaB06Olxm1DqVTm2gRE2wUHld1YTlccKdAiEA2s6J5Xp3doP1dJQAxn8UD0pqU+UG0Psg1rVS+xiokKM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220296},"engines":{"node":">=18"},"gitHead":"e9429643e0983fa060df512f9a2e134e320ae913","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_1.2.0_1774197023105_0.5183391400245183","host":"s3://npm-registry-packages-npm-production"}},"1.2.1":{"name":"@esoteric-logic/praxis-harness","version":"1.2.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow","gsd"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@1.2.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"c96bef5ca37763e3fe890b4c85834f1c02652d83","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-1.2.1.tgz","fileCount":83,"integrity":"sha512-igkwV19qOktf5tPLMPxv7L6zCu0/GUDUGD31eoKp8LAHh9KgeAT40ucXYcP9T/aeJTApSoG+p2rqhx0B2AxFeA==","signatures":[{"sig":"MEUCIGVwPrjc1j0BWiim5wUwkHdkdPNzKKDzeypzRE13TzxsAiEA2g3sZkl3X3qRHN89bwAgTSJ/8nySSisF2yOk0/qw4fY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":221628},"engines":{"node":">=18"},"gitHead":"4d2c38781c998a2ff78f6ccb759c388d7831693f","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_1.2.1_1774199137794_0.2066911351050007","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@esoteric-logic/praxis-harness","version":"2.0.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.0.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"8854ba9b2e67b345d85626db34b3534c2772098f","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.0.0.tgz","fileCount":83,"integrity":"sha512-Lpa0F9a8mODoQ35710XvK3dWtPy3KPMURm45Dd/YlRnkDupjWpXRzjXgX7Aivxhq4yjmpooB8rym3RW/BmJdrQ==","signatures":[{"sig":"MEQCIBzfFiOUhM4sgwPOc/wATM2VSiRFGVK1mudc46ulO1SzAiAkSYTnj6938SGfxTYtpmUvYZ9pWSX/b0V+4FDjtSf+7A==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":213439},"engines":{"node":">=18"},"gitHead":"ed706698f285c7394bacb5460d66aca4f2b56522","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.0.0_1774231780642_0.7255264388680647","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@esoteric-logic/praxis-harness","version":"2.0.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.0.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"aa46122f7f1f939deb59f0272cf27b3feca5c428","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.0.1.tgz","fileCount":87,"integrity":"sha512-o1oV4/j4KQYooY2FuY8uOEYs6IDEIQWS7NUhW9+yZ8foZLUr1/OvLctF2JByqvizC29jZKqBi1WHY3SHyEp8Ug==","signatures":[{"sig":"MEUCIQCo6w0rCC34d6ZrX4f3CMAUohUKZoIxzS8g/UnniTQn6wIgNmklGOeYoS2TBGsMZn2BaVXU/K+Hx6osmlKk7rwZzog=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220674},"engines":{"node":">=18"},"gitHead":"16174c785b825a48daf8bffd0a47f66d0d5e441e","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.0.1_1774290445103_0.06690276091618719","host":"s3://npm-registry-packages-npm-production"}},"2.0.2":{"name":"@esoteric-logic/praxis-harness","version":"2.0.2","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.0.2","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"9ffdc1e364931d23495682305ed36ade1cc6a9fe","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.0.2.tgz","fileCount":87,"integrity":"sha512-Upgrl1191GanSRr5umypysfhY1R1GOn+Qg73M4tTTRp6KEyDhsfYNRQ76NQUXTxP0ZR4AAo0b0tN/kDrQmbo+g==","signatures":[{"sig":"MEQCIDz2cC2wt95keqCcG0hbOUSDuBKl9Buil4Wa94jFYx5cAiBjPc+35xdFIJbCNoxD2zDyLgSnjIetyaaicYGojA65nA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220543},"engines":{"node":">=18"},"gitHead":"8fbe32d50f2e7c8ba5ffcfaedc54eb48aa2af90d","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.0.2_1774290710061_0.3045391121026986","host":"s3://npm-registry-packages-npm-production"}},"2.0.3":{"name":"@esoteric-logic/praxis-harness","version":"2.0.3","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.0.3","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"fa4344adc10e753bc435168b21c1b09d6d2100d6","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.0.3.tgz","fileCount":87,"integrity":"sha512-Z/t4WxvtG0Ras2aa8Gx/S+uWzHPyj6SdWpClmfAKhiDFqFlnx5Ve0vl93uwGE0Mv3RjtGbiunZYPcS73jYpAVQ==","signatures":[{"sig":"MEUCIQD2vvrkxrHqRsshhXgOl2BQOExWJFaIExDtZnrk1fLNwAIgGCIyA2fkJGAnBF4w0h7NvaWrXhUNuzTqaD2N31h+Td0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":222160},"engines":{"node":">=18"},"gitHead":"ebb595ad2636ab0352cb43e6634baf761536a647","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.0.3_1774291056178_0.8523372725048528","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@esoteric-logic/praxis-harness","version":"2.1.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.1.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"74bd0a151b0421b6a5862432b5aa8b9d16705c12","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.1.0.tgz","fileCount":89,"integrity":"sha512-S7k9M+oVaeCbkVQJZEXYwCfDcsPI3/JT9eFT4pTK++NhGrY5VBa5fxIgFrv5/ijAXbXPyA/6Q/u/Cj8iAKJs0Q==","signatures":[{"sig":"MEYCIQDAMpBSbHvjmExt/NCClAndhBloj9Dg5otvkQs6HlPZ8QIhALe1/iEWgo531tKzqHr+3PYXQQGMDTnZWumS4k+K3AqH","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":233849},"engines":{"node":">=18"},"gitHead":"8542df4d5a4c367a2ae5bb5303e648a0ccd26f15","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.1.0_1774367421949_0.8128199329284145","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@esoteric-logic/praxis-harness","version":"2.1.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.1.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"6e3e424160365cdaac705b529f045c5d688df3a9","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.1.1.tgz","fileCount":89,"integrity":"sha512-Lu8TrMRoUOhakXQejMB5JYgTUMNwXT9wJWxIbfcKhf16J3+O0Ndpul8ltiOoCcx3ePR8fisc9KHqqw1epZeTRw==","signatures":[{"sig":"MEQCIHjaXM0226di24Nsq1T/uFNR6Bcpivl/IGAaodhdWYtJAiBIv3gInrrfEDhZKxrgzQ0qs9K2ce0/dOVPpreZmGXOXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":234240},"engines":{"node":">=18"},"gitHead":"e0e848c5ece4c7c4d2309dbb34ad3b8a3eba276b","scripts":{"test":"node --check bin/praxis.js"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.1.1_1774368173133_0.9972024374243202","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@esoteric-logic/praxis-harness","version":"2.2.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.2.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"74956ff527137dc4344119a286e7bb7874897595","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.2.0.tgz","fileCount":114,"integrity":"sha512-CYHwI+spbZ3d3y4LkMyenva3OZIf+cgwEWp/uHTf4ghzRXBTZwZacY0urxgFCbbTfbS4hSTn3J+RSjWjGXTpYg==","signatures":[{"sig":"MEUCIQD9k2UKLbjQe5bc2Qn3vFJHFWppCGks62vxpxqtAhZxUgIgel8P2V9JWuhDJ1HbO7EbrF138r9WGS2XM4D+Iq1A7a0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272938},"engines":{"node":">=18"},"gitHead":"b1e7872d406bef65ace6494ad9d6c4035ee9c4b8","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.2.0_1774371379244_0.34442132142646953","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@esoteric-logic/praxis-harness","version":"2.3.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.3.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"cafc07370b8089ccbd50ad2b4cdb701184ca6e85","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.3.0.tgz","fileCount":116,"integrity":"sha512-CJuxJR14BT3QtuuyFgmT2WhA8QBP/DXVdplNU3aNCtW/RR5nceFwuwr1n+IcPOzelv1bceXW7fms/KWFhOf/Bg==","signatures":[{"sig":"MEUCIFEPqhgYy4sfcdiEt8J0+O2uPUXGKKlA28vbICEAPTv4AiEAq7yTJNoe24MruSxTicpfQpIW+Q3Koa0TwpXvWsZPvP4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":279865},"engines":{"node":">=18"},"gitHead":"db278be6a5b7092237fa71deff9371d4553c46e1","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.3.0_1774375298568_0.40321956115602764","host":"s3://npm-registry-packages-npm-production"}},"2.3.1":{"name":"@esoteric-logic/praxis-harness","version":"2.3.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.3.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"4e910aeb9ced049e070accec83b184a6163b42e5","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.3.1.tgz","fileCount":116,"integrity":"sha512-egsAjjt7HJoLIPVj/XAfEXXli/sSX8N1oYK+DwwOZZBeBJFxOEyQYAaz8CLJaqw4WCKqX77ZhF16me9PriI4HQ==","signatures":[{"sig":"MEUCIQC2i387qDrn0vqaoPUzH3Q1B6hVkqOJgyl5c/2Jjn/34QIgBfekceH8pS6AfildYIvhRnCdY8FqNayU4X+y9OEk3ak=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":280531},"engines":{"node":">=18"},"gitHead":"caa5b3859bf102041992346bc72f25aaba46b647","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.3.1_1774375673979_0.3608458677210087","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@esoteric-logic/praxis-harness","version":"2.4.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.4.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"8b3e0e836adadee195a7afcd59a5dc6a366fdea0","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.4.0.tgz","fileCount":132,"integrity":"sha512-02DTi830GuPxNKmtHC8OrfN0LFL+Z7kPKY5+iexfBaQfN4miPVqEBU+4BUCSliO6z2l5jpKbhSrLywbEa1FXeg==","signatures":[{"sig":"MEUCIQCD1T73sXp9E9GRz0cIpMQPMl9Aprm3ylC/tnHmy1eQ3AIgDOTwn2R0XnyVs2SpsKn05pMdIiuorQZlRBkt8ERMwrU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":314011},"engines":{"node":">=18"},"gitHead":"f29c840c4a98f36c2df7187f4460ba3015cd8a6a","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.4.0_1774451994110_0.8744721052699911","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@esoteric-logic/praxis-harness","version":"2.4.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.4.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"20613a33e90ec64f833a596be11af072fad6add6","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.4.1.tgz","fileCount":137,"integrity":"sha512-PHtT4L6tUr5DP6O7UscHskPrKEwAi07eHi3nV+BBa4/eRSWsY3+0X0wEyA9L7wF/Ex9ToWHg2jv0GOzwOg3CUw==","signatures":[{"sig":"MEUCIQDxSJKsvSOl0neBDHeBKcmTGf6c5iJOYUIe4svDZLrbEgIgHOJ2sZDfP6MClqytgYppc3BMQbM+Mx3+B3NC/TvvQBU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":315769},"engines":{"node":">=18"},"gitHead":"f3df9016e9aa38e80d8141ddb53ca5aa193899a1","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.4.1_1774452608290_0.6192090048703776","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@esoteric-logic/praxis-harness","version":"2.5.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.5.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"bd33f1b0736c1834c4ea1656420acd20133d0584","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.5.0.tgz","fileCount":138,"integrity":"sha512-o87T5bBHtZgnGyXbea8Wrfepa8FTRXZ8nd4vABtvybUF8pXNjXRAgYDAQioshmb2jsHQi9QcdIJJqkyQxB5kxA==","signatures":[{"sig":"MEQCIB/K/8nWPf8XAsjoWmHVtNuvpFyGzxrhSUW3p7EY0DLcAiBYJAgfc6zFvFW2OJIiVtNr233G3xW2elJnjgvccD2A6Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321288},"engines":{"node":">=18"},"gitHead":"3ef2367aafc96d258f1c9052c132228afdc2c3e4","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.5.0_1774533604855_0.19817197525371766","host":"s3://npm-registry-packages-npm-production"}},"2.5.1":{"name":"@esoteric-logic/praxis-harness","version":"2.5.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.5.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"912d261e2e032dea9e95041a9bd2127f223a6a99","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.5.1.tgz","fileCount":138,"integrity":"sha512-MeD546xhLiimgYV6+qJJXDrTnTuOUG3oCPyl0xS91gkd6rZoz2xjNSjjYSJCUwyqArNBxTSvxzS0YK3Qo0Bl3Q==","signatures":[{"sig":"MEQCIA4L09VSHh5Y+DuEM6PU595TqdYwx9/nLYukzxihNbTgAiAj+wvrVuXKL86Wair4H77zuXuuXiBrblZXsNR19pMGMQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":321575},"engines":{"node":">=18"},"gitHead":"51e6690c6b78310223e82f97cbac87090021e727","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.1","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.5.1_1774536975120_0.40677285222015236","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@esoteric-logic/praxis-harness","version":"2.6.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.6.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"6e4ff8a2349838975337318502f1db051b4bde11","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.6.0.tgz","fileCount":138,"integrity":"sha512-fZWIa5egMrYD2xzcmlah8AHL8hpq5lphMR4J7N5la91s+tqZM+Gmld+k/YfZRWbLb5fOK6tBZy8UfHeqprJ8LQ==","signatures":[{"sig":"MEUCIQCiatSdc5GC7wNCwRdVBKPezIkUGmJO3e015ikVJYTaDQIgPzw+m7T2xBQiuDdefO0gtgJ7vYLw34bHleaRCNe31/E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":355749},"engines":{"node":">=18"},"gitHead":"e21328184208775d2f6b78e17db6cf78c24dfb9c","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.6.0_1774746156865_0.6207540465486934","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@esoteric-logic/praxis-harness","version":"2.7.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.7.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"c57a63bcc23f417ad4fa69bb5b6593d95940927f","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.7.0.tgz","fileCount":146,"integrity":"sha512-RIHMGD6h+hyf1ztmunLO88q6GaJwIWfo+5ELkjQwOL2k2Ge6fBTkdgmeWX5c3E6F/0kWMjX0pKOqgckzV9rXbw==","signatures":[{"sig":"MEYCIQCk5CzZfVMx+yDH2Pzi6UoG0pVGseZfE6+vTSQcYMYQvgIhAKGuMnBZk9Rt/fGO2nlGrNaEFc5atnI44QfgUZKYYeQn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":367790},"engines":{"node":">=18"},"gitHead":"505b3acb9c4b50ac3a14b5ac0aa92c3483fac371","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.7.0_1774810221020_0.8083439405024866","host":"s3://npm-registry-packages-npm-production"}},"2.8.0":{"name":"@esoteric-logic/praxis-harness","version":"2.8.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.8.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"3cf87eab65556685c8c9d34244da4da99016bdbe","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.8.0.tgz","fileCount":146,"integrity":"sha512-8VejlAKlo+7MTi9t/H6Yg1UzM5eqpaVP6Ex1vW/s9jT5br0kpjGtSqcFYElsqtchqCANiWvYWKemJUu49wYuWQ==","signatures":[{"sig":"MEUCIQDmtJD2zYowu4iC0QQiLmnCzd9Untg6yaxztF3saMKeVQIgaF4wMuryzBzfeHr73tPSBXx4GER+nEp5askbOlqUqew=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":368193},"engines":{"node":">=18"},"gitHead":"891f509b1789ff298087f3eef4603c9a4bb8776a","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.8.0_1774812587195_0.06242578964655743","host":"s3://npm-registry-packages-npm-production"}},"2.9.0":{"name":"@esoteric-logic/praxis-harness","version":"2.9.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.9.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"2e59c35fcbd7782253da93e0c9f82af34593af98","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.9.0.tgz","fileCount":162,"integrity":"sha512-9U388Xm4vgsHviNdPvAENmLXtivSRasJG/fjEa/Z9c8JdbOylJHoEFpe9mUmsvnz8KiSBTtJSC2hW1ss9w5I4g==","signatures":[{"sig":"MEQCIB/k5FZ88kVm6T8tvs6Rq5BLXfJ+YpPmyFVDU2PiIYPBAiBT/pzA9MjO9IRa6l+8/lA57u0WsVLcljaj8CSxAws+CQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":405865},"engines":{"node":">=18"},"gitHead":"2add2dcd4e3400cf2af904719744ff508b9ea998","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.9.0_1774833500981_0.47520394179587333","host":"s3://npm-registry-packages-npm-production"}},"2.9.1":{"name":"@esoteric-logic/praxis-harness","version":"2.9.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.9.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"3c42592b2d9b04bb5c769f5155ffa26ae92b93bf","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.9.1.tgz","fileCount":164,"integrity":"sha512-I/SW+pr4czGHAVLneazY9ikb7BBreoKXg7ktS6MlpK9H05JLrkOitg7B3cNoYLD5bt9TI5zBUCRoFqpVi3RPNg==","signatures":[{"sig":"MEUCIEGC1YFszNcFT7P8AQ6s5dHO86zzz/cj7uZg8Xl8LsFXAiEAteOtTXvTY8rbP3gYdvf7i997HSLXnRxrWe7KI6I32Ns=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":408629},"engines":{"node":">=18"},"gitHead":"71c1bcc5de89714d5e58549c0e6b77807d9f84bf","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.9.1_1774834715491_0.9072383634798151","host":"s3://npm-registry-packages-npm-production"}},"2.10.0":{"name":"@esoteric-logic/praxis-harness","version":"2.10.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.10.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"310c4fe74875a0eb88f520aa9aafc3dd351385bd","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.10.0.tgz","fileCount":166,"integrity":"sha512-PDW6YDMQHjaoSCusc/T4/paJscfW/EMu72wLxB3duhT2ZO2035F8Lga8apfTooiaQYpuitpXUJ+xuw0cTrI/Ag==","signatures":[{"sig":"MEYCIQDkg4ph/JnmWUYqL2p6EtKyoggKpR+UsIPnR5+i6GbTXgIhAJCsS1Z8x/bQbLaopLsqGD0nfeh8NXGiAznn2kR2WIwy","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":416593},"engines":{"node":">=18"},"gitHead":"fbe48b1a07eb865d7cac6133280ba41c1748ef2a","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.10.0_1774877427766_0.2531808346311728","host":"s3://npm-registry-packages-npm-production"}},"2.11.0":{"name":"@esoteric-logic/praxis-harness","version":"2.11.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.11.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"833c31d7fb7616a17eb73113f54599995f397faa","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.11.0.tgz","fileCount":175,"integrity":"sha512-/if/UrGqA+WYgcEZjOe1NzvdjWXHJxRd1Yelcr5bT5xRAJJrQEHkMpjZuR0/nlqGnajjes+NyDqjLNZtMz3IdQ==","signatures":[{"sig":"MEUCIB+OFqiW4EzIKgje6bHKryGr/P2Mb9uaJl8aAa+SWa2WAiEApNQD5exGGksQ658kHe1Al+cig3G2cZn+g3/dGyUTp3U=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":430232},"engines":{"node":">=18"},"gitHead":"1563741e73c017249ecd2e559aa8a367241b3f7b","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.11.0_1774890931905_0.6513487515178065","host":"s3://npm-registry-packages-npm-production"}},"2.12.0":{"name":"@esoteric-logic/praxis-harness","version":"2.12.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.12.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"ab1c9dc3a96f5f263f470fdb406952f1b18bd711","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.12.0.tgz","fileCount":182,"integrity":"sha512-rFNgx7izjz0hulUwKT4vUxqcOKQNhho0elkPgpaDWoXWR128VnYqubUVavv5GsDvql2tt9boTJPG+yyO27gwgw==","signatures":[{"sig":"MEQCIFn6Bhag6TZXdzzH4yAwnnscEeL9h7wO7sogCVrAhcFBAiAJWq/o7IQ8Kuk36gI6l0HH1oWN9HycylI0O/gLVirWHA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":463931},"engines":{"node":">=18"},"gitHead":"3ba0961e0d0100ee3d69b714d60c61bc2cd9f0da","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.11.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.8.2","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.12.0_1774918437239_0.36700228585752903","host":"s3://npm-registry-packages-npm-production"}},"2.13.0":{"name":"@esoteric-logic/praxis-harness","version":"2.13.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.13.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"4ad0256a17ec60f11964d9be0ac7df4a365a181a","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.13.0.tgz","fileCount":194,"integrity":"sha512-096QhTipLMwX9m46s6amNZ9a6Gvr93nsOdb2+Hz8KGbQoEHadU7HDwK10yoN+4niWu0bFERQiwLuLwBfxK2gjQ==","signatures":[{"sig":"MEUCIQCzn0L0rhrdy3S/iRKWpMWYkQcXqPo5cCVUg4+7a0JDCQIgJMgyZnppFGxxwVmqY4pbt38bs+eyVMuJYXK9En6OyZI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495553},"engines":{"node":">=18"},"gitHead":"e5acb850151b4d1169f5da6de3c83fb0029eec36","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.13.0_1775175040637_0.04366909900507365","host":"s3://npm-registry-packages-npm-production"}},"2.14.0":{"name":"@esoteric-logic/praxis-harness","version":"2.14.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.14.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"f9f71b9bdce3bd1ba72af57254dbee018990bd28","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.14.0.tgz","fileCount":195,"integrity":"sha512-1JQyFf86BiDHpwwiMnZ7dasOjhEHIrYCHUM1WYLRr5KWyN1wkX04PF8byGAJx8q7WWTA+INA6Nz53krnZImVHg==","signatures":[{"sig":"MEUCIBr6pRgSXR2dfrjMt7SFidG3tNp9EB2RVjY92s2vwTIvAiEAvQxfym80yl5o9sJ2Pzj7IQLJaBQVdNJRPBCay4xR+Fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":500131},"engines":{"node":">=18"},"gitHead":"39df489d05edb5148eae2e7c22b7f1c16ccb6c78","scripts":{"test":"node --check bin/praxis.js && bash scripts/test-harness.sh"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.14.0_1775251144007_0.8122101153089176","host":"s3://npm-registry-packages-npm-production"}},"2.15.0":{"name":"@esoteric-logic/praxis-harness","version":"2.15.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.15.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"6f227ad49f1025c62a6a5268aa6d649e72aeb948","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.15.0.tgz","fileCount":231,"integrity":"sha512-jO/EZJZ0p2/OFsz+xOV9Fy4Tmn6/wCuk5EfrOMrKQxPYh1C3i/jHsA9MF6tOMCjpHlF5rIchwUEeRH0O7DazBA==","signatures":[{"sig":"MEUCIQDhSzfG5SG76SlUY+cY5X41ukwoUPKNsSiTk9cmvUzOfQIgctwVHaqvFt4JuX79J8mLHvSAj0bjP+EeaxI0XWcco6o=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":667885},"engines":{"node":">=18"},"gitHead":"d9ae45b8424bec38acf94d7cd6bf633651a4b909","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.15.0_1775319155370_0.09489434985513445","host":"s3://npm-registry-packages-npm-production"}},"2.16.0":{"name":"@esoteric-logic/praxis-harness","version":"2.16.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.16.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"8921385aa22184b40d4f5454b214519d71d9a17e","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.16.0.tgz","fileCount":231,"integrity":"sha512-hUjDsGXjaAOnyU7U/jqdiON3VHu2KHNdV2nYHijpYEl4P2/kBSGVRP/Qn9CK+uJsiW81aZpaKdGZy82kjthBew==","signatures":[{"sig":"MEUCIQDF3JBo9CLuSBl8LdKrYyRXjKkVxvdUxr0LsbyRX+gjTAIgEjrl8F5vkiJRKYAgNksixyswvnp8XmHsiholEYiGAdw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":669504},"engines":{"node":">=18"},"gitHead":"da4933f200975cf074a80822edd1cf20d65b8eaa","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.16.0_1775322956245_0.09926327310878746","host":"s3://npm-registry-packages-npm-production"}},"2.17.0":{"name":"@esoteric-logic/praxis-harness","version":"2.17.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@2.17.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js"},"dist":{"shasum":"0fe748c93d2a5d025a59619264bba971492be197","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-2.17.0.tgz","fileCount":235,"integrity":"sha512-tcyrekNY1mpOkS3CmIpUxw/eGxMbhw1ZIUvUiQwXLKWYbU+w/phoA+toPeQyV1/2Bn/n4VGApYs9gGQtVvR3vA==","signatures":[{"sig":"MEUCIQCfLnYIxo/X6+F156yo0TUWOnvN8HawMGUtaKB4P4puEwIga1zXeZAqGPmqOHDKnBqqM57urF/cCYr/939cfdwAyu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":691265},"engines":{"node":">=18"},"gitHead":"842393a2850efe1ac5f3cc48e78598d013ad923d","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_2.17.0_1775324720487_0.061418697880653905","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"name":"@esoteric-logic/praxis-harness","version":"3.0.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.0.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"bd3e3be43bb56a318e60a8cb03342f6e3d44d490","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.0.0.tgz","fileCount":260,"integrity":"sha512-iWAxk/OxiHuDCcl+DwJgG3qWaMh6Zo6he7IR3Phvd/4Ax2M502PBBgY2gFEOhBTkcELLOJQeyXYn1+KqFOIDmg==","signatures":[{"sig":"MEQCIHym0sgA3edai2+qiSv+qoYJXkS+m2qchpc+Dgvu3ZWCAiBabSOFPFngpI2ddsEkMqLjJwJPemvQNmXP7YB7NlG5eA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":794980},"engines":{"node":">=18"},"gitHead":"13d9121796e39ce5f673845a1a73af3eba24f730","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.0.0_1775348944964_0.14683284348878511","host":"s3://npm-registry-packages-npm-production"}},"3.0.1":{"name":"@esoteric-logic/praxis-harness","version":"3.0.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.0.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"4ea2843a5412be218ddff20f4b584ee4594df7c3","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.0.1.tgz","fileCount":261,"integrity":"sha512-E5Np0qpkG4fyzPBmAvgi9tCpGndSJ0lbvA7xQ18Z2JZrhRg2kpDcJKYreITUdtjJxte/1qLOIIhKmNSwqzZzBQ==","signatures":[{"sig":"MEUCIQDtsbeULfxBns+42cwtIbkSYugG/KfMj29QcC89Pik1uwIgTbBSwxUWHSruW0MJlHApa5drcrnytGcVcu+pbEYqomo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":796820},"engines":{"node":">=18"},"gitHead":"6685d8f418a18806ebe688d938100cb236874c28","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.0.1_1775350133074_0.8583849837870774","host":"s3://npm-registry-packages-npm-production"}},"3.1.0":{"name":"@esoteric-logic/praxis-harness","version":"3.1.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.1.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"ba1d5a569117c7ed076b35bc0a51136d96c79eeb","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.1.0.tgz","fileCount":268,"integrity":"sha512-Gjvufg0YLUoPZojUaRvnXNqdpvd1JB2OzQo9qspUuMlQ3yFHYw/tGpiSiA7fzxaxdSIJWSruUp45DAU7oMmMLg==","signatures":[{"sig":"MEUCIH9SCUzNatzP/NJboIlBZlUSGLLngf/2RMMi3vS3vaMZAiEAuX2WZ9gwtAYX2bY348UEljVgztDQ9KmRTP6Sy3Xq6Xg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":815870},"engines":{"node":">=18"},"gitHead":"c0f810d482b1c6bb7d575c546beee3d9a7152c5c","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.1.0_1775351855015_0.5639799116304811","host":"s3://npm-registry-packages-npm-production"}},"3.1.1":{"name":"@esoteric-logic/praxis-harness","version":"3.1.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.1.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"f83f70282b893d94d282c8a3cc8c4fe17c691a4a","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.1.1.tgz","fileCount":269,"integrity":"sha512-DW7+iA1vgraiNSBxFxa+M6NwS/aX00oSns3Qp3V0B+Lv12WgEwDdG6o5P/mafPNtGkifebuia0iBlo+KJA5RYw==","signatures":[{"sig":"MEQCIAptBZQXqmMTsETr3jM2rAJPL3PKQhD1/0N6xbrfgZ3LAiAiKLxKOoWf1nOgIZk9XUKiiAVQAjIJiELpBMiD2nmLTA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":820752},"engines":{"node":">=18"},"gitHead":"494e30054c561478f36c36bf34574a79cbc66306","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.1.1_1775352653631_0.6426886096547297","host":"s3://npm-registry-packages-npm-production"}},"3.1.2":{"name":"@esoteric-logic/praxis-harness","version":"3.1.2","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.1.2","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"6a4effd991ca26c697d510864488832a75587393","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.1.2.tgz","fileCount":268,"integrity":"sha512-iU6pS7nJJxhj/b0sjogyT7dZvuysoQ7nnmawaNGmWGREoyKrd8d3VdiHocSfcrKScl+SFRjjkOqn+mWHxy0I3w==","signatures":[{"sig":"MEUCIDnxUa2Jyw5dQjUiJGM5JqvuZIuvIC5aRR94scixONwmAiEAxWSzcMALEpnX86h2oWGY9+MfRi6fqegwbVb5u7cly/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":816042},"engines":{"node":">=18"},"gitHead":"b0305d04c4533273940ea85491ca2c328816bd9a","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.1.2_1775353641499_0.6148162689762575","host":"s3://npm-registry-packages-npm-production"}},"3.2.0":{"name":"@esoteric-logic/praxis-harness","version":"3.2.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.2.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"4a1b18adb8f1efe35ea81b85449fc2a56e72881e","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.2.0.tgz","fileCount":267,"integrity":"sha512-m4RvFdPclYnzNXIkgPqKcKa6HLmToxdr4Bw/lzhA6MtT0fp/5acmsxFpE4xbBIvXfOvpeX+l7321Ut8xvXocZg==","signatures":[{"sig":"MEUCIQDdp/oHUdEz20IvCnXIk6oo3jkNC36BxcEoCfxG4hKBIQIgNC6CYUd3NfCtKAuIIFP+MN4yTdGQOjqQlbXgC3Pmj/I=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":813969},"engines":{"node":">=18"},"gitHead":"561e54a38f8d51e481b37ca122f7c2510cce0841","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.2.0_1775354013507_0.7977109308748807","host":"s3://npm-registry-packages-npm-production"}},"3.3.0":{"name":"@esoteric-logic/praxis-harness","version":"3.3.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.3.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"c014f506981dcaedf6d860501d5316c557f97fc8","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.3.0.tgz","fileCount":271,"integrity":"sha512-PmvpaadsnnCtv8fIHPi9RVTexCSUItqU+AR9KimVNbvxmzWymjgc4fJl1LVqzXJ4p27aukE6aQOS9pBTabGHnA==","signatures":[{"sig":"MEUCIQDesOCnhNtCs8cmg7JERC8BWpKxsdq8JIqX1GxPs0CdlwIgM0f2kn70VwwjcXBaeGlOEYFYPlPZSjq7gE8ZonpQ9X8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":795122},"engines":{"node":">=18"},"gitHead":"9485e5b3d80498caa705ce3249585f36cc7d685b","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.3.0_1775354894771_0.10010281102344987","host":"s3://npm-registry-packages-npm-production"}},"3.3.1":{"name":"@esoteric-logic/praxis-harness","version":"3.3.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.3.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"6bbf200ee62de786ee16a3d089aca0b0035930a1","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.3.1.tgz","fileCount":271,"integrity":"sha512-9oSNd2gcVQ3am6A5AZwrNazSO6ebWU16dHIWf9DeiZ41iXdyZNj+zxrkz8uowhgsrOUDR9Aoufh3qCGMEqiOoQ==","signatures":[{"sig":"MEUCIQDTrAERLWInj5owCwtYTgXEfZ+yAOPTC8h76EpljgtnpgIgbwpdJZyB32FbITwWqosRCdOaReAsKM22aLJaTWEYu0g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":794849},"engines":{"node":">=18"},"gitHead":"078842cc483d30a2fb9bff1502c994c555c0a3cd","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.3.1_1775355180501_0.5334807119447902","host":"s3://npm-registry-packages-npm-production"}},"3.4.0":{"name":"@esoteric-logic/praxis-harness","version":"3.4.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.4.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"6527d0baa3b98aad3ed1508bb60b4482146d390a","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.4.0.tgz","fileCount":271,"integrity":"sha512-przo8sTmwVFhWVXEKJ+4Rniv0cbcAsbb75qzUZDUCjW+ZDv/ly/Uh/hn3TdD2cH5UGE324KQCyRzs6ND4BnONg==","signatures":[{"sig":"MEUCIBR/r9dLoFu20YfstfMHWKa02ZSSlv9TfSoSWZtTca2EAiEAoVbHYxcNWmQq/o0orLXhRpreUk0kECjqWFPz8n3Efaw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":794215},"engines":{"node":">=18"},"gitHead":"b0add1fa0a9644e0389e2934e3179b0da665d93f","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.4.0_1775355600594_0.9262409739987576","host":"s3://npm-registry-packages-npm-production"}},"3.5.0":{"name":"@esoteric-logic/praxis-harness","version":"3.5.0","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.5.0","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"f6cbdb3284d52bab92cf7c9c6b6364b225bb8042","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.5.0.tgz","fileCount":271,"integrity":"sha512-vNTrSHglKHzzxciMHb3kk4Mec7cfZ0EkdLOETeLaIpxbJZ9nuTgRbUkg3sh0qazvdhDBCMmD9rwADaxLOWQDNw==","signatures":[{"sig":"MEYCIQD5LD39gFSoxxLHoHAainsDHETOvpr8Fm/cCm5wT6+ZRQIhAP+l6wfqjIUDx9YTMV+XvhIqQkcgE9+kSu5RCOJ5/39R","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":797021},"engines":{"node":">=18"},"gitHead":"e27193be374f8fc89d07c49619e4105588d38a2b","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.5.0_1775356174273_0.45768638846811904","host":"s3://npm-registry-packages-npm-production"}},"3.5.1":{"name":"@esoteric-logic/praxis-harness","version":"3.5.1","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","_id":"@esoteric-logic/praxis-harness@3.5.1","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"homepage":"https://github.com/arcanesme/praxis#readme","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"dist":{"shasum":"d556aa4694ceaca7f17b67d971baddf3cd73ac55","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.5.1.tgz","fileCount":268,"integrity":"sha512-FMoSRgO65G0E6+10gr5e4E/I+4p30JMXZU/g1X9yjZRAv3ZIf0kWADky3NZA2dl6oK4zZGVI4dW1ezfAhiJC3g==","signatures":[{"sig":"MEQCIGi5CSmKZwQAl6pzbcP6JToVEW/qdblemf+oSIMYCuzsAiAC1JeThe/0d4tRDQ9g7iN0eltrCmYmn98XR8ybnkPOKQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":793963},"engines":{"node":">=18"},"gitHead":"cd6ea452a9855153b5ea6e28c0bf0454d0618efd","scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","list-blocks":"node bin/prompt-blocks.js","compile-prompts":"node bin/prompt-compile.js --all"},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"repository":{"url":"git+https://github.com/arcanesme/praxis.git","type":"git"},"_npmVersion":"11.12.1","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","directories":{},"_nodeVersion":"25.9.0","dependencies":{"js-yaml":"4.1.1"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/praxis-harness_3.5.1_1775356786106_0.6867779057778951","host":"s3://npm-registry-packages-npm-production"}},"3.6.0":{"name":"@esoteric-logic/praxis-harness","version":"3.6.0","description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","bin":{"praxis-harness":"bin/praxis.js","prompt-knowledge":"bin/prompt-knowledge.js"},"scripts":{"test":"node --check bin/praxis.js && node --check bin/prompt-compile.js && node --check bin/prompt-blocks.js && bash scripts/test-harness.sh","compile-prompts":"node bin/prompt-compile.js --all","list-blocks":"node bin/prompt-blocks.js"},"repository":{"type":"git","url":"git+https://github.com/arcanesme/praxis.git"},"keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"author":{"name":"arcanesme"},"license":"MIT","dependencies":{"js-yaml":"4.1.1"},"engines":{"node":">=18"},"gitHead":"302245f518fe893178c654051409790995866901","_id":"@esoteric-logic/praxis-harness@3.6.0","bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"homepage":"https://github.com/arcanesme/praxis#readme","_nodeVersion":"25.9.0","_npmVersion":"11.12.1","dist":{"integrity":"sha512-xUOsfjsPGPGsF2dkgCggV2LWg1KCZb5/MLWEy8BdDmk3LHtSbpvr092eg+5/u1PKkxlyeHgOdt1epgHItI+mSA==","shasum":"f4004537f611273601ebc321d0a45bcd5f595dfc","tarball":"https://registry.npmjs.org/@esoteric-logic/praxis-harness/-/praxis-harness-3.6.0.tgz","fileCount":268,"unpackedSize":786709,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIFYAaVY0V9yRFZMjP4o05zAKFxeY2JK8H/Zhl1Lf506kAiBdHF/nLgNvWjEvvF1yvO5d9LYUb/KyKVUGnBtK/Lqa/g=="}]},"_npmUser":{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"},"directories":{},"maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/praxis-harness_3.6.0_1775357053324_0.6521052243080359"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-22T14:50:45.616Z","modified":"2026-04-05T02:44:13.616Z","1.1.0":"2026-03-22T14:50:45.986Z","1.2.0":"2026-03-22T16:30:23.239Z","1.2.1":"2026-03-22T17:05:37.942Z","2.0.0":"2026-03-23T02:09:40.790Z","2.0.1":"2026-03-23T18:27:25.246Z","2.0.2":"2026-03-23T18:31:50.205Z","2.0.3":"2026-03-23T18:37:36.336Z","2.1.0":"2026-03-24T15:50:22.141Z","2.1.1":"2026-03-24T16:02:53.304Z","2.2.0":"2026-03-24T16:56:19.394Z","2.3.0":"2026-03-24T18:01:38.726Z","2.3.1":"2026-03-24T18:07:54.122Z","2.4.0":"2026-03-25T15:19:54.269Z","2.4.1":"2026-03-25T15:30:08.501Z","2.5.0":"2026-03-26T14:00:05.035Z","2.5.1":"2026-03-26T14:56:15.293Z","2.6.0":"2026-03-29T01:02:37.001Z","2.7.0":"2026-03-29T18:50:21.200Z","2.8.0":"2026-03-29T19:29:47.352Z","2.9.0":"2026-03-30T01:18:21.199Z","2.9.1":"2026-03-30T01:38:35.672Z","2.10.0":"2026-03-30T13:30:27.964Z","2.11.0":"2026-03-30T17:15:32.138Z","2.12.0":"2026-03-31T00:53:57.397Z","2.13.0":"2026-04-03T00:10:40.887Z","2.14.0":"2026-04-03T21:19:04.309Z","2.15.0":"2026-04-04T16:12:35.535Z","2.16.0":"2026-04-04T17:15:56.677Z","2.17.0":"2026-04-04T17:45:20.674Z","3.0.0":"2026-04-05T00:29:05.113Z","3.0.1":"2026-04-05T00:48:53.304Z","3.1.0":"2026-04-05T01:17:35.223Z","3.1.1":"2026-04-05T01:30:53.818Z","3.1.2":"2026-04-05T01:47:21.676Z","3.2.0":"2026-04-05T01:53:33.670Z","3.3.0":"2026-04-05T02:08:14.998Z","3.3.1":"2026-04-05T02:13:00.718Z","3.4.0":"2026-04-05T02:20:00.775Z","3.5.0":"2026-04-05T02:29:34.492Z","3.5.1":"2026-04-05T02:39:46.313Z","3.6.0":"2026-04-05T02:44:13.476Z"},"bugs":{"url":"https://github.com/arcanesme/praxis/issues"},"author":{"name":"arcanesme"},"license":"MIT","homepage":"https://github.com/arcanesme/praxis#readme","keywords":["claude-code","ai-harness","vault","obsidian","workflow"],"repository":{"type":"git","url":"git+https://github.com/arcanesme/praxis.git"},"description":"Layered Claude Code harness — workflow discipline, AI-Kits, persistent vault integration","maintainers":[{"name":"esoteric-npm","email":"jeffreyattoh@reddogsme.com"}],"readme":"# Praxis\n\n> *\"Philosophy must be practiced, not just studied.\"* — Musonius Rufus\n\nA layered harness for [Claude Code](https://docs.anthropic.com/en/docs/claude-code). Universal workflow discipline + domain-specific AI-Kits + persistent vault integration.\n\n## What it does\n\nPraxis gives Claude Code a three-layer operating system:\n\n**Universal base** — always loaded. Praxis structures work (discuss → plan → execute → verify → simplify → ship). Built-in quality enforcement (debugging, code review, simplification).\n\n**AI-Kits** — activated on demand via `/px-kit:<name>`. Each kit bundles domain-specific rules, skills, MCP servers, and slash commands. Activate the web-designer kit and your components get design system enforcement, accessibility auditing, and production lint. Deactivate with `/px-kit:off`.\n\n**Project config** — per-repo rules that fire automatically based on file paths. Terraform rules load when you touch `.tf` files. GitHub Actions rules load when you touch workflow YAML. No manual switching.\n\n## Quick start\n\n```bash\nnpx @esoteric-logic/praxis-harness@latest\n```\n\nOne command. Copies rules, commands, skills, and kits directly into `~/.claude/`. Node.js 18+ must be installed first.\n\n> **Always use `@latest`** — `npx` caches packages locally. Without `@latest`, you may get a stale version on machines that installed previously.\n\n**Subsequent commands:**\n```bash\nnpx @esoteric-logic/praxis-harness@latest update      # re-copy from latest npm version\nnpx @esoteric-logic/praxis-harness@latest health      # verify install integrity\nnpx @esoteric-logic/praxis-harness@latest uninstall   # remove Praxis-owned files from ~/.claude/\n```\n\n## After install\n\nVerify with `/help` — you should see Praxis commands (`/px-discuss`, `/px-execute`, `/px-verify`, `/px-plan`, `/px-ship`, `/px-kit:*`).\n\n## Workflow\n\nThe standard Praxis workflow for feature development:\n\n```\n/px-standup           → orient (reads status.md, surfaces stale state)\n/px-discuss          → frame the problem (conversational, scope guard)\n/px-discover         → research options with confidence levels (before /px-spec)\n/px-plan             → plan milestones (with dependency ordering + boundaries)\n/px-execute          → implement one milestone at a time (file-group isolation)\n/px-verify           → validate (test/lint/typecheck/build, self-review, UNIFY)\n/px-session-retro    → capture learnings, update vault\n```\n\nFor pure bugfixes: `/px-debug` (test-first debugging, skips the full loop).\nFor code review: `/px-review` (launches subagent review at any time).\nFor technical research: `/px-discover` (structured options evaluation before decisions).\n\n## Commands\n\n| Command | Purpose |\n|---------|---------|\n| `px-discuss` | Conversational problem framing, SPEC synthesis, scope guard |\n| `px-execute` | Implement one milestone with file-group isolation + boundary enforcement |\n| `px-verify` | Validate milestone (test/lint/build), self-review, UNIFY phase summary |\n\n| `px-plan` | Create a dated work plan with milestone dependencies + checkpoints |\n| `px-spec` | Create a structured spec or ADR with conflict detection |\n| `px-discover` | Structured technical discovery with confidence-rated options |\n| `px-standup` | Session-start orientation from vault state |\n| `px-risk` | Add a risk register entry to the vault |\n| `px-kit` | Activate/deactivate an AI-Kit |\n| `px-review` | Manual code review via subagent |\n| `px-simplify` | Post-implementation code simplification via subagent |\n| `px-debug` | Structured test-first debugging |\n| `px-ship` | Commit, push, and PR in one command with pre-flight checks |\n| `px-verify-app` | End-to-end verification with regression analysis |\n| `px-session-retro` | End-of-session retrospective with learnings extraction |\n| `px-status-update` | Manual vault status.md update |\n| `px-repair` | Structured 3-attempt fix-and-verify loop for failed milestones |\n| `px-sync-memory` | Bridge auto-memory insights to Obsidian vault |\n| `px-context-probe` | Assess context health and recommend action |\n| `px-context-reset` | Reload context from vault without clearing session |\n\n## Prompt Engine\n\nBuild and manage system prompts for Claude Projects, Perplexity Spaces, and Claude Code from a single source of truth.\n\n### Quick reference\n\n| Command | What it does |\n|---------|-------------|\n| `/px-prompt my-project` | Create a new project (1 question — describe it) |\n| `/px-prompt --deal irs-masterfile` | New Maximus capture deal (0 questions — Perplexity researches) |\n| `/px-prompt --deal benefeds --type recompete` | New deal with explicit type |\n| `/px-prompt --advance irs-masterfile` | Move deal to next capture phase |\n| `/px-prompt --edit my-project \"add NIST 800-53\"` | Edit one section, auto-regenerate outputs |\n| `/px-prompt --refresh my-project` | Re-run Perplexity research, diff and update |\n| `/px-prompt --deploy my-project` | Copy outputs to clipboard with platform URLs |\n| `/px-prompt --dashboard` | Project index with budgets and staleness |\n| `/px-prompt --sync` | Recompile all projects, show diffs |\n| `/px-prompt --scan my-project` | Full quality and budget audit |\n\n### Deal lifecycle (Maximus captures)\n\n```\n/px-prompt --deal irs-masterfile          # Create — Perplexity researches from name alone\n/px-prompt --advance irs-masterfile       # Shaping → Mid Capture\n/px-prompt --advance irs-masterfile       # Mid Capture → Pre-Proposal\n/px-prompt --refresh irs-masterfile       # Re-run OSINT before submission\n/px-prompt --advance irs-masterfile       # Pre-Proposal → Pre-Submission\n/px-prompt --deploy irs-masterfile        # Copy to clipboard, paste to platforms\n```\n\n### Deal types\n\n| Type | Flag | When | Emphasis |\n|------|------|------|----------|\n| Recompete | `--type recompete` | Incumbent holds the contract | Defense, ghost matrix, transition |\n| New Start | `--type new-start` | No incumbent, fresh opportunity | Discovery, innovation, OSINT |\n| Task Order | `--type task-order` | Competing on existing IDIQ/BPA | Speed, rates, vehicle history |\n| IDIQ/BPA | `--type idiq` | Winning the vehicle itself | Broad capabilities, teaming |\n\nAuto-detected from research if `--type` not specified.\n\n### Non-Maximus projects\n\n```\n/px-prompt cybersecurity-advisor          # Describe it → inference engine → research → deploy\n/px-prompt elect-azure                    # Work on existing project\n```\n\nAny project — federal, enterprise, personal. The engine infers role, domains, and platforms from your description.\n\n### CLI tools (direct use)\n\n```bash\nnode bin/prompt-compile.js --dashboard    # Project dashboard\nnode bin/prompt-compile.js --sync         # Recompile all projects\nnode bin/prompt-compile.js <project>      # Compile one project\nnode bin/prompt-knowledge.js <project>    # Render knowledge pack templates\nnode bin/prompt-blocks.js --category domains  # List available blocks\n```\n\n## Rules\n\n16 rules across universal and scoped categories. Universal rules load every session. Scoped rules load only when matching file patterns are detected.\n\nKey additions in this version:\n- **context-management** — context brackets (FRESH/MODERATE/DEPLETED/CRITICAL) adapt behavior to session stage\n- **vault** — Obsidian vault integration\n\n## Architecture\n\n```\n┌────────────────────────────────────────┐\n│  Project config                        │\n│  .claude/rules/*.md (path-scoped)      │\n├────────────────────────────────────────┤\n│  AI-Kit (/kit:web-designer)            │\n│  Skills chain + domain rules + MCPs    │\n├────────────────────────────────────────┤\n│  Universal base (always loaded)        │\n│  Praxis workflow engine                 │\n├────────────────────────────────────────┤\n│  Vault layer                           │\n│  Obsidian                              │\n├────────────────────────────────────────┤\n│  Claude Code                           │\n│  ~/.claude/ + plugins + subagents      │\n└────────────────────────────────────────┘\n```\n\n**Workflow hierarchy:** Praxis owns the outer loop (discuss → plan → execute → verify → simplify → ship). Kits inject domain context into this workflow — they don't replace it.\n\n## Available kits\n\n| Kit | Activate | What it does |\n|-----|----------|-------------|\n| web-designer | `/px-kit:web-designer` | Design system init → component build → accessibility audit → production lint |\n| infrastructure | `/px-kit:infrastructure` | Terraform plan → apply → drift detection → compliance check |\n| api | `/px-kit:api` | RESTful conventions → OpenAPI specs → contract testing |\n| security | `/px-kit:security` | Threat modeling → IAM review → OWASP audit |\n| data | `/px-kit:data` | Schema design → migration planning → query optimization |\n\nMore kits coming. See `docs/creating-a-kit.md` to build your own.\n\n## Vault integration\n\nPraxis integrates with an Obsidian vault for project state, session learnings, and architecture decisions.\n\nThe vault path is configured per machine during install:\n\n```json\n{\n  \"vault_path\": \"/Users/you/Documents/Obsidian\",\n  \"vault_backend\": \"obsidian\",\n  \"vault_name\": \"My Vault\",\n  \"repo_path\": \"/Users/you/repos/praxis\"\n}\n```\n\nRequires [Obsidian CLI](https://obsidian.md) (enable in Obsidian Settings > General > Command line interface). Obsidian must be running for vault search.\n\n### What gets documented automatically\n\nPraxis auto-documents your work in the vault with zero manual effort. Two independent layers ensure nothing is lost:\n\n1. **Shell hooks** capture facts (git state, timestamps) even if Claude runs out of context\n2. **Stop prompt** captures meaning (summaries, decisions, learnings) from conversation context\n\n**At session end** (zero action needed):\n- `status.md` — updated with What/So What/Now What\n- `claude-progress.json` — session entry with summary, accomplishments, milestones, features\n- `notes/{date}_session-note.md` — session summary, decisions, learnings, next steps\n- `notes/decision-log.md` — checkpoint decisions, scope changes (appended)\n- `notes/learnings.md` — [LEARN:tag] pattern entries (appended)\n- `specs/` — ADRs for architectural decisions made during the session\n\n**During workflow skills** (automatic within each skill):\n\n| Skill | Auto-writes to vault |\n|-------|---------------------|\n| `/px-execute` | `status.md` loop position, `decision-log.md` scope events |\n| `/px-verify` | `claude-progress.json` milestones[] |\n| `/px-review` | `specs/review-{date}-{slug}.md` (full findings breakdown) |\n| `/px-simplify` | `notes/{date}_simplify-findings.md` |\n| `/px-debug` | `notes/{date}_debug-trace.md` |\n| `/px-verify-app` | `specs/verify-app-{date}-{slug}.md` |\n| `/px-ship` | `claude-progress.json` features[] |\n\n**On context compaction** (automatic fallback):\n- `plans/{date}-compact-checkpoint.md` — git state, active plan, loop position\n- `claude-progress.json` — session entry preserved\n\n## Updating\n\n### Updating the harness\n\n```bash\nnpx @esoteric-logic/praxis-harness@latest update\n```\n\nRe-copies all hooks, skills, rules, and kits from the latest npm package version. Config file is preserved.\n\n> **Always use `@latest`** to avoid `npx` serving a cached older version.\n\n### Updating existing projects\n\nAfter a harness update that adds new vault files (like `decision-log.md`), run `/px-scaffold-exist` in a Claude Code session to audit your vault and add any missing files. This is non-destructive — it never overwrites existing content.\n\n```\nStep 1: npx @esoteric-logic/praxis-harness@latest update   → deploys new hooks, skills, rules\nStep 2: /px-scaffold-exist                                   → audits vault, adds missing files\n```\n\nNew projects get everything automatically via `/px-scaffold-new`.\n\n## Uninstalling\n\n```bash\nnpx @esoteric-logic/praxis-harness@latest uninstall\n```\n\nRemoves all Praxis-owned files from `~/.claude/`. Does not delete config, vault templates, or installed plugins.\n\n## Development\n\n```bash\ngit clone https://github.com/arcanesme/praxis.git\ncd praxis\nbash install.sh\n```\n\nThe git-clone + `install.sh` path uses symlinks instead of copies, so edits in the repo are immediately reflected.\n\n**Testing:**\n```bash\nbash scripts/lint-harness.sh .     # structure, frontmatter, placeholders, registry\nbash scripts/test-harness.sh .     # shellcheck, JSON, cross-skill refs, hook wiring, kit structure\n```\n\n## Requirements\n\n- macOS or Linux\n- Claude Code CLI\n- Node.js 18+\n- Obsidian with CLI enabled (for vault integration)\n\n## License\n\nMIT\n","readmeFilename":"README.md"}