Skip to content

OCaml/Dune projects: orchestration template hardcodes 'bun test' baseline; substitute 'dune runtest' #502

@lukstafi

Description

@lukstafi

Summary

The orchestration coder/reviewer templates and worker conventions assume a JS/Bun project (e.g. bun test baseline, bun run typecheck). When a coder is assigned to an OCaml/Dune project (e.g. ahrefs/ocannl), the baseline gates do not apply — dune runtest is the correct test runner and dune build @check is the lighter pre-edit smoke. Coders currently re-derive this each round.

Data Points

  • "bun test baseline doesn't apply to OCaml/Dune projects. The orchestration template assumes a JS/Bun project. For ocannl substitute dune runtest; baseline failures here (test_max_pool2d, test_ndarray_binary_io, micrograd_demo_logging, rope_test) are unrelated backdrop. dune build @check is the lighter pre-edit smoke test." (from gh-ocannl-203 / coder, 2026-05-05)
  • "Cleanup after probe scripts: don't head -n -<N> on macOS. macOS head doesn't support negative line counts." (from gh-ocannl-203 / coder, 2026-05-05) — minor, but suggests OCaml/macOS coder ergonomics need explicit guidance.

Raw Excerpts

Original feedback
  1. bun test baseline doesn't apply to OCaml/Dune projects. The
    orchestration template assumes a JS/Bun project. For ocannl substitute
    dune runtest; baseline failures here (test_max_pool2d,
    test_ndarray_binary_io, micrograd_demo_logging, rope_test) are
    unrelated backdrop. dune build @check is the lighter pre-edit
    smoke test.
    gh-ocannl-203--workflow-feedback-coder.md
  1. Cleanup after probe scripts: don't head -n -<N> on macOS. macOS
    head doesn't support negative line counts. When experimenting with
    throwaway dune stanzas, git checkout -- test/einsum/dune is the
    safer cleanup than ad-hoc tail-trimming.
    gh-ocannl-203--workflow-feedback-coder.md

Suggested Action

Make the orchestration templates project-language-aware: replace hardcoded bun test / bun run typecheck references in coder skills with a per-project test command lookup (config field on each project, e.g. test_command: dune runtest, defaulting to bun test for JS/TS projects). Reference .expected snapshot inclusion of OCANNL config-lookup banner is another OCaml-specific gotcha worth a one-liner in the project-language doc.

Also tied: the .expected snapshots for OCANNL must include the config-lookup banner (Retrieving commandline, environment, or config file variable ocannl_log_level\nFound 0, in the config file) as the first two lines; a hand-written .expected that omits these will fail. Workflow: write the test, build via dune build test/<...>.exe.output, then cp _build/default/.../<name>.exe.output test/<name>.expected, or use dune promote.


Filed by ludics-feedback-digest

Metadata

Metadata

Assignees

No one assigned

    Labels

    workflow-feedbackAuto-filed workflow feedback from agent sessions

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions