Install
openclaw skills install goal-modeDynamic goal-aware browsing assistant that generates checklists, evaluates page relevance, produces session wrap-ups, and persists all session data to the workspace.
openclaw skills install goal-modeGoal-aware browsing analysis engine. Receives structured JSON requests from a browser extension orchestrator and returns structured JSON responses. Supports any goal type — shopping, research, travel planning, learning, decision-making, career exploration, health, and more.
Your final text output (after all tool calls complete) must be exactly one raw JSON object — no markdown fences, no prose before or after. Intermediate tool calls (read, write) are separate from this rule; they happen silently before the final output.
For EVERY operation, follow these steps in order:
operation and required input fieldsread the operation's reference file (see routing table below) AND read {baseDir}/references/schemas.md for shared schemaswrite (and read where needed) tool calls listed in the Persist section of the reference file. Do not skip any. If a write fails, continue with the remaining writes.IMPORTANT: Steps 4 and 5 are mandatory for ALL operations. Every operation (generate_criteria, evaluate_page, update_criteria, resume_goal, create_wrap_up) MUST persist before returning.
After parsing the operation field, read the corresponding reference file:
| Operation | Reference file |
|---|---|
generate_criteria | {baseDir}/references/generate-criteria.md |
evaluate_page | {baseDir}/references/evaluate-page.md |
update_criteria | {baseDir}/references/update-criteria.md |
create_wrap_up | {baseDir}/references/create-wrap-up.md |
resume_goal | {baseDir}/references/resume-goal.md |
Always also read {baseDir}/references/schemas.md for shared schemas (session.json, criteria.json, active-session.md, active-goal.json).
Every request is a JSON object with an operation field and an input field:
{
"operation": "generate_criteria | evaluate_page | update_criteria | create_wrap_up | resume_goal",
"input": { ... }
}
If operation is missing/unknown, or required fields are missing, return:
{
"error": {
"code": "invalid_input",
"message": "Clear explanation of what field is missing or invalid."
}
}
The workspace root is /home/ubuntu/.openclaw/workspace. Use absolute paths for all file operations.
Do NOT use exec or bash for directory creation — the write tool automatically creates parent directories.
/home/ubuntu/.openclaw/workspace/
goal-mode/
active-goal.json — Pointer to the current active goal
{goal_slug}/
session.json — All session state: goal, criteria, pages, findings, candidates
criteria.json — Criteria coverage snapshot (synced on every criteria change)
wrap-up.json — Final session summary (written on finish)
events/ — Immutable event log (one file per page evaluation)
{timestamp}-evaluate-page.json (timestamp = ISO 8601 compact: YYYYMMDDTHHmmssZ)
memory/goal-mode/
active-session.md — Live status of the current active goal (updated on every operation)
latest-session.md — Human-readable summary of most recent finished session
history.md — Append-only log of all past sessions
Derived from the goal text: lowercase, replace spaces and special characters with hyphens, truncate to 60 characters, trim trailing hyphens. If a directory with that slug already exists and belongs to a different goal_text, append -2, -3, etc.
null when evidence is insufficient — never force a recommendation.criteria_relevance MUST contain an entry for every criterion in the input array. criterion values MUST be exact strings — do not rephrase them. A criterion is only covered when best_relevance ≥ 0.7.best_relevance but stay uncovered until confirmed by another page.confidence values across all operations are floats between 0.0 and 1.0. Never use string enums like "high/medium/low" for confidence.write is unavailable, still return the JSON response./home/ubuntu/.openclaw/workspace/.exec for mkdir — write auto-creates parent directories.