npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, πŸ‘‹, I’m Ryan HefnerΒ  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you πŸ™

Β© 2026 – Pkg Stats / Ryan Hefner

droidpartment

v3.2.17

Published

πŸš€ Multi-agent orchestration for Factory AI with 18 specialized agents, wave execution, learning memory, and zero dependencies. Production-grade autonomous development.

Readme


🎯 Why Droidpartment?

Unlike generic AI coding assistants, Droidpartment provides structured, battle-tested workflows powered by specialized agents who understand software development. Each agent has deep domain expertiseβ€”from architecture to security to testingβ€”working together seamlessly.

| Problem | Without Droidpartment | With Droidpartment | |---------|----------------------|-------------------| | Task Planning | AI jumps straight to coding | Automatic PRD β†’ Architecture β†’ Stories breakdown | | Quality | Hope it works | Parallel audits: Security + QA + Code Review | | Memory | Forgets everything | Learns from every session, remembers mistakes | | Workflow | Chaotic, unpredictable | Wave execution with [P]/[S] markers | | Context | Gets lost in long sessions | Automatic handoffs between agents |

✨ Key Benefits

  • Wave Execution - Tasks grouped into waves for optimal parallel/sequential execution
  • Document Artifacts - Automatic PRD.md β†’ ARCHITECTURE.md β†’ STORIES.md flow
  • Learning Memory - Captures lessons, patterns, and mistakes across sessions
  • Zero Config - Just install and describe your task
  • 18 Specialists - Each agent has deep expertise in one domain

πŸš€ Quick Start

Get Started in 3 Steps

# 1. Install
npx droidpartment install

# 2. Enable in Factory AI
#    /settings β†’ Experimental β†’ Custom Droids βœ“

# 3. Just describe your task!
#    "Build a user authentication system with JWT"

That's it. Droidpartment automatically:

  • Detects task complexity
  • Creates PRD and architecture
  • Breaks down into stories
  • Implements with parallel audits
  • Captures lessons learned

πŸ“Š How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                    WAVE EXECUTION FLOW                      β”‚
β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
β”‚                                                             β”‚
β”‚  Wave 1 [INIT]                                              β”‚
β”‚  β”œβ”€ [P] dpt-memory(START)                                   β”‚
β”‚  └─ [P] dpt-research                                        β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 2 [PLAN]                                              β”‚
β”‚  └─ [S] dpt-product β†’ PRD.md                                β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 3 [DESIGN]                                            β”‚
β”‚  └─ [S] dpt-arch β†’ ARCHITECTURE.md                          β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 4 [BREAKDOWN]                                         β”‚
β”‚  └─ [S] dpt-scrum β†’ STORIES.md                              β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 5 [IMPLEMENT]                                         β”‚
β”‚  β”œβ”€ [P] dpt-dev (component 1)                               β”‚
β”‚  └─ [P] dpt-dev (component 2)                               β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 6 [AUDIT]                                             β”‚
β”‚  β”œβ”€ [P] dpt-qa (testing)                                    β”‚
β”‚  β”œβ”€ [P] dpt-sec (security)                                  β”‚
β”‚  └─ [P] dpt-lead (code review)                              β”‚
β”‚         ↓                                                   β”‚
β”‚  Wave 7 [FINALIZE]                                          β”‚
β”‚  β”œβ”€ [S] dpt-memory(END)                                     β”‚
β”‚  └─ [S] dpt-output                                          β”‚
β”‚                                                             β”‚
β”‚  [P] = Parallel (run simultaneously)                        β”‚
β”‚  [S] = Sequential (wait for previous)                       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ†š How Droidpartment Compares

| Feature | Droidpartment | Generic AI | Other Frameworks | |---------|---------------|------------|------------------| | Specialized Agents | 18 experts | 1 generalist | Varies | | Learning Memory | βœ… Automatic | ❌ None | ⚠️ Manual | | Wave Execution | βœ… Built-in | ❌ No | ⚠️ Some | | Document Artifacts | βœ… PRD/Arch/Stories | ❌ No | ⚠️ Some | | Parallel Audits | βœ… QA+Sec+Review | ❌ No | ⚠️ Manual | | Feedback Loops | βœ… Auto-revision | ❌ No | ⚠️ Manual | | Dependencies | 0 | Varies | Many | | Platform | Factory AI | Any | Varies |


🐍 Python Backend Infrastructure

v3.2.0 introduces Python-powered efficiency to all agents

Droidpartment includes Python modules that eliminate duplicate work:

  • context_index.py - Project structure caching and file targeting
  • shared_context.py - Agent output storage and parallel handoffs
  • workflow_state.py - Wave execution and topology management

Zero External Dependencies βœ“

These Python modules have no external dependencies - they work with Python 3.6+.

