@caddis/cli 0.4.20 → 0.4.21
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
type: design
|
|
3
3
|
status: current
|
|
4
|
-
feature:
|
|
4
|
+
feature: britebill-replacement
|
|
5
5
|
creation-agent: caddis
|
|
6
6
|
Original Author: Antigravity
|
|
7
7
|
Creation Date: 2026-09-19T13:35:00Z
|
|
@@ -11,32 +11,23 @@ Last Updated: 2026-09-19T14:05:00Z
|
|
|
11
11
|
Last Model Used: gemini-3.8-flash
|
|
12
12
|
---
|
|
13
13
|
|
|
14
|
-
|
|
15
|
-
GOLD STANDARD REFERENCE for the hld skill.
|
|
16
|
-
This is a real HLD whose organisation-specific facts (company, vendors, hosts, paths, customer
|
|
17
|
-
volumes) were replaced with neutral ones so it can ship publicly. Everything the skill copies
|
|
18
|
-
from it is unchanged: the 8-section structure, heading numbering, the diagram types and their
|
|
19
|
-
styling, the ID schemes (SYS_nn, INT_nn, REQ-nn), and every table's columns. Match THAT, not
|
|
20
|
-
the domain.
|
|
21
|
-
-->
|
|
22
|
-
|
|
23
|
-
# High-Level Architecture (HLA): Invoice Composition Replacement Platform
|
|
14
|
+
# High-Level Architecture (HLA): BriteBill Replacement Platform
|
|
24
15
|
|
|
25
16
|
## 1. Executive Summary
|
|
26
17
|
|
|
27
18
|
### 1.1 Initiative Goal
|
|
28
|
-
The
|
|
19
|
+
The BriteBill Replacement Platform replaces the proprietary third-party BriteBill invoice composition system used for Virgin Media Ireland fixed billing.
|
|
29
20
|
|
|
30
21
|
This platform achieves the following primary business goals:
|
|
31
22
|
- It eliminates third-party licensing costs, proprietary dependencies, and vendor software lock-in.
|
|
32
23
|
- It provides a locally controlled, deterministic, and auditable composition engine.
|
|
33
24
|
- It delivers high-throughput batch generation for four recurring monthly billing cycles: `BR-07`, `BR-14`, `BR-21`, and `BR-28`.
|
|
34
|
-
- It processes approximately
|
|
25
|
+
- It processes approximately 124,000 customer accounts per billing run within a four-hour service level agreement (SLA) window.
|
|
35
26
|
- 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.
|
|
36
27
|
- It guarantees full financial integrity through mandatory, fail-closed automated reconciliation gates.
|
|
37
28
|
|
|
38
29
|
### 1.2 Solution Architecture Summary
|
|
39
|
-
The solution operates as a standalone Python-based batch processing engine deployed on host `
|
|
30
|
+
The solution operates as a standalone Python-based batch processing engine deployed on host `iegbcoppoc02`. 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.
|
|
40
31
|
|
|
41
32
|
### 1.3 Business Value & Operational Outcomes
|
|
42
33
|
- **Cost Reduction**: Complete decommissioning of third-party composition licenses.
|
|
@@ -49,12 +40,12 @@ The solution operates as a standalone Python-based batch processing engine deplo
|
|
|
49
40
|
## 2. Project Context and Scope
|
|
50
41
|
|
|
51
42
|
### 2.1 Background
|
|
52
|
-
|
|
43
|
+
Virgin Media Ireland fixed 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.
|
|
53
44
|
|
|
54
45
|
### 2.2 Scope
|
|
55
46
|
|
|
56
47
|
#### 2.2.1 In Scope
|
|
57
|
-
- Ingestion of raw `.EN` tagged-record stream files generated by the upstream billing engine.
|
|
48
|
+
- Ingestion of raw `.EN` tagged-record stream files generated by the upstream Kenan billing engine.
|
|
58
49
|
- Syntactic and structural validation of incoming batch streams with marker-file arrival detection.
|
|
59
50
|
- Transformation of raw stream records into an immutable, strongly typed canonical domain model.
|
|
60
51
|
- Full-population financial reconciliation covering invoice totals, line item aggregates, tax breakdowns, and balance brought forward.
|
|
@@ -67,14 +58,14 @@ The operator's fixed customer billing produces monthly invoices across four stag
|
|
|
67
58
|
- Atomic publication to destination endpoints with isolated staging and late-arriving release markers.
|
|
68
59
|
|
|
69
60
|
#### 2.2.2 Out of Scope
|
|
70
|
-
- Upstream rating, charging, or billing account balance calculation performed by
|
|
61
|
+
- Upstream rating, charging, or billing account balance calculation performed by Kenan.
|
|
71
62
|
- Direct management or control of physical print-house insertion machinery and postal sorters.
|
|
72
63
|
- Real-time customer web serving; online portals ingest published outputs asynchronously.
|
|
73
64
|
- Probabilistic, generative, or Large Language Model (LLM) components in the financial generation path.
|
|
74
65
|
|
|
75
66
|
### 2.3 Architecture Boundaries and Key Assumptions
|
|
76
67
|
- **Deterministic Processing**: All calculations and document renderings produce identical, byte-reproducible outputs for identical inputs.
|
|
77
|
-
- **Local Filesystem Isolation**: Network-isolated execution on `
|
|
68
|
+
- **Local Filesystem Isolation**: Network-isolated execution on `iegbcoppoc02` with zero runtime external API or HTTP dependencies.
|
|
78
69
|
- **Fail-Closed Operations**: Any financial discrepancy, unmapped record, or population count mismatch immediately halts the run and prevents output release.
|
|
79
70
|
|
|
80
71
|
---
|
|
@@ -177,7 +168,7 @@ sequenceDiagram
|
|
|
177
168
|
Render->>Storage: Write outputs into staging directories
|
|
178
169
|
|
|
179
170
|
Note over Orch,Targets: Stage 5: Population Audit & Atomic Release
|
|
180
|
-
Orch->>Audit: Verify population counts (PDF == XML == AFP ==
|
|
171
|
+
Orch->>Audit: Verify population counts (PDF == XML == AFP == 124,024)
|
|
181
172
|
Orch->>Audit: Seal freeze-manifest.json and compute final SHA-256 digests
|
|
182
173
|
Orch->>Audit: Transition to RunLifecycle::READY_FOR_RELEASE
|
|
183
174
|
Orch->>Targets: Copy verified artifacts to delivery endpoints
|
|
@@ -201,19 +192,19 @@ flowchart TD
|
|
|
201
192
|
|
|
202
193
|
subgraph Upstream["Upstream Billing Systems"]
|
|
203
194
|
direction LR
|
|
204
|
-
SYS_01["SYS_01: Billing
|
|
195
|
+
SYS_01["SYS_01: Kenan Billing Engine<br/>Rating & Billing Lifecycle"]:::existingStyle
|
|
205
196
|
end
|
|
206
197
|
|
|
207
|
-
subgraph CorePlatform["
|
|
198
|
+
subgraph CorePlatform["BriteBill Replacement Platform (iegbcoppoc02)"]
|
|
208
199
|
direction LR
|
|
209
|
-
SYS_02["SYS_02:
|
|
200
|
+
SYS_02["SYS_02: BriteBill Replacement Engine<br/>Ingestion, Mapping, Reconcile & Render"]:::newStyle
|
|
210
201
|
SYS_06["SYS_06: Operations Control Centre<br/>Audit Journal, Sealed Manifest & CLI"]:::newStyle
|
|
211
202
|
end
|
|
212
203
|
|
|
213
204
|
subgraph Downstream["Downstream Distribution Channels"]
|
|
214
205
|
direction LR
|
|
215
206
|
SYS_03["SYS_03: Print House & Mailroom<br/>Physical Print & Insertion Spool"]:::existingStyle
|
|
216
|
-
SYS_04["SYS_04:
|
|
207
|
+
SYS_04["SYS_04: My Virgin Media Portal<br/>Online eBilling XML Viewer"]:::existingStyle
|
|
217
208
|
SYS_05["SYS_05: Enterprise Document Archive<br/>Customer PDF Storage & Email"]:::existingStyle
|
|
218
209
|
end
|
|
219
210
|
|
|
@@ -231,23 +222,23 @@ The table below catalogs all systems and platforms within the solution boundary:
|
|
|
231
222
|
|
|
232
223
|
| ID | Application / Component | Application Type | Description | Impacted |
|
|
233
224
|
|---|---|---|---|---|
|
|
234
|
-
| `SYS_01` | Billing
|
|
235
|
-
| `SYS_02` |
|
|
225
|
+
| `SYS_01` | Kenan Billing Engine (Amdocs) | Billing / Rating | Upstream rating engine producing periodic `.EN` billing stream files. | No |
|
|
226
|
+
| `SYS_02` | BriteBill Replacement Composition Engine | Batch Engine | Core batch orchestration, mapping, financial reconciliation, and multi-channel rendering engine. | Yes |
|
|
236
227
|
| `SYS_03` | External Print House & Mailroom Spool | Print Production | Commercial printing facility ingesting MO:DCA AFP spools and JRN insertion records. | No |
|
|
237
|
-
| `SYS_04` |
|
|
228
|
+
| `SYS_04` | My Virgin Media Digital Self-Service Portal | Web Portal | Customer billing portal ingesting structured eBilling XML for web presentation. | No |
|
|
238
229
|
| `SYS_05` | Enterprise Document Archive & Dispatcher | Document Repository | Long-term customer communications repository and email dispatcher ingesting certified PDF invoices. | No |
|
|
239
230
|
| `SYS_06` | Operations Control Centre & Audit Journal | Ops & Governance | Operational monitoring CLI, telemetry aggregator, and sealed run manifest validator. | Yes |
|
|
240
231
|
|
|
241
|
-
#### 4.2.1 SYS_01: Billing
|
|
242
|
-
The
|
|
232
|
+
#### 4.2.1 SYS_01: Kenan Billing Engine (Amdocs)
|
|
233
|
+
The Kenan engine calculates customer monthly billing totals, rating, and payment adjustments. At cycle close, Kenan exports raw `.EN` tagged-record stream files to the staging transfer area.
|
|
243
234
|
|
|
244
|
-
#### 4.2.2 SYS_02:
|
|
235
|
+
#### 4.2.2 SYS_02: BriteBill Replacement Composition Engine
|
|
245
236
|
The core processing component implemented in Python. It executes local staging, canonical data mapping, strict financial reconciliation, and parallel document rendering.
|
|
246
237
|
|
|
247
238
|
#### 4.2.3 SYS_03: External Print House & Mailroom Spool
|
|
248
239
|
Receives binary MO:DCA AFP print spools and JRN insertion index files for postal sorting, physical paper printing, envelope inserting, and mail dispatch.
|
|
249
240
|
|
|
250
|
-
#### 4.2.4 SYS_04:
|
|
241
|
+
#### 4.2.4 SYS_04: My Virgin Media Digital Self-Service Portal
|
|
251
242
|
The customer-facing digital web application that parses structured XML invoice streams to present interactive online bill breakdowns.
|
|
252
243
|
|
|
253
244
|
#### 4.2.5 SYS_05: Enterprise Document Archive & Dispatcher
|
|
@@ -262,14 +253,14 @@ The table below details all communication interfaces across the platform boundar
|
|
|
262
253
|
|
|
263
254
|
| ID | Type / Protocol | From | To | Description | Connectivity |
|
|
264
255
|
|---|---|---|---|---|---|
|
|
265
|
-
| `INT_01` | SFTP / SMB File Feed | `SYS_01` | `SYS_02` |
|
|
256
|
+
| `INT_01` | SFTP / SMB File Feed | `SYS_01` | `SYS_02` | Kenan tagged-record billing stream (`.EN`) and cycle marker file. | Existing Connectivity |
|
|
266
257
|
| `INT_02` | Secure File Transfer | `SYS_02` | `SYS_03` | MO:DCA AFP binary print stream partitioned at source-EN granularity. | New Connectivity |
|
|
267
258
|
| `INT_03` | Secure File Transfer | `SYS_02` | `SYS_03` | Tabular ASCII index files (`.JRN`) containing mailroom insertion records. | New Connectivity |
|
|
268
259
|
| `INT_04` | Secure File Transfer | `SYS_02` | `SYS_04` | Lossless structured XML documents matching customer portal schema. | New Connectivity |
|
|
269
260
|
| `INT_05` | Secure File Transfer | `SYS_02` | `SYS_05` | Certified, byte-deterministic PDF customer invoices. | New Connectivity |
|
|
270
261
|
| `INT_06` | Local File / JSONL | `SYS_02` | `SYS_06` | Append-only execution journal, telemetry events, and sealed manifest. | New Connectivity |
|
|
271
262
|
|
|
272
|
-
#### 4.3.1 INT_01: Billing Stream & Completion Marker
|
|
263
|
+
#### 4.3.1 INT_01: Kenan Billing Stream & Completion Marker
|
|
273
264
|
Transfers raw `.EN` data files containing account records, billing headers, charge breakdowns, and payment histories. A completion marker file signals batch completeness.
|
|
274
265
|
|
|
275
266
|
#### 4.3.2 INT_02: MO:DCA AFP Print Spools
|
|
@@ -282,7 +273,7 @@ Delivers ASCII index files specifying sheet counts, account identifiers, envelop
|
|
|
282
273
|
Transfers schema-validated XML documents containing invoice data for online customer self-service viewing.
|
|
283
274
|
|
|
284
275
|
#### 4.3.5 INT_05: Deterministic PDF Invoices
|
|
285
|
-
Transfers byte-deterministic PDF documents containing vector
|
|
276
|
+
Transfers byte-deterministic PDF documents containing vector Virgin Media branding, billing transaction tables, and Giro payment slips.
|
|
286
277
|
|
|
287
278
|
#### 4.3.6 INT_06: Telemetry & Sealed Manifest
|
|
288
279
|
Emits structured JSONL telemetry and a cryptographic `release_manifest.json` sealing file counts, execution parameters, and SHA-256 hashes.
|
|
@@ -304,7 +295,7 @@ The platform provides administrative command-line surfaces for operations and sc
|
|
|
304
295
|
## 5. High-Level Data and Storage Architecture
|
|
305
296
|
|
|
306
297
|
### 5.1 Host & Working Storage Topology
|
|
307
|
-
The engine executes entirely within a dedicated local filesystem hierarchy on host `
|
|
298
|
+
The engine executes entirely within a dedicated local filesystem hierarchy on host `iegbcoppoc02`. Every batch run is isolated by unique run and attempt identifiers:
|
|
308
299
|
|
|
309
300
|
```
|
|
310
301
|
<working_root>/<run_id>/<attempt_id>/
|
|
@@ -365,9 +356,9 @@ classDiagram
|
|
|
365
356
|
|
|
366
357
|
### 5.3 Multi-Channel Output Volume & Specifications
|
|
367
358
|
Production metrics established during candidate certification (ATT-006 baseline):
|
|
368
|
-
- **PDF Documents**:
|
|
369
|
-
- **XML Documents**:
|
|
370
|
-
- **AFP Spools**: 32 consolidated MO:DCA print files matching the 32 upstream input batches.
|
|
359
|
+
- **PDF Documents**: 124,980 total PDF files (124,024 primary invoices + 956 secondary itemized schedules).
|
|
360
|
+
- **XML Documents**: 124,024 structured customer eBilling files.
|
|
361
|
+
- **AFP Spools**: 32 consolidated MO:DCA print files matching the 32 upstream Kenan input batches.
|
|
371
362
|
- **JRN Journals**: 32 postal index files containing 100% field parity with postal insertion machinery.
|
|
372
363
|
|
|
373
364
|
---
|
|
@@ -382,7 +373,7 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
382
373
|
|
|
383
374
|
### 6.2 Zero Runtime Network Access
|
|
384
375
|
- No module within `ingestion/`, `mapping/`, `templating/`, or `rendering/` initiates external HTTP or network requests during generation.
|
|
385
|
-
- All fonts, styling assets, and configuration templates reside locally on disk on `
|
|
376
|
+
- All fonts, styling assets, and configuration templates reside locally on disk on `iegbcoppoc02`.
|
|
386
377
|
|
|
387
378
|
### 6.3 Working Storage Path Isolation & Traversal Defense
|
|
388
379
|
- File discovery resolves candidate paths and rejects any file whose resolved parent directory escapes the staging root.
|
|
@@ -390,7 +381,7 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
390
381
|
|
|
391
382
|
### 6.4 Privacy and Audit Redaction
|
|
392
383
|
- Domain models override string representations to redact personal customer names and street addresses from log outputs.
|
|
393
|
-
- Upstream customer metadata categories (`FIRSTNAME`, `EMAIL`, `OFFNETID`, `
|
|
384
|
+
- Upstream customer metadata categories (`FIRSTNAME`, `EMAIL`, `OFFNETID`, `EIRCODE`) are dropped during ingestion mapping.
|
|
394
385
|
- Audit manifests record only source file basenames, billing reference numbers, and one-way SHA-256 correlation identifiers.
|
|
395
386
|
|
|
396
387
|
---
|
|
@@ -401,10 +392,10 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
401
392
|
|
|
402
393
|
| Requirement | Description | Component Implementation | Verification Control |
|
|
403
394
|
|---|---|---|---|
|
|
404
|
-
| `REQ-01` | Ingest `.EN` tagged-record streams | `SYS_02` (`ingestion/en_reader.py`) | Automated parser unit tests and zero-failure batch validation. |
|
|
395
|
+
| `REQ-01` | Ingest Kenan `.EN` tagged-record streams | `SYS_02` (`ingestion/en_reader.py`) | Automated parser unit tests and zero-failure batch validation. |
|
|
405
396
|
| `REQ-02` | Strong financial reconciliation | `SYS_02` (`reconciliation/checks.py`) | Full-population balance reconciliation gate (`reconcile()`). |
|
|
406
397
|
| `REQ-03` | Byte-deterministic PDF rendering | `SYS_02` (`rendering/mupdf_renderer.py`) | SHA-256 byte-identity verification against certified baseline. |
|
|
407
|
-
| `REQ-04` | Multi-channel parity (PDF/XML/AFP/JRN) | `SYS_02` (`mapping/*`, `rendering/*`) | Cross-output population count verification (`
|
|
398
|
+
| `REQ-04` | Multi-channel parity (PDF/XML/AFP/JRN) | `SYS_02` (`mapping/*`, `rendering/*`) | Cross-output population count verification (`124,024` exact). |
|
|
408
399
|
| `REQ-05` | Atomic release & staging isolation | `SYS_02` (`batch/orchestrator.py`) | Zero output visibility before `READY_FOR_RELEASE` and marker written last. |
|
|
409
400
|
| `REQ-06` | Auditability & run sealing | `SYS_06` (`audit/manifest.py`) | Cryptographic `release_manifest.json` generation. |
|
|
410
401
|
|
|
@@ -416,13 +407,13 @@ The platform security architecture adheres to strict controls defined in `docs/S
|
|
|
416
407
|
|
|
417
408
|
| Term | Definition |
|
|
418
409
|
|---|---|
|
|
419
|
-
| `.EN` | Proprietary tagged-record flat file format emitted by the
|
|
410
|
+
| `.EN` | Proprietary tagged-record flat file format emitted by the Kenan billing engine. |
|
|
420
411
|
| AFP | Advanced Function Presentation / MO:DCA binary print architecture used in industrial mailrooms. |
|
|
421
412
|
| JRN | Journal insertion index file coordinating automated paper folding and envelope stuffing. |
|
|
422
413
|
| Byte Determinism | The guarantee that identical inputs rendered with identical parameters yield identical binary SHA-256 hashes. |
|
|
423
414
|
| Fail-Closed | An architectural principle where any detected inconsistency aborts processing before releasing outputs. |
|
|
424
415
|
|
|
425
416
|
### 8.2 Reference Documents
|
|
426
|
-
-
|
|
427
|
-
-
|
|
428
|
-
-
|
|
417
|
+
- `\\iegbcoppoc02\G\britebill-replacement\README.md`: System operational runbook and architecture overview.
|
|
418
|
+
- `\\iegbcoppoc02\G\britebill-replacement\docs\SECURITY_AND_PRIVACY.md`: Security controls and privacy safeguards.
|
|
419
|
+
- `\\iegbcoppoc02\G\britebill-replacement\docs\PRODUCTION_CANDIDATE_ATT006.md`: Candidate certification report and benchmark results.
|
package/bundles/manifest.json
CHANGED
package/package.json
CHANGED