Community라이팅 & 에디팅github.com

370025263/red-bucket

AI 에이전트 자산을 위한 허브로, 가져오기 시점에 교차-하네스 형식 변환을 제공합니다.

red-bucket란 무엇인가요?

red-bucket 스킬은 AI 에이전트가 `red-bucket` 서버와 상호작용할 수 있도록 안내합니다. `red-bucket`은 `user/bucket` 네임스페이스로 구성된 AI 에이전트 자산(스킬, MCP 구성, `CLAUDE.md`, `AGENTS.md` 같은 지침, 서브에이전트, 플러그인)을 위한 허브입니다. 이 허브는 `codex`, `claude`, `agents`, `openclaw` 간의 요청 시(on-the-fly) 교차-하네스 형식 변환 기능을 제공합니다. 이 스킬은 자체 클라이언트(`scripts/rb.mjs`)를 제공하며, Node 18+만으로 실행 가능하고 `npx skills`로 설치할 수 있습니다. 인증은 브라우저 기반 기기 코드 흐름을 통해 이루어지며, 토큰은 안전한 JSON 파일에 저장됩니다. 사용자는 공개 버킷을 탐색하고, 자산을 업로드 및 복사하며, 설치 스크립트를 생성하고, 버킷 콘텐츠를 특정 하네스에 맞게 변환하여 가져올 수 있습니다. 또한 이슈와 댓글 기능을 통해 협업이 가능합니다. 이 스킬은 다양한 AI 에이전트 플랫폼 간의 자산 호환성 문제를 해결하여 자산의 재사용성과 생태계 통합을 크게 향상시킵니다.

지원 대상✓Claude Code✓Codex CLI~Cursor
npx skills add 370025263/red-bucket

Installed? Explore more 라이팅 & 에디팅 skills: steipete/notion, langchain-ai/langchain, bytedance/podcast-generation · View all 6 →

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

red-bucket 스킬

이 스킬은 AI 에이전트가 red-bucket 서버와 상호작용할 수 있도록 안내합니다. red-bucket은 user/bucket 네임스페이스로 구성된 AI 에이전트 자산(스킬, MCP 구성, CLAUDE.md 및 AGENTS.md와 같은 지침, 서브에이전트, 플러그인)을 위한 허브로, codex, claude, agents, openclaw 간의 요청 시 교차-하네스 형식 변환 기능을 제공합니다.


에이전트 가드레일 및 불변 규칙

  1. 인증: 모든 쓰기 작업 및 사용자 소유의 비공개 버킷 접근에는 Authorization: Bearer <token> 헤더가 필요합니다. 공개 버킷 읽기는 익명으로 가능하며 헤더가 필요하지 않습니다.
  2. 자격 증명 안전: 비밀번호, API 토큰 또는 비밀을 출력, 로그 또는 사용자 대화 내용에 절대 유출하지 마십시오.
  3. 비공개 버킷 404 불변 규칙: 인증되지 않은 호출자 또는 소유자가 아닌 사용자의 비공개 버킷 또는 해당 하위 리소스에 대한 모든 요청은 반드시 HTTP 404 Not Found를 반환해야 합니다(403 Forbidden 절대 안 됨). 소유자가 아닌 사용자는 비공개 버킷의 존재 여부를 구분할 수 없어야 합니다.
  4. 할당량 및 제한:
    • 기본 버킷 할당량: 사용자당 5개의 버킷 (초과 시 bucket_quota_exceeded 코드와 함께 403 반환).
    • 버킷 저장소 제한: 버킷당 10MB (초과 시 bucket_storage_exceeded 코드와 함께 413 반환).
  5. API 범위: 모든 엔드포인트는 /api/v1/ 아래에 있습니다.

세 가지 이름 규칙

