> ## Documentation Index
> Fetch the complete documentation index at: https://docs.sudocode.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# sudocode feedback list

> List feedback entries with optional filters for issue, spec, type, and status

## Syntax

```bash theme={null}
sudocode feedback list [options]
```

## Description

The `feedback list` command displays feedback entries from your project with powerful filtering options. Use this to:

* View all feedback across your project
* Find feedback for a specific spec or issue
* Filter by feedback type (comment, suggestion, request)
* Show only active or dismissed feedback
* Identify feedback with stale anchors

Each feedback entry shows:

* Feedback ID and status (active/dismissed)
* Anchor status (valid/relocated/stale)
* Source issue and target spec
* Feedback type and location
* Content preview (first 80 characters)

<Note>
  By default, shows up to 50 feedback entries. Use `--limit` to adjust.
</Note>

## Options

<ParamField path="--issue" type="string">
  Filter by source issue

  **Example:** `--issue ISSUE-001`

  Shows only feedback provided by this issue.
</ParamField>

<ParamField path="--spec" type="string">
  Filter by target spec

  **Example:** `--spec SPEC-001`

  Shows only feedback received by this spec.
</ParamField>

<ParamField path="--type" type="string">
  Filter by feedback type

  **Example:** `--type request`

  Valid types: `comment`, `suggestion`, `request`
</ParamField>

<ParamField path="--dismissed" type="boolean">
  Filter by dismissed status

  **Example:** `--dismissed true` or `--dismissed false`

  * `true` - Show only dismissed feedback
  * `false` - Show only active feedback
  * Omit to show both
</ParamField>

<ParamField path="--limit" type="number" default="50">
  Maximum number of results

  **Example:** `--limit 100`

  Limits the number of feedback entries returned.
</ParamField>

## Examples

### List All Feedback

Show all feedback in the project:

```bash theme={null}
sudocode feedback list
```

<Accordion title="Expected output">
  ```
  Found 5 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-002 [active] [valid] ISSUE-005 → SPEC-001
    Type: comment | OAuth 2.0 Flow (line 30)
    OAuth flow implemented successfully with PKCE extension

  FB-003 [dismissed] [valid] ISSUE-010 → SPEC-002
    Type: suggestion | API Endpoints (line 78)
    Consider adding rate limiting to prevent abuse: 10 requests/minute per c...

  FB-004 [active] [stale] ISSUE-015 → SPEC-001
    Type: request | Error Handling (line 45)
    Need clarification on error response format

  FB-005 [active] [relocated] ISSUE-020 → SPEC-003
    Type: suggestion | Data Model (line 92)
    Consider using enum type instead of string constants
  ```
</Accordion>

### Filter by Spec

Show all feedback for a specific spec:

```bash theme={null}
sudocode feedback list --spec SPEC-001
```

<Accordion title="Expected output">
  ```
  Found 3 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-002 [active] [valid] ISSUE-005 → SPEC-001
    Type: comment | OAuth 2.0 Flow (line 30)
    OAuth flow implemented successfully with PKCE extension

  FB-004 [active] [stale] ISSUE-015 → SPEC-001
    Type: request | Error Handling (line 45)
    Need clarification on error response format
  ```
</Accordion>

### Filter by Issue

Show all feedback provided by a specific issue:

```bash theme={null}
sudocode feedback list --issue ISSUE-001
```

<Accordion title="Expected output">
  ```
  Found 2 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-006 [active] [valid] ISSUE-001 → SPEC-002
    Type: suggestion | API Design (line 15)
    Consider using REST conventions for endpoint naming
  ```
</Accordion>

### Filter by Type

Show only request-type feedback:

```bash theme={null}
sudocode feedback list --type request
```

<Accordion title="Expected output">
  ```
  Found 2 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-004 [active] [stale] ISSUE-015 → SPEC-001
    Type: request | Error Handling (line 45)
    Need clarification on error response format
  ```
</Accordion>

### Show Only Active Feedback

Exclude dismissed feedback:

```bash theme={null}
sudocode feedback list --dismissed false
```

