Domain-general, config-declared research dimensions
ADR-0003: Domain-general, config-declared research dimensions
Section titled “ADR-0003: Domain-general, config-declared research dimensions”Status
Section titled “Status”Accepted
Context
Section titled “Context”Background and Problem Statement
Section titled “Background and Problem Statement”A research harness fans out across “dimensions” of inquiry. The template must
research anything — software architecture, regenerative agriculture, K-12
publishing — without the engine carrying a fixed domain vocabulary. The question
is where the dimensions a session analyzes come from (harness.config.json
dimensions[], the dimension-analyst agent).
Current Limitations
Section titled “Current Limitations”The prior generation hardwired a market-research taxonomy into the engine, which made the tool unusable outside that one domain.
Decision Drivers
Section titled “Decision Drivers”Primary Decision Drivers
Section titled “Primary Decision Drivers”- The core must be domain-general; no domain taxonomy may be hardwired.
- A clone should change its research lens by editing one file, not the engine.
Secondary Decision Drivers
Section titled “Secondary Decision Drivers”- The orchestrator and the
dimension-analystmust read dimensions, not embed them. - The default set should be sensible but fully overridable.
Considered Options
Section titled “Considered Options”Option 1: Hardcoded dimension taxonomy
Section titled “Option 1: Hardcoded dimension taxonomy”Description: Embed a fixed set of dimensions (e.g. market-research dimensions) directly in the engine.
- Advantages: Zero configuration for the one domain it targets.
- Disadvantages: Couples the engine to a domain and reproduces the prior system’s central limitation.
- Risk Assessment: technical low; schedule low; ecosystem high.
Option 2: Config-declared dimensions
Section titled “Option 2: Config-declared dimensions”Description: Read dimensions from harness.config.json dimensions[]; parameterize the dimension-analyst by a dimension id resolved at run time.
- Advantages:
dimensions[]is the single control surface; the default shipstechnical,landscape,trajectory, each with a description, and a clone replaces them wholesale; the analyst resolves methodology (a pack skill if pack-provided, else general web research) rather than a fixed taxonomy. - Disadvantages: A misconfigured
dimensions[]yields a thin or skewed run. - Risk Assessment: technical low; schedule low; ecosystem low.
Option 3: Per-session free-form dimensions
Section titled “Option 3: Per-session free-form dimensions”Description: Invent dimensions ad hoc at run time with no manifest declaration.
- Advantages: Maximally flexible per run.
- Disadvantages: Nothing is declarative or reviewable; the goal contract and the manifest lose a stable reference, undermining verifiability.
- Risk Assessment: technical medium; schedule low; ecosystem medium.
Decision
Section titled “Decision”Adopt Option 2: config-declared dimensions. Dimensions are read from
harness.config.json dimensions[]. The orchestrator fans out one
dimension-analyst per declared dimension, and the goal schema’s dimensions[]
references those same ids. The shipped default (technical, landscape,
trajectory) is illustrative, not canonical.
Consequences
Section titled “Consequences”Positive
Section titled “Positive”- The harness is domain-general and re-targeted by editing one manifest array.
- The goal contract, orchestrator, and analysts agree on dimension identity by config, not by code.
Negative
Section titled “Negative”- The quality of a run depends on how well the clone declares its dimensions.
Neutral
Section titled “Neutral”- The shipped defaults serve as an example only and are expected to be replaced.
Decision Outcome
Section titled “Decision Outcome”Config-declared dimensions keep the engine domain-general while making the research lens a one-file edit. The dependence on good configuration is inherent to a domain-general tool and is mitigated by shipping a sensible default set and schema validation of the manifest.
Related Decisions
Section titled “Related Decisions”More Information
Section titled “More Information”- Date: 2026-06-23
- Source:
harness.config.json,schemas/goal.schema.json
2026-06-23
Section titled “2026-06-23”Status: Compliant
| Finding | Files | Assessment |
|---|---|---|
| Dimensions declared in the manifest | harness.config.json (dimensions[]) | compliant |
| Goal schema references dimension ids | schemas/goal.schema.json (dimensions[]) | compliant |
| Manifest validated by schema | harness.config.schema.json | compliant |
Summary: Dimensions are declared in harness.config.json and referenced by the goal schema; the manifest is schema-validated.
Action Required: None