Comparison tool
compare_framework_evidence assembles deterministic, independently bounded evidence
from two through eight frameworks. It does not merge source graphs and does not create
an official alignment.
For workflow guidance, see Compare framework evidence.
Request variants
The request is selected by mode and shares the following fields.
Common fields
| Field | Type | Default / bound | Meaning |
|---|---|---|---|
frameworkIds |
array[string] | required; 2-8 | Distinct framework families to compare |
snapshotIds |
array[string] | empty; max 8 | Optional exact snapshots |
includeContextPaths |
boolean | true | Attach bounded hierarchy context to retained matches |
includeGroupings |
boolean | false | Permit Standard Grouping candidates |
localGradeLabels |
array[string] | empty; max 64 | Shared exact local grade/stage filters |
normalizedGrades |
array[string] | empty; max 64 | Shared normalized grade facets |
maxMatchesPerFramework |
integer | 5; 1-10 | Independent candidate quota per framework |
Framework IDs, snapshot IDs, and grade filters must not contain duplicate exact values.
When exact snapshots are supplied, selection must resolve consistently to the selected
frameworks; otherwise the tool returns invalid_comparison_selection.
Text mode
{
"request": {
"mode": "text",
"query": "length measurement",
"match": {
"matchMode": "tokens",
"operator": "all"
},
"frameworkIds": [
"nigeria-nerdc-mathematics-primary-1-3",
"rwanda-reb-mathematics-lower-primary-1-3"
],
"includeContextPaths": true,
"maxMatchesPerFramework": 5
}
}
The query accepts at most 512 characters and at most 32 normalized lexical tokens.
match uses the same token or exact-phrase contract as search_standards.
Exact-code mode
{
"request": {
"mode": "code_exact",
"query": "<statement-code>",
"frameworkIds": ["<framework-a>", "<framework-b>"],
"maxMatchesPerFramework": 5
}
}
Prefix-code mode
{
"request": {
"mode": "code_prefix",
"query": "<code-prefix>",
"frameworkIds": ["<framework-a>", "<framework-b>"],
"maxMatchesPerFramework": 5
}
}
Code queries are limited to 256 characters. Code-mode availability is evaluated independently for each selected package.
Independent package processing
For every selected framework, the service:
- resolves one accepted snapshot and Academic Standards package;
- resolves the package-bound interpretation profile;
- executes one package-local search with the same requested query and filters;
- retains that package's original ranking, warnings, result bound, and cursor;
- retrieves exact standards for retained hits; and
- optionally attaches bounded hierarchy context.
One package's ranking or capability limitation does not change another package's retrieval behavior.
Result contract
The result contains:
| Field | Meaning |
|---|---|
request |
Canonical resolved comparison request |
sections |
One package-local evidence section per selected framework |
warnings |
Canonically aggregated comparison warnings |
disclosures |
Fixed interpretation disclosures |
epistemicStatus |
deterministic_derived |
Sections are returned in canonical framework/snapshot/package identity order.
Each sections[] item includes:
- framework, snapshot, graph-package, and profile identity;
- source metadata and local grades/stages;
- normalized grades;
- hierarchy, language, rights, source-role, and code-search policy;
- comparison dimensions and known source anomalies;
- required profile disclosures;
- retained
matches; - original package search warnings;
- comparison-specific warnings; and
- package-local
hasMore/nextCursorstate.
Each match has:
- the original
searchHit; - an exact
standardresult; retrievalStatus: retrieval_candidate; and- optional bounded
contextpluscontextComplete.
Comparison warning codes
code_search_unsupported is section-local. It allows comparison evidence to preserve a
package capability limitation without pretending that another package shares the same
limitation.
Fixed disclosures
The result always carries disclosures that establish the main interpretation boundary:
- normalized grades are retrieval facets, not international equivalence;
hasChildis structural, not progression or prerequisite evidence;- standards do not prove learner mastery;
- code, identifier, grade, hierarchy, or text similarity does not establish official equivalence;
- cross-framework matches are exploratory retrieval evidence;
- generated comparative conclusions are model-inferred; and
- rights, attribution, and provenance remain package-local.
Do not promote retrieval evidence to official alignment
A result may support a human or model-authored comparison, but the server does not create an alignment, mapping, equivalence assertion, endorsement, or grade-equivalence record.
Common errors
| Error code | Typical cause |
|---|---|
invalid_comparison_selection |
Framework/snapshot selection cannot form the requested exact comparison |
framework_not_found |
A selected framework or snapshot is unavailable |
capability_unavailable |
Required package behavior cannot be performed |
Search limitations that can be represented as evidence are generally surfaced as warnings inside the appropriate framework section rather than as cross-framework inference.
Next: Progression tool