Add the grading-side mechanism for the area-based interaction model.
Scope
- AreaDependencyGraph (
src/AreaDependencyGraph.mjs + src/data/area-dependency-graph.json): data-driven dependsOn + requiredLevel graph, pure evaluate({graph, derivedLevels}) -> {ready, gated}, classifyArea (deterministic vs non-deterministic). Provider-namespace gate = all namespace schemas at deterministic-green.
- RequiredLevel (
src/RequiredLevel.mjs): 4-level ladder (imported → structural-valid → deterministic-green → stable), derived from existing signals (no new persisted status). deterministic-green requires HTTP 200. Plus deriveSchemaLevel/deriveNamespaceLevel wrappers.
- TaskId (
src/TaskId.mjs): <schemaIdSlug>--<area-set-hash> generator/parser, order-independent 8-hex set hash, additive to the slug.
- RebuildIndex: re-grade hash-invalidation — on
schemaHash change a node falls to pending.
- Error-code prefixes registered (
ADG-*, RLV-*, TID-*).
- System-purity test suite (G1/G5/G6 — strict-JSON, HTTP-4xx != pass, single-writer no-free-write).
Verification
npm test: 761/761 green (44 suites)
npm run lint:hygiene: PASS
- Version bump 2.0.1 → 2.1.0 (new public API)
Read-only, deterministic-first; no scoring-model change (gradingSpec 3.0.0 transport unchanged).
Add the grading-side mechanism for the area-based interaction model.
Scope
src/AreaDependencyGraph.mjs+src/data/area-dependency-graph.json): data-drivendependsOn+requiredLevelgraph, pureevaluate({graph, derivedLevels}) -> {ready, gated},classifyArea(deterministic vs non-deterministic). Provider-namespace gate = all namespace schemas atdeterministic-green.src/RequiredLevel.mjs): 4-level ladder (imported → structural-valid → deterministic-green → stable), derived from existing signals (no new persisted status).deterministic-greenrequires HTTP 200. PlusderiveSchemaLevel/deriveNamespaceLevelwrappers.src/TaskId.mjs):<schemaIdSlug>--<area-set-hash>generator/parser, order-independent 8-hex set hash, additive to the slug.schemaHashchange a node falls topending.ADG-*,RLV-*,TID-*).Verification
npm test: 761/761 green (44 suites)npm run lint:hygiene: PASSRead-only, deterministic-first; no scoring-model change (gradingSpec 3.0.0 transport unchanged).