@fulmenhq/tsfulmen 0.2.0 → 0.2.3

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.
Files changed (111) hide show
  1. package/CHANGELOG.md +70 -0
  2. package/README.md +61 -7
  3. package/config/crucible-ts/agentic/roles/README.md +3 -3
  4. package/config/crucible-ts/library/fulencode/fixtures/README.md +18 -0
  5. package/config/crucible-ts/library/fulencode/fixtures/bom/bom.yaml +14 -0
  6. package/config/crucible-ts/library/fulencode/fixtures/detection/detection.yaml +12 -0
  7. package/config/crucible-ts/library/fulencode/fixtures/invalid-encodings/base64.yaml +10 -0
  8. package/config/crucible-ts/library/fulencode/fixtures/normalization/text-safe.yaml +10 -0
  9. package/config/crucible-ts/library/fulencode/fixtures/telemetry/telemetry-test-cases.yaml +24 -0
  10. package/config/crucible-ts/library/fulencode/fixtures/valid-encodings/base64.yaml +11 -0
  11. package/config/crucible-ts/taxonomy/library/platform-modules/v1.0.0/modules.yaml +2 -2
  12. package/config/crucible-ts/taxonomy/metrics.yaml +79 -1
  13. package/dist/appidentity/index.d.ts +31 -109
  14. package/dist/appidentity/index.js +369 -60
  15. package/dist/appidentity/index.js.map +1 -1
  16. package/dist/config/index.d.ts +46 -1
  17. package/dist/config/index.js +427 -62
  18. package/dist/config/index.js.map +1 -1
  19. package/dist/crucible/index.js +367 -59
  20. package/dist/crucible/index.js.map +1 -1
  21. package/dist/errors/index.d.ts +1 -1
  22. package/dist/errors/index.js +367 -59
  23. package/dist/errors/index.js.map +1 -1
  24. package/dist/foundry/index.d.ts +2 -1
  25. package/dist/foundry/index.js +368 -60
  26. package/dist/foundry/index.js.map +1 -1
  27. package/dist/fulencode/index.d.ts +102 -0
  28. package/dist/fulencode/index.js +806 -0
  29. package/dist/fulencode/index.js.map +1 -0
  30. package/dist/index.d.ts +4 -3
  31. package/dist/index.js +370 -61
  32. package/dist/index.js.map +1 -1
  33. package/dist/pathfinder/index.d.ts +1 -1
  34. package/dist/pathfinder/index.js +367 -59
  35. package/dist/pathfinder/index.js.map +1 -1
  36. package/dist/reports/license-inventory.csv +31 -24
  37. package/dist/schema/index.d.ts +16 -3
  38. package/dist/schema/index.js +368 -60
  39. package/dist/schema/index.js.map +1 -1
  40. package/dist/signals/index.d.ts +483 -395
  41. package/dist/signals/index.js +368 -60
  42. package/dist/signals/index.js.map +1 -1
  43. package/dist/telemetry/http/index.js +368 -59
  44. package/dist/telemetry/http/index.js.map +1 -1
  45. package/dist/telemetry/index.d.ts +1 -1
  46. package/dist/telemetry/index.js +367 -59
  47. package/dist/telemetry/index.js.map +1 -1
  48. package/dist/telemetry/prometheus/index.d.ts +1 -1
  49. package/dist/telemetry/prometheus/index.js +369 -59
  50. package/dist/telemetry/prometheus/index.js.map +1 -1
  51. package/dist/{types-BJswWpQC.d.ts → types-DdoeE7F5.d.ts} +1 -1
  52. package/dist/types-Dv5TERCM.d.ts +108 -0
  53. package/package.json +13 -8
  54. package/schemas/crucible-ts/library/fulencode/v1.0.0/README.md +37 -0
  55. package/schemas/crucible-ts/library/fulencode/v1.0.0/bom-result.schema.json +48 -0
  56. package/schemas/crucible-ts/library/fulencode/v1.0.0/decode-options.schema.json +60 -0
  57. package/schemas/crucible-ts/library/fulencode/v1.0.0/decoding-result.schema.json +70 -0
  58. package/schemas/crucible-ts/library/fulencode/v1.0.0/detect-options.schema.json +25 -0
  59. package/schemas/crucible-ts/library/fulencode/v1.0.0/detection-result.schema.json +57 -0
  60. package/schemas/crucible-ts/library/fulencode/v1.0.0/encode-options.schema.json +71 -0
  61. package/schemas/crucible-ts/library/fulencode/v1.0.0/encoding-result.schema.json +57 -0
  62. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-config.schema.json +8 -4
  63. package/schemas/crucible-ts/library/fulencode/v1.0.0/fulencode-error.schema.json +66 -0
  64. package/schemas/crucible-ts/library/fulencode/v1.0.0/normalization-result.schema.json +73 -0
  65. package/schemas/crucible-ts/library/fulencode/v1.0.0/normalize-options.schema.json +44 -0
  66. package/schemas/crucible-ts/meta/README.md +38 -2
  67. package/schemas/crucible-ts/meta/draft-04/schema.json +222 -0
  68. package/schemas/crucible-ts/meta/draft-06/schema.json +218 -0
  69. package/schemas/crucible-ts/meta/draft-2019-09/meta/applicator.json +93 -0
  70. package/schemas/crucible-ts/meta/draft-2019-09/meta/content.json +21 -0
  71. package/schemas/crucible-ts/meta/draft-2019-09/meta/core.json +58 -0
  72. package/schemas/crucible-ts/meta/draft-2019-09/meta/format.json +15 -0
  73. package/schemas/crucible-ts/meta/draft-2019-09/meta/meta-data.json +35 -0
  74. package/schemas/crucible-ts/meta/draft-2019-09/meta/validation.json +119 -0
  75. package/schemas/crucible-ts/meta/draft-2019-09/offline.schema.json +148 -0
  76. package/schemas/crucible-ts/meta/draft-2019-09/schema.json +62 -0
  77. package/schemas/crucible-ts/meta/fixtures/draft-04-sample.json +16 -0
  78. package/schemas/crucible-ts/meta/fixtures/draft-06-sample.json +16 -0
  79. package/schemas/crucible-ts/meta/fixtures/draft-07-sample.json +34 -0
  80. package/schemas/crucible-ts/meta/fixtures/draft-2019-09-sample.json +21 -0
  81. package/schemas/crucible-ts/meta/fixtures/draft-2020-12-sample.json +21 -0
  82. package/schemas/crucible-ts/taxonomy/library/fulencode/normalization-profiles/v1.0.0/profiles.yaml +16 -0
  83. package/schemas/crucible-ts/upstream/3leaps/crucible/PROVENANCE.md +64 -0
  84. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/access-tier.dimension.json +103 -0
  85. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/retention-lifecycle.dimension.json +103 -0
  86. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/schema-stability.dimension.json +100 -0
  87. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/sensitivity.dimension.json +130 -0
  88. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/velocity-mode.dimension.json +79 -0
  89. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/volatility.dimension.json +72 -0
  90. package/schemas/crucible-ts/upstream/3leaps/crucible/config/classifiers/dimensions/volume-tier.dimension.json +66 -0
  91. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/catalog/classifiers/README.md +29 -0
  92. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/access-tier-classification.md +163 -0
  93. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/classifiers-framework.md +157 -0
  94. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/data-sensitivity-classification.md +259 -0
  95. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/retention-lifecycle-classification.md +200 -0
  96. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/schema-stability-classification.md +205 -0
  97. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/velocity-mode-classification.md +222 -0
  98. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/volatility-classification.md +209 -0
  99. package/schemas/crucible-ts/upstream/3leaps/crucible/docs/standards/volume-tier-classification.md +200 -0
  100. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/ailink/v0/README.md +48 -0
  101. package/schemas/crucible-ts/upstream/3leaps/{ailink → crucible/schemas/ailink}/v0/prompt.schema.json +4 -18
  102. package/schemas/crucible-ts/upstream/3leaps/{ailink → crucible/schemas/ailink}/v0/search-response.schema.json +7 -37
  103. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/classifiers/v0/dimension-definition.schema.json +247 -0
  104. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/classifiers/v0/sensitivity-level.schema.json +67 -0
  105. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/error-response.schema.json +59 -0
  106. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/lifecycle-phases.data.json +102 -0
  107. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/lifecycle-phases.schema.json +101 -0
  108. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/release-phase.schema.json +18 -0
  109. package/schemas/crucible-ts/upstream/3leaps/crucible/schemas/foundation/v0/types.schema.json +177 -0
  110. package/schemas/crucible-ts/upstream/3leaps/PROVENANCE.md +0 -43
  111. /package/schemas/crucible-ts/upstream/3leaps/{agentic → crucible/schemas/agentic}/v0/role-prompt.schema.json +0 -0
