mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 21:03:08 +00:00
feat: add centralized build validation command and refactor port configuration
- Introduced a new command for validating project builds, providing detailed instructions for running builds and intelligently fixing failures based on recent changes. - Refactored port configuration by centralizing it in the @automaker/types package for improved maintainability and backward compatibility. - Updated imports in various modules to reflect the new centralized port configuration, ensuring consistent usage across the application.
This commit is contained in:
49
.claude/commands/validate-build.md
Normal file
49
.claude/commands/validate-build.md
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
# Project Build and Fix Command
|
||||||
|
|
||||||
|
Run all builds and intelligently fix any failures based on what changed.
|
||||||
|
|
||||||
|
## Instructions
|
||||||
|
|
||||||
|
1. **Run the build**
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm run build
|
||||||
|
```
|
||||||
|
|
||||||
|
This builds all packages and the UI application.
|
||||||
|
|
||||||
|
2. **If the build succeeds**, report success and stop.
|
||||||
|
|
||||||
|
3. **If the build fails**, analyze the failures:
|
||||||
|
- Note which build step failed and the error messages
|
||||||
|
- Check for TypeScript compilation errors, missing dependencies, or configuration issues
|
||||||
|
- Run `git diff main` to see what code has changed
|
||||||
|
|
||||||
|
4. **Determine the nature of the failure**:
|
||||||
|
- **If the failure is due to intentional changes** (new features, refactoring, dependency updates):
|
||||||
|
- Fix any TypeScript type errors introduced by the changes
|
||||||
|
- Update build configuration if needed (e.g., tsconfig.json, vite.config.mts)
|
||||||
|
- Ensure all new dependencies are properly installed
|
||||||
|
- Fix import paths or module resolution issues
|
||||||
|
|
||||||
|
- **If the failure appears to be a regression** (broken imports, missing files, configuration errors):
|
||||||
|
- Fix the source code to restore the build
|
||||||
|
- Check for accidentally deleted files or broken references
|
||||||
|
- Verify build configuration files are correct
|
||||||
|
|
||||||
|
5. **Common build issues to check**:
|
||||||
|
- **TypeScript errors**: Fix type mismatches, missing types, or incorrect imports
|
||||||
|
- **Missing dependencies**: Run `npm install` if packages are missing
|
||||||
|
- **Import/export errors**: Fix incorrect import paths or missing exports
|
||||||
|
- **Build configuration**: Check tsconfig.json, vite.config.mts, or other build configs
|
||||||
|
- **Package build order**: Ensure `build:packages` completes before building apps
|
||||||
|
|
||||||
|
6. **How to decide if it's intentional vs regression**:
|
||||||
|
- Look at the git diff and commit messages
|
||||||
|
- If the change was deliberate and introduced new code that needs fixing → fix the new code
|
||||||
|
- If the change broke existing functionality that should still build → fix the regression
|
||||||
|
- When in doubt, ask the user
|
||||||
|
|
||||||
|
7. **After making fixes**, re-run the build to verify everything compiles successfully.
|
||||||
|
|
||||||
|
8. **Report summary** of what was fixed (TypeScript errors, configuration issues, missing dependencies, etc.).
|
||||||
@@ -1,15 +1,8 @@
|
|||||||
/**
|
/**
|
||||||
* Centralized port configuration for AutoMaker
|
* Centralized port configuration for AutoMaker
|
||||||
*
|
*
|
||||||
* These ports are reserved for the Automaker application and should never be
|
* Re-exports from @automaker/types for backward compatibility.
|
||||||
* killed or terminated by AI agents during feature implementation.
|
* The canonical definition is in @automaker/types to allow browser-safe imports.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/** Port for the static/UI server (Vite dev server) */
|
export { STATIC_PORT, SERVER_PORT, RESERVED_PORTS } from '@automaker/types';
|
||||||
export const STATIC_PORT = 3007;
|
|
||||||
|
|
||||||
/** Port for the backend API server (Express + WebSocket) */
|
|
||||||
export const SERVER_PORT = 3008;
|
|
||||||
|
|
||||||
/** Array of all reserved Automaker ports */
|
|
||||||
export const RESERVED_PORTS = [STATIC_PORT, SERVER_PORT] as const;
|
|
||||||
|
|||||||
@@ -22,7 +22,6 @@
|
|||||||
"node": ">=22.0.0 <23.0.0"
|
"node": ">=22.0.0 <23.0.0"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@automaker/platform": "1.0.0",
|
|
||||||
"@automaker/types": "1.0.0"
|
"@automaker/types": "1.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ import type {
|
|||||||
ResolvedBacklogPlanPrompts,
|
ResolvedBacklogPlanPrompts,
|
||||||
ResolvedEnhancementPrompts,
|
ResolvedEnhancementPrompts,
|
||||||
} from '@automaker/types';
|
} from '@automaker/types';
|
||||||
import { STATIC_PORT, SERVER_PORT } from '@automaker/platform';
|
import { STATIC_PORT, SERVER_PORT } from '@automaker/types';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ========================================================================
|
* ========================================================================
|
||||||
|
|||||||
@@ -140,3 +140,6 @@ export type {
|
|||||||
PipelineStatus,
|
PipelineStatus,
|
||||||
FeatureStatusWithPipeline,
|
FeatureStatusWithPipeline,
|
||||||
} from './pipeline.js';
|
} from './pipeline.js';
|
||||||
|
|
||||||
|
// Port configuration
|
||||||
|
export { STATIC_PORT, SERVER_PORT, RESERVED_PORTS } from './ports.js';
|
||||||
|
|||||||
15
libs/types/src/ports.ts
Normal file
15
libs/types/src/ports.ts
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
/**
|
||||||
|
* Centralized port configuration for AutoMaker
|
||||||
|
*
|
||||||
|
* These ports are reserved for the Automaker application and should never be
|
||||||
|
* killed or terminated by AI agents during feature implementation.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/** Port for the static/UI server (Vite dev server) */
|
||||||
|
export const STATIC_PORT = 3007;
|
||||||
|
|
||||||
|
/** Port for the backend API server (Express + WebSocket) */
|
||||||
|
export const SERVER_PORT = 3008;
|
||||||
|
|
||||||
|
/** Array of all reserved Automaker ports */
|
||||||
|
export const RESERVED_PORTS = [STATIC_PORT, SERVER_PORT] as const;
|
||||||
Reference in New Issue
Block a user