docs: add asana README and per-service emulator skills#14
Conversation
- packages/asana: add README covering auth, endpoints, seed config, and programmatic use - skills: add SKILL.md for asana, kakao, naver, tosspayments, firebase, and supabase, mirroring the existing linear skill
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✅ Files skipped from review due to trivial changes (1)
📝 WalkthroughWalkthroughAdds documentation for six API emulators: Asana (both a package README and a skill doc), Firebase, Kakao, Naver, Supabase, and Toss Payments. Each document covers startup commands, port behavior, auth conventions, example curl flows, and ChangesEmulator documentation
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~5 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
Up to standards ✅🟢 Issues
|
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@skills/asana/SKILL.md`:
- Line 54: The line containing `login: dev@example.com` has multiple spaces
before the comment marker, which violates the ESLint no-multi-spaces rule.
Replace the multiple spaces between `dev@example.com` and the `#` character with
a single space to comply with the style formatting rule.
In `@skills/supabase/SKILL.md`:
- Around line 104-105: The YAML flow mappings on the lines containing the task
entries (the lines with `{ id: 1, title: 장보기, completed: false }` and `{ id: 2,
title: 청소하기, completed: true }`) have improper spacing that violates the
yaml/flow-mapping-curly-spacing rule. Remove the space immediately after the
opening curly brace and the space immediately before the closing curly brace in
both flow mapping objects to conform to the YAML linting standards.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: bf0f77a9-cbb0-4d38-b084-d6c69831db16
📒 Files selected for processing (7)
packages/asana/README.mdskills/asana/SKILL.mdskills/firebase/SKILL.mdskills/kakao/SKILL.mdskills/naver/SKILL.mdskills/supabase/SKILL.mdskills/tosspayments/SKILL.md
There was a problem hiding this comment.
No issues found across 7 files
Architecture diagram
sequenceDiagram
participant Dev as Developer
participant CLI as Emulate CLI
participant Cfg as emulates.config.yaml
participant Core as @emulators/core
participant Store as In-Memory Store
participant Webhook as Webhook Dispatcher
participant Plugin as Service Plugin (asana)
participant Auth as Auth Middleware
participant API as Emulated Routes
participant Client as curl / SDK
Note over Dev,Client: NEW: Documentation describes this runtime flow
Dev->>CLI: bun packages/emulate/dist/index.js --service asana
CLI->>Cfg: Read config file
Cfg-->>CLI: YAML (seeds, tokens, service config)
CLI->>Core: Initialize with config
Core->>Store: Create in-memory store
Core->>Webhook: Create webhook dispatcher
Core->>Plugin: Register service plugin
Plugin->>Core: Register routes (users, tasks, ...)
Plugin->>Plugin: Seed default workspace / users
Plugin->>Store: Insert seed data (workspaces, users...)
Core->>Auth: Register auth middleware (bearer-token)
Note over Client,API: External Request Flow
Client->>API: GET /api/1.0/users/me (Authorization: Bearer test-token)
API->>Auth: Validate token
alt Token mapped to specific user
Auth->>Store: Lookup token in tokenMap
Store-->>Auth: User gid or email
else Token unknown
Auth->>Auth: Default to first seeded user (me keyword support)
end
Auth-->>API: Authenticated context (user gid)
API->>Store: Query user by gid (or "me")
Store-->>API: User object
API-->>Client: {"data":{...}} (Asana envelope)
Note over API,Client: List with pagination
Client->>API: GET /api/1.0/tasks?limit=50&offset=abc
API->>API: Apply limit and offset
API->>Store: Query tasks with pagination
Store-->>API: Task slice + next_page metadata
API-->>Client: {"data":[...], "next_page":{...}}
Note over API,Webhook: Write operations trigger webhooks
Client->>API: POST /tasks (create task)
API->>API: Validate input, resolve references
API->>Store: Insert new task
API->>Webhook: Dispatch PAYMENT_STATUS_CHANGED (for tosspayments) or similar
Webhook-->>API: (async)
API-->>Client: {"data":{...}, "gid": ...}
Note over Dev,CLI: Seed config loading (documented in SKILL.md)
Dev->>Cfg: Edit asana: section with workspaces/users/teams...
dev->>CLI: (re)start with same config
CLI->>Core: Pass seed config to plugin
Plugin->>Plugin: Resolve cross-references by name
Plugin->>Store: Insert pre-seeded entities
Fix ESLint formatting flagged by CodeRabbit on PR #14: - style/no-multi-spaces in asana SKILL.md and README.md - yaml/flow-mapping-curly-spacing in supabase SKILL.md
|



Summary
Documentation-only change. No source or test changes.
packages/asana/README.md— adds a README for the Asana emulator package, covering bearer-token auth, request/response envelope conventions, the full emulated endpoint table, seed config, and programmatic use. Grounded in the package source (index.ts,store.ts,helpers.ts,routes/*) and the CLI registry.skills/— addsSKILL.mdforasana,kakao,naver,tosspayments,firebase, andsupabase, mirroring the existingskills/linear/SKILL.mdconvention (frontmatter → overview → Start → Auth → Flow/Example → Seed Config).Each skill's auth mechanism, route paths, CI shortcuts, and seed config were verified against the respective package implementation:
Bearer(kapi);client_id/secret(token)?user_id=auto-approve on authorizeBearer(profile); OAuth grants?user=auto-approve; issue/refresh/deleteBasic base64(secret_key:)PAYMENT_STATUS_CHANGEDwebhooks?key=(Identity Toolkit/Secure Token);Bearer(FCM)apikey/Bearer(anon vs service_role)Bearermekeyword resolutionTest plan
Summary by cubic
Adds documentation for the Asana emulator and per‑service SKILL guides to simplify local testing and CI. Also fixes ESLint formatting in the new docs.
New Features
packages/asana/README.md: explains bearer‑token auth, request/response envelopes, endpoint coverage, pagination, seed config, and programmatic usage withasanaPlugin.skills/*/SKILL.md: Start/Auth/Flow/Seed guides with example commands for asana, kakao, naver, tosspayments, firebase, and supabase.Bug Fixes
skills/asana/SKILL.mdandpackages/asana/README.md, and YAML spacing inskills/supabase/SKILL.md.Written for commit 0ffba9b. Summary will update on new commits.
Summary by CodeRabbit
Documentation