DevPilot
OpenClaw-styled system that automates 90%+ of a developer's work in enterprise — reacts to Bitbucket/Jira/Sentry hooks with parallel multi-model AI agents, backed by advanced RAG memory across the full task lifecycle. Human-in-the-loop approval keeps the developer in control: just approve or reject.
┌──────────────────────────────────────────────────────────────────────────────────────┐ │ NEMOCLAW SYSTEM (Docker) │ │ │ │ EXTERNAL EVENTS NEMOCLAW SANDBOX │ │ ════════════════ ══════════════════ │ │ │ │ ┌──────────┐ ┌──────────────────────────────────────────────────┐ │ │ │Bitbucket │──webhook──┐ │ NVIDIA OpenShell Container │ │ │ │ Cloud │ │ │ (Landlock + seccomp + network namespaces) │ │ │ └──────────┘ │ │ │ │ │ │ │ ┌────────────────────────────────────────────┐ │ │ │ ┌──────────┐ │ │ │ OPENCLAW GATEWAY │ │ │ │ │ Jira │──webhook──┤ │ │ (:18789) │ │ │ │ │ Cloud │ │ │ │ │ │ │ │ └──────────┘ │ │ │ ┌─────────────────────────────────────┐ │ │ │ │ │ │ │ │ Webhook Receiver │ │ │ │ │ ┌──────────┐ │ │ │ │ POST /hooks/bitbucket │ │ │ │ │ │ Slack │──event────┼────────│──│ POST /hooks/jira │ │ │ │ │ │ │ │ │ │ │ POST /hooks/sentry │ │ │ │ │ └──────────┘ │ │ │ │ Auth: Bearer token + HMAC │ │ │ │ │ │ │ │ └──────────┬──────────────────────────┘ │ │ │ │ ┌──────────┐ │ │ │ │ │ │ │ │ │ Sentry │──alert────┘ │ │ ┌──────────▼──────────────────────────┐ │ │ │ │ │ │ │ │ │ hooks.mappings │ │ │ │ │ └──────────┘ │ │ │ + Custom Transforms │ │ │ │ │ │ │ │ (bitbucket.ts, jira.ts, sentry.ts)│ │ │ │ │ │ │ └──────────┬──────────────────────────┘ │ │ │ │ ┌──────────┐ │ │ │ │ │ │ │ │ Telegram │◄──channel──────────│ ┌──────────▼──────────────────────────┐ │ │ │ │ │ (user) │──message──────────│──│ Agent Runtime │ │ │ │ │ └──────────┘ │ │ │ │ │ │ │ │ │ │ │ SOUL.md (agent personality) │ │ │ │ │ ┌──────────┐ │ │ │ ┌──────────────────────────────┐ │ │ │ │ │ │ Slack │◄──channel──────────│ │ │ Skills Engine │ │ │ │ │ │ │ (team) │ │ │ │ │ │ │ │ │ │ │ └──────────┘ │ │ │ │ /plan-ticket │ │ │ │ │ │ │ │ │ │ /develop-ticket │ │ │ │ │ │ ┌──────────┐ │ │ │ │ /create-pr │ │ │ │ │ │ │ Cron │──schedule──────────│ │ │ /review-pr │ │ │ │ │ │ │ (built- │ │ │ │ │ /review-support │ │ │ │ │ │ │ in) │ │ │ │ │ /investigate-sentry │ │ │ │ │ │ └──────────┘ │ │ │ │ /daily-standup │ │ │ │ │ │ │ │ │ │ /pr-monitor │ │ │ │ │ │ │ │ │ └──────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌──────────────────────────────┐ │ │ │ │ │ │ │ │ │ Memory (persistent) │ │ │ │ │ │ │ │ │ │ Cross-session knowledge │ │ │ │ │ │ │ │ │ └──────────────────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ┌──────────────────────────────┐ │ │ │ │ │ │ │ │ │ Tools │ │ │ │ │ │ │ │ │ │ git, php, phpcs, phpstan │ │ │ │ │ │ │ │ │ │ bitbucket-prs.sh │ │ │ │ │ │ │ │ │ │ jira-tickets.sh │ │ │ │ │ │ │ │ │ └──────────────────────────────┘ │ │ │ │ │ │ │ └────────────────────────────────────┘ │ │ │ │ │ └─────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ │ │ NEMOCLAW SECURITY LAYER │ │ │ │ │ │ │ │ │ │ │ │ ┌───────────────┐ ┌────────────────┐ │ │ │ │ │ │ │ Network Policy │ │ FS Policy │ │ │ │ │ │ │ │ (YAML) │ │ (Landlock) │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ ALLOW: │ │ R/W: workspace │ │ │ │ │ │ │ │ anthropic.com │ │ R/O: skills │ │ │ │ │ │ │ │ bitbucket.org │ │ DENY: / (rest) │ │ │ │ │ │ │ │ atlassian.net │ │ │ │ │ │ │ │ │ │ telegram.org │ │ │ │ │ │ │ │ │ │ DENY: * │ │ │ │ │ │ │ │ │ └───────────────┘ └────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ ┌───────────────┐ ┌────────────────┐ │ │ │ │ │ │ │ Process Policy │ │ Git Policy │ │ │ │ │ │ │ │ (seccomp) │ │ │ │ │ │ │ │ │ │ │ │ ALLOW push: │ │ │ │ │ │ │ │ ALLOW: │ │ LS-*, hotfix-*│ │ │ │ │ │ │ │ git, php, │ │ DENY push: │ │ │ │ │ │ │ │ node, curl │ │ master, main │ │ │ │ │ │ │ │ DENY: │ │ release/* │ │ │ │ │ │ │ │ ssh, scp, │ │ DENY: │ │ │ │ │ │ │ │ wget, eval │ │ force-push │ │ │ │ │ │ │ └───────────────┘ └────────────────┘ │ │ │ │ │ │ │ │ │ │ │ │ ┌──────────────────────────────────┐ │ │ │ │ │ │ │ PHI/HIPAA Output Guard (custom) │ │ │ │ │ │ │ │ Scans ALL outgoing messages │ │ │ │ │ │ │ │ Blocks: SSN, DOB, MRN, API keys │ │ │ │ │ │ │ └──────────────────────────────────┘ │ │ │ │ │ └─────────────────────────────────────────┘ │ │ │ │ │ │ │ │ ┌─────────────────────────────────────────┐ │ │ │ │ │ WORKSPACE │ │ │ │ │ │ /workspace/lscodebase/ (git repo) │ │ │ │ │ │ /workspace/skills/ (SKILL.md files) │ │ │ │ │ │ /workspace/scripts/ (shell helpers) │ │ │ │ │ └─────────────────────────────────────────┘ │ │ │ └────────────────────────────────────────────────┘ │ │ │ └──────────────────────────────────────────────────────────────────────────────────────┘
Key Highlights
Dual-Track Multi-Agent Architecture
Parallel Opus + Sonnet sub-agents with Haiku confidence scoring. Each skill spawns 10–15 sub-agents for cross-validation and fact-checking.
Webhook Transform Layer
TypeScript transforms routing Bitbucket, Jira, and Sentry events to skill-specific agent sessions, backed by CLI tooling for PR management and Jira ticket parsing.
HIPAA Compliance
Declarative YAML network policies (deny-by-default egress), PHI/PII regex output guardrails, and Git push branch protection enforced at sandbox level.
SQLite FSM + RAG Memory
Task lifecycle states (PLANNED → IMPLEMENTED → PR_CREATED → REVIEWED) with RAG-based cross-session memory via claude-mem MCP and ChromaDB.
Human-in-the-Loop
Every destructive action requires explicit approval via Telegram Bot API. The agent drafts, the human decides — ensuring safety at every checkpoint.
Custom SKILL.md Agents
8 specialized skills covering the full dev lifecycle: planning, coding, PR creation, code review, Sentry investigation, daily standups, and PR monitoring.
Skill: /plan-ticket
Autonomous read-only task planning. Triggered by Jira webhook or manual Telegram command. Spawns ~10–15 sub-agents for dual-model analysis with cross-validation.
┌─────────────────────────────────────────────────────────────────────┐
│ /plan-ticket LS-XXXXX │
│ Mode: READ-ONLY (autonomous) │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌─────────────▼─────────────┐
│ Step 0: git checkout master│
│ git pull origin master │
└─────────────┬───────────────┘
│
┌─────────────▼─────────────┐
│ Step 1: Jira Ticket │
│ jira-tickets.sh show │
│ + download screenshots │
│ (Read tool for images) │
└─────────────┬───────────────┘
│
┌─────────────▼─────────────┐
│ Step 1.5: Doc Discovery │
│ claude-mem RAG │
│ search → timeline → │
│ get_observations │
└─────────────┬───────────────┘
│
┌───────────────────────┼───────────────────────┐
│ │ │
┌─────────▼─────────┐ ┌─────────▼─────────┐ ┌─────────▼─────────┐
│ Step 2a: │ │ Step 2b: Agent A │ │ Step 2b: Agent B │
│ Translation │ │ ┌──────────────┐ │ │ ┌──────────────┐ │
│ ┌──────────────┐ │ │ │ 🤖 Opus │ │ │ │ 🤖 Sonnet │ │
│ │ 🤖 Haiku │ │ │ │ Orchestrator │ │ │ │ Independent │ │
│ │ Translator │ │ │ └──────┬───────┘ │ │ │ Analyst │ │
│ └──────────────┘ │ │ │ │ │ └──────────────┘ │
└────────────────────┘ │ ┌──────▼───────┐ │ │ Codebase + │
│ │ 5 SUB-AGENTS │ │ │ Defensive + │
│ │ PARALLEL │ │ │ Patterns + │
│ ├──────────────┤ │ │ Plan + Tests │
│ │🤖A1 Codebase │ │ └────────────────────┘
│ │🤖A2 Defensive│ │
│ │🤖A3 Patterns │ │
│ │🤖A4 History │ │
│ │🤖A5 Plan │ │
│ │ (all Opus) │ │
│ └──────┬───────┘ │
│ │ │
│ ┌──────▼───────┐ │
│ │ Merge 5→1 │ │
│ │ unified │ │
│ │ report │ │
│ └──────────────┘ │
└─────────┬──────────┘
│
┌───────────────────────┼───────────────────────┐
│ PARALLEL (single message) │
┌─────────▼──────────────┐ ┌─────────────────▼──────────┐
│ Step 3: A reviews B │ │ Step 3: B reviews A │
│ ┌──────────────────┐ │ │ ┌──────────────────┐ │
│ │ 🤖 Opus │ │ │ │ 🤖 Sonnet │ │
│ │ Cross-validator │ │ │ │ Cross-validator │ │
│ └──────────────────┘ │ │ └──────────────────┘ │
│ Categories: │ │ Categories: │
│ ALIGNED | DIVERGENT │ │ ALIGNED | DIVERGENT │
│ GAP_A | GAP_B │ │ GAP_A | GAP_B │
│ CONFLICT │ │ CONFLICT │
└─────────┬──────────────┘ └───────────────┬────────────┘
│ │
└──────────────────┬──────────────────────────┘
│
┌─────────────▼─────────────┐
│ Step 3.5: Confidence │
│ Scoring │
│ ┌──────────────────────┐ │
│ │ 🤖🤖🤖 Haiku ×N │ │
│ │ (parallel) │ │
│ │ 0-100 score each │ │
│ └──────────────────────┘ │
│ ≥75 CONFIRMED │
│ 50-74 INFO │
│ <50 FILTERED │
└─────────────┬──────────────┘
│
┌─────────────▼──────────────┐
│ Step 4: Orchestrator │
│ merges results │
│ │
│ ✓ Fact verification │
│ (Glob/Read/Grep) │
│ ✓ Anti-pattern checklist │
│ ✓ Defensive checklist │
│ │
│ → Write plan to │
│ claude/my/plans/ │
└─────────────┬──────────────┘
│
┌─────────────▼──────────────┐
│ Step 5: claude-mem │
│ Save key decisions │
└─────────────┬──────────────┘
│
┌─────────────▼──────────────┐
│ Step 6: Show result │
│ ⛔ WAIT FOR APPROVAL │
└────────────────────────────┘
Agents: 1 Haiku + 1 Opus-orchestrator(→5 Opus) + 1 Sonnet
+ 2 cross-validators + N Haiku scorers
Total: ~10-15 sub-agentsSkill: /review-pr
Dual-track code review triggered by Bitbucket webhook. Track A proposes an independent solution blind to the PR, Track B performs multi-agent code analysis. Results are cross-validated and scored before human approval.
┌─────────────────────────────────────────────────────────────────────┐
│ /review-pr 20860 │
│ Mode: READ-ONLY (no git checkout) │
│ Safe for parallel execution │
└─────────────────────────────────┬───────────────────────────────────┘
│
┌──────────────────▼──────────────────┐
│ Step 0: Validation │
│ bitbucket-prs.sh show │
│ STOP if: own PR, not OPEN, │
│ trivial (dependency bump) │
└──────────────────┬──────────────────┘
│
┌────────────────────────────▼────────────────────────────┐
│ Step 1: Context Gathering │
│ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌─────────┐ │
│ │1a: Jira │ │1b: Diff │ │1c: Files │ │1d: PR │ │
│ │ ticket │ │ git diff │ │ git show │ │comments │ │
│ │ │ │ --stat │ │ origin/ │ │ │ │
│ │ │ │ + full │ │ {branch} │ │ │ │
│ └──────────┘ └──────────┘ └──────────┘ └─────────┘ │
└────────────────────────────┬────────────────────────────┘
│
┌──────────────────▼──────────────────┐
│ Step 1.5: Doc Discovery (claude-mem)│
│ search → timeline → get_observations│
│ Find: past work with modules, │
│ architectural decisions, past reviews│
└──────────────────┬──────────────────┘
│
┌────────────────────────────┼────────────────────────────┐
│ PARALLEL (single message) │
│ │ │
┌────▼────────────────────┐ ┌────▼────────────────────────────┐
│ TRACK A │ │ TRACK B │
│ Independent Solution │ │ Multi-Agent Code Review │
│ Architect │ │ │
│ ┌───────────────────┐ │ │ ┌───────────────────────────┐ │
│ │ 🤖 Opus │ │ │ │ 🤖 Opus Orchestrator │ │
│ │ max_turns=25 │ │ │ └─────────┬─────────────────┘ │
│ │ │ │ │ │ │
│ │ Explores code │ │ │ ┌─────────▼─────────────────┐ │
│ │ via git show/ │ │ │ │ 5 SUB-AGENTS PARALLEL │ │
│ │ git grep │ │ │ │ │ │
│ │ (origin/master) │ │ │ │ 🤖B1 Compliance+Arch │ │
│ │ │ │ │ │ 🤖B2 Bugs & Logic │ │
│ │ Proposes OWN │ │ │ │ 🤖B3 Perf+Sec+HIPAA │ │
│ │ approach to the │ │ │ │ 🤖B4 History+Patterns │ │
│ │ task (blind to PR)│ │ │ │ 🤖B5 Tests+Edge Cases │ │
│ └───────────────────┘ │ │ │ (all Opus) │ │
│ │ │ └─────────┬─────────────────┘ │
│ Output: │ │ │ │
│ - Task understanding │ │ ┌─────────▼─────────────────┐ │
│ - Key files │ │ │ Deduplicate + merge │ │
│ - Proposed approach │ │ │ Unified issues list │ │
│ - Arch recommendations │ │ │ with confidence 0-100 │ │
│ - Risks │ │ └───────────────────────────┘ │
│ - Tests │ │ │
└─────────┬───────────────┘ └───────────────┬─────────────────┘
│ │
│ result_A │ result_B (issues)
│ │
│ ┌──────────────────▼──────────────────┐
│ │ Step 3: Confidence Scoring │
│ │ ┌──────────────────────────────┐ │
│ │ │ 🤖🤖🤖 Haiku ×N │ │
│ │ │ (one per issue, │ │
│ │ │ all PARALLEL) │ │
│ │ │ │ │
│ │ │ 0-100 score │ │
│ │ │ avg(agent, haiku) ≥ 75 │ │
│ │ │ → KEEP, otherwise FILTER │ │
│ │ └──────────────────────────────┘ │
│ └──────────────────┬──────────────────┘
│ │ filtered issues
│ │
└──────────────┬───────────────────┘
│
┌──────────────▼───────────────────────┐
│ Step 4: Synthesis │
│ ┌────────────────────────────────┐ │
│ │ 🤖 Opus │ │
│ │ Compares Track A vs Track B │ │
│ │ │ │
│ │ ALIGNED — matches │ │
│ │ DIVERGENT — differs │ │
│ │ MISSING — not in PR │ │
│ │ CRITICAL — verified issues │ │
│ │ QUALITY — architectural │ │
│ └────────────────────────────────┘ │
└──────────────┬───────────────────────┘
│
┌──────────────▼───────────────────────┐
│ Step 5: Summary with Explanation │
│ PR explanation for user │
│ ✅ What's done well │
│ ⚠️ What can be improved │
│ Status: READY / NEEDS FIXES │
└──────────────┬───────────────────────┘
│
┌──────────────▼───────────────────────┐
│ Step 6: Draft Comments │
│ Style: bitbucket-comment-style.md │
│ inline (file:line) > general │
│ ⛔ WAIT FOR APPROVAL │
└──────────────┬───────────────────────┘
│ approved (all/selective)
┌──────────────▼───────────────────────┐
│ Step 7: Post Comments │
│ bitbucket-prs.sh: │
│ inline-comment / comment / reply │
└──────────────┬───────────────────────┘
│
┌──────────────▼───────────────────────┐
│ Step 8: Summary Report │
└──────────────┬───────────────────────┘
│
┌──────────────▼───────────────────────┐
│ Step 9: claude-mem │
│ Save: findings, divergent approaches, │
│ patterns, recurring author issues │
└──────────────────────────────────────┘
Agents: 1 Opus (Track A) + 1 Opus-orch(→5 Opus) (Track B)
+ N Haiku scorers + 1 Opus (Synthesis)
Total: ~10-15 sub-agentsSkills Engine — Full Lifecycle
8 specialized SKILL.md agents covering the complete development workflow — from ticket planning to production monitoring.
/plan-ticket
Read-only. Dual-model analysis with 5 Opus sub-agents + Sonnet cross-validation. Outputs implementation plan.
/develop-ticket
Write mode. Step-by-step implementation from plan with phpcs/phpstan quality gates. Multi-checkpoint: commit → push.
/create-pr
Detects ticket type, drafts PR with description, selects reviewer, posts to Slack. All with approval checkpoints.
/review-pr
Dual-track: independent solution architect vs multi-agent code review. Haiku confidence scoring filters noise.
/review-support
Post-review support. Responds to reviewer comments, implements requested changes, and updates the PR.
/investigate-sentry
Triggered by Sentry alerts. Traces error to root cause in codebase, proposes fix, and creates ticket if needed.
/daily-standup
Cron-triggered. Aggregates yesterday's PRs, commits, Jira updates into a structured daily summary to Telegram.
/pr-monitor
Continuous monitoring of open PRs. Alerts on stale reviews, merge conflicts, and CI failures.