skills/tddworks/asc-cli-skills/asc-customer-reviews

asc-customer-reviews

SKILL.md

Customer Reviews & Review Responses with asc

Read customer reviews left on your App Store listing and manage developer responses — reply to feedback, revise responses, or delete them.

Authentication

Set up credentials before any review commands:

asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8

CAEOAS — Affordances Guide Next Steps

Every JSON response includes "affordances" with ready-to-run commands:

CustomerReview affordances:

{
  "id": "rev-001",
  "appId": "123456789",
  "rating": 5,
  "title": "Great app!",
  "body": "Love using this app every day.",
  "reviewerNickname": "user123",
  "territory": "USA",
  "affordances": {
    "getResponse": "asc review-responses get --review-id rev-001",
    "respond": "asc review-responses create --review-id rev-001 --response-body \"\"",
    "listReviews": "asc reviews list --app-id 123456789"
  }
}

CustomerReviewResponse affordances:

{
  "id": "resp-001",
  "reviewId": "rev-001",
  "responseBody": "Thank you for your feedback!",
  "state": "PUBLISHED",
  "affordances": {
    "delete": "asc review-responses delete --response-id resp-001",
    "getReview": "asc reviews get --review-id rev-001"
  }
}

Copy affordance commands directly — no need to look up IDs.

Resolve App ID

See project-context.md — check .asc/project.json before asking the user or running asc apps list.

Commands

reviews list — list all reviews for an app

asc reviews list --app-id <APP_ID> [--pretty] [--output table|markdown]

Returns reviews sorted by most recent first. Fields: id, appId, rating (1-5), title?, body?, reviewerNickname?, createdDate?, territory? (ISO 3166-1 alpha-3 code like "USA", "GBR").

Nil optional fields are omitted from JSON output.

reviews get — get a single review

asc reviews get --review-id <REVIEW_ID> [--pretty]

Note: appId will be empty ("") because the single-GET API endpoint doesn't return the parent app ID.

review-responses get — get the response to a review

asc review-responses get --review-id <REVIEW_ID> [--pretty]

Uses the review ID (not the response ID) to fetch the linked response.

review-responses create — respond to a review

asc review-responses create --review-id <REVIEW_ID> --response-body "Thank you for your feedback!"

New responses start in PENDING_PUBLISH state — they go live within ~24 hours.

review-responses delete — delete a response

asc review-responses delete --response-id <RESPONSE_ID>

To revise a response, delete the existing one and create a new one.

Typical Workflow

APP_ID=$(cat .asc/project.json 2>/dev/null | jq -r '.appId // empty')
# If empty: ask user or run `asc apps list | jq -r '.data[0].id'`

# 1. List reviews for the app
asc reviews list --app-id "$APP_ID" --output table

# 2. Read a specific review in detail
asc reviews get --review-id rev-001 --pretty

# 3. Check if there is already a response
asc review-responses get --review-id rev-001

# 4. Respond to the review
asc review-responses create \
  --review-id rev-001 \
  --response-body "Thank you! We fixed the crash in v2.1."

# 5. To revise, delete and recreate
asc review-responses delete --response-id resp-001
asc review-responses create \
  --review-id rev-001 \
  --response-body "Updated response with more detail."

Response State

State Meaning
PUBLISHED Response is live on the App Store
PENDING_PUBLISH Response submitted, awaiting publication (up to 24 hours)

Semantic booleans: isPublished, isPending.

Output Flags

--pretty          # Pretty-print JSON
--output table    # Table format
--output markdown # Markdown table
Weekly Installs
3
First Seen
2 days ago
Installed on
amp3
cline3
opencode3
cursor3
kimi-cli3
kiro-cli3