kind: WavePipeline metadata: name: gt-rewrite description: "Analyze and rewrite poorly documented Gitea issues" release: true input: source: cli example: "re-cinq/wave 42" schema: type: string description: "Gitea repo with optional issue number" steps: - id: scan-and-score persona: gitea-analyst workspace: type: worktree branch: "{{ pipeline_id }}" exec: type: prompt source: | Input: {{ input }} Step 1: Parse input format. - If "owner/repo NUM" → single issue mode - If "owner/repo" alone → batch mode Step 2: Fetch issues via tea CLI. - Single: tea issues view NUM --repo OWNER/REPO --json number,title,body,labels,url - Batch: tea issues list --repo OWNER/REPO --limit 10 --json number,title,body,labels,url Step 3: Score each issue quality (0-100) on title clarity, description completeness, labels, and acceptance criteria. Step 4: For issues scoring below 70, create an enhancement plan with: - suggested_title, body_template (preserving original content), suggested_labels, enhancements list Output JSON with repository (owner/repo string), issues_to_enhance array, and total_to_enhance. output_artifacts: - name: enhancement_plan path: .wave/artifact.json type: json required: true handover: max_retries: 1 contract: type: json_schema schema_path: .wave/contracts/github-enhancement-plan.schema.json validate: true must_pass: true allow_recovery: true recovery_level: progressive progressive_validation: false - id: apply-enhancements persona: gitea-enhancer dependencies: [scan-and-score] memory: inject_artifacts: - step: scan-and-score artifact: enhancement_plan as: plan workspace: type: worktree branch: "{{ pipeline_id }}" exec: type: prompt source: | Read the repository field from the plan artifact for --repo flag. For each issue in issues_to_enhance: 1. Apply title: tea issues edit NUM --repo REPO --title "suggested_title" 2. Apply body: tea issues edit NUM --repo REPO --body "body_template" 3. Add labels: tea issues edit NUM --repo REPO --add-label "label1,label2" 4. Capture URL: tea issues view NUM --repo REPO --json url --jq .url Output JSON with enhanced_issues (issue_number, success, changes_made, url), total_attempted, total_successful. output_artifacts: - name: enhancement_results path: .wave/artifact.json type: json required: true outcomes: - type: issue extract_from: .wave/artifact.json json_path: .enhanced_issues[0].url label: "Enhanced Issue" handover: max_retries: 1 contract: type: json_schema schema_path: .wave/contracts/github-enhancement-results.schema.json validate: true must_pass: true allow_recovery: true recovery_level: progressive progressive_validation: false