다음 세 가지 작업을 혼동하거나 혼합하지 마십시오.

  • copy (POST /api/v1/users/{username}/buckets/{bucket}/copies): 읽을 수 있는 소스 버킷에서 자신의 대상 버킷으로 자산을 출처 기록과 함께 복제합니다. InstallRecord JSON 객체를 반환합니다.
  • install-script (GET /api/v1/users/{username}/buckets/{bucket}/install-script): 변환된 자산을 다운로드하여 로컬 파일 시스템에 배치하는 실행 가능한 셸 스크립트 텍스트를 반환합니다.
  • translated fetch (GET .../translated): 특정 대상 하네스에 대해 실시간으로 변환된 원시 번역 바이트 또는 zip 아카이브를 가져옵니다.

설치 및 발견

1. 에이전트 스킬 설치 (npx skills 사용)

에이전트 환경에 이 스킬을 설치하려면:

# 에이전트 접근을 위한 전역 설치
npx skills add 370025263/red-bucket --skill red-bucket -g -y

# 설치하지 않고 사용 가능한 스킬 목록 보기
npx skills add 370025263/red-bucket --list

2. 번들 클라이언트: scripts/rb.mjs

이 스킬은 자체 클라이언트를 제공합니다. Node 18+와 그 외에는 아무것도 필요하지 않습니다 — sh, curl, unzip, jq, npm 설치가 필요 없습니다. HTTP 호출을 수동으로 작성하는 것보다 이 클라이언트를 선호하십시오. 이미 출처 정규화, 파일 권한 및 원자적 쓰기를 올바르게 처리합니다.

node <skill-dir>/scripts/rb.mjs login   --client claude
node <skill-dir>/scripts/rb.mjs status
node <skill-dir>/scripts/rb.mjs logout
node <skill-dir>/scripts/rb.mjs install alice/tools --target claude
node <skill-dir>/scripts/rb.mjs create  alice/tools --visibility private --description "my kit"
node <skill-dir>/scripts/rb.mjs upload  alice/tools ./my-skill --type skill --harness claude --path skills/my-skill

login은 링크를 출력한 다음 --wait 초(기본값 20) 동안 기다립니다. 셸 도구에 타임아웃이 있어도 괜찮습니다. 타임아웃 시 0으로 종료되고, 인증 파일 옆에 pending.json에 보류 중인 코드를 유지하며 그 사실을 알립니다. 사용자에게 승인을 요청한 다음 login 또는 status를 다시 실행하라고 알리십시오. 그러면 토큰이 수집되어 저장됩니다. 첫 번째 코드가 유효한 동안 두 번째 코드가 발급되지 않으므로 프로세스를 종료하고 다시 시작하여 "재시도"하지 마십시오.

install은 현재 디렉토리에 씁니다. --dest DIR 또는 $RED_BUCKET_DEST를 사용하여 다른 위치에 저장할 수 있습니다. --origin URL 또는 $RED_BUCKET_URL은 자체 호스팅 서버를 가리킵니다. 로그인하면 비공개 버킷도 동일한 명령어로 저장된 자격 증명을 사용하여 작동합니다.

create와 upload는 게시 측면입니다. upload는 로컬 디렉토리 아래의 모든 파일을 하나의 자산으로 보냅니다: 텍스트 파일은 텍스트로, 다른 모든 것은 base64로, --path(기본값: 디렉토리 자체 이름)를 기준으로 합니다. --type은 자산의 종류(skill, mcp, instructions, subagent, plugin)이고, --harness는 자산이 작성된 하네스입니다 — 서버가 그로부터 변환합니다. 서버는 자산의 유효성을 검사하고 클라이언트는 정확히 무엇에 문제가 있는지 출력합니다(예: validation failed: SKILL.md: SKILL.md missing). 둘 다 로그인이 필요합니다. 수동으로 만든 POST .../assets 본문보다 이것들을 선호하십시오: 아래의 원시 엔드포인트는 계약이고, 클라이언트는 도구입니다.

3. 이 스킬 없이 버킷 설치하기

GET .../install-script?target=<harness> (헤더 Accept: text/plain 포함)는 독립 실행형 Node 프로그램을 반환합니다. 본문을 rb-install.mjs로 저장하고 node rb-install.mjs를 실행하십시오. 동일한 Node 전용 종속성, 동일한 RED_BUCKET_URL / RED_BUCKET_DEST 재정의를 사용합니다.

