This portal exists to keep humans and AI on task. Everything a person can read here, an agent can fetch as Markdown or JSON at a stable URL.
| URL | Format | What it is |
|---|---|---|
/llms.txt | text/plain | Start here. Every document with its Markdown URL, grouped by category. Follows the llms.txt convention. |
/api/index.json | JSON | The manifest: every document with id, title, category, source path, SHA-256, size and modification time, plus the endpoint table. |
/api/status.json | JSON | Build progress derived from the repo, with the evidence for each figure and an explicit caveat that counts are not completeness. |
/api/decisions.json | JSON | Decision log: constraints, recorded rulings, closed questions and open decisions, each with its source. |
/api/freshness.json | JSON | Age of every source against its policy, and an overall status of OK / STALE / DEGRADED / BROKEN. |
/api/docs/{id}.json | JSON | One document: metadata, heading outline, and the full Markdown text. |
/d/{id}.md | text/markdown | The raw source Markdown, byte for byte. |
An id looks like knowledge/compliance-arcos-dea-export-design: the category, then
a slug of the path the document occupies in its source repository. Ids are derived from
location, never from a title or a position in a list, so a bookmarked URL survives the
document being retitled or the index being reordered.
https://unified.propharmausa.com/llms.txt — what exists.https://unified.propharmausa.com/d/charter/charter.md — goals, method, hard constraints, and the
closed questions that must not be reopened.https://unified.propharmausa.com/api/status.json — what is actually built, with evidence.https://unified.propharmausa.com/api/decisions.json — what was already settled, and by whom.https://unified.propharmausa.com/api/freshness.json — whether any of the above is old enough to
distrust.freshness.json before acting on
anything, exactly as a person should read the banner.The site sits behind Microsoft Entra SSO on Azure Static Web Apps, restricted to named principals. A machine client needs an authenticated session; there is no anonymous read and no API key. If you are an agent running as a person, use their session. If you need service access, ask for a dedicated principal rather than sharing a human's.