Skip to main content

goal-manual

Goal notification manual: `.notification/goal.json` source-of-truth, fields, instructions, idle reminders, protected dismiss behavior, and cancellation or completion semantics.

Jump to install

Source facts

Repository
Lingtai-AI/lingtai-kernel
Last source activity
August 7, 2026 at 10:19
Detected SKILL.md language
English
Stars
11
Forks
14

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
goal-manual
description
Goal notification manual: `.notification/goal.json` source-of-truth, fields, instructions, idle reminders, protected dismiss behavior, and cancellation or completion semantics.
version
0.2.2
tags
["lingtai","goal","notifications","reminders"]
last_changed_at
2026-07-27T00:00:00.000Z
related_files
["src/lingtai/intrinsic_skills/system-manual/SKILL.md","src/lingtai/kernel/nudge/goal.py"]
maintenance
Tracks the goal-notification topic it documents; update when that integration changes.
# Goal Manual A goal is represented by `.notification/goal.json`. This file is the protected source of truth for the agent's current active goal. The short reminder event only points the agent back to this file; it does not contain the goal details. ## Guided setup via `/goal` `/goal` is the TUI entry point for human-guided goal creation. It does **not** write `.notification/goal.json` directly. Instead, the TUI appends a system event to `.notification/system.json` so the running agent can guide the human before creating or changing the goal file: ```json { "source": "goal.request", "ref_id": "goal.request:<timestamp>", "body": "Human wants to set or revise an active goal..." } ``` When you receive a `source="goal.request"` event: 1. **Read this manual first.** The event is a request to guide goal creation, not permission to invent goal details. 2. **Explain the mechanism briefly to the human.** Tell them that an active goal lives in `.notification/goal.json`, idle reminders are short `goal.reminder` system events, and dismissing a reminder only hides the reminder. 3. **Ask for the missing goal fields.** At minimum, clarify: - objective: what should be accomplished; - criteria: how the human and agent will know it is done; - status/id: a stable `data.id` and active status if the goal should start now; - reminder cadence: optional `data.reminder_delay_seconds`; - constraints: deadlines, channels to report on, what not to do, or approval gates. 4. **Explain cancellation and completion before writing** — see "Protected dismiss behavior" below for the exact semantics. 5. **Write `.notification/goal.json` only after confirmation.** If the human gave a complete inline draft with `/goal <text>`, restate the structured goal and ask for confirmation unless the instruction explicitly and unambiguously says to create it now. 6. **Dismiss the request after handling it.** Use the event `ref_id` so other system events survive: ```text notification(action="dismiss_ref", input={"ref_id": "goal.request:<timestamp>", "channel": null, "force": null, "reason": null}, reasoning="the goal request is handled") ``` If the human changes their mind during setup, dismiss the `goal.request` event without creating `goal.json`. If a previous active goal exists, do not overwrite it silently; explain the existing goal and ask whether to complete, cancel, or replace it. ## Minimal goal file ```json { "header": "Active goal: finish notification PR", "icon": "🎯", "priority": "high", "published_at": "2026-06-10T00:00:00Z", "instructions": "Current active goal. Read data.objective and data.criteria. This channel is protected: do not dismiss it. To cancel the goal, delete .notification/goal.json. See the goal manual under system-manual.", "data": { "id": "notification-pr", "status": "active", "objective": "Implement notification whitelist, atomic system-event dismiss, and goal reminders.", "criteria": ["tests pass", "manuals updated", "PR opened"], "reminder_delay_seconds": 120 } } ``` Recommended fields live under `data`: - `id`: stable identifier used by reminders as `ref_id="goal:<id>"`. - `status`: omit or use `active` for active work. `done`, `complete`, `completed`, `superseded`, `cancelled`, `canceled`, or `inactive` suppress reminders. - `objective`: what to accomplish. - `criteria`: what done means. - `reminder_delay_seconds`: optional idle delay before a reminder. If absent, the runtime reuses the agent's soul delay; invalid values fall back safely. The top-level `instructions` field should explicitly say to read the goal data, that the `goal` channel is protected, and that this manual has the mechanism details. ## Protected dismiss behavior `goal` is not an ordinary dismissible notification mirror. Generic dismiss refuses: ```text notification(action="dismiss_channel", input={"channel": "goal", "force": null, "reason": null}, reasoning="...") # refused ``` To cancel the goal, delete `.notification/goal.json` or mark `data.status` `inactive`/`cancelled`/`canceled`. To complete or supersede it, mark `data.status` `done`/`complete`/`completed`/`superseded`, or delete/replace the file. Dismissing a `goal.reminder` does **not** cancel the goal. Agents are trusted to decide when the source-of-truth file should change; the protection only prevents misleading API semantics where dismissing a notification looks like canceling a goal. ## Idle reminder behavior The reminder trigger requires the source-of-truth file itself: if `.notification/goal.json` is absent, no goal reminder is generated. When `.notification/goal.json` exists, is active, and the agent remains IDLE for the configured delay, the kernel publishes one short event into `.notification/system.json`: ```json { "source": "goal.reminder", "ref_id": "goal:<id>", "body": "Goal reminder: read .notification/goal.json and follow its instructions; see the goal manual under system-manual." } ``` The reminder is intentionally brief. The actual goal and instructions stay in `goal.json`. Dismissing the reminder clears only the system event: Same call shape as the goal-request dismiss above, with `ref_id="goal:<id>"`. Cancellation and completion semantics are above, under "Protected dismiss behavior": dismissing a reminder never cancels the goal, so if the goal remains active a fresh idle interval can generate another reminder. If `goal.json` is deleted or marked inactive/done while a reminder is already present, the next IDLE goal check clears that stale `goal.reminder` system event. ## Cross-reference For notification channels, envelopes, allowlist behavior, and atomic system-event dismiss, read the first-level `notification-manual` skill.
View on GitHub