{"_id":"@dzhechkov/skills-book-ai-apps","_rev":"13-16725f1403758939460cd73535bbe1ab","name":"@dzhechkov/skills-book-ai-apps","dist-tags":{"latest":"0.2.11"},"versions":{"0.2.1":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.1","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.1","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"5fee1120e5bb6d233319eff3619988a2c0f8a6e5","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.1.tgz","fileCount":59,"integrity":"sha512-Tr04waJalRVOBOr3gKcwVjGgzgthsNPK0vkVQp/3zNtrJO6iGfOJ4RiqwZjtMzNBYmXMkfC3/kHBuz52Yjqwkw==","signatures":[{"sig":"MEQCIClwtC9Hfgx/FinnBNZJYZWN2HLmd5ChVI4rd8fekezOAiAzhFnk4fully6z4JtHiaR922G40JHHngPsvaKiXVPCqA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1851145},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.1.tgz","_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/6b541aea81c557df135b4aad53af5eda/dzhechkov-skills-book-ai-apps-0.2.1.tgz","_integrity":"sha512-Tr04waJalRVOBOr3gKcwVjGgzgthsNPK0vkVQp/3zNtrJO6iGfOJ4RiqwZjtMzNBYmXMkfC3/kHBuz52Yjqwkw==","deprecated":"Unverifiable signature: dz verify-pack on this tarball FAILS because dz publish signed the pack before bumping the version in package.json. Pack CONTENT is unaffected. Use 0.2.3, which verifies from the registry tarball and also carries the CP6 brain slice.","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.1_1787113122553_0.27353751656901504","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.2","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.2","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"e78dd4a85454b80246d0f1da961049f1e4b3b58f","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.2.tgz","fileCount":60,"integrity":"sha512-9KKSFjum20RZZGMmX+KtQoFpNrHRlZ6Mekm8mqpr1CRYaNqMrjnSIRljKQRP9byb65cqj2Wm9r9yXpcvAvgfYw==","signatures":[{"sig":"MEUCIQDi3IA8aUVvTgX9Km6fCvO4YChL+5Lw50Ox7lFBJshwzQIgNft5Nvrwg2TpI4Y6v5tORhkEqkzxC81cAI3X/RRU4P8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3458149},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.2.tgz","_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/55feb20f3e712e5d657263fab2414e74/dzhechkov-skills-book-ai-apps-0.2.2.tgz","_integrity":"sha512-9KKSFjum20RZZGMmX+KtQoFpNrHRlZ6Mekm8mqpr1CRYaNqMrjnSIRljKQRP9byb65cqj2Wm9r9yXpcvAvgfYw==","deprecated":"Unverifiable signature and an incorrect README. dz verify-pack on this tarball FAILS: README.md and package.json do not match their signed hashes (dz publish signed the pack before bumping the version and rewriting README version strings). The rewrite also made two README sentences false — it claimed 0.2.2 was the first published version (it was 0.2.1). Pack CONTENT (skills, KUs, brain slice) is unaffected. Use 0.2.3, which verifies from the registry tarball.","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.2_1787114041654_0.770510512159057","host":"s3://npm-registry-packages-npm-production"}},"0.2.3":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.3","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.3","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"59e661219149b648019b2e20d1b1c1f59f5dc045","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.3.tgz","fileCount":60,"integrity":"sha512-fke++WhJy3tEZHqrNBYM8oFbg4gHyUCKn42mhiabT9T1oDfcSBVQ/QNBwbLLa1tIhZOXKrlu+QckGEJCszIHRg==","signatures":[{"sig":"MEQCICI1u51aj8S6nmb/Cw2uzR2V8vVu2+rS6TKXAIABNZKMAiBk9OZNZukyK7JH19aoMzRVoCY1tyQ04NgzUwdHyyU2yg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462191},"gitHead":"2bc44d8096b94ce22f2cf3e0494441a626dd93e1","_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.3_1787115104366_0.29946127773086073","host":"s3://npm-registry-packages-npm-production"}},"0.2.4":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.4","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.4","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"a8e3f7debce60284c88190b4f9d4ebbc2ebbbf20","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.4.tgz","fileCount":60,"integrity":"sha512-bkojvP8vcngIXckhSF2/bbFvQAKQs4Le+7mVwrX1d9KCTuTCgJFgQU9OXAg5kZVJu2yuFuxGGXGi6X/Tf6dMAg==","signatures":[{"sig":"MEUCIFxRK1NlOd8eCA6x7025sph7q4/4mDkzedPQ2aO34KIXAiEAvuYrw+dkY+WPaa8Clloa60oDCBC9pmjq5fcoEinIcsg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462207},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.4.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/36e8409c43a2ae8b97b1a47ee5e7b44a/dzhechkov-skills-book-ai-apps-0.2.4.tgz","_integrity":"sha512-bkojvP8vcngIXckhSF2/bbFvQAKQs4Le+7mVwrX1d9KCTuTCgJFgQU9OXAg5kZVJu2yuFuxGGXGi6X/Tf6dMAg==","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.4_1787632911097_0.07494352355893352","host":"s3://npm-registry-packages-npm-production"}},"0.2.5":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.5","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.5","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"8f00b95b6efccf35bdb21a7d8005c984885f4769","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.5.tgz","fileCount":60,"integrity":"sha512-BP+74S3RQHDCgNM176OdpBoyMOOtD4QZgjc4WpCD8nOMbdjkc3LRHYUEghmWc3t36WCD3wc/XgxkUOSaxi0iEg==","signatures":[{"sig":"MEUCIGoPGCBQnFO38ZfEz6ziKB+NDLHejMrUb4AKFucRPoDhAiEAxQyH1dJPdyoJbjsutVzVtjJ7cIQf4k8loIsruR7trdI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462254},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.5.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/a05513fa93a2f942374a25347547f993/dzhechkov-skills-book-ai-apps-0.2.5.tgz","_integrity":"sha512-BP+74S3RQHDCgNM176OdpBoyMOOtD4QZgjc4WpCD8nOMbdjkc3LRHYUEghmWc3t36WCD3wc/XgxkUOSaxi0iEg==","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.5_1787633518401_0.23200548003440669","host":"s3://npm-registry-packages-npm-production"}},"0.2.6":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.6","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.6","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"d31e02498e64ff00982ea1d75b86adb3848ce4ed","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.6.tgz","fileCount":60,"integrity":"sha512-AXOy3Gt0vHwF0v1f5uI7lpB3Jh1NGLThoX0b/x5ckAubr5F7CCxnCc50/F8fHWkf3vK3wtDOCJgxZ26iZmFsvQ==","signatures":[{"sig":"MEQCIDPkElnBFIoKEBTqpFmiKJDnA2mmBdsauOptggWscuNiAiBHyGtfegnnhOA6omCPWGWo6eol1Bkr4tpcTTh3qxxRKA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462391},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.6.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/fdcab2870cb059916301091328a82445/dzhechkov-skills-book-ai-apps-0.2.6.tgz","_integrity":"sha512-AXOy3Gt0vHwF0v1f5uI7lpB3Jh1NGLThoX0b/x5ckAubr5F7CCxnCc50/F8fHWkf3vK3wtDOCJgxZ26iZmFsvQ==","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.6_1787944482989_0.6560796910820468","host":"s3://npm-registry-packages-npm-production"}},"0.2.7":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.7","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.7","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"5488aae7d3483b7f4088cf7ac88655726f41a758","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.7.tgz","fileCount":60,"integrity":"sha512-Gc9sntII7XLMUpfrWySDLaWn4otFp3N+Tgn1yCtPCmVgtATuxt1Djfg5w5Sm7hgE5BwyCnifGwWoIApYqYzPwA==","signatures":[{"sig":"MEYCIQDasC/5dz95QqxOxOgH900UXeVPalc7MoDQEblJKIGDsgIhAND6SVFeIWjomgGUZCR+/NRPwHIHqtmrKucHr8O8BfGE","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462391},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.7.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/fd7d4380fefc13e7a94cd0ee39ddf92a/dzhechkov-skills-book-ai-apps-0.2.7.tgz","_integrity":"sha512-Gc9sntII7XLMUpfrWySDLaWn4otFp3N+Tgn1yCtPCmVgtATuxt1Djfg5w5Sm7hgE5BwyCnifGwWoIApYqYzPwA==","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.7_1787944865326_0.938330835387474","host":"s3://npm-registry-packages-npm-production"}},"0.2.8":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.8","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.8","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"dist":{"shasum":"07438201c952bd81291e87e1c3532338edf69e55","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.8.tgz","fileCount":60,"integrity":"sha512-Z+2SUv5mBzpswKZks3HjAZcla4770P+HgHV36se61Si0UeJuBaDyqH3bIQwt0I3lBgi1mzne/vNSXzNazktL3g==","signatures":[{"sig":"MEUCIQCKWRejt7YMTZPJ5Cx+PlhVNIclj/n78aAP7ABn/CWquQIgcWjn3bQ+aQDvOiPnrvCZyExnz/oLC5seWCLW3Pp/REY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462391},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.8.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/7bbe7bcdc0475145a92d5be4e0e8e3f8/dzhechkov-skills-book-ai-apps-0.2.8.tgz","_integrity":"sha512-Z+2SUv5mBzpswKZks3HjAZcla4770P+HgHV36se61Si0UeJuBaDyqH3bIQwt0I3lBgi1mzne/vNSXzNazktL3g==","_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.8_1788003775342_0.5467109817955669","host":"s3://npm-registry-packages-npm-production"}},"0.2.9":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.9","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.9","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/skills-book-ai-apps#readme","bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"dist":{"shasum":"cdc00bf5c7512d6eeca9247c61f81e47475f2ff9","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.9.tgz","fileCount":60,"integrity":"sha512-j8P3qriL/gDu7ozZotYkF8eZlMHU/Ax8gdEg9SOrmbtioSwNFkSZ6swuHZl+lxcSvwD2szLqVi9+vy8GBAig+A==","signatures":[{"sig":"MEYCIQCPlS0wYHRz5+uQjBIECmY29AlUN3Ye9RLbmBOCpDmN7AIhAP7gpuqPPLCFYqKLoxWrwI/MRUXPQBa0x19EwosWsaG+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3462733},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.9.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/81c02b2c9c665907d023dbbae5c22808/dzhechkov-skills-book-ai-apps-0.2.9.tgz","_integrity":"sha512-j8P3qriL/gDu7ozZotYkF8eZlMHU/Ax8gdEg9SOrmbtioSwNFkSZ6swuHZl+lxcSvwD2szLqVi9+vy8GBAig+A==","repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/skills-book-ai-apps"},"_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.9_1788025720430_0.7338671540962487","host":"s3://npm-registry-packages-npm-production"}},"0.2.10":{"name":"@dzhechkov/skills-book-ai-apps","version":"0.2.10","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","_id":"@dzhechkov/skills-book-ai-apps@0.2.10","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/skills-book-ai-apps#readme","bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"dist":{"shasum":"210ae103e22b4d85d04aa35fa1bf39878943ade5","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.10.tgz","fileCount":60,"integrity":"sha512-VCl086iLmYhqN2A/rtZgOy/p3blYTplrHDw/pQ1OTzmCZR8Ygx1s13W33YpaL3YAi/+PoyiQzCCzeRq2YoeW7g==","signatures":[{"sig":"MEYCIQDYS8deDazCoFzTFqCHNunj2bbpFnNKnGNwzaMRu7NO2AIhAKtB3rDueewz3hKdSSGV5JVuaHMtO44v34LSPDI87Ztv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":3463820},"_from":"file:dzhechkov-skills-book-ai-apps-0.2.10.tgz","scripts":{},"_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"_resolved":"/tmp/f8e2e4a4e6819773becc3b4d7532abd1/dzhechkov-skills-book-ai-apps-0.2.10.tgz","_integrity":"sha512-VCl086iLmYhqN2A/rtZgOy/p3blYTplrHDw/pQ1OTzmCZR8Ygx1s13W33YpaL3YAi/+PoyiQzCCzeRq2YoeW7g==","repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/skills-book-ai-apps"},"_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/skills-book-ai-apps_0.2.10_1788379143360_0.4578059240935566","host":"s3://npm-registry-packages-npm-production"}},"0.2.11":{"_id":"@dzhechkov/skills-book-ai-apps@0.2.11","bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"dist":{"shasum":"b1ce0deacf1403bdabc4b5ae564020bcd0da96c3","tarball":"https://registry.npmjs.org/@dzhechkov/skills-book-ai-apps/-/skills-book-ai-apps-0.2.11.tgz","fileCount":60,"integrity":"sha512-lk3SEAWuoOyHCXu6DrUO4QKAYLkVCJziBHuKmItCqt/weZcfsKiUu7FtXSZcJc0uUqa2Uq4Uwah6Fa79TGMTKA==","signatures":[{"sig":"MEQCIFSJldrplfauX4EQdaRx6g/OxTL5AtwIo8a2lbI409p+AiAxRMKr/BvUfel3Sc0K6Gcmb/xxMekiAacKPXnLhTCIGg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDM4hvulOHrfzgAzkjIe8M+eTvz2iLrO368KDEm+A9D/wIhAJVY9LkSQXRWQMqe5qroA7/39n/qYlYM51OpD4MMuJpg"}],"unpackedSize":3463820},"name":"@dzhechkov/skills-book-ai-apps","_from":"file:dzhechkov-skills-book-ai-apps-0.2.11.tgz","author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","scripts":{},"version":"0.2.11","_npmUser":{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"},"homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/skills-book-ai-apps#readme","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"_resolved":"/tmp/5574eb4d80fb7f364583fd4dc96ba107/dzhechkov-skills-book-ai-apps-0.2.11.tgz","_integrity":"sha512-lk3SEAWuoOyHCXu6DrUO4QKAYLkVCJziBHuKmItCqt/weZcfsKiUu7FtXSZcJc0uUqa2Uq4Uwah6Fa79TGMTKA==","repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/skills-book-ai-apps"},"_npmVersion":"10.9.4","description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","directories":{},"maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"_nodeVersion":"22.22.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skills-book-ai-apps_0.2.11_1789293454945_0.10881899686823426"}}},"time":{"created":"2026-08-19T04:18:42.411Z","modified":"2026-09-13T09:57:35.190Z","0.2.1":"2026-08-19T04:18:42.745Z","0.2.2":"2026-08-19T04:34:01.848Z","0.2.3":"2026-08-19T04:51:44.617Z","0.2.4":"2026-08-25T04:41:51.305Z","0.2.5":"2026-08-25T04:51:58.632Z","0.2.6":"2026-08-28T19:14:43.210Z","0.2.7":"2026-08-28T19:21:05.552Z","0.2.8":"2026-08-29T11:42:55.508Z","0.2.9":"2026-08-29T17:48:40.618Z","0.2.10":"2026-09-02T19:59:03.541Z","0.2.11":"2026-09-13T09:57:35.048Z"},"bugs":{"url":"https://github.com/djd1m/dz-harness/issues"},"author":{"name":"dzhechko"},"license":"SEE LICENSE IN LICENSE","homepage":"https://github.com/djd1m/dz-harness/tree/main/packages/@dzhechkov/skills-book-ai-apps#readme","keywords":["agent-skills","skill-pack","claude-code","ai-agents","agentic-systems","book-derived","dz-digitized","digitized-monograph"],"repository":{"url":"git+https://github.com/djd1m/dz-harness.git","type":"git","directory":"packages/@dzhechkov/skills-book-ai-apps"},"description":"Decision-moment skills distilled from «Building Applications with AI Agents» (Albada, рус. пер.) — makes an AI coder apply the book's agent-engineering methodologies. 17 skills over both distillation waves. Machine-distilled (trust_tier 1, routing-gated),","maintainers":[{"name":"dzhechkov","email":"jechkov.dmitriy@gmail.com"}],"readme":"# @dzhechkov/skills-book-ai-apps\n\nDecision-moment skills **machine-distilled** from «Building Applications with AI Agents»\n(Michael Albada, рус. пер., ISBN 978-601-14-1158-5) by the\n[book-knowledge-digitizer](https://www.npmjs.com/package/@dzhechkov/skills-book-digitizer) pipeline.\n\n> ⚠️ **Book-derived, `trust_tier: 1`.** Machine-distilled and **not human-reviewed against the cited\n> pages** — the CP3.5 routing gate proves the skills *fire on the right prompts*, not that every\n> claim is right. Verify against the pages before relying on a specific number.\n>\n> **What ships and what does not:** this pack contains *our own page-anchored reformulations* of the\n> book's methodology (Knowledge Units) and the skills built on them — **not the book's text**. The\n> corpus stays owner-local. The IP boundary is mechanically enforced by the shingling gate:\n> **0 uncited verbatim runs ≥8 words** against the source (see Provenance). The book itself remains\n> © its rights holders; buy it — this pack is a methodology index, not a substitute. Pack licence:\n> see LICENSE.\n\n## What it does\n\nMakes an AI coder **apply the book's agent-engineering methodologies** at the real design moments —\nnot summarize the book. Each skill activates on a decision moment and gives concrete criteria,\ntradeoff tables, page-anchored facts and formulas, anti-patterns, and cross-links to its siblings.\n\n## The 17 decision-moment skills\n\nTwo distillation waves: **8** skills in wave 1, **9** added in wave 2 (marked ✳ below) — MEASURED, reproducer: `node -e \"const s=require('./sources.json');console.log(s.digitizer.consumed_by_this_pack)\"`, and the 17 shipped dirs are the leading entries of `files[]` in `package.json`.\n\n207 KU references, 190 verified true / 17 partial (MEASURED — reproducer:\n`cat */references/knowledge-units.md | grep '^- \\*\\*verified:\\*\\*' | sort | uniq -c`; per-skill\ncounts: `grep -c '^- \\*\\*verified:\\*\\*' */references/knowledge-units.md`; the full per-skill split is\nalso in `sources.json`).\n\n| Skill | Decision | Chapters |\n|-------|----------|----------|\n| `aiagents-agent-fit-and-model-choice` | do we need an agent at all + which model/framework | 1, 2, 7, 12 |\n| `aiagents-single-vs-multi-agent` | one agent or many, and the coordination scheme | 8 |\n| ✳ `aiagents-orchestration-and-planning` | the control-flow archetype (reflex / ReAct / planner-executor / decomposition / reflection) + chain-vs-graph topology and its depth caps | 2, 5 |\n| ✳ `aiagents-multi-agent-infrastructure` | the runtime plumbing under an agreed design: transport (A2A), broker, actor/workflow engine, storage layer | 8 |\n| `aiagents-tool-design-and-selection` | tool contract + how the agent picks one at scale | 2, 4, 5 |\n| `aiagents-knowledge-and-memory` | RAG vs memory, which store, how far up the ladder | 2, 6, 8 |\n| ✳ `aiagents-context-engineering` | what enters THIS call's window under a token budget, and where between-call session state lives | 3, 5, 6, 8 |\n| `aiagents-learning-strategy` | does it need learning, and of which class (non-parametric vs fine-tune) | 7, 11 |\n| `aiagents-evaluation-design` | building the evaluation: metric mix, eval set, planner/memory/e2e scoring | 2, 9 |\n| ✳ `aiagents-probabilistic-behaviour-checks` | testing the non-deterministic layer: behaviour invariants, coherence, hallucination levers, robustness, systematic-vs-variation triage | 3, 9, 10 |\n| ✳ `aiagents-release-gates-and-rollout` | may this version ship, and how much live traffic next: readiness gates, shadow, canary, A-B, revert | 2, 9, 10, 11, 13 |\n| ✳ `aiagents-improvement-loops` | the post-release detect → RCA → fix-lever → one prioritised backlog cycle | 11 |\n| `aiagents-observability-and-drift` | production telemetry, KPI thresholds, the three drift tests | 10, 12 |\n| ✳ `aiagents-human-in-the-loop` | the autonomy level and the escalation path out of it: triggers, uncertainty cutoffs, handoff packet, reviewer-fatigue failure modes | 3, 11, 12, 13 |\n| ✳ `aiagents-agent-ux` | the interaction surface: modality, sync vs async, proactivity, discoverability, trust through transparency | 1, 3 |\n| ✳ `aiagents-org-adoption-and-governance` | scope of authority inside a company, accountability, audit and compliance obligations | 1, 12, 13 |\n| `aiagents-agent-security` | risk sources, adversarial-input catalogue, layered defence, MAESTRO | 4, 12 |\n\n**Coverage after wave 2 (MEASURED — reproducer:\n`node -e \"const s=require('./sources.json');console.log(s.digitizer.consumed_by_this_pack, s.digitizer.not_consumed)\"`,\ncross-checked against `books/ai-apps/reduce-report.md` §6).** Every thematic cluster the reduce stage\nfound (T01–T17 — 17 ids, 16 independent themes, since T09 is a sub-cluster of T08) is now distilled,\nso the \"second wave, not distilled\" NOT-clauses of the 0.1.0 pack no longer apply and no cluster is\nleft for a third wave. The pack's 17 skills carry **207 `derived_from` entries** resolving to\n**205 distinct KUs** of the 223-KU canon (2 KUs are deliberately consumed by two skills from\ndifferent angles and are cross-linked). What remains undistilled is the tail no cluster ever\ncovered: **18 glossary / definition KUs**, exactly the ones §6 of the reduce report already records\nas sitting outside every cluster. They are useful as a glossary; a skill does not grow out of them.\n\n## Install\n\nThe pack is **published on npm** (CP5 taken 2026-08-18 — see Distribution). One command:\n\n```bash\ndz install @dzhechkov/skills-book-ai-apps --target claude-code\n```\n\nThe explicit two-step form, if you want to see each stage (MEASURED 2026-08-18 from the tarball into\na clean mkdtemp project; the exact output is quoted below each command):\n\n```bash\n# 1. pull the pack\nnpm install @dzhechkov/skills-book-ai-apps --save-dev\n# 2. materialise the skills for your target\ndz init --target claude-code --skills-dir node_modules/@dzhechkov/skills-book-ai-apps --project .\n# → dz init --target claude-code: 17 skill(s), 51 file(s) written, 0 skipped\n```\n\nThe tarball itself: **60 files** (`entryCount`), roughly **3.5 MB unpacked / 1.16 MB packed**\n(MEASURED — reproducer: `npm pack --dry-run --json` in the pack dir). 57 of those are the pack\ncontent, two are the Ed25519 signature artifacts `.dz-manifest.json` + `sbom.json` (added at CP5 so\na recipient can run `dz doctor --require-signing` — a publish is refused without them), and the\n60th is `brain/ai-apps.sqlite`, the 223-KU knowledge slice added at CP6 (it is most of the size).\n`entryCount` is the stable\nfigure; the two byte sizes are self-referential — this README and `CP4-PACK-REPORT.md` are inside\nthe tarball, so each edit to either moves them. Read the exact current bytes off the reproducer\nrather than trusting a number transcribed here.\n\nThen confirm they actually registered — the L2 check runs a real session, not a file listing:\n\n```bash\ndz skills-verify --dir . --expect <the 17 ids> --strict   # live session listing; --static for an instant CI check\n# → PASS — all 17 expected skill(s) are registered\n# → session: 51 skill(s) registered · client 2.1.235 · 5 plugin(s) loaded\n```\n\nAn L1 structural check of the source dir, if you just want the shapes validated:\n\n```bash\ndz verify --skills-dir node_modules/@dzhechkov/skills-book-ai-apps --target claude-code\n# → 17/17 skill(s) valid\n```\n\n> **Do NOT use `dz install <tarball>`** — `dz install` takes an npm *package NAME* and looks the\n> package up under `node_modules/<name>`; handed a file path it fails loudly with\n> `package not found at .../node_modules//path/to/….tgz` (exit 1, MEASURED 2026-08-18). Since CP5 the\n> name form works: `dz install @dzhechkov/skills-book-ai-apps --target claude-code`.\n\nThen **just describe your task to Claude Code in plain language** — the agent auto-selects the right\nskill. That is the whole workflow; the CP3.5 routing gate is what makes it work without you naming\nids — on the FULL 17-skill catalog, `97.7% activation (216/221)` and `1.8% sibling-steal`, with\n`0/152` hard-negative violations (MEASURED — reproducer:\n`node books/ai-apps/evals/aggregate.mjs books/ai-apps/evals/run-3`; thresholds are `>=80%`\nactivation / `<=10%` steal; the full report and its honest limitations are in `ROUTING-GATE.md`).\nAdding 9 siblings did not disturb the first 8: `104/104` wave-1 positives still route correctly.\n\n> «Используй нужные скиллы из набора ai-apps для решения задачи: <описание>» — works too, but is\n> rarely necessary: the descriptions carry the triggers.\n\n*Advanced, just one decision:* `dz init --target claude-code --select aiagents-agent-security`.\n\n## Usage scenarios\n\n### 1. \"Do we even need an agent here?\" — before any code is written\n\n**Situation:** a product idea arrives phrased as \"let's build an agent\"; you want the honest\nlevel-of-solution answer and, if it *is* an agent, the model/framework picked on criteria.\n\n> «Нам нужен агент для обработки заявок в поддержку, или хватит детерминированного workflow? И какую модель под это брать?»\n> *(EN: \"do we need an agent for support-ticket triage, or is a deterministic workflow enough — and which model?\")*\n\n**What happens:** `aiagents-agent-fit-and-model-choice` fires, walks the four-rung ladder\n(простой код → детерминированный workflow → чат-бот/RAG → автономный агент) and the five-question\ngate, then — only if the gate opens — moves to model selection (size, modality, open vs proprietary,\nhybrid routing, price per unit of benchmark performance, the consumer-GPU threshold) and the\nframework pick. It also scopes the FIRST agent's task boundaries instead of letting scope sprawl.\n\n### 2. Design the agent end to end (greenfield)\n\n**Situation:** the agent is approved and you must pick tools, memory, and topology before the\narchitecture ossifies.\n\n> «Проектирую агента для анализа логов: какие инструменты ему дать, как он будет их выбирать, нужна ли память/RAG и когда это станет мультиагенткой?»\n\n**What happens:** the coupled decisions run in order —\n`aiagents-tool-design-and-selection` (tool contract, schemas, error/validation, local vs API vs MCP,\ntool-choice mode, and the selection ladder standard → semantic → hierarchical) →\n`aiagents-knowledge-and-memory` (знания vs память, short/long-term, which store, how far up the\nladder to climb) → `aiagents-single-vs-multi-agent` (the crossing threshold, the price of crossing,\nthe parsimony test, coordination scheme). Each hands off with the constraint it imposes on the next.\n\n### 3. \"The agent picks the wrong tool\" / \"it got worse after we added tools\"\n\n**Situation:** a live agent degrades as the toolbox grows — the classic 16-tools-and-confused case.\n\n> «У агента 30 инструментов, он стал вызывать не те. Делить на несколько агентов или чинить выбор инструментов?»\n\n**What happens:** `aiagents-tool-design-and-selection` first exhausts the in-single-agent ladder\n(better descriptions, grouping, semantic/hierarchical selection), and `aiagents-single-vs-multi-agent`\napplies the parsimony test to the \"just add an agent\" reflex — including the coordination,\ncommunication and token cost you pay for crossing. You get the cheap fix considered before the\nexpensive one.\n\n### 4. Build the evaluation (and stop shipping on vibes)\n\n**Situation:** you need to know whether a change made the agent better, and the current \"eval\" is\nsomeone clicking through three prompts.\n\n> «Как оценивать нашего агента? Нужны метрики, оценочный набор и как понять, что планировщик выбрал не тот инструмент.»\n\n**What happens:** `aiagents-evaluation-design` derives the metric mix from measurable goals, shapes\neach case as *input state + dialogue + expected final state*, adds unit tests per tool, scores the\nplanner (tool recall / tool precision / parameter accuracy), covers memory and learning components,\nand wires the suite into commits and model updates. It explicitly refuses the adjacent jobs it does\nnot own and hands each to its owner — release gates and canary → `aiagents-release-gates-and-rollout`,\nlive drift → `aiagents-observability-and-drift`, the non-deterministic behaviour layer →\n`aiagents-probabilistic-behaviour-checks`. (In `0.1.0` those handoffs read \"second wave, not\ndistilled\"; since wave 2 they point at real siblings.)\n\n### 5. Production: \"it degraded and there's nothing in the logs\"\n\n**Situation:** quality slid, error rate is flat, and nobody can point at a cause.\n\n> «Агент деградировал, а ошибок в логах нет — что мониторить и как поймать дрейф?»\n\n**What happens:** `aiagents-observability-and-drift` gives the metric taxonomy by level\n(infrastructure / workflow / output quality / user feedback) with the *action* each metric triggers,\nKPI alert thresholds, the telemetry-stack choice, span instrumentation and trace↔log correlation,\nPII scrubbing at the export boundary, and the three distinct drift tests (Колмогоров — Смирнов,\nKL-дивергенция, PSI) with the book's own readings — then the behavioural-drift response ladder.\n\n### 6. Security review / threat model of an agentic system\n\n**Situation:** pre-launch review, or an incident where the agent leaked its system prompt.\n\n> «Отревьюь безопасность нашего агента: промпт-инъекции, права инструментов, периметр. Нужна модель угроз.»\n\n**What happens:** `aiagents-agent-security` works the four inherent risk sources, the adversarial-input\ncatalogue (direct/indirect injection, jailbreak, evasion, JSON-framed injection, swarm exploitation)\nand **where each class must be intercepted**, layered foundation-model defence, least privilege as a\ncontainment barrier, the external perimeter (DMZ, zero-trust, mTLS, SCA/SBOM), data provenance, and\nMAESTRO seven-layer threat modelling — plus red-teaming and chaos engineering as the proving step.\n\n### 7. A multi-step flow that outgrew its shape — and the runtime under it\n\n**Situation:** one agent runs a 12-step chain end to end, loses the thread by the last steps, and the\nwhole thing lives in a single process that does not survive a restart. Two different questions, and\nthey are easy to confuse: what SHAPE should the flow have, and what should CARRY it.\n\n> «Наш агент обрабатывает заявку в 12 шагов подряд и к концу теряет нить. Делать граф с ветвлением или планировщик-исполнитель? И на чём это крутить — сейчас всё в одном процессе и не переживает рестарт.»\n> *(EN: \"our agent runs a 12-step chain and loses the thread by the end — graph with branching or planner-executor? And what should run it — right now it's one process that doesn't survive a restart.\")*\n\n**What happens:** `aiagents-orchestration-and-planning` settles the shape first — the control-flow\narchetype (reflex, ReAct, planner-executor with a large model planning and cheaper calls executing,\nquery decomposition / self-ask with search, reflection placed *before* irreversible operations), then\nthe execution mode (single call, parallel calls, chain, or a graph with conditional edges and a\nconsolidation node), the maximum chain length / graph depth / branching caps that stop errors\ncompounding, and incremental replanning after each observation instead of one upfront plan — all\nunder the five-practice rule of picking the SIMPLEST planning method the scenario tolerates. Then\n`aiagents-multi-agent-infrastructure` takes that shape as given and picks the plumbing: transport\n(in-process calls → A2A agent cards and JSON-RPC over HTTPS → a broker), the broker itself (Kafka for\ndurable replayable logs, Redis Streams for cheap decoupling, RabbitMQ, NATS/JetStream), the execution\nruntime (monolith, event bus, an actor framework like Ray/Orleans/Akka past the book's\nmore-than-10–20-agents threshold, or a workflow engine — Temporal, Airflow, Dagger), per-session\nactor isolation, and where shared state and task metadata durably live. Neither skill answers the\nother's question: the shape is handed over, and the plumbing skill does not re-litigate it.\n\n### 8. Getting a new agent version in front of real users without breaking them\n\n**Situation:** a new version (a prompt change, a new tool) passes locally. Now it has to reach users,\nand \"it looked fine in three manual runs\" is not a release decision.\n\n> «Готова новая версия агента. Как понять, что её вообще можно выкатывать, сколько трафика ей дать и что делать с тем, что вылезет на канарейке? И отдельно: агент даёт разные ответы на один и тот же запрос — это регрессия или нормальный разброс?»\n> *(EN: \"a new agent version is ready — how do I decide it may ship at all, how much traffic to give it, and what to do with whatever the canary surfaces? And: it answers the same prompt differently each time — regression or normal variance?\")*\n\n**What happens:** `aiagents-release-gates-and-rollout` sets the promotion decision — readiness\ncriteria and the blocking gates (quantitative thresholds on the relevant eval sets, stress and\nedge-case stability, component checklists, auto-block on a multi-step regression, explicit tech-lead\n/ product approval after the pilot) — then the exposure ladder: RC/staging → теневой режим (shadow\nrun on live input whose output never reaches a user) → канареечное развертывание at the book's\n`1–5 %` traffic slice\nwith a version tag that makes the «канарейка против базы» comparison possible → blue-green, rolling,\nstaged pilot expansion, or a 50/50 live experiment with its four setup requirements and the\nagent-specific long-term-state trap (or an adaptive Bayesian bandit) — plus the revert path.\n`aiagents-probabilistic-behaviour-checks` supplies what the gate is allowed to read as a failure on\nthe non-deterministic layer: consistency as behaviour INVARIANTS rather than byte identity, coherence\nacross a long dialogue, robustness where the pass criterion is clarify-degrade-escalate rather than\ncrash-or-fabricate, and the book's triage rule (rerun three-to-five times, `>80 %` failure rate) that\nseparates a systematic failure from legitimate variation *before* it blocks a release. Whatever the\ncanary does surface goes to `aiagents-improvement-loops`: automated detection → the four-step agent\nRCA (трассировка → локализация → распознавание закономерностей → оценка последствий) → the fix levers\n(prompt refinement with its verification gate, automated prompt optimisation, tool-level refinement)\n→ one deduplicated backlog prioritised on frequency, criticality, feasibility, strategy fit and\nrecurrence risk.\n\n### 9. An agent going into an organisation, not just into production\n\n**Situation:** the pilot worked for one team and now the agent is being pointed at company systems.\nThe blocking questions are no longer technical: how much may it decide alone, when must it stop and\nask a human, who answers when it is wrong, and what does an employee actually see.\n\n> «Раскатываем агента на всю компанию. Что он может решать сам, а что обязан отдавать человеку? Кто отвечает, если он ошибётся, и что логировать для аудита? И как он должен выглядеть для сотрудника — чат, дашборд, уведомления?»\n> *(EN: \"we're rolling the agent out company-wide. What may it decide alone, what must go to a human, who is accountable when it's wrong, what do we log for audit — and what should it look like to an employee?\")*\n\n**What happens:** `aiagents-human-in-the-loop` sets the runtime side — the autonomy slider (ручной /\nс промптом / агентный) and the executor → reviewer → collaborator → governor axis, the escalation\ntriggers (unexplained long-running errors, regulatory or ethical anomalies, failures on critical\ntasks, contradictory automated conclusions) and the uncertainty instruments with their own cutoffs\n(self-reported confidence, entropy of the class distribution, divergence across repeated runs, a\nseparate critic model), the escalation BUDGET that keeps reviewers from burning out, the shape of the\nhandoff packet, graduated delegation — and the four ways oversight itself decays (automation bias,\nalert fatigue, skill decay, incentive mismatch). `aiagents-org-adoption-and-governance` owns the\norganisational side: the five областей действия (персональная / командная / проектная /\nфункциональная / организационная), whether the agent inherits the permissions of the person it\nassists or needs its own role, RBAC by data sensitivity, memory partitioned along the same scope\nboundaries so a team agent does not surface shared material in a private chat, the authorisation\nladder up to a распорядительный совет, who is answerable for harm, ready-made frames instead of an\ninvented process (NIST AI RMF, an EU-AI-Act-aligned impact assessment, ISO 42001), decision /\ninteraction / failure logs an auditor can reconstruct a case from, and compliance gates built into\nthe pipeline (policy-as-code, one failed check fails the build). `aiagents-agent-ux` designs the\nsurface all of that is felt through — modality choice, синхронный vs асинхронный, проактивность без\nназойливости, обнаруживаемость возможностей for an interface with no visible affordances, and the\nпрозрачность/предсказуемость that decides whether people trust it.\n\n## Deep lookup — how «см. источник» actually resolves\n\nEach skill ships its consumed Knowledge Units **in full** at\n`<skill>/references/knowledge-units.md` (207 KU entries across the pack, page-anchored). That file\nis inside the pack, so the deep lookup works on any machine and any target.\n\nHonest tier declaration (`sources.json → lookup_tiers`):\n\n| Tier | Available? |\n|---|---|\n| `references/` in-pack | **always** |\n| corpus (`books/ai-apps/corpus/`) | owner-local only, in the digitizer workspace |\n| brain (`dz brain query --source ai-apps`) | **available since CP6** — the pack ships the per-book KB slice `brain/ai-apps.sqlite` (**223 KU**, the full canon). One command loads it into *your* brain: `dz brain add --from-pack @dzhechkov/skills-book-ai-apps`. See \"The knowledge, not just the behavior\" below. |\n\n### The knowledge, not just the behavior\n\nThe 17 skills are the *behavior* — what an agent does at a decision moment. The **223 Knowledge\nUnits** behind them are the *knowledge*, and they ship too, so one install carries both:\n\n```bash\ndz brain add --from-pack @dzhechkov/skills-book-ai-apps\n# → idempotent upsert on (book, ku_id, corpus_version) into YOUR ~/.dz/brain; vectors re-embedded locally\ndz brain query \"один агент или несколько\" --source ai-apps\n# → [ai-apps гл.2 с.57-208] (decision-framework) Один агент или несколько: критерии выбора и цена каждого варианта\ndz brain primer ai-apps      # capability card: KU-type histogram + top decision moments\n```\n\nOnce loaded it answers **in any project**, not just the one that installed the pack — that is the\nwhole point of the brain. Re-installing is safe: the upsert is keyed on\n`(book, ku_id, corpus_version)`, so it replaces rather than duplicates; refresh a re-digitized book\nwith `dz brain update ai-apps`.\n\nThe slice is **lexical-only** (portable `books.sqlite`, 223 rows, `WHERE book='ai-apps'` — no other\nsource rides along) and passed the **same** shingling IP gate as the rest of the pack: all 223 KU\ntexts dumped and checked, **0 uncited verbatim runs ≥8 words** (MEASURED — 59 300 shingles against\nthe corpus's 101 988 8-grams). It carries KUs, never the book's text.\n\n> **`dz recall --books` is the PROJECT store, not the brain.** `dz recall --books --book ai-apps`\n> reads `.dz/memory/books.sqlite` in the current project and returns nothing in a project that has\n> not indexed the book (MEASURED 2026-08-19 — `0 KU hit(s)` from a fresh dir, while\n> `dz brain query --source ai-apps` returned hits from the same dir). The cross-project verbs are\n> `dz brain query` / `dz brain ground` / `dz brain primer`. Its lexical matching is prefix-AND with\n> no stemming or synonymy, so a long natural-language question can return 0 while its keywords\n> return hits — route fuzzy/semantic queries through `dz brain ground`.\n\n## Copilot / always-on targets\n\nOn GitHub Copilot every instruction file is loaded on **every** request. Aggregate size of this\npack's 17 SKILL.md bodies: **763 183 bytes / 727 835 chars** (MEASURED — reproducer:\n`cat aiagents-*/SKILL.md | wc -c` and `cat aiagents-*/SKILL.md | wc -m`; `references/` is *not*\nloaded on Copilot and is excluded). At the digitizer's 2.1 chars-per-token constant that is an\n**ESTIMATE of ≈347 k tokens per request** if you install all 17 (`727 835 / 2.1`; on the raw byte\ncount the same constant would read ≈363 k — the token figure is an estimate derived from a measured\nsize, not a measured token count). Wave 2 roughly doubled the resident cost: 0.1.0's 8 bodies were\n354 846 B. Smallest body 29 187 B (`aiagents-context-engineering`), largest 63 936 B\n(`aiagents-agent-security`) (MEASURED — reproducer:\n`for f in aiagents-*/SKILL.md; do wc -c \"$f\"; done | sort -n`).\n\n**Five** bodies exceed the harness's `50 000`-byte body bound (`harness-core/src/benchmark.ts:99`,\n`stat.size >= 100 && stat.size <= 50000`) and are reported as such — `aiagents-agent-security`\n63 936 B, `aiagents-multi-agent-infrastructure` 55 790 B, `aiagents-observability-and-drift` 54 485 B,\n`aiagents-improvement-loops` 53 204 B, `aiagents-org-adoption-and-governance` 50 409 B. Those five\nare **exactly** the pack's five B grades in the L0 benchmark below — MEASURED from the per-skill\ntable of `dz benchmark packages/@dzhechkov/skills-book-ai-apps --all`: every one of the 12 A skills\nscores `18/20` and every one of the 5 B skills scores `17/20`, one failed check apart. Body size is\nthe whole gap between this pack and a straight-A one, and it is not hidden.\n\n**Therefore: on Copilot install only the skills matching the current work, not the pack.** These\nbodies are not lean — see finding D2 in `CP4-PACK-REPORT.md`; the pack is designed for\nprogressive-disclosure targets. On Claude Code the whole pack is fine: only each skill's description\nis always resident, and the body loads on activation.\n\n## Provenance\n\n`sources.json`: `upstream_type: book`, ISBN, per-skill `derived_from` KU ids and verified counts,\ncorpus_version `120bf49aec034522`, extraction/verification/judge models. No `origin` block (the book\nis the immutable upstream; `dz sync-upstream` skips book packs).\n\nGates below were MEASURED on 2026-08-18/19 against the content published as `0.2.2` (`0.2.1` was\nthe CP5 publish; `0.2.2` added the CP6 knowledge slice). `0.2.11` re-ships that same content — the\nonly change is this README and a signature that matches the shipped bytes — so the figures carry\nover unchanged; they were not re-run for `0.2.11`:\n\n- **KU verification** — the canon is UNCHANGED by wave 2: 223 canon KUs, 202 true / 21 partial /\n  0 false (cross-family judge `gpt-5.6-sol`, 0 Claude fallbacks). This pack now consumes 207\n  `derived_from` entries resolving to 205 distinct KUs; the per-skill copies in `references/`\n  carry 190 `true` / 17 `partial` (reproducer:\n  `cat */references/knowledge-units.md | grep '^- \\*\\*verified:\\*\\*' | sort | uniq -c`).\n- **IP / shingling** — `node packages/@dzhechkov/skills-book-digitizer/scripts/shingling-check.mjs --source books/ai-apps/corpus --output <pack> --shingle 8`\n  → **0 uncited verbatim runs ≥8 words**. **Re-run at CP5** (2026-08-19, on the exact bytes being\n  published — the last moment to catch a leak before it leaves the machine): leg 1 **0 violations**\n  over 37 md files / 157 983 shingles, leg 2 **0 violations** over the 17 `evals/routing.yaml`\n  (8 702 shingles). The wave-2 figures below are the same gate at assembly time. Leg 1 over 37 md files / 154 743 shingles; leg 2 over the\n  17 `evals/routing.yaml` copied to `*.md` (8 702 shingles) — the checker walks only `*.md`, so the\n  yaml has to be checked explicitly. Both legs against the same 101 988 corpus 8-grams.\n  **Honest limit (2026-09-02):** the gate is run by DECISION, not by machinery — `prepublishOnly`\n  invokes `scripts/prepublish-gate.mjs`, which contains no shingling step (reproducer:\n  `grep -c -iE 'shingl|verbatim|corpus' scripts/prepublish-gate.mjs` → `0`). The LICENSE previously\n  said the gate runs \"before every release\"; it now states the dated runs above instead. Any release\n  whose content changed without a fresh run is covered only by the last dated run.\n- **Routing (CP3.5)** — re-run on the FULL 17-skill catalog: `97.7% activation (216/221)`,\n  `1.8% sibling-steal`, `0/152` hard-negative violations, `0/373` judge fallbacks, judge\n  `codex exec -m gpt-5.6-sol` (reproducer:\n  `node books/ai-apps/evals/aggregate.mjs books/ai-apps/evals/run-3`). Thresholds: `>=80%`\n  activation, `<=10%` steal. **Wave-1 regression:** `104/104` wave-1 positives still route correctly\n  against the expanded catalog — adding 9 siblings did not steal from the original 8. Full report and\n  its recorded limitations: `ROUTING-GATE.md`. Pack-assembly gates and findings: `CP4-PACK-REPORT.md`.\n- **L0 benchmark** — MEASURED via `dz benchmark packages/@dzhechkov/skills-book-ai-apps --all`:\n  `Skills: 17  Pass rate: 89%  (301/340)`, `12 A` / `5 B`. The B grades come from body size —\n  see the Copilot section above; nothing is hidden behind the aggregate.\n- **Structural + live registration** — `dz verify --skills-dir <pack> --target claude-code` →\n  `17/17 skill(s) valid` (L1); `dz skills-verify --dir . --expect <17 ids> --strict` →\n  `PASS — all 17 expected skill(s) are registered` (L2, run from a fresh `mktemp -d` project after\n  `npm install` of the real tarball — `session: 51 skill(s) registered · client 2.1.235 ·\n  5 plugin(s) loaded`).\n\n## Distribution\n\n**CP5 is taken.** The owner decided on **2026-08-18** to publish this pack to npm, recorded in\n`sources.json → distribution` (`state: public`, `decided_by: owner`, `date`, `rationale`). Every\nversion before this one was structurally unpublishable (`private: true` +\n`publishConfig.access: restricted`); both guardrails are lifted by that recorded decision.\n\nThe **first published version was `0.2.1`** (2026-08-19) — `dz publish` bumps the patch on release,\nso the wave-2 content staged as `0.2.0` is what shipped under that tag; `0.2.0` itself was never\npublished. `0.2.2` (2026-08-19) added the CP6 knowledge slice.\n\n**`0.2.1` and `0.2.2` are deprecated on npm — install `0.2.11` or later.** Both were published\nthrough `dz publish`, which signs the pack BEFORE it bumps the version and rewrites version strings\nin the README. The consequence is measurable on the registry tarball, not just in theory: `dz\nverify-pack` on the unpacked `0.2.2` reports `README.md: content does not match its signed hash` and\n`package.json: content does not match its signed hash`, and the rewrite turned two true sentences in\nthis file into false ones (it claimed `0.2.2` was the first published version, and collapsed three\ndistinct version numbers into one). The pack CONTENT — skills, KUs, brain slice, gates — was never\nin question; what was broken is the claim about it and the signature over it.\n\n`0.2.11` carries this corrected README and a signature made over the exact bytes that ship. It was\npublished with a raw `npm publish` from the pack directory, deliberately: this pack declares **no\ndependencies at all** (verify with `npm view @dzhechkov/skills-book-ai-apps@0.2.11 dependencies`), so\nthe workspace-`*` leak that `dz publish` exists to prevent cannot occur here. For any pack that DOES\ncarry internal dependencies, `dz publish` remains the only safe route.\n\n**CP6 is also taken** (owner, 2026-08-18; executed 2026-08-19). The 223 KUs were promoted into the\nowner's durable cross-project brain, and — because CP5 made the pack public — the per-book slice now\nrides the pack as `brain/ai-apps.sqlite`, published in **`0.2.2`**. The two decisions stay distinct:\nCP5 governs what leaves the machine, CP6 governs where the owner's own knowledge lives. The\n*accreted personal brain* is private and never distributed; the shareable unit is this pack's slice.\n\nWhat neither decision changes: the corpus is not distributed, the skills and KUs carry their page\nanchors, and the shingling gate is what keeps the two apart.\n","readmeFilename":"README.md"}