A full-screen, htop-style terminal assistant for reviewing and ratifying throughline requirement items. Compose-aware: grounds items over the composed union so borrowed clauses count. Ships the tl-ratify TUI.
Project description
throughline-ratify
A full-screen, htop-style terminal cockpit for working through the throughline requirement items that await human ratification — one item at a time, with colour and glyphs carrying the semantic weight so your eye lands on the actionable rows first.
It is compose-aware: on a
tl-compose project it grounds
each item over the composed union, so an item whose grounding chain reaches a root
only through a borrowed source counts as grounded — never orphaned. Writes only ever
land on your own consumer registers; a composed source stays read-only.
throughline-ratify │ my-service composed │ 2 source(s)
queue: ● 3 proposed ◉ 2 ready ○ 0 blocked ⚠ 1 ungrounded ⚑ 0 ambiguous (6 shown)
▸ ● SR-0007 Rate-limit the login endpoint │ ● SR-0007 system_requirement
◉ SR-0008 Store audit events append-only │ status: proposed
⚠ SR-0011 Redact PII from logs │
│ ✓ ready to ratify (proposed → ratified)
│ grounded: ✓ ambiguous: no
│ links
│ derives_from → asvs:V7.1.1 "..."
j/k:move r/↵:ratify x:reject a:all /:filter R:reload ?:help q:quit
Install
pipx install throughline-ratify
This pulls in throughline-compose (and, transitively, the throughline core), so
the tl and tl-compose CLIs come along too.
Use
From anywhere inside a throughline project (it walks up to find throughline.toml):
tl-ratify # open the cockpit
tl-ratify -C path/to/project # point at a specific project
tl-ratify --by alice # record a specific ratifier on sign-off
tl-ratify --list # print the worklist (no TUI) — good for CI/pipelines
tl-ratify --list --all # include already-ratified items
Keys
| Key | Action |
|---|---|
j / ↓, k / ↑ |
move |
g / G, PgUp / PgDn |
jump / page |
r / Enter |
ratify the selected item (with confirm) |
x |
reject (invalidate) the selected item, cascading suspect to dependents |
a |
toggle showing already-ratified items |
/ |
filter by uid or title |
R |
reload the graph from disk |
? |
help |
q |
quit |
Concerns
Every row is classified by the one thing you most need to know about it:
| Glyph | Concern | Meaning |
|---|---|---|
| ● | proposed | AI-proposed, awaiting a human's accountability |
| ◉ | ready | already approved, one move from ratified |
| ○ | blocked | pending, but not directly ratifiable from its status |
| ⚠ | ungrounded | reaches no root — link it upward before sign-off |
| ⚑ | ambiguous | flagged ambiguous — clarify it first |
How it works
tl-ratify is a thin, safe view over throughline's own Python API:
- What needs ratifying — every local item whose status is not the project's
ratifiedrole and is not a dead status. Ranking, colour and icon come from the concern each item earns. - Ratifying mirrors
tl-compose ratify: it runs throughline's grounding gate over the composed union (refusing ambiguous or ungrounded items), sets theratified-role status through the config-drivenset_statuschoke point, records who signed off, and writes the item back to its own register. - Rejecting calls throughline's
invalidate, moving the item to theinvalidatedrole and cascadingsuspectto its trusting dependents.
No status names are hardcoded: the project's [status.roles] and [transitions]
govern every move.
Development
python -m venv .venv && . .venv/bin/activate
pip install -e ".[dev]"
pytest -q
tl -C idd check --strict # this repo is itself throughline-managed
This project practises what it automates: its own requirements live in
idd/ as a throughline graph, and CI gates every change on
tl check --strict.
Licence
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file throughline_ratify-0.1.2.tar.gz.
File metadata
- Download URL: throughline_ratify-0.1.2.tar.gz
- Upload date:
- Size: 30.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ed34ed94cb985e9cb62a75f9d9a44e96930aa34ffe51adbf3bdb73b6bd22d929
|
|
| MD5 |
9c972768bc33829b5d41a550561dfb3b
|
|
| BLAKE2b-256 |
11219934edc1a7e69f0ab393ec5794bf5dab48eac516a1c318083abc34ad1d89
|
Provenance
The following attestation bundles were made for throughline_ratify-0.1.2.tar.gz:
Publisher:
release.yml on rhodium-org/throughline-ratify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
throughline_ratify-0.1.2.tar.gz -
Subject digest:
ed34ed94cb985e9cb62a75f9d9a44e96930aa34ffe51adbf3bdb73b6bd22d929 - Sigstore transparency entry: 2252636835
- Sigstore integration time:
-
Permalink:
rhodium-org/throughline-ratify@01a5a8d8752ae3651fcf7b9f831204b2ea253ac8 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/rhodium-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@01a5a8d8752ae3651fcf7b9f831204b2ea253ac8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file throughline_ratify-0.1.2-py3-none-any.whl.
File metadata
- Download URL: throughline_ratify-0.1.2-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33748ca5b5f64d2612d06f638374823f27e8617b55b42b71b1d6d6e94bf89585
|
|
| MD5 |
fbc54d2f7f20c3dd525e62e86d46aa84
|
|
| BLAKE2b-256 |
ea2d8e7920f6dd4b689bb1112ece97d6861d2b848db9fe23839fdd0a76eef60c
|
Provenance
The following attestation bundles were made for throughline_ratify-0.1.2-py3-none-any.whl:
Publisher:
release.yml on rhodium-org/throughline-ratify
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
throughline_ratify-0.1.2-py3-none-any.whl -
Subject digest:
33748ca5b5f64d2612d06f638374823f27e8617b55b42b71b1d6d6e94bf89585 - Sigstore transparency entry: 2252637190
- Sigstore integration time:
-
Permalink:
rhodium-org/throughline-ratify@01a5a8d8752ae3651fcf7b9f831204b2ea253ac8 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/rhodium-org
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@01a5a8d8752ae3651fcf7b9f831204b2ea253ac8 -
Trigger Event:
release
-
Statement type: