Downstream Metadata Contract#
Use this page when you are consuming design-research-problems from
design-research-experiments, the umbrella package, or your own study
generation tooling.
Stable Fields#
The initial downstream compatibility contract is intentionally narrow. These
fields on design_research_problems.problems.ProblemMetadata are the ones
downstream study-generation code may rely on:
problem_id: Stable catalog identifier.title: User-facing display title.summary: Short one-paragraph problem description.kind: High-level family label fromdesign_research_problems.problems.ProblemKind.capabilities: Controlled-vocabulary implementation and packaging flags.study_suitability: Controlled-vocabulary study-use flags.feature_flags: Sorted union ofcapabilitiesandstudy_suitability.implementation: Optionalmodule:attributeimport path when a public executable binding exists.
Initial Use Cases#
This contract is the supported metadata surface for:
Choosing benchmark slices by family or feature flags.
Building study/problem registries in
design-research-experiments.Exposing problem summaries and titles in umbrella examples and reports.
Selecting control-condition and intervention-ready task subsets.
Controlled Vocabularies#
capabilities values come from KNOWN_PROBLEM_CAPABILITIES:
statement-markdowncitation-backedprompt-packetpackaged-assetsbounded-variablesequality-constraintbaseline-solverdiscrete-actionsoptional-evaluatorexternal-adapterserializable-state
study_suitability values come from KNOWN_STUDY_SUITABILITY:
human-subjects-readyideation-friendlyrequirements-study-readyvariety-study-readyintervention-ready
Fallback Behavior#
feature_flagsis always derived from the two controlled-vocabulary fields.implementationmay beNone; downstream consumers must treat that as “no public executable import path promised.”Fields outside this page, such as detailed taxonomy internals, citations, and assets, remain useful but are not yet part of the downstream generation compatibility promise.
Where To Read It#
ProblemRegistry.list()for catalog-level metadata.get_problem(problem_id).metadatafor one resolved packaged problem.Shared Types for the full typed metadata API.