feedforward-practice
Private practice feedback on drafts against an instructor rubric — the engine and sidecar API behind FeedForward Desktop.
A student opens a .ffrubric file (exported by their instructor from
FeedForward), pastes or
opens a draft, points the app at a model endpoint they control, and gets
rubric-aligned formative feedback rendered with FeedForward's qualitative
levels (the dartboard: "Closing in", "On the board", …). Nothing is stored
on a server; there are no accounts.
Model endpoints
One OpenAI-compatible client covers all supported setups:
| Setup | Base URL | Key |
|---|---|---|
| Local Ollama (default) | http://localhost:11434/v1 |
none |
| Remote Ollama behind a proxy | your server's URL | bearer token |
| BYOK (OpenAI, Anthropic-compat, OpenRouter, Groq…) | provider URL | your key |
Configure via arguments or FEEDFORWARD_PRACTICE_BASE_URL,
FEEDFORWARD_PRACTICE_API_KEY, FEEDFORWARD_PRACTICE_MODEL.
Usage
pip install feedforward-practice # engine + CLI
pip install "feedforward-practice[serve]" # + the HTTP API for the desktop shell
feedforward-practice assess --rubric essay1.ffrubric --draft draft.md
feedforward-practice serve --port 8022
Contracts
The rubric format, level words, and prompt/JSON contract are vendored at
build time from the FeedForward repo's shared/ directory — the single
source of truth both the server and this package test against.
Part of the FeedForward project · MIT
Metadata
Release files for feedforward-practice 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| feedforward_practice-0.1.0.tar.gz | 9.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| feedforward_practice-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.9 kB
Release files / feedforward_practice-0.1.0.tar.gz
| Download URL | feedforward_practice-0.1.0.tar.gz |
|---|---|
| Size | 9.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c97474ae7899ba8d423a2ef6e54aaf85af6eadf0b9372e246c320718c431947e
|
|
BLAKE2b-256 checksum How to use checksums |
5a1863bb7871753f750ed1fcd36e8cb588af207b0ba43265c0448350106dcaf7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|
Release files / feedforward_practice-0.1.0-py3-none-any.whl
| Download URL | feedforward_practice-0.1.0-py3-none-any.whl |
|---|---|
| Size | 13.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c9d4d3401013a85480dde4568f635ce6e5bfa3bd551d9a59bc14dc545ecfaf8a
|
|
BLAKE2b-256 checksum How to use checksums |
64c996602a51e8cfa22237677c4f1c0b4ebcda7f367ff234feb2efe99dfe72ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.0
|