{
  "schemaVersion": "1.0",
  "item": {
    "slug": "imprettyamazing",
    "name": "I'm Pretty Amazing",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/MacksMind/imprettyamazing",
    "canonicalUrl": "https://clawhub.ai/MacksMind/imprettyamazing",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/imprettyamazing",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=imprettyamazing",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "references/api.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/imprettyamazing"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/imprettyamazing",
    "agentPageUrl": "https://openagent3.xyz/skills/imprettyamazing/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imprettyamazing/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imprettyamazing/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "I'm Pretty Amazing",
        "body": "Interact with imprettyamazing.com to track accomplishments."
      },
      {
        "title": "First-Time Setup",
        "body": "On first use, check TOOLS.md for an ### I'm Pretty Amazing section.\n\nPersisted auth data should include cookie values and JWT expiry metadata so auth can be reused until expiration:\n\n### I'm Pretty Amazing\n- **Username:** their-username (optional)\n- **Access Token Cookie:** eyJhbGciOi...\n- **Refresh Token Cookie:** eyJhbGciOi... (optional but recommended)\n- **Access Token Expires At (UTC):** 2026-03-21T03:04:46Z\n\nToken handling:\n\nNever commit token values to git-tracked files.\nNever print full session token values (access_token, refresh_token) in chat responses or logs. One-time verification codes from email are safe to paste in chat since they expire on use.\n\nIf auth cookies are missing or expired:\n\nAsk the user: \"Do you have an I'm Pretty Amazing account, or should I create one?\"\nNew account: Collect username, email, and password → POST /auth/register. Remind them to verify their email. If they want in-chat help, ask them to paste the verification token (or tokenized verification URL) from their email, then call POST /auth/verify-email with that token.\nExisting account: Continue.\nBefore asking for credentials, tell the user: \"I'll need your email and password to log in. They'll be sent directly to the I'm Pretty Amazing API and won't be stored.\" Then prompt for email and password.\nCall POST /auth/login.\nIf login fails, re-prompt for email/password.\nAfter successful login, ask the user: \"Want me to save your session tokens so you stay logged in for future requests? They'll be stored in plaintext in TOOLS.md and expire automatically. Decline if others can access your TOOLS.md.\" If they agree, persist access_token, refresh_token (if present), and access-token expiry in TOOLS.md. If they decline, use the cookie file for this session only.\nNever persist email/password in TOOLS.md.\nReuse persisted auth cookies until the stored access-token expiry time.\n\nNever hardcode credentials in commands."
      },
      {
        "title": "Authentication Pattern (follow exactly)",
        "body": "Session cookies are required for most endpoints.\n\nNo-login endpoints:\n\nPOST /auth/register\nPOST /auth/login\nPOST /auth/forgot-password\nPOST /auth/reset-password\nPOST /auth/verify-email\n\nCookie-auth endpoints:\n\nPOST /auth/resend-verification\nGET /auth/me\nAll wins, comments, likes, follows, blocks, profile, feed, and feedback endpoints\n\nFor cookie-auth endpoints, follow these steps:\n\nStep 0 — Reuse persisted auth if still valid (preferred):\n\nRead persisted Access Token Cookie (and Refresh Token Cookie if available) from TOOLS.md.\nVerify that Access Token Cookie is present and Access Token Expires At (UTC) is a valid ISO 8601 timestamp (YYYY-MM-DDTHH:MM:SSZ). If either is missing or malformed, continue to Step 1.\nIf Access Token Expires At (UTC) is in the future, rebuild a cookie jar from those values and use that jar for requests.\nIf expired, continue to Step 1.\n\nCanonical cookie-jar rebuild snippet (substitute persisted values from TOOLS.md):\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\nACCESS_TOKEN=\"<Access Token Cookie from TOOLS.md>\"\nREFRESH_TOKEN=\"<Refresh Token Cookie from TOOLS.md>\"\n\ncat > \"$IPA_COOKIE_FILE\" <<EOF\n# Netscape HTTP Cookie File\n.imprettyamazing.com\tTRUE\t/\tTRUE\t0\taccess_token\t$ACCESS_TOKEN\n.imprettyamazing.com\tTRUE\t/\tTRUE\t0\trefresh_token\t$REFRESH_TOKEN\nEOF\n\nIf Refresh Token Cookie is unavailable, omit the REFRESH_TOKEN assignment and the refresh_token line.\n\nStep 1 — Login (do this once, before any other calls):\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\ncurl -s -X POST https://api.imprettyamazing.com/auth/login \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"EMAIL\",\"password\":\"PASSWORD\"}' \\\n  -c \"$IPA_COOKIE_FILE\"\n\nThe -c flag saves auth cookies (access_token and refresh_token) to the cookie file.\n\nAfter login, extract cookie values. If the user opted in to session persistence (see First-Time Setup step 7), persist them to TOOLS.md with access-token expiry (from JWT exp).\n\nCanonical cookie extraction snippet (from curl cookie jar):\n\nACCESS_TOKEN=\"$(awk '$6==\"access_token\" {print $7}' \"$IPA_COOKIE_FILE\" | tail -n 1)\"\nREFRESH_TOKEN=\"$(awk '$6==\"refresh_token\" {print $7}' \"$IPA_COOKIE_FILE\" | tail -n 1)\"\n\ntest -n \"$ACCESS_TOKEN\" || { echo \"Missing access_token in cookie jar\"; exit 1; }\n\nCanonical expiry extraction snippet (from access_token):\n\n# ACCESS_TOKEN should be the cookie value only (no \"access_token=\" prefix)\nACCESS_TOKEN=\"...\"\n\nACCESS_TOKEN_EXPIRES_AT_UTC=\"$(python3 - <<'PY'\nimport base64, json, os\ntoken = os.environ[\"ACCESS_TOKEN\"]\npayload = token.split('.')[1]\npayload += '=' * (-len(payload) % 4)\ndata = json.loads(base64.urlsafe_b64decode(payload.encode()).decode())\nfrom datetime import datetime, timezone\nprint(datetime.fromtimestamp(data['exp'], tz=timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ'))\nPY\n)\"\n\necho \"$ACCESS_TOKEN_EXPIRES_AT_UTC\"\n\nPersist ACCESS_TOKEN_EXPIRES_AT_UTC as Access Token Expires At (UTC) in TOOLS.md.\nPersist ACCESS_TOKEN as Access Token Cookie and REFRESH_TOKEN (if present) as Refresh Token Cookie.\n\nStep 2 — Make API calls (reuse the cookie file):\n\ncurl -s https://api.imprettyamazing.com/wins/my-wins \\\n  -b \"$IPA_COOKIE_FILE\"\n\nUse -b \"$IPA_COOKIE_FILE\" on every cookie-auth request.\n\nIf only persisted cookie values are available (no cookie file yet), you can call with an explicit cookie header (substitute values from TOOLS.md):\n\ncurl -s https://api.imprettyamazing.com/wins/my-wins \\\n  -H \"Cookie: access_token=<Access Token Cookie from TOOLS.md>; refresh_token=<Refresh Token Cookie from TOOLS.md>\"\n\nStep 3 — Handle expired sessions:\nIf any call returns {\"statusCode\": 401, ...}:\n\nPrompt again for email/password (session-only).\nCall POST /auth/login again and overwrite the cookie file with -c.\nRe-extract cookies from IPA_COOKIE_FILE. If session persistence was previously opted in, update access_token, refresh_token, and Access Token Expires At (UTC) in TOOLS.md.\nRetry the failed call.\n\nRules:\n\nNever store email/password in TOOLS.md.\nAlways send -b \"$IPA_COOKIE_FILE\" for cookie-auth endpoints.\nUse a unique cookie filename per session to avoid conflicts.\nReuse persisted auth cookies until access-token expiry, then re-login.\nIf cookies are missing or invalid, prompt for email/password and re-login.\nCookies may contain JWT-based tokens (for example access_token), but authentication is performed by sending cookies."
      },
      {
        "title": "Confirmation Before Mutations",
        "body": "Before any state-changing action, get explicit user confirmation. This includes:\n\nPOST, PATCH, and DELETE calls (for example creating/updating/deleting wins, comments, follows, blocks, profile updates, feedback)\nAccount creation via POST /auth/register\n\nRead-only GET requests do not require additional confirmation."
      },
      {
        "title": "API Notes",
        "body": "All endpoints use JSON (Content-Type: application/json) except POST /profile/avatar and POST /profile/cover (multipart form data for file uploads).\nSuccess responses vary by endpoint (single object, list with pagination, or empty body such as some DELETE responses).\nErrors return: {\"statusCode\": <code>, \"message\": {\"message\": [...], \"error\": \"...\", \"statusCode\": <code>}}. Always check for statusCode in the response."
      },
      {
        "title": "Posting a Win",
        "body": "Login first (see Authentication Pattern above), then:\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\ncurl -s -X POST https://api.imprettyamazing.com/wins \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"content\":\"Your win here\",\"type\":\"PERSONAL\",\"visibility\":\"PUBLIC\"}'\n\n# Success response:\n# {\"id\":\"...\",\"content\":\"Your win here\",\"type\":\"PERSONAL\",\"visibility\":\"PUBLIC\",\"status\":\"APPROVED\",...}\n#\n# Error response:\n# {\"statusCode\":400,\"message\":{\"message\":[\"content should not be empty\"],\"error\":\"Bad Request\",\"statusCode\":400}}"
      },
      {
        "title": "STAR Format",
        "body": "Wins can optionally include a STAR (Situation, Task, Action, Result) breakdown. Pass a starFormat object when creating or updating a win.\n\nAll four fields are required when starFormat is provided — omitting any field returns a 500 error.\n\ncurl -s -X POST https://api.imprettyamazing.com/wins \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"content\": \"Your win here\",\n    \"type\": \"PROFESSIONAL\",\n    \"visibility\": \"PUBLIC\",\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"starFormat\": {\n      \"situation\": \"What was the context or challenge?\",\n      \"task\": \"What needed to be done?\",\n      \"action\": \"What did you do?\",\n      \"result\": \"What was the outcome?\"\n    }\n  }'\n\nSTAR format can also be added to existing wins via PATCH:\n\ncurl -s -X PATCH https://api.imprettyamazing.com/wins/:id \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"starFormat\": {\n      \"situation\": \"...\",\n      \"task\": \"...\",\n      \"action\": \"...\",\n      \"result\": \"...\"\n    }\n  }'"
      },
      {
        "title": "STAR Format Object Fields",
        "body": "id, winId, situation, task, action, result, createdAt, updatedAt"
      },
      {
        "title": "Win Types",
        "body": "PERSONAL, PROFESSIONAL, HEALTH, SOCIAL, CREATIVE, LEARNING"
      },
      {
        "title": "Visibility",
        "body": "PUBLIC (visible to all users) or PRIVATE (only visible to the poster)."
      },
      {
        "title": "Other Actions",
        "body": "All cookie-auth actions require -b \"$IPA_COOKIE_FILE\" after login. The API reference at references/api.md is the complete endpoint documentation. Read it before using any endpoint not shown above.\n\nUpdate/delete wins: PATCH /wins/:id (JSON body), DELETE /wins/:id\nComments: POST /wins/:id/comments with {\"content\": \"...\"}, GET /wins/:id/comments\nLikes: POST /wins/:id/like, DELETE /wins/:id/like (toggle)\nFollow/unfollow: POST /follows/:userId, DELETE /follows/:userId\nProfile: PATCH /profile (JSON: username, bio max 500 chars, location, website)\nAvatar/cover: POST /profile/avatar (multipart avatar), POST /profile/cover (multipart cover, keep file small)\nFeedback: POST /feedback with {\"category\": \"BUG|FEATURE_REQUEST|GENERAL\", \"message\": \"...\", \"pageUrl\": \"...\", \"pageContext\": \"...\"}"
      },
      {
        "title": "Clear Session",
        "body": "If the user asks to log out or clear their session, remove the ### I'm Pretty Amazing section from TOOLS.md and delete any /tmp/ipa-cookies-*.txt files."
      },
      {
        "title": "Proactive Usage",
        "body": "When the user accomplishes something notable — ships a feature, closes a deal, solves a hard problem, learns something new — suggest posting it as a win. Draft the content and confirm before posting."
      }
    ],
    "body": "I'm Pretty Amazing\n\nInteract with imprettyamazing.com to track accomplishments.\n\nFirst-Time Setup\n\nOn first use, check TOOLS.md for an ### I'm Pretty Amazing section.\n\nPersisted auth data should include cookie values and JWT expiry metadata so auth can be reused until expiration:\n\n### I'm Pretty Amazing\n- **Username:** their-username (optional)\n- **Access Token Cookie:** eyJhbGciOi...\n- **Refresh Token Cookie:** eyJhbGciOi... (optional but recommended)\n- **Access Token Expires At (UTC):** 2026-03-21T03:04:46Z\n\n\nToken handling:\n\nNever commit token values to git-tracked files.\nNever print full session token values (access_token, refresh_token) in chat responses or logs. One-time verification codes from email are safe to paste in chat since they expire on use.\n\nIf auth cookies are missing or expired:\n\nAsk the user: \"Do you have an I'm Pretty Amazing account, or should I create one?\"\nNew account: Collect username, email, and password → POST /auth/register. Remind them to verify their email. If they want in-chat help, ask them to paste the verification token (or tokenized verification URL) from their email, then call POST /auth/verify-email with that token.\nExisting account: Continue.\nBefore asking for credentials, tell the user: \"I'll need your email and password to log in. They'll be sent directly to the I'm Pretty Amazing API and won't be stored.\" Then prompt for email and password.\nCall POST /auth/login.\nIf login fails, re-prompt for email/password.\nAfter successful login, ask the user: \"Want me to save your session tokens so you stay logged in for future requests? They'll be stored in plaintext in TOOLS.md and expire automatically. Decline if others can access your TOOLS.md.\" If they agree, persist access_token, refresh_token (if present), and access-token expiry in TOOLS.md. If they decline, use the cookie file for this session only.\nNever persist email/password in TOOLS.md.\nReuse persisted auth cookies until the stored access-token expiry time.\n\nNever hardcode credentials in commands.\n\nAuthentication Pattern (follow exactly)\n\nSession cookies are required for most endpoints.\n\nNo-login endpoints:\n\nPOST /auth/register\nPOST /auth/login\nPOST /auth/forgot-password\nPOST /auth/reset-password\nPOST /auth/verify-email\n\nCookie-auth endpoints:\n\nPOST /auth/resend-verification\nGET /auth/me\nAll wins, comments, likes, follows, blocks, profile, feed, and feedback endpoints\n\nFor cookie-auth endpoints, follow these steps:\n\nStep 0 — Reuse persisted auth if still valid (preferred):\n\nRead persisted Access Token Cookie (and Refresh Token Cookie if available) from TOOLS.md.\nVerify that Access Token Cookie is present and Access Token Expires At (UTC) is a valid ISO 8601 timestamp (YYYY-MM-DDTHH:MM:SSZ). If either is missing or malformed, continue to Step 1.\nIf Access Token Expires At (UTC) is in the future, rebuild a cookie jar from those values and use that jar for requests.\nIf expired, continue to Step 1.\n\nCanonical cookie-jar rebuild snippet (substitute persisted values from TOOLS.md):\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\nACCESS_TOKEN=\"<Access Token Cookie from TOOLS.md>\"\nREFRESH_TOKEN=\"<Refresh Token Cookie from TOOLS.md>\"\n\ncat > \"$IPA_COOKIE_FILE\" <<EOF\n# Netscape HTTP Cookie File\n.imprettyamazing.com\tTRUE\t/\tTRUE\t0\taccess_token\t$ACCESS_TOKEN\n.imprettyamazing.com\tTRUE\t/\tTRUE\t0\trefresh_token\t$REFRESH_TOKEN\nEOF\n\n\nIf Refresh Token Cookie is unavailable, omit the REFRESH_TOKEN assignment and the refresh_token line.\n\nStep 1 — Login (do this once, before any other calls):\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\ncurl -s -X POST https://api.imprettyamazing.com/auth/login \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"email\":\"EMAIL\",\"password\":\"PASSWORD\"}' \\\n  -c \"$IPA_COOKIE_FILE\"\n\n\nThe -c flag saves auth cookies (access_token and refresh_token) to the cookie file.\n\nAfter login, extract cookie values. If the user opted in to session persistence (see First-Time Setup step 7), persist them to TOOLS.md with access-token expiry (from JWT exp).\n\nCanonical cookie extraction snippet (from curl cookie jar):\n\nACCESS_TOKEN=\"$(awk '$6==\"access_token\" {print $7}' \"$IPA_COOKIE_FILE\" | tail -n 1)\"\nREFRESH_TOKEN=\"$(awk '$6==\"refresh_token\" {print $7}' \"$IPA_COOKIE_FILE\" | tail -n 1)\"\n\ntest -n \"$ACCESS_TOKEN\" || { echo \"Missing access_token in cookie jar\"; exit 1; }\n\n\nCanonical expiry extraction snippet (from access_token):\n\n# ACCESS_TOKEN should be the cookie value only (no \"access_token=\" prefix)\nACCESS_TOKEN=\"...\"\n\nACCESS_TOKEN_EXPIRES_AT_UTC=\"$(python3 - <<'PY'\nimport base64, json, os\ntoken = os.environ[\"ACCESS_TOKEN\"]\npayload = token.split('.')[1]\npayload += '=' * (-len(payload) % 4)\ndata = json.loads(base64.urlsafe_b64decode(payload.encode()).decode())\nfrom datetime import datetime, timezone\nprint(datetime.fromtimestamp(data['exp'], tz=timezone.utc).strftime('%Y-%m-%dT%H:%M:%SZ'))\nPY\n)\"\n\necho \"$ACCESS_TOKEN_EXPIRES_AT_UTC\"\n\n\nPersist ACCESS_TOKEN_EXPIRES_AT_UTC as Access Token Expires At (UTC) in TOOLS.md. Persist ACCESS_TOKEN as Access Token Cookie and REFRESH_TOKEN (if present) as Refresh Token Cookie.\n\nStep 2 — Make API calls (reuse the cookie file):\n\ncurl -s https://api.imprettyamazing.com/wins/my-wins \\\n  -b \"$IPA_COOKIE_FILE\"\n\n\nUse -b \"$IPA_COOKIE_FILE\" on every cookie-auth request.\n\nIf only persisted cookie values are available (no cookie file yet), you can call with an explicit cookie header (substitute values from TOOLS.md):\n\ncurl -s https://api.imprettyamazing.com/wins/my-wins \\\n  -H \"Cookie: access_token=<Access Token Cookie from TOOLS.md>; refresh_token=<Refresh Token Cookie from TOOLS.md>\"\n\n\nStep 3 — Handle expired sessions: If any call returns {\"statusCode\": 401, ...}:\n\nPrompt again for email/password (session-only).\nCall POST /auth/login again and overwrite the cookie file with -c.\nRe-extract cookies from IPA_COOKIE_FILE. If session persistence was previously opted in, update access_token, refresh_token, and Access Token Expires At (UTC) in TOOLS.md.\nRetry the failed call.\n\nRules:\n\nNever store email/password in TOOLS.md.\nAlways send -b \"$IPA_COOKIE_FILE\" for cookie-auth endpoints.\nUse a unique cookie filename per session to avoid conflicts.\nReuse persisted auth cookies until access-token expiry, then re-login.\nIf cookies are missing or invalid, prompt for email/password and re-login.\nCookies may contain JWT-based tokens (for example access_token), but authentication is performed by sending cookies.\nConfirmation Before Mutations\n\nBefore any state-changing action, get explicit user confirmation. This includes:\n\nPOST, PATCH, and DELETE calls (for example creating/updating/deleting wins, comments, follows, blocks, profile updates, feedback)\nAccount creation via POST /auth/register\n\nRead-only GET requests do not require additional confirmation.\n\nAPI Notes\nAll endpoints use JSON (Content-Type: application/json) except POST /profile/avatar and POST /profile/cover (multipart form data for file uploads).\nSuccess responses vary by endpoint (single object, list with pagination, or empty body such as some DELETE responses).\nErrors return: {\"statusCode\": <code>, \"message\": {\"message\": [...], \"error\": \"...\", \"statusCode\": <code>}}. Always check for statusCode in the response.\nPosting a Win\n\nLogin first (see Authentication Pattern above), then:\n\nIPA_COOKIE_FILE=\"/tmp/ipa-cookies-$$.txt\"\n\ncurl -s -X POST https://api.imprettyamazing.com/wins \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\"content\":\"Your win here\",\"type\":\"PERSONAL\",\"visibility\":\"PUBLIC\"}'\n\n# Success response:\n# {\"id\":\"...\",\"content\":\"Your win here\",\"type\":\"PERSONAL\",\"visibility\":\"PUBLIC\",\"status\":\"APPROVED\",...}\n#\n# Error response:\n# {\"statusCode\":400,\"message\":{\"message\":[\"content should not be empty\"],\"error\":\"Bad Request\",\"statusCode\":400}}\n\nSTAR Format\n\nWins can optionally include a STAR (Situation, Task, Action, Result) breakdown. Pass a starFormat object when creating or updating a win.\n\nAll four fields are required when starFormat is provided — omitting any field returns a 500 error.\n\ncurl -s -X POST https://api.imprettyamazing.com/wins \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"content\": \"Your win here\",\n    \"type\": \"PROFESSIONAL\",\n    \"visibility\": \"PUBLIC\",\n    \"tags\": [\"tag1\", \"tag2\"],\n    \"starFormat\": {\n      \"situation\": \"What was the context or challenge?\",\n      \"task\": \"What needed to be done?\",\n      \"action\": \"What did you do?\",\n      \"result\": \"What was the outcome?\"\n    }\n  }'\n\n\nSTAR format can also be added to existing wins via PATCH:\n\ncurl -s -X PATCH https://api.imprettyamazing.com/wins/:id \\\n  -b \"$IPA_COOKIE_FILE\" \\\n  -H 'Content-Type: application/json' \\\n  -d '{\n    \"starFormat\": {\n      \"situation\": \"...\",\n      \"task\": \"...\",\n      \"action\": \"...\",\n      \"result\": \"...\"\n    }\n  }'\n\nSTAR Format Object Fields\n\nid, winId, situation, task, action, result, createdAt, updatedAt\n\nWin Types\n\nPERSONAL, PROFESSIONAL, HEALTH, SOCIAL, CREATIVE, LEARNING\n\nVisibility\n\nPUBLIC (visible to all users) or PRIVATE (only visible to the poster).\n\nOther Actions\n\nAll cookie-auth actions require -b \"$IPA_COOKIE_FILE\" after login. The API reference at references/api.md is the complete endpoint documentation. Read it before using any endpoint not shown above.\n\nUpdate/delete wins: PATCH /wins/:id (JSON body), DELETE /wins/:id\nComments: POST /wins/:id/comments with {\"content\": \"...\"}, GET /wins/:id/comments\nLikes: POST /wins/:id/like, DELETE /wins/:id/like (toggle)\nFollow/unfollow: POST /follows/:userId, DELETE /follows/:userId\nProfile: PATCH /profile (JSON: username, bio max 500 chars, location, website)\nAvatar/cover: POST /profile/avatar (multipart avatar), POST /profile/cover (multipart cover, keep file small)\nFeedback: POST /feedback with {\"category\": \"BUG|FEATURE_REQUEST|GENERAL\", \"message\": \"...\", \"pageUrl\": \"...\", \"pageContext\": \"...\"}\nClear Session\n\nIf the user asks to log out or clear their session, remove the ### I'm Pretty Amazing section from TOOLS.md and delete any /tmp/ipa-cookies-*.txt files.\n\nProactive Usage\n\nWhen the user accomplishes something notable — ships a feature, closes a deal, solves a hard problem, learns something new — suggest posting it as a win. Draft the content and confirm before posting."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/MacksMind/imprettyamazing",
    "publisherUrl": "https://clawhub.ai/MacksMind/imprettyamazing",
    "owner": "MacksMind",
    "version": "0.2.4",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/imprettyamazing",
    "downloadUrl": "https://openagent3.xyz/downloads/imprettyamazing",
    "agentUrl": "https://openagent3.xyz/skills/imprettyamazing/agent",
    "manifestUrl": "https://openagent3.xyz/skills/imprettyamazing/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/imprettyamazing/agent.md"
  }
}