@ebowwa/glm-daemon-personalities
v0.0.1
Published
AI personalities for GLM daemon - Dev, Butler, and custom personalities
Maintainers
Readme
@codespaces/glm-daemon-personalities
AI personalities for the GLM daemon system. Each personality defines specific behaviors, workflows, and capabilities for autonomous AI agents.
Personalities
Dev Personality
The Dev personality is a GitHub-first autonomous developer with a Ralph-style workflow. It implements:
- Automatic branching from
devbefore making changes - Incremental commits with conventional commit messages
- Pre-commit checks (linter, type-check, tests)
- PR creation to
devbranch (NOTmain) - Code review integration with automated feedback
- Paranoid verification before submitting
Installation
bun add @codespaces/glm-daemon-personalitiesUsage
Basic Usage
import { createDevPersonality } from '@codespaces/glm-daemon-personalities';
// Create a Dev personality with default configuration
const dev = createDevPersonality();
// Initialize with custom configuration
const customDev = createDevPersonality({
github: {
defaultTargetBranch: 'dev',
defaultSourceBranch: 'dev',
branchTemplate: 'feat/{task}',
runTests: true,
runLinter: true,
runTypeCheck: true,
commands: {
test: 'bun test',
lint: 'eslint src',
typeCheck: 'tsc --noEmit',
},
},
review: {
autoRequest: false,
requiredApprovals: 1,
autoMerge: false,
},
});
// Get the system prompt
const prompt = dev.getSystemPrompt();
// Transform input/output
const transformed = dev.transformInput(userInput);
const response = dev.transformOutput(aiResponse);Code Review
import { CodeReviewer, ReviewCategory } from '@codespaces/glm-daemon-personalities';
const reviewer = new CodeReviewer({
autoRequest: false,
requiredApprovals: 1,
autoMerge: false,
});
const result = await reviewer.reviewChanges(
{
files: ['src/example.ts'],
diff: '@@ -1,1 +1,2 @@\n+const x: any = null;',
},
{
categories: [
ReviewCategory.STYLE,
ReviewCategory.BUGS,
ReviewCategory.SECURITY,
ReviewCategory.TYPES,
],
includeSuggestions: true,
strict: true,
}
);
console.log(result.summary);
console.log(reviewer.formatFeedback(result.feedback));GitHub Workflow
import { GitHubWorkflowManager } from '@codespaces/glm-daemon-personalities';
const workflow = new GitHubWorkflowManager(
{
defaultTargetBranch: 'dev',
defaultSourceBranch: 'dev',
branchTemplate: 'feat/{task}',
commitTemplate: '{type}: {description}',
prTitleTemplate: '{task}',
runTests: true,
runLinter: true,
runTypeCheck: true,
commands: {
test: 'bun test',
lint: 'eslint src',
typeCheck: 'tsc --noEmit',
},
},
{
autoRequest: false,
requiredApprovals: 1,
autoMerge: false,
}
);
// Generate branch name from task
const branchName = workflow.generateBranchName('Implement user authentication');
// Returns: 'feat/implement-user-authentication'
// Generate commit message
const commitMsg = workflow.generateCommitMessage({
files: ['src/auth.ts', 'src/auth.test.ts'],
description: 'Add user authentication',
type: 'feat',
});
// Run pre-commit checks
const checkResult = await workflow.runPreCommitChecks([
'src/auth.ts',
'src/auth.test.ts',
]);Configuration
DevPersonalityConfig
interface DevPersonalityConfig {
// Base personality config
id: string;
name: string;
description: string;
version: string;
// GitHub workflow settings
github: {
defaultTargetBranch: string; // Default: 'dev'
defaultSourceBranch: string; // Default: 'dev'
branchTemplate: string; // Default: 'feat/{task}'
commitTemplate: string; // Default: '{type}: {description}'
prTitleTemplate: string; // Default: '{task}'
runTests: boolean; // Default: true
runLinter: boolean; // Default: true
runTypeCheck: boolean; // Default: true
commands: {
test?: string;
lint?: string;
typeCheck?: string;
};
};
// Code review settings
review: {
autoRequest: boolean; // Default: false
reviewers?: string[];
requiredApprovals: number; // Default: 1
autoMerge: boolean; // Default: false
autoMergeMethod?: 'merge' | 'squash' | 'rebase';
};
// Worktree isolation settings
worktree: {
basePath: string; // Default: '/tmp/glm-worktrees'
autoCleanup: boolean; // Default: true
};
// MCP git server settings
mcpGit: {
serverName: string; // Default: 'git'
repo: string; // Default: 'packages'
};
}SLAM Phase Hooks
The Dev personality implements hooks for each SLAM phase:
| Phase | Hook Behavior | |-------|--------------| | Planning | Adds planning guidance, creates branch | | Executing | Adds execution guidance, commits incrementally | | Paranoid | Adds verification checks, runs full test suite | | Reviewing | Adds review checklist, reviews own code | | Fixing | Adds fixing guidance, addresses issues | | Committing | Adds commit/PR guidance, creates PR to dev | | Complete | Adds completion guidance, provides summary |
Review Categories
The code reviewer supports multiple categories:
STYLE- Code style and formattingBUGS- Potential bugs and issuesPERFORMANCE- Performance optimization suggestionsSECURITY- Security vulnerabilitiesBEST_PRACTICES- Best practice violationsDOCUMENTATION- Documentation coverageTYPES- TypeScript type safetyTESTING- Testing coverage
License
MIT
