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.
What the project forced you to learn
Section titled “What the project forced you to learn”- 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.
The AI engineering takeaway
Section titled “The AI engineering takeaway”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.
Rebuild from memory
Section titled “Rebuild from memory”Without opening the reference crate, sketch:
- the five
Stagevariants and their order; - a provider-neutral
StageModelrequest and response; - the difference between owned site evidence and public search observations;
- the fields in a stage receipt;
- 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.
Ship one extension
Section titled “Ship one extension”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.