fix: customer-readiness audit on main - #21
Conversation
Removes internal-only references, normalizes setup commands across docs, fixes stale YAML examples, and consolidates the doc set so customers see a coherent, runnable surface. Sensitive content removal - Delete docs/private-preview/access-and-repo-workflow.md (internal GBB/EMU/LT/TAM workflow guide). - Strip Microsoft-internal commentary from examples/travel_planner_langgraph/eval_config.yaml (Azure inference revenue, MSR systematization science, no-other-eval-tool claims). - Rename examples/phoenix_auto_trace/eval_framework.yaml -> eval_framework_template.yaml and add a TEMPLATE-ONLY header banner (it had a REPLACE_WITH_FRAMEWORK placeholder that crashed at runtime). - Drop GBB-specific phrasing from README.md and docs/status-and-roadmap.md. - Rewrite AGENTS.md prohibitions generically (drop TAM / LT review / PM planning enumeration). Setup normalization - Switch quickstart, CLI reference, examples README, and pipes README from 'uv venv / uv sync / uv run' to 'pip install -e .[otel,langgraph]' with venv activation, matching the README's canonical flow. - docs/quickstart.md: clearly mark Phoenix as optional in a second terminal so customers don't think 'phoenix serve' hangs the pipeline. - README: collapse macOS litellm caveat into a Troubleshooting section at the bottom and add Windows + Docker preflight notes there. Doc consolidation - Delete docs/glossary.md (terminology bridge folded into docs/concepts.md). - Delete docs/ai-agent-onboarding.md (paste-in prompt folded into AGENTS.md as a 'Paste-in prompt for end users' section). - Delete docs/targets/otel-agent.md (trace-capture content inlined into docs/targets/callable.md as 'Optional: add trace capture for richer evidence' + 'Why trace capture matters'). - Update all references across README, AGENTS, model-and-tools.md. Stale YAML examples (CONFIG_REFERENCE-aligned) - docs/writing-eval-specs.md: nest 'judge:' under 'pipeline:'. - examples/concepts/README.md: 'concept: foo' -> 'concept.name: foo'. - examples/phoenix_auto_trace/README.md: nest 'rollout:' under 'pipeline:'. - CONFIG_REFERENCE.md: minimal example needs target.model (was missing, violated 'exactly one of model/callable/endpoint'). Customer-facing terminology and reach - Reframe 'OTel-traced agents' to 'any agent or multi-agent system' across README, callable.md, and AGENTS.md. OTel trace capture is the optional upgrade, not a prerequisite. - examples/agents/README.md: 'p2m' -> 'Adaptive Eval'; demote external connector to 'advanced' (recommend target.callable instead). - examples/phoenix_auto_trace/README.md: framework count 28 -> 33 with honest note that 28 are demoed and the rest follow the same pattern; soften 'proves the spec's core claim' / 'zero per-framework maintenance' wording. Windows reliability - examples/phoenix_auto_trace/_tools.py: replace -> with -> in mock flight routes that get printed to console (avoids UnicodeEncodeError on default Windows codepages). - examples/phoenix_auto_trace/README.md: replace -> arrows with -> and document PYTHONUTF8=1 escape hatch. Verification - 505 unit tests pass. - All 7 example pipeline configs validate via load_config. - examples.phoenix_auto_trace._tools imports and simulate_tool() works. - 'rg glossary.md|ai-agent-onboarding.md|otel-agent.md|access-and-repo-workflow.md' returns no matches across the repo. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Jake Present (jakepresent)
left a comment
There was a problem hiding this comment.
Customer-readiness substance LGTM - sensitive scrubs, pip path, and doc consolidation are all clean.
Body undersells scope: actual diff is 50 files, +2375/-809. A few unmentioned things worth surfacing in the body so reviewers (and security/privacy) see them:
p2m/core/otel.py+otel_session.py:threading.Lock-> per-loopasyncio.Lockconcurrency fix. Looks right - good defensive comment on whythreading.Lockwould deadlock the event loop withconcurrency > 1.examples/travel_planner_neurosan/travel_planner_eval.mdand_langgraph/travel_planner_eval.md: real semantic edits to the eval specs, not just terminology - quality bullets dropped, safety bullets added.- New
tests/regression/t5_lg_safety.yaml+t5_ns_safety.yaml. pyproject.toml: addsarize-phoenix>=15.0.0as a direct optional dep, lowers OTel api/sdk floor 1.41 -> 1.39. Worth a one-line rationale.
Heads up that the eval-spec edits will reshape my Verification matrix TP-* rows in #15 - I'll re-anchor on whatever this lands as. No blocker.
|
Thanks for the LGTM on substance Jake Present (@jakepresent). Quick clarifier on scope — the actual PR #21 diff is what the body describes (21 files, +211/-385); the items you flagged as unmentioned all landed on
You can verify against the GitHub Files-Changed tab on this PR — If that re-anchors things for the Verification matrix in #15, helpful pointers:
No changes to this PR; the delta is intentionally doc/content-only as scoped. |
|
You're right - apologies for the noise. Re-pulled and confirmed: PR #21 is what the body describes (21 files, +211/-385) and the items I flagged all landed via PR #13's merge ~4 hours before my review. My local |
Jake Present (jakepresent)
left a comment
There was a problem hiding this comment.
Approving per the comment above. Customer-readiness work LGTM.
Summary
Customer-readiness audit on
mainbefore customer distribution. Three parallel audits (sensitive-content, docs UX, CLI/YAML functional) surfaced ~19 issues across P0–P2. This PR addresses all of them, withpip installchosen as the canonical setup path and "33 auto-instrumented frameworks" as the headline reach number.Net change: 21 files, +211/-385 (4 internal-only docs deleted, 1 file renamed for safety).
What changed
Sensitive content removed (P0)
examples/travel_planner_langgraph/eval_config.yaml.examples/phoenix_auto_trace/eval_framework.yaml→eval_framework_template.yamland added a TEMPLATE-ONLY header banner. The original had aREPLACE_WITH_FRAMEWORKplaceholder that crashed with ModuleNotFoundError if a customer ran it as-is.README.mdanddocs/status-and-roadmap.md.AGENTS.mdprohibitions generically (removed enumeration of internal-only categories).Setup path normalized (P1)
docs/quickstart.md,docs/reference/cli.md,examples/README.md,examples/pipes/README.mdfromuv venv / uv sync / uv runtopip install -e ".[otel,langgraph]"with venv activation, matching the README's canonical flow.docs/quickstart.md: clearly mark Phoenix as optional, in a second terminal so customers don't thinkphoenix servehangs the pipeline.README.md: collapsed the verbose macOS litellm explanation into a Troubleshooting section at the bottom, plus added WindowsPYTHONUTF8=1and Docker-preflight notes.Doc consolidation (responding to "too many .md docs")
docs/glossary.md— terminology bridge folded intodocs/concepts.md.docs/ai-agent-onboarding.md— paste-in prompt folded intoAGENTS.mdas a final "Paste-in prompt for end users" section.docs/targets/otel-agent.md— trace-capture content (Phoenixregistersnippet,target.traceYAML, "why trace capture matters" rationale) inlined intodocs/targets/callable.md.README.md,AGENTS.md,docs/targets/model-and-tools.md.Stale YAML examples (P1)
Aligned 4 docs to current schema documented in
CONFIG_REFERENCE.md:docs/writing-eval-specs.md: nestjudge:underpipeline:.examples/concepts/README.md:concept: foo→concept.name: foo.examples/phoenix_auto_trace/README.md: nestrollout:underpipeline:.CONFIG_REFERENCE.md: minimal example was missingtarget.model(violated the "exactly one of model/callable/endpoint" rule documented in the same file).Customer-facing terminology (P2)
README.md,docs/targets/callable.md,AGENTS.md. OTel trace capture is positioned as the optional upgrade, not a prerequisite.examples/agents/README.md: replaced "p2m" with "Adaptive Eval"; demoted external connector to "advanced — prefertarget.callable".examples/phoenix_auto_trace/README.md: framework count28→33(matches main README), with honest note that 28 are demoed and the remaining handful follow the samepip install ... + register(auto_instrument=True)pattern. Softened "proves the spec's core claim §4.4.3" / "zero per-framework maintenance" wording.Windows reliability (P1)
examples/phoenix_auto_trace/_tools.py: replaced→with->inMOCK_FLIGHTSroute data andsimulate_tool()(these strings are printed to console — the unicode arrow causedUnicodeEncodeErroron default Windows codepages).examples/phoenix_auto_trace/README.md: replaced→arrows with->and added$env:PYTHONUTF8 = "1"escape hatch.Verification
uv run pytest -q, 33s).p2m.config.load_config.examples.phoenix_auto_trace._toolsimports andsimulate_tool()returns expected output.rg "glossary\.md|ai-agent-onboarding\.md|otel-agent\.md|access-and-repo-workflow\.md"returns zero matches across the repo.What this PR does NOT include
yemingtang/rate-limit-retry,yemingtang/graceful-seed-failure) — should land before final customer cut, tracked separately.Co-authored-by: Copilot 223556219+Copilot@users.noreply.github.com