@matthugh1/agent-profile-default
v0.5.0
Published
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.
Readme
@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/*.mdcfor agent conventions - Codex skills -
.codex/skills/*/SKILL.mdfor role-specific workflows - Session starters -
.memory/session-starters/*.mdfor quick workflow kickoff - Workflow templates -
.memory/workflows/product-delivery.md - Outcome templates -
outcomes/_template.mdandoutcomes/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 generatorsYour package.json should depend on @conductor/agent-core:
{
"name": "@conductor/agent-profile-mycompany",
"dependencies": {
"@conductor/agent-core": "*"
}
}2. Implement the BootstrapProfile interface
In src/profile.ts:
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:
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
conductor bootstrap init --profile mycompany --client claudeKey interfaces
BootstrapProfile
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:
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
import { registerProfile, getProfile, listProfiles } from '@conductor/agent-core'
registerProfile(profile) // register at import time
getProfile('mycompany') // look up by ID
listProfiles() // list all registered profilesFile 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.)