A cited, score-free Opportunity Packet for AbilityOne NPA business development. Part of the TENS HQ product family, downstream of GovCon Recompete Radar: the Radar finds an expiring federal contract; ReconRadar assembles the evidence a human needs to decide whether to pursue it.
One expiring contract goes in. A provenance-tracked evidence sheet comes out — routed onto the four suitability criteria of 41 CFR 51-2.4(a) for a human decision. Nothing in this app renders a score, ranking, PWin, or bid/no-bid recommendation, and nothing here is a suitability determination — the Commission determines suitability.
One expiring contract in; this document out. Below is a byte-verbatim excerpt of
docs/examples/example-packet.md — the real, unedited
output of the export path, generated offline from the repo's bundled SYNTHETIC samples by
py scripts/generate_example_packet.py. Nothing in the packet was typed by hand; the
hand-written preamble at the top of that file is the only exception, and it says so.
Section ledger — every section, included or honestly absent, with the reason:
| Section | Included | Basis |
|---|---|---|
| Origin (Radar handoff) | Yes | A Radar handoff snapshot is attached and its PIID matches this packet's current PIID. |
| Eligibility gate | Yes | Gate fed by the LIVE retrieved set-aside value (USAspending FPDS type_set_aside), which supersedes any analyst-typed value once live Contract Facts are attached. |
| Contract Facts (SYNTHETIC example) | Yes | Bundled SYNTHETIC example facts attached — offline, not a real USAspending API retrieval. |
| Contract Facts (analyst-entered) | Yes | Always rendered from the analyst-pasted PIID and place of performance, independent of any other evidence attached. |
| Capture window | Yes | Computed from the attached live Contract Facts pull's potential period end date. |
| Incumbent & teaming leads / PL-impact | Yes | Evidence attached: facts + directory. |
| Staffing what-if | Yes | An analyst-entered staffing baseline was attached to this render. |
| Geography (ACS) | Yes | Section rendered as a placeholder -- no ACS context retrieved (not yet pulled). |
| PL cross-reference (R2b) | Yes | A PL workbook was cross-referenced against this render's worksite. |
| Procurement List activity (Federal Register) | Not included | No Federal Register pull attached. |
| R2a determination-support map | Yes | Always rendered -- routes whatever evidence is currently attached above onto the four suitability criteria of 41 CFR 51-2.4(a). |
Source manifest — every attached source, its reference, retrieval time, and assurance:
| Source | Reference | Retrieved at | Assurance | Notes |
|---|---|---|---|---|
| Radar handoff (analyst upload) | sample_radar_handoff.json (SYNTHETIC example) | 2026-07-15 | USER_ATTESTED | The handoff's claimed snapshot retrieval time; not independently verified. Live Contract Facts, where attached, supersede this claim. SYNTHETIC example handoff — not real Radar output. |
| Contract Facts (SYNTHETIC example, offline) | bundled SYNTHETIC example (offline) -- not a live USAspending retrieval | 2026-07-22T12:00:00+00:00 | SYNTHETIC_EXAMPLE | SYNTHETIC example — not real USAspending data. |
| AbilityOne NPA directory (analyst upload) | sample_nib_npa.xlsx (SYNTHETIC example) | Not supplied (analyst attestation absent) | USER_ATTESTED | |
| Staffing what-if inputs (analyst-entered) | HOURS mode entry | Not supplied (analyst attestation absent) | USER_ATTESTED | |
| Procurement List cross-reference workbook (R2b) | sample_pl_services.xlsx (SYNTHETIC example) | 2026-07-24 | USER_ATTESTED | SYNTHETIC example workbook — not real Procurement List data |
The full file adds the stamped header, the attestation disclaimers, and the packet body those two tables describe.
Two rows in that Section ledger — Eligibility gate and Capture window — say "LIVE" and
"live" of what was actually the bundled synthetic offline sample. That is a real
labeling defect, not a typo, and it is disclosed, enumerated, and pinned to its source
lines at the top of docs/examples/example-packet.md.
Work one page, top to bottom; the packet re-renders as evidence attaches:
- Origin — optional
radar-handoff/v1JSON from GovConRadar's Contract Detail page. Prefills retrieval inputs only; nothing from it is treated as verified. - Contract facts (live) — one analyst-initiated USAspending pull: obligated vs. ceiling kept distinct, award description, place of performance (a county is not a city), set-aside, offers — every fact cited with source URL and retrieval time. A PIID shared by several awards is disambiguated by the analyst, never auto-picked.
- Eligibility gate — reads the live set-aside code. Blank means Unknown, never "unrestricted." A gate, not a score. A set-aside bar closes the prime-as-set-aside lane only; the AbilityOne mandatory-source lane (FAR 8.7) is separate and not assessed.
- Capture window — an honest band for the likely follow-on solicitation and the R2a start-by date. Negative runway is reported, not hidden.
- Incumbent & teaming leads — subaward records and NPA-directory cross-reference. Leads, never verdicts.
- Staffing what-if — a labeled planning indicator, never an ODLH determination.
- Geography context — one cited Census ACS county figure.
- Procurement List cross-reference — exact match against an analyst-attested PL Services workbook. A no-match is evidence absence.
- PL activity — the Commission's Federal Register notice stream, cited, never interpreted.
- R2a determination-support map — routes the evidence above onto 41 CFR 51-2.4(a), stating plainly what is absent.
- Export — a Markdown deliverable: verbatim body + Section ledger (honest absences included) + Source manifest.
Every live pull fails loud. Editing an input detaches any stale result built on it. A missing value reads "Not reported" — never $0.00.
.\run_demo.ps1 # provisions a venv and launches the appA default Windows 11 execution policy blocks that script (.ps1 files are disabled on this system). Either run it as:
powershell -ExecutionPolicy Bypass -File .\run_demo.ps1or install manually — this also works on any OS: pip install -r requirements.txt
then streamlit run app.py (Python 3.11+). The packet works fully offline on the
bundled SYNTHETIC examples; the four live pulls (USAspending ×2, Census ACS,
Federal Register) need internet, and the ACS pull needs a free Census API key in
TENS_HQ_CENSUS_API_KEY (the key rides only the wire request — cited URLs stay
keyless by construction).
Hosting note. Packet-only is the fail-safe default, and the hosted demo runs
without the case ledger. Set TENS_HQ_ENABLE_CASE_LEDGER=1 only for a local or
per-pilot-analyst deployment. The ledger (data/runtime/tens_hq.sqlite3) is
local, single-user, and unauthenticated — it is not an identity, access-control,
or multi-tenant boundary. Enabling it on a shared hosted URL would commingle
every visitor's cases and let one visitor read or mutate another's (see
docs/ARCHITECTURE.md §"Trust and storage boundaries").
docs/DEMO_SCRIPT.md— a guided walkthrough (the in-app "▶ Guided demo" follows it).docs/PILOT_RUNBOOK.md— how to run a governed discovery pilot.docs/decisions/— the ADR lineage behind every honesty rule.
Public organizational/contract-directory data and analyst-uploaded official exports only — no person-level data. The bundled demo data is synthetic and validated on every test run. Counsel-gated regulatory claims are excluded from every rendered surface, test-enforced.
The suite is 585 tests (py -m pytest → 585 passed), including dedicated
guards for markdown-injection, counsel-gated vocabulary, and the no-score rule.
CI runs that suite plus ruff check . and scripts/validate_demo_data.py on
Python 3.11 and 3.12, on every push and pull request.
Chris Judkins specified this system, decomposed it into gated slices, ran the
adversarial review passes over them, and wrote the fix commits; AI agents wrote
most of the line-level code. The history says so plainly — every commit here
except the two GitHub merge commits carries a Co-Authored-By: Claude ...
trailer.
The gate every slice had to clear was python -m pytest -q and
python scripts/validate_demo_data.py, run on Python 3.11. CI has grown since:
.github/workflows/ci.yml now also runs ruff check ., adds a Python 3.12 leg,
and builds and smoke-boots the container on every push and pull request. Both
of those last two arrived on 2026-07-23, after the slice work — so the pipeline
a reader sees today is stricter than the one the slices were held to.
The finds belong to the review passes, and the record credits them there.
ADR-017 notes that adversarial verification corrected an earlier draft of the
incumbent-leads band design, which had treated a sole-source designation and
its entailed offers count as two corroborating signals. ADR-015's second
2026-07-21 Update records an adversarial-verification fix pass applied hours
after the Decision it supersedes was written. In this repo's history,
f50a421 is a review-fix commit sitting directly on top of the release it
corrects.
The judgment calls — where the slice boundaries fell, what to refuse to compute, what to delete, and the decision to run an adversarial pass at all — are the part worth evaluating.
MIT — see LICENSE.