Skip to main content

What Is Feedback?

The feedback system enables bidirectional learning between implementation and design. As agents work on issues, they can provide anchored feedback back to the specs, bridging the gap between what was planned and what was learned during implementation.
Key Principle: Specs aren’t static documents - they evolve based on feedback from implementation. Agents discover ambiguities, missing requirements, and new constraints that flow back up to improve the specs.
Feedback is an anchored comment from an issue to a spec. It allows agents (or humans) to:
  • Point out ambiguities discovered during implementation
  • Request clarification on unclear requirements
  • Suggest improvements based on actual implementation
  • Document assumptions made when specs were incomplete
Each feedback has:
  • Source issue - The issue where feedback was discovered
  • Target spec - The spec receiving feedback
  • Content - The actual feedback message
  • Type - comment, suggestion, or request
  • Anchor - Optional location in the spec (line number or text)

Feedback vs. Relationships

Feedback

Provides context to specs
  • From issue → to spec
  • Adds commentary/questions
  • Can be dismissed
  • Anchored to specific locations

Relationships

Connects entities
  • Between any entities
  • Structural connections
  • Permanent links
  • Graph-based dependencies
Use feedback when you need to comment on or question a spec. Use relationships when you need to connect entities structurally.

Feedback Types

sudocode supports three types of feedback:
Purpose: Provide informational feedback without requesting actionUse cases:
  • Document implementation decisions
  • Explain assumptions made
  • Share learnings from implementation
  • Provide status updates
Example:
Purpose: Suggest changes or improvements to the specUse cases:
  • Propose better approaches discovered during implementation
  • Suggest additional features
  • Recommend spec clarifications
  • Share best practices
Example:
Purpose: Request clarification or additional requirementsUse cases:
  • Point out ambiguities
  • Ask about missing edge cases
  • Request technical specifications
  • Highlight gaps in requirements
Example:

Smart Anchoring

Feedback can be anchored to specific locations in specs using two methods:

Line Number Anchoring

Anchor feedback to a specific line number:
Best for: Precise locations, code-like specs with numbered sections

Text Search Anchoring

Anchor feedback by searching for text:
sudocode will:
  1. Search for the text “Authentication Flow” in the spec
  2. Anchor the feedback to that location
  3. Store context (surrounding text) for relocating if the spec changes
Best for: Section headings, stable text that’s unlikely to change

No Anchor (General Feedback)

Feedback doesn’t require an anchor - you can provide general feedback on the entire spec:

Anchor Relocation (Future)

Smart anchor relocation is planned but not yet fully implemented. Currently, anchors are stored but not automatically relocated when specs change. This is a future enhancement.
The planned anchor relocation feature will:
  • Track when spec content changes around an anchor
  • Attempt to relocate the anchor to the new location
  • Use fuzzy matching on surrounding context
  • Mark anchors as “stale” if relocation fails
  • Provide commands to manually relocate or dismiss stale feedback

Creating Feedback

Command Syntax

Required arguments:
  • <issue-id> - The issue providing feedback
  • <spec-id> - The spec receiving feedback
Options:
  • --content <text> - Feedback content (required)
  • --type <type> - Feedback type: comment, suggestion, request (default: comment)
  • --line <number> - Anchor to line number
  • --text <search> - Anchor by searching for text

Examples

Viewing Feedback

On Specs

When you view a spec, you’ll see all feedback it has received:

On Issues

Issues also show what feedback they’ve provided:

Agent Workflows

When Agents Should Provide Feedback

1

Discovered ambiguity

Spec doesn’t clearly specify something needed for implementation
2

Found missing requirement

Edge case or scenario not covered in spec
3

Learned something valuable

Implementation revealed a better approach or important constraint
4

Made assumption

Had to assume something to proceed - document it for review
5

Completed work

Successfully implemented - confirm requirements were clear (optional)

Example Agent Flow

Managing Feedback

Dismissing Feedback

Mark feedback as addressed or not relevant:
Dismissed feedback is retained but marked as resolved

Listing Feedback

Database Schema

For reference, here’s how feedback is stored:
The anchor field stores JSON with location information:

Best Practices

Writing Effective Feedback

Clear and specific:
Actionable:
Contextual:
Too vague:
No context:
Redundant:

When to Use Each Feedback Type

Anchoring Best Practices

1

Use line numbers for precise locations

When you need exact positioning, especially in code-like specs
2

Use text search for sections

Anchor to section headings that are less likely to change
3

Skip anchor for general feedback

If feedback applies to entire spec, don’t anchor it
4

Keep anchors stable

Try to anchor to stable text (headings, not prose)

CLI Commands

Quick reference for feedback commands:

Feedback Command Reference

See complete documentation for all feedback commands

Common Workflows

Agent Discovers Ambiguity

1

Agent reads spec

2

Agent starts work

3

Agent finds ambiguity

Spec doesn’t specify token expiration policy
4

Agent provides feedback

5

Agent continues with assumption

Documents assumption in issue, continues work

Human Reviews Feedback

1

Check for open feedback

2

Review specific feedback

3

Update spec if needed

Edit the spec to address the feedback
4

Dismiss feedback

Next Steps

Specs

Learn about specs - the documents that receive feedback

Issues

Learn about issues - the source of implementation feedback

Workflows

See feedback in action in spec-driven development

Feedback Commands

Complete CLI reference for feedback commands