Skip to content
Back to skills

Atris Feedback

ASecurity

Submit, list, resolve, close, or delete Atris customer feedback. Use when user types /feedback or asks to triage the feedback queue.

  • 71 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentspythonrustbashexpressawsgitapibackendsecurity

Works with

  • cli
  • api

Security analysis

A100/100

Scanned September 3, 2026

npx -y skills add atrislabs/atris --skill atris-feedback --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Atris Feedback?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Atris Feedback
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/atrislabs-atris-feedback/badge)](https://www.skillsdirectory.com/skills/atrislabs-atris-feedback)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: atris-feedback
description: Submit, list, resolve, close, or delete Atris customer feedback. Use when user types /feedback or asks to triage the feedback queue.
version: 1.0.0
tags:
  - feedback
  - customer
  - admin
---

# Feedback

One skill for everything: submit feedback, view the queue, resolve/close/delete items.

## Steps

1. Parse the user input to determine the feedback action (list, submit, resolve, close, delete)
2. Run the matching `atris feedback` CLI command from the reference below
3. If `atris` CLI is unavailable, fall back to the direct API/DynamoDB path
4. Report the result to the user

## Parse the input

- `/feedback` (no args) → show the queue
- `/feedback <message>` → submit new feedback
- `/feedback resolve <id> <resolution>` → mark as resolved, notify customer
- `/feedback close <id>` → close as wontfix/duplicate
- `/feedback delete <id>` → remove from queue

## Preferred path: the Atris CLI

The `atris` CLI wraps every feedback operation against the production API and
handles auth from the user's login. Use it first — it's the canonical,
audited path and works without needing AWS credentials.

```bash
atris feedback                              # list queue
atris feedback "the calendar hangs"         # submit
atris feedback resolve abc123 "fixed"       # mark resolved
atris feedback close abc123                 # close as wontfix
atris feedback delete abc123                # delete
```

IDs can be short (first 8 chars of the UUID) — the CLI resolves the prefix
against the live list before acting.

If `atris` is not on PATH, it lives at `~/arena/atris-cli/bin/atris.js`.

## Fallback: direct API / DynamoDB

Only use this path if the CLI is unavailable (stale install, broken login).

### Setup

Use this only from a trusted service workspace with AWS credentials already
configured. Do not ask end users to clone or run backend services locally.

```python
from dotenv import load_dotenv; load_dotenv('backend/.env')
import boto3
table = boto3.resource('dynamodb', region_name='us-east-1').Table('atris_feedback')
```

### Submit

```bash
curl -s -X POST "https://api.atris.ai/api/feedback" \
  -H "Content-Type: application/json" \
  -H "X-Feedback-Key: $FEEDBACK_API_KEY" \
  -d '{"message": "THE_MESSAGE", "source": "cli", "context": {"user_email": "GIT_EMAIL"}}'
```

Confirm: `Feedback submitted (id: abc123)`

### Resolve

```python
table.update_item(
    Key={'id': FULL_ID},
    UpdateExpression='SET #s = :s, resolution = :r, resolved_at = :t',
    ExpressionAttributeNames={'#s': 'status'},
    ExpressionAttributeValues={':s': 'resolved', ':r': RESOLUTION, ':t': NOW},
)
```

Print: `Resolved abc123: <resolution>`

### Close

Same as resolve but `status = 'closed'`, no resolution text needed.

### Delete

```python
table.delete_item(Key={'id': FULL_ID})
```

Print: `Deleted abc123`

### ID matching

Users type short IDs (first 8 chars). Scan the table and match by prefix
to find the full UUID.

## Security

- NEVER include API keys, tokens, or secrets in feedback messages
- Server-side sanitization strips them anyway (double protection)
- Max 2000 chars per message

## Output

Always print the result directly as text. Never leave it inside a tool
call expansion.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.