(비공개 버킷의 경우 붙여넣을 수 있는 공개 프로그램이 없습니다: 대신 Authorization: Bearer <token> 헤더와 함께 GET .../translated를 가져오거나, 로그인 상태에서 rb.mjs install을 사용하십시오.)


로그인 및 토큰 저장 위치

공개 버킷을 읽는 데는 아무것도 필요하지 않습니다. 쓰는 모든 것 — 버킷 생성, 자산 업로드, 이슈 또는 풀 리퀘스트 열기 — 에는 Bearer 토큰이 필요합니다.

사용자에게 red-bucket 비밀번호를 절대 묻지 마십시오. 아래의 브라우저 핸드오프를 사용하십시오. 이것이 에이전트가 토큰을 얻을 수 있는 유일한 허용된 방법입니다.

토큰 저장 위치

$RED_BUCKET_AUTH                                     설정된 경우, 정확히 그 파일
%APPDATA%\red-bucket\auth.json                       Windows
${XDG_CONFIG_HOME:-~/.config}/red-bucket/auth.json   그 외 모든 곳

먼저 그곳을 확인하십시오. 이 출처에 대한 활성 항목이 이미 있으면 사용하십시오 — 이미 부여된 토큰을 위해 사용자를 다시 브라우저로 보내지 마십시오.

디렉토리 모드는 0700, 파일 모드는 0600입니다. 원자적으로 쓰십시오(같은 디렉토리에 임시 파일을 만든 후 이름을 바꾸는 방식). 중단된 쓰기로 인해 반쪽짜리 파일이 남지 않습니다. 출처별로 키가 지정된 형태로, 자체 호스팅 서버와 공개 서버가 공존할 수 있습니다:

{
  "version": 1,
  "hosts": {
    "https://redbucket.store": {
      "username": "stone91",
      "token": "...",
      "created_at": "2026-09-03T04:07:19Z",
      "client": "claude"
    }
  }
}

다음 순서로 신원을 확인하십시오: $RED_BUCKET_TOKEN이 설정되어 있으면 그것을 사용하고, 그렇지 않으면 대화 중인 출처와 일치하는 키가 있는 파일의 항목을 사용하고, 마지막으로 익명으로 처리합니다. Authorization: Bearer <token>으로 보냅니다.

출처를 키로 사용하기 전에 정규화하십시오, 쓸 때와 조회할 때 모두: 체계와 호스트를 소문자로 만들고, 후행 슬래시를 제거하고, 체계의 기본 포트인 경우 포트를 제거하십시오. 따라서 https://RedBucket.store:443/와 https://redbucket.store는 서로 다른 세 개의 키가 아니라 하나의 키입니다. 이것을 생략하면 이미 가지고 있는 토큰을 위해 사용자를 다시 브라우저로 보내고 중복 항목을 남기게 됩니다.

파일을 구문 분석할 수 없거나 version이 인식할 수 없는 숫자인 경우 자격 증명이 없는 것으로 처리하십시오 — 익명으로 대체하고 파일에 문제가 있는 것 같다고 사용자에게 알리십시오. 읽을 수 없는 파일을 절대 삭제하거나 덮어쓰지 마십시오. 다른 도구의 토큰이 들어 있을 수 있습니다.

전체 파일을 한 번에 읽고 변경하고 쓰십시오. 그리고 그 시간 간격을 짧게 유지하십시오. 두 개의 하네스가 동시에 로그인하면 둘 다 읽고, 둘 다 쓰며, 느린 쪽이 다른 쪽의 항목을 지웁니다. 위의 임시-파일-후-이름-변경은 찢어진 파일을 막을 뿐, 손실된 업데이트를 막지는 못합니다.

토큰을 절대 인쇄하지 말고, 대화 내용에 표시하지 말고, 저장소에 쓰지 말고, 사용자가 스크롤백에서 볼 수 있는 셸 명령어에 넣지 마십시오.

