Decision Log
Architecture Decision Records (ADRs) for the ESG Screening system. Each ADR records one standing design decision: context, what was decided, alternatives, consequences.
The canonical files live in the main repo at docs/adr/. This site
renders them for navigability.
For ADR conventions, see the ADR README in the main repo.
ADR index
| # | Title | Status | Date | Summary |
|---|---|---|---|---|
| 0001 | Coverage-weighted scoring | Accepted | 2026-05-19 | Headline scores computed only over rules with live signals; base values retained for audit. |
| 0002 | UI architecture: server-rendered read interface | Accepted | 2026-05-19 | Node + Express + EJS/Handlebars + plain CSS at esg-screen.org. No SPA, no build step. |
| 0003 | Source register and Methodology page | Accepted | 2026-05-19 | /methodology page generated from DB. Source status, rule catalogue, scoring explainer. |
| 0004 | RAG thresholds for score and coverage | Accepted | 2026-05-19 | Score: <40 / 40–69 / ≥70. Coverage: <25% / 25–59% / ≥60%. Dustier-than-pure palette. |
| 0005 | Rule grouping in the institution detail UI | Accepted | 2026-05-19 | UI-only thematic grouping ("fossil fuels," "weapons," etc.) on top of formal pillar/sub-criterion hierarchy. |
| 0006 | Ops site and canonical hierarchy | Proposed | 2026-05-19 | This ops site as the rendered standing-reference surface. Pending commit. |
When to write a new ADR
Per the ADR README, write one when a decision:
- affects how the system is built, displayed, or scored, AND
- is non-trivial to reverse, AND
- a future contributor (including future-you) would benefit from understanding the reasoning.
Examples that should be ADRs:
- Scoring methodology choices
- UI architecture
- Source-register conventions
- Schema decisions of structural importance
- Authentication model
- Framework structure
Examples that should not be ADRs:
- Bug fixes
- Individual scraper implementations (those follow the add-a-scraper runbook)
- Copy edits
- Dependency upgrades
ADR conventions
- Numbering: sequential, 4-digit, zero-padded. Never reused.
- Filename:
NNNN-kebab-case-slug.md - Status values:
Proposed·Accepted·Superseded by NNNN·Deprecated - Length: aim for one page, max two. If longer, the decision is probably two decisions — split.
- Tone: plain language. Audience is a future engineer, not a methodology committee.
ADR process
- Decisions surfaced in chat sessions are captured as ADR drafts in
that session's outputs (
/mnt/user-data/outputs/). - The session-end Slack handoff names the new ADRs.
- The next CC-on-VM session commits the ADRs to
docs/adr/as its first action of the cycle. - Code that implements an ADR should reference the ADR number in a comment or PR description.
- When an ADR is superseded, both files are updated in the same
commit: the old one's status changes to
Superseded by NNNN, the new one references it underSupersedes.
Cross-references
| ADR | Implemented by | Referenced by |
|---|---|---|
| 0001 | Migration 011, scoring engine modules | 0002 (hero panel design), 0004 (coverage colour) |
| 0002 | src/ui/, Express routes |
0003 (Methodology page route), 0004 (palette), 0005 (rule table) |
| 0003 | Migration 012, /methodology route |
0002 (page slot), 0001 (scoring explainer content) |
| 0004 | src/config/rag.js, base stylesheet |
0002 (where colour is applied), 0001 (coverage band) |
| 0005 | src/config/rule-themes.js, detail page template |
0002 (rule evaluation section) |
| 0006 | This site, Cloudflare Pages deployment | All of the above (rendered surface) |