Go packages
draft is a command-line tool first. But every capability is an importable Go
package, and only the PDF extractor, the brand assets and the TUI stay
internal.
go get github.com/sebastienrousseau/draft@latest
| Package | What it does |
|---|---|
claims |
Claim parsing, the verbatim-quote gate, ledger rendering |
config |
Flag, environment and default resolution |
engine |
The Engine seam, provider registry, Ollama, fallback chain |
frontmatter |
Metadata, YAML generation, article-set regeneration |
pipeline |
Five-phase orchestration, retries, continuation, events |
prompt |
Grounded claim, writing and review prompts |
rules |
Shared editorial constants |
validate |
House-rule and faithfulness checks |
Each has its own README with a runnable quick start and an API table. Full reference on pkg.go.dev.
The seam that matters
Engine is two methods. The whole test suite and every example run against
in-process implementations of it, which is why none of them need a network:
type Engine interface {
Name() string
Generate(ctx context.Context, req Request) (Result, error)
}
Return Result{Truncated: true} and the pipeline continues generation rather
than saving a mid-sentence article.
API stability. While the module is
0.0.x, the exported Go API may change between releases without a deprecation cycle. Pin an exact version if you depend on it. The CLI's flags and output layout are the stable surface; the Go packages are not yet.