--- name: objectives description: Capture business objectives in docs/product/objectives.md as measurable outcomes written in glossary terms and agreed with the operator, so every requirement, epic and bead can say which objective it serves. argument-hint: "[source docs or notes]" disable-model-invocation: true --- # Business objectives Use the [host runtime guide](../../runtime.md) for invocation, helper paths and startup context. An objective is an outcome for someone, with a measure. It is not a feature. Agents use objectives to judge trade-offs ("which option serves `OBJ-2` better?") and to identify work that needs a clearer purpose. Explicitly requested maintenance can proceed without inventing an objective id. ## Format (`docs/product/objectives.md`) ```markdown ## No session outlives logout (OBJ-2) - **Outcome:** a player who logs out cannot act again from any device until they log in. - **Measure:** 0 actions accepted after logout in the session-replay suite. - **Why:** 14 account-theft reports in Q3 came from stale sessions. - **Non-goals:** single sign-on; a device-management UI. - **Constraints:** → docs/architecture/auth.md - **Status:** proposed | committed | met | dropped ``` The heading is the outcome in words; the id follows it and is defined by the anchor. Ids are stable and never reused. Write in the glossary's terms; a term it lacks becomes a glossary candidate. ## 1. Gather Sources: - the files or notes in `$ARGUMENTS`; - `docs/product/`, `docs/capabilities/`, the README and any plans; - epics: `bd list -t epic --all --json`. Collect the stated goals and the implied ones (why does this epic exist?). Separate constraints (they go to `docs/architecture/`) and domain rules (`docs/domain/`). ## 2. Draft - Rewrite each goal as an Outcome plus a Measure. - When a goal is really a feature, ask "so that what?" until you reach an outcome. - Merge duplicates. - A goal you can't measure stays `proposed`, with the open question noted. ## 3. Ask in one batch Use the available question tool or chat for unresolved product choices. Preserve goals already confirmed by the operator without asking again. - **For each draft:** `single_select` with "As written ★", "Reword", "Not an objective" and "Go one level deeper". The `context` says where the draft came from. - **Priority** (`ranked`), when there are more than three objectives. - **Measures** (`form`: metric, threshold, by when), where they are unclear. - **Non-goals** (`multi_select`). Write in business language, with no file paths in the visible text. ## 4. Write and link - Write the file. Only what the operator confirmed is `committed`. - When an epic serves an existing objective, label it `objective:OBJ-n`. Flag unclear purpose for product work; maintenance and explicitly requested work need not invent a business objective. - New terms go to `/docs:glossary`.