@codeyam/codeyam-cli 0.1.18 → 0.1.20
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/analyzer-template/.build-info.json +7 -7
- package/analyzer-template/log.txt +3 -3
- package/analyzer-template/package.json +1 -1
- package/analyzer-template/packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts +9 -6
- package/analyzer-template/packages/analyze/src/lib/files/analyze/gatherEntityMap.ts +9 -12
- package/analyzer-template/packages/database/package.json +1 -1
- package/analyzer-template/packages/database/src/lib/loadAnalysis.ts +19 -15
- package/analyzer-template/packages/database/src/lib/loadEntity.ts +8 -4
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadAnalysis.js.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.d.ts.map +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js +1 -1
- package/analyzer-template/packages/github/dist/database/src/lib/loadEntity.js.map +1 -1
- package/analyzer-template/project/analyzeFileEntities.ts +26 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js +22 -0
- package/background/src/lib/virtualized/project/analyzeFileEntities.js.map +1 -1
- package/codeyam-cli/src/cli.js +15 -0
- package/codeyam-cli/src/cli.js.map +1 -1
- package/codeyam-cli/src/commands/__tests__/editor.stepDispatch.test.js +9 -9
- package/codeyam-cli/src/commands/editor.js +570 -300
- package/codeyam-cli/src/commands/editor.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js +273 -1
- package/codeyam-cli/src/utils/__tests__/editorAudit.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js +67 -0
- package/codeyam-cli/src/utils/__tests__/editorGuardMiddleware.test.js.map +1 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js +20 -0
- package/codeyam-cli/src/utils/__tests__/editorScenarios.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js +16 -1
- package/codeyam-cli/src/utils/__tests__/journalCaptureStabilization.test.js.map +1 -1
- package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js +84 -0
- package/codeyam-cli/src/utils/__tests__/screenshotHash.test.js.map +1 -0
- package/codeyam-cli/src/utils/analysisRunner.js +8 -6
- package/codeyam-cli/src/utils/analysisRunner.js.map +1 -1
- package/codeyam-cli/src/utils/editorAudit.js +73 -4
- package/codeyam-cli/src/utils/editorAudit.js.map +1 -1
- package/codeyam-cli/src/utils/editorGuard.js +36 -0
- package/codeyam-cli/src/utils/editorGuard.js.map +1 -0
- package/codeyam-cli/src/utils/editorScenarios.js +37 -5
- package/codeyam-cli/src/utils/editorScenarios.js.map +1 -1
- package/codeyam-cli/src/utils/queue/job.js +6 -3
- package/codeyam-cli/src/utils/queue/job.js.map +1 -1
- package/codeyam-cli/src/utils/screenshotHash.js +26 -0
- package/codeyam-cli/src/utils/screenshotHash.js.map +1 -0
- package/codeyam-cli/src/utils/simulationGateMiddleware.js +9 -0
- package/codeyam-cli/src/utils/simulationGateMiddleware.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js +28 -1
- package/codeyam-cli/src/webserver/__tests__/clientErrors.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js +38 -7
- package/codeyam-cli/src/webserver/__tests__/idleDetector.test.js.map +1 -1
- package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js +135 -0
- package/codeyam-cli/src/webserver/__tests__/stripClaudeCommand.test.js.map +1 -0
- package/codeyam-cli/src/webserver/app/lib/clientErrors.js +12 -0
- package/codeyam-cli/src/webserver/app/lib/clientErrors.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{editor.entity.(_sha)-Bnx7yUP0.js → editor.entity.(_sha)-DII1pg_z.js} +13 -13
- package/codeyam-cli/src/webserver/build/client/assets/globals-Yn9W3zp3.css +1 -0
- package/codeyam-cli/src/webserver/build/client/assets/{manifest-b9d4d267.js → manifest-cdf2c0a7.js} +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/{root-DB3O9_9j.js → root-BxUQigda.js} +5 -5
- package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-B_PsTAb1.js +13 -0
- package/codeyam-cli/src/webserver/build/server/assets/{index-D4meMKy3.js → index-CjLhfz6Z.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{init-odGJ_c2-.js → init-BEqlbI84.js} +1 -1
- package/codeyam-cli/src/webserver/build/server/assets/{server-build-TmPfF7pT.js → server-build-YI63xTu4.js} +112 -111
- package/codeyam-cli/src/webserver/build/server/index.js +1 -1
- package/codeyam-cli/src/webserver/build-info.json +5 -5
- package/codeyam-cli/src/webserver/scripts/journalCapture.ts +17 -0
- package/codeyam-cli/src/webserver/server.js +52 -14
- package/codeyam-cli/src/webserver/server.js.map +1 -1
- package/codeyam-cli/src/webserver/terminalServer.js +129 -22
- package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
- package/codeyam-cli/templates/__tests__/editor-step-hook.prompt-capture.test.ts +118 -0
- package/codeyam-cli/templates/codeyam-editor-claude.md +2 -0
- package/codeyam-cli/templates/codeyam-editor-reference.md +1 -1
- package/codeyam-cli/templates/editor-step-hook.py +93 -46
- package/codeyam-cli/templates/skills/codeyam-editor/SKILL.md +19 -1
- package/package.json +1 -1
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js +2 -2
- package/packages/analyze/src/lib/files/analyze/findOrCreateEntity.js.map +1 -1
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js +9 -7
- package/packages/analyze/src/lib/files/analyze/gatherEntityMap.js.map +1 -1
- package/packages/database/src/lib/loadAnalysis.js +1 -1
- package/packages/database/src/lib/loadAnalysis.js.map +1 -1
- package/packages/database/src/lib/loadEntity.js +1 -1
- package/packages/database/src/lib/loadEntity.js.map +1 -1
- package/codeyam-cli/src/webserver/build/client/assets/globals-fAqOD9ex.css +0 -1
- package/codeyam-cli/src/webserver/build/server/assets/analysisRunner-CGwTN3V2.js +0 -13
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { execFileSync } from 'child_process';
|
|
2
|
+
import fs from 'fs';
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Tests for the prompt capture logic in editor-step-hook.py.
|
|
8
|
+
*
|
|
9
|
+
* The hook captures the user's feature request text on UserPromptSubmit events
|
|
10
|
+
* and writes it to `.codeyam/editor-user-prompt.txt`. This prompt is later
|
|
11
|
+
* recorded in the journal entry.
|
|
12
|
+
*
|
|
13
|
+
* The critical invariant: when a new feature starts (previous feature at step 18
|
|
14
|
+
* or no state file), the hook must overwrite the stale prompt from the previous
|
|
15
|
+
* feature — not skip writing because the file already exists.
|
|
16
|
+
*/
|
|
17
|
+
describe('editor-step-hook prompt capture', () => {
|
|
18
|
+
const hookPath = path.join(__dirname, '..', 'editor-step-hook.py');
|
|
19
|
+
let tmpDir: string;
|
|
20
|
+
let codeyamDir: string;
|
|
21
|
+
let promptPath: string;
|
|
22
|
+
let statePath: string;
|
|
23
|
+
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
tmpDir = fs.mkdtempSync(path.join(os.tmpdir(), 'hook-prompt-test-'));
|
|
26
|
+
codeyamDir = path.join(tmpDir, '.codeyam');
|
|
27
|
+
fs.mkdirSync(codeyamDir, { recursive: true });
|
|
28
|
+
promptPath = path.join(codeyamDir, 'editor-user-prompt.txt');
|
|
29
|
+
statePath = path.join(codeyamDir, 'editor-step.json');
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
afterEach(() => {
|
|
33
|
+
fs.rmSync(tmpDir, { recursive: true, force: true });
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
function runHook(input: object): string {
|
|
37
|
+
try {
|
|
38
|
+
return execFileSync('python3', [hookPath], {
|
|
39
|
+
input: JSON.stringify(input),
|
|
40
|
+
env: {
|
|
41
|
+
...process.env,
|
|
42
|
+
CODEYAM_EDITOR_ACTIVE: '1',
|
|
43
|
+
CLAUDE_PROJECT_DIR: tmpDir,
|
|
44
|
+
},
|
|
45
|
+
encoding: 'utf8',
|
|
46
|
+
timeout: 5000,
|
|
47
|
+
});
|
|
48
|
+
} catch (e: unknown) {
|
|
49
|
+
// Hook may exit with non-zero or produce stderr; capture stdout
|
|
50
|
+
return (e as { stdout?: string }).stdout || '';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
function writeState(step: number, label: string): void {
|
|
55
|
+
fs.writeFileSync(
|
|
56
|
+
statePath,
|
|
57
|
+
JSON.stringify({ step, label, feature: 'Test Feature' }),
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
it('should capture the first user prompt when no prompt file exists', () => {
|
|
62
|
+
// No state file, no prompt file — brand new session
|
|
63
|
+
runHook({ prompt: 'CUJ 28 — Add author column to library table' });
|
|
64
|
+
|
|
65
|
+
expect(fs.existsSync(promptPath)).toBe(true);
|
|
66
|
+
expect(fs.readFileSync(promptPath, 'utf8')).toBe(
|
|
67
|
+
'CUJ 28 — Add author column to library table',
|
|
68
|
+
);
|
|
69
|
+
});
|
|
70
|
+
|
|
71
|
+
it('should NOT overwrite prompt during an active feature (step < 18)', () => {
|
|
72
|
+
// Feature in progress at step 5
|
|
73
|
+
writeState(5, 'Confirm');
|
|
74
|
+
fs.writeFileSync(promptPath, 'Original feature request');
|
|
75
|
+
|
|
76
|
+
runHook({ prompt: 'ok sounds good' });
|
|
77
|
+
|
|
78
|
+
expect(fs.readFileSync(promptPath, 'utf8')).toBe(
|
|
79
|
+
'Original feature request',
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
it('should overwrite stale prompt when previous feature is done (step >= 18)', () => {
|
|
84
|
+
// Previous feature completed (step 18), prompt file has stale content
|
|
85
|
+
writeState(18, 'Push');
|
|
86
|
+
fs.writeFileSync(promptPath, 'Previous feature request — STALE');
|
|
87
|
+
|
|
88
|
+
runHook({ prompt: 'CUJ 29 — User can write notes about articles' });
|
|
89
|
+
|
|
90
|
+
expect(fs.readFileSync(promptPath, 'utf8')).toBe(
|
|
91
|
+
'CUJ 29 — User can write notes about articles',
|
|
92
|
+
);
|
|
93
|
+
});
|
|
94
|
+
|
|
95
|
+
it('should overwrite stale prompt when no state file exists (between features)', () => {
|
|
96
|
+
// State file was cleared (between features), but prompt file persists
|
|
97
|
+
fs.writeFileSync(promptPath, 'Previous feature request — STALE');
|
|
98
|
+
// No state file — it was deleted
|
|
99
|
+
|
|
100
|
+
runHook({ prompt: 'CUJ 30 — New article highlights in collections' });
|
|
101
|
+
|
|
102
|
+
expect(fs.readFileSync(promptPath, 'utf8')).toBe(
|
|
103
|
+
'CUJ 30 — New article highlights in collections',
|
|
104
|
+
);
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
it('should NOT capture slash commands as user prompts', () => {
|
|
108
|
+
runHook({ prompt: '/codeyam-dev-mode' });
|
|
109
|
+
|
|
110
|
+
expect(fs.existsSync(promptPath)).toBe(false);
|
|
111
|
+
});
|
|
112
|
+
|
|
113
|
+
it('should NOT capture empty prompts', () => {
|
|
114
|
+
runHook({ prompt: ' ' });
|
|
115
|
+
|
|
116
|
+
expect(fs.existsSync(promptPath)).toBe(false);
|
|
117
|
+
});
|
|
118
|
+
});
|
|
@@ -26,6 +26,8 @@ A **scenario** is a named set of data that drives how the app renders. Scenarios
|
|
|
26
26
|
- **App-level scenarios**: Full application state — what the database contains, what API responses return. Example: "Empty Dashboard", "Dashboard with 50 Tasks", "Dashboard with Overdue Tasks"
|
|
27
27
|
- **Component-level scenarios**: Props for a single component in isolation. Example: "TaskCard - Default", "TaskCard - Overdue", "TaskCard - Completed"
|
|
28
28
|
|
|
29
|
+
**Name scenarios by data state** ("Rich Data", "Empty", "Mobile"), not by feature. When adding a feature, enhance an existing scenario's data — rename it if the scope has grown.
|
|
30
|
+
|
|
29
31
|
**Only create scenarios for states the current code can render.** If you seed 10 articles but the app doesn't have an article list component yet, the screenshot will show an empty page — that's a broken scenario. After registering, always view the captured screenshot to verify the data is actually visible.
|
|
30
32
|
|
|
31
33
|
**Always register scenarios with CodeYam** using the CLI:
|
|
@@ -73,7 +73,7 @@ All commands use the pattern `codeyam editor <subcommand>`.
|
|
|
73
73
|
|
|
74
74
|
| Command | Description |
|
|
75
75
|
| ------------------------------------------------------- | --------------------------------------------------------------- |
|
|
76
|
-
| `codeyam editor <1-
|
|
76
|
+
| `codeyam editor <1-18>` | Jump to a specific editor workflow step |
|
|
77
77
|
| `codeyam editor steps` | Show setup overview or cycle progress |
|
|
78
78
|
| `codeyam editor change <feature>` | Start the change workflow for modifying features |
|
|
79
79
|
| `codeyam editor sync` | Import scenarios from manifest into database (used after clone) |
|
|
@@ -15,40 +15,44 @@ from datetime import datetime, timezone
|
|
|
15
15
|
|
|
16
16
|
STEP_LABELS = {
|
|
17
17
|
1: "Plan",
|
|
18
|
-
2: "
|
|
19
|
-
3: "
|
|
20
|
-
4: "
|
|
21
|
-
5: "
|
|
22
|
-
6: "
|
|
23
|
-
7: "
|
|
24
|
-
8: "
|
|
25
|
-
9: "
|
|
26
|
-
10: "
|
|
27
|
-
11: "
|
|
28
|
-
12: "
|
|
29
|
-
13: "
|
|
30
|
-
14: "
|
|
31
|
-
15: "
|
|
32
|
-
16: "
|
|
18
|
+
2: "Prepare",
|
|
19
|
+
3: "Prototype",
|
|
20
|
+
4: "Verify Prototype",
|
|
21
|
+
5: "Confirm",
|
|
22
|
+
6: "Deconstruct",
|
|
23
|
+
7: "Extract",
|
|
24
|
+
8: "Glossary",
|
|
25
|
+
9: "Analyze",
|
|
26
|
+
10: "App Scenarios",
|
|
27
|
+
11: "User Scenarios",
|
|
28
|
+
12: "Verify",
|
|
29
|
+
13: "Journal",
|
|
30
|
+
14: "Review",
|
|
31
|
+
15: "Present",
|
|
32
|
+
16: "Commit",
|
|
33
|
+
17: "Finalize",
|
|
34
|
+
18: "Push",
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
STEP_RESTRICTIONS = {
|
|
36
38
|
1: "Do NOT write any code. Plan and describe only. Wait for user confirmation.",
|
|
37
|
-
2: "Do NOT
|
|
38
|
-
3: "
|
|
39
|
-
4: "
|
|
40
|
-
5: "
|
|
41
|
-
6: "Do NOT write
|
|
42
|
-
7: "
|
|
43
|
-
8: "Do NOT
|
|
44
|
-
9: "
|
|
45
|
-
10: "
|
|
46
|
-
11: "
|
|
47
|
-
12: "Verify
|
|
48
|
-
13: "
|
|
49
|
-
14: "
|
|
50
|
-
15: "
|
|
51
|
-
16: "
|
|
39
|
+
2: "Do NOT write any code or build features. Set up the project and prepare the database only.",
|
|
40
|
+
3: "Do NOT create scenarios or run codeyam analyze. Build fast — working prototype with real data.",
|
|
41
|
+
4: "Verify the prototype works. Do NOT add features — only fix broken functionality.",
|
|
42
|
+
5: "Present a selection menu (AskUserQuestion) for confirmation. Do NOT refactor or create scenarios until approved.",
|
|
43
|
+
6: "Do NOT write any code. Read every file, identify all extractable pieces, write a numbered plan. Planning only.",
|
|
44
|
+
7: "Execute the extraction plan from step 6. Components first (no tests), then library functions via TDD. Page files must contain ZERO direct JSX.",
|
|
45
|
+
8: "Do NOT write application code or scenarios. Update the glossary only.",
|
|
46
|
+
9: "Create isolation routes for visual components, run tests for library functions. Register component scenarios via codeyam editor register.",
|
|
47
|
+
10: "Do NOT modify application code. Create and register app-level scenarios only.",
|
|
48
|
+
11: "Do NOT modify application code. Create user-persona scenarios only (or skip if no users).",
|
|
49
|
+
12: "Verify component isolation screenshots AND editor scenarios. After ANY code fix, re-register affected components. Fix only — do NOT add features.",
|
|
50
|
+
13: "Create or update the journal entry for this feature. Do NOT create a duplicate — check if one exists first.",
|
|
51
|
+
14: "Verify ALL screenshots exist and NO client-side errors (/api/editor-client-errors). Run codeyam editor audit. Do not proceed until all checks pass.",
|
|
52
|
+
15: "Show the results panel, present summary, then selection menu (AskUserQuestion): Save or make changes.",
|
|
53
|
+
16: "Hide the results panel and commit all changes. Do NOT push — that happens in step 18.",
|
|
54
|
+
17: "Update the journal entry with the commit SHA and amend the commit to include the journal update.",
|
|
55
|
+
18: "Check for a git remote and offer to push. WAIT for the user's answer before starting the next feature.",
|
|
52
56
|
}
|
|
53
57
|
|
|
54
58
|
MIGRATION_STEP_LABELS = {
|
|
@@ -127,18 +131,34 @@ def main():
|
|
|
127
131
|
# Detect event early so we can capture the user prompt even before state exists
|
|
128
132
|
event_type, event_data = detect_event()
|
|
129
133
|
|
|
130
|
-
# Capture the
|
|
131
|
-
#
|
|
134
|
+
# Capture the user's feature request prompt.
|
|
135
|
+
# Write when: (a) no prompt file yet, (b) no state file (between features),
|
|
136
|
+
# or (c) previous feature is done (step >= 18). This ensures the prompt
|
|
137
|
+
# is refreshed for each new feature instead of persisting stale text.
|
|
132
138
|
# Skip slash commands (e.g. /codeyam-editor) — they aren't user prompts.
|
|
133
|
-
if event_type == "user_prompt"
|
|
139
|
+
if event_type == "user_prompt":
|
|
134
140
|
prompt_text = event_data.get("prompt", "").strip()
|
|
135
141
|
if prompt_text and not prompt_text.startswith("/"):
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
+
should_capture = not os.path.exists(prompt_path)
|
|
143
|
+
if not should_capture:
|
|
144
|
+
# Overwrite stale prompt when between features
|
|
145
|
+
if not os.path.exists(state_path):
|
|
146
|
+
should_capture = True
|
|
147
|
+
else:
|
|
148
|
+
try:
|
|
149
|
+
with open(state_path, "r") as f:
|
|
150
|
+
prev = json.load(f)
|
|
151
|
+
if prev.get("step", 0) >= 18:
|
|
152
|
+
should_capture = True
|
|
153
|
+
except Exception:
|
|
154
|
+
pass
|
|
155
|
+
if should_capture:
|
|
156
|
+
try:
|
|
157
|
+
os.makedirs(os.path.dirname(prompt_path), exist_ok=True)
|
|
158
|
+
with open(prompt_path, "w") as f:
|
|
159
|
+
f.write(prompt_text)
|
|
160
|
+
except Exception:
|
|
161
|
+
pass # Best-effort
|
|
142
162
|
|
|
143
163
|
if not os.path.exists(state_path):
|
|
144
164
|
return
|
|
@@ -157,6 +177,27 @@ def main():
|
|
|
157
177
|
if not step:
|
|
158
178
|
return
|
|
159
179
|
|
|
180
|
+
# ── Task tracking ──────────────────────────────────────────────────
|
|
181
|
+
# Track whether TaskCreate was called between step transitions.
|
|
182
|
+
# If Claude advances to the next step without creating a task, block it.
|
|
183
|
+
task_tracking_path = os.path.join(project_dir, ".codeyam", "editor-task-tracking.json")
|
|
184
|
+
|
|
185
|
+
if event_type == "post_tool_use":
|
|
186
|
+
tool_name = event_data.get("tool_name", "")
|
|
187
|
+
|
|
188
|
+
# Record when TaskCreate is called
|
|
189
|
+
if tool_name == "TaskCreate":
|
|
190
|
+
try:
|
|
191
|
+
tracking = {}
|
|
192
|
+
if os.path.exists(task_tracking_path):
|
|
193
|
+
with open(task_tracking_path, "r") as f:
|
|
194
|
+
tracking = json.load(f)
|
|
195
|
+
tracking["taskCreated"] = True
|
|
196
|
+
with open(task_tracking_path, "w") as f:
|
|
197
|
+
json.dump(tracking, f)
|
|
198
|
+
except Exception:
|
|
199
|
+
pass
|
|
200
|
+
|
|
160
201
|
# Log the hook firing
|
|
161
202
|
log_data = {"step": step, "label": label, "feature": feature, "hook": event_type}
|
|
162
203
|
if migration:
|
|
@@ -171,7 +212,7 @@ def main():
|
|
|
171
212
|
next_cmd = f"codeyam editor migrate {step + 1}" if step < 10 else "codeyam editor migrate next"
|
|
172
213
|
else:
|
|
173
214
|
restriction = STEP_RESTRICTIONS.get(step, "")
|
|
174
|
-
next_cmd = f"codeyam editor {step + 1}" if step <
|
|
215
|
+
next_cmd = f"codeyam editor {step + 1}" if step < 18 else "codeyam editor 1"
|
|
175
216
|
|
|
176
217
|
# UserPromptSubmit: concise workflow reminder injected before Claude processes the user's message
|
|
177
218
|
if event_type == "user_prompt":
|
|
@@ -212,14 +253,14 @@ def main():
|
|
|
212
253
|
"The change workflow ensures Working Session Results are shown to the user. "
|
|
213
254
|
"If the user chose to commit, run `codeyam editor migrate next` to advance to the next page."
|
|
214
255
|
)
|
|
215
|
-
elif step in (
|
|
256
|
+
elif step in (15, 16, 17, 18) and not migration:
|
|
216
257
|
lines.append(
|
|
217
258
|
"If the user is requesting changes (even indirectly), "
|
|
218
259
|
"run `codeyam editor change` BEFORE making any modifications "
|
|
219
260
|
"(code, scenarios, data, styles — everything). "
|
|
220
261
|
"The change command gives you the post-change checklist. "
|
|
221
262
|
"The change workflow ensures Working Session Results are shown to the user. "
|
|
222
|
-
"If the user chose to commit, run `codeyam editor
|
|
263
|
+
"If the user chose to commit, run `codeyam editor 16` to advance to the commit step."
|
|
223
264
|
)
|
|
224
265
|
elif migration:
|
|
225
266
|
lines.append(
|
|
@@ -270,9 +311,9 @@ def main():
|
|
|
270
311
|
tracker.append(f"{DIM} \u2502 \u25cb {cntnt}\u2502{RESET}")
|
|
271
312
|
tracker.append(f"{DIM} \u2514\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2518{RESET}")
|
|
272
313
|
else:
|
|
273
|
-
# Standard progress tracker (
|
|
314
|
+
# Standard progress tracker (18 steps)
|
|
274
315
|
tracker = [f"{DIM} \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2510{RESET}"]
|
|
275
|
-
for i in range(1,
|
|
316
|
+
for i in range(1, 19):
|
|
276
317
|
lbl = STEP_LABELS[i].ljust(28)
|
|
277
318
|
num = f" {i}" if i < 10 else f"{i}"
|
|
278
319
|
content = f"{num}. {lbl}"
|
|
@@ -291,7 +332,7 @@ def main():
|
|
|
291
332
|
"\u2713 (done) or \u2717 (skipped + reason)."
|
|
292
333
|
)
|
|
293
334
|
|
|
294
|
-
if event_type == "stop" and ((step in (
|
|
335
|
+
if event_type == "stop" and ((step in (15, 16) and not migration) or (step == 8 and migration)):
|
|
295
336
|
import subprocess as _sp
|
|
296
337
|
try:
|
|
297
338
|
_result = _sp.run(
|
|
@@ -309,9 +350,15 @@ def main():
|
|
|
309
350
|
)
|
|
310
351
|
lines.append(
|
|
311
352
|
f"\033[31mRun `codeyam editor change` if you haven't already, then complete the "
|
|
312
|
-
f"checklist and run `{'codeyam editor migrate 8' if migration else 'codeyam editor
|
|
353
|
+
f"checklist and run `{'codeyam editor migrate 8' if migration else 'codeyam editor 15'}` to show results to the user.\033[0m"
|
|
313
354
|
)
|
|
314
355
|
|
|
356
|
+
if event_type == "stop":
|
|
357
|
+
lines.append(
|
|
358
|
+
f"\n\033[2mReminder: Only use `codeyam editor` subcommands in the Build terminal. "
|
|
359
|
+
f"Follow `codeyam editor steps` when changing code.\033[0m"
|
|
360
|
+
)
|
|
361
|
+
|
|
315
362
|
lines.append(f"When this step is complete, run: {next_cmd}")
|
|
316
363
|
|
|
317
364
|
print("\n".join(lines))
|
|
@@ -16,6 +16,15 @@ You MUST follow a step-by-step workflow driven by `codeyam editor` commands. Eac
|
|
|
16
16
|
|
|
17
17
|
**The rule:** After completing what a command tells you to do, run the NEXT command it specifies. The commands are your instructions — follow them one at a time.
|
|
18
18
|
|
|
19
|
+
## TASK Directive
|
|
20
|
+
|
|
21
|
+
Some `codeyam editor N` commands output a `━━━ TASK ━━━` section with an `EXACT_TASK_TITLE:` line. When you see one:
|
|
22
|
+
|
|
23
|
+
1. Mark your current task as complete (if one exists)
|
|
24
|
+
2. Run TaskCreate with the EXACT title from the `EXACT_TASK_TITLE:` line — copy it character-for-character, do NOT paraphrase
|
|
25
|
+
|
|
26
|
+
Do NOT create tasks on your own. Only create them when a `━━━ TASK ━━━` directive tells you to.
|
|
27
|
+
|
|
19
28
|
## Migration Mode
|
|
20
29
|
|
|
21
30
|
When `codeyam editor steps` shows **"Project Migration"** instead of "Feature Cycle", the project is being migrated from an existing codebase. Follow the `codeyam editor migrate` commands instead of the normal 13-step cycle.
|
|
@@ -117,6 +126,9 @@ This command gives you the post-change checklist (re-register scenarios, re-run
|
|
|
117
126
|
## Key Rules
|
|
118
127
|
|
|
119
128
|
- **Run the commands** — they ARE your instructions, not suggestions
|
|
129
|
+
- **One step at a time** — run each `codeyam editor N` command, read its FULL output, complete every checklist item, then advance. The CLI enforces a minimum time per step.
|
|
130
|
+
- **NEVER batch-run steps** — `for step in 5 6 7 8; do codeyam editor $step; done` or piping to `head` defeats the entire workflow. Each step has unique instructions you must read and follow.
|
|
131
|
+
- **NEVER delegate multiple steps to a subagent** — each step must be run, read, and completed in the main conversation. You MAY use subagents for parallelizable work _within_ a single step (e.g. extracting components + writing tests in step 5).
|
|
120
132
|
- **Every feature gets scenarios** — this is the core value of CodeYam
|
|
121
133
|
- **Always scaffold with a database** (Prisma + SQLite)
|
|
122
134
|
- **Build real API routes** — the proxy handles scenario data transparently
|
|
@@ -176,7 +188,13 @@ codeyam editor register '{"name":"Full Catalog","type":"application","url":"/","
|
|
|
176
188
|
# Register app scenario with localStorage (for apps using client-side storage instead of a database)
|
|
177
189
|
codeyam editor register '{"name":"Full Library","type":"application","url":"/","dimensions":["<name from screenSizes>"],"localStorage":{"articles":[...],"collections":[...]}}'
|
|
178
190
|
|
|
179
|
-
#
|
|
191
|
+
# BULK REGISTRATION (preferred — register all scenarios at once):
|
|
192
|
+
# Write an array of scenarios to a temp file, then register with @ prefix.
|
|
193
|
+
# This is faster and avoids repeated screenshot capture overhead.
|
|
194
|
+
# File format: [{"name":"...","type":"...","url":"...","seed":{...}}, ...]
|
|
195
|
+
codeyam editor register @.codeyam/tmp/scenarios.json
|
|
196
|
+
|
|
197
|
+
# Single scenario from file (for large seed/localStorage data):
|
|
180
198
|
codeyam editor register @/tmp/scenario-data.json
|
|
181
199
|
|
|
182
200
|
# Journal entry (one per feature, references scenario names)
|
package/package.json
CHANGED
|
@@ -49,11 +49,11 @@ export default async function findOrCreateEntity({ file, commitId, branchId, ent
|
|
|
49
49
|
code = fileAnalyzer.getEntityCode(localEntityName);
|
|
50
50
|
}
|
|
51
51
|
catch (e) {
|
|
52
|
-
console.log(
|
|
52
|
+
console.log(`CodeYam Error: Could not extract code for "${localEntityName}" from ${file.path} — export not found in file, may have been moved or renamed during refactoring`, {
|
|
53
53
|
filePath: file.path,
|
|
54
54
|
localEntityName,
|
|
55
55
|
entityName,
|
|
56
|
-
error: e,
|
|
56
|
+
error: String(e),
|
|
57
57
|
});
|
|
58
58
|
return null;
|
|
59
59
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findOrCreateEntity.js","sourceRoot":"","sources":["../../../../../../../../packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"findOrCreateEntity.js","sourceRoot":"","sources":["../../../../../../../../packages/analyze/src/lib/files/analyze/findOrCreateEntity.ts"],"names":[],"mappings":"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"}
|
|
@@ -60,13 +60,15 @@ export default async function gatherEntityMap({ entity, commitId, branchId, cont
|
|
|
60
60
|
context,
|
|
61
61
|
});
|
|
62
62
|
if (!importedEntity) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
63
|
+
const msg = [
|
|
64
|
+
`Entity not found: "${importedExportName}" in ${importedFile.path}`,
|
|
65
|
+
` While analyzing dependencies of: ${entity.name} (${entity.filePath})`,
|
|
66
|
+
` This usually means "${importedExportName}" was moved or renamed but`,
|
|
67
|
+
` ${entity.filePath} still has stale import metadata referencing the old location.`,
|
|
68
|
+
` Fix: Update or re-analyze ${entity.filePath} so its importedExports reflect current code.`,
|
|
69
|
+
].join('\n');
|
|
70
|
+
console.log(`CodeYam Error: ${msg}`);
|
|
71
|
+
throw new Error(msg);
|
|
70
72
|
}
|
|
71
73
|
// Add newly created entity to context
|
|
72
74
|
context.addEntity(importedEntity);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gatherEntityMap.js","sourceRoot":"","sources":["../../../../../../../../packages/analyze/src/lib/files/analyze/gatherEntityMap.ts"],"names":[],"mappings":"AACA,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG9D,qEAAqE;AACrE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAU,CAAC;AAe7C,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,eAAe,CAAC,EAC5C,MAAM,EACN,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,eAAe,EACf,QAAQ,GACY;IACpB,oDAAoD;IACpD,MAAM,cAAc,GAAG,OAAO,CAAC,SAAS,CACtC,MAAM,CAAC,QAAQ,EACf,MAAM,CAAC,IAAI,CACsB,CAAC;IACpC,IAAI,cAAc,EAAE,oBAAoB,EAAE,CAAC;QACzC,OAAO;IACT,CAAC;IAED,iEAAiE;IACjE,MAAM,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAE1B,yBAAyB;IACzB,IACE,MAAM,CAAC,QAAQ;QACf,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW;QAC5B,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAC5B,CAAC;QACD,wDAAwD;QACxD,OAAO,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IACvC,CAAC;IAED,qCAAqC;IACrC,IAAI,QAAQ,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,EAAE,CAAC;QAClD,OAAO;IACT,CAAC;IAED,eAAe;IACf,2EAA2E;IAC3E,KAAK;IAEL,2BAA2B;IAC3B,MAAM,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;IACpC,KAAK,MAAM,cAAc,IAAI,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAAC;QAC7D,MAAM,sBAAsB,GAC1B,cAAc,CAAC,gBAAgB,IAAI,cAAc,CAAC,QAAQ,CAAC;QAC7D,MAAM,kBAAkB,GACtB,cAAc,CAAC,YAAY,IAAI,cAAc,CAAC,IAAI,CAAC;QAErD,eAAe;QACf,2EAA2E;QAC3E,KAAK;QAEL,MAAM,YAAY,GAAG,iBAAiB,CACpC,eAAe,EACf,sBAAsB,CACvB,CAAC;QAEF,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,iEAAiE;YACjE,qEAAqE;YACrE,mEAAmE;YACnE,6DAA6D;YAC7D,mEAAmE;YACnE,8EAA8E;YAC9E,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,sBAAsB,CAAC,EAAE,CAAC;gBACpD,kBAAkB,CAAC,GAAG,CAAC,sBAAsB,CAAC,CAAC;gBAC/C,OAAO,CAAC,GAAG,CACT,qFAAqF,sBAAsB,EAAE,CAC9G,CAAC;YACJ,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,cAAc,GAAG,OAAO,CAAC,SAAS,CACpC,YAAY,CAAC,IAAI,EACjB,kBAAkB,CACe,CAAC;QACpC,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,MAAM,YAAY,GAAG,eAAe,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;YAEnE,cAAc,GAAG,MAAM,kBAAkB,CAAC;gBACxC,IAAI,EAAE,YAAY;gBAClB,QAAQ;gBACR,QAAQ;gBACR,UAAU,EAAE,kBAAkB;gBAC9B,YAAY;gBACZ,eAAe;gBACf,OAAO;aACR,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,EAAE,CAAC;gBACpB,
|
|
1
|
+
{"version":3,"file":"gatherEntityMap.js","sourceRoot":"","sources":["../../../../../../../../packages/analyze/src/lib/files/analyze/gatherEntityMap.ts"],"names":[],"mappings":"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"}
|
|
@@ -91,7 +91,7 @@ export default async function loadAnalysis({ id, analysisBranchId, projectId, fi
|
|
|
91
91
|
const analysis = await query.executeTakeFirst();
|
|
92
92
|
const queryTime = Date.now() - startTime;
|
|
93
93
|
if (!analysis) {
|
|
94
|
-
awsLog(
|
|
94
|
+
awsLog(`CodeYam Error: Analysis not found${entityName ? ` for ${entityName}` : ''}${id ? ` (id=${id})` : ''}`, null, {
|
|
95
95
|
id,
|
|
96
96
|
analysisBranchId,
|
|
97
97
|
projectId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadAnalysis.js","sourceRoot":"","sources":["../../../../../../packages/database/src/lib/loadAnalysis.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"loadAnalysis.js","sourceRoot":"","sources":["../../../../../../packages/database/src/lib/loadAnalysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,7 @@ export default async function loadEntity({ projectId, sha }) {
|
|
|
17
17
|
// Only log at debug level - Entity not found is expected in E2E baseline mode
|
|
18
18
|
// where entities are created fresh and don't exist in the database yet
|
|
19
19
|
if (process.env.CODEYAM_E2E_BASELINE_MODE !== 'true') {
|
|
20
|
-
awsLog(
|
|
20
|
+
awsLog(`CodeYam Error: Load Entity: Entity not found (sha=${sha?.substring(0, 12)})`, null, {
|
|
21
21
|
projectId,
|
|
22
22
|
sha,
|
|
23
23
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loadEntity.js","sourceRoot":"","sources":["../../../../../../packages/database/src/lib/loadEntity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,UAAU,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAa/D,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,UAAU,CAAC,EAAE,SAAS,EAAE,GAAG,EAAkB;IACzE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAEzB,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,EAAE;aACpB,UAAU,CAAC,UAAU,CAAC;aACtB,SAAS,CAAC,OAAO,EAAE,kBAAkB,EAAE,UAAU,CAAC;aAClD,SAAS,CAAC,UAAU,CAAC;aACrB,MAAM,CAAC,CAAC,EAA+B,EAAE,EAAE,CAC1C,uBAAuB,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAClC,GAAG,CAAC,QAAQ,CAAC,4BAA4B,EAAE,GAAG,EAAE,cAAc,CAAC,CAChE,CAAC,EAAE,CAAC,iBAAiB,CAAC,CACxB;aACA,KAAK,CAAC,kBAAkB,EAAE,GAAG,EAAE,SAAS,CAAC;aACzC,KAAK,CAAC,cAAc,EAAE,GAAG,EAAE,GAAG,CAAC;aAC/B,gBAAgB,EAAE,CAAC;QAEtB,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,8EAA8E;YAC9E,uEAAuE;YACvE,IAAI,OAAO,CAAC,GAAG,CAAC,yBAAyB,KAAK,MAAM,EAAE,CAAC;gBACrD,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"loadEntity.js","sourceRoot":"","sources":["../../../../../../packages/database/src/lib/loadEntity.ts"],"names":[],"mappings":"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"}
|