feat: the crafter-review skeleton, and its semantics for text, JSON and crypto
What the rest of crafter-review stands on. - project.cpp: a static crafter.review-lib and the crafter-review executable; Crafter.Network without QUIC, pinned, or with --local from the checkout next to this one; Crafter.LintRules' lite rules, pinned; the version from CRAFTER_REVIEW_VERSION, git describe or 0.0.0-dev. - :Core and :Driver: the version, PromptVersion 1, --version. - :Json: nlohmann's ordered_json, which keeps key order and unknown keys, so the files every driver on a machine shares survive a rewrite; dumps in the indented file layout, the spaced one-line form and the compact sorted form the structured-output schema needs byte for byte. - :Crypto: SHA-256/SHA-1/MD5, HMAC, PBKDF2 through libcrypto; base64 and base32 written out, because what they refuse, and with which message, is pinned. - :Unicode, Unicode 16.0.0's tables: whitespace, line breaks, decimal digits, printable characters, case mappings and case-insensitive folds. - :Text: string functions on code points, number parsing, the shortest float form and half-even rounding, printed values, shell patterns, URL splitting and unquoting, POSIX paths, universal newlines and the replacing UTF-8 decoder. Tests: Crypto (published vectors), Text (293 reference vectors). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
e176dc87b5
commit
36852edf63
16 changed files with 7845 additions and 0 deletions
33
implementations/Crafter.Review-Driver.cpp
Normal file
33
implementations/Crafter.Review-Driver.cpp
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// SPDX-License-Identifier: AGPL-3.0-only
|
||||
// SPDX-FileCopyrightText: Copyright (C) 2026 Catcrafts®
|
||||
|
||||
module Crafter.Review:Driver_impl;
|
||||
import :Driver;
|
||||
import :Core;
|
||||
import std;
|
||||
|
||||
namespace Crafter::Review {
|
||||
namespace {
|
||||
constexpr std::string_view Usage =
|
||||
R"(usage: crafter-review [--config FILE] {run,freeze,slots,config} ...
|
||||
crafter-review {seats,inventory,sql,totp,init,doc,browser,stop} ...
|
||||
crafter-review --version
|
||||
|
||||
The pre-push review pipeline: adversarial lenses, one claude process per
|
||||
inventory unit, against a frozen commit range.)";
|
||||
}
|
||||
|
||||
std::int32_t Main(std::span<const std::string_view> args) {
|
||||
const std::span<const std::string_view> rest = args.empty() ? args : args.subspan(1);
|
||||
if (!rest.empty() && rest.front() == "--version") {
|
||||
std::println("{}", DriverLine());
|
||||
return 0;
|
||||
}
|
||||
if (!rest.empty() && (rest.front() == "-h" || rest.front() == "--help")) {
|
||||
std::println("{}", Usage);
|
||||
return 0;
|
||||
}
|
||||
std::println(std::cerr, "{}", Usage);
|
||||
return 3;
|
||||
}
|
||||
}
|
||||
Loading…
Reference in a new issue