Skip to content

fix(pipeline): outcome display, contract compliance, artifact path normalization#143

Merged
nextlevelshit merged 5 commits intomainfrom
fix/outcome-display
Feb 23, 2026
Merged

fix(pipeline): outcome display, contract compliance, artifact path normalization#143
nextlevelshit merged 5 commits intomainfrom
fix/outcome-display

Conversation

@nextlevelshit
Copy link
Collaborator

Summary

  • Deduplicate artifacts in outcome display — shared-worktree steps no longer show 4x duplicate paths
  • Surface outcome extraction warnings — silent failures now visible in summary output
  • Auto-resolve contract source from output_artifacts when no explicit source configured
  • Auto-inject Contract Compliance section into CLAUDE.md — personas now know output format, file path, and required fields without prompt authors having to repeat it
  • Normalize artifact paths to .wave/artifact.json convention across all pipelines
  • Separate concerns — strip file path references from prompts, let contract compliance handle plumbing

Changes

Area Files What
Display display/outcome.go, outcome_test.go Path dedup, warning rendering
Tracker deliverable/tracker.go Warning collection API
Executor pipeline/executor.go, executor_test.go Contract auto-resolve, contract prompt generation, outcome warnings
Adapter adapter/adapter.go, claude.go, claude_test.go ContractPrompt field, inject into CLAUDE.md
Pipelines 3 pipelines × 2 copies artifact.json.wave/artifact.json, strip path refs from prompts
Personas 5 personas × 2 copies Remove hardcoded artifact paths
Schemas github-enhancement-results.schema.json × 2 Make url required
Code-review pipeline × 2 copies output/.wave/output/

Test plan

  • go test -race ./... — all 22 suites pass
  • gh-issue-rewrite pipeline completes all 4 steps with contract validation
  • Outcome warnings visible in summary when extraction fails
  • Artifact dedup confirmed (1 entry instead of 4)
  • gh-issue-update pipeline end-to-end
  • Verify contract compliance section appears in worktree CLAUDE.md

Closes #140

…rnings

Shared-worktree pipelines (like gh-rewrite) where multiple steps produce
the same artifact.json were showing duplicate entries. filterArtifacts
now deduplicates by absolute path.

Outcome extraction failures were completely silent — warnings went to
events but never reached the user. Now extraction errors surface in the
outcome summary so broken pipes are visible, not hidden.

Also makes url required in enhancement-results contract schema and
updates the gh-issue-rewrite prompt to capture issue URLs.
Change output/publish-result.json to .wave/output/publish-result.json
for consistency with all other pipelines. Updates output_artifacts path,
outcomes extract_from path, and prompt instruction.
When a step has a json_schema contract, Wave now auto-generates a
Contract Compliance section in the persona's CLAUDE.md that includes
the output file path, format requirement (valid JSON only), schema
reference, and required top-level fields extracted from the schema.

For test_suite contracts, the test command is shown instead.

This ensures personas know the required output format without pipeline
authors needing to repeat format requirements in their prompts.

Closes #140
…on to contract prompt

- Change all output_artifacts/outcomes paths from artifact.json to .wave/artifact.json
  across gh-issue-rewrite, gh-issue-update, and prototype pipelines
- Update persona prompts to reference .wave/artifact.json consistently
- Enhance contract compliance prompt with concrete JSON skeleton example
  showing required fields with type-appropriate placeholders
- Use CRITICAL emphasis in contract prompt to prevent personas writing
  markdown instead of JSON to the output file

Affected: 5 personas, 3 pipelines (both .wave/ and internal/defaults/ copies)
…pliance handle it

Strip all artifact.json / .wave/artifact.json path references from
pipeline step prompts and persona definitions. The auto-generated
Contract Compliance section in CLAUDE.md now handles telling the
persona exactly where and how to write output. This cleanly separates
concerns: prompts describe WHAT to do, contracts describe HOW to
validate, and Wave handles the plumbing.
@nextlevelshit nextlevelshit merged commit 08f6963 into main Feb 23, 2026
3 checks passed
@nextlevelshit nextlevelshit deleted the fix/outcome-display branch February 23, 2026 09:52
nextlevelshit added a commit that referenced this pull request Mar 4, 2026
fix(pipeline): outcome display, contract compliance, artifact path normalization
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.

feat(pipeline): auto-inject contract compliance into CLAUDE.md

1 participant