How They Work Together

Agent 1 β†’ cache_manager β†’ Gets environment without re-discovery
     ↓
   memory_system β†’ Stores results in session
     ↓
   handoff_protocol β†’ Prepares optimized handoff
     ↓
Agent 2 β†’ memory_system β†’ Retrieves Agent 1's results
     ↓
   cache_manager β†’ Uses same cached environment
     ↓
   Continues workflow

Result: Each task eliminates redundant discovery work and reduces token usage by 20-40%.


πŸͺ Automatic Factory Hooks

v3.2.0 introduces automatic Factory hooks that trigger at key lifecycle points:

Zero Configuration Required

After npm install droidpartment, hooks register automatically. No manual setup needed.

Four Automatic Hooks

| Hook | Triggers | What It Does | |------|----------|-------------| | SessionStart | Session begins | Loads cache + initializes memory ONCE (shared by all 18 agents) | | SubagentStop | Agent completes | Transfers context automatically to next agent | | PostToolUse | After each tool | Tracks progress and updates memory in real-time | | SessionEnd | Session ends | Saves statistics + archives learning + cleanup |

Benefits

Before Hooks:

  • 18 agents each discover environment independently (180+ seconds wasted)
  • Manual memory management required (dpt-memory END calls)
  • No automatic progress tracking
  • 1,080-1,440 tokens wasted per session on duplicate discovery

After Hooks (v3.2.0):

  • Environment discovered ONCE, shared by all 18 agents (10 seconds total)
  • Memory management 100% automatic
  • Real-time progress tracking
  • 1,080-1,440 tokens saved per session (70-100% efficiency gain)

How It Works

USER REQUEST
    ↓
[SessionStart Hook] ← Automatic
    β”œβ”€ Load cache (once)
    └─ Init memory
    
dpt-memory β†’ dpt-dev β†’ dpt-qa ← All use shared cache
    ↓              ↓
[SubagentStop]  [PostToolUse] ← Automatic
    
[SessionEnd Hook] ← Automatic
    └─ Save + cleanup

Result: Zero manual intervention, maximum efficiency

Hooks Location

After installation, hooks are located at:

  • Personal: ~/.factory/memory/hooks/
  • Project: ./.factory/memory/hooks/

Registered automatically in ~/.factory/settings.json

Troubleshooting

If hooks don't execute:

  • Verify Python 3 installed: python3 --version
  • Check hook registration: cat ~/.factory/settings.json | grep hooks
  • Re-run installer: npx droidpartment --update

🧠 What Is This?

Droidpartment is a team of 18 specialized AI agents for Factory AI that work together like a real software development department. The main droid delegates to experts instead of doing everything itself.

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  YOU: "fix the bug in auth"                                     β”‚
β”‚                                                                 β”‚
β”‚  MAIN DROID: (follows mandatory workflow)                       β”‚
β”‚    1. dpt-memory  β†’ "START - bug fix for auth"                 β”‚
β”‚    2. dpt-dev     β†’ Implements the fix                         β”‚
β”‚    3. dpt-qa      β†’ Tests the fix                              β”‚
β”‚    4. dpt-memory  β†’ "END - captures lessons"                   β”‚
β”‚    5. dpt-output  β†’ Formats results with stats                 β”‚
β”‚                                                                 β”‚
β”‚  MEMORY: Lessons: 12 (+3) | Mistakes Prevented: 5               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

✨ Key Features

  • 🎯 Expert Specialists - Each agent masters one domain
  • 🧠 Memory System - Learns from every task, prevents repeated mistakes
  • ⚑ Parallel Execution - Run independent audits simultaneously
  • πŸ“ˆ Learning Curve - Gets smarter with every session
  • πŸ”„ PDCA Cycle - Plan-Do-Check-Act methodology built-in
  • βœ… Strict Enforcement - Main droid FORBIDDEN from coding directly
  • πŸͺ Factory Hooks - Automatic memory management at lifecycle points

πŸš€ Quick Start

# Install globally
npm install -g droidpartment
droidpartment

# Or one-time with npx
npx droidpartment

After install:

  1. Open Factory AI settings: /settings
  2. Go to Experimental β†’ Enable Custom Droids
  3. Restart CLI

That's it! Hooks register automatically - memory management, context sharing, and progress tracking work out-of-the-box.


⚠️ Mandatory Workflow (STRICT ENFORCEMENT)

The main droid MUST use custom droids. It is FORBIDDEN from coding directly.

v3.2.0: Strict Enforcement Rules

FORBIDDEN ACTIONS:
❌ NEVER use Edit/Create for code without calling dpt-dev FIRST
❌ NEVER use TodoWrite without calling dpt-scrum FIRST (3+ steps)
❌ NEVER start ANY task without dpt-memory START
❌ NEVER complete ANY task without dpt-memory END
❌ NEVER respond without dpt-output (multi-step tasks)

