{"_id":"@antora-tracer/core","_rev":"9-c39ab0160afd2914b1f4d334c312c298","name":"@antora-tracer/core","dist-tags":{"latest":"0.26.1"},"versions":{"0.23.0":{"name":"@antora-tracer/core","version":"0.23.0","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.23.0","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"575f861e61b7734bf42a453d5427dd2c087e8a65","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.23.0.tgz","fileCount":157,"integrity":"sha512-OLvItNf1K0uodek2vbdAQ6bYXa/ml5M2oF1RGqU3GkjS+/QDfReUHGm3R72xkE9VASVksHUG1oc2cQ3sI90xFQ==","signatures":[{"sig":"MEQCIAZDzM05U416v/Qf9RlzEDNjm/3X+ShTV/7oNAaei/lNAiAD8zN4H5Fljt0Ph6dY1qUuquAel5z6I6GGvf7YbYtpiA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491618},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"4cdf4bf75cbd2c56b5ca88b05be20ba3a56bcd36","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.7.0","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chalk":"^5.6.2","js-yaml":"^4.1.0","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.23.0_1788379628019_0.8189362897545955","host":"s3://npm-registry-packages-npm-production"}},"0.24.0":{"name":"@antora-tracer/core","version":"0.24.0","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.24.0","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"9ab5d01f1c76c08b9c1630ce8619d21289b91189","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.24.0.tgz","fileCount":157,"integrity":"sha512-VnmDyPDD7N9q+7NQJmNRFMl33B2CYbJAEWkMwWWORZ49E7KxkP/kw6zvDzYm4DwNqNyt+vS0hseiZyiydje6mw==","signatures":[{"sig":"MEYCIQDDn6mOCHaBoRRmr3y9yTtImAnWMnpi9ptqA+5T2lswRgIhAOvEq+DJqgzBQ/eyE2pujI3Wtj1r41ATzjb2JHUrfPjg","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC3zG9pII3slYecGbCPD/MDkRWUB4hWoVq21P0Kl5O0QgIhAPMCfWocBXCQUsp/Ukkotz53NEewfD1V2vTwuh7n1n9e","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":491635},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"6af1a848d910ed9806c1dd05f5605ee428bc2520","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.7.0","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chalk":"^5.6.2","js-yaml":"^4.1.0","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.0_1788416204089_0.31084790161144027","host":"s3://npm-registry-packages-npm-production"}},"0.24.1":{"name":"@antora-tracer/core","version":"0.24.1","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.24.1","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"5691e9a84a8a5cd6612c18396f9bc37063890a2e","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.24.1.tgz","fileCount":157,"integrity":"sha512-nXBUZAN7USeBhohqgq87qUdGzdP29s2TPGJTOHFjaI0AN9bI+Qlawl1wp3YP6vagCY/OSJinB4kA2NuXEdAftQ==","signatures":[{"sig":"MEUCIHi3O8Zr9KATi8nFk3Vxqi/DWb2mlgCHBXrBWvgc7JUzAiEAxDJMIYgvsOP1fuNGGNY6ZovPpzZwFEGs46Pg2tqJ670=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDzFoFBgtrqe59QjhWEf7pmI7DPzXFu5IUHCHlSF8heFQIgFHxr55+mW4qZ7GkWejcfaMOBzF1J6+2TL258lYRT0ZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":493393},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"d5c530157e1697d8bd6c638ce5cbe56a9d52fa90","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.7.0","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"24.15.0","dependencies":{"chalk":"^5.6.2","js-yaml":"^4.1.0","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.1_1788500010225_0.4014655569929777","host":"s3://npm-registry-packages-npm-production"}},"0.24.2":{"name":"@antora-tracer/core","version":"0.24.2","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.24.2","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"3fc6d2e9cfd3f5bfb2cfc7a2339acce3c2b5fe59","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.24.2.tgz","fileCount":157,"integrity":"sha512-JjNnpd2lCrvqD68g7DhQq2d6zniN3yLEKkgot1RxTBKRRmY305W8uWC4W0LmVIBGuLga1wdTplikzlTRjRAiVg==","signatures":[{"sig":"MEUCIQC3rzXa3Wm+OZts632TPFzwJx1XtjsNlFgZWpSbHA7ScwIgOltPAKhsxOZrD7/RhTDEfZ9WVFDnuyjUNTRKaMbD5mg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDMY3jc7CmywiH5/dz6cXNxL2V03WwbQakPU0jcJwrkIwIgTG/KG0N5SG6+5Qm3zjra2c+PHn6b6PZsnPWPoECEI/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":495232},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"202371c5f1456c7505bb8e4d4b18cbcbe1ba867a","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"12.0.2","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"24.20.0","dependencies":{"chalk":"^5.6.2","js-yaml":"^4.1.0","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.2_1789222300294_0.9018027389603329","host":"s3://npm-registry-packages-npm-production"}},"0.24.3":{"name":"@antora-tracer/core","version":"0.24.3","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.24.3","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"2d1fc915bae42b0969aaefb31829434b63910aa7","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.24.3.tgz","fileCount":157,"integrity":"sha512-yvyKojH1ln65EIhmbTcGjmA+UK+Q5Sq1Wl06KmyETPzkAhbdaal2L8+VTKfVXY8AkqI1qn0j20YDwwOywx3IPg==","signatures":[{"sig":"MEUCIG/vze5K8KFU57fYrvnVDpjeEaIaIKrFo9uaGC5/9EbjAiEAsUOYtMsQlJj8B3wot0VQsv7WGpsYvJV/Gc1AEYKyvbg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQD5txP9pYtlyM5znUBCLvkEdeWWriJvxG3BghKKF0qBhQIgaBLHjdmK6Wa8hpIM3DDG6eLIutB9LcxL0QjDVbn27qM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":503657},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"448240f2c13f91c678a20868539dd84f322f0d31","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"overrides":{"js-yaml":"^4.3.1","@istanbuljs/load-nyc-config":{"js-yaml":"^3.15.1"}},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"12.0.2","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"24.20.0","dependencies":{"chalk":"^5.6.2","dotenv":"^17.4.2","js-yaml":"^4.3.1","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.3_1789710695135_0.23340082433986775","host":"s3://npm-registry-packages-npm-production"}},"0.24.4":{"name":"@antora-tracer/core","version":"0.24.4","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.24.4","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"e7ef8c38a2eb991b884c71492c2e1b3d17b3252a","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.24.4.tgz","fileCount":143,"integrity":"sha512-KHS37U83amH5lEUXY14n/DsC7hMDtAG8mDDPBmRM9eFFbsd6sbb9K493HNxdXc+UlIRS22nFdK4uLbMrFi/WBQ==","signatures":[{"sig":"MEUCIF8SziaTDY118lWD/eu7gbBRSdrgTNtyYE1iUBlDo+LPAiEAkI36cHwUm0R9sCxBdVMMd5TZI0t2EVZJr9gkE3UWsi4=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@antora-tracer%2fcore@0.24.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":489158},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"13fa7c8ffea9cd6b1514e69984f78c03c313a138","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com","approver":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}},"overrides":{"js-yaml":"^4.3.1","@istanbuljs/load-nyc-config":{"js-yaml":"^3.15.1"}},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.19.1","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"26.9.0","dependencies":{"chalk":"^5.6.2","dotenv":"^17.4.2","js-yaml":"^4.3.1","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.24.4_1790055754222_0.38454838635565824","host":"s3://npm-registry-packages-npm-production"}},"0.25.0":{"name":"@antora-tracer/core","version":"0.25.0","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.25.0","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"20fe3b827aa3b5c60a82d140a408963e86498e4e","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.25.0.tgz","fileCount":143,"integrity":"sha512-Rkxc/8cCICRtt1wDjfMLtHqJ6UpgcGF5gEjUrZPbKj8skwmG8mzBxRZIGOU6Up1SdaRcrqtQWvQ6bq5qOV/hcA==","signatures":[{"sig":"MEQCIF/iqaSiW/ItrTSntbYb9B5DeM1lqek4O95HUjWcZ7hIAiBujV0Rzf2roKiJq4FFRXGejNZ3L7YITatyCCFttzsxRg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@antora-tracer%2fcore@0.25.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":491041},"main":"./lib/src/index.js","type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"fc470e0ba68ccbcc2d61103d70813325e3c1ab07","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com","approver":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}},"overrides":{"js-yaml":"^4.3.1","@istanbuljs/load-nyc-config":{"js-yaml":"^3.15.1"}},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.19.1","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"26.9.0","dependencies":{"chalk":"^5.6.2","dotenv":"^17.4.2","js-yaml":"^4.3.1","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","patch-package":"^8.0.1","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.25.0_1790073124805_0.2077624528073425","host":"s3://npm-registry-packages-npm-production"}},"0.26.0":{"name":"@antora-tracer/core","version":"0.26.0","keywords":["antora","asciidoc","requirements","traceability","documentation"],"author":{"name":"Richard Attermeyer"},"license":"MIT","_id":"@antora-tracer/core@0.26.0","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"homepage":"https://antora-tracer.conemso.de","bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"pi":{"skills":["./skills"]},"bin":{"antora-tracer":"lib/src/cli.js"},"dist":{"shasum":"f974c3a985f25c316c93dba9de5834e98dccd935","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.26.0.tgz","fileCount":142,"integrity":"sha512-KKd+jFMWwPuF/MmteVc0aphRjtIstDc2c760VsI5oD/XE1BeNRDCM0dZpDCgbRYPs2oYRiX2AttQp74fi/4ZEA==","signatures":[{"sig":"MEQCIBaRxEu9+7yqFUZdZtJjijJSPWKfcmHFRi3E1aBKSH4ZAiAjKRul7ybKSIkU44drGc1GlccFWiQXBPBRNjxBGFgt2g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@antora-tracer%2fcore@0.26.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":498632},"main":"./lib/src/index.js","pnpm":{"patchedDependencies":{"@antora/assembler@1.0.0-beta.20":"patches/@antora+assembler+1.0.0-beta.20.patch","@antora/lunr-extension@1.0.0-alpha.13":"patches/@antora+lunr-extension+1.0.0-alpha.13.patch"},"onlyBuiltDependencies":["esbuild"]},"type":"module","module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"1737c61369d62d0dcd53382c3fb999bfd6416156","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","approver":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"},"trustedPublisher":{"id":"github","oidcConfigId":"88034def-6c85-4321-ba5f-400dfde67999"}},"overrides":{"js-yaml":"^4.3.1","@istanbuljs/load-nyc-config":{"js-yaml":"^3.15.1"}},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.19.1","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"_nodeVersion":"26.10.0","dependencies":{"chalk":"^5.6.2","dotenv":"^17.4.2","js-yaml":"^4.3.1","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"packageManager":"pnpm@10.33.0","devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","vinyl":"^3.0.1","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@antora/asciidoc-loader":"3.1.15","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/core_0.26.0_1790671434915_0.6733409342611432","host":"s3://npm-registry-packages-npm-production"}},"0.26.1":{"pi":{"skills":["./skills"]},"_id":"@antora-tracer/core@0.26.1","bin":{"antora-tracer":"lib/src/cli.js"},"bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"dist":{"shasum":"b7bc2763a8822cfcced1bc959d1dc57d7b3c5aec","tarball":"https://registry.npmjs.org/@antora-tracer/core/-/core-0.26.1.tgz","integrity":"sha512-Cw1tPPgG5/PJL4zI8diuLZkcrrE2nk9CgLZhLTDzgbPVq2cRqVoAWLNsoGMSFEGclouD5i0jpyl5lZc/5cQuoQ==","fileCount":142,"unpackedSize":502310,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@antora-tracer%2fcore@0.26.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCfr2nlLT7xS5LrnpczxcqSPG+/LpP4gBh037t68veAowIgYFGnFXeiGVPMgXz4NrZDE/AhrwNGosu+ASi1/ZWkhfw="}]},"main":"./lib/src/index.js","name":"@antora-tracer/core","pnpm":{"patchedDependencies":{"@antora/assembler@1.0.0-beta.20":"patches/@antora+assembler+1.0.0-beta.20.patch","@antora/lunr-extension@1.0.0-alpha.13":"patches/@antora+lunr-extension+1.0.0-alpha.13.patch"},"onlyBuiltDependencies":["esbuild"]},"type":"module","author":{"name":"Richard Attermeyer"},"module":"lib/src/index.js","exports":{".":"./lib/src/index.js","./antora-pdf":"./lib/src/antora-pdf-extension.cjs","./antora-docx":"./lib/src/antora-docx-extension.cjs","./antora-vale":"./lib/src/antora-vale-extension.js","./package.json":"./package.json","./antora-extension":"./lib/src/antora-extension.js"},"gitHead":"e1c9130cc8e8ed4a7c4184a7f9b3d8fa39a83ecb","license":"MIT","scripts":{"dev":"nodemon --watch src --exec \"npm run build && node lib/src/index.js\"","tsc":"tsc","lint":"biome lint .","test":"tsc -p tsconfig.test.json && node scripts/build.js && node --import=tsx/cjs 'node_modules/mocha/bin/mocha' 'lib/test/**/*.test.js'","build":"tsc && node scripts/build.js","start":"node lib/src/cli.js","format":"biome format --write .","preview":"node scripts/preview.js","lint:fix":"biome lint --write .","tsc:watch":"tsc --watch","test:coverage":"npm run build && rm -rf .nyc_output coverage && c8 --include='lib/src/**/*.js' --exclude='lib/src/test/**' --exclude='lib/src/coverage/**' --exclude='lib/src/cli.js' node --import=tsx/cjs node_modules/mocha/bin/mocha 'lib/test/**/*.test.js'","eval:write-item":"node evals/write-item/run.mjs","eval:requirements":"node evals/requirements-writing/run.mjs","test:coverage:open":"c8 report --reporter=html","test:coverage:check":"c8 check-coverage --lines 80 --branches 70 --functions 80 --statements 80","test:coverage:report":"c8 report"},"version":"0.26.1","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"88034def-6c85-4321-ba5f-400dfde67999"},"approver":{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}},"homepage":"https://antora-tracer.conemso.de","keywords":["antora","asciidoc","requirements","traceability","documentation"],"overrides":{"js-yaml":"^4.3.1","@istanbuljs/load-nyc-config":{"js-yaml":"^3.15.1"}},"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"_npmVersion":"11.19.1","description":"Requirements traceability extensions for Antora/AsciiDoc","directories":{},"maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"_nodeVersion":"26.10.0","dependencies":{"chalk":"^5.6.2","dotenv":"^17.4.2","js-yaml":"^4.3.1","mustache":"^4.2.0","commander":"^12.1.0","@asciidoctor/core":"^2.2.7"},"publishConfig":{"access":"public","provenance":true},"packageManager":"pnpm@10.33.0","devDependencies":{"c8":"^12.0.0","nyc":"^18.0.0","tsx":"^4.23.1","chai":"^5.1.1","chalk":"^5.6.2","mocha":"^11.7.6","vinyl":"^3.0.1","downdoc":"^1.1.0-stable","ts-node":"^10.9.2","ts-mocha":"^11.1.0","commander":"^12.1.0","typescript":"^7.0.2","@antora/cli":"3.1","@types/chai":"^5.2.3","@types/node":"^26.1.1","@types/mocha":"^10.0.10","@biomejs/biome":"^2.5.5","@types/mustache":"^4.2.6","@antora/assembler":"1.0.0-beta.20","asciidoctor-kroki":"^0.18.1","@antora/pdf-extension":"1.0.0-beta.20","@antora/lunr-extension":"^1.0.0-alpha.13","@antora/site-generator":"3.1","@antora/asciidoc-loader":"3.1.15","@istanbuljs/nyc-config-typescript":"^1.0.2"},"peerDependencies":{"@antora/assembler":"1.0.0-beta.20","@antora/pdf-extension":"1.0.0-beta.20"},"optionalDependencies":{"@antora/playbook-builder":"3.1.15","@antora/content-aggregator":"3.1.15","@antora/content-classifier":"3.1.15"},"peerDependenciesMeta":{"@antora/assembler":{"optional":true},"@antora/pdf-extension":{"optional":true}},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/core_0.26.1_1790768851149_0.2385181476481939"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-02T20:07:07.858Z","modified":"2026-09-30T11:47:31.563Z","0.23.0":"2026-09-02T20:07:08.159Z","0.24.0":"2026-09-03T06:16:44.201Z","0.24.1":"2026-09-04T05:33:30.311Z","0.24.2":"2026-09-12T14:11:40.394Z","0.24.3":"2026-09-18T05:51:35.271Z","0.24.4":"2026-09-22T05:42:34.314Z","0.25.0":"2026-09-22T10:32:04.894Z","0.26.0":"2026-09-29T08:43:55.008Z","0.26.1":"2026-09-30T11:47:31.254Z"},"bugs":{"url":"https://github.com/rattermeyer/antora-tracer/issues"},"author":{"name":"Richard Attermeyer"},"license":"MIT","homepage":"https://antora-tracer.conemso.de","keywords":["antora","asciidoc","requirements","traceability","documentation"],"repository":{"url":"git+https://github.com/rattermeyer/antora-tracer.git","type":"git"},"description":"Requirements traceability extensions for Antora/AsciiDoc","maintainers":[{"name":"rattermeyer","email":"richard.attermeyer@gmail.com"}],"readme":"# Antora Requirements Traceability Extension\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) ![TypeScript](https://img.shields.io/badge/TypeScript-5.x-blue.svg) ![ESM](https://img.shields.io/badge/Module-ESM-red.svg)\n\nA role-based traceability extension for Antora. Define traceability items with a single `[item]` macro, configure your own roles and relations, and let Antora generate matrices and coverage reports, and export the graph as Neo4j-compatible CSV/Cypher files — all driven by your domain model, not ours.\n\nI am still experimenting with some aspects, so use at your own risk until it reaches 1.0.\nBut I am very much interested in your feedback and ideas.\n\n## Why Traceability for AsciiDoc?\n\nIn regulated environments — medical devices (IEC 62304), automotive (ISO 26262), aerospace\n(DO-178C) — traceability is not optional. It's a compliance requirement. Auditors expect a\ncomplete chain from requirements through design and implementation to verification, with\nevery link documented and verifiable. Gaps mean compliance findings, delayed certification,\nor worse.\n\nAsciiDoc is a mature markup language for structured technical documentation. Paired with\nAntora, it produces version-controlled, multi-component doc sites with rich cross-references\nand native PDF output. But neither AsciiDoc nor Antora provides a built-in way to formally\ndefine, validate, or audit traceability relationships between the requirements, designs,\nand tests embedded in the documentation.\n\nThe reStructuredText ecosystem has https://sphinx-needs.readthedocs.io/[Sphinx-Needs] for\nthis purpose. AsciiDoc had no equivalent.\n\n*antora-tracer* fills that gap: a single `[item]` macro with configurable roles, inline\nrelationships, matrix generation, coverage tracking, graph visualization, and Neo4j CSV/Cypher export.\nAll native to the AsciiDoc/Antora pipeline. All driven by your domain model — not ours —\nso it fits whatever regulatory framework you work under.\n\n---\n\n## How It Works\n\n```\n                             ┌────────────────────────┐\n                             │   traceability.yml     │\n                             │  (your domain model)   │\n  .adoc files                │                        │          Generated artifacts\n ┌───────────────────┐       │  roles:                │       ┌───────────────────────────┐\n │ [#REQ-001, item,  │       │  relations:            │       │  traceability/            │\n │  role=requirement]│──────▶│  matrices:             │──────▶│    matrix-*.html          │\n │ --                │       └───────────┬────────────┘       │    matrix-*.csv           │\n │ Req content       │                   │                    │    coverage.html          │\n │ --                │                   │                    │                             │\n │                   │       ┌───────────▼───────────┐        │                              │\n │ [#IMP-001, item,  │       │    Antora Extension   │        └───────────────────────────┘\n │  role=impl]       │       │                       │\n │ --                │       │  parse → validate     │\n │ impl:REQ-001[]    │──────▶│  → graph → generate   │\n │ --                │       │                       │\n └───────────────────┘       └───────────────────────┘\n```\n\nYour AsciiDoc files use the `[item]` macro. The Antora extension picks them up during `contentClassified`, processes them against your traceability configuration (roles, relations, matrices), and generates matrices and coverage reports into your site's `traceability/` directory. Neo4j CSV/Cypher files are exported separately via the CLI (`antora-tracer export neo4j`).\n\n---\n\n## Quick Start\n\nAlready have an Antora site? Skip to step 2.\n\n1. Install\n\n   ```bash\n   npm install @antora-tracer/core --save-dev\n   ```\n2. Add to `antora.yml`\n\n   ```yaml\n   antora:\n     extensions:\n       - require: @antora-tracer/core/antora-extension\n         config:\n           preset: requirements-engineering\n   ```\n3. Write `[item]` macros in your `.adoc` files\n\n   ```asciidoc\n   [#REQ-001, item, role=requirement]\n   ====\n   User Authentication\n\n   The system shall require authentication for all protected endpoints.\n   ====\n\n   [#IMP-001, item, role=implementation]\n   ====\n   Auth Service\n\n   JWT-based authentication with token refresh.\n\n   satisfies:REQ-001[]\n   ====\n\n   [#TEST-001, item, role=test]\n   ====\n   Authentication Tests\n\n   Unit and integration tests for the auth service.\n\n   verifies:REQ-001[]\n   tests:IMP-001[]\n   ====\n   ```\n4. Build\n\n   ```bash\n   npx antora antora-playbook.yml\n   ```\n\nOpen `_site/traceability/index.html` — you'll find matrices and a coverage report.\n\nFor a complete working project that uses the published npm package, see the\nhttps://github.com/rattermeyer/antora-tracer-demo[antora-tracer-demo] repository.\nIt includes the example site from this project and additional demos for querying\nthe traceability graph in Neo4j.\n\n---\n\n## Complete Example\n\nHere’s a complete traceability example showing requirements, design, implementation, and tests:\n\n```asciidoc\n= My Project Documentation\n\n== Requirements\n\n[#REQ-001, item, role=requirement, title=\"User Authentication\"]\n```\nThe system SHALL authenticate users via secure credentials.\n\nAuthentication MUST support:\n- Username/password\n- Multi-factor authentication\n- Session management with timeout\n```\n\n[#REQ-002, item, role=requirement, title=\"Password Recovery\"]\n```\nThe system SHALL allow users to recover forgotten passwords.\n\nPassword recovery MUST:\n- Send secure email with time-limited link\n- Require current password for email changes\n- Log all recovery attempts\n```\n\n== Design\n\n[#DES-001, item, role=design, title=\"Authentication Architecture\"]\n```\nJWT-based authentication with Redis session store.\n\naddresses:REQ-001[]\n```\n\n== Implementation\n\n[#IMP-001, item, role=implementation, title=\"AuthService Class\"]\n```\nTypeScript implementation of the authentication service.\n\nimplements:DES-001[]\n```\n\n[#IMP-002, item, role=implementation, title=\"PasswordResetService\"]\n```\nHandles password recovery workflow.\n\nimplements:DES-001[]\naddresses:REQ-002[]\n```\n\n== Tests\n\n[#TEST-001, item, role=test, title=\"Authentication Unit Tests\"]\n```\nJest unit tests for AuthService.\n\nverifies:REQ-001[]\ntests:IMP-001[]\n```\n\n[#TEST-002, item, role=test, title=\"Password Recovery Integration Tests\"]\n```\nIntegration tests for password recovery flow.\n\nverifies:REQ-002[]\ntests:IMP-002[]\n```\n```\n\nThis generates a traceability matrix showing which requirements are addressed by designs, implemented by code, and tested.\n\n---\n\n## Features\n\n| Feature | Category | Description |\n| --- | --- | --- |\n| Single Macro | Syntax | One `[item]` macro for all traceable artifacts (requirements, designs, implementations, tests, etc.) |\n| Role-Based | Architecture | Define your own roles instead of being limited to predefined types |\n| Configurable | Relations | Specify which relationship types are valid between roles |\n| Matrix Generation | Output | Generate HTML, CSV, or JSON traceability matrices |\n| Coverage Reports | Output | Visual coverage reports showing traceability completeness |\n| Neo4j Export | Integration | File-based CSV or Cypher export for import into Neo4j |\n| Preset System | Configuration | Built-in presets for common domains (requirements engineering, agile, medical IEC 62304) |\n| Antora Integration | Integration | Seamless integration with Antora documentation pipeline |\n| CLI Tool | Tooling | Command-line interface for processing, validation, and export |\n| Validation | Quality | Validate traceability graph for orphaned items, missing coverage, circular references |\n| Path Finding | Analysis | Find paths between items in the traceability graph |\n| Impact Analysis | Analysis | Determine all items affected by a change (forward and reverse) |\n\n---\n\n## The `[item]` Macro\n\nEverything starts with a single macro:\n\n```asciidoc\n[#TYPE-XXX, item, role=<role>, title=\"Optional Title\", status=\"draft\"]\n====\nItem description and content.\n\n<relation-type>:TARGET-ID[]\n====\n```\n\n### Attributes\n\n| Attribute | Required | Description |\n| --- | --- | --- |\n| `id` | Yes | Unique identifier across all items |\n| `role` | Yes | Must match a role defined in your configuration |\n| `title` | No | Display title (defaults to the id) |\n| `status` | No | Free-form status: `draft`, `reviewed`, `approved`, etc. |\n| `priority` | No | Free-form priority: `high`, `medium`, `low` |\n\n### Inline Relationships\n\nInline relationships use the pattern `<type>:<TARGET-ID>[]` anywhere inside the block:\n\n```asciidoc\nsatisfies:REQ-001[]\nimplements:DES-001[]\nverifies:REQ-001[]\ntests:IMP-001[]\n```\n\nThe valid relation types and which roles they’re allowed between are defined in your traceability configuration.\n\n---\n\n## Configuration\n\n### Using a Preset\n\nThe simplest path. Pick a preset and go:\n\n```yaml\nantora:\n  extensions:\n    - require: @antora-tracer/core/antora-extension\n      config:\n        preset: requirements-engineering\n```\n\n### Custom Configuration\n\nPoint to a traceability YAML file for full control:\n\n```yaml\nantora:\n  extensions:\n    - require: @antora-tracer/core/antora-extension\n      config:\n        configPath: ./config/traceability.yml\n```\n\n### Playbook Options\n\n| Option | Type | Default | Description |\n| --- | --- | --- | --- |\n| `enabled` | boolean | `true` | Enable/disable the extension |\n| `preset` | string | `requirements-engineering` | Built-in preset name |\n| `configPath` | string | — | Path to a custom traceability YAML file |\n| `outputDir` | string | `traceability` | Output directory under site root |\n| `generateMatrices` | boolean | `true` | Generate traceability matrices |\n| `matrixFormats` | string[] | `['html','csv']` | Output formats |\n| `includeInNavigation` | boolean | `true` | Add traceability pages to site navigation |\n\n### Traceability YAML Structure\n\n```yaml\ntraceability:\n  roles:\n    - requirement\n    - design\n    - implementation\n    - test\n\n  relations:\n    requirement:\n      design: [addresses]\n    design:\n      requirement: [implements]\n    implementation:\n      requirement: [satisfies]\n      design: [implements]\n    test:\n      requirement: [verifies]\n      implementation: [tests]\n\n  matrices:\n    - name: requirements-traceability\n      rows: requirement\n      columns: [design, implementation, test]\n      coverageRelations:\n        design: [addresses, implements]\n        implementation: [satisfies, implements]\n        test: [verifies, tests]\n```\n\nEach relation is directional: `source → target` with an allowed set of types. The extension validates every relationship at processing time — if you write `verifies:REQ-001[]` from a `document` but your config only allows `impl → requirement` with `[satisfies]`, you’ll get a clear error message.\n\n---\n\n## CLI\n\nThe extension also works standalone outside of Antora:\n\n```bash\n# Process AsciiDoc files and populate the graph\nnpx antora-tracer process -i docs/ --preset requirements-engineering\n\n# Generate traceability matrices\nnpx antora-tracer matrix -t requirements-traceability -f html -o matrix.html\n\n# Validate traceability completeness\nnpx antora-tracer validate\n```\n\nAdditional commands: `export neo4j` (CSV/Cypher), `stats` (role statistics), `preset` (list/show/init).\n\n---\n\n## Presets\n\nFour built-in presets ship with the extension:\n\n| Preset | Roles | Best For |\n| --- | --- | --- |\n| `requirements-engineering` | requirement, design, implementation, test, document | Systems & software engineering |\n| `agile` | user_story, task, test, epic | Agile/Scrum teams |\n| `medical-iec62304` | requirement, design, unit, integration, risk_control | Medical device software (IEC 62304) |\n| `minimal` | requirement, test | Getting started, simple projects |\n\nList available presets: `npx antora-tracer preset list`\n\nInitialize a config from one: `npx antora-tracer preset init --name medical-iec62304 -o ./config/`\n\n---\n\n## Generated Artifacts\n\nAfter a build, you’ll find in `<site-output>/traceability/`:\n\n| File | Description |\n| --- | --- |\n| `index.html` | Traceability index page |\n| `matrix-<name>.html` | One HTML matrix per configured matrix |\n| `matrix-<name>.csv` | One CSV matrix per configured matrix |\n| `coverage.html` | Coverage report with status badges and per-role breakdown |\n\n**Coverage** is calculated per-matrix based on `coverageRelations` in your config. Each row item gets a status badge: ✓ Complete (100%), ◐ Partial, or ✗ Missing (0%).\n\n---\n\n## Documentation\n\n* [User Guide](https://antora-tracer.conemso.de/docs/tracer/latest/user-guide.html) — Full reference: macros, relations, CLI, presets\n* [Developer Guide](https://antora-tracer.conemso.de/docs/tracer/latest/developer-guide.html) — API, architecture, contributing, testing\n\n---\n\n## Agent Skills\n\nThe npm package ships [Agent Skills](https://agentskills.io/specification) that teach AI assistants how to write and review traceable content in an antora-tracer project:\n\n- `requirements-writing` — EARS-style functional requirements, \"what not how\"\n- `use-case-engineering` — Karl Wiegers use case template\n- `review-architecture-diagrams` — diagram review against better-architecture-diagrams principles\n\nThey live in the `skills/` directory of the installed package. Point your agent harness at them:\n\n```bash\n# pi — install antora-tracer as a pi package (auto-loads the skills)\npi install npm:@antora-tracer/core\n\n# pi — or, with a regular npm install, add to .pi/settings.json:\n#   { \"skills\": [\"../node_modules/@antora-tracer/core/skills\"] }\n\n# Claude Code\ncp -r node_modules/@antora-tracer/core/skills/* ~/.claude/skills/\n\n# OpenAI Codex\ncp -r node_modules/@antora-tracer/core/skills/* ~/.codex/skills/\n```\n\nSee the example site's how-to guide for a step-by-step walkthrough: <https://antora-tracer.conemso.de/docs/tracer/latest/how-to/install-skills.html>.\n\n---\n\n## Development\n\nThis project is developed using **spec-driven development** with [OpenSpec](https://openspec.dev) — an experiment in using formal specifications as the primary design artifact with minimal manual coding outside the spec workflow.\n\n### PDF and DOCX builds\n\nThe example site produces both PDF and DOCX from assembled AsciiDoc. Build prerequisites:\n\n- Node.js 20+, Ruby 3.x, Bundler — provided by `devbox shell`\n- Pandoc 3.x — for DOCX generation; also available via devbox\n\n```bash\ndevbox shell          # installs Node.js + Ruby + Pandoc + deps\nnpx antora antora-playbook-pdf.yml  # generates PDF and DOCX\n```\n\n### Lunr search patch\n\nThe example site uses `patch-package` to fix `@antora/lunr-extension` so that traceability items (e.g. `REQ-001`) appear as separate search results linking directly to their anchors. The patch is in `patches/` and applied in CI via an explicit `npx patch-package` step (not a `postinstall` script). See the archived [change proposal](openspec/changes/archive/2025-08-05-index-item-anchors-in-lunr/) for details.\n\nEvery feature, fix, and refactor starts as a proposal with specs, design, and tasks in the `openspec/changes/` directory. The archive at `openspec/changes/archive/` preserves the complete history of every change.\n\n---\n\n## Reimplementation Experiment\n\nCan a complete, working tool be rebuilt from its requirements specification alone — no design documentation, no architecture, no source?\n\nThis repository's example site captures the tool's requirements as traceability items (`examples/tracer/modules/requirements/`). A sibling repository, [antora-tracer-reimplementation](https://github.com/rattermeyer/antora-tracer-reimplementation), turns those requirements into a reproducible experiment:\n\n- **`requirements/spec.adoc`** — the specification (constraints + functional + quality), extracted from the example site; build tooling excluded, tool name removed.\n- **`golden/`** — the oracle: matrices generated by the published `@antora-tracer/core` npm package, never from source.\n- **`harness/`** — clone + strip + golden generation + content-level comparison.\n\nThe experiment asks: given only the requirements, does an LLM produce a tool that generates the same matrices?\n\n### Kick-off prompt\n\nClone the sibling repository and hand this prompt to an LLM (or run an agent in that repo):\n\n```text\nYou are implementing a requirements traceability extension for Antora, from a formal requirements specification. You are building from the specification alone — not extending or consulting any existing implementation.\n\n## Task\n\nImplement, from scratch, a complete, runnable tool that satisfies every requirement in the specification.\n\n## Specification\n\nRead `requirements/spec.adoc`. It is the complete and authoritative specification, in three parts:\n\n- **Constraints** (`CON-*`) — non-negotiable boundaries that bound every implementation decision.\n- **Functional Requirements** (`REQ-*`) — what the tool must do.\n- **Quality Requirements** (`QA-*`) — quality levels the tool must meet.\n\nImplement all of it. Do not invent features that are not described. Do not skip any requirement.\n\n## Validation target\n\nYour tool must process the AsciiDoc documentation site in `fixtures/antora-tracer/examples/` and produce traceability matrices whose content matches the reference output. The site declares traceability items with the `[#ID, item, role=..., title=\"...\"]` block macro, links them with inline relationship macros, and is configured by `examples/traceability.yml`.\n\n## Deliverable\n\nA complete, runnable project in the `implementation/` directory:\n\n- the Antora extension\n- a command-line interface (see the CLI requirements)\n- build configuration\n- tests for the core logic\n- usage documentation\n\n## To pass validation\n\nYour tool must generate, for each configured matrix, a CSV file named `matrix-<name>.csv`:\n\n- header row: `Row ID,Row Title,<column-role>...`\n- one row per row-item; first column = the row item ID\n- each cell: empty when the row item has no relationship to that column role, otherwise the covering item's ID\n\nThe validator is `harness/compare.mjs`.\n\n## Ground rules\n\n- Implement from the specification only. The fixtures contain the example site; its `src/`, `lib/`, `test/`, and `openspec/` directories have been removed. Do not fetch or copy any reference implementation.\n- Do not read the `golden/` directory — it contains the expected output.\n- TypeScript, Node.js 20+, ESM (per the specification).\n- You may consult Antora's public extension API documentation.\n\n## Definition of done\n\n`node harness/compare.mjs implementation/matrices/` reports PASS for every matrix.\n```\n\n---\n\n## Contributing\n\nContributions are welcome. See the [Developer Guide](https://antora-tracer.conemso.de/docs/tracer/latest/developer-guide.html) for setup, code style, and testing.\n\n```bash\ngit clone <repo-url>\nnpm install\nnpm test        # 194 tests\n```\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","readmeFilename":"README.md"}