<Accordion title="Expected output">
  ```
  Found 4 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-002 [active] [valid] ISSUE-005 → SPEC-001
    Type: comment | OAuth 2.0 Flow (line 30)
    OAuth flow implemented successfully with PKCE extension

  FB-004 [active] [stale] ISSUE-015 → SPEC-001
    Type: request | Error Handling (line 45)
    Need clarification on error response format

  FB-005 [active] [relocated] ISSUE-020 → SPEC-003
    Type: suggestion | Data Model (line 92)
    Consider using enum type instead of string constants
  ```
</Accordion>

### Show Only Dismissed Feedback

View resolved feedback:

```bash theme={null}
sudocode feedback list --dismissed true
```

<Accordion title="Expected output">
  ```
  Found 1 feedback item(s):

  FB-003 [dismissed] [valid] ISSUE-010 → SPEC-002
    Type: suggestion | API Endpoints (line 78)
    Consider adding rate limiting to prevent abuse: 10 requests/minute per c...
  ```
</Accordion>

### Combine Multiple Filters

Show active requests for a specific spec:

```bash theme={null}
sudocode feedback list --spec SPEC-001 --type request --dismissed false
```

<Accordion title="Expected output">
  ```
  Found 2 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    Token expiration policy not specified. Should we use fixed or sliding wi...

  FB-004 [active] [stale] ISSUE-015 → SPEC-001
    Type: request | Error Handling (line 45)
    Need clarification on error response format
  ```
</Accordion>

### Increase Result Limit

Show more results:

```bash theme={null}
sudocode feedback list --limit 100
```

<Accordion title="Expected output">
  ```
  Found 87 feedback item(s):

  FB-001 [active] [valid] ISSUE-001 → SPEC-001
    Type: request | Authentication Flow (line 42)
    ...
  [... 86 more entries ...]
  ```
</Accordion>

### JSON Output

Get machine-readable output:

```bash theme={null}
sudocode --json feedback list --spec SPEC-001
```

<Accordion title="JSON output">
  ```json theme={null}
  [
    {
      "id": "FB-001",
      "issue_id": "ISSUE-001",
      "spec_id": "SPEC-001",
      "feedback_type": "request",
      "content": "Token expiration policy not specified. Should we use fixed or sliding window?",
      "agent": "alice",
      "anchor": {
        "line_number": 42,
        "section_heading": "Authentication Flow",
        "text_snippet": "Token expiration policy",
        "anchor_status": "valid",
        "context_before": "...",
        "context_after": "..."
      },
      "dismissed": false,
      "created_at": "2025-10-29T10:15:00Z",
      "updated_at": "2025-10-29T10:15:00Z"
    },
    {
      "id": "FB-002",
      "issue_id": "ISSUE-005",
      "spec_id": "SPEC-001",
      "feedback_type": "comment",
      "content": "OAuth flow implemented successfully with PKCE extension",
      "agent": "bob",
      "anchor": {
        "line_number": 30,
        "section_heading": "OAuth 2.0 Flow",
        "text_snippet": "OAuth implementation",
        "anchor_status": "valid",
        "context_before": "...",
        "context_after": "..."
      },
      "dismissed": false,
      "created_at": "2025-10-29T11:00:00Z",
      "updated_at": "2025-10-29T11:00:00Z"
    }
  ]
  ```
</Accordion>

## Understanding Output

### Status Indicators

Each feedback entry shows two status indicators:

<CardGroup cols={2}>
  <Card title="Feedback Status" icon="circle-check">
    **\[active] or \[dismissed]**

    * **active** - Feedback needs attention
    * **dismissed** - Feedback has been addressed or resolved

    Dismissed feedback appears in gray.
  </Card>

  <Card title="Anchor Status" icon="anchor">
    **\[valid], \[relocated], or \[stale]**

    * **valid** (green) - Anchor is accurate
    * **relocated** (yellow) - Content moved, anchor updated
    * **stale** (red) - Anchor may be invalid due to changes

    Use `feedback stale` to find all stale anchors.
  </Card>
</CardGroup>

### Output Format

Each entry shows:

```
FB-001 [active] [valid] ISSUE-001 → SPEC-001
  Type: request | Authentication Flow (line 42)
  Token expiration policy not specified. Should we use fixed or sliding wi...
```