Task Classification

| User Request Contains | Task Type | Required Flow | |----------------------|-----------|---------------| | "audit", "review", "check" | AUDIT | memory β†’ sec+lead+qa+perf β†’ memory β†’ output | | "fix", "bug", "error" | BUG_FIX | memory β†’ dev β†’ qa β†’ memory β†’ output | | "add", "create", "build" | FEATURE | memory β†’ product β†’ arch β†’ scrum β†’ dev β†’ qa β†’ sec β†’ memory β†’ output | | "update", "change" | IMPLEMENTATION | memory β†’ scrum β†’ dev β†’ lead β†’ qa β†’ memory β†’ output |

The Rules

RULE 1: ALWAYS start with dpt-memory
RULE 2: Classify task β†’ follow REQUIRED flow
RULE 3: NEVER code directly β†’ use dpt-dev
RULE 4: NEVER skip steps
RULE 5: Memory END β†’ then Output (sequential)

Self-Verification (v3.2.0)

Before every action, main droid must ask:

"CHECKPOINT: Am I following the droid workflow?"
"CHECKPOINT: Did dpt-dev provide this code, or am I writing it myself?"

πŸ‘₯ The Experts

🧠 Memory & Output

| Agent | Role | |-------|------| | dpt-memory | Learning system (START/END) | | dpt-output | Format results + stats |

πŸ“‹ Planning

| Agent | Role | |-------|------| | dpt-product | Requirements, user stories | | dpt-research | Best practices (official docs) | | dpt-arch | Architecture, ADRs | | dpt-scrum | Task breakdown |

πŸ’» Implementation

| Agent | Role | |-------|------| | dpt-dev | ALL code implementation | | dpt-data | Database, queries | | dpt-api | API design (REST) | | dpt-ux | UI/UX, accessibility |

βœ… Quality (Can Run Parallel!)

| Agent | Role | |-------|------| | dpt-sec | Security (OWASP, CWE) | | dpt-lead | Code review (SOLID) | | dpt-qa | Testing (pyramid) | | dpt-review | Simplicity (YAGNI) | | dpt-perf | Performance |

πŸ”§ Support

| Agent | Role | |-------|------| | dpt-ops | DevOps, CI/CD | | dpt-docs | Documentation | | dpt-grammar | Text clarity |


πŸ”„ Example Flows

Bug Fix Flow

1. dpt-memory  β†’ "START - bug fix for [issue]"     WAIT
2. dpt-dev     β†’ "Fix the bug in [file]"           WAIT
3. dpt-qa      β†’ "Test the fix"                    WAIT
4. dpt-memory  β†’ "END - bug fixed, lessons..."     WAIT
5. dpt-output  β†’ "Format results"                  LAST

Feature Flow

1. dpt-memory  β†’ "START - new feature [name]"      WAIT
2. dpt-product β†’ "Define requirements"             WAIT
3. dpt-arch    β†’ "Design architecture"             WAIT
4. dpt-scrum   β†’ "Break down tasks"                WAIT
5. dpt-dev     β†’ "Implement feature"               WAIT
6. dpt-qa      β†’ "Test feature"                    PARALLEL
7. dpt-sec     β†’ "Security check"                  PARALLEL
8. dpt-memory  β†’ "END - feature complete"          WAIT
9. dpt-output  β†’ "Format results"                  LAST

Audit Flow

1. dpt-memory  β†’ "START - audit [project]"         WAIT
2. dpt-sec     β†’ "Security audit"                  PARALLEL
3. dpt-lead    β†’ "Code review"                     PARALLEL
4. dpt-qa      β†’ "Test coverage"                   PARALLEL
5. dpt-perf    β†’ "Performance check"               PARALLEL
6. dpt-memory  β†’ "END - audit complete"            WAIT
7. dpt-output  β†’ "Format results"                  LAST

🧠 Memory System

Droidpartment learns from every task!

~/.factory/memory/
β”œβ”€β”€ πŸ“š lessons.yaml     ← What worked
β”œβ”€β”€ 🎯 patterns.yaml    ← Reusable solutions
β”œβ”€β”€ ⚠️  mistakes.yaml    ← What to avoid (+prevention)
└── πŸ“ projects/
    └── {project}/      ← Project-specific knowledge

Learning Metrics

| Status | Meaning | |--------|---------| | πŸ“ˆ Improving | Prevented > New mistakes | | ➑️ Stable | Prevented = New mistakes | | ⚠️ Needs Attention | Prevented < New mistakes |

Every Task Ends With:

