Skip to content

Commit 463e50f

Browse files
author
iexitdev
committed
docs(release): record h4 pro boundary approval
1 parent ff0a495 commit 463e50f

8 files changed

Lines changed: 164 additions & 133 deletions

docs/internal/completion-audit.md

Lines changed: 15 additions & 15 deletions
Large diffs are not rendered by default.

docs/release/evidence/owner-gates.json

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,19 +5,21 @@
55
{
66
"id": "h4",
77
"name": "Pro/free boundary approval",
8-
"status": "open",
8+
"status": "approved",
99
"requiredFor": ["H5", "H6"],
1010
"evidence": [
1111
"docs/release/h4-pro-scope.md",
1212
"docs/release/h4-owner-decision-memo.md"
1313
],
14-
"pendingDecisions": [
15-
"final free-vs-Pro feature boundary",
16-
"@chart-kit/pro package split",
17-
"@chart-kit/skia-renderer packaging",
18-
"license enforcement timing",
19-
"which preview interactions remain free at beta",
20-
"CandlestickChart beta visibility"
14+
"approvedAt": "2026-05-06",
15+
"approvedBy": "owner",
16+
"decisions": [
17+
"Free v2 remains useful with safe layout, SVG renderer, baseline charts, themes, accessibility helpers, and compatibility facade.",
18+
"@chart-kit/pro will be a separate package later.",
19+
"@chart-kit/skia-renderer remains a separate optional preview renderer package until native install, parity, and benchmark evidence are complete.",
20+
"No license enforcement before beta.",
21+
"Advanced interactions, range selector, pan/zoom, animation, financial charts, Skia, and large-data workflows stay preview/Pro-candidate for beta.",
22+
"CandlestickChart remains Financial Preview."
2123
]
2224
},
2325
{

docs/release/h4-owner-decision-memo.md

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,16 @@
11
# H4 Owner Decision Memo
22

3-
This memo converts the Pro/free boundary gate into explicit choices. It is a recommendation, not approval.
3+
This memo records the H4 Pro/free boundary approval from May 6, 2026.
44

5-
## Recommended Decision
5+
## Approved Decision
66

7-
Approve the Pro direction as a package-boundary plan, but do not add license enforcement yet.
7+
The owner approved the Pro direction as a package-boundary plan, with no license enforcement before beta.
88

99
Reason: the current implementation keeps the free/baseline public package useful, exposes current advanced workflows through `@chart-kit/react-native/pro-preview`, and records Pro-candidate feature buckets plus prop-level triggers in `packages/pro`. The final paid package and license behavior should wait until native evidence and beta feedback are stronger.
1010

1111
## Decision 1: Free Baseline
1212

13-
Recommendation:
13+
Approved:
1414

1515
- keep `react-native-chart-kit` as the compatibility package
1616
- keep `@chart-kit/react-native` as the clean modern free API
@@ -21,21 +21,21 @@ Rationale: existing users need a low-friction upgrade path, and new adopters nee
2121

2222
## Decision 2: Pro Package
2323

24-
Recommendation: ship Pro as a separate package later.
24+
Approved: ship Pro as a separate package later.
2525

2626
Suggested package direction:
2727

2828
```text
2929
@chart-kit/react-native # modern free package
3030
@chart-kit/pro # paid workflows and composition helpers
31-
@chart-kit/skia-renderer # optional renderer package, used by Pro docs/examples when approved
31+
@chart-kit/skia-renderer # separate optional preview renderer until native evidence is complete
3232
```
3333

3434
Rationale: a separate package keeps license checks, paid workflows, and optional native dependencies out of the free runtime.
3535

3636
## Decision 3: Pro Scope
3737

38-
Recommendation: keep the owner-proposed commercial buckets as Pro candidates:
38+
Approved: keep the owner-proposed commercial buckets as Pro candidates:
3939

4040
- production layout engine depth
4141
- production interactions
@@ -50,7 +50,7 @@ The current registry records these as `chartKitProPreviewFeatures`.
5050

5151
## Decision 4: Prop-Level Triggers
5252

53-
Recommendation: approve the trigger metadata as the working split map, not as runtime gating.
53+
Approved: use the trigger metadata as the working split map, not as runtime gating.
5454

5555
Examples currently tracked:
5656

@@ -73,43 +73,43 @@ Rationale: this lets the project decide later whether a component, a prop, or a
7373

7474
## Decision 5: License Timing
7575

76-
Recommendation: no license enforcement before beta.
76+
Approved: no license enforcement before beta.
7777

7878
Rationale:
7979

8080
- API feedback is more important than monetization code at this stage
81-
- free/pro boundaries are still under owner review
81+
- paid implementation and native evidence are still incomplete
8282
- native Skia and performance evidence are not complete
8383
- license checks should never live in `packages/core`
8484

8585
## Decision 6: Beta Labels
8686

87-
Recommendation:
87+
Approved:
8888

8989
- label advanced touch workflows, range selector, pan/zoom, animation previews, financial charts, Skia, and large-data features as preview or Pro candidate
9090
- keep `CandlestickChart` visible only as Financial Preview
9191
- keep `@chart-kit/react-native/pro-preview` as the temporary review entrypoint
9292

93-
## Recommended H4 Outcome
93+
## H4 Outcome
9494

95-
Approve the strategy, not the final paid implementation:
95+
Approved the strategy, not the final paid implementation:
9696

9797
1. Free v2 stays useful and trustworthy.
9898
2. Pro focuses on production pain and commercial workflows.
9999
3. Pro and Skia remain preview packages for beta.
100100
4. License enforcement is deferred.
101-
5. Final free-vs-Pro labels are revisited after native evidence and beta feedback.
101+
5. Final paid implementation details are revisited after native evidence and beta feedback.
102102

103-
Record approval only after the owner accepts or edits these decisions:
103+
Recorded approval:
104104

105105
```sh
106106
npm run release:owner:record -- \
107107
--gate h4 \
108-
--approved-by <owner> \
109-
--approved-at <yyyy-mm-dd> \
108+
--approved-by owner \
109+
--approved-at 2026-05-06 \
110110
--decision "Free v2 remains useful with safe layout, SVG renderer, baseline charts, themes, accessibility helpers, and compatibility facade." \
111111
--decision "@chart-kit/pro will be a separate package later." \
112-
--decision "@chart-kit/skia-renderer remains an optional renderer package until native evidence is complete." \
112+
--decision "@chart-kit/skia-renderer remains a separate optional preview renderer package until native install, parity, and benchmark evidence are complete." \
113113
--decision "No license enforcement before beta." \
114114
--decision "Advanced interactions, range selector, pan/zoom, animation, financial charts, Skia, and large-data workflows stay preview/Pro-candidate for beta." \
115115
--decision "CandlestickChart remains Financial Preview."

docs/release/h4-pro-scope.md

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
# H4 Pro Scope Decision Packet
22

3-
Status on May 5, 2026: owner monetization direction captured, package separation not approved for release yet.
3+
Status on May 6, 2026: H4 approved with the recommendations in this packet. Pro remains a separate future package, Skia remains a separate optional preview renderer, and no license enforcement is added before beta.
44

5-
This packet defines the recommended free-vs-Pro boundary for the v2 beta path. It does not add license checks. The implementation now keeps the main modern package barrel focused on the free/baseline API and exposes current Pro-candidate workflows through an explicit preview subpath until the owner approves the final package split and release timing.
5+
This packet defines the approved free-vs-Pro boundary for the v2 beta path. It does not add license checks. The implementation keeps the main modern package barrel focused on the free/baseline API and exposes current Pro-candidate workflows through an explicit preview subpath while paid package implementation and native evidence continue.
66

7-
## Recommended H4 Decision
7+
## Approved H4 Decision
88

99
Keep the free library useful and trustworthy. Make Pro about the places real production apps bleed: layout certainty, touch workflows, commercial chart types, export, premium templates, and performance.
1010

11-
Recommended beta decision:
11+
Approved beta decision:
1212

1313
- ship free v2 with SVG renderer, modern baseline charts, compatibility facade, themes, accessibility helpers, safe default layout, and basic examples
1414
- keep currently implemented advanced interactions, range selector, pan/zoom, animation, and financial charts visible only as preview/pro-candidate features until API feedback stabilizes
@@ -59,15 +59,15 @@ react-native-chart-kit # compatibility package and migration bridge
5959
@chart-kit/pro # paid workflow package that composes free primitives
6060
```
6161

62-
`packages/skia-renderer` currently exposes capability metadata, install guidance, and an injected Skia primitive adapter. `LineChart` can accept the injected renderer for its main plot, range selector, sticky-axis, path-local area gradients, threshold rect clips, measured text anchors, default marker, default legend, default tooltip, and debug-layout surfaces. `BarChart` can accept the injected renderer for its chart body, sticky Y-axis, and default tooltip overlay. `PieChart` and `DonutChart` can accept the injected renderer for slices, connector lines, and SVG text labels. `ProgressChart`, `ProgressRing`, `ContributionGraph`, and `CalendarHeatmap` can accept the injected renderer for their chart primitives and SVG text labels. `CombinedChart` can accept the injected renderer for bars, lines, axes, legend, selection overlay, and default tooltip. `CandlestickChart` can accept the injected renderer for its OHLC body, volume bars, session markers, selection overlay, default tooltip, and range selector. `npm run skia:parity` covers the local Skia primitive tests plus LineChart, BarChart, PieChart, ProgressChart, ContributionGraph, CombinedChart, and CandlestickChart renderer contracts. Sticky-axis labels require a Skia font, and native install evidence plus native renderer parity evidence remain pending in [skia-renderer-matrix.json](evidence/skia-renderer-matrix.json). The package does not add license gating until H4 approves the Pro/package split.
62+
`packages/skia-renderer` currently exposes capability metadata, install guidance, and an injected Skia primitive adapter. `LineChart` can accept the injected renderer for its main plot, range selector, sticky-axis, path-local area gradients, threshold rect clips, measured text anchors, default marker, default legend, default tooltip, and debug-layout surfaces. `BarChart` can accept the injected renderer for its chart body, sticky Y-axis, and default tooltip overlay. `PieChart` and `DonutChart` can accept the injected renderer for slices, connector lines, and SVG text labels. `ProgressChart`, `ProgressRing`, `ContributionGraph`, and `CalendarHeatmap` can accept the injected renderer for their chart primitives and SVG text labels. `CombinedChart` can accept the injected renderer for bars, lines, axes, legend, selection overlay, and default tooltip. `CandlestickChart` can accept the injected renderer for its OHLC body, volume bars, session markers, selection overlay, default tooltip, and range selector. `npm run skia:parity` covers the local Skia primitive tests plus LineChart, BarChart, PieChart, ProgressChart, ContributionGraph, CombinedChart, and CandlestickChart renderer contracts. Sticky-axis labels require a Skia font, and native install evidence plus native renderer parity evidence remain pending in [skia-renderer-matrix.json](evidence/skia-renderer-matrix.json). Per H4, Skia remains a separate optional preview renderer package and does not add license gating before beta.
6363

6464
`packages/pro` currently exists only as a preview feature-registry, surface-boundary, and injected composition package. It has no license checks, no runtime activation, and no gated chart implementations. Its registry now mirrors the owner-proposed commercial buckets: `pro-layout-engine`, `pro-interactions`, `pro-chart-types`, `pro-export`, `pro-theme-templates`, `pro-performance`, `skia-renderer`, and `accessibility-reports`. Each feature entry records the included paid capabilities, the commercial rationale, and the free guardrail that keeps baseline v2 useful. Its package-boundary metadata classifies current exports as compatibility, free baseline, or Pro candidate, and it now tracks prop-level Pro candidate triggers such as `LineChart.rangeSelector`, `LineChart.interaction=scrub`, `BarChart.mode=grouped`, `BarChart.orientation=horizontal`, `CombinedChart`, `CandlestickChart`, active donut selection, and injected renderer props. This makes the final split reviewable before moving runtime code. Its React Native preview helper accepts an injected `@chart-kit/react-native/pro-preview` module and selects Pro-candidate exports without statically importing the free runtime package.
6565

6666
`@chart-kit/react-native/pro-preview` now exists as an explicit preview entrypoint for current Pro-candidate workflows. It exposes the current advanced LineChart, BarChart, DonutChart, CombinedChart, CandlestickChart, and chart-selection surface while the main `@chart-kit/react-native` barrel stays focused on the free/baseline API. This is not license gating and does not decide the final paid boundary; it gives demos, docs, and `@chart-kit/pro` a clean target before runtime code moves.
6767

6868
`npm run surface:check` now also verifies that public docs, showcase source, and docs-example type fixtures do not import explicit Pro-preview-only exports from the main modern package barrel.
6969

70-
The beta publish list is controlled by [package-manifest.json](evidence/package-manifest.json). `@chart-kit/skia-renderer` and `@chart-kit/pro` remain pack-checked preview packages with `publishInBeta: false` until H4 approves the final Pro/package split.
70+
The beta publish list is controlled by [package-manifest.json](evidence/package-manifest.json). Per H4, `@chart-kit/skia-renderer` and `@chart-kit/pro` remain pack-checked preview packages with `publishInBeta: false` until paid-package implementation and native evidence are ready.
7171

7272
Implementation principles:
7373

@@ -80,7 +80,7 @@ Implementation principles:
8080

8181
## Preview Feature Labels
8282

83-
Until H4 implementation is approved, label these as preview or Pro candidate in docs/showcase language instead of calling them final free or final Pro:
83+
After H4 approval, keep these labeled as preview or Pro candidate in docs/showcase language instead of calling them final free or final Pro:
8484

8585
- advanced tooltip/crosshair/scrub workflows
8686
- LineChart range selector and brush selection
@@ -90,9 +90,9 @@ Until H4 implementation is approved, label these as preview or Pro candidate in
9090
- Combo/Dual-axis polish and advanced grouped/horizontal bar variants
9191
- future Skia renderer experiments
9292

93-
## Owner Decisions Needed
93+
## Approved Owner Decisions
9494

95-
H4 approval needs explicit answers:
95+
H4 approved these answers on May 6, 2026:
9696

9797
1. Does `@chart-kit/pro` ship as a separate package?
9898
2. Does `@chart-kit/skia-renderer` ship as a separate optional package or inside Pro?
@@ -101,11 +101,9 @@ H4 approval needs explicit answers:
101101
5. Should combo/dual-axis, grouped bars, horizontal stacked bars, and advanced contribution heatmap move to Pro candidates?
102102
6. Should the first beta publish without any license enforcement?
103103

104-
Recommended answers:
105-
106-
1. Yes, separate package.
107-
2. Separate optional package, with Pro docs and examples depending on it.
108-
3. Keep simple press handlers and baseline selection examples free; label production touch workflows as Pro candidates until pricing is final.
109-
4. Yes, but only as Financial Preview until native performance and the free-vs-Pro boundary are approved.
110-
5. Yes, where they are commercial workflows rather than baseline chart primitives.
111-
6. Yes. Add license enforcement only after API feedback and package boundaries settle.
104+
7. Yes, separate package.
105+
8. Separate optional preview package, with Pro docs and examples depending on it after native evidence is complete.
106+
9. Keep simple press handlers and baseline selection examples free; label production touch workflows as Pro candidates until pricing is final.
107+
10. Yes, but only as Financial Preview until native performance evidence is complete.
108+
11. Yes, where they are commercial workflows rather than baseline chart primitives.
109+
12. Yes. Add license enforcement only after API feedback and package boundaries settle.

0 commit comments

Comments
 (0)