토큰 얻기: 브라우저 핸드오프

토큰은 서버에서 생성되어 프로세스로 직접 전달됩니다. 대화를 통해 전송되지 않습니다.

1. 시작합니다.

POST /api/v1/auth/device
{"client": "claude"}

201은 device_code, user_code, verification_url_complete, expires_in (600) 및 interval (5)을 제공합니다.

device_code는 비밀 부분입니다 — 프로세스 내에 유지됩니다. user_code는 사람이 읽는 짧은 것입니다.

2. 사용자에게 링크를 보여줍니다. 다음과 같이:

로그인하거나 계정을 만들려면 여기를 여십시오: https://redbucket.store/link/BQ7K-2M4X 페이지에 코드 BQ7K-2M4X가 표시되어야 합니다. 기다리겠습니다.

사용자는 브라우저에서 열고, 아직 로그인하지 않았다면 로그인하고, 클라이언트 이름과 부여하는 항목을 나열하는 화면을 봅니다. 사용자는 승인 또는 거부를 누릅니다.

3. 폴링은 interval 초보다 빠르지 않게 합니다:

POST /api/v1/auth/device/token
{"device_code": "..."}
  • {"status": "pending"} — 계속 기다리십시오.
  • {"status": "denied"} — 사용자가 거부했습니다. 중단하고 분명히 알리십시오.
  • {"status": "approved", "token": ..., "user": {...}} — 토큰을 얻었습니다.
  • 404 — 코드가 만료되었거나 이미 수집되었습니다. 다시 시작하겠다고 제안하십시오. device_code는 일회용입니다. 두 번째 성공적인 폴링은 항상 404입니다.

4. 저장은 위의 경로에 저장하고 Signed in as <username>.이라고만 말하십시오.

로그아웃

POST /api/v1/auth/logout (토큰 포함)은 서버 측에서 해당 토큰 하나를 취소합니다. 그런 다음 인증 파일에서 해당 호스트의 항목을 삭제하십시오. 둘 다 수행하십시오; 하나만 수행하면 서버에 활성 토큰이 남거나 디스크에 죽은 토큰이 남습니다.

red-bucket MCP 서버는 없습니다

mcp는 red-bucket에서 버킷이 보유할 수 있는 자산의 한 종류일 뿐, 우리가 실행하는 서버가 아닙니다. /api/v1/과 통신하는 이 스킬이 클라이언트 통합의 전부입니다. 연결할 MCP 엔드포인트를 찾지 마십시오.

사용자 측 흐름 및 API 연산

1. 사용자 등록, 로그인 및 프로필

  • 등록:

    POST /api/v1/auth/register
    Content-Type: application/json
    
    {
      "username": "alice",
      "email": "[email protected]",
      "password": "strongpassword123"
    }
    
    • 응답: 201 Created, 헤더 Location: /api/v1/users/alice, 공개 User 객체 포함 (비밀번호는 Argon2id로 해시 처리됨; 등록 시 토큰 발급 없음).
  • 로그인:

    POST /api/v1/auth/login
    Content-Type: application/json
    
    {
      "email": "[email protected]",
      "password": "strongpassword123"
    }
    
    • 응답: 200 OK, {"token": "<opaque_token>", "token_type": "bearer", "user": { ... }}.
  • 프로필 가져오기 (me):

    GET /api/v1/users/me
    Authorization: Bearer <token>
    
    • 응답: 200 OK, 사용자 세부 정보 포함 (이메일, bucket_quota, bucket_count 등).

2. 템플릿에서 버킷 생성

인증된 사용자의 네임스페이스 아래에 버킷을 생성합니다:

POST /api/v1/users/{username}/buckets
Authorization: Bearer <token>
Content-Type: application/json

