Skip to content

Rewrite promptforge and harness facade docs as task tours - #102

Merged
vinniefalco merged 2 commits into
cppalliance:masterfrom
vinniefalco:master
Sep 30, 2026
Merged

vinniefalco merged 2 commits into
cppalliance:masterfrom
vinniefalco:master

Conversation

@vinniefalco

@vinniefalco vinniefalco commented Sep 30, 2026 •

Copy link
Copy Markdown
Member

Summary

The promptforge and harness facade crates get rustdoc pages rewritten as task tours for a Rust developer new to the project. A new doc tool, Cicerone (tools/cicerone.md, tools/cicerone/), replaces the Dokuman tool; it writes the pages and checks them against the source. The one code change, in harness, is small and additive.

Commits

  • 54ed626 Re-export Origin from vfs and add tokio dev-dependency. harness::vfs re-exports promptforge::vfs::Origin, and tokio with signal is added under [dev-dependencies] only. It comes first because the doc examples depend on it.
  • be36e07 Replace Dokuman with Cicerone and rewrite facade doc pages. Adds tools/cicerone.md with its plans and scripts, removes tools/dokuman-facade.md and tools/scripts/, and rewrites every .md page under crates/promptforge/src/ and crates/harness/src/. No .rs, Cargo.toml, or test changes.

How the pages were checked

  • Every page passes the tool's gates: the page checks, the frozen examples, cargo doc -p <crate> --no-deps with -D warnings, and the doctests.
  • Each page also went through review rounds: a cold reader that sees only the page answers its learning goals, and an audit checks each claim against the source.
  • Learning goals answered on the final reading, from the latest report for each page:
    • promptforge: 87 of 94 across the 13 module pages. That report gives lib.md no score; its audit corrections were applied by hand and it passes the gates.
    • harness: 37 of 40. lib.md 18/19 and log.md 6/7 (first report), cancel.md 7/7 (second), vfs.md 6/7 (third).

How to review

  • Read crates/promptforge/src/lib.md and crates/harness/src/lib.md first.
  • The rendered rustdoc pages are what readers see.
  • The Python scripts have no tests.

Bugs found while writing the docs

Filed as separate issues, not fixed here.

Rule change

AGENTS.md now asks that a change to a public item of promptforge or harness run tools/cicerone.md in update mode before merge.

A host can now name `Origin` through the `harness` crate, and the doc examples can run a host on tokio. The `vfs` module in `crates/harness/src/lib.rs` re-exports `promptforge::vfs::Origin` beside `VfsError` and `VfsRef`. `crates/harness/Cargo.toml` adds `tokio` with the `signal` feature under `[dev-dependencies]`, and `Cargo.lock` records it.

- `tokio` is a dev-dependency only, with `workspace = true`. The normal dependencies of the crate do not change.
- The re-export adds `Origin` to the public surface of the `vfs` module.
- No test, doc example, or `.md` page changes in this commit.
The `promptforge` and `harness` facade crates get rustdoc pages that teach a new reader by task, and a new tool writes and checks these pages. `tools/cicerone.md` and the scripts under `tools/cicerone/scripts/` replace `tools/dokuman-facade.md` and `tools/scripts/`. Each page under `crates/promptforge/src/` and `crates/harness/src/` becomes a set of task tours with doc examples and a `Reference` section.

- `tools/cicerone.md` splits the work between agents: collectors read the source, curators write a brief, and a writer that never sees the source writes each page from the brief and a compiled skeleton. A cold reader then checks each page.
- `tools/cicerone/plans/promptforge.md` and `tools/cicerone/plans/harness.md` set the reader and one running example for each crate: `greeter` for `promptforge` and `desk` for `harness`.
- `AGENTS.md` adds a rule: a change to a public item of `promptforge` or `harness` runs `tools/cicerone.md` in update mode for that crate before merge.
- `tools/scripts/build_coverage.py` moves to `tools/cicerone/scripts/inventory.py`. All other files under `tools/scripts/` are removed. The scripts write their work files under `target/cicerone-CRATE/`.
- The `harness` doc examples import `harness::vfs::{Origin, VfsRef}`, and `crates/harness/src/cancel.md` tells the reader to await `tokio::signal::ctrl_c`.
- No `.rs`, `Cargo.toml`, or test file changes. The Python scripts have no tests in this commit.
@vinniefalco vinniefalco changed the title Long-running Opus 5.5 documentation marathon Rewrite promptforge and harness facade docs as task tours Sep 30, 2026
@vinniefalco
vinniefalco merged commit be36e07 into cppalliance:master Sep 30, 2026
18 checks passed

This branch was successfully deployed

1 active deployment
github-pages — be36e078 Deployed Sep 30, 2026 by vinniefalco via deploy #40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant