The evidence captures the new regression scripts, formal-first query
narrowing, and the fresh verification trail used to support the next
round of fallback removal.
Constraint: Evidence must match commands and outcomes actually executed in backend worktree
Rejected: Fold this into an older summary doc | would hide the stepwise proof for fallback reduction
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep appending fresh verification evidence here until the remaining legacy fallback is either removed or explicitly retained
Tested: Evidence cross-checked against backend worktree commands, regression logs, and targeted test outputs
Not-tested: No doc export/render pipeline executed
This adds an operations-oriented checklist for REV004 covering environment
readiness, rollout order, smoke validation, rollback posture, and fast-path
triage hints for on-call and release engineers.
Constraint: Checklist must stay concise and executable for frontline release use
Rejected: Bury release steps across evidence and design docs only | too slow for runtime operations
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Update this checklist only when release-critical reality changes, not for every minor doc change
Tested: Cross-checked against final summary, go-live checklist, and current evidence set
Not-tested: No document export/render pipeline executed for this checklist
This adds a concise operator-facing checklist for REV004 covering current
mainline SHAs, environment prerequisites, smoke order, remaining cautions,
and the evidence index used for release and joint-debug work.
Constraint: Checklist must reflect verified mainline reality and remain short enough for frontline use
Rejected: Keep launch guidance scattered across evidence files only | too slow for release/joint-debug coordination
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Update this checklist only when mainline reality materially changes or a new blocker emerges
Tested: Cross-checked against current mainline summary, truth matrix, and evidence set
Not-tested: No document export/render pipeline executed for this checklist
This replaces the self-expiring docs latest-merge SHA in the final REV004
summary with a stable wording that points readers to current mainline content,
preventing the summary from going stale immediately after each merge.
Constraint: The top-level handoff summary must remain self-consistent after it is merged into main
Rejected: Keep chasing a concrete docs latest-merge SHA in follow-up patches | creates infinite self-expiring metadata churn
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Prefer stable branch-relative wording over self-referential merge SHAs in evergreen handoff docs
Tested: Reviewed rendered markdown diff for semantic equivalence plus improved stability
Not-tested: No document export/render pipeline executed for this wording-only change
This updates the REDINK_RECORD evidence with a successful live execute smoke
run after bringing up business-bank-server locally, and refreshes the final
mainline delivery summary to remove the stale blocker wording.
Constraint: Docs must reflect the newly verified live redink execute closure, not the earlier blocked state
Rejected: Leave the old blocker note in place | factually stale after the successful execute rerun
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: If redink live execute is revalidated again later, append a dated subsection instead of rewriting this successful closure note
Tested: Cross-checked against successful live execute smoke, DB readback, and cleanup results on 2026-04-17
Not-tested: No document export/render pipeline executed for this docs-only refresh
This updates the docs-main latest merge anchor inside the REV004 final mainline
summary so the document remains self-consistent after its own merge.
Constraint: The final summary must reference the current docs mainline state, not the pre-summary merge anchor
Rejected: Leave the older docs merge SHA in place | would make the summary internally stale immediately after merge
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Refresh top-level summary anchors whenever the summary itself is merged into main
Tested: Cross-checked against origin/main latest merge ab4eec0...
Not-tested: No document export/render pipeline executed for this one-line metadata refresh
This adds a one-page summary of the current REV004 mainline delivery state,
including merged backend/docs commits, object truth status, evidence anchors,
and remaining external blockers.
Constraint: Summary must reflect verified mainline truth only, not feature-branch intent
Rejected: Scatter this information across multiple historical evidence files | too costly for frontline consumers to reconstruct delivery status
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep this summary as the top-level operator handoff page and refresh only after meaningful mainline state changes
Tested: Cross-checked against origin/develop and origin/main latest merge commits plus existing evidence set
Not-tested: No document export/render pipeline executed for this summary
This records compile/test outputs plus fresh jar smoke proving that
prestorage-process and prestorage-attachments now read formal data first while
retaining fallback behavior.
Constraint: Evidence must stay aligned with the prestorage query-only strict formal-first batch and its application-dev smoke run
Rejected: Fold this note into older prestorage evidence files | reduces traceability for the specific process/attachments closure batch
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Append future prestorage query verification as follow-up evidence rather than overwriting this closure proof
Tested: Cross-checked against backend compile/test output and fresh smoke results on 2026-04-17
Not-tested: No document export/render pipeline executed for this evidence-only commit
This updates the current-truth matrix to reflect that REDINK_RECORD is now
an independent formal-table object on the mainline, and refreshes the merge
anchors plus blocker note accordingly.
Constraint: Matrix must match verified mainline truth after PR #79 and docs redink evidence merge
Rejected: Leave REDINK_RECORD as not independent in the matrix | now factually incorrect after mainline merge
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Refresh this matrix only after verified mainline merges so it remains an operator-grade truth artifact
Tested: Cross-checked against origin/develop merge d8596af... and origin/main merge 57763c6...
Not-tested: No document export/render pipeline executed for this matrix refresh
This records the application-dev DDL apply/replay, compile and targeted
test evidence, fresh jar query smoke, cleanup proof, and the precise external
blocker observed when attempting live REDINK_RECORD execute smoke.
Constraint: Evidence must reflect the actually verified REDINK_RECORD formal-table scope and explicitly separate completed verification from blocked live-execute proof
Rejected: Present live execute smoke as fully complete | inaccurate because business-bank-server was unavailable
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: When business-bank-server becomes available, append a dated live-execute follow-up section instead of overwriting this baseline evidence
Tested: Cross-checked against backend compile/test outputs, psql results, query smoke, and application log exception trace on 2026-04-17
Not-tested: No document export/render pipeline executed for this evidence-only commit
This updates the REV004 current-truth matrix to reflect that PRICE_DIFF_ADJUST
is now an independent formal-table object on the mainline, and refreshes the
merge/evidence anchors accordingly.
Constraint: Matrix must match current backend develop and docs main truth after PR #78 / docs evidence merge
Rejected: Keep the earlier matrix unchanged | it now incorrectly reports PRICE_DIFF_ADJUST as not independent
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Continue refreshing this matrix only after verified mainline merges, not from feature-branch intent alone
Tested: Cross-checked against origin/develop merge commit 1964c782... and origin/main merge commit c741164...
Not-tested: No document export/render pipeline executed for this matrix refresh
This records the application-dev DDL apply/replay, compile and targeted
test evidence, fresh-jar HTTP smoke, DB writeback checks, and cleanup proof
for the PRICE_DIFF_ADJUST formal-table batch.
Constraint: Evidence must stay aligned with the backend price-diff formal-table implementation and application-dev verification run on 2026-04-17
Rejected: Fold this evidence into unrelated doc drafts in the main docs worktree | would mix scopes and weaken traceability
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Append future price-diff reruns as dated subsections or follow-up evidence files instead of overwriting this baseline
Tested: Verified against backend compile/test output and direct psql + fresh-jar smoke results on 2026-04-17
Not-tested: No doc export/render pipeline executed for this evidence-only commit
This updates the REV004 writtenoff evidence with a fresh post-patch smoke run
covering submit, detail/page query, approve/reject, DB writeback, cleanup,
and runtime shutdown on port 48094.
Constraint: Evidence must reflect the final backend patch set actually pushed for PR #77
Rejected: Leave the earlier pre-patch smoke as the last evidence point | weaker proof for the final transaction/fail-fast tightening
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: If writtenoff smoke is rerun again, append a new dated subsection instead of overwriting this verification trail
Tested: Fresh jar smoke on 48094 plus direct psql cleanup/readback verification on 2026-04-17
Not-tested: No separate document export/render pipeline run for this evidence refresh
This evidence snapshot records the application-dev target database, DDL apply
and replay status, targeted verification commands, fresh-jar smoke outcomes,
and cleanup proof for the writtenoff formal-table batch.
Constraint: Evidence must remain aligned with the backend writtenoff formal-table batch and the actual application-dev database
Rejected: Fold evidence into unrelated doc updates already present in this branch | would mix scopes and obscure traceability
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Update this evidence if later writtenoff smoke is rerun on a different port or with different seeded IDs
Tested: Reviewed against backend compile/test results and direct psql cleanup verification on 2026-04-17
Not-tested: No additional doc rendering/export pipeline run for this evidence-only change
This adds the rollout evidence for REV004 bad-debt formal-table work,
covering DDL application, targeted verification, fresh-jar HTTP smoke,
and cleanup proof on the application-dev database.
Constraint: Evidence scope stays limited to bad-debt formal-table rollout and should not absorb unrelated REV004 docs backlog
Rejected: Wait to document until writtenoff/price-diff formalization lands | delays a completed bad-debt evidence slice
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: If later bad-debt semantics expand beyond payState write-back, append a new evidence note instead of rewriting this rollout record
Tested: Evidence content cross-checked against compile/test/DDL/HTTP smoke outputs captured in this session
Not-tested: No doc export/render verification performed
This documents the prestorage formal-table rollout status, including test DB
DDL application, HTTP smoke evidence, cleanup proof, and the updated
formal-table status matrix for REV004.
Constraint: Documentation must stay scoped to prestorage formal-table evidence and status updates only
Rejected: Fold unrelated REV004 evidence backlog into this commit | would dilute the deliverable and review scope
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: When process/attachments become strict formal-first, update the status matrix and evidence instead of replacing this rollout record
Tested: Evidence file cross-checked against backend compile/test/DB/HTTP smoke outputs
Not-tested: No independent docs rendering/export verification performed
This documents that the formal-table deploy SQL has been applied to the
application-dev database, that the previous real-db blocker is resolved,
and that the date-mode late-fee reduce canary now passes against the
test database.
Constraint: Evidence must match the verified dev database and latest canary output
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: Keep evidence updates aligned with the exact environment and command outputs used for verification
Tested: Evidence cross-checked against psql deployment output and fresh canary pass
Not-tested: No additional business flow beyond the documented late-fee date-mode canary
Document the minimal dictionary additions and field-binding rules needed to
let REV004 front-end queries and dropdowns use system-managed object and
status semantics while continuing to reuse the existing legacy reason/type
dictionaries.
Constraint: Existing dictionary taxonomy must remain stable for historical pages
Constraint: REV004 needs explicit object/status dictionaries plus a redink reason set for FE binding
Rejected: Rename legacy dictionaries into a new unified taxonomy | too broad for this delivery and risks breaking existing pages
Rejected: Keep object/status values as code-only enums | insufficient for frontend dictionary binding
Confidence: high
Scope-risk: narrow
Reversibility: clean
Directive: `payment_reason` is only a transitional binding for `WRITTENOFF_ADJUST`; introduce a dedicated writtenoff reason dictionary only when that object stabilizes long-term
Tested: Applied `sql/rev004_account_adjust_dict_seed.sql` to sw_system test DB and verified inserted dict types/data
Not-tested: Frontend page consumption against the new dictionary bindings
Add the Nuoshuitong documentation outputs to the project progress ledger so the documentation lane has a traceable handoff point for review and follow-on implementation work.
Constraint: Keep this update limited to governance tracking for the newly added Nuoshuitong design pack
Confidence: high
Scope-risk: narrow
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Add a Nuoshuitong documentation set covering the implementation checklist, split interface spec notes, normalized enums, and database/DDL guidance so follow-on integration can start from a consistent source of truth.
Constraint: Current phase is documentation-first and must not require backend/frontend code changes
Rejected: Merge the material directly into formal master design docs now | would broaden scope before the integration model and dialect strategy are reviewed
Directive: Treat these guides as integration-layer inputs until they are reconciled with formal technical design masters
Confidence: high
Scope-risk: moderate
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>