Skip to content

chore: sync skills from upstream - #50

Open
github-actions[bot] wants to merge 1 commit into
mainfrom
autosync/upstream-skills
Open

chore: sync skills from upstream#50
github-actions[bot] wants to merge 1 commit into
mainfrom
autosync/upstream-skills

Conversation

@github-actions

@github-actions github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Automated sync of skill content from upstream source repositories.

Upstream sources

  • logfire-setup: pydantic/logfire@ffffe8c (logfire/.agents/skills/logfire-setup)
  • logfire-instrumentation: pydantic/logfire@ffffe8c (logfire/.agents/skills/logfire-instrumentation)
  • logfire-infrastructure: pydantic/logfire@ffffe8c (logfire/.agents/skills/logfire-infrastructure)
  • logfire-evals: pydantic/logfire@ffffe8c (logfire/.agents/skills/logfire-evals)
  • building-pydantic-ai-agents: pydantic/pydantic-ai@716f2ae (pydantic_ai_slim/pydantic_ai/.agents/skills/building-pydantic-ai-agents)
  • pydantic-ai-harness: pydantic/pydantic-ai-harness@c897c4e (pydantic_ai_harness/.agents/skills/pydantic-ai-harness)
  • pydantic: pydantic/pydantic@2261ae1 (.agents/skills/pydantic)

Review the diff against the listed upstream commits before merging.

Comment thread skills/building-pydantic-ai-agents/SKILL.md
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from e57f05d to 70001d7 Compare August 13, 2026 06:45
Comment thread plugins/ai/skills/building-pydantic-ai-agents/references/AGENTS-CORE.md Outdated
@adtyavrdhn

Copy link
Copy Markdown
Member

CC @DouweM

Could you have a look to make sure the skills are valid? I'll hold off on this meanwhile

@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch 6 times, most recently from f49c05f to dc79251 Compare August 19, 2026 06:25
Comment thread skills/building-pydantic-ai-agents/references/INPUT-AND-HISTORY.md
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch 4 times, most recently from d5b8379 to b69a5b3 Compare August 23, 2026 06:25
Comment thread plugins/ai/skills/building-pydantic-ai-agents/SKILL.md Outdated
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from b69a5b3 to 56ae069 Compare August 24, 2026 06:27
Comment thread skills/logfire-instrumentation/references/python/integrations.md

```bash
# Python CLI (uvx logfire) -- always include --non-interactive:
uvx logfire --non-interactive --region eu auth

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium references/auth.md:19

The executable authentication sequence always targets the EU region, so following it for a US project authenticates against the wrong region and prevents subsequent project selection from finding the intended project. Use the region determined above instead of hard-coding eu.

Suggested change
uvx logfire --non-interactive --region eu auth
uvx logfire --non-interactive --region <region> auth
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/logfire/skills/logfire-instrumentation/references/auth.md around line 19:

The executable authentication sequence always targets the EU region, so following it for a US project authenticates against the wrong region and prevents subsequent project selection from finding the intended project. Use the region determined above instead of hard-coding `eu`.

Comment thread skills/logfire-instrumentation/SKILL.md
Comment thread skills/logfire-instrumentation/SKILL.md Outdated
Comment thread plugins/ai/skills/building-pydantic-ai-agents/SKILL.md
Comment thread plugins/ai/skills/building-pydantic-ai-agents/SKILL.md Outdated
Comment thread skills/logfire-instrumentation/references/auth.md Outdated
Comment thread plugins/ai/skills/building-pydantic-ai-agents/SKILL.md Outdated
Comment on lines -54 to 61
For grouping related operations and measuring duration, use spans:
**Ordering is the one rule that matters most**: `logfire.configure()` must run before any `instrument_*()` call, once per process, in the entry point — not inside a request handler, not in library code. Calling `instrument_*()` first registers the hook but traces go nowhere, silently.

```python

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High logfire-instrumentation/SKILL.md:54

