codeloop 0.1.3 → 0.1.4
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/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +109 -10
- package/dist/commands/init.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/templates/claude-agents.d.ts +3 -3
- package/dist/templates/claude-agents.d.ts.map +1 -1
- package/dist/templates/claude-agents.js +178 -20
- package/dist/templates/claude-agents.js.map +1 -1
- package/dist/templates/cursor-rules.d.ts +5 -5
- package/dist/templates/cursor-rules.d.ts.map +1 -1
- package/dist/templates/cursor-rules.js +389 -38
- package/dist/templates/cursor-rules.js.map +1 -1
- package/dist/utils/file-writer.d.ts +9 -0
- package/dist/utils/file-writer.d.ts.map +1 -1
- package/dist/utils/file-writer.js +30 -1
- package/dist/utils/file-writer.js.map +1 -1
- package/package.json +1 -1
package/dist/commands/init.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAoBA,wBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAqJ/E"}
|
package/dist/commands/init.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { existsSync, readFileSync, writeFileSync } from "fs";
|
|
2
2
|
import { join } from "path";
|
|
3
|
+
import { homedir } from "os";
|
|
3
4
|
import { input, select } from "@inquirer/prompts";
|
|
4
5
|
import chalk from "chalk";
|
|
5
|
-
import { findApiKey, promptSaveLocation } from "../utils/key-storage.js";
|
|
6
|
-
import { writeFileSafe, ensureDir } from "../utils/file-writer.js";
|
|
6
|
+
import { findApiKey, saveToShellProfile, promptSaveLocation } from "../utils/key-storage.js";
|
|
7
|
+
import { writeFileSafe, ensureDir, mergeMcpConfig } from "../utils/file-writer.js";
|
|
7
8
|
import { detectProject } from "../utils/detect-project.js";
|
|
8
9
|
import { signup, login, createKey, ApiError } from "../utils/api-client.js";
|
|
9
10
|
import { printBox, printSuccess, printWarning, printInfo, printApiKey, printError } from "../utils/ui.js";
|
|
@@ -16,7 +17,10 @@ import { createDefaultConfig } from "../templates/config.js";
|
|
|
16
17
|
import { SPEC_TEMPLATE, ACCEPTANCE_TEMPLATE, UX_CHECKLIST_TEMPLATE } from "../templates/specs.js";
|
|
17
18
|
import { PROMPT_LOOP, PROMPT_VERIFY, PROMPT_REVIEW } from "../templates/claude-prompts.js";
|
|
18
19
|
import { password as passwordPrompt } from "@inquirer/prompts";
|
|
19
|
-
export async function initCommand() {
|
|
20
|
+
export async function initCommand(options) {
|
|
21
|
+
if (options?.global) {
|
|
22
|
+
return initGlobal();
|
|
23
|
+
}
|
|
20
24
|
const cwd = process.cwd();
|
|
21
25
|
printBox("CodeLoop — Initialize Project");
|
|
22
26
|
// 1. Check for existing API key
|
|
@@ -106,14 +110,102 @@ export async function initCommand() {
|
|
|
106
110
|
else {
|
|
107
111
|
printWarning("No API key set — run: npx codeloop login or npx codeloop signup");
|
|
108
112
|
}
|
|
113
|
+
if (autoAuthorize) {
|
|
114
|
+
printSuccess("Auto-authorization configured for Claude Code");
|
|
115
|
+
console.log("");
|
|
116
|
+
console.log(chalk.yellow(" ╔═══════════════════════════════════════════════════════════╗"));
|
|
117
|
+
console.log(chalk.yellow(" ║") + chalk.bold(" IMPORTANT: Enable Cursor Auto-Run (one-time setup) ") + chalk.yellow(" ║"));
|
|
118
|
+
console.log(chalk.yellow(" ║ ║"));
|
|
119
|
+
console.log(chalk.yellow(" ║") + " To stop 'Skip / Run' prompts on every terminal command: " + chalk.yellow(" ║"));
|
|
120
|
+
console.log(chalk.yellow(" ║ ║"));
|
|
121
|
+
console.log(chalk.yellow(" ║") + " 1. Open Cursor Settings: " + chalk.cyan("Cmd+Shift+J") + " (or Cmd+,) " + chalk.yellow(" ║"));
|
|
122
|
+
console.log(chalk.yellow(" ║") + " 2. Go to: " + chalk.cyan("Features > Terminal") + " " + chalk.yellow(" ║"));
|
|
123
|
+
console.log(chalk.yellow(" ║") + " 3. Find: " + chalk.cyan('"Auto-Run Mode"') + " " + chalk.yellow(" ║"));
|
|
124
|
+
console.log(chalk.yellow(" ║") + ' 4. Set to: ' + chalk.green('"Yolo"') + " (runs everything) " + chalk.yellow(" ║"));
|
|
125
|
+
console.log(chalk.yellow(" ║") + ' or: ' + chalk.green('"Auto-Run with Allowlist"') + " (safer) " + chalk.yellow(" ║"));
|
|
126
|
+
console.log(chalk.yellow(" ║ ║"));
|
|
127
|
+
console.log(chalk.yellow(" ║") + " This is a " + chalk.bold("one-time") + " Cursor IDE setting. " + chalk.yellow(" ║"));
|
|
128
|
+
console.log(chalk.yellow(" ╚═══════════════════════════════════════════════════════════╝"));
|
|
129
|
+
console.log("");
|
|
130
|
+
}
|
|
109
131
|
printInfo("Read the docs: https://codeloop.tech/docs/setup");
|
|
110
132
|
printInfo("Run your AI agent and CodeLoop will handle verification automatically\n");
|
|
111
133
|
}
|
|
134
|
+
async function initGlobal() {
|
|
135
|
+
printBox("CodeLoop — Global Install");
|
|
136
|
+
printInfo("This installs the CodeLoop MCP server globally so it's available in every workspace.\n");
|
|
137
|
+
const home = homedir();
|
|
138
|
+
const cursorMcpConfig = JSON.parse(JSON.stringify(CURSOR_MCP_CONFIG));
|
|
139
|
+
const claudeMcpConfig = JSON.parse(JSON.stringify(CLAUDE_MCP_CONFIG));
|
|
140
|
+
let apiKey = findApiKey(process.cwd());
|
|
141
|
+
if (!apiKey) {
|
|
142
|
+
printWarning("No API key found\n");
|
|
143
|
+
const action = await select({
|
|
144
|
+
message: "How would you like to get an API key?",
|
|
145
|
+
choices: [
|
|
146
|
+
{ name: "Sign up for a new account", value: "signup" },
|
|
147
|
+
{ name: "Log in to existing account", value: "login" },
|
|
148
|
+
{ name: "Enter API key manually", value: "manual" },
|
|
149
|
+
{ name: "Skip (configure later)", value: "skip" },
|
|
150
|
+
],
|
|
151
|
+
});
|
|
152
|
+
if (action === "signup") {
|
|
153
|
+
apiKey = await handleInlineSignup();
|
|
154
|
+
}
|
|
155
|
+
else if (action === "login") {
|
|
156
|
+
apiKey = await handleInlineLogin();
|
|
157
|
+
}
|
|
158
|
+
else if (action === "manual") {
|
|
159
|
+
const key = await input({
|
|
160
|
+
message: "Paste your API key:",
|
|
161
|
+
validate: (v) => v.startsWith("cl_") ? true : 'API key should start with "cl_"',
|
|
162
|
+
});
|
|
163
|
+
apiKey = key.trim();
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
printSuccess(`Found API key: ${apiKey.slice(0, 12)}...`);
|
|
168
|
+
}
|
|
169
|
+
if (apiKey) {
|
|
170
|
+
await saveToShellProfile(apiKey);
|
|
171
|
+
}
|
|
172
|
+
const ide = await select({
|
|
173
|
+
message: "Which IDEs do you use?",
|
|
174
|
+
choices: [
|
|
175
|
+
{ name: "Both Cursor and Claude Code", value: "both" },
|
|
176
|
+
{ name: "Cursor only", value: "cursor" },
|
|
177
|
+
{ name: "Claude Code only", value: "claude" },
|
|
178
|
+
],
|
|
179
|
+
});
|
|
180
|
+
const installed = [];
|
|
181
|
+
if (ide === "cursor" || ide === "both") {
|
|
182
|
+
const cursorGlobalPath = join(home, ".cursor", "mcp.json");
|
|
183
|
+
mergeMcpConfig(cursorGlobalPath, cursorMcpConfig.mcpServers);
|
|
184
|
+
installed.push(cursorGlobalPath);
|
|
185
|
+
printSuccess(`~/.cursor/mcp.json (global — all Cursor workspaces)`);
|
|
186
|
+
}
|
|
187
|
+
if (ide === "claude" || ide === "both") {
|
|
188
|
+
const claudeGlobalPath = join(home, ".claude.json");
|
|
189
|
+
mergeMcpConfig(claudeGlobalPath, claudeMcpConfig.mcpServers);
|
|
190
|
+
installed.push(claudeGlobalPath);
|
|
191
|
+
printSuccess(`~/.claude.json (global — all Claude Code workspaces)`);
|
|
192
|
+
}
|
|
193
|
+
console.log("\n" + chalk.bold(" CodeLoop installed globally!\n"));
|
|
194
|
+
printInfo("CodeLoop MCP server is now available in every workspace.");
|
|
195
|
+
printInfo("Projects will be auto-initialized when the agent first runs.");
|
|
196
|
+
printInfo("For project-specific setup, run: npx codeloop init (without --global)\n");
|
|
197
|
+
if (apiKey) {
|
|
198
|
+
printSuccess("API key configured");
|
|
199
|
+
}
|
|
200
|
+
else {
|
|
201
|
+
printWarning("No API key set — run: npx codeloop login or npx codeloop signup");
|
|
202
|
+
}
|
|
203
|
+
}
|
|
112
204
|
function setupCursorIntegration(cwd, _apiKey, projectType, autoAuthorize) {
|
|
113
205
|
const mcpPath = join(cwd, ".cursor", "mcp.json");
|
|
114
206
|
const mcpConfig = JSON.parse(JSON.stringify(CURSOR_MCP_CONFIG));
|
|
115
|
-
|
|
116
|
-
printSuccess(".cursor/mcp.json");
|
|
207
|
+
mergeMcpConfig(mcpPath, mcpConfig.mcpServers);
|
|
208
|
+
printSuccess(".cursor/mcp.json (merged)");
|
|
117
209
|
const rulesDir = join(cwd, ".cursor", "rules");
|
|
118
210
|
ensureDir(rulesDir);
|
|
119
211
|
let ruleCount = 3;
|
|
@@ -152,13 +244,20 @@ function setupCursorIntegration(cwd, _apiKey, projectType, autoAuthorize) {
|
|
|
152
244
|
function setupClaudeIntegration(cwd, _apiKey, autoAuthorize) {
|
|
153
245
|
const settingsPath = join(cwd, ".claude", "settings.local.json");
|
|
154
246
|
const claudeConfig = JSON.parse(JSON.stringify(CLAUDE_MCP_CONFIG));
|
|
247
|
+
mergeMcpConfig(settingsPath, claudeConfig.mcpServers);
|
|
155
248
|
if (autoAuthorize) {
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
249
|
+
let existing = {};
|
|
250
|
+
try {
|
|
251
|
+
existing = JSON.parse(readFileSync(settingsPath, "utf-8"));
|
|
252
|
+
}
|
|
253
|
+
catch { /* use empty */ }
|
|
254
|
+
const existingPerms = existing.permissions ?? {};
|
|
255
|
+
const existingAllow = (existingPerms.allow ?? []);
|
|
256
|
+
const mergedAllow = [...new Set([...existingAllow, ...CLAUDE_PERMISSIONS_ALLOW])];
|
|
257
|
+
existing.permissions = { ...existingPerms, allow: mergedAllow };
|
|
258
|
+
writeFileSync(settingsPath, JSON.stringify(existing, null, 2) + "\n", "utf-8");
|
|
159
259
|
}
|
|
160
|
-
|
|
161
|
-
printSuccess(".claude/settings.local.json" + (autoAuthorize ? " (with auto-authorize)" : ""));
|
|
260
|
+
printSuccess(".claude/settings.local.json (merged)" + (autoAuthorize ? " (with auto-authorize)" : ""));
|
|
162
261
|
const agentsDir = join(cwd, ".claude", "agents");
|
|
163
262
|
ensureDir(agentsDir);
|
|
164
263
|
writeFileSafe(join(agentsDir, "codeloop-loop.md"), CODELOOP_LOOP_MD);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -21,7 +21,8 @@ program
|
|
|
21
21
|
program
|
|
22
22
|
.command("init")
|
|
23
23
|
.description("Initialize CodeLoop in the current project (creates config, MCP registration, rules)")
|
|
24
|
-
.
|
|
24
|
+
.option("-g, --global", "Install CodeLoop MCP server globally for all workspaces (Cursor + Claude Code)")
|
|
25
|
+
.action((options) => initCommand(options));
|
|
25
26
|
program
|
|
26
27
|
.command("status")
|
|
27
28
|
.description("Check your API key status, plan, and usage")
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CACV,sFAAsF,CACvF;KACA,MAAM,CAAC,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,kDAAkD,CAAC;KAC/D,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,yDAAyD,CAAC;KACtE,MAAM,CAAC,YAAY,CAAC,CAAC;AAExB,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CACV,sFAAsF,CACvF;KACA,MAAM,CAAC,cAAc,EAAE,gFAAgF,CAAC;KACxG,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC;AAE7C,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CACV,4CAA4C,CAC7C;KACA,MAAM,CAAC,aAAa,CAAC,CAAC;AAEzB,OAAO;KACJ,OAAO,CAAC,WAAW,CAAC;KACpB,KAAK,CAAC,QAAQ,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAE5B,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export declare const CODELOOP_LOOP_MD = "You are a QA loop runner. Use CodeLoop MCP tools to verify code quality.\n\
|
|
2
|
-
export declare const CODELOOP_QA_MD = "You are a QA verification specialist. Run CodeLoop visual review
|
|
1
|
+
export declare const CODELOOP_LOOP_MD = "You are a QA loop runner. Use CodeLoop MCP tools to verify code quality.\n\nComplete lifecycle for every development session:\n1. Call codeloop_verify to run all checks\n2. Call codeloop_diagnose to classify failures\n3. Fix only confirmed issues\n4. Repeat verification until all checks pass\n5. For UI projects: capture screenshots (codeloop_capture_screenshot for every page)\n then run codeloop_visual_review to analyze them\n6. For UI projects: codeloop_start_recording \u2192 interact with EVERY element \u2192 codeloop_stop_recording\n \u2192 codeloop_interaction_replay. The video MUST show active interaction, never a static page.\n7. Call codeloop_gate_check to evaluate completion (require confidence >= 85%)\n8. MANDATORY: Call codeloop_generate_dev_report and write docs/DEVELOPMENT_LOG.md\n9. Stop when all gates pass or escalation is needed\n\nNever mark a task complete without evidence from CodeLoop.\nNever skip the development log \u2014 it is the final deliverable proving CodeLoop powered the process.\n\nWhen codeloop_gate_check returns \"ready_for_review\" with confidence >= 85%:\n- Generate or update the project README.md with: project description, features,\n setup instructions, how to run, how to test, architecture overview, deployment\n instructions, and a CodeLoop verification summary including confidence score,\n gates passed, and test results.\n- Include a \"Verified by CodeLoop\" section in the README.\n";
|
|
2
|
+
export declare const CODELOOP_QA_MD = "You are a QA verification specialist. Run CodeLoop visual review,\nvideo capture, and design comparison. Report structured issues with severity,\nevidence, and fix hints.\n\nFor UI projects, you MUST always perform ALL three:\n1. Screenshot review (codeloop_capture_screenshot for every page + codeloop_visual_review) \u2014 static per-page correctness\n2. Video capture review \u2014 codeloop_start_recording \u2192 actively interact with EVERY element on every page\n \u2192 codeloop_stop_recording \u2192 codeloop_interaction_replay \u2014 dynamic flow, transitions, animations\n3. Development log generation \u2014 codeloop_generate_dev_report \u2192 docs/DEVELOPMENT_LOG.md\n\nThe video MUST show the app changing state through active interaction (clicks, typing, scrolling,\nhover, form submission). A recording of a static page is NOT valid evidence.\n\nWorks on macOS (osascript/ffmpeg avfoundation), Windows (PowerShell/ffmpeg gdigrab),\nand Linux (xdotool/ffmpeg x11grab). For web apps use Playwright --headed during recording.\nSupports desktop apps, web apps, iOS Simulator, and Android Emulator.\n";
|
|
3
3
|
export declare const CODELOOP_ADVISOR_MD = "You are an infrastructure and tooling advisor. Use CodeLoop\nrecommendation tools to suggest the best tools based on the\nproject stack, budget, and constraints. Always explain your\nreasoning and include tradeoffs.\n";
|
|
4
|
-
export declare const CLAUDE_MD = "# CodeLoop Integration\n\nCodeLoop provides automated verification for AI-generated code via MCP tools. Follow these rules to ensure code quality.\n\n## After implementing or modifying any feature:\n1. Call codeloop_verify to run all checks on the current project\n2. Read the structured output carefully \u2014 trust deterministic results first, visual diffs second, model opinions third\n3. If there are failures, call codeloop_diagnose with the run_id to get structured failure classification and repair tasks\n4. Fix ONLY the confirmed issues listed in the repair tasks \u2014 do not guess or fix unrelated code\n5. After fixing, call codeloop_verify again to confirm the fixes worked\n6. Repeat until all failures are resolved or a blocker is identified\n\n## Before marking any task or feature as complete:\n1. Call codeloop_gate_check with the run_id, spec path, and acceptance path\n2. If the result says \"continue_fixing\", keep fixing and re-verifying\n3. If the result says \"escalate\", stop and report the blockers to the developer\n4. Only declare the task complete when gate_check returns \"ready_for_review\" with confidence >= 85%\n\n## When you have attempted to fix an issue 2 or more times and tests still fail:\n- You MUST call codeloop_diagnose before making another fix attempt\n- Read the repair tasks carefully \u2014 the structured analysis is more reliable than guessing from raw output\n\n## For multi-section projects:\n- Call codeloop_section_status to see current progress and which section to work on next\n- If integration_due is true, run codeloop_verify with scope \"full\" first and fix any regressions\n- After ALL sections pass, run codeloop_release_readiness for a final quality assessment\n\n## When choosing tools or infrastructure:\n- Call codeloop_recommend_tool with the relevant category and detected stack\n- Present results with reasoning, tradeoffs, and pricing\n- Always prefer CLI-based setup over web dashboard (e.g., `vercel login`, `heroku login`, `firebase login`)\n- Guide the user through CLI installation and authentication when needed\n- Verify CLI auth with a status command after login (e.g., `vercel whoami`, `heroku auth:whoami`)\n\n## After codeloop_gate_check returns \"ready_for_review\" with confidence >= 85%:\n- Generate or update the project README.md with:\n - Project description and key features\n - Prerequisites and setup instructions\n - How to run locally\n - How to run tests\n - Architecture overview (key directories and files)\n - CodeLoop verification: \"Verified by CodeLoop (run_id: {id}). Confidence: {score}%. Gates passed: {list}. Tests: {passed}/{total} passed.\"\n - Deployment instructions (if applicable)\n - Known issues (if any remain from codeloop_diagnose)\n\n## Multi-page visual review:\nApps have multiple pages \u2014 a single screenshot is never sufficient.\n1. Call codeloop_discover_screens to find all routes/pages from source code\n2. Build and run the app\n3. For EACH page: navigate to it, call codeloop_capture_screenshot(screen_name: \"<name>\")\n4. Explore navigation elements (buttons, tabs, menus, links) to discover sub-pages\n5. Capture modals, dialogs, error states, and empty states\n6. After all pages captured, call codeloop_visual_review to analyze everything\n7. Cross-reference against discover_screens results for coverage\n\n## Terminal authorization:\n- Common development commands (flutter, npm, git, brew, etc.) are pre-authorized\n- If a command is blocked, check the allow-list in .claude/settings.local.json\n- For service provider CLIs: install via the recommended package manager, then authenticate\n\n## Never:\n- Mark a task complete without evidence from codeloop_gate_check\n- Ignore codeloop_verify results\n- Modify files outside the allowed_file_scope from repair tasks\n- Continue fixing after 8 failed repair attempts \u2014 escalate instead\n";
|
|
4
|
+
export declare const CLAUDE_MD = "# CodeLoop Integration\n\nCodeLoop provides automated verification for AI-generated code via MCP tools. Follow these rules to ensure code quality.\n\n## After implementing or modifying any feature:\n1. Call codeloop_verify to run all checks on the current project\n2. Read the structured output carefully \u2014 trust deterministic results first, visual diffs second, model opinions third\n3. If there are failures, call codeloop_diagnose with the run_id to get structured failure classification and repair tasks\n4. Fix ONLY the confirmed issues listed in the repair tasks \u2014 do not guess or fix unrelated code\n5. After fixing, call codeloop_verify again to confirm the fixes worked\n6. Repeat until all failures are resolved or a blocker is identified\n\n## After codeloop_verify passes \u2014 MANDATORY visual review for UI projects:\nIf the project has a UI (Flutter, web app, mobile app, desktop app):\n\n### Step A: Screenshot review (static correctness)\n1. Write integration tests that OPERATE the app (tap buttons, navigate, interact)\n - Flutter: golden tests with matchesGoldenFile() in test/\n - Web: Playwright tests with page.screenshot()\n - Mobile: Maestro flows (auto-capture screenshots)\n2. Run codeloop_verify \u2014 it runs integration tests and collects screenshots\n3. Call codeloop_visual_review to analyze ALL captured screenshots\n4. Fix any visual/UX issues found\n\n### Step B: Video capture review (dynamic correctness)\nAfter screenshots pass, record yourself OPERATING the app to catch transition,\nanimation, and real-world UX issues that static screenshots miss:\n1. Identify 2-3 core user journeys (e.g., onboarding, main workflow, settings)\n2. Build and launch the app (if not already running)\n3. Call codeloop_start_recording with app_name \u2014 this brings the app to front and\n starts recording in the background. The app window is un-minimized automatically.\n4. While recording is active, you MUST interact with the app. Do NOT just let it sit idle.\n The video must show real interactions, not a still image.\n - First: read the source code to identify what interactions the app supports.\n A drawing app needs click-drag sequences. A form app needs typing and submitting.\n A navigation app needs clicking links and tabs. Match interactions to the app.\n - Desktop (Flutter/native): Use OS-level automation. Study golden screenshots for element positions.\n * macOS: osascript for clicks (`click at {x,y}`), typing (`keystroke`), keys (`key code 36`=Return, 53=Esc)\n * Windows: PowerShell with user32.dll (SetCursorPos+mouse_event for clicks, keybd_event for keys, SendKeys for typing)\n * Linux: xdotool (`mousemove X Y click 1`, `type \"text\"`, `key Return`)\n For drawing: click at start \u2192 wait \u2192 click at end (or series of points).\n Use codeloop_capture_screenshot between interactions to verify each worked.\n - Web: run `npx playwright test --headed` \u2014 handles clicks, typing, drag, scroll, hover.\n For canvas/drawing: use mouse.down() \u2192 mouse.move(x,y) \u2192 mouse.up().\n Browser console logs captured automatically during recording.\n - Android (emulator): use ADB commands or Maestro flows.\n `adb shell input tap X Y` for taps, `adb shell input text \"text\"` for typing,\n `adb shell input keyevent KEYCODE_ENTER` for keys, `adb shell input swipe X1 Y1 X2 Y2 300` for scrolling.\n Use target_type=\"android_emulator\" with codeloop_start_recording for device-level capture.\n App logs captured via `adb logcat` automatically.\n - iOS (simulator \u2014 macOS only): use Maestro (`maestro test flows/`) or simctl.\n `xcrun simctl launch booted com.example.app` to launch.\n Use target_type=\"ios_simulator\" with codeloop_start_recording for simulator-level capture.\n App logs captured via `simctl log stream` automatically.\n - Wait 1-2 seconds between interactions so video frames capture each state change\n5. Call codeloop_stop_recording \u2014 this finalizes the video and restores the IDE to the front.\n6. Call codeloop_interaction_replay with the run_id and expected_flow description\n7. Analyze the returned frame sequence for: broken transitions, stuck loading states,\n window sizing issues, animation glitches, navigation dead-ends, and flow completion\n8. Fix any dynamic UX issues found\n9. ONLY THEN proceed to gate_check\n\nA video of a static idle app is NOT valid evidence. The video MUST show the app\nchanging state \u2014 buttons clicked, pages loaded, forms filled, navigation happening.\nWindow management is automatic \u2014 CodeLoop restores the IDE after capture.\nIf detection fails, it falls back to activating Cursor/VS Code/Terminal.\n\nDo NOT call gate_check for a UI project without BOTH screenshot AND video evidence.\n\n## Before marking any task or feature as complete:\n1. Call codeloop_check_workflow to see which verification steps are still pending\n2. Complete ALL pending steps listed by codeloop_check_workflow\n3. Call codeloop_gate_check with the run_id, spec path, and acceptance path\n4. If the result says \"continue_fixing\", keep fixing and re-verifying\n5. If the result says \"escalate\", stop and report the blockers to the developer\n6. Only declare the task complete when gate_check returns \"ready_for_review\" with confidence >= 85%\n7. Call codeloop_check_workflow one final time to confirm everything is done\n\n## After the ENTIRE development loop is complete \u2014 MANDATORY development log:\nOnce all features are implemented, all gate checks pass, and the project is ready,\nyou MUST produce a full-scale development log. This is NOT optional.\n\n1. Call codeloop_generate_dev_report with the project name and description\n2. Use the returned data to generate a comprehensive development log at docs/DEVELOPMENT_LOG.md\n3. The report MUST include:\n - Executive Summary \u2014 what was built, final confidence score, key metrics\n - Development Timeline \u2014 chronological list of every CodeLoop verification run\n - CodeLoop Verification Process \u2014 checks ran, platforms, issues caught\n - Visual Verification Evidence \u2014 screenshots, videos, interaction testing\n - Video Capture Sessions \u2014 recordings, interactions performed, issues found\n - Quality Gates Passed \u2014 build, tests, visual regression, acceptance criteria\n - Bugs Found & Fixed \u2014 every issue found by CodeLoop with severity and fix\n - Cross-Platform Coverage \u2014 which OS and platform combinations were tested\n - CodeLoop Value Highlights \u2014 automated verification, visual review, video capture\n - \"Verified by CodeLoop\" badge with final confidence score and run IDs\n4. Present the report to the developer as the final deliverable alongside the working project\n\n## When you have attempted to fix an issue 2 or more times and tests still fail:\n- You MUST call codeloop_diagnose before making another fix attempt\n- Read the repair tasks carefully \u2014 the structured analysis is more reliable than guessing from raw output\n\n## For multi-section projects:\n- Call codeloop_section_status to see current progress and which section to work on next\n- If integration_due is true, run codeloop_verify with scope \"full\" first and fix any regressions\n- After ALL sections pass, run codeloop_release_readiness for a final quality assessment\n- Call codeloop_generate_dev_report to produce a comprehensive development log at docs/DEVELOPMENT_LOG.md\n\n## When choosing tools or infrastructure:\n- Call codeloop_recommend_tool with the relevant category and detected stack\n- Present results with reasoning, tradeoffs, and pricing\n- Always prefer CLI-based setup over web dashboard (e.g., `vercel login`, `heroku login`, `firebase login`)\n- Guide the user through CLI installation and authentication when needed\n- Verify CLI auth with a status command after login (e.g., `vercel whoami`, `heroku auth:whoami`)\n\n## After codeloop_gate_check returns \"ready_for_review\" with confidence >= 85%:\n- Generate or update the project README.md with:\n - Project description and key features\n - Prerequisites and setup instructions\n - How to run locally\n - How to run tests\n - Architecture overview (key directories and files)\n - CodeLoop verification: \"Verified by CodeLoop (run_id: {id}). Confidence: {score}%. Gates passed: {list}. Tests: {passed}/{total} passed.\"\n - Deployment instructions (if applicable)\n - Known issues (if any remain from codeloop_diagnose)\n\n## UI verification via integration tests + video capture:\nWrite integration tests that OPERATE the app and capture golden screenshots.\n- Flutter: matchesGoldenFile() captures each page/interaction state\n- Web: Playwright page.screenshot() per test\n- Mobile: Maestro auto-captures per flow\ncodeloop_verify runs these tests and collects all golden PNGs automatically.\ncodeloop_visual_review returns them as images for analysis.\n\nAfter screenshot review, actively operate the app while recording:\n- Call codeloop_start_recording with app_name and optional target_type (brings app to front, starts recording + log capture)\n- ACTIVELY interact \u2014 match interaction types to the app's features:\n clicks, typing, drawing/dragging, scrolling, right-click, key presses, etc.\n Read source code to determine what interactions the app needs.\n- Desktop macOS: osascript click/keystroke/drag\n- Desktop Windows: PowerShell user32.dll SetCursorPos/mouse_event/keybd_event\n- Desktop Linux: xdotool mousemove/click/type/key\n- Web: Playwright --headed\n- Android: adb shell input tap/text/keyevent/swipe (target_type=\"android_emulator\")\n- iOS: Maestro or simctl (target_type=\"ios_simulator\", macOS only)\n- Wait 1-2s between interactions; use codeloop_capture_screenshot to verify each worked\n- A static video is NOT valid \u2014 the video must show state changes\n- Call codeloop_stop_recording (finalizes video + logs, restores IDE to front)\n- Call codeloop_interaction_replay to extract frames, app logs, and analyze the flow\n The AI correlates visual frames with runtime log errors for comprehensive analysis\n\n## Terminal authorization:\n- Common development commands (flutter, npm, git, brew, etc.) are pre-authorized via permissions.allow\n- If a command is blocked, check the allow-list in .claude/settings.local.json\n- For Cursor users: before running your first command, tell the user:\n \"To avoid clicking 'Run' on every command, enable Cursor Auto-Run:\n Cmd+Shift+J \u2192 Features \u2192 Terminal \u2192 Auto-Run Mode \u2192 Yolo\"\n- For service provider CLIs: install via the recommended package manager, then authenticate\n\n## Never:\n- Mark a task complete without evidence from codeloop_gate_check\n- Skip visual review (screenshots + video) for a project that has a user interface\n- Skip video capture \u2014 screenshots alone miss transitions, animations, and flow bugs\n- Skip the development log \u2014 codeloop_generate_dev_report MUST be called when the loop completes\n- Let a recording run idle \u2014 the video MUST show active interaction with every UI element\n- Ignore codeloop_verify results\n- Modify files outside the allowed_file_scope from repair tasks\n- Continue fixing after 8 failed repair attempts \u2014 escalate instead\n\n## Development lifecycle \u2014 complete workflow:\nEvery CodeLoop-powered development session follows this mandatory lifecycle:\n1. Implement \u2192 write/modify code\n2. Verify \u2192 codeloop_verify (tests, lint, build)\n3. Diagnose \u2192 codeloop_diagnose (if failures)\n4. Fix \u2192 repair confirmed issues only\n5. Screenshot \u2192 codeloop_capture_screenshot + codeloop_visual_review (all pages)\n6. Video \u2192 codeloop_start_recording \u2192 interact with ALL elements \u2192 codeloop_stop_recording\n7. Replay \u2192 codeloop_interaction_replay (analyze frames + logs)\n8. Gate \u2192 codeloop_gate_check (confidence >= 85%)\n9. Report \u2192 codeloop_generate_dev_report \u2192 write docs/DEVELOPMENT_LOG.md\n10. Deliver \u2192 present working project + development log to developer\n\nSteps 5-7 are MANDATORY for any project with a UI. Step 9 is MANDATORY for every project.\n\n## Cross-Platform Video Capture Coverage:\nCodeLoop supports ALL developer operating systems and app types:\n\nmacOS:\n- Desktop (Flutter/native): ffmpeg avfoundation + multi-monitor detection, osascript interactions\n- Web: ffmpeg avfoundation + Playwright --headed video, Playwright interactions\n- iOS Simulator: xcrun simctl io recordVideo, Maestro/simctl interactions\n- Android Emulator: adb screenrecord, adb input interactions\n\nWindows:\n- Desktop (Flutter/.NET): ffmpeg gdigrab + window bounds, PowerShell user32.dll interactions\n- Web: ffmpeg gdigrab + Playwright --headed video, Playwright interactions\n- Android Emulator: adb screenrecord, adb input interactions\n\nLinux:\n- Desktop (Flutter/native): ffmpeg x11grab + window bounds, xdotool interactions\n- Web: ffmpeg x11grab + Playwright --headed video, Playwright interactions\n- Android Emulator: adb screenrecord, adb input interactions\n\nFor web apps: ALWAYS use npx playwright test --headed --workers=1 during ffmpeg recording\nso the developer can see the browser interaction happening on screen.\n";
|
|
5
5
|
//# sourceMappingURL=claude-agents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agents.d.ts","sourceRoot":"","sources":["../../src/templates/claude-agents.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"claude-agents.d.ts","sourceRoot":"","sources":["../../src/templates/claude-agents.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,86CAwB5B,CAAC;AAEF,eAAO,MAAM,cAAc,6lCAgB1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,8NAI/B,CAAC;AAEF,eAAO,MAAM,SAAS,u/ZA4MrB,CAAC"}
|
|
@@ -1,14 +1,20 @@
|
|
|
1
1
|
export const CODELOOP_LOOP_MD = `You are a QA loop runner. Use CodeLoop MCP tools to verify code quality.
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Complete lifecycle for every development session:
|
|
4
4
|
1. Call codeloop_verify to run all checks
|
|
5
5
|
2. Call codeloop_diagnose to classify failures
|
|
6
6
|
3. Fix only confirmed issues
|
|
7
|
-
4. Repeat verification
|
|
8
|
-
5.
|
|
9
|
-
|
|
7
|
+
4. Repeat verification until all checks pass
|
|
8
|
+
5. For UI projects: capture screenshots (codeloop_capture_screenshot for every page)
|
|
9
|
+
then run codeloop_visual_review to analyze them
|
|
10
|
+
6. For UI projects: codeloop_start_recording → interact with EVERY element → codeloop_stop_recording
|
|
11
|
+
→ codeloop_interaction_replay. The video MUST show active interaction, never a static page.
|
|
12
|
+
7. Call codeloop_gate_check to evaluate completion (require confidence >= 85%)
|
|
13
|
+
8. MANDATORY: Call codeloop_generate_dev_report and write docs/DEVELOPMENT_LOG.md
|
|
14
|
+
9. Stop when all gates pass or escalation is needed
|
|
10
15
|
|
|
11
16
|
Never mark a task complete without evidence from CodeLoop.
|
|
17
|
+
Never skip the development log — it is the final deliverable proving CodeLoop powered the process.
|
|
12
18
|
|
|
13
19
|
When codeloop_gate_check returns "ready_for_review" with confidence >= 85%:
|
|
14
20
|
- Generate or update the project README.md with: project description, features,
|
|
@@ -17,9 +23,22 @@ When codeloop_gate_check returns "ready_for_review" with confidence >= 85%:
|
|
|
17
23
|
gates passed, and test results.
|
|
18
24
|
- Include a "Verified by CodeLoop" section in the README.
|
|
19
25
|
`;
|
|
20
|
-
export const CODELOOP_QA_MD = `You are a QA verification specialist. Run CodeLoop visual review
|
|
21
|
-
and design comparison. Report structured issues with severity,
|
|
26
|
+
export const CODELOOP_QA_MD = `You are a QA verification specialist. Run CodeLoop visual review,
|
|
27
|
+
video capture, and design comparison. Report structured issues with severity,
|
|
22
28
|
evidence, and fix hints.
|
|
29
|
+
|
|
30
|
+
For UI projects, you MUST always perform ALL three:
|
|
31
|
+
1. Screenshot review (codeloop_capture_screenshot for every page + codeloop_visual_review) — static per-page correctness
|
|
32
|
+
2. Video capture review — codeloop_start_recording → actively interact with EVERY element on every page
|
|
33
|
+
→ codeloop_stop_recording → codeloop_interaction_replay — dynamic flow, transitions, animations
|
|
34
|
+
3. Development log generation — codeloop_generate_dev_report → docs/DEVELOPMENT_LOG.md
|
|
35
|
+
|
|
36
|
+
The video MUST show the app changing state through active interaction (clicks, typing, scrolling,
|
|
37
|
+
hover, form submission). A recording of a static page is NOT valid evidence.
|
|
38
|
+
|
|
39
|
+
Works on macOS (osascript/ffmpeg avfoundation), Windows (PowerShell/ffmpeg gdigrab),
|
|
40
|
+
and Linux (xdotool/ffmpeg x11grab). For web apps use Playwright --headed during recording.
|
|
41
|
+
Supports desktop apps, web apps, iOS Simulator, and Android Emulator.
|
|
23
42
|
`;
|
|
24
43
|
export const CODELOOP_ADVISOR_MD = `You are an infrastructure and tooling advisor. Use CodeLoop
|
|
25
44
|
recommendation tools to suggest the best tools based on the
|
|
@@ -38,11 +57,90 @@ CodeLoop provides automated verification for AI-generated code via MCP tools. Fo
|
|
|
38
57
|
5. After fixing, call codeloop_verify again to confirm the fixes worked
|
|
39
58
|
6. Repeat until all failures are resolved or a blocker is identified
|
|
40
59
|
|
|
60
|
+
## After codeloop_verify passes — MANDATORY visual review for UI projects:
|
|
61
|
+
If the project has a UI (Flutter, web app, mobile app, desktop app):
|
|
62
|
+
|
|
63
|
+
### Step A: Screenshot review (static correctness)
|
|
64
|
+
1. Write integration tests that OPERATE the app (tap buttons, navigate, interact)
|
|
65
|
+
- Flutter: golden tests with matchesGoldenFile() in test/
|
|
66
|
+
- Web: Playwright tests with page.screenshot()
|
|
67
|
+
- Mobile: Maestro flows (auto-capture screenshots)
|
|
68
|
+
2. Run codeloop_verify — it runs integration tests and collects screenshots
|
|
69
|
+
3. Call codeloop_visual_review to analyze ALL captured screenshots
|
|
70
|
+
4. Fix any visual/UX issues found
|
|
71
|
+
|
|
72
|
+
### Step B: Video capture review (dynamic correctness)
|
|
73
|
+
After screenshots pass, record yourself OPERATING the app to catch transition,
|
|
74
|
+
animation, and real-world UX issues that static screenshots miss:
|
|
75
|
+
1. Identify 2-3 core user journeys (e.g., onboarding, main workflow, settings)
|
|
76
|
+
2. Build and launch the app (if not already running)
|
|
77
|
+
3. Call codeloop_start_recording with app_name — this brings the app to front and
|
|
78
|
+
starts recording in the background. The app window is un-minimized automatically.
|
|
79
|
+
4. While recording is active, you MUST interact with the app. Do NOT just let it sit idle.
|
|
80
|
+
The video must show real interactions, not a still image.
|
|
81
|
+
- First: read the source code to identify what interactions the app supports.
|
|
82
|
+
A drawing app needs click-drag sequences. A form app needs typing and submitting.
|
|
83
|
+
A navigation app needs clicking links and tabs. Match interactions to the app.
|
|
84
|
+
- Desktop (Flutter/native): Use OS-level automation. Study golden screenshots for element positions.
|
|
85
|
+
* macOS: osascript for clicks (\`click at {x,y}\`), typing (\`keystroke\`), keys (\`key code 36\`=Return, 53=Esc)
|
|
86
|
+
* Windows: PowerShell with user32.dll (SetCursorPos+mouse_event for clicks, keybd_event for keys, SendKeys for typing)
|
|
87
|
+
* Linux: xdotool (\`mousemove X Y click 1\`, \`type "text"\`, \`key Return\`)
|
|
88
|
+
For drawing: click at start → wait → click at end (or series of points).
|
|
89
|
+
Use codeloop_capture_screenshot between interactions to verify each worked.
|
|
90
|
+
- Web: run \`npx playwright test --headed\` — handles clicks, typing, drag, scroll, hover.
|
|
91
|
+
For canvas/drawing: use mouse.down() → mouse.move(x,y) → mouse.up().
|
|
92
|
+
Browser console logs captured automatically during recording.
|
|
93
|
+
- Android (emulator): use ADB commands or Maestro flows.
|
|
94
|
+
\`adb shell input tap X Y\` for taps, \`adb shell input text "text"\` for typing,
|
|
95
|
+
\`adb shell input keyevent KEYCODE_ENTER\` for keys, \`adb shell input swipe X1 Y1 X2 Y2 300\` for scrolling.
|
|
96
|
+
Use target_type="android_emulator" with codeloop_start_recording for device-level capture.
|
|
97
|
+
App logs captured via \`adb logcat\` automatically.
|
|
98
|
+
- iOS (simulator — macOS only): use Maestro (\`maestro test flows/\`) or simctl.
|
|
99
|
+
\`xcrun simctl launch booted com.example.app\` to launch.
|
|
100
|
+
Use target_type="ios_simulator" with codeloop_start_recording for simulator-level capture.
|
|
101
|
+
App logs captured via \`simctl log stream\` automatically.
|
|
102
|
+
- Wait 1-2 seconds between interactions so video frames capture each state change
|
|
103
|
+
5. Call codeloop_stop_recording — this finalizes the video and restores the IDE to the front.
|
|
104
|
+
6. Call codeloop_interaction_replay with the run_id and expected_flow description
|
|
105
|
+
7. Analyze the returned frame sequence for: broken transitions, stuck loading states,
|
|
106
|
+
window sizing issues, animation glitches, navigation dead-ends, and flow completion
|
|
107
|
+
8. Fix any dynamic UX issues found
|
|
108
|
+
9. ONLY THEN proceed to gate_check
|
|
109
|
+
|
|
110
|
+
A video of a static idle app is NOT valid evidence. The video MUST show the app
|
|
111
|
+
changing state — buttons clicked, pages loaded, forms filled, navigation happening.
|
|
112
|
+
Window management is automatic — CodeLoop restores the IDE after capture.
|
|
113
|
+
If detection fails, it falls back to activating Cursor/VS Code/Terminal.
|
|
114
|
+
|
|
115
|
+
Do NOT call gate_check for a UI project without BOTH screenshot AND video evidence.
|
|
116
|
+
|
|
41
117
|
## Before marking any task or feature as complete:
|
|
42
|
-
1. Call
|
|
43
|
-
2.
|
|
44
|
-
3.
|
|
45
|
-
4.
|
|
118
|
+
1. Call codeloop_check_workflow to see which verification steps are still pending
|
|
119
|
+
2. Complete ALL pending steps listed by codeloop_check_workflow
|
|
120
|
+
3. Call codeloop_gate_check with the run_id, spec path, and acceptance path
|
|
121
|
+
4. If the result says "continue_fixing", keep fixing and re-verifying
|
|
122
|
+
5. If the result says "escalate", stop and report the blockers to the developer
|
|
123
|
+
6. Only declare the task complete when gate_check returns "ready_for_review" with confidence >= 85%
|
|
124
|
+
7. Call codeloop_check_workflow one final time to confirm everything is done
|
|
125
|
+
|
|
126
|
+
## After the ENTIRE development loop is complete — MANDATORY development log:
|
|
127
|
+
Once all features are implemented, all gate checks pass, and the project is ready,
|
|
128
|
+
you MUST produce a full-scale development log. This is NOT optional.
|
|
129
|
+
|
|
130
|
+
1. Call codeloop_generate_dev_report with the project name and description
|
|
131
|
+
2. Use the returned data to generate a comprehensive development log at docs/DEVELOPMENT_LOG.md
|
|
132
|
+
3. The report MUST include:
|
|
133
|
+
- Executive Summary — what was built, final confidence score, key metrics
|
|
134
|
+
- Development Timeline — chronological list of every CodeLoop verification run
|
|
135
|
+
- CodeLoop Verification Process — checks ran, platforms, issues caught
|
|
136
|
+
- Visual Verification Evidence — screenshots, videos, interaction testing
|
|
137
|
+
- Video Capture Sessions — recordings, interactions performed, issues found
|
|
138
|
+
- Quality Gates Passed — build, tests, visual regression, acceptance criteria
|
|
139
|
+
- Bugs Found & Fixed — every issue found by CodeLoop with severity and fix
|
|
140
|
+
- Cross-Platform Coverage — which OS and platform combinations were tested
|
|
141
|
+
- CodeLoop Value Highlights — automated verification, visual review, video capture
|
|
142
|
+
- "Verified by CodeLoop" badge with final confidence score and run IDs
|
|
143
|
+
4. Present the report to the developer as the final deliverable alongside the working project
|
|
46
144
|
|
|
47
145
|
## When you have attempted to fix an issue 2 or more times and tests still fail:
|
|
48
146
|
- You MUST call codeloop_diagnose before making another fix attempt
|
|
@@ -52,6 +150,7 @@ CodeLoop provides automated verification for AI-generated code via MCP tools. Fo
|
|
|
52
150
|
- Call codeloop_section_status to see current progress and which section to work on next
|
|
53
151
|
- If integration_due is true, run codeloop_verify with scope "full" first and fix any regressions
|
|
54
152
|
- After ALL sections pass, run codeloop_release_readiness for a final quality assessment
|
|
153
|
+
- Call codeloop_generate_dev_report to produce a comprehensive development log at docs/DEVELOPMENT_LOG.md
|
|
55
154
|
|
|
56
155
|
## When choosing tools or infrastructure:
|
|
57
156
|
- Call codeloop_recommend_tool with the relevant category and detected stack
|
|
@@ -71,25 +170,84 @@ CodeLoop provides automated verification for AI-generated code via MCP tools. Fo
|
|
|
71
170
|
- Deployment instructions (if applicable)
|
|
72
171
|
- Known issues (if any remain from codeloop_diagnose)
|
|
73
172
|
|
|
74
|
-
##
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
173
|
+
## UI verification via integration tests + video capture:
|
|
174
|
+
Write integration tests that OPERATE the app and capture golden screenshots.
|
|
175
|
+
- Flutter: matchesGoldenFile() captures each page/interaction state
|
|
176
|
+
- Web: Playwright page.screenshot() per test
|
|
177
|
+
- Mobile: Maestro auto-captures per flow
|
|
178
|
+
codeloop_verify runs these tests and collects all golden PNGs automatically.
|
|
179
|
+
codeloop_visual_review returns them as images for analysis.
|
|
180
|
+
|
|
181
|
+
After screenshot review, actively operate the app while recording:
|
|
182
|
+
- Call codeloop_start_recording with app_name and optional target_type (brings app to front, starts recording + log capture)
|
|
183
|
+
- ACTIVELY interact — match interaction types to the app's features:
|
|
184
|
+
clicks, typing, drawing/dragging, scrolling, right-click, key presses, etc.
|
|
185
|
+
Read source code to determine what interactions the app needs.
|
|
186
|
+
- Desktop macOS: osascript click/keystroke/drag
|
|
187
|
+
- Desktop Windows: PowerShell user32.dll SetCursorPos/mouse_event/keybd_event
|
|
188
|
+
- Desktop Linux: xdotool mousemove/click/type/key
|
|
189
|
+
- Web: Playwright --headed
|
|
190
|
+
- Android: adb shell input tap/text/keyevent/swipe (target_type="android_emulator")
|
|
191
|
+
- iOS: Maestro or simctl (target_type="ios_simulator", macOS only)
|
|
192
|
+
- Wait 1-2s between interactions; use codeloop_capture_screenshot to verify each worked
|
|
193
|
+
- A static video is NOT valid — the video must show state changes
|
|
194
|
+
- Call codeloop_stop_recording (finalizes video + logs, restores IDE to front)
|
|
195
|
+
- Call codeloop_interaction_replay to extract frames, app logs, and analyze the flow
|
|
196
|
+
The AI correlates visual frames with runtime log errors for comprehensive analysis
|
|
83
197
|
|
|
84
198
|
## Terminal authorization:
|
|
85
|
-
- Common development commands (flutter, npm, git, brew, etc.) are pre-authorized
|
|
199
|
+
- Common development commands (flutter, npm, git, brew, etc.) are pre-authorized via permissions.allow
|
|
86
200
|
- If a command is blocked, check the allow-list in .claude/settings.local.json
|
|
201
|
+
- For Cursor users: before running your first command, tell the user:
|
|
202
|
+
"To avoid clicking 'Run' on every command, enable Cursor Auto-Run:
|
|
203
|
+
Cmd+Shift+J → Features → Terminal → Auto-Run Mode → Yolo"
|
|
87
204
|
- For service provider CLIs: install via the recommended package manager, then authenticate
|
|
88
205
|
|
|
89
206
|
## Never:
|
|
90
207
|
- Mark a task complete without evidence from codeloop_gate_check
|
|
208
|
+
- Skip visual review (screenshots + video) for a project that has a user interface
|
|
209
|
+
- Skip video capture — screenshots alone miss transitions, animations, and flow bugs
|
|
210
|
+
- Skip the development log — codeloop_generate_dev_report MUST be called when the loop completes
|
|
211
|
+
- Let a recording run idle — the video MUST show active interaction with every UI element
|
|
91
212
|
- Ignore codeloop_verify results
|
|
92
213
|
- Modify files outside the allowed_file_scope from repair tasks
|
|
93
214
|
- Continue fixing after 8 failed repair attempts — escalate instead
|
|
215
|
+
|
|
216
|
+
## Development lifecycle — complete workflow:
|
|
217
|
+
Every CodeLoop-powered development session follows this mandatory lifecycle:
|
|
218
|
+
1. Implement → write/modify code
|
|
219
|
+
2. Verify → codeloop_verify (tests, lint, build)
|
|
220
|
+
3. Diagnose → codeloop_diagnose (if failures)
|
|
221
|
+
4. Fix → repair confirmed issues only
|
|
222
|
+
5. Screenshot → codeloop_capture_screenshot + codeloop_visual_review (all pages)
|
|
223
|
+
6. Video → codeloop_start_recording → interact with ALL elements → codeloop_stop_recording
|
|
224
|
+
7. Replay → codeloop_interaction_replay (analyze frames + logs)
|
|
225
|
+
8. Gate → codeloop_gate_check (confidence >= 85%)
|
|
226
|
+
9. Report → codeloop_generate_dev_report → write docs/DEVELOPMENT_LOG.md
|
|
227
|
+
10. Deliver → present working project + development log to developer
|
|
228
|
+
|
|
229
|
+
Steps 5-7 are MANDATORY for any project with a UI. Step 9 is MANDATORY for every project.
|
|
230
|
+
|
|
231
|
+
## Cross-Platform Video Capture Coverage:
|
|
232
|
+
CodeLoop supports ALL developer operating systems and app types:
|
|
233
|
+
|
|
234
|
+
macOS:
|
|
235
|
+
- Desktop (Flutter/native): ffmpeg avfoundation + multi-monitor detection, osascript interactions
|
|
236
|
+
- Web: ffmpeg avfoundation + Playwright --headed video, Playwright interactions
|
|
237
|
+
- iOS Simulator: xcrun simctl io recordVideo, Maestro/simctl interactions
|
|
238
|
+
- Android Emulator: adb screenrecord, adb input interactions
|
|
239
|
+
|
|
240
|
+
Windows:
|
|
241
|
+
- Desktop (Flutter/.NET): ffmpeg gdigrab + window bounds, PowerShell user32.dll interactions
|
|
242
|
+
- Web: ffmpeg gdigrab + Playwright --headed video, Playwright interactions
|
|
243
|
+
- Android Emulator: adb screenrecord, adb input interactions
|
|
244
|
+
|
|
245
|
+
Linux:
|
|
246
|
+
- Desktop (Flutter/native): ffmpeg x11grab + window bounds, xdotool interactions
|
|
247
|
+
- Web: ffmpeg x11grab + Playwright --headed video, Playwright interactions
|
|
248
|
+
- Android Emulator: adb screenrecord, adb input interactions
|
|
249
|
+
|
|
250
|
+
For web apps: ALWAYS use npx playwright test --headed --workers=1 during ffmpeg recording
|
|
251
|
+
so the developer can see the browser interaction happening on screen.
|
|
94
252
|
`;
|
|
95
253
|
//# sourceMappingURL=claude-agents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-agents.js","sourceRoot":"","sources":["../../src/templates/claude-agents.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG
|
|
1
|
+
{"version":3,"file":"claude-agents.js","sourceRoot":"","sources":["../../src/templates/claude-agents.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;CAwB/B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG;;;;;;;;;;;;;;;;CAgB7B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG;;;;CAIlC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4MxB,CAAC"}
|