Luigit
repositories / pi-ext

pi-ext

bugabingas pi extensions

owned by admin

extensions/ultra/prompts/references/examples/selectors.md

Raw
Rendered preview

selectors

Each example is a complete workflow spec.

field projection selector

{PHASE.results[].FIELD} projects one field from each object in a phase's results array. It always returns an array, preserving result order. Null, missing, and non-record values are skipped; false, zero, empty strings, objects, and arrays are retained.

{
  "name": "project-reports",
  "schemas": {
    "Work": {
      "type": "object",
      "properties": {
        "report": { "type": "object", "additionalProperties": true }
      },
      "required": ["report"]
    }
  },
  "phases": [
    {
      "id": "work",
      "kind": "fanout",
      "over": ["one", "two"],
      "step": { "summary": "Work {item}", "prompt": "Return a report for {item}; do not mutate anything.", "schema": "Work" }
    }
  ],
  "report": "{work.results[].report}",
  "return": "{work.results}"
}

flatten selector

{
  "name": "flatten-findings",
  "schemas": {
    "Review": {
      "type": "object",
      "properties": {
        "findings": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
      },
      "required": ["findings"]
    }
  },
  "phases": [
    {
      "id": "review",
      "kind": "fanout",
      "over": ["correctness", "security"],
      "step": { "summary": "Review {item}", "prompt": "Review the {item} dimension; do not mutate anything.", "schema": "Review" }
    },
    {
      "id": "verify",
      "kind": "fanout",
      "over": "{review.results[].findings[]}",
      "step": { "summary": "Verify {item}", "prompt": "Verify finding {item}; do not mutate anything." }
    }
  ],
  "return": "{verify.results}"
}

where selector

{
  "name": "truthy-filter",
  "schemas": {
    "Candidate": {
      "type": "object",
      "properties": { "valid": { "type": "boolean" } },
      "required": ["valid"]
    }
  },
  "phases": [
    {
      "id": "candidates",
      "kind": "fanout",
      "over": ["a", "b", "c"],
      "step": { "summary": "Inspect {item}", "prompt": "Inspect candidate {item}; do not mutate anything.", "schema": "Candidate" }
    },
    {
      "id": "selected",
      "kind": "single",
      "step": { "summary": "Select candidates", "prompt": "Select from {candidates.results | where valid}." }
    }
  ],
  "return": "{selected.results}"
}

exact string filter

{
  "name": "source-filter",
  "schemas": {
    "Evidence": {
      "type": "object",
      "properties": { "source_type": { "type": "string" } },
      "required": ["source_type"]
    }
  },
  "phases": [
    {
      "id": "evidence",
      "kind": "fanout",
      "over": ["sessions", "repository", "web"],
      "step": { "summary": "Collect {item} evidence", "prompt": "Collect evidence from {item}; do not mutate anything.", "schema": "Evidence" }
    },
    {
      "id": "sessions",
      "kind": "fanout",
      "when": "{evidence.results | where source_type == \"sessions\"}",
      "over": "{evidence.results | where source_type == \"sessions\"}",
      "step": { "summary": "Inspect session evidence {item}", "prompt": "Inspect session evidence {item}; do not mutate anything.", "schema": "Evidence" }
    }
  ],
  "return": "{sessions.results}"
}

dynamic grouping

{
  "name": "source-groups",
  "schemas": {
    "Evidence": {
      "type": "object",
      "properties": { "source_type": { "type": "string" } },
      "required": ["source_type"]
    }
  },
  "phases": [
    {
      "id": "evidence",
      "kind": "fanout",
      "over": ["one", "two", "three"],
      "step": { "summary": "Collect evidence for {item}", "prompt": "Collect evidence for {item}; do not mutate anything.", "schema": "Evidence" }
    },
    {
      "id": "groups",
      "kind": "fanout",
      "over": "{evidence.results | groupBy source_type}",
      "step": { "summary": "Process source group {item}", "prompt": "Process this source group: {item}; do not mutate anything." }
    }
  ],
  "return": "{groups.results}"
}
# selectors

