Work in progress. An open, evolving writeup shared early for discussion; some
sections are still being filled in. Shared so other groups can adopt these methods
informed. This is one case study, not a general theory of standards methodology — that
field is much broader than this exercise. Contents may move to a more permanent home.
The opportunity
A large share of standards work is empirical grind: implementing candidate designs,
building examples across domains, stress-testing at scale, cross-referencing other
specifications, and writing it all up for expert review. That is precisely the kind of
work AI agents are good at accelerating.
We tried it in earnest. The task was the empirical comparison of candidate mechanisms
called for in the OpenUSD source-identifiers proposal (PR #105) — implement the
candidates, exercise them, and give reviewers something concrete to evaluate. We ran it,
and re-ran it several times as our method matured. This report is what we learned:
how the work was structured, the practices that made it productive, and the pitfalls —
including one subtle pitfall we think every group doing evaluative work with agents
should know about.
How the work was split
What emerged was a genuine collaboration, not "human directs, agent executes":
- The agent brought volume and tirelessness — implementing multiple candidate schemas,
generating examples across several industry verticals, building stress tests at
100k-prim scale, mining version history to anticipate reviewer concerns, checking
external claims against primary sources, and propagating a design change across dozens
of files in minutes.
- The human brought judgment — what matters to the reviewers, when to stop researching
and start writing, and the quality gates that catch what the agent can't see.
Neither would have produced the result alone in the same time. That complementarity is the
case for agentic standards work; the rest of this is about doing it well.
Practices that worked
These were the durable, reusable wins — recommended to anyone starting:
- Externalize the plan — and the inputs to it — to disk early, in small phases. A
model's context window is not durable storage, and the trap is subtler than "remember to
plan": gathering enough context to write the plan can itself exhaust the budget (see
the context-loop pitfall below). Capturing inputs and the plan to a file incrementally,
and working in small committed phases, keeps progress on disk rather than in context.
This is the single highest-leverage practice, and it matters most for agents with
smaller context windows.
- Commit after every logical unit. Commits are save points; uncommitted work does not
survive a context reset.
- Verify every external claim against primary sources. Agents are most confident
about the specs they know least, generating plausible URIs, governance claims, and
identifier formats that don't exist. Budget time to check.
- Name the audience explicitly. "Write a comparison" yields generic output; "write for
the reviewer who will scrutinize X" yields targeted output.
- Expect infrastructure failure as the normal case — context resets, timeouts,
subprocess crashes — and design the workflow to tolerate them, rather than treating them
as anomalies.
- The human's scarcest contribution is judgment, not direction. A few words correcting
a confidently-stated factual error, before it reached reviewers, were worth more than any
volume of detailed task instruction.
Pitfalls
Two were routine and easily managed once recognized:
- Confident hallucination about other standards — the most reliable failure mode,
caught by a domain-aware human and then prevented by verifying every external claim.
- Self-invisible context-reset loops. The agent would begin reading the inputs it
needed in order to plan, hit its context limit before producing anything, compact, and
wake with no memory that it had already tried — re-reading the same files and overflowing
again, several times in a row. It couldn't self-diagnose the loop: after a reset, each
attempt looks like the first. A human had to notice the repetition from outside and break
it. Crucially, this scales with context-window size — a smaller window can loop on the
read-to-plan step alone, where a larger one would clear it easily. The fix is procedural
(externalize early, small phases, commit per phase), not a cleverer prompt — and the
tighter the context budget, the more disciplined you have to be about it.
The third is subtle, and it's the main reason for this writeup.
Framing bias in "compare-and-recommend" tasks
When an agent is asked to compare options and recommend one, the analysis can tilt
toward a favored answer — not by stating anything false, but through how the evaluation
is framed. In our case the tilt had a consistent signature:
- It gravitated toward whichever option could be cast as the superset of the others —
the one that looks like "it has all the pieces." Across re-runs the named winner changed,
but that structural position didn't.
- The tilt lived in which evaluation criteria were chosen, not in the scores. The
individual scores were defensible; a majority of the criteria simply happened to favor
one mechanism class. You can reach a confident verdict without shading a single number.
- The recommendation itself absorbed it. A verdict on which design is "best," for an
open question with no ground truth, can't be checked against anything — so it becomes
wherever the framing points.
What made it genuinely hard to catch:
- It survived multiple re-runs, including one rebuilt from a clean starting point —
the tilt re-entered through a different door (one candidate arrived with concrete,
code-shaped material and the others got reshaped to "match" it).
- It slipped past an adversarial reviewer, who caught real surface issues but not the
framing, and then authored the next pass and introduced a fresh tilt — unchecked.
- It was absent from the agents' own careful retrospective, which honestly cataloged
every surface mistake and was silent on the framing. That's the crux: you can't
introspect your way out of it, because the tilt operates at the same level as the
introspection.
What helped:
- Anchor evaluation criteria to authorized external sources you didn't author (here,
the proposal's own stated principles and open questions), so the criteria set can't be
quietly chosen to favor an answer.
- For open design questions, surface what is and isn't decidable rather than naming a
winner. We dropped "recommend one" as the deliverable.
- Fresh review each round — ideally a different model family — on the current
author's work. (Our evaluation passes were the same model family across versions;
same-family review didn't decorrelate the tilt.)
- After-the-fact forensic review of full transcripts and version history — which is the
only reason we found any of this. Later narratives, summaries, and even archive
descriptions had drifted from what the primary record showed.
A hopeful note: even with the tilt, the exercise produced a genuinely useful concept —
"overflow," a freeform space for domain-specific fields beyond a governed core, with a path
to standardization. It was born as the argument for a biased recommendation; the work was
separating the good idea from the advocacy it arrived in. A tilted process can still yield
real value once the two are pulled apart.
What we'd tell the next team
- Plan to disk; commit per phase; verify every external claim; name the audience; expect
infrastructure failure.
- Tie every consequential framing choice to a source you didn't write, or expose it to
outside counter-signal.
- Prefer "here's what's decidable, with evidence" over "here's the winner" on open
questions.
- Get fresh, ideally cross-family, review every round — and read the transcripts after the
fact, not just the summaries.
Open items & caveats
On confidence: the cross-run pattern here is not an independent-reproduction claim.
The passes weren't independent — later ones built on earlier artifacts and shared a model
family. What's documented is a recurring structural tilt and how it entered, in a single
case study — not a controlled experiment.
The opportunity
A large share of standards work is empirical grind: implementing candidate designs,
building examples across domains, stress-testing at scale, cross-referencing other
specifications, and writing it all up for expert review. That is precisely the kind of
work AI agents are good at accelerating.
We tried it in earnest. The task was the empirical comparison of candidate mechanisms
called for in the OpenUSD source-identifiers proposal (PR #105) — implement the
candidates, exercise them, and give reviewers something concrete to evaluate. We ran it,
and re-ran it several times as our method matured. This report is what we learned:
how the work was structured, the practices that made it productive, and the pitfalls —
including one subtle pitfall we think every group doing evaluative work with agents
should know about.
How the work was split
What emerged was a genuine collaboration, not "human directs, agent executes":
generating examples across several industry verticals, building stress tests at
100k-prim scale, mining version history to anticipate reviewer concerns, checking
external claims against primary sources, and propagating a design change across dozens
of files in minutes.
and start writing, and the quality gates that catch what the agent can't see.
Neither would have produced the result alone in the same time. That complementarity is the
case for agentic standards work; the rest of this is about doing it well.
Practices that worked
These were the durable, reusable wins — recommended to anyone starting:
model's context window is not durable storage, and the trap is subtler than "remember to
plan": gathering enough context to write the plan can itself exhaust the budget (see
the context-loop pitfall below). Capturing inputs and the plan to a file incrementally,
and working in small committed phases, keeps progress on disk rather than in context.
This is the single highest-leverage practice, and it matters most for agents with
smaller context windows.
survive a context reset.
about the specs they know least, generating plausible URIs, governance claims, and
identifier formats that don't exist. Budget time to check.
the reviewer who will scrutinize X" yields targeted output.
subprocess crashes — and design the workflow to tolerate them, rather than treating them
as anomalies.
a confidently-stated factual error, before it reached reviewers, were worth more than any
volume of detailed task instruction.
Pitfalls
Two were routine and easily managed once recognized:
caught by a domain-aware human and then prevented by verifying every external claim.
needed in order to plan, hit its context limit before producing anything, compact, and
wake with no memory that it had already tried — re-reading the same files and overflowing
again, several times in a row. It couldn't self-diagnose the loop: after a reset, each
attempt looks like the first. A human had to notice the repetition from outside and break
it. Crucially, this scales with context-window size — a smaller window can loop on the
read-to-plan step alone, where a larger one would clear it easily. The fix is procedural
(externalize early, small phases, commit per phase), not a cleverer prompt — and the
tighter the context budget, the more disciplined you have to be about it.
The third is subtle, and it's the main reason for this writeup.
Framing bias in "compare-and-recommend" tasks
When an agent is asked to compare options and recommend one, the analysis can tilt
toward a favored answer — not by stating anything false, but through how the evaluation
is framed. In our case the tilt had a consistent signature:
the one that looks like "it has all the pieces." Across re-runs the named winner changed,
but that structural position didn't.
individual scores were defensible; a majority of the criteria simply happened to favor
one mechanism class. You can reach a confident verdict without shading a single number.
open question with no ground truth, can't be checked against anything — so it becomes
wherever the framing points.
What made it genuinely hard to catch:
the tilt re-entered through a different door (one candidate arrived with concrete,
code-shaped material and the others got reshaped to "match" it).
framing, and then authored the next pass and introduced a fresh tilt — unchecked.
every surface mistake and was silent on the framing. That's the crux: you can't
introspect your way out of it, because the tilt operates at the same level as the
introspection.
What helped:
the proposal's own stated principles and open questions), so the criteria set can't be
quietly chosen to favor an answer.
winner. We dropped "recommend one" as the deliverable.
author's work. (Our evaluation passes were the same model family across versions;
same-family review didn't decorrelate the tilt.)
only reason we found any of this. Later narratives, summaries, and even archive
descriptions had drifted from what the primary record showed.
A hopeful note: even with the tilt, the exercise produced a genuinely useful concept —
"overflow," a freeform space for domain-specific fields beyond a governed core, with a path
to standardization. It was born as the argument for a biased recommendation; the work was
separating the good idea from the advocacy it arrived in. A tilted process can still yield
real value once the two are pulled apart.
What we'd tell the next team
infrastructure failure.
outside counter-signal.
questions.
fact, not just the summaries.
Open items & caveats
framings) — in progress.