🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

People Strategy

by @makkzone

Manage and query a persistent SQLite-based graph of people and their relationships for personal CRM, org charts, mentorship, and collaboration mapping.

Versionv1.0.0
Downloads895
Installs1
TERMINAL
clawhub install people-strategy

πŸ“– About This Skill

People-Strategy Agent Skill

Overview

A people relationship management agent skill that provides persistent graph-based storage using SQLite database. This skill enables AI agents to create, manage, and query a network of people and their relationships, making it ideal for building personal CRMs, organizational charts, mentorship networks, and collaboration mapping.

Capabilities

Person Management

  • Create People: Add new people with comprehensive information (name, role, relation, organization, character, notes)
  • Read People: Retrieve individual people or search/filter across the database
  • Update People: Modify any person's information
  • Delete People: Remove people from the database (cascades to relationships)
  • Search: Full-text search across names, roles, and organizations
  • Filter: Filter by organization or relation type
  • Relationship Management

  • Create Edges: Establish directed relationships between people
  • Query Relationships: Get incoming, outgoing, or all relationships for a person
  • Update Edges: Modify relationship types and descriptions
  • Delete Edges: Remove specific relationships
  • Bidirectional Support: Track both directions of relationships
  • Graph Operations

  • Full Graph Export: Export entire network as JSON (nodes + edges)
  • Person Network: Get complete network view for an individual
  • Relationship Types: Support for custom relationship types (reports_to, mentors, works_with, etc.)
  • Database Schema

    Tables

    people

  • id: INTEGER PRIMARY KEY
  • name: TEXT NOT NULL
  • role: TEXT
  • relation_to_me: TEXT
  • organization: TEXT
  • character: TEXT
  • notes: TEXT
  • created_at: TIMESTAMP
  • updated_at: TIMESTAMP
  • edges

  • id: INTEGER PRIMARY KEY
  • from_person_id: INTEGER (FK to people.id)
  • to_person_id: INTEGER (FK to people.id)
  • relationship_type: TEXT NOT NULL
  • description: TEXT
  • created_at: TIMESTAMP
  • updated_at: TIMESTAMP
  • UNIQUE constraint on (from_person_id, to_person_id, relationship_type)
  • Indexes

  • idx_people_name: Index on people.name
  • idx_edges_from: Index on edges.from_person_id
  • idx_edges_to: Index on edges.to_person_id
  • Usage Examples

    Command Line Interface

    # Person operations
    python people_skill.py add-person "Jane Doe" --role "CTO" --org "StartupXYZ" --relation "Mentor"
    python people_skill.py get-person 1
    python people_skill.py search "engineer"
    python people_skill.py list-people --org "StartupXYZ"
    python people_skill.py update-person 1 --notes "Coffee meeting scheduled"
    python people_skill.py delete-person 1

    Relationship operations

    python people_skill.py add-relationship 1 2 "mentors" --description "Tech career guidance" python people_skill.py get-relationships 1 python people_skill.py list-relationships python people_skill.py update-relationship 1 --type "coaches" python people_skill.py delete-relationship 1

    Graph operations

    python people_skill.py get-graph python people_skill.py get-network 1

    Python API

    from database import PeopleDatabase
    from people_skill import PeopleAgent

    Initialize

    agent = PeopleAgent("people.db")

    Add people

    result = agent.add_person( name="Alice Johnson", role="VP Engineering", relation_to_me="Former colleague", organization="TechCorp", character="Strategic thinker, empathetic leader", notes="Worked together 2020-2022" ) person_id = result["person_id"]

    Add relationship

    agent.add_relationship( from_person_id=1, to_person_id=2, relationship_type="manages", description="Direct manager relationship" )

    Query network

    network = agent.get_person_network(person_id) print(f"Found {network['connections_count']} connections")

    Export graph

    graph = agent.get_graph() print(f"Graph: {graph['nodes_count']} nodes, {graph['edges_count']} edges")

    Common Relationship Types

  • reports_to: Hierarchical reporting (subordinate β†’ manager)
  • manages: Hierarchical management (manager β†’ subordinate)
  • works_with: Peer collaboration
  • mentors: Mentorship (mentor β†’ mentee)
  • mentored_by: Inverse mentorship (mentee β†’ mentor)
  • friends_with: Personal friendship
  • knows: Acquaintance
  • collaborates_with: Project collaboration
  • introduced_by: Connection source
  • Use Cases

    1. Personal CRM

    Track professional contacts, their roles, organizations, and how you know them. Add notes about conversations, meetings, or follow-ups.

    python people_skill.py add-person "Sarah Chen" \
      --role "Product Director" \
      --org "InnovateCo" \
      --relation "Met at conference" \
      --notes "Interested in API collaboration, follow up Q2"
    

    2. Organizational Mapping

    Build and maintain organizational charts with reporting relationships.

    # Add team members
    python people_skill.py add-person "Mike Lead" --role "Team Lead" --org "Engineering"
    python people_skill.py add-person "Dev One" --role "Engineer" --org "Engineering"
    python people_skill.py add-person "Dev Two" --role "Engineer" --org "Engineering"

    Create reporting structure

    python people_skill.py add-relationship 2 1 "reports_to" python people_skill.py add-relationship 3 1 "reports_to"

    3. Mentorship Network

    Track mentorship relationships and career guidance connections.

    python people_skill.py add-relationship 5 3 "mentors" \
      --description "Career guidance in ML/AI"
    

    4. Collaboration Tracking

    Map who works with whom on projects.

    python people_skill.py add-relationship 1 2 "works_with" \
      --description "Project Phoenix collaboration"
    

    5. Network Analysis

    Analyze your professional network to identify key connections.

    # View someone's complete network
    python people_skill.py get-network 1

    Export for visualization

    python people_skill.py get-graph > network.json

    Advanced Features

    Bidirectional Relationship Queries

    The system automatically handles both directions:
    # Get all relationships for a person
    edges = db.get_all_edges_for_person(person_id)
    

    Returns: {"outgoing": [...], "incoming": [...]}

    Cascade Deletion

    Deleting a person automatically removes all associated relationships.

    Duplicate Prevention

    The UNIQUE constraint prevents duplicate relationships between the same two people with the same type.

    Search Flexibility

    Search works across multiple fields:
    python people_skill.py search "engineer"
    

    Matches: names, roles, organizations

    Integration Examples

    Export to Visualization Tools

    # Export graph for tools like D3.js, Cytoscape, Gephi
    python people_skill.py get-graph > graph.json
    

    Import from CSV

    import csv
    from people_skill import PeopleAgent

    agent = PeopleAgent() with open('contacts.csv', 'r') as f: reader = csv.DictReader(f) for row in reader: agent.add_person( name=row['name'], role=row['role'], organization=row['org'], relation_to_me=row['relation'] )

    Best Practices

    1. Consistent Naming: Use consistent naming conventions for relationship types 2. Rich Notes: Add contextual notes to remember important details 3. Regular Updates: Keep information current with update commands 4. Character Tracking: Use the character field to remember personality traits 5. Relationship Descriptions: Add context to relationships for clarity 6. Search First: Before adding, search to avoid duplicates

    API Reference

    See people_skill.py for complete API documentation.

    Key Classes

  • PeopleDatabase: Low-level database operations
  • PeopleAgent: High-level agent interface with result dictionaries
  • Return Format

    All agent methods return dictionaries with:
  • success: Boolean indicating success/failure
  • message: Human-readable status message (on errors)
  • Data fields specific to the operation
  • Error Handling

    The skill includes comprehensive error handling:

  • Foreign key constraints prevent invalid relationships
  • Unique constraints prevent duplicate relationships
  • Cascade deletion maintains referential integrity
  • Try-catch blocks in CLI provide user-friendly errors
  • Performance

  • Indexed queries for fast lookups
  • Efficient graph traversal
  • Suitable for networks of thousands of people
  • SQLite handles concurrent reads
  • Future Enhancements

    Potential extensions:

  • Graph visualization generation
  • Shortest path finding between people
  • Influence/centrality scoring
  • Duplicate person detection
  • Export to various formats (GraphML, DOT)
  • Import from LinkedIn, contact lists
  • Time-based relationship tracking
  • Strength/confidence scoring for relationships
  • License

    MIT

    ⚑ When to Use

    TriggerAction
    Track professional contacts, their roles, organizations, and how you know them. Add notes about conversations, meetings, or follow-ups.
    ```bash
    python people_skill.py add-person "Sarah Chen" \
    --role "Product Director" \
    --org "InnovateCo" \
    --relation "Met at conference" \
    --notes "Interested in API collaboration, follow up Q2"
    ```
    ### 2. Organizational Mapping
    Build and maintain organizational charts with reporting relationships.
    ```bash
    # Add team members
    python people_skill.py add-person "Mike Lead" --role "Team Lead" --org "Engineering"
    python people_skill.py add-person "Dev One" --role "Engineer" --org "Engineering"
    python people_skill.py add-person "Dev Two" --role "Engineer" --org "Engineering"
    # Create reporting structure
    python people_skill.py add-relationship 2 1 "reports_to"
    python people_skill.py add-relationship 3 1 "reports_to"
    ```
    ### 3. Mentorship Network
    Track mentorship relationships and career guidance connections.
    ```bash
    python people_skill.py add-relationship 5 3 "mentors" \
    --description "Career guidance in ML/AI"
    ```
    ### 4. Collaboration Tracking
    Map who works with whom on projects.
    ```bash
    python people_skill.py add-relationship 1 2 "works_with" \
    --description "Project Phoenix collaboration"
    ```
    ### 5. Network Analysis
    Analyze your professional network to identify key connections.
    ```bash
    # View someone's complete network
    python people_skill.py get-network 1
    # Export for visualization
    python people_skill.py get-graph > network.json
    ```

    πŸ“‹ Tips & Best Practices

    1. Consistent Naming: Use consistent naming conventions for relationship types 2. Rich Notes: Add contextual notes to remember important details 3. Regular Updates: Keep information current with update commands 4. Character Tracking: Use the character field to remember personality traits 5. Relationship Descriptions: Add context to relationships for clarity 6. Search First: Before adding, search to avoid duplicates