@@ -0,0 +1,200 @@
1
+ ---
2
+ title: "Retention & Lifecycle Classification"
3
+ description: "Data retention period classification standard"
4
+ category: "standards"
5
+ status: "stable"
6
+ version: "1.0.0"
7
+ lastUpdated: "2026-01-22"
8
+ maintainer: "3leaps-core"
9
+ reviewers: ["compliance", "legal"]
10
+ approvers: ["3leapsdave"]
11
+ tags: ["classification", "retention", "lifecycle", "compliance", "data-governance"]
12
+ content_license: "CC0"
13
+ relatedDocs:
14
+ - "docs/standards/data-sensitivity-classification.md"
15
+ - "config/classifiers/dimensions/retention-lifecycle.dimension.json"
16
+ audience: "all"
17
+ ---
18
+
19
+ # Retention & Lifecycle Classification
20
+
21
+ This standard defines retention period classifications for data across all 3leaps ecosystems. It provides a consistent framework for:
22
+
23
+ - **Deletion SLAs** - When data must be deleted
24
+ - **Archival Policies** - When and how to archive
25
+ - **Compliance Requirements** - Regulatory retention obligations
26
+ - **Storage Optimization** - Tiered storage decisions
27
+ - **Legal Hold Procedures** - Preservation requirements
28
+
29
+ ---
30
+
31
+ ## Retention Levels
32
+
33
+ ### Unknown
34
+
35
+ **Retention not yet classified; must be classified before storage provisioning.**
36
+
37
+ | Aspect | Requirement |
38
+ | ------------- | ----------------------------------------------- |
39
+ | **Retention** | Undefined; treat as indefinite until classified |
40
+ | **Backup** | Basic backup until policy determined |
41
+ | **Storage** | Staging/quarantine |
42
+ | **Deletion** | Prohibited until classified |
43
+ | **Use Cases** | New data sources, imported datasets |
44
+
45
+ **Operational Notes**: Gate storage tier decisions and deletion policies on explicit classification. Do not auto-delete `unknown` retention data.
46
+
47
+ ---
48
+
49
+ ### Transient
50
+
51
+ **Short-lived data (≤7 days); auto-deleted, no backup required.**
52
+
53
+ | Aspect | Requirement |
54
+ | ------------- | ---------------------------------------- |
55
+ | **Retention** | ≤7 days |
56
+ | **Backup** | Not required |
57
+ | **Storage** | Hot/ephemeral |
58
+ | **Deletion** | Automatic expiry |
59
+ | **Use Cases** | Session cache, temp files, debug buffers |
60
+
61
+ **Operational Notes**:
62
+
63
+ - Use TTL-based storage (Redis, S3 lifecycle)
64
+ - No archive or backup pipelines needed
65
+ - Safe to delete without approval
66
+
67
+ ---
68
+
69
+ ### Short
70
+
71
+ **Short retention (≤90 days); routine cleanup, basic backup.**
72
+
73
+ | Aspect | Requirement |
74
+ | ------------- | --------------------------------------- |
75
+ | **Retention** | ≤90 days |
76
+ | **Backup** | Basic (daily snapshots) |
77
+ | **Storage** | Standard |
78
+ | **Deletion** | Scheduled cleanup jobs |
79
+ | **Use Cases** | Debug logs, dev environments, test data |
80
+
81
+ **Operational Notes**:
82
+
83
+ - Configure automated cleanup jobs
84
+ - Basic backup for recovery during retention window
85
+ - Review before deletion if business value uncertain
86
+
87
+ ---
88
+
89
+ ### Standard
90
+
91
+ **Standard retention (≤2 years); regular backup, tiered storage.**
92
+
93
+ | Aspect | Requirement |
94
+ | ------------- | ------------------------------------------------------- |
95
+ | **Retention** | ≤2 years |
96
+ | **Backup** | Regular (with point-in-time recovery) |
97
+ | **Storage** | Tiered (hot → warm → cold) |
98
+ | **Deletion** | Policy-driven with approval |
99
+ | **Use Cases** | Transaction history, operational data, business records |
100
+
101
+ **Operational Notes**:
102
+
103
+ - Default retention tier for most business data
104
+ - Implement storage tiering for cost optimization
105
+ - Document deletion policy and approval process
106
+
107
+ ---
108
+
109
+ ### Long
110
+
111
+ **Long retention (>2 years); archive storage, compliance backup.**
112
+
113
+ | Aspect | Requirement |
114
+ | ------------- | -------------------------------------------------- |
115
+ | **Retention** | >2 years (often 7+ years) |
116
+ | **Backup** | Compliance-grade (immutable, verified) |
117
+ | **Storage** | Archive/cold (Glacier, etc.) |
118
+ | **Deletion** | Regulatory approval required |
119
+ | **Use Cases** | Audit records, financial data, regulatory archives |
120
+
121
+ **Operational Notes**:
122
+
123
+ - Use archive storage classes for cost efficiency
124
+ - Ensure compliance with industry regulations (SOX, HIPAA, etc.)
125
+ - Implement integrity verification (checksums, attestation)
126
+
127
+ ---
128
+
129
+ ### Legal Hold
130
+
131
+ **Indefinite retention; immutable, protected from deletion.**
132
+
133
+ | Aspect | Requirement |
134
+ | ------------- | --------------------------------------------------------------- |
135
+ | **Retention** | Indefinite (until released) |
136
+ | **Backup** | Immutable, geographically redundant |
137
+ | **Storage** | WORM (Write-Once-Read-Many) |
138
+ | **Deletion** | Prohibited without legal release |
139
+ | **Use Cases** | Litigation evidence, regulatory investigation, breach forensics |
140
+
141
+ **Operational Notes**:
142
+
143
+ - Implement legal hold flag in data management systems
144
+ - Chain of custody documentation required
145
+ - Legal team controls release authorization
146
+ - Prevent any modification or deletion
147
+
148
+ ---
149
+
150
+ ## Decision Guide
151
+
152
+ ```
153
+ How long must we keep this data?
154
+
155
+ ├── Only while actively needed (hours/days) → transient
156
+ ├── Weeks to months (debugging, dev cycles) → short
157
+ ├── 1-2 years (operational history) → standard
158
+ ├── Years (regulatory, audit requirements) → long
159
+ └── Until legal/regulatory release → legal-hold
160
+ ```
161
+
162
+ ---
163
+
164
+ ## Compliance Mapping
165
+
166
+ | Regulation | Typical Retention | Recommended Tier |
167
+ | ---------- | ----------------- | ---------------- |
168
+ | SOX | 7 years | long |
169
+ | HIPAA | 6 years | long |
170
+ | GDPR | Varies (minimize) | standard or less |
171
+ | PCI DSS | 1 year minimum | standard |
172
+ | SEC 17a-4 | 6 years | long |
173
+ | Litigation | Until resolved | legal-hold |
174
+
175
+ ---
176
+
177
+ ## Handling Matrix
178
+
179
+ | Retention Level | Storage Tier | Backup Strategy | Deletion Process | Cost Profile |
180
+ | --------------- | ------------- | ---------------- | ------------------- | ------------ |
181
+ | **transient** | Hot/ephemeral | None | Auto-expiry | Lowest |
182
+ | **short** | Standard | Daily snapshots | Scheduled jobs | Low |
183
+ | **standard** | Tiered | Regular + PITR | Policy + approval | Medium |
184
+ | **long** | Archive/cold | Compliance-grade | Regulatory approval | Higher |
185
+ | **legal-hold** | WORM | Immutable | Legal release only | Highest |
186
+
187
+ ---
188
+
189
+ ## Machine-Readable Definition
190
+
191
+ - **Dimension Config**: `config/classifiers/dimensions/retention-lifecycle.dimension.json`
192
+ - **Schema**: `schemas/classifiers/v0/dimension-definition.schema.json`
193
+
194
+ ---
195
+
196
+ ## Attribution
197
+
198
+ This standard is the canonical reference for retention classification across 3leaps ecosystems. Downstream consumers should reference or vendor this standard rather than maintaining independent copies.
199
+
200
+ **Review Cycle**: Semiannual with compliance and legal teams.
@@ -0,0 +1,205 @@
1
+ ---
2
+ title: "Schema Stability Classification"
3
+ description: "Schema evolution and stability classification standard"
4
+ category: "standards"
5
+ status: "stable"
6
+ version: "1.0.0"
7
+ lastUpdated: "2026-01-22"
8
+ maintainer: "3leaps-core"
9
+ reviewers: ["platform", "api-standards"]
10
+ approvers: ["3leapsdave"]
11
+ tags: ["classification", "schema", "versioning", "api", "stability"]
12
+ content_license: "CC0"
13
+ relatedDocs:
14
+ - "docs/decisions/ADR-0001-schema-config-versioning.md"
15
+ - "config/classifiers/dimensions/schema-stability.dimension.json"
16
+ audience: "all"
17
+ ---
18
+
19
+ # Schema Stability Classification
20
+
21
+ This standard defines stability levels for schemas, APIs, and configuration formats across all 3leaps ecosystems. It provides a consistent framework for:
22
+
23
+ - **Compatibility Expectations** - What consumers can rely on
24
+ - **Versioning Cadence** - How often changes occur
25
+ - **Deprecation Windows** - How much notice before breaking changes
26
+ - **Consumer Guidance** - Whether to adopt and how to track changes
27
+
28
+ ---
29
+
30
+ ## Stability Levels
31
+
32
+ ### Unknown
33
+
34
+ **Stability not yet classified; must be classified before consumers adopt.**
35
+
36
+ | Aspect | Requirement |
37
+ | -------------------- | ------------------------------------- |
38
+ | **Compatibility** | Unknown; assume none |
39
+ | **Breaking Changes** | Possible at any time |
40
+ | **Versioning** | Not yet versioned |
41
+ | **Deprecation** | N/A |
42
+ | **Consumer Advice** | Do not adopt; wait for classification |
43
+
44
+ **Use Cases**: New schemas under initial development, imported definitions pending review.
45
+
46
+ **Operational Notes**: Block production adoption of `unknown` stability schemas. Require explicit classification before publishing to consumers.
47
+
48
+ ---
49
+
50
+ ### Experimental
51
+
52
+ **No stability guarantees; may change without notice.**
53
+
54
+ | Aspect | Requirement |
55
+ | -------------------- | -------------------------------------------- |
56
+ | **Compatibility** | None guaranteed |
57
+ | **Breaking Changes** | Any time, no notice required |
58
+ | **Versioning** | v0.x or -alpha/-preview suffix |
59
+ | **Deprecation** | None required |
60
+ | **Consumer Advice** | For evaluation only; expect breaking changes |
61
+
62
+ **Use Cases**: Early prototypes, alpha features, proof-of-concept APIs, `v0/` schema directories.
63
+
64
+ **Naming Conventions**:
65
+
66
+ - Version: `v0.x.x`, `0.x`, or `vX-alpha`
67
+ - Path: `/v0/`, `/preview/`, `/alpha/`
68
+
69
+ ---
70
+
71
+ ### Evolving
72
+
73
+ **Active development; additive changes expected, breaking changes with notice.**
74
+
75
+ | Aspect | Requirement |
76
+ | -------------------- | ------------------------------------------- |
77
+ | **Compatibility** | Additive changes backward-compatible |
78
+ | **Breaking Changes** | With notice (changelog, deprecation period) |
79
+ | **Versioning** | v0.x with clear changelog |
80
+ | **Deprecation** | Minimum 1 minor version warning |
81
+ | **Consumer Advice** | Safe for development; track changelog |
82
+
83
+ **Use Cases**: Beta features, active development APIs, schemas under iteration.
84
+
85
+ **Naming Conventions**:
86
+
87
+ - Version: `v0.x.x` or `vX-beta`
88
+ - Path: `/v0/`, `/beta/`
89
+
90
+ ---
91
+
92
+ ### Stable
93
+
94
+ **Production-ready; breaking changes require major version bump and deprecation period.**
95
+
96
+ | Aspect | Requirement |
97
+ | -------------------- | ------------------------------------------------ |
98
+ | **Compatibility** | Full backward compatibility within major version |
99
+ | **Breaking Changes** | Major version bump required |
100
+ | **Versioning** | Semantic versioning (v1.x.x, v2.x.x) |
101
+ | **Deprecation** | Minimum 6 months or 2 minor versions |
102
+ | **Consumer Advice** | Production safe; follow semver guidelines |
103
+
104
+ **Use Cases**: Production APIs, released schemas, public interfaces.
105
+
106
+ **Naming Conventions**:
107
+
108
+ - Version: `v1.x.x`, `v2.x.x` (semver)
109
+ - Path: `/v1/`, `/v2/`
110
+
111
+ ---
112
+
113
+ ### Frozen
114
+
115
+ **No changes expected; security patches only.**
116
+
117
+ | Aspect | Requirement |
118
+ | -------------------- | ------------------------------------------- |
119
+ | **Compatibility** | No changes (security-only exceptions) |
120
+ | **Breaking Changes** | Only for critical security fixes |
121
+ | **Versioning** | Patch versions only (vX.Y.Z → vX.Y.Z+1) |
122
+ | **Deprecation** | N/A (may transition to deprecated) |
123
+ | **Consumer Advice** | Maximum stability; plan for eventual sunset |
124
+
125
+ **Use Cases**: Legacy APIs maintained for compatibility, long-term support versions.
126
+
127
+ ---
128
+
129
+ ### Deprecated
130
+
131
+ **Scheduled for removal; migration path documented.**
132
+
133
+ | Aspect | Requirement |
134
+ | -------------------- | ------------------------------------------------ |
135
+ | **Compatibility** | Maintained until removal date |
136
+ | **Breaking Changes** | None (frozen until removal) |
137
+ | **Versioning** | No new versions |
138
+ | **Deprecation** | Removal date published, migration guide provided |
139
+ | **Consumer Advice** | Migrate immediately; removal imminent |
140
+
141
+ **Use Cases**: Sunset APIs, replaced schemas, legacy versions.
142
+
143
+ **Required Documentation**:
144
+
145
+ - Removal date
146
+ - Replacement/migration path
147
+ - Migration guide
148
+
149
+ ---
150
+
151
+ ## Lifecycle Transitions
152
+
153
+ ```
154
+ experimental → evolving → stable → frozen → deprecated → removed
155
+ ↑ |
156
+ └───────────┘ (reactivation rare)
157
+ ```
158
+
159
+ ### Typical Progression
160
+
161
+ 1. **experimental**: Initial development, rapid iteration
162
+ 2. **evolving**: Beta users onboarded, stabilizing
163
+ 3. **stable**: GA release, production use
164
+ 4. **frozen**: Maintenance mode, new version available
165
+ 5. **deprecated**: Sunset announced, migration period
166
+ 6. **removed**: No longer available
167
+
168
+ ---
169
+
170
+ ## Versioning Guidelines
171
+
172
+ | Stability Level | Version Pattern | Example |
173
+ | --------------- | --------------- | ------------ |
174
+ | experimental | v0.x.x | v0.3.0-alpha |
175
+ | evolving | v0.x.x | v0.8.0-beta |
176
+ | stable | vX.Y.Z | v1.2.3 |
177
+ | frozen | vX.Y.Z (patch) | v1.2.4 |
178
+ | deprecated | vX.Y.Z (frozen) | v1.2.4 |
179
+
180
+ ---
181
+
182
+ ## Consumer Guidance Matrix
183
+
184
+ | If you need... | Use stability level |
185
+ | --------------------------- | ------------------- |
186
+ | Bleeding edge features | experimental |
187
+ | New features with some risk | evolving |
188
+ | Production reliability | stable |
189
+ | Maximum stability | frozen |
190
+ | (Don't use) | deprecated |
191
+
192
+ ---
193
+
194
+ ## Machine-Readable Definition
195
+
196
+ - **Dimension Config**: `config/classifiers/dimensions/schema-stability.dimension.json`
197
+ - **Schema**: `schemas/classifiers/v0/dimension-definition.schema.json`
198
+
199
+ ---
200
+
201
+ ## Attribution
202
+
203
+ This standard is the canonical reference for schema stability classification across 3leaps ecosystems. Downstream consumers should reference or vendor this standard rather than maintaining independent copies.
204
+
205
+ **Review Cycle**: Quarterly with platform and API standards teams.
@@ -0,0 +1,222 @@
1
+ ---
2
+ title: "Velocity Mode Classification"
3
+ description: "Data processing velocity pattern classification standard"
4
+ category: "standards"
5
+ status: "stable"
6
+ version: "1.0.0"
7
+ lastUpdated: "2026-01-22"
8
+ maintainer: "3leaps-core"
9
+ reviewers: ["platform", "data-engineering"]
10
+ approvers: ["3leapsdave"]
11
+ tags: ["classification", "velocity", "streaming", "batch", "data-engineering"]
12
+ content_license: "CC0"
13
+ relatedDocs:
14
+ - "docs/standards/volatility-classification.md"
15
+ - "docs/standards/volume-tier-classification.md"
16
+ - "config/classifiers/dimensions/velocity-mode.dimension.json"
17
+ audience: "all"
18
+ ---
19
+
20
+ # Velocity Mode Classification
21
+
22
+ This standard defines velocity mode classifications for data processing across all 3leaps ecosystems. It provides a consistent framework for:
23
+
24
+ - **Pipeline Topology** - Choosing batch vs. streaming architecture
25
+ - **Infrastructure Requirements** - Selecting appropriate platforms
26
+ - **Processing Semantics** - At-least-once, exactly-once, etc.
27
+ - **Latency Expectations** - Setting SLAs for data freshness
28
+ - **Cost Planning** - Understanding operational cost profiles
29
+
30
+ ---
31
+
32
+ ## Relationship to Volatility
33
+
34
+ Velocity mode and volatility are complementary:
35
+
36
+ - **Volatility** describes _how often data changes_ (update cadence)
37
+ - **Velocity mode** describes _how data is processed_ (processing pattern)
38
+
39
+ Common pairings:
40
+
41
+ | Volatility | Typical Velocity Mode |
42
+ | ---------- | ------------------------ |
43
+ | static | batch |
44
+ | monthly | batch |
45
+ | weekly | batch |
46
+ | daily | batch |
47
+ | hourly | micro-batch or batch |
48
+ | streaming | streaming or micro-batch |
49
+
50
+ ---
51
+
52
+ ## Velocity Modes
53
+
54
+ ### Unknown
55
+
56
+ **Velocity mode not yet classified; must be classified before pipeline design.**
57
+
58
+ | Aspect | Characteristic |
59
+ | ---------------- | ---------------------- |
60
+ | **Latency** | Unknown |
61
+ | **Processing** | Cannot design pipeline |
62
+ | **Data State** | Unknown |
63
+ | **Semantics** | Cannot determine |
64
+ | **Cost Profile** | Cannot estimate |
65
+
66
+ **Use Cases**: New data sources, requirements gathering phase.
67
+
68
+ **Operational Notes**: Gate pipeline design and infrastructure provisioning on explicit classification. Analyze source characteristics and latency requirements to determine appropriate mode.
69
+
70
+ ---
71
+
72
+ ### Batch
73
+
74
+ **Scheduled batch processing; data at rest, periodic execution.**
75
+
76
+ | Aspect | Characteristic |
77
+ | ---------------- | ------------------------------------ |
78
+ | **Latency** | Hours to days |
79
+ | **Processing** | Scheduled jobs (cron, Airflow, etc.) |
80
+ | **Data State** | At rest (complete dataset available) |
81
+ | **Semantics** | Full reprocessing possible |
82
+ | **Cost Profile** | Lowest (compute only when running) |
83
+
84
+ **Use Cases**: ETL pipelines, nightly aggregations, reporting, data warehouse loads.
85
+
86
+ **Infrastructure**: Airflow, dbt, Spark batch, serverless functions.
87
+
88
+ ---
89
+
90
+ ### Micro-batch
91
+
92
+ **Frequent small batches (minutes); near-real-time with batch semantics.**
93
+
94
+ | Aspect | Characteristic |
95
+ | ---------------- | -------------------------------------- |
96
+ | **Latency** | Minutes (1-15 min typical) |
97
+ | **Processing** | Triggered batches, windowed processing |
98
+ | **Data State** | Recent windows (tumbling/sliding) |
99
+ | **Semantics** | Windowed exactly-once achievable |
100
+ | **Cost Profile** | Moderate (frequent compute cycles) |
101
+
102
+ **Use Cases**: Dashboard metrics, near-real-time analytics, alerting with delay tolerance.
103
+
104
+ **Infrastructure**: Spark Structured Streaming, Flink (batch mode), scheduled lambdas.
105
+
106
+ ---
107
+
108
+ ### Streaming
109
+
110
+ **Event-driven continuous processing; data in motion, sub-second latency.**
111
+
112
+ | Aspect | Characteristic |
113
+ | ---------------- | ------------------------------------ |
114
+ | **Latency** | Sub-second to seconds |
115
+ | **Processing** | Continuous (always-on) |
116
+ | **Data State** | In motion (event at a time) |
117
+ | **Semantics** | Exactly-once requires careful design |
118
+ | **Cost Profile** | Highest (always-on compute) |
119
+
120
+ **Use Cases**: Real-time fraud detection, live dashboards, event sourcing, IoT processing.
121
+
122
+ **Infrastructure**: Kafka Streams, Flink, Kinesis, Pulsar.
123
+
124
+ **Considerations**:
125
+
126
+ - Requires streaming infrastructure (message brokers)
127
+ - Complex exactly-once semantics
128
+ - Backpressure and scaling considerations
129
+ - Higher operational complexity
130
+
131
+ ---
132
+
133
+ ### Hybrid
134
+
135
+ **Combined batch and streaming; lambda/kappa architecture patterns.**
136
+
137
+ | Aspect | Characteristic |
138
+ | ---------------- | ---------------------------------- |
139
+ | **Latency** | Mixed (real-time + historical) |
140
+ | **Processing** | Parallel batch and streaming paths |
141
+ | **Data State** | Both at rest and in motion |
142
+ | **Semantics** | Varies by path |
143
+ | **Cost Profile** | High (maintaining both systems) |
144
+
145
+ **Use Cases**: Analytics platforms needing both historical and real-time, ML feature stores.
146
+
147
+ **Architecture Patterns**:
148
+
149
+ **Lambda Architecture**:
150
+
151
+ ```
152
+ Events → [Streaming Layer] → Real-time Views
153
+ ↘ [Batch Layer] → Batch Views
154
+ → [Serving Layer] → Query
155
+ ```
156
+
157
+ **Kappa Architecture**:
158
+
159
+ ```
160
+ Events → [Streaming Layer] → Views
161
+ → [Reprocessing] (replay from log)
162
+ ```
163
+
164
+ ---
165
+
166
+ ## Decision Guide
167
+
168
+ ```
169
+ How quickly must data be processed after arrival?
170
+
171
+ ├── Hours/days acceptable → batch
172
+ ├── Minutes acceptable → micro-batch
173
+ ├── Seconds/sub-second required → streaming
174
+ └── Need both real-time and historical → hybrid
175
+ ```
176
+
177
+ ### Cost-Latency Tradeoff
178
+
179
+ | Velocity Mode | Latency | Cost | Complexity |
180
+ | ------------- | ---------- | -------- | ---------- |
181
+ | batch | Hours-days | Lowest | Simplest |
182
+ | micro-batch | Minutes | Moderate | Low |
183
+ | streaming | Sub-second | High | High |
184
+ | hybrid | Mixed | Highest | Highest |
185
+
186
+ **Guidance**: Start with batch unless latency requirements demand otherwise. Micro-batch is often a good compromise.
187
+
188
+ ---
189
+
190
+ ## Processing Semantics
191
+
192
+ | Velocity Mode | At-least-once | Exactly-once | At-most-once |
193
+ | --------------- | ------------- | ------------ | ------------ |
194
+ | **batch** | Easy | Easy | Easy |
195
+ | **micro-batch** | Easy | Achievable | Easy |
196
+ | **streaming** | Default | Complex | Possible |
197
+ | **hybrid** | By path | By path | By path |
198
+
199
+ ---
200
+
201
+ ## Combining with Other Dimensions
202
+
203
+ | Combination | Implication |
204
+ | ------------------------------------------------ | ----------------------------------------- |
205
+ | `velocity: streaming` + `volume: large` | Requires streaming at scale (Kafka+Flink) |
206
+ | `velocity: batch` + `volatility: streaming` | Mismatch—reconsider architecture |
207
+ | `velocity: micro-batch` + `retention: transient` | Good for dashboards with short history |
208
+
209
+ ---
210
+
211
+ ## Machine-Readable Definition
212
+
213
+ - **Dimension Config**: `config/classifiers/dimensions/velocity-mode.dimension.json`
214
+ - **Schema**: `schemas/classifiers/v0/dimension-definition.schema.json`
215
+
216
+ ---
217
+
218
+ ## Attribution
219
+
220
+ This standard is the canonical reference for velocity mode classification across 3leaps ecosystems. Downstream consumers should reference or vendor this standard rather than maintaining independent copies.
221
+
222
+ **Review Cycle**: Semiannual with platform and data engineering teams.