Breaking this down:

* **FB-001** - Feedback ID
* **\[active]** - Not dismissed
* **\[valid]** - Anchor is accurate
* **ISSUE-001 → SPEC-001** - From issue to spec
* **Type: request** - Feedback type
* **Authentication Flow (line 42)** - Location in spec
* **Token expiration...** - Content preview (truncated at 80 chars)

## Common Workflows

### Review All Active Feedback

See what needs attention:

<Steps>
  <Step title="List active feedback">
    ```bash theme={null}
    sudocode feedback list --dismissed false
    ```
  </Step>

  <Step title="Review each item">
    ```bash theme={null}
    sudocode feedback show FB-001
    ```
  </Step>

  <Step title="Address or dismiss">
    Update spec or dismiss feedback as appropriate
  </Step>
</Steps>

### Audit Spec Quality

Check all feedback for a spec:

<Steps>
  <Step title="List feedback for spec">
    ```bash theme={null}
    sudocode feedback list --spec SPEC-001
    ```
  </Step>

  <Step title="Identify patterns">
    Look for recurring issues or ambiguities
  </Step>

  <Step title="Update spec">
    Improve spec based on feedback
  </Step>

  <Step title="Dismiss addressed feedback">
    ```bash theme={null}
    sudocode feedback dismiss FB-001
    ```
  </Step>
</Steps>

### Find Requests Needing Response

Show all unanswered clarification requests:

```bash theme={null}
sudocode feedback list --type request --dismissed false
```

### Track Issue Feedback

See all feedback provided by an issue:

```bash theme={null}
sudocode feedback list --issue ISSUE-042
```

This shows what ambiguities or suggestions the issue discovered during implementation.

### Identify Stale Anchors

Find feedback that may need relocation:

```bash theme={null}
sudocode feedback list | grep stale
```

Or use the dedicated command:

```bash theme={null}
sudocode feedback stale
```

## Filtering Strategies

<CardGroup cols={2}>
  <Card title="By Source" icon="code-branch">
    **Find feedback from implementation**

    ```bash theme={null}
    # All feedback from an issue
    sudocode feedback list --issue ISSUE-001

    # All feedback from multiple issues (scripting)
    for issue in ISSUE-001 ISSUE-002; do
      sudocode feedback list --issue "$issue"
    done
    ```
  </Card>

  <Card title="By Target" icon="file">
    **Find feedback for a spec**

    ```bash theme={null}
    # All feedback on a spec
    sudocode feedback list --spec SPEC-001

    # Active feedback only
    sudocode feedback list --spec SPEC-001 --dismissed false
    ```
  </Card>

  <Card title="By Type" icon="tag">
    **Filter by feedback nature**

    ```bash theme={null}
    # Questions needing answers
    sudocode feedback list --type request --dismissed false

    # Implementation notes
    sudocode feedback list --type comment

    # Improvement suggestions
    sudocode feedback list --type suggestion --dismissed false
    ```
  </Card>

  <Card title="By Status" icon="check">
    **Active vs resolved**

    ```bash theme={null}
    # Open feedback
    sudocode feedback list --dismissed false

    # Resolved feedback (audit trail)
    sudocode feedback list --dismissed true
    ```
  </Card>
</CardGroup>

## Scripting Examples

### Generate Feedback Report

```bash theme={null}
# Count feedback by type
echo "Active feedback by type:"
for type in comment suggestion request; do
  count=$(sudocode --json feedback list --type "$type" --dismissed false | jq 'length')
  echo "$type: $count"
done
```

### Find Specs Needing Attention

```bash theme={null}
# Specs with multiple active requests
sudocode --json feedback list --type request --dismissed false | \
  jq -r '.[] | .spec_id' | \
  sort | uniq -c | sort -rn | head
```

### Weekly Feedback Digest

```bash theme={null}
# List all feedback added this week
sudocode --json feedback list | \
  jq --arg week_ago "$(date -d '7 days ago' '+%Y-%m-%dT%H:%M:%SZ')" \
  '.[] | select(.created_at > $week_ago)'
```

## Common Questions

