feat: add Conductor plugin for Context-Driven Development

Add comprehensive Conductor plugin implementing Context-Driven Development
methodology with tracks, specs, and phased implementation plans.

Components:
- 5 commands: setup, new-track, implement, status, revert
- 1 agent: conductor-validator
- 3 skills: context-driven-development, track-management, workflow-patterns
- 18 templates for project artifacts

Documentation updates:
- README.md: Updated counts (68 plugins, 100 agents, 110 skills, 76 tools)
- docs/plugins.md: Added Conductor to Workflows section
- docs/agents.md: Added conductor-validator agent
- docs/agent-skills.md: Added Conductor skills section

Also includes Prettier formatting across all project files.
This commit is contained in:
Seth Hobson
2026-01-15 17:38:21 -05:00
parent 87231b828d
commit f662524f9a
94 changed files with 11610 additions and 1728 deletions

View File

@@ -3,6 +3,7 @@
## Schema Organization
### Modular Schema Structure
```graphql
# user.graphql
type User {
@@ -37,17 +38,19 @@ extend type Query {
## Type Design Patterns
### 1. Non-Null Types
```graphql
type User {
id: ID! # Always required
email: String! # Required
phone: String # Optional (nullable)
posts: [Post!]! # Non-null array of non-null posts
tags: [String!] # Nullable array of non-null strings
id: ID! # Always required
email: String! # Required
phone: String # Optional (nullable)
posts: [Post!]! # Non-null array of non-null posts
tags: [String!] # Nullable array of non-null strings
}
```
### 2. Interfaces for Polymorphism
```graphql
interface Node {
id: ID!
@@ -72,6 +75,7 @@ type Query {
```
### 3. Unions for Heterogeneous Results
```graphql
union SearchResult = User | Post | Comment
@@ -92,13 +96,16 @@ type Query {
}
... on Comment {
text
author { name }
author {
name
}
}
}
}
```
### 4. Input Types
```graphql
input CreateUserInput {
email: String!
@@ -124,6 +131,7 @@ input UpdateUserInput {
## Pagination Patterns
### Relay Cursor Pagination (Recommended)
```graphql
type UserConnection {
edges: [UserEdge!]!
@@ -144,12 +152,7 @@ type PageInfo {
}
type Query {
users(
first: Int
after: String
last: Int
before: String
): UserConnection!
users(first: Int, after: String, last: Int, before: String): UserConnection!
}
# Usage
@@ -171,6 +174,7 @@ type Query {
```
### Offset Pagination (Simpler)
```graphql
type UserList {
items: [User!]!
@@ -187,6 +191,7 @@ type Query {
## Mutation Design Patterns
### 1. Input/Payload Pattern
```graphql
input CreatePostInput {
title: String!
@@ -212,6 +217,7 @@ type Mutation {
```
### 2. Optimistic Response Support
```graphql
type UpdateUserPayload {
user: User
@@ -231,6 +237,7 @@ type Mutation {
```
### 3. Batch Mutations
```graphql
input BatchCreateUserInput {
users: [CreateUserInput!]!
@@ -256,6 +263,7 @@ type Mutation {
## Field Design
### Arguments and Filtering
```graphql
type Query {
posts(
@@ -296,20 +304,20 @@ enum OrderDirection {
```
### Computed Fields
```graphql
type User {
firstName: String!
lastName: String!
fullName: String! # Computed in resolver
fullName: String! # Computed in resolver
posts: [Post!]!
postCount: Int! # Computed, doesn't load all posts
postCount: Int! # Computed, doesn't load all posts
}
type Post {
likeCount: Int!
commentCount: Int!
isLikedByViewer: Boolean! # Context-dependent
isLikedByViewer: Boolean! # Context-dependent
}
```
@@ -366,6 +374,7 @@ type Product {
## Directives
### Built-in Directives
```graphql
type User {
name: String!
@@ -388,6 +397,7 @@ query GetUser($isOwner: Boolean!) {
```
### Custom Directives
```graphql
directive @auth(requires: Role = USER) on FIELD_DEFINITION
@@ -406,6 +416,7 @@ type Mutation {
## Error Handling
### Union Error Pattern
```graphql
type User {
id: ID!
@@ -452,6 +463,7 @@ type Query {
```
### Errors in Payload
```graphql
type CreateUserPayload {
user: User
@@ -476,6 +488,7 @@ enum ErrorCode {
## N+1 Query Problem Solutions
### DataLoader Pattern
```python
from aiodataloader import DataLoader
@@ -493,6 +506,7 @@ async def resolve_posts(user, info):
```
### Query Depth Limiting
```python
from graphql import GraphQLError
@@ -507,6 +521,7 @@ def depth_limit_validator(max_depth: int):
```
### Query Complexity Analysis
```python
def complexity_limit_validator(max_complexity: int):
def calculate_complexity(node):
@@ -522,6 +537,7 @@ def complexity_limit_validator(max_complexity: int):
## Schema Versioning
### Field Deprecation
```graphql
type User {
name: String! @deprecated(reason: "Use firstName and lastName")
@@ -531,6 +547,7 @@ type User {
```
### Schema Evolution
```graphql
# v1 - Initial
type User {