Skip to content

Revision · Project 8 — Rankforge

Rankforge started as a useful TypeScript script and preserved its best property: run it, read the artifacts, and improve the workflow from concrete evidence. The Rust rebuild did not add ceremony for its own sake. It exposed the boundaries that the single script already depended on.

  • Ownership and paths: the pipeline owns frozen website bytes and borrows them across hashing, validation, and prompt compilation.
  • Enums and exhaustive matching: five legal stages have one required order and stable artifacts.
  • Traits: acquisition, search, and model calls can change without changing the workflow contract.
  • Serde: saved responses and usage cross an exact, deny-unknown-fields boundary.
  • Validation: syntax, structure, factual support, semantic consistency, and quality are separate claims.
  • Checked arithmetic: token and tool estimates cannot silently overflow.
  • Hashes and receipts: every accepted stage binds input identity, output identity, and usage.
  • Integration tests: the same executable a learner runs must create the complete delivery pack.

A multi-step prompt script is already a workflow. Once users depend on it, the workflow needs typed state, durable artifacts, evidence policy, completion gates, provider isolation, usage accounting, and tests. Web access expands what a model can observe. It does not grant truth or publishing authority.

Without opening the reference crate, sketch:

  1. the five Stage variants and their order;
  2. a provider-neutral StageModel request and response;
  3. the difference between owned site evidence and public search observations;
  4. the fields in a stage receipt;
  5. the checks required before SEO HTML and JSON-LD can be published.

Then compare your sketch with crates/rankforge. Identify which validation belongs in deterministic Rust, which needs an evidence-backed evaluator, and which still requires editorial review.

Choose one:

  • implement an HTTP site-acquisition adapter with redirect, size, and timeout limits;
  • connect a current Responses API adapter behind StageModel;
  • persist web-search observations with URL, time, excerpt, and snapshot hash;
  • parse the packaged JSON-LD and compare it with visible article content;
  • add an approval gate between angle selection and article generation;
  • compare two prompt releases on quality, latency, and cost.

Return to the 39-day roadmap or use the Deep Reference Map for the next concept your extension exposes.