- Added
policy-pack --input DIR --format json|markdown [--output FILE]for local custody, audit, and technical policy evidence review. - Added schema version
0.5PolicyPackReportoutput with artifacts detected, evidence document summaries, per-artifact summaries, consolidated findings, warnings, missing evidence, review questions, and limitations. - Added Markdown/YAML/JSON policy note evidence summaries and optional metadata evidence summaries.
- Added policy-pack fixtures and CLI/unit regression tests, including missing policy notes coverage.
- Added a public sample report at
docs/policy-pack-sample.md. - Added a real
aifeature implementation forsummarize --input report.json --provider openaiusing an OpenAI-compatible/chat/completionsendpoint configured byBTC_RISK_LAB_AI_BASE_URL,BTC_RISK_LAB_AI_API_KEY, and optionalBTC_RISK_LAB_AI_MODEL. - Added a global
--offlineflag that turns network-backed commands into explanatory errors before any HTTP client is used. - Added property tests covering transaction, PSBT, and script analysis against arbitrary bytes and mutated valid fixtures.
- AI summary output is explicitly marked
AI-assisted draftand the command sends only the already-produced btc-risk-lab JSON report to the configured provider. - Builds compiled without
--features ainow fail the summary command withcompiled without ai feature. - Extracted shared pack input validation, file presence checks, file reading, and metadata helpers into
pack_common.
- The AI provider HTTP client uses a hard 20 second timeout and does not read or upload raw transaction, PSBT, descriptor, script, policy, wallet, private key, seed phrase, or signing material artifacts.
- Documented network egress boundaries:
fetch-txsends only the public txid to mempool.space Esplora, while AI summaries send only the already-produced btc-risk-lab JSON report to the configured AI endpoint. policy-packperforms local file analysis only. It does not sign, create wallets, handle keys, broadcast transactions, or make network calls.
- Added
review-pack --input DIR --format json|markdown [--output FILE]for consolidated local review of descriptor, PSBT, transaction, script, policy, and notes artifacts. - Added schema version
0.4ReviewPackReportoutput with detected artifacts, per-artifact summaries, consolidated risk, warnings, missing data, cross-artifact findings, review questions, and limitations. - Added cross-artifact checks for descriptor/PSBT multisig and timelock signals, descriptor threshold limitations, and PSBT/transaction input-output counts.
- Added review-pack fixtures and CLI regression tests for JSON stdout and Markdown file output.
review-packperforms local file analysis only. It does not sign, create wallets, handle keys, broadcast transactions, or make network calls.
- Added
analyze-descriptor --descriptor <TEXT>for output descriptor policy review. - Added descriptor analysis using
miniscript, including descriptor type, script type, sanity check, max satisfaction weight, threshold/multisig signals, and timelock signals. - Added report schema version
0.3to JSON and Markdown output. - Added descriptor fixtures and CLI/unit regression tests for simple, sortedmulti, timelock, and invalid descriptors.
- Extended script signals with threshold policy support.
- Extended Markdown reports with descriptor detail sections.
- Extended transaction and PSBT reports while preserving existing artifact analysis boundaries.
- Added crates.io-ready package metadata and bumped the crate to
0.2.0. - Added
analyze-tx --hex <HEX>for direct raw transaction analysis without a JSON file. - Added optional
fetchfeature withfetch-tx --txid <TXID>to read public transaction data from mempool.space Esplora over HTTPS and fill prevouts when available. - Added release automation that publishes to crates.io on
v*tags using theCRATES_IO_TOKENGitHub secret. - Added a README demo asset at
docs/assets/demo.svg.
- Transaction analysis continues to report fee unavailable when prevout values are absent instead of inventing a fee.
fetch-txuses Esplora's public fee field only when prevout data is incomplete, such as the genesis coinbase fallback.
- The new network path is opt-in behind
--features fetchand only performs public read-only HTTPS GET requests. - No signing, key custody, wallet creation, broadcasting, seed phrase handling, or AI artifact upload paths were added.