{
  "name": "dev-skills",
  "visibility": "public",
  "description": "General development agent skills",
  "template": "claude"
}
  • 허용된 템플릿: codex, agents, claude, openclaw (또는 빈 버킷을 위해 생략). 이 목록은 늘어납니다; GET /api/v1/templates가 최신 목록입니다.
  • 공개 범위: public 또는 private (기본값은 private).
  • 응답: 201 Created, 헤더 Location: /api/v1/users/{username}/buckets/{name}, Bucket JSON 포함.
  • 오류: 403 (bucket_quota_exceeded if exceeding 5 buckets), 409 (bucket_name_taken).

3. 자산 업로드

형식 유효성 검사 및 할당량 적용과 함께 자산을 업로드합니다:

POST /api/v1/users/{username}/buckets/{bucket}/assets
Authorization: Bearer <token>
Content-Type: application/json

{
  "type": "skill",
  "source_harness": "claude",
  "path": "skills/calculator",
  "files": [
    {
      "path": "SKILL.md",
      "content_text": "---\nname: calculator\ndescription: Perform arithmetic calculations\n---\n\n# Calculator Skill\n"
    }
  ]
}
  • 자산 유형: skill, mcp, instructions, subagent, plugin.
  • 소스 하네스: claude, codex, agents, openclaw. 이 목록은 늘어납니다; GET /api/v1/translation-matrix가 최신 목록입니다. 이 파일에 없더라도 사용자가 지정한 하네스를 거부하지 마십시오 — 서버가 응답하게 하십시오.
  • 파일 내용은 content_text (UTF-8) 또는 content_base64로 제공될 수 있습니다.
  • 응답: 201 Created, 헤더 Location: /api/v1/users/{username}/buckets/{bucket}/assets/{asset_id}.
  • 오류: 413 (bucket_storage_exceeded if bucket exceeds 10MB), 422 (validation_failed with specific rule and path violations).

4. 익명 탐색 및 번역된 가져오기

  • 버킷 탐색 (공개 / 익명):

    GET /api/v1/users/{username}/buckets/{bucket}
    
  • 파일 트리 및 Blob 탐색:

    GET /api/v1/users/{username}/buckets/{bucket}/tree
    GET /api/v1/users/{username}/buckets/{bucket}/blob/{*path}
    
  • 대상 하네스에 대해 번역된 전체 버킷 가져오기:

    GET /api/v1/users/{username}/buckets/{bucket}/translated?target=codex
    
    • 응답: 200 OK (바이너리 zip 아카이브, 헤더 X-Red-Bucket-Lossy: true|false).
  • 번역된 단일 자산 가져오기:

    GET /api/v1/users/{username}/buckets/{bucket}/assets/{asset_id}/translated?target=codex
    
    • 응답: 200 OK (원시 번역 바이트 또는 zip 아카이브).

5. 설치 스크립트 실행

대상 하네스에 대해 생성된 셸 설치 스크립트를 검색합니다:

GET /api/v1/users/{username}/buckets/{bucket}/install-script?target=claude
Accept: text/plain
  • 응답: 200 OK, 원시 셸 스크립트 텍스트 포함.
  • 클라이언트 측에서 실행되어 번역된 zip 아카이브를 다운로드하고 파일을 로컬 하네스 디렉토리에 배치합니다.

6. 자산을 자신의 버킷으로 복사 (출처 추적)

소스 버킷에서 자신의 대상 버킷으로 자산을 복사합니다:

POST /api/v1/users/{username}/buckets/{dest_bucket}/copies
Authorization: Bearer <token>
Content-Type: application/json

{
  "source_username": "bob",
  "source_bucket": "public-skills",
  "source_asset_id": 12,
  "dest_path": "skills/calculator"
}
  • 응답: 201 Created, 헤더 Location: /api/v1/users/{username}/buckets/{dest_bucket}/copies/{copy_id}, InstallRecord JSON 객체 포함.
  • 소스 자산의 유효성을 검사하고 10MB 할당량을 확인하며 출처를 기록합니다.

