✓ Verified 💻 Development ✓ Enhanced Data

People Strategy

A people relationship management agent skill that provides persistent graph-based storage using SQLi

Rating
3.9 (393 reviews)
Downloads
7,139 downloads
Version
1.0.0

Overview

A people relationship management agent skill that provides persistent graph-based storage using SQLite database.

Complete Documentation

View Source →

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

bash
# 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

python
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.

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

Advanced Features

Bidirectional Relationship Queries

The system automatically handles both directions:
python
# 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:
bash
python people_skill.py search "engineer"
# Matches: names, roles, organizations

Integration Examples

Export to Visualization Tools

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

Import from CSV

python
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

  • Consistent Naming: Use consistent naming conventions for relationship types
  • Rich Notes: Add contextual notes to remember important details
  • Regular Updates: Keep information current with update commands
  • Character Tracking: Use the character field to remember personality traits
  • Relationship Descriptions: Add context to relationships for clarity
  • 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

Installation

Terminal bash

openclaw install people-strategy
    
Copied!

💻Code Examples

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

printfgraph-graphnodescount-nodes-graphedgescount-edges.txt
## 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.

--notes "Interested in API collaboration, follow up Q2"

---notes-interested-in-api-collaboration-follow-up-q2.txt
### 2. Organizational Mapping
Build and maintain organizational charts with reporting relationships.

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

python-peopleskillpy-add-relationship-3-1-reportsto.txt
### 3. Mentorship Network
Track mentorship relationships and career guidance connections.

--description "Career guidance in ML/AI"

---description-career-guidance-in-mlai.txt
### 4. Collaboration Tracking
Map who works with whom on projects.

--description "Project Phoenix collaboration"

---description-project-phoenix-collaboration.txt
### 5. Network Analysis
Analyze your professional network to identify key connections.

python people_skill.py get-graph > network.json

python-peopleskillpy-get-graph--networkjson.txt
## Advanced Features

### Bidirectional Relationship Queries
The system automatically handles both directions:

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

-returns-outgoing--incoming-.txt
### 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:

# Matches: names, roles, organizations

-matches-names-roles-organizations.txt
## Integration Examples

### Export to Visualization Tools
example.sh
# 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
example.py
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")

Tags

#coding_agents-and-ides #data #database

Quick Info

Category Development
Model Claude 3.5
Complexity Multi-Agent
Author makkzone
Last Updated 3/10/2026
🚀
Optimized for
Claude 3.5
🧠

Ready to Install?

Get started with this skill in seconds

openclaw install people-strategy