@plasius/learning 0.1.0 → 0.2.1
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.
- package/README.md +58 -7
- package/dist/index.cjs +758 -54
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +148 -3
- package/dist/index.d.ts +148 -3
- package/dist/index.js +748 -53
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -6,14 +6,22 @@ The package does **not** provide HTTP handlers, persistence, authentication, Tok
|
|
|
6
6
|
|
|
7
7
|
## Junior Coder catalog
|
|
8
8
|
|
|
9
|
-
The initial catalog is exported as
|
|
9
|
+
The initial immutable catalog is exported as
|
|
10
|
+
`JUNIOR_CODER_ROBOT_RESCUE_PATH_V1`. The current uniformly priced pilot
|
|
11
|
+
catalog is exported as `JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1`, with
|
|
12
|
+
`JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT` available to adapters that
|
|
13
|
+
intentionally follow published successors. Each contains 19 independently
|
|
14
|
+
sellable, self-contained project modules:
|
|
10
15
|
|
|
11
16
|
- 8 original arcade game modules;
|
|
12
17
|
- 5 simulator-backed robotics modules;
|
|
13
18
|
- 3 constrained Vibe Coding modules;
|
|
14
19
|
- 3 web application modules.
|
|
15
20
|
|
|
16
|
-
|
|
21
|
+
Both catalogs remain in `pilot-grant-only` commercial state. The immutable
|
|
22
|
+
`1.1.0` modules each cost 50 Tokens (50,000 subunits), carrying a
|
|
23
|
+
non-redeemable £5 reference value. Price metadata is not authorization to
|
|
24
|
+
enable public checkout.
|
|
17
25
|
|
|
18
26
|
## Install
|
|
19
27
|
|
|
@@ -25,11 +33,11 @@ npm install @plasius/learning
|
|
|
25
33
|
|
|
26
34
|
```ts
|
|
27
35
|
import {
|
|
28
|
-
|
|
36
|
+
JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT,
|
|
29
37
|
assertValidLearningPath,
|
|
30
38
|
} from "@plasius/learning";
|
|
31
39
|
|
|
32
|
-
assertValidLearningPath(
|
|
40
|
+
assertValidLearningPath(JUNIOR_CODER_ROBOT_RESCUE_PATH_CURRENT);
|
|
33
41
|
```
|
|
34
42
|
|
|
35
43
|
## Calculate an assessment
|
|
@@ -46,17 +54,55 @@ const result = calculateAssessment(rubric, [
|
|
|
46
54
|
console.log(result.score, result.completed);
|
|
47
55
|
```
|
|
48
56
|
|
|
57
|
+
## Validate mission authoring
|
|
58
|
+
|
|
59
|
+
Mission authoring is additive to the immutable catalog. A bundle contains
|
|
60
|
+
physically separate learner and facilitator projections and is checked against
|
|
61
|
+
the exact catalog module that owns its rubric, mission and badges.
|
|
62
|
+
|
|
63
|
+
```ts
|
|
64
|
+
import {
|
|
65
|
+
JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1,
|
|
66
|
+
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
67
|
+
assertValidMissionAuthoringBundle,
|
|
68
|
+
} from "@plasius/learning";
|
|
69
|
+
|
|
70
|
+
const roadHopper = JUNIOR_CODER_ROBOT_RESCUE_PATH_V1_1.modules.find(
|
|
71
|
+
(module) => module.slug === "road-hopper-rally",
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
if (!roadHopper) throw new Error("Road Hopper Rally is missing");
|
|
75
|
+
|
|
76
|
+
assertValidMissionAuthoringBundle(
|
|
77
|
+
ROAD_HOPPER_RALLY_MISSION_ONE_AUTHORING_V1,
|
|
78
|
+
roadHopper,
|
|
79
|
+
);
|
|
80
|
+
```
|
|
81
|
+
|
|
49
82
|
## Contract rules
|
|
50
83
|
|
|
51
84
|
- Published IDs and versions are immutable.
|
|
85
|
+
- Reference prices are product-copy metadata and never create cash redemption
|
|
86
|
+
rights.
|
|
52
87
|
- A module entitlement must bind to an exact module version.
|
|
88
|
+
- `admin-test-grant` is distinct from pilot, support and paid purchase sources;
|
|
89
|
+
consuming services must not attach an economy transaction to it.
|
|
53
90
|
- Learner material never contains facilitator-only solutions or protected tests.
|
|
91
|
+
- Mission stages follow `learn → predict → build → run → assess → inspect → fix
|
|
92
|
+
→ explain → reward`, and readiness checks never affect the score.
|
|
93
|
+
- Learner evidence and rewards can bind only to visible goals; protected goal
|
|
94
|
+
IDs stay in the facilitator projection.
|
|
54
95
|
- Rubric criteria total exactly 100 points.
|
|
55
96
|
- Completion requires a score of at least 80 and every mandatory criterion.
|
|
56
97
|
- Module agents may explain evidence and propose a bounded next step, but cannot assign scores or rewards.
|
|
57
98
|
- Physical requirements are disclosed by a versioned manifest before purchase.
|
|
58
99
|
|
|
59
|
-
See [the foundation design](docs/design/junior-coder-catalog-foundation.md)
|
|
100
|
+
See [the foundation design](docs/design/junior-coder-catalog-foundation.md),
|
|
101
|
+
[the uniform pricing design](docs/design/junior-coder-uniform-pricing.md),
|
|
102
|
+
[the mission authoring design](docs/design/junior-coder-mission-authoring.md),
|
|
103
|
+
[ADR 0001](docs/adrs/adr-0001-learning-domain-and-catalog-boundary.md), and
|
|
104
|
+
[ADR 0002](docs/adrs/adr-0002-immutable-module-repricing-and-admin-test-source.md),
|
|
105
|
+
and [ADR 0003](docs/adrs/adr-0003-mission-authoring-manifests-are-additive-and-separated.md).
|
|
60
106
|
|
|
61
107
|
## Development
|
|
62
108
|
|
|
@@ -69,8 +115,13 @@ npm run build
|
|
|
69
115
|
npm run pack:check
|
|
70
116
|
```
|
|
71
117
|
|
|
72
|
-
Node.js 24 is required.
|
|
73
|
-
|
|
118
|
+
Node.js 24 is required. Public pull-request code is validated on an isolated
|
|
119
|
+
GitHub-hosted Linux runner with read-only workflow permissions. Main-branch CI
|
|
120
|
+
and both release jobs explicitly select the approved
|
|
121
|
+
`Public CI - Quarantined` self-hosted runner group. `CI_RUNNER_GROUP` /
|
|
122
|
+
`CI_RUNNER_LABELS` and `CD_RUNNER_GROUP` / `CD_RUNNER_LABELS` are reserved for
|
|
123
|
+
governed operator configuration. The organisation group remains restricted to
|
|
124
|
+
allowlisted `main` workflows and selected repositories. Release coverage and
|
|
74
125
|
the CycloneDX SBOM are retained even when an external coverage or provenance
|
|
75
126
|
service is unavailable. Release tags and GitHub Releases use a current-repository
|
|
76
127
|
GitHub App token with explicit Contents and Workflows write permissions; npm
|