7. 이슈 및 댓글

  • 이슈 생성:

    POST /api/v1/users/{username}/buckets/{bucket}/issues
    Authorization: Bearer <token>
    Content-Type: application/json
    
    {
      "title": "계산기 스킬 번역 버그",
      "body": "`claude`에서 `codex`로 번역할 때 ..."
    }
    
    • 응답: 201 Created, 헤더 Location: /api/v1/users/{username}/buckets/{bucket}/issues/{issue_id}, Issue 객체 포함.
    • 이슈 상태: open, closed.
  • 댓글 달기:

    POST /api/v1/users/{username}/buckets/{bucket}/issues/{issue_id}/comments
    Authorization: Bearer <token>
    Content-Type: application/json
    
    {
      "body": "이는 번역 매트릭스의 알려진 문제입니다. ..."
    }
    
    • 응답: 201 Created with Comment object.
  • 이슈 나열:

    GET /api/v1/users/{username}/buckets/{bucket}/issues?status=open&sort=newest
    
  • 이슈 업데이트:

    PATCH /api/v1/users/{username}/buckets/{bucket}/issues/{issue_id}
    Authorization: Bearer <token>
    Content-Type: application/json
    
    {
      "status": "closed"
    }
    

아키텍처 및 설계 참고 사항

번역 엔진

변환은 서버 측에서 이루어집니다. 각 하네스 형식(예: claude, codex, agents, openclaw)에는 자체 파일 레이아웃, 지침 형식 및 메타데이터 구조가 있습니다. 서버는 각 자산 유형(skill, mcp, instructions, subagent, plugin)에 대해 소스 하네스에서 대상 하네스로 번역하는 변환기를 유지 관리합니다.

변환 프로세스는 상태 비저장입니다. 각 번역 요청은 원본 자산 데이터를 가져와서 요청된 대상 하네스에 맞게 재구성한 후 결과를 스트리밍 방식으로 반환합니다.

번역 손실

일부 하네스는 다른 하네스에서는 기본적으로 지원되지 않는 기능을 지원합니다. 예를 들어:

  • claude는 codex가 이해하지 못할 수 있는 특정 CLI 도구 규칙을 가질 수 있습니다.
  • agents는 claude가 무시할 수 있는 자체 instructions.json 구조를 가지고 있습니다.

이러한 경우 서버는 대상에 가장 적절한 표현을 사용하고 X-Red-Bucket-Lossy: true 응답 헤더를 설정합니다. X-Red-Bucket-Lossy: false는 가능한 모든 정보가 손실 없이 변환되었음을 의미합니다.

확장 가능한 하네스 및 유형 등록

하네스 및 자산 유형의 집합은 고정되어 있지 않습니다. 서버는 /api/v1/templates 및 /api/v1/translation-matrix에서 지원되는 형식에 대한 실시간 정보를 제공합니다. 새 하네스는 기존 하네스를 위한 변환기를 제공하는 한 기존 자산과 호환됩니다.


보안 모델

액세스 제어

  • 공개 버킷: 인증 없이 읽기 가능. 쓰기 작업은 Bearer 토큰이 필요합니다.
  • 비공개 버킷: 읽기 및 쓰기 모두 Bearer 토큰이 필요합니다. 인증되지 않은 요청 또는 소유자가 아닌 사용자의 요청에는 404 Not Found가 반환됩니다.
  • 토큰 수명: 토큰은 명시적으로 취소될 때까지 유효합니다(로그아웃을 통해).

자격 증명 처리

  • 비밀번호는 Argon2id를 사용하여 해시 처리됩니다(저장된 해시만).
  • API 토큰은 전송 중에 HTTPS가 필요합니다.
  • 토큰은 절대 대화에 표시되지 않으며 파일 시스템에만 저장됩니다.
  • 인증 파일은 엄격한 권한(0600/0700)으로 보호됩니다.
  • 로그아웃은 서버 측에서 토큰을 취소하고 디스크에서 자격 증명을 제거합니다.

비공개 버킷의 존재 여부 보호

비공개 버킷 존재의 비밀을 보호하기 위해 비공개 버킷에 대한 인증되지 않은 요청은 인증이 필요한지 여부를 나타내지 않고 404 Not Found를 반환합니다. 이는 존재하지 않는 버킷과 존재하지만 액세스할 수 없는 버킷을 공격자가 구별하는 것을 방지합니다.


