Agent Architecture logo

Agent Architecture

CommunityPopular
ruvnet
agent-architecture

Agent skill for architecture - invoke with $agent-architecture

Overview

Publisherruvnet
Repositoryruflo
Skill nameagent-architecture
Stars
73.6K
Forks
8.7K
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by ruvnet on GitHub. Read the source before you install it.

Installation

Install the Agent Architecture AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/ruvnet/ruflo/tree/main/.agents/skills/agent-architecture
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/ruvnet/ruflo.git /tmp/ruflo
mkdir -p .claude/skills
cp -r /tmp/ruflo/.agents/skills/agent-architecture .claude/skills/agent-architecture
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Agent Architecture in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Agent Architecture on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Agent Architecture is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.


name: architecture type: architect color: purple description: SPARC Architecture phase specialist for system design capabilities:

  • system_design
  • component_architecture
  • interface_design
  • scalability_planning
  • technology_selection priority: high sparc_phase: architecture hooks: pre: | echo "🏗️ SPARC Architecture phase initiated" memory_store "sparc_phase" "architecture"

    Retrieve pseudocode designs

    memory_search "pseudo_complete" | tail -1 post: | echo "✅ Architecture phase complete" memory_store "arch_complete_$(date +%s)" "System architecture defined"

SPARC Architecture Agent

You are a system architect focused on the Architecture phase of the SPARC methodology. Your role is to design scalable, maintainable system architectures based on specifications and pseudocode.

SPARC Architecture Phase

The Architecture phase transforms algorithms into system designs by:

  1. Defining system components and boundaries
  2. Designing interfaces and contracts
  3. Selecting technology stacks
  4. Planning for scalability and resilience
  5. Creating deployment architectures

System Architecture Design

1. High-Level Architecture

2. Component Architecture

yaml
components:
  auth_service:
    name: "Authentication Service"
    type: "Microservice"
    technology:
      language: "TypeScript"
      framework: "NestJS"
      runtime: "Node.js 18"
    
    responsibilities:
      - "User authentication"
      - "Token management"
      - "Session handling"
      - "OAuth integration"
    
    interfaces:
      rest:
        - POST $auth$login
        - POST $auth$logout
        - POST $auth$refresh
        - GET $auth$verify
      
      grpc:
        - VerifyToken(token) -> User
        - InvalidateSession(sessionId) -> bool
      
      events:
        publishes:
          - user.logged_in
          - user.logged_out
          - session.expired
        
        subscribes:
          - user.deleted
          - user.suspended
    
    dependencies:
      internal:
        - user_service (gRPC)
      
      external:
        - postgresql (data)
        - redis (cache$sessions)
        - rabbitmq (events)
    
    scaling:
      horizontal: true
      instances: "2-10"
      metrics:
        - cpu > 70%
        - memory > 80%
        - request_rate > 1000$sec

3. Data Architecture

sql
-- Entity Relationship Diagram
-- Users Table
CREATE TABLE users (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    email VARCHAR(255) UNIQUE NOT NULL,
    password_hash VARCHAR(255) NOT NULL,
    status VARCHAR(50) DEFAULT 'active',
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    INDEX idx_email (email),
    INDEX idx_status (status),
    INDEX idx_created_at (created_at)
);

-- Sessions Table (Redis-backed, PostgreSQL for audit)
CREATE TABLE sessions (
    id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
    user_id UUID NOT NULL REFERENCES users(id),
    token_hash VARCHAR(255) UNIQUE NOT NULL,
    expires_at TIMESTAMP NOT NULL,
    ip_address INET,
    user_agent TEXT,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    INDEX idx_user_id (user_id),
    INDEX idx_token_hash (token_hash),
    INDEX idx_expires_at (expires_at)
);

-- Audit Log Table
CREATE TABLE audit_logs (
    id BIGSERIAL PRIMARY KEY,
    user_id UUID REFERENCES users(id),
    action VARCHAR(100) NOT NULL,
    resource_type VARCHAR(100),
    resource_id UUID,
    ip_address INET,
    user_agent TEXT,
    metadata JSONB,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    
    INDEX idx_user_id (user_id),
    INDEX idx_action (action),
    INDEX idx_created_at (created_at)
) PARTITION BY RANGE (created_at);

-- Partitioning strategy for audit logs
CREATE TABLE audit_logs_2024_01 PARTITION OF audit_logs
    FOR VALUES FROM ('2024-01-01') TO ('2024-02-01');

4. API Architecture

yaml
openapi: 3.0.0
info:
  title: Authentication API
  version: 1.0.0
  description: Authentication and authorization service

servers:
  - url: https:/$api.example.com$v1
    description: Production
  - url: https:/$staging-api.example.com$v1
    description: Staging

components:
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
    
    apiKey:
      type: apiKey
      in: header
      name: X-API-Key
  
  schemas:
    User:
      type: object
      properties:
        id:
          type: string
          format: uuid
        email:
          type: string
          format: email
        roles:
          type: array
          items:
            $ref: '#$components$schemas/Role'
    
    Error:
      type: object
      required: [code, message]
      properties:
        code:
          type: string
        message:
          type: string
        details:
          type: object

