npm package: @matthugh1/agent-profile-default
Description: The default bootstrap profile for the Conductor agent framework. This package serves as both the built-in profile and a reference example for creating custom profiles.
Latest version: 0.5.0

# @conductor/agent-profile-default

The default bootstrap profile for the Conductor agent framework. This package serves as both the built-in profile and a reference example for creating custom profiles.

## What this package does

When you run `conductor bootstrap init`, this profile generates:

- **AGENTS.md** - repo-level operating guide with config defaults
- **.memory/** - project map, architecture, decisions, delivery backend guide, current state
- **Cursor rules** - `.cursor/rules/*.mdc` for agent conventions
- **Codex skills** - `.codex/skills/*/SKILL.md` for role-specific workflows
- **Session starters** - `.memory/session-starters/*.md` for quick workflow kickoff
- **Workflow templates** - `.memory/workflows/product-delivery.md`
- **Outcome templates** - `outcomes/_template.md` and `outcomes/README.md`
- **MCP server template** - `templates/mcp-server/` starter files

The profile adapts its output based on the `BootstrapRepositoryConfig` — different AI clients get different file structures, and the delivery backend choice (local-files vs Linear) changes workflow guidance.

## Using this as a template for custom profiles

### 1. Create a new package

```
packages/agent-profile-mycompany/
  package.json
  tsconfig.json
  src/
    index.ts
    profile.ts
    generated-assets.ts   # your static template files
    generators.ts         # your dynamic template generators
```

Your `package.json` should depend on `@conductor/agent-core`:

```json
{
  "name": "@conductor/agent-profile-mycompany",
  "dependencies": {
    "@conductor/agent-core": "*"
  }
}
```

### 2. Implement the BootstrapProfile interface

In `src/profile.ts`:

```typescript
import { buildBundle, registerProfile } from '@conductor/agent-core'
import type {
  BootstrapBundle,
  BootstrapRepositoryConfig,
} from '@conductor/agent-core'

export const MY_PROFILE_ID = 'mycompany'

export function createMyCompanyBundle(
  config: BootstrapRepositoryConfig,
): BootstrapBundle {
  // Build your asset list from static templates and dynamic generators
  const assets = [
    // ... your BootstrapAssetTemplate entries
  ]
  return buildBundle(MY_PROFILE_ID, config.adapterId, assets)
}

// Auto-register when this module is imported
registerProfile({
  id: MY_PROFILE_ID,
  name: 'My Company Profile',
  description: 'Custom agent bootstrap for My Company projects.',
  createBundle: createMyCompanyBundle,
})
```

### 3. Export from your index

In `src/index.ts`:

```typescript
export { createMyCompanyBundle, MY_PROFILE_ID } from './profile.js'
```

### 4. Register with the CLI

Add your profile package as a dependency of `@conductor/agent-bootstrap-cli` (or create your own CLI wrapper that imports both the default profile and yours).

### 5. Use it

```bash
conductor bootstrap init --profile mycompany --client claude
```

## Key interfaces

### BootstrapProfile

```typescript
interface BootstrapProfile {
  id: string                    // unique identifier, e.g. "mycompany"
  name: string                  // human-readable name
  description: string           // what this profile provides
  createBundle(config: BootstrapRepositoryConfig): BootstrapBundle
}
```

### BootstrapAssetTemplate

Each file your profile generates is a `BootstrapAssetTemplate`:

```typescript
interface BootstrapAssetTemplate {
  id: string                              // unique asset identifier
  layer: 'core' | 'profile' | 'adapter'  // which layer owns this
  audience: 'shared' | 'cursor' | 'cursor-codex' | 'claude' | 'gemini'
  deliveryBackends?: ('local-files' | 'linear')[]  // optional filtering
  type: 'file'
  outputPath: string                      // where to write, relative to project root
  content: string                         // file content
}
```

### Registry functions

```typescript
import { registerProfile, getProfile, listProfiles } from '@conductor/agent-core'

registerProfile(profile)           // register at import time
getProfile('mycompany')            // look up by ID
listProfiles()                     // list all registered profiles
```

## File structure of this package

```
src/
  index.ts              re-exports public API
  profile.ts            createDefaultBootstrapBundle + auto-registration
  generators.ts         6 dynamic template generators (AGENTS.md, .memory/ files)
  generated-assets.ts   50+ static template assets (rules, skills, starters, etc.)
```