@caddis/cli 0.4.21 → 0.4.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -11,23 +11,32 @@ Last Updated: 2026-09-19T14:05:00Z
|
|
|
11
11
|
Last Model Used: gemini-3.8-flash
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
+
<!--
|
|
15
|
+
GOLD STANDARD for the hld skill. Match its structure, heading numbering, diagram types and
|
|
16
|
+
styling, ID schemes (SYS_nn, INT_nn, REQ-nn) and table columns exactly.
|
|
17
|
+
ACCOUNTS_PER_RUN, BATCH_HOST, PDF_TOTAL and SECONDARY_SCHEDULES stand in for real, measured
|
|
18
|
+
figures and names in the source HLD; they are withheld here only. A generated HLD must state
|
|
19
|
+
the REAL number or name in every such place - never a placeholder, never a vague 'many'.
|
|
20
|
+
Exact figures are what make the SLA and parity claims checkable.
|
|
21
|
+
-->
|
|
22
|
+
|
|
14
23
|
# High-Level Architecture (HLA): BriteBill Replacement Platform
|
|
15
24
|
|
|
16
25
|
## 1. Executive Summary
|
|
17
26
|
|
|
18
27
|
### 1.1 Initiative Goal
|
|
19
|
-
The BriteBill Replacement Platform replaces the proprietary third-party BriteBill invoice composition system used for
|
|
28
|
+
The BriteBill Replacement Platform replaces the proprietary third-party BriteBill invoice composition system used for fixed-line customer billing.
|
|
20
29
|
|
|
21
30
|
This platform achieves the following primary business goals:
|
|
22
31
|
- It eliminates third-party licensing costs, proprietary dependencies, and vendor software lock-in.
|
|
23
32
|
- It provides a locally controlled, deterministic, and auditable composition engine.
|
|
24
33
|
- It delivers high-throughput batch generation for four recurring monthly billing cycles: `BR-07`, `BR-14`, `BR-21`, and `BR-28`.
|
|
25
|
-
- It processes approximately
|
|
34
|
+
- It processes approximately `<ACCOUNTS_PER_RUN>` customer accounts per billing run within a four-hour service level agreement (SLA) window.
|
|
26
35
|
- It simultaneously produces four synchronized output channels from a single canonical document model: Customer PDF, Print Spool AFP, Mailroom Index JRN, and Digital Portal XML.
|
|
27
36
|
- It guarantees full financial integrity through mandatory, fail-closed automated reconciliation gates.
|
|
28
37
|
|
|
29
38
|
### 1.2 Solution Architecture Summary
|
|
30
|
-
The solution operates as a standalone Python-based batch processing engine deployed on host
|
|
39
|
+
The solution operates as a standalone Python-based batch processing engine deployed on the dedicated batch host `<BATCH_HOST>`. It processes raw Kenan billing stream files (`.EN`), executes financial reconciliation, and renders customer-facing outputs. The engine isolates every run in an immutable staging directory, verifies cryptographic checksums, and publishes outputs atomically only after all financial and population gates pass.
|
|
31
40
|
|
|
32
41
|
### 1.3 Business Value & Operational Outcomes
|
|
33
42
|
- **Cost Reduction**: Complete decommissioning of third-party composition licenses.
|
|
@@ -40,7 +49,7 @@ The solution operates as a standalone Python-based batch processing engine deplo
|
|
|
40
49
|
## 2. Project Context and Scope
|
|
41
50
|
|
|
42
51
|
### 2.1 Background
|
|
43
|
-
|
|
52
|
+
Fixed-line customer billing produces monthly invoices across four staggered billing cycles. The legacy composition workflow relied on an external vendor system (BriteBill). This introduced high annual licensing costs and operational delays whenever regulatory or template changes occurred. The BriteBill Replacement Platform moves invoice composition entirely onto internal infrastructure using high-performance open standards.
|
|
44
53
|
|
|
45
54
|
### 2.2 Scope
|
|
46
55
|
|
|
@@ -65,7 +74,7 @@ Virgin Media Ireland fixed customer billing produces monthly invoices across fou
|
|
|
65
74
|
|
|
66
75
|
### 2.3 Architecture Boundaries and Key Assumptions
|
|
67
76
|
- **Deterministic Processing**: All calculations and document renderings produce identical, byte-reproducible outputs for identical inputs.
|
|
68
|
-
- **Local Filesystem Isolation**: Network-isolated execution on
|
|
77
|
+
- **Local Filesystem Isolation**: Network-isolated execution on `<BATCH_HOST>` with zero runtime external API or HTTP dependencies.
|
|
69
78
|
- **Fail-Closed Operations**: Any financial discrepancy, unmapped record, or population count mismatch immediately halts the run and prevents output release.
|
|
70
79
|
|
|
71
80
|
---
|
|
@@ -168,7 +177,7 @@ sequenceDiagram
|
|
|
168
177
|
Render->>Storage: Write outputs into staging directories
|
|
169
178
|
|
|
170
179
|
Note over Orch,Targets: Stage 5: Population Audit & Atomic Release
|
|
171
|
-
Orch->>Audit: Verify population counts (PDF == XML == AFP ==
|
|
180
|
+
Orch->>Audit: Verify population counts (PDF == XML == AFP == ACCOUNTS_PER_RUN)
|
|
172
181
|
Orch->>Audit: Seal freeze-manifest.json and compute final SHA-256 digests
|
|
173
182
|
Orch->>Audit: Transition to RunLifecycle::READY_FOR_RELEASE
|
|
174
183
|
Orch->>Targets: Copy verified artifacts to delivery endpoints
|
|
@@ -195,7 +204,7 @@ flowchart TD
|
|
|
195
204
|
SYS_01["SYS_01: Kenan Billing Engine<br/>Rating & Billing Lifecycle"]:::existingStyle
|
|
196
205
|
end
|
|
197
206
|
|
|
198
|
-
subgraph CorePlatform["BriteBill Replacement Platform (
|
|
207
|
+
subgraph CorePlatform["BriteBill Replacement Platform (BATCH_HOST)"]
|
|
199
208
|
direction LR
|
|
200
209
|
SYS_02["SYS_02: BriteBill Replacement Engine<br/>Ingestion, Mapping, Reconcile & Render"]:::newStyle
|
|
201
210
|
SYS_06["SYS_06: Operations Control Centre<br/>Audit Journal, Sealed Manifest & CLI"]:::newStyle
|
|
@@ -204,7 +213,7 @@ flowchart TD
|
|
|
204
213
|
subgraph Downstream["Downstream Distribution Channels"]
|
|
205
214
|
direction LR
|
|
206
215
|
SYS_03["SYS_03: Print House & Mailroom<br/>Physical Print & Insertion Spool"]:::existingStyle
|
|
207
|
-
SYS_04["SYS_04:
|
|
216
|
+
SYS_04["SYS_04: Customer Self-Service Portal<br/>Online eBilling XML Viewer"]:::existingStyle
|
|
208
217
|
SYS_05["SYS_05: Enterprise Document Archive<br/>Customer PDF Storage & Email"]:::existingStyle
|
|
209
218
|
end
|
|
210
219
|
|
|
@@ -225,7 +234,7 @@ The table below catalogs all systems and platforms within the solution boundary:
|
|
|
225
234
|
| `SYS_01` | Kenan Billing Engine (Amdocs) | Billing / Rating | Upstream rating engine producing periodic `.EN` billing stream files. | No |
|
|
226
235
|
| `SYS_02` | BriteBill Replacement Composition Engine | Batch Engine | Core batch orchestration, mapping, financial reconciliation, and multi-channel rendering engine. | Yes |
|
|
227
236
|
| `SYS_03` | External Print House & Mailroom Spool | Print Production | Commercial printing facility ingesting MO:DCA AFP spools and JRN insertion records. | No |
|
|
228
|
-
| `SYS_04` |
|
|
237
|
+
| `SYS_04` | Customer Digital Self-Service Portal | Web Portal | Customer billing portal ingesting structured eBilling XML for web presentation. | No |
|
|
229
238
|
| `SYS_05` | Enterprise Document Archive & Dispatcher | Document Repository | Long-term customer communications repository and email dispatcher ingesting certified PDF invoices. | No |
|
|
230
239
|
| `SYS_06` | Operations Control Centre & Audit Journal | Ops & Governance | Operational monitoring CLI, telemetry aggregator, and sealed run manifest validator. | Yes |
|
|
231
240
|
|
|
@@ -238,7 +247,7 @@ The core processing component implemented in Python. It executes local staging,
|
|
|
238
247
|
#### 4.2.3 SYS_03: External Print House & Mailroom Spool
|
|
239
248
|
Receives binary MO:DCA AFP print spools and JRN insertion index files for postal sorting, physical paper printing, envelope inserting, and mail dispatch.
|
|
240
249
|
|
|
241
|
-
#### 4.2.4 SYS_04:
|
|
250
|
+
#### 4.2.4 SYS_04: Customer Digital Self-Service Portal
|
|
242
251
|
The customer-facing digital web application that parses structured XML invoice streams to present interactive online bill breakdowns.
|
|
243
252
|
|
|
244
253
|
#### 4.2.5 SYS_05: Enterprise Document Archive & Dispatcher
|
|
@@ -273,7 +282,7 @@ Delivers ASCII index files specifying sheet counts, account identifiers, envelop
|
|
|
273
282
|
Transfers schema-validated XML documents containing invoice data for online customer self-service viewing.
|
|
274
283
|
|
|
275
284
|
#### 4.3.5 INT_05: Deterministic PDF Invoices
|
|
276
|
-
Transfers byte-deterministic PDF documents containing vector
|
|
285
|
+
Transfers byte-deterministic PDF documents containing vector brand artwork, billing transaction tables, and Giro payment slips.
|
|
277
286
|
|
|
278
287
|
#### 4.3.6 INT_06: Telemetry & Sealed Manifest
|
|
279
288
|
Emits structured JSONL telemetry and a cryptographic `release_manifest.json` sealing file counts, execution parameters, and SHA-256 hashes.
|
|
@@ -295,7 +304,7 @@ The platform provides administrative command-line surfaces for operations and sc
|
|
|
295
304
|
## 5. High-Level Data and Storage Architecture
|
|
296
305
|
|
|
297
306
|
### 5.1 Host & Working Storage Topology
|
|
298
|
-
The engine executes entirely within a dedicated local filesystem hierarchy on host
|
|
307
|
+
The engine executes entirely within a dedicated local filesystem hierarchy on the dedicated batch host `<BATCH_HOST>`. Every batch run is isolated by unique run and attempt identifiers:
|
|
299
308
|
|
|
300
309
|
```
|
|
301
310
|
<working_root>/<run_id>/<attempt_id>/
|
|
@@ -356,8 +365,8 @@ classDiagram
|
|
|
356
365
|
|
|
357
366
|
### 5.3 Multi-Channel Output Volume & Specifications
|
|
358
367
|
Production metrics established during candidate certification (ATT-006 baseline):
|
|
359
|
-
- **PDF Documents**:
|
|
360
|
-
- **XML Documents**:
|
|
368
|
+
- **PDF Documents**: `<PDF_TOTAL>` total PDF files (`<ACCOUNTS_PER_RUN>` primary invoices + `<SECONDARY_SCHEDULES>` secondary itemized schedules).
|
|
369
|
+
- **XML Documents**: `<ACCOUNTS_PER_RUN>` structured customer eBilling files.
|
|
361
370
|
- **AFP Spools**: 32 consolidated MO:DCA print files matching the 32 upstream Kenan input batches.
|
|
362
371
|
- **JRN Journals**: 32 postal index files containing 100% field parity with postal insertion machinery.
|
|
363
372
|
|
|
@@ -373,7 +382,7 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
373
382
|
|
|
374
383
|
### 6.2 Zero Runtime Network Access
|
|
375
384
|
- No module within `ingestion/`, `mapping/`, `templating/`, or `rendering/` initiates external HTTP or network requests during generation.
|
|
376
|
-
- All fonts, styling assets, and configuration templates reside locally on disk on
|
|
385
|
+
- All fonts, styling assets, and configuration templates reside locally on disk on `<BATCH_HOST>`.
|
|
377
386
|
|
|
378
387
|
### 6.3 Working Storage Path Isolation & Traversal Defense
|
|
379
388
|
- File discovery resolves candidate paths and rejects any file whose resolved parent directory escapes the staging root.
|
|
@@ -395,7 +404,7 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
395
404
|
| `REQ-01` | Ingest Kenan `.EN` tagged-record streams | `SYS_02` (`ingestion/en_reader.py`) | Automated parser unit tests and zero-failure batch validation. |
|
|
396
405
|
| `REQ-02` | Strong financial reconciliation | `SYS_02` (`reconciliation/checks.py`) | Full-population balance reconciliation gate (`reconcile()`). |
|
|
397
406
|
| `REQ-03` | Byte-deterministic PDF rendering | `SYS_02` (`rendering/mupdf_renderer.py`) | SHA-256 byte-identity verification against certified baseline. |
|
|
398
|
-
| `REQ-04` | Multi-channel parity (PDF/XML/AFP/JRN) | `SYS_02` (`mapping/*`, `rendering/*`) | Cross-output population count verification (
|
|
407
|
+
| `REQ-04` | Multi-channel parity (PDF/XML/AFP/JRN) | `SYS_02` (`mapping/*`, `rendering/*`) | Cross-output population count verification (`<ACCOUNTS_PER_RUN>` exact). |
|
|
399
408
|
| `REQ-05` | Atomic release & staging isolation | `SYS_02` (`batch/orchestrator.py`) | Zero output visibility before `READY_FOR_RELEASE` and marker written last. |
|
|
400
409
|
| `REQ-06` | Auditability & run sealing | `SYS_06` (`audit/manifest.py`) | Cryptographic `release_manifest.json` generation. |
|
|
401
410
|
|
|
@@ -414,6 +423,6 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
414
423
|
| Fail-Closed | An architectural principle where any detected inconsistency aborts processing before releasing outputs. |
|
|
415
424
|
|
|
416
425
|
### 8.2 Reference Documents
|
|
417
|
-
-
|
|
418
|
-
-
|
|
419
|
-
-
|
|
426
|
+
- `britebill-replacement/README.md`: System operational runbook and architecture overview.
|
|
427
|
+
- `britebill-replacement/docs/SECURITY_AND_PRIVACY.md`: Security controls and privacy safeguards.
|
|
428
|
+
- `britebill-replacement/docs/PRODUCTION_CANDIDATE_ATT006.md`: Candidate certification report and benchmark results.
|
package/bundles/manifest.json
CHANGED
package/package.json
CHANGED