Each example is a complete workflow spec.

## field projection selector

`{PHASE.results[].FIELD}` projects one field from each object in a phase's results array.
It always returns an array, preserving result order.
Null, missing, and non-record values are skipped; false, zero, empty strings, objects, and arrays are retained.

```json
{
  "name": "project-reports",
  "schemas": {
    "Work": {
      "type": "object",
      "properties": {
        "report": { "type": "object", "additionalProperties": true }
      },
      "required": ["report"]
    }
  },
  "phases": [
    {
      "id": "work",
      "kind": "fanout",
      "over": ["one", "two"],
      "step": { "summary": "Work {item}", "prompt": "Return a report for {item}; do not mutate anything.", "schema": "Work" }
    }
  ],
  "report": "{work.results[].report}",
  "return": "{work.results}"
}
```

### flatten selector

```json
{
  "name": "flatten-findings",
  "schemas": {
    "Review": {
      "type": "object",
      "properties": {
        "findings": { "type": "array", "items": { "type": "object", "additionalProperties": true } }
      },
      "required": ["findings"]
    }
  },
  "phases": [
    {
      "id": "review",
      "kind": "fanout",
      "over": ["correctness", "security"],
      "step": { "summary": "Review {item}", "prompt": "Review the {item} dimension; do not mutate anything.", "schema": "Review" }
    },
    {
      "id": "verify",
      "kind": "fanout",
      "over": "{review.results[].findings[]}",
      "step": { "summary": "Verify {item}", "prompt": "Verify finding {item}; do not mutate anything." }
    }
  ],
  "return": "{verify.results}"
}
```

### where selector

```json
{
  "name": "truthy-filter",
  "schemas": {
    "Candidate": {
      "type": "object",
      "properties": { "valid": { "type": "boolean" } },
      "required": ["valid"]
    }
  },
  "phases": [
    {
      "id": "candidates",
      "kind": "fanout",
      "over": ["a", "b", "c"],
      "step": { "summary": "Inspect {item}", "prompt": "Inspect candidate {item}; do not mutate anything.", "schema": "Candidate" }
    },
    {
      "id": "selected",
      "kind": "single",
      "step": { "summary": "Select candidates", "prompt": "Select from {candidates.results | where valid}." }
    }
  ],
  "return": "{selected.results}"
}
```

### exact string filter

```json
{
  "name": "source-filter",
  "schemas": {
    "Evidence": {
      "type": "object",
      "properties": { "source_type": { "type": "string" } },
      "required": ["source_type"]
    }
  },
  "phases": [
    {
      "id": "evidence",
      "kind": "fanout",
      "over": ["sessions", "repository", "web"],
      "step": { "summary": "Collect {item} evidence", "prompt": "Collect evidence from {item}; do not mutate anything.", "schema": "Evidence" }
    },
    {
      "id": "sessions",
      "kind": "fanout",
      "when": "{evidence.results | where source_type == \"sessions\"}",
      "over": "{evidence.results | where source_type == \"sessions\"}",
      "step": { "summary": "Inspect session evidence {item}", "prompt": "Inspect session evidence {item}; do not mutate anything.", "schema": "Evidence" }
    }
  ],
  "return": "{sessions.results}"
}
```

### dynamic grouping

```json
{
  "name": "source-groups",
  "schemas": {
    "Evidence": {
      "type": "object",
      "properties": { "source_type": { "type": "string" } },
      "required": ["source_type"]
    }
  },
  "phases": [
    {
      "id": "evidence",
      "kind": "fanout",
      "over": ["one", "two", "three"],
      "step": { "summary": "Collect evidence for {item}", "prompt": "Collect evidence for {item}; do not mutate anything.", "schema": "Evidence" }
    },
    {
      "id": "groups",
      "kind": "fanout",
      "over": "{evidence.results | groupBy source_type}",
      "step": { "summary": "Process source group {item}", "prompt": "Process this source group: {item}; do not mutate anything." }
    }
  ],
  "return": "{groups.results}"
}
```