imhcode 1.0.9 → 1.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/imhcode.js
CHANGED
|
@@ -1747,9 +1747,10 @@ async function generateSprintPlans(cwd, userPrompt, brainstormContent, config) {
|
|
|
1747
1747
|
console.log(` ✅ Created PROJECT_BRIEF.md`);
|
|
1748
1748
|
|
|
1749
1749
|
// Try LLM-powered sprint generation first (Fix 0)
|
|
1750
|
+
const assetsSummary = getAssetsSummary(cwd);
|
|
1750
1751
|
const llmSprintResult = await tryLLMSprintGeneration(
|
|
1751
1752
|
cwd, userPrompt, brainstormContent, config,
|
|
1752
|
-
{ hasFrontend, hasBackend, hasMobile, hasPayments, hasRealtime, designStyle, colorStyle, darkmode, detectedTesting, needsWorktrees }
|
|
1753
|
+
{ hasFrontend, hasBackend, hasMobile, hasPayments, hasRealtime, designStyle, colorStyle, darkmode, detectedTesting, needsWorktrees, assetsSummary }
|
|
1753
1754
|
);
|
|
1754
1755
|
|
|
1755
1756
|
let lastSprintNum;
|
|
@@ -1786,7 +1787,7 @@ async function generateSprintPlans(cwd, userPrompt, brainstormContent, config) {
|
|
|
1786
1787
|
* Attempt LLM-generated sprint plans. Returns { sprintCount } on success, null on failure.
|
|
1787
1788
|
*/
|
|
1788
1789
|
async function tryLLMSprintGeneration(cwd, userPrompt, brainstormContent, config, scope) {
|
|
1789
|
-
const { hasFrontend, hasBackend, hasMobile, hasPayments, hasRealtime, designStyle, colorStyle, darkmode, detectedTesting } = scope;
|
|
1790
|
+
const { hasFrontend, hasBackend, hasMobile, hasPayments, hasRealtime, designStyle, colorStyle, darkmode, detectedTesting, assetsSummary } = scope;
|
|
1790
1791
|
|
|
1791
1792
|
const agentList = [
|
|
1792
1793
|
'planner (planning)', 'designer (frontend)', 'nextjs-executor (frontend)', 'react-executor (frontend)',
|
|
@@ -1812,6 +1813,9 @@ ${userPrompt}
|
|
|
1812
1813
|
## Brainstorming Answers
|
|
1813
1814
|
${brainstormContent}
|
|
1814
1815
|
|
|
1816
|
+
## Shared Assets & References
|
|
1817
|
+
${assetsSummary || 'None'}
|
|
1818
|
+
|
|
1815
1819
|
## Scope
|
|
1816
1820
|
- Frontend: ${hasFrontend ? 'YES' : 'NO'} (Design style: ${designStyle}, Colors: ${colorStyle}, Dark Mode Strategy: ${darkmode})
|
|
1817
1821
|
- Backend: ${hasBackend ? 'YES' : 'NO'}
|
|
@@ -1864,7 +1868,9 @@ Return ONLY this JSON structure (no markdown, no explanation):
|
|
|
1864
1868
|
9. If design style is Glassmorphism/Neumorphism — include a designer task for design tokens in Sprint 1
|
|
1865
1869
|
10. If payments needed — include payment integration task in a sprint
|
|
1866
1870
|
11. If realtime needed — include WebSocket/SSE task in a sprint
|
|
1867
|
-
12. Under Frontend, STRICTLY respect the Dark Mode Strategy: if strategy is "light only", do NOT generate any dark mode setups, variables, toggles or dark styles. If strategy is "always dark", design the UI strictly for dark backgrounds
|
|
1871
|
+
12. Under Frontend, STRICTLY respect the Dark Mode Strategy: if strategy is "light only", do NOT generate any dark mode setups, variables, toggles or dark styles. If strategy is "always dark", design the UI strictly for dark backgrounds.
|
|
1872
|
+
13. If any shared assets or references are listed under "Shared Assets & References" (such as a backend folder, frontend theme components, config files, or stylesheets), you MUST generate sprint tasks that explicitly guide the agents to review, copy, integrate, or take implementation experience from these reference assets to build the new frontend/backend.
|
|
1873
|
+
14. When designing tasks for backend/frontend scaffolding, instruct the agents to use the LATEST stable dependencies, commands, and coding styles, starting by running the official command-line initializers (like npx create-next-app@latest or composer create-project laravel/laravel) directly in the target directories to build a clean architecture structure.`;
|
|
1868
1874
|
|
|
1869
1875
|
const llmOutput = await invokePlanningLLM(llmPrompt, config, cwd);
|
|
1870
1876
|
if (!llmOutput) return null;
|
|
@@ -2203,6 +2209,47 @@ function extractPromptFromStartMd(content) {
|
|
|
2203
2209
|
return lines.join(' ').slice(0, 500);
|
|
2204
2210
|
}
|
|
2205
2211
|
|
|
2212
|
+
function getAssetsSummary(cwd) {
|
|
2213
|
+
const assetsDir = path.join(cwd, LOCAL_DIR_NAME, 'assets');
|
|
2214
|
+
if (!fs.existsSync(assetsDir)) {
|
|
2215
|
+
return 'None';
|
|
2216
|
+
}
|
|
2217
|
+
|
|
2218
|
+
const summary = [];
|
|
2219
|
+
try {
|
|
2220
|
+
const files = fs.readdirSync(assetsDir);
|
|
2221
|
+
if (files.length === 0) {
|
|
2222
|
+
return 'None';
|
|
2223
|
+
}
|
|
2224
|
+
|
|
2225
|
+
for (const file of files) {
|
|
2226
|
+
const filePath = path.join(assetsDir, file);
|
|
2227
|
+
const stat = fs.statSync(filePath);
|
|
2228
|
+
|
|
2229
|
+
if (stat.isDirectory()) {
|
|
2230
|
+
const subfiles = fs.readdirSync(filePath);
|
|
2231
|
+
summary.push(`- Directory \`${file}/\` containing ${subfiles.length} items (e.g. ${subfiles.slice(0, 5).map(f => "\`" + f + "\`").join(', ')}). This contains shared reference code/implementation for this category.`);
|
|
2232
|
+
} else {
|
|
2233
|
+
const ext = path.extname(file).toLowerCase();
|
|
2234
|
+
if (['.txt', '.md', '.json', '.js', '.ts', '.css', '.html', '.php', '.py'].includes(ext)) {
|
|
2235
|
+
try {
|
|
2236
|
+
const content = fs.readFileSync(filePath, 'utf8').slice(0, 500);
|
|
2237
|
+
summary.push(`- File \`${file}\` (\${stat.size} bytes). Preview of contents:\n\`\`\`\n\${content}\n\`\`\``);
|
|
2238
|
+
} catch {
|
|
2239
|
+
summary.push(`- File \`${file}\` (\${stat.size} bytes).`);
|
|
2240
|
+
}
|
|
2241
|
+
} else {
|
|
2242
|
+
summary.push(`- File \`${file}\` (\${stat.size} bytes) - type: \`\${ext || 'binary'}\`.`);
|
|
2243
|
+
}
|
|
2244
|
+
}
|
|
2245
|
+
}
|
|
2246
|
+
} catch (err) {
|
|
2247
|
+
return `Error scanning assets: \${err.message}`;
|
|
2248
|
+
}
|
|
2249
|
+
|
|
2250
|
+
return summary.join('\n');
|
|
2251
|
+
}
|
|
2252
|
+
|
|
2206
2253
|
function resolveQuestionKey(content, keywords) {
|
|
2207
2254
|
const regex = /\*\*(Q\d+):\s*([^\n*]+)\*\*/gi;
|
|
2208
2255
|
let match;
|
|
@@ -176,12 +176,11 @@ function buildPrompt(agent, task, acceptanceCriteria, cwd) {
|
|
|
176
176
|
.join("\n\n");
|
|
177
177
|
parts.push(section(`Project Memory (${memoryFiles.length} files)`, memoryBlock));
|
|
178
178
|
}
|
|
179
|
-
// ── 4b. Assets &
|
|
180
|
-
if (cwd
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
`2. Use their exact content, names, and images in the user interface (instead of placeholders or generic text).`));
|
|
179
|
+
// ── 4b. Assets & Shared References Integration ────────────────────────────
|
|
180
|
+
if (cwd) {
|
|
181
|
+
const partsList = [];
|
|
182
|
+
partsList.push(`IMPORTANT: Always inspect the \`.imhcode/assets/\` directory at the project root for any shared reference code, designs, or assets.`, `- **Logo & Branding Assets**: Look for logos (e.g. \`logo.svg\`, images) or styling files. You MUST copy/integrate them into the frontend (e.g. \`frontend/public/\` or \`frontend/src/assets/\`) and use them directly.`, `- **Shared Frontend/Theme References**: If a \`.imhcode/assets/frontend/\` or \`theme/\` folder exists, review the components, styling sheets, layouts, and pages inside it. Take exact design/coding patterns, or directly reuse the components in your new frontend implementation to match the requested look and feel.`, `- **Shared Backend References**: If a \`.imhcode/assets/backend/\` folder exists, review the database schemas, API routes, models, and business logic. Replicate the architecture, reuse logic patterns, and align your new backend code structure with this reference implementation.`, `- **Always Use Latest Stable Stacks**: When setting up the project structure, compile and install the LATEST stable versions of libraries/frameworks. If initializing the codebase, run official command-line initializers (e.g. \`npx create-next-app@latest ./ --ts --tailwind --eslint --app --src-dir --import-alias "@/*"\` or \`composer create-project laravel/laravel .\`) directly within the target directory (\`frontend/\` or \`backend/\`) to bootstrap proper settings, then organize into a clean architecture. Do NOT hardcode deprecated versions or patterns.`);
|
|
183
|
+
parts.push(section("Assets & Shared References Integration Guidelines", partsList.join("\n")));
|
|
185
184
|
}
|
|
186
185
|
// ── 5. Task ───────────────────────────────────────────────────────────────
|
|
187
186
|
parts.push(section("Task", task));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/orchestrator/builder.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/orchestrator/builder.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imhcode",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "IMH-Code — Imam Hussain Coding Harness Platform. A fast-first multi-agent AI coding framework with intelligent model routing. 19 generic role-based agents (planner, nextjs-executor, laravel-executor, etc.), configurable testing strategy, and 7 token-saving optimizations for rapid MVP development.",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"bin": {
|
|
@@ -169,17 +169,17 @@ export function buildPrompt(
|
|
|
169
169
|
parts.push(section(`Project Memory (${memoryFiles.length} files)`, memoryBlock));
|
|
170
170
|
}
|
|
171
171
|
|
|
172
|
-
// ── 4b. Assets &
|
|
173
|
-
if (cwd
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
)
|
|
172
|
+
// ── 4b. Assets & Shared References Integration ────────────────────────────
|
|
173
|
+
if (cwd) {
|
|
174
|
+
const partsList: string[] = [];
|
|
175
|
+
partsList.push(
|
|
176
|
+
`IMPORTANT: Always inspect the \`.imhcode/assets/\` directory at the project root for any shared reference code, designs, or assets.`,
|
|
177
|
+
`- **Logo & Branding Assets**: Look for logos (e.g. \`logo.svg\`, images) or styling files. You MUST copy/integrate them into the frontend (e.g. \`frontend/public/\` or \`frontend/src/assets/\`) and use them directly.`,
|
|
178
|
+
`- **Shared Frontend/Theme References**: If a \`.imhcode/assets/frontend/\` or \`theme/\` folder exists, review the components, styling sheets, layouts, and pages inside it. Take exact design/coding patterns, or directly reuse the components in your new frontend implementation to match the requested look and feel.`,
|
|
179
|
+
`- **Shared Backend References**: If a \`.imhcode/assets/backend/\` folder exists, review the database schemas, API routes, models, and business logic. Replicate the architecture, reuse logic patterns, and align your new backend code structure with this reference implementation.`,
|
|
180
|
+
`- **Always Use Latest Stable Stacks**: When setting up the project structure, compile and install the LATEST stable versions of libraries/frameworks. If initializing the codebase, run official command-line initializers (e.g. \`npx create-next-app@latest ./ --ts --tailwind --eslint --app --src-dir --import-alias "@/*"\` or \`composer create-project laravel/laravel .\`) directly within the target directory (\`frontend/\` or \`backend/\`) to bootstrap proper settings, then organize into a clean architecture. Do NOT hardcode deprecated versions or patterns.`
|
|
182
181
|
);
|
|
182
|
+
parts.push(section("Assets & Shared References Integration Guidelines", partsList.join("\n")));
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
// ── 5. Task ───────────────────────────────────────────────────────────────
|