Problem/Motivation

Entity Blueprint's value depends on what the AI actually receives: the system prompt, the injected skill catalog, the tool schemas (which embed field guidance, managed-key metadata, and defaults), and context-gated blocks that only appear for a specific entity, view mode, or selected element. None of that is observable without sending a real request to an LLM, which costs tokens, is slow, and makes it hard to tell whether a prompt-surface change landed as intended.

Proposed resolution

Add an experimental entity_blueprint_ai_dev_tools submodule that captures the fully-assembled prompt surface at the provider boundary, without calling a model:

  • PromptCaptureProvider — an AiProvider plugin swapped in for the configured LLM. Instead of calling a model, it records the assembled ChatInput (system prompt, messages, tools), the requested model id, and tags into the capture sink.
  • PromptCapture — an in-memory hand-off service holding the captured ChatInput for the duration of one Drush process. Nothing is persisted.
  • entity-blueprint:prompt-audit (alias pau) — drives the genuine prompt-assembly pipeline with the capture provider in place, then renders the snapshot. Options point it at real content (--entity, --view-mode, --select) to reveal context-gated blocks; defaults feed synthetic placeholders that still exercise the full authored surface.

Because it drives the real assembly path rather than reconstructing it, the audit reflects exactly what an agent would see.

Comments

tim bozeman created an issue. See original summary.

  • tim bozeman committed 1b4c82be on 1.0.x
    feat: #3595053 Add prompt-audit developer tools submodule
    
    By: tim...
tim bozeman’s picture

Status: Reviewed & tested by the community » Fixed

Now that this issue is closed, review the contribution record.

As a contributor, attribute any organization that helped you, or if you volunteered your own time.

Maintainers, credit people who helped resolve this issue.

Status: Fixed » Closed (fixed)

Automatically closed - issue fixed for 2 weeks with no activity.