Replaced 122-line hand-written smoke test with createHermesRole.
Hermes runs the full lifecycle check autonomously via terminal:
files → nerve.yaml → sense list → trigger → query → logs on failure.
All 3 roles now use factories:
planner: createCursorRole (ask mode)
coder: createCursorRole (default mode)
tester: createHermesRole (e2e verification)
小橘 🍊(NEKO Team)
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
export function testerPrompt(vars: {
|
|
threadId: string;
|
|
sensesDir: string;
|
|
nerveRoot: string;
|
|
}): string {
|
|
return `You are testing a newly created Nerve sense end-to-end.
|
|
|
|
Read the workflow thread for context: \`nerve thread ${vars.threadId}\`
|
|
The planner named the sense and the coder created the files.
|
|
|
|
Verify the full lifecycle:
|
|
|
|
1. Check files exist under ${vars.sensesDir}/<sense-name>/
|
|
- index.js, schema.ts, migrations/0001_init.sql
|
|
All three must exist.
|
|
|
|
2. Check ${vars.nerveRoot}/nerve.yaml has the sense config and reflex entry
|
|
The sense name should appear under \`senses:\` with group, throttle, etc.
|
|
|
|
3. Run \`nerve sense list\` — confirm the sense appears in the output
|
|
|
|
4. Run \`nerve sense trigger <sense-name>\` — should complete without error
|
|
|
|
5. Wait a few seconds, then run \`nerve sense query <sense-name>\`
|
|
Keep retrying (up to ~20 seconds) until it returns at least one row.
|
|
If it still says "0 rows", that's a failure.
|
|
|
|
6. If any step fails, run \`nerve logs\` to check for errors and include
|
|
relevant log lines in your report.
|
|
|
|
Output a clear summary: what you checked, what passed, what failed, and why.`;
|
|
}
|