Skip to content

[F2] Methodology prompt: when target-repo docs conflict with campaign.yaml, campaign wins #247

@sriumcp

Description

@sriumcp

Problem

When the campaign.yaml conflicts with patterns in the target repo's docs (e.g., CLAUDE.md, README examples, sample YAMLs), the DESIGN agent has no explicit hierarchy to follow. It tends to pattern-match on whichever corpus is larger — usually the docs — and produces a bundle that reflects the docs' conventions rather than the campaign's locked spec.

Concrete instance from paper-memorytime-mirage

BLIS's CLAUDE.md uses qwen/qwen3-14b in 10+ example invocations. The campaign locked meta-llama/llama-3.1-8b-instruct. The first DESIGN agent picked qwen because the docs' weight of evidence was larger. Both models are calibrated in BLIS's defaults.yaml, so the choice was internally defensible — but it silently rewrote the experimental physics (different π/δ in the latency model, different K derivation).

This compounds with F1 (no spec-fidelity enforcement): nous didn't catch the deviation because the bundle was self-consistent.

Desired behavior

The DESIGN agent's methodology prompt (the system prompt template under orchestrator/prompts/design.md or equivalent) must include an explicit hierarchy clause:

When the campaign.yaml conflicts with the target repo's documentation, sample configs, or example YAMLs, the campaign.yaml wins. Do not adopt patterns from the target repo's docs (e.g., model names, default concurrency, default block sizes) if they contradict any value declared in the campaign.yaml's workload, target_system, or locked_parameters sections. When in doubt, treat the campaign.yaml as the only source of truth for experiment design; treat the target repo as a source of truth only for how to invoke the system, not what to invoke it with.

Suggested implementation sketch

  1. Locate the design-phase methodology prompt (likely in orchestrator/prompts/design.md or wherever the SDK turn's system prompt is assembled).
  2. Add the hierarchy clause as a top-level section, before any section that instructs the agent to read the target repo.
  3. Add a worked example: "Example: campaign.yaml says model: llama-3.1-8b-instruct. Target repo's CLAUDE.md shows qwen/qwen3-14b in 10+ examples. Choose llama. The campaign.yaml wins."
  4. Update the design-phase regression tests (if any) to verify the prompt contains the hierarchy clause.

Acceptance criteria

  • Design-phase methodology prompt contains an explicit "campaign > target-repo-docs" hierarchy clause with a worked example.
  • Either a unit test asserts the clause's presence, or the prompt is rendered into a fixture file that's diff-checkable in CI.
  • Friction report F2 row in the tracking issue checks off.

Severity

MEDIUM-HIGH — drove F1 in part. Cheap structural fix at the prompt layer.

Source

friction-report.md F2, paper-memorytime-mirage campaign (2026-05).


Part of friction-report tracking issue #245.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfriction-reportFrom external campaign-author friction reports

    Type

    No type
    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