mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-03-23 12:03:07 +00:00
Implement project picker keyboard shortcut and enhance feature management
- Added a new keyboard shortcut 'P' to open the project picker dropdown.
- Implemented functionality to select projects using number keys, allowing users to quickly switch between projects.
- Updated the feature list to include a new feature for project selection via keyboard shortcuts.
- Removed obsolete coding_prompt.md and added initializer_prompt.md for better session management.
- Introduced context management for features, enabling reading, writing, and deleting context files.
- Updated package dependencies to include @radix-ui/react-checkbox for enhanced UI components.
This commit enhances user experience by streamlining project selection and improves the overall feature management process.
🤖 Generated with Claude Code
This commit is contained in:
@@ -45,35 +45,6 @@ const DEFAULT_APP_SPEC = `<project_specification>
|
||||
*/
|
||||
const DEFAULT_FEATURE_LIST = JSON.stringify([], null, 2);
|
||||
|
||||
/**
|
||||
* Default coding_prompt.md template for new projects
|
||||
*/
|
||||
const DEFAULT_CODING_PROMPT = `# Coding Guidelines
|
||||
|
||||
This file contains project-specific coding guidelines and conventions
|
||||
that the AI agent should follow when implementing features.
|
||||
|
||||
## Code Style
|
||||
|
||||
- Follow existing code conventions in the project
|
||||
- Use consistent formatting and naming conventions
|
||||
- Add appropriate comments for complex logic
|
||||
|
||||
## Testing
|
||||
|
||||
- Write tests for new features when applicable
|
||||
- Ensure existing tests pass before marking features complete
|
||||
|
||||
## Git Commits
|
||||
|
||||
- Use clear, descriptive commit messages
|
||||
- Reference feature IDs when relevant
|
||||
|
||||
## Additional Notes
|
||||
|
||||
Add any project-specific guidelines here.
|
||||
`;
|
||||
|
||||
/**
|
||||
* Required files and directories in the .automaker directory
|
||||
*/
|
||||
@@ -86,7 +57,6 @@ const REQUIRED_STRUCTURE = {
|
||||
files: {
|
||||
".automaker/app_spec.txt": DEFAULT_APP_SPEC,
|
||||
".automaker/feature_list.json": DEFAULT_FEATURE_LIST,
|
||||
".automaker/coding_prompt.md": DEFAULT_CODING_PROMPT,
|
||||
},
|
||||
};
|
||||
|
||||
@@ -96,7 +66,9 @@ const REQUIRED_STRUCTURE = {
|
||||
* @param projectPath - The root path of the project
|
||||
* @returns Result indicating what was created or if the project was already initialized
|
||||
*/
|
||||
export async function initializeProject(projectPath: string): Promise<ProjectInitResult> {
|
||||
export async function initializeProject(
|
||||
projectPath: string
|
||||
): Promise<ProjectInitResult> {
|
||||
const api = getElectronAPI();
|
||||
const createdFiles: string[] = [];
|
||||
const existingFiles: string[] = [];
|
||||
@@ -109,7 +81,9 @@ export async function initializeProject(projectPath: string): Promise<ProjectIni
|
||||
}
|
||||
|
||||
// Check and create required files
|
||||
for (const [relativePath, defaultContent] of Object.entries(REQUIRED_STRUCTURE.files)) {
|
||||
for (const [relativePath, defaultContent] of Object.entries(
|
||||
REQUIRED_STRUCTURE.files
|
||||
)) {
|
||||
const fullPath = `${projectPath}/${relativePath}`;
|
||||
const exists = await api.exists(fullPath);
|
||||
|
||||
@@ -122,7 +96,8 @@ export async function initializeProject(projectPath: string): Promise<ProjectIni
|
||||
}
|
||||
|
||||
// Determine if this is a new project (all files were created)
|
||||
const isNewProject = createdFiles.length === Object.keys(REQUIRED_STRUCTURE.files).length;
|
||||
const isNewProject =
|
||||
createdFiles.length === Object.keys(REQUIRED_STRUCTURE.files).length;
|
||||
|
||||
return {
|
||||
success: true,
|
||||
@@ -146,7 +121,9 @@ export async function initializeProject(projectPath: string): Promise<ProjectIni
|
||||
* @param projectPath - The root path of the project
|
||||
* @returns true if all required files/directories exist
|
||||
*/
|
||||
export async function isProjectInitialized(projectPath: string): Promise<boolean> {
|
||||
export async function isProjectInitialized(
|
||||
projectPath: string
|
||||
): Promise<boolean> {
|
||||
const api = getElectronAPI();
|
||||
|
||||
try {
|
||||
@@ -161,7 +138,10 @@ export async function isProjectInitialized(projectPath: string): Promise<boolean
|
||||
|
||||
return true;
|
||||
} catch (error) {
|
||||
console.error("[project-init] Error checking project initialization:", error);
|
||||
console.error(
|
||||
"[project-init] Error checking project initialization:",
|
||||
error
|
||||
);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user