MEMORY STATUS:
Project: MyProject
Lessons: 15 (+2)
Mistakes: 8 (+1)
Prevented: 12
Learning: πŸ“ˆ Improving

πŸ“– How Agents Are Called

Use Task tool (NOT Skill tool!):

Task(
  subagent_type: "dpt-dev",
  description: "Implement feature",
  prompt: "Implement [requirement] in [file]. Follow existing patterns."
)

Parallel (Independent)

// These can run at the same time!
Task(subagent_type: "dpt-sec", ...)
Task(subagent_type: "dpt-lead", ...)
Task(subagent_type: "dpt-qa", ...)

Sequential (Must Wait)

Task(subagent_type: "dpt-memory", prompt: "START...")  // WAIT
Task(subagent_type: "dpt-dev", ...)                     // WAIT
Task(subagent_type: "dpt-memory", prompt: "END...")    // WAIT
Task(subagent_type: "dpt-output", ...)                  // LAST

πŸ› οΈ Commands

Main Commands

| Command | Description | |---------|-------------| | npx droidpartment | Interactive install/update | | npx droidpartment install | Install to ~/.factory | | npx droidpartment update | Update to latest version | | npx droidpartment reinstall | Fresh install (uninstall + install) | | npx droidpartment status | Check installation status | | npx droidpartment memory | Manage/clean memory files | | npx droidpartment uninstall | Remove completely |

Options

| Option | Description | |--------|-------------| | -y, --yes | Auto-confirm all prompts | | -q, --quiet | Minimal output | | -v, --verbose | Detailed output | | --project | Install to ./.factory (project-level) | | --force | Force operation | | --dry-run | Preview changes | | --purge | Delete memory on uninstall | | --help | Show help | | --version | Show version |

Examples

npx droidpartment install -y         # Quick install
npx droidpartment update             # Update to latest
npx droidpartment status             # Check status
npx droidpartment install --dry-run  # Preview install
npx droidpartment uninstall --purge  # Remove + delete memory

πŸ“ Install Locations

| Location | Path | Best For | |----------|------|----------| | Personal | ~/.factory/ | Works in ALL projects ✨ | | Project | ./.factory/ | Team sharing via git |


πŸ’‘ Philosophy

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  🎯 DELEGATE > DO IT YOURSELF          β”‚
β”‚  πŸ‘¨β€πŸ’» EXPERT > GENERALIST               β”‚
β”‚  ⚑ PARALLEL > SEQUENTIAL (when safe)  β”‚
β”‚  🧠 LEARN FROM EVERY MISTAKE           β”‚
β”‚  πŸ“ˆ GET SMARTER EVERY RUN              β”‚
β”‚  βœ… FOLLOW THE WORKFLOW                β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ—ΊοΈ Roadmap

  • [x] 18 Expert agents
  • [x] Memory system with learning
  • [x] PDCA task flows
  • [x] Parallel execution
  • [x] Mandatory workflow enforcement
  • [x] v3.2.0: Strict enforcement with FORBIDDEN actions + nested Task guard
  • [ ] Web dashboard for memory visualization
  • [ ] Cross-project pattern sharing
  • [ ] Team memory sync

πŸ“š Learning Resources

Start here to understand how to use Droidpartment:

Quick References

Agent Templates

Each agent has a dedicated markdown file explaining:

  • How to call the agent
  • What tools it uses
  • How it integrates with the plan system
  • Python module usage for efficiency

18 Agent Templates:

Memory & Output: dpt-memory, dpt-output
Planning: dpt-product, dpt-research, dpt-arch, dpt-scrum
Implementation: dpt-dev, dpt-data, dpt-api, dpt-ux
Quality: dpt-sec, dpt-lead, dpt-qa, dpt-review, dpt-perf
Support: dpt-ops, dpt-docs, dpt-grammar

All templates support:

  • βœ… Plan system integration
  • βœ… Python infrastructure (cache_manager, memory_system, handoff_protocol)
  • βœ… PDCA hooks (Plan-Do-Check-Act)
  • βœ… Cross-agent communication

Python Infrastructure

Location: ~/.factory/droids/python/

Three Core Modules:

  1. cache_manager.py - Environment caching

    from cache_manager import get_agent_context, get_environment_info
    context = get_agent_context("dpt-dev")
    env = get_environment_info()
  2. memory_system.py - Cross-agent results storage

    from memory_system import store_in_session, get_from_session
    store_in_session("dpt-dev", "results", {"status": "done"})
  3. handoff_protocol.py - Agent coordination

    from handoff_protocol import prepare_handoff_to
    handoff = prepare_handoff_to("dpt-dev", "dpt-qa", results)

🀝 Contributing

Contributions welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing)
  5. Open a Pull Request

πŸ“„ License

MIT Β© 2025 Nasri