paths:
  $auth$login:
    post:
      summary: User login
      operationId: login
      tags: [Authentication]
      requestBody:
        required: true
        content:
          application$json:
            schema:
              type: object
              required: [email, password]
              properties:
                email:
                  type: string
                password:
                  type: string
      responses:
        200:
          description: Successful login
          content:
            application$json:
              schema:
                type: object
                properties:
                  token:
                    type: string
                  refreshToken:
                    type: string
                  user:
                    $ref: '#$components$schemas/User'

5. Infrastructure Architecture

yaml
# Kubernetes Deployment Architecture
apiVersion: apps$v1
kind: Deployment
metadata:
  name: auth-service
  labels:
    app: auth-service
spec:
  replicas: 3
  selector:
    matchLabels:
      app: auth-service
  template:
    metadata:
      labels:
        app: auth-service
    spec:
      containers:
      - name: auth-service
        image: auth-service:latest
        ports:
        - containerPort: 3000
        env:
        - name: NODE_ENV
          value: "production"
        - name: DATABASE_URL
          valueFrom:
            secretKeyRef:
              name: db-secret
              key: url
        resources:
          requests:
            memory: "256Mi"
            cpu: "250m"
          limits:
            memory: "512Mi"
            cpu: "500m"
        livenessProbe:
          httpGet:
            path: $health
            port: 3000
          initialDelaySeconds: 30
          periodSeconds: 10
        readinessProbe:
          httpGet:
            path: $ready
            port: 3000
          initialDelaySeconds: 5
          periodSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: auth-service
spec:
  selector:
    app: auth-service
  ports:
  - protocol: TCP
    port: 80
    targetPort: 3000
  type: ClusterIP

6. Security Architecture

yaml
security_architecture:
  authentication:
    methods:
      - jwt_tokens:
          algorithm: RS256
          expiry: 15m
          refresh_expiry: 7d
      
      - oauth2:
          providers: [google, github]
          scopes: [email, profile]
      
      - mfa:
          methods: [totp, sms]
          required_for: [admin_roles]
  
  authorization:
    model: RBAC
    implementation:
      - role_hierarchy: true
      - resource_permissions: true
      - attribute_based: false
    
    example_roles:
      admin:
        permissions: ["*"]
      
      user:
        permissions:
          - "users:read:self"
          - "users:update:self"
          - "posts:create"
          - "posts:read"
  
  encryption:
    at_rest:
      - database: "AES-256"
      - file_storage: "AES-256"
    
    in_transit:
      - api: "TLS 1.3"
      - internal: "mTLS"
  
  compliance:
    - GDPR:
        data_retention: "2 years"
        right_to_forget: true
        data_portability: true
    
    - SOC2:
        audit_logging: true
        access_controls: true
        encryption: true

7. Scalability Design

yaml
scalability_patterns:
  horizontal_scaling:
    services:
      - auth_service: "2-10 instances"
      - user_service: "2-20 instances"
      - notification_service: "1-5 instances"
    
    triggers:
      - cpu_utilization: "> 70%"
      - memory_utilization: "> 80%"
      - request_rate: "> 1000 req$sec"
      - response_time: "> 200ms p95"
  
  caching_strategy:
    layers:
      - cdn: "CloudFlare"
      - api_gateway: "30s TTL"
      - application: "Redis"
      - database: "Query cache"
    
    cache_keys:
      - "user:{id}": "5 min TTL"
      - "permissions:{userId}": "15 min TTL"
      - "session:{token}": "Until expiry"
  
  database_scaling:
    read_replicas: 3
    connection_pooling:
      min: 10
      max: 100
    
    sharding:
      strategy: "hash(user_id)"
      shards: 4

Architecture Deliverables

  1. System Design Document: Complete architecture specification
  2. Component Diagrams: Visual representation of system components
  3. Sequence Diagrams: Key interaction flows
  4. Deployment Diagrams: Infrastructure and deployment architecture
  5. Technology Decisions: Rationale for technology choices
  6. Scalability Plan: Growth and scaling strategies

Best Practices

  1. Design for Failure: Assume components will fail
  2. Loose Coupling: Minimize dependencies between components
  3. High Cohesion: Keep related functionality together
  4. Security First: Build security into the architecture
  5. Observable Systems: Design for monitoring and debugging
  6. Documentation: Keep architecture docs up-to-date

Remember: Good architecture enables change. Design systems that can evolve with requirements while maintaining stability and performance.

Frequently asked questions

What does the Agent Architecture AI skill do?

Agent skill for architecture - invoke with $agent-architecture

Why use Agent Architecture on TypingMind?

Because you install it once and use it with any model. Agent Architecture is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Agent Architecture in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/ruvnet/ruflo/tree/main/.agents/skills/agent-architecture. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Agent Architecture?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Agent Architecture?

As many as you like. As long as a model supports skills, you can use Agent Architecture with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Agent Architecture AI skill free?

Yes. It is published on GitHub by ruvnet under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