in devai-cli/src/devai/commands/prompts.py [0:0]
def init_prompts(force: bool):
"""Initialize a prompts directory with sample templates."""
# Get the prompts directory from config or default
prompts_dir = get_prompts_dir()
# Check if directory exists
if prompts_dir.exists():
if not force:
if not click.confirm(f"Directory {prompts_dir} already exists. Initialize anyway?"):
return
click.echo(f"Initializing existing directory: {prompts_dir}")
else:
click.echo(f"Creating new prompts directory: {prompts_dir}")
prompts_dir.mkdir(parents=True, exist_ok=True)
# Create basic directory structure
categories = ['security', 'testing', 'performance', 'documentation']
for category in categories:
(prompts_dir / category).mkdir(exist_ok=True)
# Create a sample template
sample_template = {
'metadata': {
'name': 'Web Security Review',
'description': 'Review web application security best practices',
'version': '1.0',
'category': 'security',
'subcategory': 'web-security',
'author': 'DevAI',
'last_updated': '2024-03-25',
'tags': ['security', 'web', 'review']
},
'configuration': {
'temperature': 0.7,
'max_tokens': 1024,
'output_format': 'markdown'
},
'prompt': {
'system_context': 'You are a security expert reviewing web applications.',
'instruction': 'Review the following web application code for security vulnerabilities and best practices.',
'examples': [
{
'input': 'Check this login form for security issues',
'output': '1. Missing CSRF token\n2. Password field lacks minimum length requirement\n3. No rate limiting on login attempts'
}
]
},
'validation': {
'required_sections': ['vulnerabilities', 'recommendations'],
'output_schema': {},
'quality_checks': []
}
}
# Save the sample template
sample_file = prompts_dir / 'security' / 'web-security.yaml'
with open(sample_file, 'w') as f:
yaml.dump(sample_template, f, default_flow_style=False)
click.echo(f"Initialized prompts directory")
click.echo(f"Created sample template: security/web-security.yaml")
click.echo("\nYou can now:")
click.echo("1. Add your own prompt templates to this directory")
click.echo("2. Override package prompts by creating files with the same names")
click.echo("3. Use 'devai prompts list' to see all available templates")