{"id":49171970,"url":"https://github.com/daironpf/socialseed-tasker","last_synced_at":"2026-05-03T21:01:17.879Z","repository":{"id":348589430,"uuid":"1198841457","full_name":"daironpf/socialseed-tasker","owner":"daironpf","description":"An AI-native, graph-based task management framework for autonomous software engineering.","archived":false,"fork":false,"pushed_at":"2026-04-25T18:23:52.000Z","size":1129,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-25T18:31:35.762Z","etag":null,"topics":["ai-agents","automation","automation-tools","graph-database","graph-database-neo4j","neo4j","python","socialseed","software-architecture","task-management","task-management-system"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/daironpf.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-01T20:10:24.000Z","updated_at":"2026-04-11T20:35:30.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/daironpf/socialseed-tasker","commit_stats":null,"previous_names":["daironpf/socialseed-tasker"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/daironpf/socialseed-tasker","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daironpf%2Fsocialseed-tasker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daironpf%2Fsocialseed-tasker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daironpf%2Fsocialseed-tasker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daironpf%2Fsocialseed-tasker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/daironpf","download_url":"https://codeload.github.com/daironpf/socialseed-tasker/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/daironpf%2Fsocialseed-tasker/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32584651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","automation","automation-tools","graph-database","graph-database-neo4j","neo4j","python","socialseed","software-architecture","task-management","task-management-system"],"created_at":"2026-04-22T19:36:28.711Z","updated_at":"2026-05-03T21:01:17.870Z","avatar_url":"https://github.com/daironpf.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SocialSeed Tasker\n\n## Graph-Native Engineering \u0026 Autonomous Agent Governance\n\nA specialized framework that leverages **Neo4j** to provide AI agents with infinite architectural context and strict governance.\n\n```\n┌─────────────────────────────────────────────────────────────────────────────────────────────┐\n│                        TASKER ARCHITECTURE                         │\n├─────────────────────────────────────────────────────────────────────────────┬────────────┤\n│                                                               │            │\n│   ┌─────────┐     ┌─────────┐     ┌─────────┐     ┌───────┐  │   AI     │\n│   │  CLI    │────▶│  REST  │────▶│ Action  │────▶│ Repo  │  │   AGENTS │\n│   │ (Typer) │     │  API   │     │ Layer  │     │(Neo4j)│  │            │\n│   └─────────┘     └─────────┘     └─────────┘     └───────┘  │            │\n│        │            │            │            │                 │   Skills  │\n│        │            │            │            ▼                 │  (Python)│\n│        │            │            │     ┌─────────┐           │            │\n│        │            │            │     │ Graph  │           │            │\n│        │            │            │     │ DB     │           │            │\n│        │            │            │     └─────────┘           │            │\n└─────────────────────────────────────────────────────────────────────────────┴────────────┘\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Python-3.10+-blue.svg\" alt=\"Python 3.10+\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Architecture-Hexagonal-green.svg\" alt=\"Hexagonal Architecture\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Storage-Neo4j%20Only-orange.svg\" alt=\"Neo4j Only\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/GraphRAG-Enabled-purple.svg\" alt=\"GraphRAG\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/License-Apache%202.0-blue.svg\" alt=\"License: Apache 2.0\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/Version-0.8.1-green.svg\" alt=\"Version: 0.8.1\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PRs-Welcome-green.svg\" alt=\"PRs Welcome\"\u003e\n\u003c/p\u003e\n\n---\n\n## What's New in v0.8.1\n\n### Performance \u0026 Monitoring\n- **Response Time Headers**: `X-Response-Time-Ms` on all API responses\n- **Slow Request Logging**: Configurable threshold for performance monitoring\n- **Optimized Neo4j Indexes**: Faster queries for status, project, and dependency lookups\n- **BFS Optimization**: Limited depth traversal for impact analysis\n\n### Security \u0026 Dependencies\n- **Security Policy**: Comprehensive `SECURITY.md` documenting all security measures\n- **Automated Updates**: GitHub Actions workflow for weekly dependency updates\n- **pip-audit Integration**: Vulnerability scanning in CI/CD\n\n### Documentation\n- **Enhanced API Docs**: Better OpenAPI tags, endpoint descriptions, and examples\n- **Performance Targets**: Documented latency goals for all endpoints\n\n---\n\n## Installation\n\n### Prerequisites\n\n- Python 3.10 or higher\n- Neo4j 5.x (running locally or via Docker)\n- pip (Python package manager)\n\n### Install via pip\n\n```bash\n# Install latest release from PyPI\npip install socialseed-tasker\n\n# Install specific version\npip install socialseed-tasker==0.8.1\n```\n\n### Install via git (Development)\n\n```bash\n# Clone the repository\ngit clone https://github.com/daironpf/socialseed-tasker.git\ncd socialseed-tasker\n\n# Create virtual environment (recommended)\npython -m venv venv\nsource venv/Scripts/activate  # Windows\n# source venv/bin/activate    # Linux/Mac\n\n# Install in editable mode\npip install -e .\n```\n\n### Command Not Found?\n\nAfter installation, if `tasker` command is not found, add the Scripts directory to your PATH:\n\n**Windows (PowerShell):**\n```powershell\n$env:Path += \";$env:USERPROFILE\\AppData\\Roaming\\Python\\Python314\\Scripts\"\ntasker --help\n```\n\n**Windows (CMD):**\n```cmd\nset PATH=%PATH%;%USERPROFILE%\\AppData\\Roaming\\Python\\Python314\\Scripts\ntasker --help\n```\n\n**Linux/Mac:**\n```bash\nexport PATH=\"$PATH:$HOME/.local/bin\"\ntasker --help\n```\n\n### Alternative: Use Python Module Directly\n\nIf the `tasker` command is not available, use Python module invocation:\n\n```bash\n# CLI\npython -m socialseed_tasker.entrypoints.terminal_cli.app --help\n\n# API\npython -m socialseed_tasker.entrypoints.web_api\n```\n\n### Verify Installation\n\n```bash\n# Check CLI version\ntasker --version\n# or\npython -m socialseed_tasker.entrypoints.terminal_cli.app --version\n\n# Check CLI help\ntasker --help\n\n# Check API (requires Neo4j running)\ncurl http://localhost:8000/health\n```\n\n---\n\n## Quick Start\n\n### 1. Start the Services\n\n```bash\n# Clone and start everything with Docker Compose\ngit clone https://github.com/daironpf/socialseed-tasker.git\ncd socialseed-tasker\ndocker compose up -d\n```\n\n### 2. Verify Everything Is Running\n\n```bash\n# Check API health\ncurl http://localhost:8000/health\n# Expected: {\"status\":\"healthy\",\"version\":\"0.8.1\",\"neo4j\":\"connected\"}\n```\n\n### 3. Services Available\n\n| Service | URL | Description |\n|---------|-----|-------------|\n| **Neo4j Browser** | `http://localhost:7474` | Graph database UI (neo4j/neoSocial) |\n| **REST API** | `http://localhost:8000` | For AI agents to manage issues |\n| **Frontend** | `http://localhost:8080` | Human UI (Kanban board \u0026 Interactive Graph View) |\n| **API Docs** | `http://localhost:8000/docs` | OpenAPI documentation |\n| **ReDoc** | `http://localhost:8000/redoc` | Alternative API documentation |\n\n### 4. Try It Now - 30-Second Demo\n\n```bash\n# Set your API key\nexport TASKER_API_KEY=test-token\nexport TASKER_AUTH_ENABLED=true\n\n# Create a component\nCOMP_ID=$(curl -s -X POST http://localhost:8000/api/v1/components \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $TASKER_API_KEY\" \\\n  -d '{\"name\":\"backend\",\"project\":\"my-app\"}' | python -c \"import sys,json; print(json.load(sys.stdin)['data']['id'])\")\n\n# Create an issue in that component\nISSUE_ID=$(curl -s -X POST http://localhost:8000/api/v1/issues \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $TASKER_API_KEY\" \\\n  -d \"{\\\"title\\\":\\\"Fix login bug\\\",\\\"component_id\\\":\\\"$COMP_ID\\\",\\\"priority\\\":\\\"HIGH\\\"}\" \\\n  | python -c \"import sys,json; print(json.load(sys.stdin)['data']['id'])\")\n\n# Link them: Fix login bug depends on Add unit tests\nDEP_ID=$(curl -s -X POST http://localhost:8000/api/v1/issues \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $TASKER_API_KEY\" \\\n  -d \"{\\\"title\\\":\\\"Add unit tests\\\",\\\"component_id\\\":\\\"$COMP_ID\\\"}\" \\\n  | python -c \"import sys,json; print(json.load(sys.stdin)['data']['id'])\")\n\ncurl -s -X POST \"http://localhost:8000/api/v1/issues/$ISSUE_ID/dependencies\" \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Bearer $TASKER_API_KEY\" \\\n  -d \"{\\\"depends_on_id\\\":\\\"$DEP_ID\\\"}\"\n```\n\n### 5. Explore the Graph\n\nOpen **http://localhost:7474** in your browser and run this Cypher query to visualize your data:\n\n```cypher\nMATCH (i:Issue)-[:BELONGS_TO]-\u003e(c:Component)\nRETURN i, c\n```\n\n---\n\n## Environment Variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `TASKER_NEO4J_URI` | `bolt://localhost:7687` | Neo4j connection URI |\n| `TASKER_NEO4J_USER` | `neo4j` | Neo4j username |\n| `TASKER_NEO4J_PASSWORD` | (none) | Neo4j password (required) |\n| `API_PORT` | `8000` | API server port |\n| `TASKER_API_KEY` | (none) | API key for authentication |\n| `TASKER_AUTH_ENABLED` | `false` | Enable API authentication |\n| `TASKER_DEMO_MODE` | `false` | Load demo data on startup |\n| `TASKER_RATE_LIMIT_ENABLED` | `false` | Enable rate limiting |\n| `TASKER_RATE_LIMIT_PER_MINUTE` | `100` | Requests per minute limit |\n| `TASKER_SLOW_REQUEST_THRESHOLD` | `0.5` | Log requests slower than this (seconds) |\n| `TASKER_ENABLE_PERF_LOGGING` | `true` | Enable performance monitoring |\n\n---\n\n## Performance Monitoring\n\nAll API responses include timing information:\n\n```bash\n# Get response with timing header\ncurl -v http://localhost:8000/api/v1/issues 2\u003e\u00261 | grep X-Response-Time\n# Output: X-Response-Time-Ms: 45.23\n```\n\nSlow requests (\u003e500ms by default) are logged:\n\n```\nWARNING - Slow request: GET /api/v1/analyze/impact took 523.45ms (threshold: 500.00ms)\n```\n\n---\n\n## REST API Reference\n\n### Base URL\n```\nhttp://localhost:8000/api/v1\n```\n\n### Authentication\n\nSet `TASKER_API_KEY` and `TASKER_AUTH_ENABLED=true` for production authentication.\n\n```bash\n# Example with authentication\ncurl -H \"Authorization: Bearer your-secret-key\" http://localhost:8000/api/v1/issues\n```\n\n### Performance Targets\n\n| Endpoint | Target | Notes |\n|----------|--------|-------|\n| GET /issues | \u003c100ms | Indexed queries |\n| GET /issues/{id} | \u003c50ms | Unique constraint lookup |\n| POST /analyze/impact | \u003c500ms | BFS with depth limit (3) |\n| GET /graph/dependencies | \u003c200ms | Index-based traversal |\n\n### Key Endpoints\n\n- **Issues**: Create, read, update, delete, close\n- **Components**: Organize issues by service/module\n- **Dependencies**: Link issues with [:DEPENDS_ON] relationships\n- **Analysis**: Impact analysis, root cause detection\n- **Projects**: Aggregate statistics by project\n- **Health**: Neo4j connectivity status\n\nFor complete endpoint documentation, visit **http://localhost:8000/docs**\n\n---\n\n## Docker Compose\n\n```bash\n# Start everything\ndocker compose up -d\n\n# View logs\ndocker compose logs -f\n\n# Stop everything (data persists)\ndocker compose down\n\n# Stop and remove all data\ndocker compose down -v\n```\n\n---\n\n## Isolated Testing (Black-Box Evaluation)\n\nFor running isolated tests without the full stack:\n\n### Quick Start (API + Neo4j Only)\n\n```bash\n# 1. Create isolated test directory\nmkdir real-test \u0026\u0026 cd real-test\n\n# 2. Start only Neo4j (minimal setup)\ncp ../docker-compose-minimal.yml .\ndocker compose up -d\n\n# 3. Wait for Neo4j to be ready\nsleep 15\n\n# 4. Verify connectivity\ndocker exec real-test-tasker-db-1 cypher-shell -u neo4j -p neoSocial \"RETURN 1\"\n```\n\n### Full Stack Isolated Testing\n\n```bash\n# 1. Create isolated test directory\nmkdir real-test \u0026\u0026 cd real-test\n\n# 2. Copy required files\ncp ../docker-compose.yml .\ncp ../Dockerfile .\ncp -r ../frontend .\ncp ../nginx.conf ./frontend/ 2\u003e/dev/null || true\n\n# 3. Install package\npython -m venv venv\nsource venv/Scripts/activate  # Windows\n# or: source venv/bin/activate  # Linux/Mac\npip install -e ..\n\n# 4. Build and start services\ndocker compose build\ndocker compose up -d\n```\n\n### Required Files for Full Stack\n\n| File | Purpose |\n|------|---------|\n| `docker-compose.yml` | Service orchestration |\n| `Dockerfile` | API container build |\n| `frontend/` | Frontend source (Dockerfile, nginx.conf, dist/) |\n\n---\n\n## Docker Troubleshooting\n\n### Common Issues\n\n**`/frontend/package.json: not found`**\n- Solution: Copy the `frontend/` directory or use `docker-compose-minimal.yml`\n\n**`host not found in upstream \"tasker-api\"`**\n- Solution: Update `nginx.conf` to use `host.docker.internal:8000`\n\n**Neo4j container not healthy**\n```bash\n# Check logs\ndocker compose logs tasker-db\n\n# Reset Neo4j data\ndocker compose down -v\ndocker compose up -d\n```\n\n**Port already in use**\n```bash\n# Find what's using the port\nnetstat -ano | findstr :7474  # Windows\n# lsof -i :7474  # Linux/Mac\n\n# Stop the conflicting service or change port in docker-compose.yml\n```\n\n**`tasker` command not found after pip install**\n```bash\n# Windows: Add Scripts to PATH\n$env:Path += \";$env:USERPROFILE\\AppData\\Roaming\\Python\\Python314\\Scripts\"\n\n# Linux/Mac: Add bin to PATH\nexport PATH=\"$PATH:$HOME/.local/bin\"\n\n# Or use Python module directly\npython -m socialseed_tasker.entrypoints.terminal_cli.app --help\n```\n\n---\n\n## Architecture\n\n```\n┌──────────────────────────┐\n│   AI Agent / Human UI    │\n│   REST API (port 8000)   │\n└────────────┬─────────────┘\n             ▼\n┌──────────────────────────────┐\n│      Application Core        │\n│  (Hexagonal Architecture)    │\n│ • Governance Engine           │\n│ • Dependency BFS Analysis │\n│ • Root Cause Detection     │\n│ • Input Validation        │\n│ • Rate Limiting          │\n│ • Performance Monitoring  │\n└────────────┬─────────────────┘\n             ▼\n┌──────────────────────────────┐\n│      Neo4j Graph DB        │\n│ (The Source of Truth)         │\n│ • Relationship Tracking    │\n│ • Causal Traceability    │\n└──────────────────────────────┘\n```\n\n---\n\n## Related Documentation\n\n- **[CLI Reference](#)** - Command-line interface\n- **[API_REFERENCE.md](API_REFERENCE.md)** - Complete API endpoint reference\n- **[VERSIONS.md](VERSIONS.md)** - Release milestones and feature checklists\n- **[ROADMAP.md](ROADMAP.md)** - Strategic roadmap and future features\n- **[SECURITY.md](SECURITY.md)** - Security policy and best practices\n- **[Development](#)** - Running tests, contributing\n\n---\n\n## License\n\nApache 2.0 - See LICENSE file for details.","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaironpf%2Fsocialseed-tasker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdaironpf%2Fsocialseed-tasker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdaironpf%2Fsocialseed-tasker/lists"}