Beautiful ASCII art output formatting guidelines for all plugin commands
All plugin outputs should be visually clear and beautiful. Choose the format that best fits the content.
When generating output for any OAS plugin command, Claude MUST:
This is a REFERENCE skill - use it to format outputs from other commands.
Content Type β Best Format
βββββββββββββββββββββββββββββββββββββ
Key-Value pairs β Table or Aligned
Process/Steps β Flow Diagram
Hierarchy/Structure β Tree
Before/After β Comparison
Status/Progress β Progress Bar
Summary β Box
List with status β Checklist
Timeline β Timeline
For structured key-value or multi-column data:
ββββββββββββββββ¬ββββββββββββββββββββββββββββββββββββββ
β Item β Content β
ββββββββββββββββΌββββββββββββββββββββββββββββββββββββββ€
β File β src/api/user-api.ts β
β Location β getUserById() function (line 45-52) β
β Reason β Response type: email field added β
ββββββββββββββββ΄ββββββββββββββββββββββββββββββββββββββ
Simple aligned format (for fewer columns):
File: src/api/user-api.ts
Location: getUserById() function (line 45-52)
Reason: Response type: email field added
Horizontal flow:
βββββββββββ βββββββββββ βββββββββββ βββββββββββ
β Fetch βββββΆβ Parse βββββΆβ Diff βββββΆβ Generateβ
β Spec β β Schema β β Compare β β Code β
βββββββββββ βββββββββββ βββββββββββ βββββββββββ
Vertical flow with details:
ββββββββββββββββββββββββββββββββ
β 1. Fetch OpenAPI Spec β
β GET /openapi.json β
ββββββββββββββββ¬ββββββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β 2. Compare with Cache β
β Hash: abc123 β def456 β
ββββββββββββββββ¬ββββββββββββββββ
β
βββββββββ΄ββββββββ
βΌ βΌ
ββββββββββββ ββββββββββββ
β Changed β β No Changeβ
β Continue β β Done β
ββββββ¬ββββββ ββββββββββββ
β
βΌ
ββββββββββββββββββββββββββββββββ
β 3. Generate Code β
ββββββββββββββββββββββββββββββββ
Decision flow:
βββββββββββββββ
β Cache exists?β
ββββββββ¬βββββββ
β
ββββββββββββββΌβββββββββββββ
βΌ β βΌ
[ Yes ] β [ No ]
β β β
βΌ β βΌ
βββββββββββββββββββ β βββββββββββββββββββ
β Compare hash β β β Full fetch β
ββββββββββ¬βββββββββ β ββββββββββ¬βββββββββ
β β β
βββββββββββββββ΄ββββββββββββββ
β
βΌ
βββββββββββββββ
β Output β
βββββββββββββββ
File tree:
src/entities/user/
βββ api/
β βββ user-api.ts β 8 functions
β βββ user-api-paths.ts β 8 paths
β βββ user-queries.ts β 8 hooks
βββ model/
β βββ user-types.ts β 12 types
βββ index.ts
Nested structure with status:
π¦ API Coverage
β
βββ β
user (100%)
β βββ getUser
β βββ updateUser
β βββ deleteUser
β
βββ β οΈ workspace (75%)
β βββ β
getWorkspace
β βββ β
createWorkspace
β βββ β inviteUser β missing
β βββ β
deleteWorkspace
β
βββ β billing (0%)
βββ β getPlans
βββ β subscribe
βββ β cancelSubscription
Side-by-side diff:
βββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ
β Before β After β
βββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββ€
β interface User { β interface User { β
β id: string; β id: string; β
β name: string; β name: string; β
β β + email: string; β
β β + avatar?: string; β
β } β } β
βββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββ
Inline diff:
GET /users/{id}
Response: UserResponse
+ email: string (added)
+ avatar?: string (added, optional)
~ name: string β string | null (changed to nullable)
- legacy_id: number (removed)
Progress bar:
Syncing API endpoints...
user ββββββββββββββββββββ 100% β
workspace ββββββββββββββββββββ 60% β³
billing ββββββββββββββββββββ 0% βΈοΈ
Overall: ββββββββββββββββββββ 70% (21/30 endpoints)
Status summary:
βββββββββββββββββββββββββββββββββββββββββββββββββ
β Sync Complete β
β ββββββββββββββββββββββββββββββββββββββββββββββββ£
β β
Generated: 24 files β
β β οΈ Warnings: 3 (nullable handling) β
β β Errors: 0 β
β β±οΈ Duration: 2.3s β
βββββββββββββββββββββββββββββββββββββββββββββββββ
Simple header:
βββββββββββββββββββββββββββββββββββββββββββββββββββ
π API Diff Report
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Info box:
βββββββββββββββββββββββββββββββββββββββββββββββββββ
β π‘ TIP β
β β
β Use --force to regenerate all endpoints, β
β ignoring cache. β
βββββββββββββββββββββββββββββββββββββββββββββββββββ
Warning box:
β οΈ βββββββββββββββββββββββββββββββββββββββββββββββ
Breaking Changes Detected!
3 endpoints removed:
- DELETE /users/{id}/sessions
- GET /legacy/auth
- POST /v1/login
ββββββββββββββββββββββββββββββββββββββββββββββββββ
Task list:
π Sync Checklist
[β] Fetch OpenAPI spec
[β] Parse endpoints (42 found)
[β] Compare with existing code
[ ] Generate user-api.ts
[ ] Generate workspace-api.ts
[ ] Update type definitions
Validation result:
π Validation Results
β
PASS Type safety All types match spec
β
PASS Path coverage 42/42 endpoints covered
β οΈ WARN Nullable handling 3 fields need attention
β FAIL Response format getUserById() returns wrong type
β FAIL Missing endpoint POST /users not implemented
π
Sync History
Jan 13, 10:30 ββββββ Full sync (42 endpoints)
β
Jan 12, 15:22 ββββββ Partial sync: +2 workspace endpoints
β
Jan 10, 09:15 ββββββ Initial setup
β
Jan 08, 14:00 ββββββ Failed: spec unreachable
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π Impact Analysis Report
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Spec Change: GET /users/{id} response updated
+ email: string
+ preferences: UserPreferences
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β Affected Files β
βββββββββββββββββββββββββββββββββ¬ββββββββββββββββββββββββββββββ€
β File β Required Changes β
βββββββββββββββββββββββββββββββββΌββββββββββββββββββββββββββββββ€
β src/api/user-api.ts:45 β Update return type β
β src/types/user.ts:12 β Add email, preferences β
β src/hooks/useUser.ts:23 β No change (auto-inferred) β
βββββββββββββββββββββββββββββββββ΄ββββββββββββββββββββββββββββββ
Code Changes Required:
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π src/types/user.ts
interface User {
id: string;
name: string;
+ email: string; // β Add
+ preferences: UserPreferences; // β Add
}
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Next Steps:
1. Run /oas:sync --tag=user to auto-generate
2. Or manually update the files above
Box Drawing:
β β β β β β€ β¬ β΄ βΌ β β
β β β β β β£ β¦ β© β¬ β β
Arrows:
β β β β β β
βΆ β β² βΌ
ββββΆ ββββ β
βΌ
Progress:
β β β β
Status Icons:
β
β β οΈ β³ βΈοΈ π‘ π¦ π π π π π π π·οΈ
Bullets:
β’ β β β¦ βͺ β«
Lines:
β β β β β
β β