Copying this Python snippet verbatim raises NameError for app, so the application is never instrumented. Include the app creation in the example (or explicitly state that app must already exist).

- import logfire
+ from fastapi import FastAPI
+ import logfire
+
+ app = FastAPI()
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/logfire/skills/logfire-instrumentation/SKILL.md around line 54:

Copying this Python snippet verbatim raises `NameError` for `app`, so the application is never instrumented. Include the app creation in the example (or explicitly state that `app` must already exist).

Evidence trail:
plugins/logfire/skills/logfire-instrumentation/SKILL.md:54-62 at commit 1cc5a72. The snippet calls `logfire.instrument_fastapi(app)` without any preceding definition of `app`.

Comment thread skills/logfire-instrumentation/SKILL.md
Comment thread plugins/logfire/skills/logfire-instrumentation/SKILL.md Outdated
Comment thread plugins/logfire/skills/logfire-instrumentation/SKILL.md Outdated
Comment thread skills/logfire-instrumentation/SKILL.md
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from 1cc5a72 to 34b634b Compare August 26, 2026 06:26
Comment thread skills/logfire-instrumentation/references/auth.md Outdated
Comment thread skills/logfire-instrumentation/references/python/integrations.md
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from 34b634b to 9f18993 Compare August 27, 2026 09:22
Comment on lines +201 to +207
If nothing arrives at all, trace the path in order: authentication and exact project/region (Step 1), `configure()` called before `instrument_*()` (Python) or before the app's own imports run (JS/TS preload order), the correct packages/extras installed, then the exercised code path and exporter/flush behavior. Make the smallest safe correction and verify again — report one specific blocker, not a generic checklist.

After instrumentation, verify the setup works:
Close with a final report built from real values you just confirmed, not a template — org, project, and region from `whoami`; the service name(s) actually seen; what Step 4 covered (AI/LLM content level, agent framework if any); and, if you ran Step 3's optional `logfire run --summary`, what it detected. **Include the project's URL** (from `whoami` or `projects status`) as a direct link to the Live view, so the user can see their own traces arrive without having to ask where to look. A report with a placeholder in it means a step above was skipped, not finished.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Medium logfire-instrumentation/SKILL.md:201

The final report instruction mislabels AI/LLM and agent-framework coverage as Step 4, even though that work belongs to Step 3; following it produces a misleading report and omits the actual Step 4 service-metadata/metrics coverage. Update the instruction to distinguish Steps 3 and 4.

Suggested change
Close with a final report built from real values you just confirmed, not a template — org, project, and region from `whoami`; the service name(s) actually seen; what Step 4 covered (AI/LLM content level, agent framework if any); and, if you ran Step 3's optional `logfire run --summary`, what it detected. **Include the project's URL** (from `whoami` or `projects status`) as a direct link to the Live view, so the user can see their own traces arrive without having to ask where to look. A report with a placeholder in it means a step above was skipped, not finished.
Close with a final report built from real values you just confirmed, not a template — org, project, and region from `whoami`; the service name(s) actually seen; what Steps 3-4 covered (AI/LLM content level, agent framework if any, and service metadata/metrics); and, if you ran Step 3's optional `logfire run --summary`, what it detected. **Include the project's URL** (from `whoami` or `projects status`) as a direct link to the Live view, so the user can see their own traces arrive without having to ask where to look. A report with a placeholder in it means a step above was skipped, not finished.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/logfire/skills/logfire-instrumentation/SKILL.md around line 201:

The final report instruction mislabels AI/LLM and agent-framework coverage as Step 4, even though that work belongs to Step 3; following it produces a misleading report and omits the actual Step 4 service-metadata/metrics coverage. Update the instruction to distinguish Steps 3 and 4.