오류 코드

HTTP 상태오류 코드설명
403bucket_quota_exceeded사용자가 허용된 최대 버킷 수를 초과했습니다.
413bucket_storage_exceeded버킷이 스토리지 제한을 초과했습니다.
409bucket_name_taken버킷 이름이 이미 사용 중입니다.
422validation_failed자산 유효성 검사에 실패했습니다(세부 정보 포함).
404(없음)리소스를 찾을 수 없거나(비공개 버킷의 경우 의도적으로) 존재하지 않습니다.
401unauthorized토큰이 없거나 유효하지 않거나 만료되었습니다.
400bad_request요청 본문 형식이 잘못되었거나 필수 필드가 누락되었습니다.

할당량 관리

  • 기본 할당량은 사용자당 5개의 버킷입니다. 각 버킷은 최대 10MB까지 저장할 수 있습니다.
  • 사용자는 프로필(GET /api/v1/users/me)에서 현재 bucket_count와 bucket_quota를 볼 수 있습니다.
  • bucket_quota_exceeded 오류는 버킷을 생성하거나(POST .../buckets) 복사(POST .../copies)할 때 발생할 수 있습니다.
  • bucket_storage_exceeded 오류는 자산을 업로드하거나(POST .../assets) 복사(POST .../copies)할 때 발생할 수 있습니다.

클라이언트 참고 사항

rb.mjs 참고

  • login은 --wait SECONDS(기본값 20)을 허용합니다. 브라우저 핸드오프를 대기합니다.
  • status는 인증된 사용자 이름과 액세스 가능한 버킷을 표시합니다.
  • install은 --target과 선택적 --dest, --origin을 취합니다.
  • create는 --visibility(public, private), --description을 취합니다.
  • upload는 --type, --harness, --path를 취합니다.
  • logout은 서버 측에서 토큰을 취소하고 디스크에서 제거합니다.

환경 변수

  • RED_BUCKET_URL: 서버 URL을 재정의합니다(기본값: https://redbucket.store).
  • RED_BUCKET_DEST: 설치 명령의 대상 디렉토리를 재정의합니다.
  • RED_BUCKET_TOKEN: 사용할 Bearer 토큰을 설정합니다(인증 파일보다 우선).
  • RED_BUCKET_AUTH: 인증 파일의 경로를 재정의합니다.

일반 오류

rb.mjs는 일반적인 오류에 대해 사람이 읽을 수 있는 메시지를 인쇄합니다. --target 또는 RED_BUCKET_URL의 차이에 민감합니다. 네트워크 오류는 재시도 가능한지 명확히 표시하거나 일시적인지 영구적인지 나타냅니다.


개인정보 처리 방침

red-bucket은 개인정보 보호를 위해 설계되었습니다:

  • 등록 시 최소 정보 수집(사용자 이름, 이메일, 비밀번호 해시).
  • 브라우저 핸드오프는 API 토큰이 대화 내용이나 로그에 노출되는 것을 방지합니다.
  • 액세스 제어는 자산 무결성과 개인정보 보호를 보장합니다.
  • 비공개 버킷의 존재는 권한이 없는 사용자에게 숨겨집니다(404 불변 규칙).

문제 해결

  • "bucket_storage_exceeded": 버킷에서 자산을 제거하거나 스토리지를 늘리려면 관리자에게 문의하십시오.
  • "validation_failed": 오류 메시지의 경로와 규칙을 확인하십시오. 일반적인 문제는 누락된 필수 파일입니다(예: SKILL.md).
  • 인증 오류: rb.mjs login으로 다시 로그인하거나 status가 올바른 사용자를 표시하는지 확인하십시오.
  • 번역 불일치: X-Red-Bucket-Lossy: true 응답 헤더를 확인하십시오. 대상 하네스에 대해 자산을 수동으로 검토해야 할 수도 있습니다.

관련 스킬