<AccordionGroup>
  <Accordion title="How do I see feedback content in the list?">
    The list view shows a preview (first 80 characters). To see full content:

    ```bash theme={null}
    sudocode feedback show FB-001
    ```
  </Accordion>

  <Accordion title="Can I filter by agent?">
    Not directly via CLI options. Use JSON output with jq:

    ```bash theme={null}
    sudocode --json feedback list | jq '.[] | select(.agent == "alice")'
    ```
  </Accordion>

  <Accordion title="What's the difference between dismissed and deleted?">
    * **Dismissed** - Marked as addressed but retained for audit trail
    * **Deleted** - No delete command exists; dismiss instead to preserve history
  </Accordion>

  <Accordion title="Can I list feedback by date range?">
    Use JSON output with jq filtering:

    ```bash theme={null}
    sudocode --json feedback list | \
      jq '.[] | select(.created_at > "2025-10-01")'
    ```
  </Accordion>

  <Accordion title="How do I find feedback with stale anchors?">
    Use the dedicated command:

    ```bash theme={null}
    sudocode feedback stale
    ```

    Or filter the list:

    ```bash theme={null}
    sudocode --json feedback list | jq '.[] | select(.anchor.anchor_status == "stale")'
    ```
  </Accordion>

  <Accordion title="Does --limit affect all filters?">
    Yes, limit is applied after all filters. If you filter by spec and set limit to 10, you'll get up to 10 results for that spec.
  </Accordion>
</AccordionGroup>

## Troubleshooting

<AccordionGroup>
  <Accordion title="No feedback found (but I know there is feedback)">
    **Cause:** Filters are too restrictive

    **Solution:**
    Try removing filters one at a time:

    ```bash theme={null}
    # Start broad
    sudocode feedback list

    # Add filters gradually
    sudocode feedback list --spec SPEC-001
    sudocode feedback list --spec SPEC-001 --dismissed false
    ```
  </Accordion>

  <Accordion title="Anchor status shows as stale but content hasn't changed">
    **Cause:** Line numbers shifted due to edits elsewhere in spec

    **Solution:**
    Relocate the anchor:

    ```bash theme={null}
    sudocode feedback relocate FB-001 --line 45
    ```
  </Accordion>

  <Accordion title="List is truncated at 50 items">
    **Cause:** Default limit

    **Solution:**
    Increase the limit:

    ```bash theme={null}
    sudocode feedback list --limit 1000
    ```
  </Accordion>

  <Accordion title="Can't filter by multiple specs">
    **Cause:** CLI doesn't support multiple values for filters

    **Solution:**
    Use shell scripting:

    ```bash theme={null}
    for spec in SPEC-001 SPEC-002 SPEC-003; do
      sudocode feedback list --spec "$spec"
    done
    ```
  </Accordion>
</AccordionGroup>

## Related Commands

<CardGroup cols={3}>
  <Card title="feedback add" icon="plus" href="/cli/feedback-add">
    Add new feedback
  </Card>

  <Card title="feedback show" icon="eye" href="/cli/feedback-show">
    View feedback details
  </Card>

  <Card title="feedback dismiss" icon="check" href="/cli/feedback-dismiss">
    Dismiss feedback
  </Card>

  <Card title="feedback stale" icon="triangle-exclamation" href="/cli/feedback-stale">
    Find stale anchors
  </Card>

  <Card title="spec show" icon="file-lines" href="/cli/spec-show">
    View spec with feedback
  </Card>

  <Card title="issue show" icon="list-check" href="/cli/issue-show">
    View issue with feedback
  </Card>
</CardGroup>

## Next Steps

<Steps>
  <Step title="List active feedback">
    ```bash theme={null}
    sudocode feedback list --dismissed false
    ```
  </Step>

  <Step title="Review details">
    ```bash theme={null}
    sudocode feedback show FB-001
    ```
  </Step>

  <Step title="Address feedback">
    Update spec or respond to requests
  </Step>

  <Step title="Dismiss when done">
    ```bash theme={null}
    sudocode feedback dismiss FB-001
    ```
  </Step>
</Steps>

<Card title="Feedback System Concept Guide" icon="book" href="/concepts/feedback">
  Learn more about the feedback system and bidirectional learning
</Card>
