Parallel Feature Development
Seth HobsonCommunityCreated by Seth Hobson
- Skill
- Guidelines
- Software development
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
This skill provides a structured approach to parallel feature development by defining clear file ownership boundaries, interface contracts, and integration patterns. It is designed to help teams of AI agents work on the same codebase simultaneously without stepping on each other's work. By establishing strict ownership rules and using interface-first development, it reduces the likelihood of merge conflicts and ensures that independently developed components integrate seamlessly.
What it does
- Defines file ownership strategies based on directories, modules, or architectural layers.
- Establishes conflict avoidance rules, including the cardinal rule of one owner per file.
- Provides patterns for interface contracts to enable parallel development against shared APIs.
- Outlines integration patterns like vertical slices, horizontal layers, and hybrid approaches.
- Offers strategies for branch management and resolving integration-time conflicts.
- Includes a verification checklist for ensuring code quality after integration.
When to use it
- When decomposing a large feature into independent work streams for multiple agents.
- When multiple agents need to work on different layers of the same system simultaneously.
- When you need to prevent merge conflicts in a shared codebase.
- When designing interface contracts so agents can build against APIs before they are fully implemented.
- When deciding between vertical slice or horizontal layer architectural approaches.
Advantages
- Reduces merge conflicts through strict file ownership.
- Enables faster development by allowing agents to work in parallel.
- Ensures consistent integration through pre-defined interface contracts.
- Provides clear guidance on how to handle shared code and dependencies.
- Offers structured troubleshooting for common parallel development issues.
Usage examples
- “We have three agents working on a new authentication feature. How should I assign file ownership to prevent them from overwriting each other's work?”
- The agent will provide a breakdown of ownership strategies (by directory, module, or layer) and explain the 'one owner per file' rule to ensure isolation.
- “Two agents are blocked because they both need to modify the same shared utility file. What is the best way to resolve this?”
- The agent will suggest either splitting the file, designating a single owner for the file, or extracting shared logic into an interface contract.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/wshobson/parallel-feature-development/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip parallel-feature-development.zip -d .agents/skills
Documentation by Seth Hobson
Parallel Feature Development
Strategies for decomposing features into parallel work streams, establishing file ownership boundaries, avoiding conflicts, and integrating results from multiple implementer agents.
When to Use This Skill
Decomposing a feature for parallel implementation
Establishing file ownership boundaries between agents
Designing interface contracts between parallel work streams
Choosing integration strategies (vertical slice vs horizontal layer)
Managing branch and merge workflows for parallel development
File Ownership Strategies
By Directory
Assign each implementer ownership of specific directories:
implementer-1: src/components/auth/
implementer-2: src/api/auth/
implementer-3: tests/auth/Best for: Well-organized codebases with clear directory boundaries.
By Module
Assign ownership of logical modules (which may span directories):
implementer-1: Authentication module (login, register, logout)
implementer-2: Authorization module (roles, permissions, guards)Best for: Feature-oriented architectures, domain-driven design.
By Layer
Assign ownership of architectural layers:
implementer-1: UI layer (components, styles, layouts)
implementer-2: Business logic layer (services, validators)
implementer-3: Data layer (models, repositories, migrations)Best for: Traditional MVC/layered architectures.
Conflict Avoidance Rules
The Cardinal Rule
One owner per file. No file should be assigned to multiple implementers.
When Files Must Be Shared
If a file genuinely needs changes from multiple implementers:
Designate a single owner — One implementer owns the file
Other implementers request changes — Message the owner with specific change requests
Owner applies changes sequentially — Prevents merge conflicts
Alternative: Extract interfaces — Create a separate interface file that the non-owner can import without modifying
Interface Contracts
When implementers need to coordinate at boundaries:
// src/types/auth-contract.ts (owned by team-lead, read-only for implementers)
export interface AuthResponse {
token: string;
user: UserProfile;
expiresAt: number;
}
export interface AuthService {
login(email: string, password: string): Promise<AuthResponse>;
register(data: RegisterData): Promise<AuthResponse>;
}Both implementers import from the contract file but neither modifies it.
Integration Patterns
Vertical Slice
Each implementer builds a complete feature slice (UI + API + tests):
implementer-1: Login feature (login form + login API + login tests)
implementer-2: Register feature (register form + register API + register tests)Pros: Each slice is independently testable, minimal integration needed. Cons: May duplicate shared utilities, harder with tightly coupled features.
Horizontal Layer
Each implementer builds one layer across all features:
implementer-1: All UI components (login form, register form, profile page)
implementer-2: All API endpoints (login, register, profile)
implementer-3: All tests (unit, integration, e2e)Pros: Consistent patterns within each layer, natural specialization. Cons: More integration points, layer 3 depends on layers 1 and 2.
Hybrid
Mix vertical and horizontal based on coupling:
implementer-1: Login feature (vertical slice — UI + API + tests)
implementer-2: Shared auth infrastructure (horizontal — middleware, JWT utils, types)Best for: Most real-world features with some shared infrastructure.
Branch Management
Single Branch Strategy
All implementers work on the same feature branch:
Simple setup, no merge overhead
Requires strict file ownership to avoid conflicts
Best for: small teams (2-3), well-defined boundaries
Multi-Branch Strategy
Each implementer works on a sub-branch:
feature/auth
├── feature/auth-login (implementer-1)
├── feature/auth-register (implementer-2)
└── feature/auth-tests (implementer-3)More isolation, explicit merge points
Higher overhead, merge conflicts still possible in shared files
Best for: larger teams (4+), complex features
Troubleshooting
Implementers are blocking each other waiting for shared code. Extract the shared piece into its own interface contract file owned by the team-lead and have implementers import from it. Neither implementer modifies the contract — they only implement against it.
Merge conflicts appear even with clear ownership rules.
A file was assigned to two agents, or a config/index file (e.g., index.ts, __init__.py) that auto-imports everything was modified by both. Designate one owner for all barrel/index files, or have the lead merge them at the end.
An implementer finishes early but the integration step is blocked. Use a staging interface: the finished implementer writes a stub or mock of the downstream dependency so the other implementer can continue working. Replace with the real implementation at integration time.
The feature decomposition turned out wrong mid-stream. Stop new work, have the lead redistribute files, and communicate the change via broadcast. Sunk cost on partially written code is acceptable — continuing with the wrong split is worse.
Tests written by one implementer fail against code written by another. Interface contracts drifted: the implementer who owns the API changed a signature without notifying the test implementer. Enforce the rule that contract files require a broadcast before modification.
Related Skills
team-composition-patterns — Choose the right team size and agent types before decomposing work
team-communication-protocols — Coordinate integration handoffs and plan approvals between implementers
Files
- ATTRIBUTION.mdAdded by AutoGineer1006 B
- LICENSELicence file added by AutoGineer1.0 KiB
- SKILL.md6.5 KiB
- references/file-ownership.md2.4 KiB
- references/merge-strategies.md2.3 KiB
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Seth Hobson
- Publisher
- Seth Hobson (Community)
- Source
- wshobson/agents · plugins/agent-teams/skills/parallel-feature-development · commit 4bde316
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Seth Hobson or Seth Hobson.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download parallel-feature-development.zip