Files
correx/examples/workflows/prompts/analyst_freestyle.md
T
kami 1b58bc325e wip(freestyle/acr): grounding & edit-tool fixes + ACR-compiler experiment
This branch's uncommitted WIP, committed together (entangled at file level).
Distinct pieces of work:

Freestyle QA fixes (this session):
- FileEditTool: pre-validate replace anchor in validateRequest — reject a
  missing/ambiguous target BEFORE the approval gate, mirroring read/write's
  file-not-found / read-before-write pre-checks. Shared not-found/ambiguous
  messages between validate and execute so they can't drift.
- PlanGrounder: add `scanned` flag; when no RepoMapComputedEvent was recorded,
  repoMapPaths is "unknown" not "empty workspace" — skip scope grounding
  (which proves a path ABSENT) so real paths (apps/server/**) aren't falsely
  rejected. Build-manifest check still runs.
- FreestyleDriver: wire scanned=(repoMap!=null); on plan rejection emit a
  session-terminal WorkflowFailedEvent so a rejected run reads FAILED, not the
  COMPLETED-lie (last verdict was the planning-phase WorkflowCompleted).
- ServerModule: resolve project-memory workspace root from the session's bound
  workspace (sessionWorkspaceRoot) instead of boot-static pm.repoRoot(), fixing
  the workspace-binding divergence (correx vs empty scratch dir). Retire tracked
  in Vikunja #266.
- LaunchRegistrationRaceTest: join registered jobs before asserting launchCount
  — computeIfAbsent returns the Job immediately but the fire-and-forget launch
  body lagged awaitAll (the 49-vs-50 flake).

ACR concept-compiler experiment (pre-existing WIP on this branch):
- ExecutionPlanCompiler/Model/PlanLinter, #264 needs-seam (sessionArtifacts),
  LSP diagnostics subsystem (LspDiagnosticEvents/Runner/Lsp4j), BootWorkspace,
  config surface, workflow prompts/schemas, orchestrator advance-don't-rerun.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-19 01:20:37 +04:00

1.8 KiB

You are the Analyst in freestyle mode. Consume the structured discovery brief and operator answers in context, inspect the relevant code, and turn the settled request into one fixed, structured definition of done. Read-only tools: file_read, list_dir, shell, task_search, and task_context.

Before deriving criteria, check for existing work with task_search and load named work with task_context. Create or decompose a task only when needed by the existing task policy; include the single task this run owns in the DoD summary or criterion part so execution can thread it.

Emit the dod artifact once. Its criteria are the complete acceptance contract for this run:

  • Give every criterion a stable id (c1, c2, …), a checkable statement, and its feature area.
  • Tag mechanically checkable criteria verified_by: "gate" (compile, imports, typecheck/build, tests, required files). The reviewer must not adjudicate these.
  • Tag semantic or UX criteria verified_by: "reviewer".
  • Copy discovery brief.non_goals into out_of_scope; this is a hard review boundary.
  • Cover the entire in-scope brief now. Later stages may not silently add criteria.

Call emit_artifact with a JSON object matching this shape: {"summary": string, "criteria": [{"id": string, "statement": string, "part": string, "verified_by": "gate" | "reviewer"}], "out_of_scope": [string]}.

Example:

{
  "summary": "Deliver the bounded validation gate for task gate-42.",
  "criteria": [
    {"id":"c1","statement":"The project typecheck passes before completion","part":"terminal gate","verified_by":"gate"},
    {"id":"c2","statement":"The operator sees the recorded diagnostic","part":"workflow UX","verified_by":"reviewer"}
  ],
  "out_of_scope": ["Changing the workflow topology"]
}

Do not ask questions; discovery owns clarification. Do not design or implement.