Skip to content

Latest commit

 

History

History
82 lines (68 loc) · 4.11 KB

File metadata and controls

82 lines (68 loc) · 4.11 KB

Fixture 11-recruitment-pages-real — Real Claude capture

Status: Real /genpage capture (2026-05-21). Both layers fully green. First real capture taken after the v2.2 planner-spec tightening landed.

Source

Captured from a real /genpage session against https://contosobapenv0001.crmtest.dynamics.com. Driven by claude-sonnet-4-6 under the v2.1 plugin + v2.2 Phase 0.5 manifest generator

  • v2.2 spec-tightening. Working dir was D:/temp/recruitment-app/.

Prompt was the eval 11 prompt verbatim:

Build me three pages for a recruitment app: a candidate list page, an interview schedule page, and a hiring metrics dashboard. Use the contact and appointment entities.

This was the most complex flow yet: 3 parallel page-builders, PAGEREF cross-navigation resolution in Phase 6.5, new-app creation, and solution selection on a code-only flow (the new app triggered the metadata gate).

What this capture validates

  • Layer 1 fully clean (24 pass / 0 fail / 34 skip — all phase-specific expectations either pass or correctly skip).
  • Layer 2 fully clean (34 pass / 0 fail / 2 skip).
  • v2.2 planner-spec tightening works. The workflow-log records every prereq command verbatim (node --version, pac help, pac auth list, pac model list-tables, pac model list-languages, pac model list, pac solution list), every AskUserQuestion call with the answer, the EnterPlanMode called marker with the user response, and the full pac model genpage upload command with --prompt and all flags echoed.
  • Multi-page parallel dispatch is recorded in the log: "Dispatched 3 genpage-page-builder agents in parallel".
  • Phase 6.5 PAGEREF resolution is correctly recorded: filename → page-id map, longest-key-first replacement, re-upload with --page-id and a delta --prompt.
  • Phase 0.5 manifest generator ran with --features charts (hiring metrics dashboard uses D3), and the capture script correctly skipped package.json + genpage.d.ts as scaffolding.

Runner fixes that landed alongside this capture

This capture surfaced 6 real-world patterns that the runner regexes were too narrow to accept. Fixed in lib/assertions-layer-1.js and lib/assertions-layer-2.js:

  1. pac auth list active environment reporting — accept Dataverse env URL near the auth-list output (real captures don't put the literal word "environment" before the URL).
  2. New-or-edit question — accept implicit-new determination via plan's ## Pages section (the planner can infer new from $ARGUMENTS without an explicit AskUserQuestion).
  3. newAppNeeded plan detection — accept "App: create new:" wording in the ## Environment section (the canonical phrasing per plan-schema).
  4. Solution enumeration — accept pac solution list as an alternative to dataverse-request.js /solutions (functionally equivalent).
  5. Multi-page parallel dispatch — accept singular "page-builder" alongside plural "page-builders".
  6. Xrm.Navigation.navigateTo with optional chaining + aliasing — accept xrm?.Navigation?.navigateTo and xrm.Navigation.navigateTo (with a (window as any).Xrm cast nearby), not just literal Xrm.Navigation.navigateTo.
  7. (window as any).__cache paren-cast pattern — accept alongside the window as unknown and window.__foo forms.

These relaxations only accept functionally-equivalent alternatives — they don't loosen the rules to admit drift. Each one came from observing a real agent output and confirming the alternative pattern satisfies the rule's intent.

Files

File Source
candidate-list.tsx Generated by page-builder A
interview-schedule.tsx Generated by page-builder B (receives pageInput.contactId from candidate-list)
hiring-metrics-dashboard.tsx Generated by page-builder C (resolved PAGEREF_ tokens in Phase 6.5)
RuntimeTypes.ts Generated by pac model genpage generate-types --data-sources "contact,appointment"
workflow-log.md Recorded during the run — command-verbatim format per v2.2 spec
genpage-plan.md Written by genpage-planner agent