@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch 2 times, most recently from fe390c6 to 2d1bff6 Compare August 29, 2026 06:33
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch 2 times, most recently from 71171b7 to d2ba6f0 Compare August 31, 2026 06:47
1. **Run the app and trigger it.** Start the real application, run one representative request, job, or agent run, and note an identifiable service name and operation that should appear.
2. **Confirm fresh data reached the exact project `whoami` reported** — not just "a project." Same `uvx`/`npx` prefix as Step 1 (JS: drop `--non-interactive`, it's Python-CLI-only):
```bash
uvx logfire --non-interactive projects status --json

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High logfire-instrumentation/SKILL.md:186

Step 5 always fails before auditing telemetry because the synced CLI has no projects status subcommand or --json option, and the fallback also fails because read-tokens ... create does not accept --save. These commands therefore produce argparse errors and cannot save a read token as the instructions promise; update the flow to use commands and flags supported by the synced CLI.

🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/logfire/skills/logfire-instrumentation/SKILL.md around line 186:

Step 5 always fails before auditing telemetry because the synced CLI has no `projects status` subcommand or `--json` option, and the fallback also fails because `read-tokens ... create` does not accept `--save`. These commands therefore produce argparse errors and cannot save a read token as the instructions promise; update the flow to use commands and flags supported by the synced CLI.

@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from d2ba6f0 to 4796e96 Compare September 1, 2026 06:40
Comment thread plugins/logfire/skills/logfire-instrumentation/SKILL.md Outdated

`TemporalAgent`, `DBOSAgent`, and `PrefectAgent` are deprecated wrapper agents.

Pass every executing toolset that needs durable wrapping to the agent constructor. In particular, construct a `DynamicToolset` with an explicit `id` and pass it to `Agent(toolsets=[...])`; the `@agent.toolset` decorator registers after the engine's durable units were created. Toolsets that arrive later — via the decorator, `run(toolsets=...)`, `override(toolsets=...)`, or a per-run capability — are never wrapped for durable execution: under the `*Durability` capability, using one inside a workflow or flow raises a `UserError` (DBOS still accepts a `FunctionToolset`, whose tools it runs inline either way). The deprecated wrapper agents don't run this check — inside a workflow or flow they run the toolset list frozen at wrap time, so a toolset registered that late is silently left out. A toolset added at run time also cannot reuse a construction-time toolset's `id`.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High references/ORCHESTRATION-AND-INTEGRATIONS.md:91

Custom AbstractToolset leaves do not raise the documented UserError; they pass the durability runtime guard and execute unwrapped, so side-effecting tools can run uncheckpointed and repeat writes or other external actions during workflow replay. The guard only recognizes FunctionToolset, MCPToolset, and DynamicToolset, so narrow this guidance to the recognized toolset types and explicitly document the custom-leaf behavior (or fix the guard).

-Pass every executing toolset that needs durable wrapping to the agent constructor. In particular, construct a `DynamicToolset` with an explicit `id` and pass it to `Agent(toolsets=[...])`; the `@agent.toolset` decorator registers after the engine's durable units were created. Toolsets that arrive later — via the decorator, `run(toolsets=...)`, `override(toolsets=...)`, or a per-run capability — are never wrapped for durable execution: under the `*Durability` capability, using one inside a workflow or flow raises a `UserError` (DBOS still accepts a `FunctionToolset`, whose tools it runs inline either way). The deprecated wrapper agents don't run this check — inside a workflow or flow they run the toolset list frozen at wrap time, so a toolset registered that late is silently left out. A toolset added at run time also cannot reuse a construction-time toolset's `id`.
+Pass every executing toolset that needs durable wrapping to the agent constructor. In particular, construct a `DynamicToolset` with an explicit `id` and pass it to `Agent(toolsets=[...])`; the `@agent.toolset` decorator registers after the engine's durable units were created. Toolsets that arrive later — via the decorator, `run(toolsets=...)`, `override(toolsets=...)`, or a per-run capability — are never wrapped for durable execution: under the `*Durability` capability, using a `MCPToolset` or `DynamicToolset` inside a workflow or flow raises a `UserError` (DBOS still accepts a `FunctionToolset`, whose tools it runs inline either way). Custom `AbstractToolset` leaves are not recognized by this guard and execute unwrapped. The deprecated wrapper agents don't run this check — inside a workflow or flow they run the toolset list frozen at wrap time, so a toolset registered that late is silently left out. A toolset added at run time also cannot reuse a construction-time toolset's `id`.
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/ai/skills/building-pydantic-ai-agents/references/ORCHESTRATION-AND-INTEGRATIONS.md around line 91:

Custom `AbstractToolset` leaves do not raise the documented `UserError`; they pass the durability runtime guard and execute unwrapped, so side-effecting tools can run uncheckpointed and repeat writes or other external actions during workflow replay. The guard only recognizes `FunctionToolset`, `MCPToolset`, and `DynamicToolset`, so narrow this guidance to the recognized toolset types and explicitly document the custom-leaf behavior (or fix the guard).

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed. Fixed upstream in pydantic/pydantic-ai#8086 by documenting the exact recognized runtime toolset types and warning that custom executing AbstractToolset leaves run unwrapped. Leaving this thread open until that PR merges and the autosync updates this line.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for confirming. The current autosync has not incorporated that upstream wording yet. Would you like me to prepare the equivalent update here, or wait for the autosync?

Comment thread plugins/ai/skills/building-pydantic-ai-agents/references/NATIVE-TOOLS.md Outdated
case RealtimeSessionErrorEvent(message=message, recoverable=True):
# The connection remains usable, but this turn may not complete.
raise RuntimeError(message)
if turn_complete and user_turn_complete:

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟠 High building-pydantic-ai-agents/SKILL.md:270

The example waits indefinitely when input transcription is disabled or fails, because no user SpeechPart end event arrives even after RealtimeTurnCompleteEvent; the still-open session therefore never exits at the documented turn boundary. Break on RealtimeTurnCompleteEvent alone instead of requiring user_turn_complete.

Suggested change
if turn_complete and user_turn_complete:
if turn_complete:
🚀 Reply "fix it for me" or copy this AI Prompt for your agent:
In file @plugins/ai/skills/building-pydantic-ai-agents/SKILL.md around line 270:

The example waits indefinitely when input transcription is disabled or fails, because no user `SpeechPart` end event arrives even after `RealtimeTurnCompleteEvent`; the still-open session therefore never exits at the documented turn boundary. Break on `RealtimeTurnCompleteEvent` alone instead of requiring `user_turn_complete`.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed. Fixed upstream in pydantic/pydantic-ai#8086 by breaking directly on RealtimeTurnCompleteEvent, without requiring a user transcription event that may be late or absent. Leaving this thread open until that PR merges and the autosync updates this example.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for confirming. The current sync still has the affected condition. Would you like me to prepare the same fix here, or should we wait for the upstream autosync?

@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from e77cc65 to cb6d0d2 Compare September 4, 2026 06:38
@macroscopeapp

macroscopeapp Bot commented Sep 5, 2026

Copy link
Copy Markdown

Macroscope skipped reviewing this pull request. Per-PR cost limit exceeded (workspace setting).

Reviews on this PR have cost $26.97 so far. This review would add an estimated $4.41, bringing the total to $31.38 — above your per-PR limit of $30.00.

Tip

To get this pull request reviewed, you can:

  1. Comment @macroscope-app on this PR to request a manual review (monthly spend limits still apply).
  2. Exclude large or generated files from review by adding a pattern to your .macroscope/ignore.md — note that creating this file replaces Macroscope's built-in default ignores rather than extending them.
  3. Raise your cost limit in your workspace billing settings.

Turn off this reminder going forward

@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch 2 times, most recently from 1611600 to 876f9e4 Compare September 7, 2026 06:48
@github-actions
github-actions Bot force-pushed the autosync/upstream-skills branch from 876f9e4 to 5e89a01 Compare September 8, 2026 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant