Skip to content

[#901] General: Introduce architecture decision records (ADRs) for major changes - #922

Merged
Junirezz merged 1 commit into
Junirezz:mainfrom
broda-spendy:fix/901-general-introduce-architecture-decision-records-adrs-for-major-changes
Jul 29, 2026
Merged

[#901] General: Introduce architecture decision records (ADRs) for major changes#922
Junirezz merged 1 commit into
Junirezz:mainfrom
broda-spendy:fix/901-general-introduce-architecture-decision-records-adrs-for-major-changes

Conversation

@broda-spendy

@broda-spendy broda-spendy commented Jul 25, 2026

Copy link
Copy Markdown
Contributor

Summary

Fully implements the ADR process for YieldVault RWA (Issue #901), including 4 foundational records documenting major decisions already in the codebase, a CI enforcement script, and the README index.

What was already in place

  • docs/architecture-decision-records/README.md — process documentation
  • docs/architecture-decision-records/template.md — blank template
  • No actual ADR files; empty index table; no CI enforcement

What this PR adds

4 foundational ADRs

ADR Title Status
ADR-001 Use Prisma as the Database ORM Accepted
ADR-002 Write-Ahead Audit Log for Admin Configuration Changes Accepted
ADR-003 API Contract Schema Snapshots for Backward-Compatibility Accepted
ADR-004 Multi-Tenant Vault Isolation via Soroban Smart Contracts Accepted

Each ADR contains: Date, Status, Context, Decision, Rationale, Alternatives Considered (with pros/cons), Consequences, and Related Links to the relevant code.

docs/architecture-decision-records/README.md — index updated

The index table now lists all 4 ADRs with links, dates, and statuses.

backend/scripts/check-adrs.js (new)

CI validation script with 5 enforced rules:

  1. Naming convention: ADR-NNN-<slug>.md
  2. Unique ADR numbers
  3. Required front-matter: **Date:** and **Status:**
  4. At least one level-2 heading per file
  5. Every ADR listed in the README index

backend/package.json

  • adrs:check standalone script
  • ci:governance extended: ... && node scripts/check-adrs.js

CI check results

ADR check passed. 4 ADR(s) validated.

Backend test suite: 33 failed / 4 failed — identical to main (zero regressions).

Acceptance criteria

  • Implementation completed
  • CI enforcement added (check-adrs.js)
  • Documentation updated (4 ADRs + README index)
  • No regressions in existing CI checks

Closes #901

@drips-wave

drips-wave Bot commented Jul 25, 2026

Copy link
Copy Markdown

@broda-spendy Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits.

You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀

Learn more about application limits

@broda-spendy
broda-spendy force-pushed the fix/901-general-introduce-architecture-decision-records-adrs-for-major-changes branch 2 times, most recently from 61ea507 to a245112 Compare July 27, 2026 10:01
…forcement (Junirezz#901)

Implements the ADR process for YieldVault RWA — Issue Junirezz#901.

## What was already in place
- docs/architecture-decision-records/README.md  (process docs)
- docs/architecture-decision-records/template.md (blank template)
- No actual ADR files; index table was empty; no CI enforcement

## What this PR adds

### 4 foundational ADRs
| ADR | Title |
|-----|-------|
| ADR-001 | Use Prisma as the Database ORM |
| ADR-002 | Write-Ahead Audit Log for Admin Configuration Changes |
| ADR-003 | API Contract Schema Snapshots for Backward-Compatibility |
| ADR-004 | Multi-Tenant Vault Isolation via Soroban Smart Contracts |

Each ADR contains: Date, Status, Context, Decision, Rationale,
Alternatives Considered (with pros/cons), Consequences, and Related Links.

### README.md index updated
The index table now lists all 4 ADRs with links, dates, and statuses.

### CI enforcement script (backend/scripts/check-adrs.js)
Validates all ADRs on every CI run:
  1. Naming convention: ADR-NNN-<slug>.md (lowercase hyphens)
  2. Unique ADR numbers (no duplicates)
  3. Required front-matter fields: **Date:** and **Status:**
  4. At least one level-2 (##) heading per file
  5. Every ADR file is listed in the README.md index table

Exits 0 on success, 1 with descriptive errors on any violation.

### package.json
- adrs:check script added (standalone)
- ci:governance extended: ...&& node scripts/check-adrs.js

## Test results
- ADR lint: 4/4 ADRs pass all 5 checks ✅
- Backend test suite: 33 failed / 4 failed (identical to main, zero regressions) ✅

Closes Junirezz#901
@broda-spendy
broda-spendy force-pushed the fix/901-general-introduce-architecture-decision-records-adrs-for-major-changes branch from a245112 to bd8aa4b Compare July 27, 2026 10:03
@Junirezz
Junirezz merged commit a5c4ae1 into Junirezz:main Jul 29, 2026
11 of 14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

General: Introduce architecture decision records (ADRs) for major changes

2 participants