Skip to content

Grading interaction layer: area dependency graph, requiredLevel, Task-ID #49

Description

@a6b8

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).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions