skills/astrabit-cpt/arch-view/SKILL.md
This skill should be used when the user asks to "generate architecture view", "show service dependency graph", "map request flows", "show event topology", "group services by domain", "visualize architecture", or mentions cross-repository architecture analysis, service mapping, or architectural visualization.
npx skillsauth add aiskillstore/marketplace arch-viewInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generate cross-repository architectural views by aggregating catalog-info.yaml metadata from all repositories using parallel subagents.
Create visual architectural representations (Mermaid diagrams, markdown tables) that show how services fit together, how requests flow through gateways, how events propagate, and how services group by domain/team.
Trigger this skill when:
Find all repositories to analyze:
repos/ directory - Local cloned repositoriesgh repo list Astrabit-CPT for full listUse subagents IN PARALLEL to read each repository's catalog-info.yaml:
For each repo:
Launch subagent with: "Read catalog-info.yaml from [repo_path] and return the parsed content"
Parallel processing strategy:
Combine all metadata into a unified model:
aggregated = {
"components": {}, # name -> catalog info
"dependencies": set(), # (from, to) tuples
"gateways": [],
"services": [],
"workers": [],
"domains": {}, # domain -> [components]
"events": {
"producers": {}, # topic -> [producers]
"consumers": {}, # topic -> [consumers]
},
"routes": [], # gateway routes
}
Based on user request, generate the appropriate view:
| View | Command/Trigger | Output | |------|-----------------|--------| | Service Dependency Graph | "dependency graph", "show dependencies" | Mermaid graph | | Request Flow Maps | "request flows", "how requests flow" | Mermaid flowchart | | Event Topology | "event topology", "event map" | Mermaid graph | | Service Groupings | "group services", "services by domain" | Markdown tables | | Full Architecture | "architecture view", "full architecture" | All views combined |
graph TD
Gateway[api-gateway<br/>type: gateway] --> Auth[auth-service<br/>type: service]
Gateway --> Users[user-service<br/>type: service]
Gateway --> Orders[order-service<br/>type: service]
Users --> DB[(user-db<br/>type: database)]
Auth --> Redis[(redis<br/>type: cache)]
Orders --> OrdersDB[(order-db<br/>type: database)]
Orders --> Worker[order-processor<br/>type: worker]
Generation logic:
catalog-info.yamldependsOn relationships[(name)], others use [name]name and typeflowchart LR
Client[Client] --> Gateway[api-gateway]
Gateway -->|/api/users/*| Users[user-service]
Gateway -->|/api/auth/*| Auth[auth-service]
Gateway -->|/api/orders/*| Orders[order-service]
Users --> DB[(user-db)]
Auth --> Redis[(redis)]
Generation logic:
routes to find downstream servicesgraph LR
Orders[order-service] -->|order.placed| Kafka1[Kafka: order-placed]
Orders -->|order.cancelled| Kafka2[Kafka: order-cancelled]
Kafka1 --> User[user-service]
Kafka1 --> Notif[notification-service]
Kafka2 --> User
Worker[order-processor] -->|order.processed| Kafka3[Kafka: order-processed]
Kafka1 --> Worker
Generation logic:
eventProducers) and Kafka topics (from topic field)By Domain: | Domain | Services | Owner | |--------|----------|-------| | trading | order-service, trade-service, order-processor | trading-team | | platform | api-gateway, user-service, auth-service | platform-team | | shared | shared-utils, shared-types | platform-team |
By Type: | Type | Services | |------|----------| | gateway | api-gateway | | service | user-service, auth-service, order-service | | worker | order-processor, notification-worker | | library | shared-utils, shared-types |
Generation logic:
spec.domain fieldCollect all catalog-info.yaml files from repositories:
# Aggregate from repos directory
python skills/arch-view/scripts/aggregate-metadata.py repos/
# Output as JSON
python skills/arch-view/scripts/aggregate-metadata.py repos/ --format json
# Output as summary
python skills/arch-view/scripts/aggregate-metadata.py repos/ --summary
Convert aggregated metadata to Mermaid diagrams:
# Generate all views
python skills/arch-view/scripts/generate-mermaid.py aggregated.json
# Generate specific view
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view dependency
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view request-flow
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view events
Launch subagents to read metadata in parallel:
For efficiency, launch multiple subagents simultaneously:
Subagent 1: "Read repos/api-gateway/catalog-info.yaml and return parsed YAML"
Subagent 2: "Read repos/user-service/catalog-info.yaml and return parsed YAML"
Subagent 3: "Read repos/order-service/catalog-info.yaml and return parsed YAML"
... (continue for all repos)
Collect results and aggregate.
Tip: Limit to 5-10 concurrent subagents to avoid overwhelming the system.
Present results as:
# Architecture View
## Summary
- Total repositories: 15
- Components with metadata: 12
- Missing metadata: 3
- Gateways: 1
- Services: 8
- Workers: 2
- Libraries: 1
## Service Dependency Graph
[Mermaid diagram]
## Request Flow Map
[Mermaid diagram]
## Event Topology
[Mermaid diagram]
## Service Groupings
[Markdown tables]
## Missing Metadata
The following repositories lack catalog-info.yaml:
- repo-a
- repo-b
- repo-c
references/view-templates.md - Mermaid templates for each view typereferences/mermaid-guide.md - Mermaid syntax referencescripts/aggregate-metadata.py - Collect catalog-info.yaml from all reposscripts/generate-mermaid.py - Convert metadata to Mermaid diagramsdevelopment
Apple Human Interface Guidelines for content display components. Use this skill when the user asks about charts component, collection view, image view, web view, color well, image well, activity view, lockup, data visualization, content display, displaying images, rendering web content, color pickers, or presenting collections of items in Apple apps. Also use when the user says how should I display charts, what's the best way to show images, should I use a web view, how do I build a grid of items, what component shows media, or how do I present a share sheet. Cross-references: hig-foundations for color/typography/accessibility, hig-patterns for data visualization patterns, hig-components-layout for structural containers, hig-platforms for platform-specific component behavior.
tools
Automate HelpDesk tasks via Rube MCP (Composio): list tickets, manage views, use canned responses, and configure custom fields. Always search tools first for current schemas.
testing
Expert Haskell engineer specializing in advanced type systems, pure functional design, and high-reliability software. Use PROACTIVELY for type-level programming, concurrency, and architecture guidance.
tools
GraphQL gives clients exactly the data they need - no more, no less. One endpoint, typed schema, introspection. But the flexibility that makes it powerful also makes it dangerous. Without proper controls, clients can craft queries that bring down your server. This skill covers schema design, resolvers, DataLoader for N+1 prevention, federation for microservices, and client integration with Apollo/urql. Key insight: GraphQL is a contract. The schema is the API documentation. Design it carefully.