orbitmap 0.5.0 → 0.6.0
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/LICENSE +21 -21
- package/dist/adapters/local/lists.d.ts +1 -1
- package/dist/adapters/local/lists.js +1 -1
- package/dist/adapters/local/lists.js.map +1 -1
- package/dist/adapters/local/rules.d.ts +1 -1
- package/dist/adapters/local/rules.js +1 -0
- package/dist/adapters/local/rules.js.map +1 -1
- package/dist/adapters/local/types.d.ts +1 -1
- package/dist/agent-instructions.d.ts +8 -7
- package/dist/agent-instructions.js +63 -62
- package/dist/agent-instructions.js.map +1 -1
- package/dist/commands/emit-instructions.d.ts +26 -0
- package/dist/commands/emit-instructions.js +68 -0
- package/dist/commands/emit-instructions.js.map +1 -0
- package/dist/commands/intent.js +7 -1
- package/dist/commands/intent.js.map +1 -1
- package/dist/commands/projects.d.ts +3 -0
- package/dist/commands/projects.js +28 -0
- package/dist/commands/projects.js.map +1 -0
- package/dist/commands/setup-agent.d.ts +67 -13
- package/dist/commands/setup-agent.js +283 -28
- package/dist/commands/setup-agent.js.map +1 -1
- package/dist/commands/start.js +2 -1
- package/dist/commands/start.js.map +1 -1
- package/dist/index.js +10 -2
- package/dist/index.js.map +1 -1
- package/dist/list-options.d.ts +1 -1
- package/dist/list-options.js +1 -1
- package/dist/list-options.js.map +1 -1
- package/package.json +1 -1
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 BTA Systems
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 BTA Systems
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -27,7 +27,7 @@ export declare const DEFAULT_STATUSES: {
|
|
|
27
27
|
readonly task: readonly ["todo", "in_progress"];
|
|
28
28
|
readonly issue: readonly ["open", "investigating"];
|
|
29
29
|
readonly idea: readonly ["pending", "accepted"];
|
|
30
|
-
readonly intent: readonly ["new", "design", "plan", "build"];
|
|
30
|
+
readonly intent: readonly ["new", "design", "plan", "build", "in_review"];
|
|
31
31
|
readonly mission: readonly ["new", "active"];
|
|
32
32
|
};
|
|
33
33
|
export interface ListPaging {
|
|
@@ -30,7 +30,7 @@ export const DEFAULT_STATUSES = {
|
|
|
30
30
|
task: ['todo', 'in_progress'],
|
|
31
31
|
issue: ['open', 'investigating'],
|
|
32
32
|
idea: ['pending', 'accepted'],
|
|
33
|
-
intent: ['new', 'design', 'plan', 'build'],
|
|
33
|
+
intent: ['new', 'design', 'plan', 'build', 'in_review'],
|
|
34
34
|
mission: ['new', 'active'],
|
|
35
35
|
};
|
|
36
36
|
/** The one spelling of "do not filter by status", accepted by every list since 9.0.0. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../src/adapters/local/lists.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EACL,cAAc,EACd,gBAAgB,EAChB,YAAY,GAEb,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EACL,kBAAkB,EAClB,cAAc,GAEf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAmB,MAAM,YAAY,CAAC;AAE9D,6FAA6F;AAC7F,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,IAAI,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC;IAC7B,KAAK,EAAE,CAAC,MAAM,EAAE,eAAe,CAAC;IAChC,IAAI,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC;IAC7B,MAAM,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"lists.js","sourceRoot":"","sources":["../../../src/adapters/local/lists.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export type VibeType = (typeof VIBE_TYPES)[number];
|
|
|
44
44
|
export declare const MISSION_STATUSES: readonly ["new", "active", "completed", "cancelled"];
|
|
45
45
|
export type MissionStatus = (typeof MISSION_STATUSES)[number];
|
|
46
46
|
/** §4.10 intents.status */
|
|
47
|
-
export declare const INTENT_STATUSES: readonly ["new", "design", "plan", "build", "done", "cancelled"];
|
|
47
|
+
export declare const INTENT_STATUSES: readonly ["new", "design", "plan", "build", "in_review", "done", "cancelled"];
|
|
48
48
|
export type IntentStatus = (typeof INTENT_STATUSES)[number];
|
|
49
49
|
/** §4.11 documents.type — defined once in `src/enums.ts`, shared with the commands. */
|
|
50
50
|
export type DocumentType = (typeof DOCUMENT_TYPES)[number];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/adapters/local/rules.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"rules.js","sourceRoot":"","sources":["../../../src/adapters/local/rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,7 +89,7 @@ export type IssueStatus = 'open' | 'backlog' | 'investigating' | 'resolved' | 'w
|
|
|
89
89
|
export type Severity = 'critical' | 'high' | 'medium' | 'low';
|
|
90
90
|
export type IdeaStatus = 'pending' | 'accepted' | 'used' | 'rejected';
|
|
91
91
|
export type MissionStatus = 'new' | 'active' | 'completed' | 'cancelled';
|
|
92
|
-
export type IntentStatus = 'new' | 'design' | 'plan' | 'build' | 'done' | 'cancelled';
|
|
92
|
+
export type IntentStatus = 'new' | 'design' | 'plan' | 'build' | 'in_review' | 'done' | 'cancelled';
|
|
93
93
|
export type DocumentType = 'spec' | 'architecture' | 'api' | 'guide' | 'decision' | 'changelog' | 'other';
|
|
94
94
|
export type DocumentStatus = 'draft' | 'published' | 'archived';
|
|
95
95
|
/** `areas/<slug>/tasks/TS-<num>.md` (spec §4.5). Body: `## Description` + `## Work Log`. */
|
|
@@ -31,17 +31,18 @@ export declare function parseInstalledMarkerVersion(content: string): string | n
|
|
|
31
31
|
export declare const SKILL_NAME = "orbitmap";
|
|
32
32
|
export declare const SESSION_FOCUS_SECTION = "## Session focus\n\nSESSION FOCUS \u2014 Ensure, don't call. A session focus file ({mission, intents (\u22643 typical \u2014\na SOFT cap: focus holds what the session is actively advancing), areas, agent_id,\nmatched_at}) lives in your session temp directory. If present and the agent identity\nmatches: do NOT call context. If missing or invalid \u2014 an identity or area mismatch\ninvalidates it \u2014 call `orbitmap context` once, match the conversation against its\nhandles, write the file, and STATE the match in one line \u2014 the intent's NAME, its number\nonly at first mention. Never narrow silently: every task query you send still carries\n`--intent` explicitly. An intent you just created or fetched joins the focus by its\nhandle \u2014 no context call. If a write fails INTENT_CLOSED: your focus is stale \u2014 re-derive\nand say so. Before creating a new intent or declaring none exists: fetch the 1\u20133 nearest\ncandidates with `intent show --no-logs` and judge from their bodies, not TL;DRs \u2014 a rule\nfor creation/dedup decision points only. If nothing matches: offer to frame an intent\n(brainstorm gate) \u2014 never create a bare shell; if declined, work from the fetched missions\nand intents (\"look wider\").\n\nTRANSIENT references never enter focus: an intent fetched for a dedup check or a\ncross-comparison is read and used, not focused; a real focus switch is stated aloud\n(\"focus now X, parking Y\"). The file is an optimization with graceful failure \u2014 the\nconversation is the primary carrier, the file only compaction insurance: no file \u2192 the\nensure rule above triggers one context call. Agent memory directories are the WRONG store\nfor focus (a cross-session lifetime means stale focus).";
|
|
33
33
|
export declare const FRESHNESS_SECTION = "## Freshness\n\nTwo universal rules \u2014 they apply to EVERY OrbitMap object, in every flow:\n- TRUST THE WRITE'S ECHO. A successful write already returns the updated object \u2014 the\n echo IS the current state. Never re-fetch an object just to verify a write you made.\n- COMPARE THE HELD MARKER BEFORE RE-FETCHING ANYTHING BIG. Every full fetch hands you a\n change marker \u2014 the `updated_at` + `last_log_id` pair on intents (tasks and missions\n carry the pair too), `version` on documents. Hold it; re-fetch only on a mismatch.\n\nPROBE FLOW (intents): the session focus file remembers each focused intent's\n`updated_at` + `last_log_id` pair from the last FULL fetch. To check whether an\nintent moved, run `orbitmap intent show IN-x --slim` \u2014 a ~150-token probe (handle,\nTL;DRs, areas, mission, task counts, the pair). Pair unchanged \u2192 the intent has not\nmoved: SAY SO in one line and keep working from what you hold \u2014 no full fetch. Pair\nchanged \u2192 re-fetch (`intent show IN-x`, with `--no-logs` when the log tail is not\nneeded) and remember the new pair in the focus file.";
|
|
34
|
+
export declare function worklogKeepDropTest(indent?: string): string;
|
|
34
35
|
export declare const SKILL_ORBITMAP_FRONTMATTER = "---\nname: orbitmap\ndescription: >\n OrbitMap project management via the orbitmap CLI. Use when the user mentions OrbitMap,\n orbit, tasks, backlog, missions, intents, ideas, issues, vibes, or asks to track,\n plan, or log work. Entry point: object model, context resolution, command reference.\n---";
|
|
35
36
|
export declare const SKILL_ORBITMAP_BODY = "# OrbitMap CLI \u2014 core\n\nOrbitMap is an agentic project management platform. You interact with it exclusively\nthrough the `orbitmap` CLI (run with `npx orbitmap \u2026` if not on PATH). The CLI works\nidentically in cloud mode and local-files mode \u2014 never assume which one is active, and\nnever read or write the workspace's data files directly. The CLI is the only interface.\n\n## Goal\nOperate OrbitMap correctly: ensure session focus (below) instead of ritually calling\ncontext, act on the mission and intents the session is about, write every item to the area\nthe work belongs to, and go through the CLI only \u2014 never the data files.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## General behaviour\n- Always prioritise the user's direct request. If the user asks you to do something\n (read a file, write code, answer a question), handle that first.\n- Only interact with OrbitMap when the user explicitly asks you to (e.g. \"check my\n tasks\", \"start a task\", \"what's on my backlog\", \"log this idea\").\n- When the user mentions OrbitMap, orbit, task, backlog, or project-management concepts\n in the context of tracking work, use `orbitmap` commands to handle the request.\n\n## Object model\n- Workspace = team level. Area = repo-level scope (formerly Project) \u2014 tasks, vibes and\n most issues live in an area. Mission (MS-) = time-boxed workspace focus; at most one\n active. Intent (IN-) = workspace-level goal grouping tasks/issues. Idea (ID-) = future\n possibility, not a problem. Issue (IS-) = problem/bug. Vibe (VB-) = ad-hoc work log\n outside a task. Task (TS-) = unit of work.\n- Entity numbers (TS-xxxxxx etc.) are accepted by every command that takes an id.\n\n## Session focus\n\nSESSION FOCUS \u2014 Ensure, don't call. A session focus file ({mission, intents (\u22643 typical \u2014\na SOFT cap: focus holds what the session is actively advancing), areas, agent_id,\nmatched_at}) lives in your session temp directory. If present and the agent identity\nmatches: do NOT call context. If missing or invalid \u2014 an identity or area mismatch\ninvalidates it \u2014 call `orbitmap context` once, match the conversation against its\nhandles, write the file, and STATE the match in one line \u2014 the intent's NAME, its number\nonly at first mention. Never narrow silently: every task query you send still carries\n`--intent` explicitly. An intent you just created or fetched joins the focus by its\nhandle \u2014 no context call. If a write fails INTENT_CLOSED: your focus is stale \u2014 re-derive\nand say so. Before creating a new intent or declaring none exists: fetch the 1\u20133 nearest\ncandidates with `intent show --no-logs` and judge from their bodies, not TL;DRs \u2014 a rule\nfor creation/dedup decision points only. If nothing matches: offer to frame an intent\n(brainstorm gate) \u2014 never create a bare shell; if declined, work from the fetched missions\nand intents (\"look wider\").\n\nTRANSIENT references never enter focus: an intent fetched for a dedup check or a\ncross-comparison is read and used, not focused; a real focus switch is stated aloud\n(\"focus now X, parking Y\"). The file is an optimization with graceful failure \u2014 the\nconversation is the primary carrier, the file only compaction insurance: no file \u2192 the\nensure rule above triggers one context call. Agent memory directories are the WRONG store\nfor focus (a cross-session lifetime means stale focus).\n\n## Freshness\n\nTwo universal rules \u2014 they apply to EVERY OrbitMap object, in every flow:\n- TRUST THE WRITE'S ECHO. A successful write already returns the updated object \u2014 the\n echo IS the current state. Never re-fetch an object just to verify a write you made.\n- COMPARE THE HELD MARKER BEFORE RE-FETCHING ANYTHING BIG. Every full fetch hands you a\n change marker \u2014 the `updated_at` + `last_log_id` pair on intents (tasks and missions\n carry the pair too), `version` on documents. Hold it; re-fetch only on a mismatch.\n\nPROBE FLOW (intents): the session focus file remembers each focused intent's\n`updated_at` + `last_log_id` pair from the last FULL fetch. To check whether an\nintent moved, run `orbitmap intent show IN-x --slim` \u2014 a ~150-token probe (handle,\nTL;DRs, areas, mission, task counts, the pair). Pair unchanged \u2192 the intent has not\nmoved: SAY SO in one line and keep working from what you hold \u2014 no full fetch. Pair\nchanged \u2192 re-fetch (`intent show IN-x`, with `--no-logs` when the log tail is not\nneeded) and remember the new pair in the focus file.\n\n## Context\n- Ensure session focus (above) \u2014 at most ONE `orbitmap context` call per session, and none\n while a valid focus file is held. `orbitmap context` is authoritative MATCHING MATERIAL:\n your agent identity, the missions and intents as handles with TL;DR summaries, standalone\n mission workitems, the areas you work in, and document metadata. It carries no task\n lists and no bodies \u2014 fetch deeper on demand (`orbitmap intent show IN-x`,\n `orbitmap tasks --intent IN-x`, `orbitmap doc <slug>`). Never list areas and never\n ask the user \"which area?\" before you have read it.\n- You work in a WORKSPACE, not inside a single area. Missions, intents\n and documents are workspace-level and take no area \u2014 a document is exactly ONE copy,\n global to the workspace, never per-area. Tasks, vibes, issues and ideas are\n AREA-scoped.\n- Missions and intents outrank individual tasks. Asked to work on \"what matters\", take the\n active mission and open intents from context and pick work that serves them.\n- The area follows from the directory, never from a question to the user:\n `.orbitmap/config.json` maps directories \u2192 area slugs at the workspace root, and each\n area directory carries its own `.orbitmap/config.json` marker naming its area. That\n config is the only source of truth \u2014 never hard-code area names anywhere.\n So: do area-scoped work from the directory it belongs to and let the CLI resolve it.\n- `--area <slug>` is an OVERRIDE for a single call, not part of normal usage \u2014 reach for it\n only to read or write outside the area the current directory resolves to.\n- If a command fails with `AREA_CONTEXT_REQUIRED`, its details list the mapped\n directories: cd into the right one, or retry with `--area <slug>`.\n- WRITES: the resolved area is a default for *reading*, never a statement of where the\n work belongs. Before creating anything area-scoped (task, subtask, issue, vibe),\n derive the target area from the work itself (which repo/package it lives in) and pass\n `--area <slug>` if that differs from the area the CLI echoes. If the work itself is\n genuinely ambiguous, ASK THE USER; do not guess. There is no\n `move` command: a write in the wrong area has to be recreated.\n- Every write echoes its scope on stderr: `creates in area <slug> (source: \u2026)` when it\n creates an object, `scoped to area <slug> (source: \u2026)` when it changes one by id. A\n `source` of `global ~/.orbitmap/config.json` is a machine-wide leftover that nothing\n here chose \u2014 treat it as unconfirmed and pass `--area` explicitly.\n\n## Task or intent?\n\nAn intent earns its gates when the work carries knowledge someone would otherwise\nre-derive or re-litigate: a decision with a rejected alternative, a design that outlives\nthe change, a constraint worth recording. Work with none of that \u2014 a typo, a copy tweak,\nan obvious one-file fix \u2014 is a task: create it, do it, log it, done. The same test the\nwork log uses for what to write down. If a \"small\" fix turns out to hide a real decision,\nstop and frame it; discovering that mid-change is normal, not a failure.\n\n## Task statuses\nbacklog, todo, in_progress, in_review, review_changes, done, blocked.\n`orbitmap tasks` defaults to todo,in_progress. Ask for others explicitly, e.g.\n`orbitmap tasks --status backlog` when the user asks about the backlog.\n\n## Listing tasks\n- A list spans EVERY area you can reach and EVERY assignee \u2014 nothing narrows it to the\n current directory or to you. It is capped at 30 rows with the totals behind the cap\n printed, and every list states the filters that produced it. Read that line before you\n answer from a list.\n- While you are executing an intent, EVERY task query carries `--intent IN-x`. Nothing\n narrows a list to an intent on your behalf: a bare `orbitmap tasks` is you having\n deliberately left the intent to look at the whole workspace.\n- `orbitmap intent show IN-x` already carries the intent's own tasks, so intent lifecycle\n work needs no filter at all. `orbitmap tasks --intent IN-x` is the escape hatch for the\n times you want the task-list shape \u2014 statuses, assignees, the filter line \u2014 instead.\n\n## Command reference (all commands accept --json)\n- Context: `orbitmap context` (once per session at most \u2014 see Session focus),\n `orbitmap overview`, `orbitmap areas`\n (rarely needed \u2014 context already lists the areas you work in)\n- Tasks: `orbitmap tasks [--status s1,s2] [--intent IN-x]`, `orbitmap task TS-x`,\n `orbitmap get <ID>`,\n `orbitmap start [TS-x]`, `orbitmap status TS-x <status> [--delivery <d>]`,\n `orbitmap create \"title\" [--intent IN-x|--mission MS-x] [--priority p]`,\n `orbitmap subtask TS-parent \"title\"`, `orbitmap assign TS-x [agent]`,\n `orbitmap dep add|remove TS-a TS-b`, `orbitmap log TS-x \"msg\" --type <t>`\n- Issues: `orbitmap issue register|list|show|status|resolve`\n- Ideas: `orbitmap idea add|list|show|status`\n- Vibes: `orbitmap vibe log|list|show`\n- Missions: `orbitmap mission list|show|create|update|status|link|unlink`\n- Intents: `orbitmap intent list|show|create|update|link|unlink`\n (`show` embeds the context bundle \u2014 `--no-bundle` strips it, `--slim` is the\n freshness probe, `--no-logs` skips the log tail)\n- Documents: `orbitmap docs`, `orbitmap doc <slug> [--section \"## H\"|--full]`,\n `orbitmap doc-import`, `orbitmap doc-update`\n\n## Error handling\n- If OrbitMap is unreachable (network down / workspace directory unavailable), inform\n the user and continue the primary work without logging. Do NOT retry failed orbitmap\n calls in a loop \u2014 report the issue and proceed with the task.";
|
|
36
37
|
export declare const SKILL_EXECUTE_FRONTMATTER = "---\nname: orbitmap-execute\ndescription: >\n Executing OrbitMap work \u2014 the fourth gate of the product-building flow. Two flows:\n \"execute IN-x\" delivers a whole planned intent in the background (parallel worker\n waves, per-task tests, the intent test, an impact pass against a baseline, a\n goal-based fix loop, everything ending in_review on an intent branch \u2014 merging stays\n the user's), and \"work on TS-x\" runs a single tracked task (starting/resuming,\n logging, finishing with the correct status, git branches and delivery status). Use\n whenever executing a planned intent or implementing, resuming, or finishing a\n tracked task.\n---";
|
|
37
|
-
export declare const SKILL_EXECUTE_BODY = "# Executing OrbitMap work\n\n## Goal\nDeliver work and leave Orb an accurate record. Flow A takes a PLANNED intent to delivered:\nevery task built and tested, the intent test and an impact pass green against a pre-run\nbaseline, all tasks `in_review` on an intent branch \u2014 merging and closing stay the user's.\nFlow B takes ONE tracked task from start to a correct finish. Both end with the right\nstatuses, delivery and worklog so the next agent can resume.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## Choosing a flow\n- \"execute IN-x\", \"deliver this intent\", \"run the plan\" \u2192 **Flow A** (orchestration).\n- \"work on TS-x\", \"start a task\", a vague \"work on what's important\" \u2192 **Flow B**.\n- Flow A dispatches workers that follow `references/worker-contract.md` (shipped next to\n this file) \u2014 a worker reads that contract, not this skill.\n\n## Key principles\n- **The contract is the outcome, not a checklist.** The run works as long as needed to\n deliver the intent with all gates green \u2014 never \"tried N times, giving up\".\n- **Autonomy: decide and log.** A judgment call within the design \u2192 decide, keep going,\n log it if it passes the keep/drop test. A stuck task \u2192 `blocked` with a logged blocker\n while the REST of the intent continues. Interrupt the user ONLY for intent-level risk: a\n design contradiction, an unfixable intent test. Never a silent skip; never the whole run\n dying for one task.\n- **No new bugs, checkably.** Capture a test BASELINE before touching anything. A\n regression is a failure NOT in the baseline \u2014 pre-existing failures/flakes are neither\n blamed on the run nor silently counted green. What the run broke, the run fixes.\n- **Merging is human.** The run holds commit authority only \u2014 never merge, never push to\n the default branch, never close tasks or the intent as `done`. The branch is the user's\n review boundary.\n- **Distrust and verify.** Instructions age; the tree is the truth. Re-grep any claim a\n task's instructions make about the code (\"X lives in Y\", \"verified list of call sites\")\n before relying on it.\n- **Every task query names the intent.** While executing IN-x, EVERY task query carries\n `--intent IN-x`. A list otherwise spans every area you can reach and every assignee,\n capped at 30 rows with the totals printed and the filters that produced it stated on\n the list \u2014 so a bare `orbitmap tasks` is you deliberately stepping OUTSIDE the intent,\n never a shortcut to it. `orbitmap intent show IN-x` already carries the intent's own\n tasks, so the intent lifecycle steps below need no filter at all; `--intent` is the\n escape hatch for the times you want the task-list shape instead.\n- **The orchestrator owns shared state.** Workers never run git, never use the shared\n test DB, never format, never change dependencies, and never write OrbitMap beyond\n appending to their OWN task's work log \u2014 commits, statuses, formatting and test gates\n all happen at fold time, in the orchestrator.\n- **Freshness** (see Freshness in the `orbitmap` skill): trust each write's echo \u2014 never\n re-fetch to verify your own write; before any big re-fetch compare the held\n `updated_at`/`last_log_id` pair, probing with `orbitmap intent show IN-x --slim`.\n- **Never end the run to wait.** Shared gates QUEUE safely: run them in the foreground\n and wait on the command (generous timeout); an overrun that gets backgrounded resumes\n you on completion. Ending your turn is only for: run COMPLETE, or hard-blocked and\n logged \u2014 a background run that yields to \"wait for a signal\" is a dead run.\n\n## Flow A \u2014 execute IN-x (whole intent)\n1. **Premise check.** IN-x joins your session focus by its handle \u2014 no context call\n (see Session focus in the `orbitmap` skill). `orbitmap intent show IN-x`: it must\n exist, be at status `build`,\n and have tasks with agent_instructions. Anything missing \u2192 refuse politely and point at\n the missing gate (`orbitmap-brainstorm` for no outcome, `orbitmap-design` for no\n design, `orbitmap-plan` for no tasks). Read the outcome, design, plan field and work\n log in full \u2014 they are the run's spec.\n2. **Repos & baseline.** The touched repos follow from the tasks' areas \u2014 an intent may\n span several. Resolve each area to a directory in this order: the workspace's mapped\n directories (`orbitmap context` / `.orbitmap/config.json`), the workspace or repo\n CLAUDE.md (repo tables), the area's own description (`orbitmap areas` \u2014 descriptions\n often name the repo). NEVER guess a directory: an unmappable area blocks its tasks and\n their dependents, logged, while the rest of the run continues. Each repo's BASE branch\n is where its work lands per the workspace docs (e.g. develop); undocumented \u2192 the\n repo's current default branch, decide-and-log. Then run each touched repo's full gate\n once; record suite counts and every pre-existing failure/flake. Reuse a baseline when\n the repo's HEAD already has a green result recorded this session. A gate that cannot\n COMPLETE (a pre-existing hang) is itself a finding: register it as an issue, then\n baseline by subsets so every suite is still covered, and compare like with like.\n3. **Branch.** In each touched repo, create `intent/<IN-number>-<name-slug>` (e.g.\n `intent/7bcc4y-execute-skill-v2`) from its base branch (step 2). Honor a task's own\n `branch_name` only when that task genuinely needs isolation.\n4. **Wave loop** \u2014 repeat while runnable tasks remain:\n - Ready-set: unstarted tasks whose dependencies are all folded; `blocked` tasks and\n tasks depending on them drop out (log a blocker on those left unrunnable).\n - Size the wave by GATE CONTENTION, not a constant: tasks needing the shared test DB\n \u22644 concurrent (the gate serialises anyway); light, file-disjoint tasks (docs,\n separate repos) as wide as the ready-set \u2014 10+ is fine.\n - Dispatch one worker (subagent) per task, writing `orbitmap status TS-x in_progress`\n at dispatch. Pass ORBITMAP_API_KEY + ORBITMAP_API_URL into the worker's env \u2014 the\n worker logs its OWN task as it builds, per the contract. Prompt = the task number,\n its agent_instructions PASTED VERBATIM (never make a worker fetch its own spec),\n the repo path, the exact files it owns, and one line: \"Follow\n references/worker-contract.md of the orbitmap-execute skill.\" Worktree isolation\n ONLY when same-repo tasks in the wave overlap on files; otherwise slice the wave\n file-disjoint in one tree; cross-repo needs nothing.\n - FOLD the workers' results sequentially in dependency order, a gate between folds:\n integrate one task \u2192 scoped tests \u2192 formatter \u2192 commit `[TS-x] \u2026` (one commit may\n carry several tasks that verify as one unit) \u2192 log ONLY what the fold itself\n learns (keep/drop test) \u2014 the worker wrote its own narrative; do not re-write it \u2192\n `orbitmap status TS-x in_review --delivery on_branch`.\n - A task neither the worker nor the fold can save \u2192 `orbitmap log TS-x \"Blocked: \u2026\"\n --type blocker` + `orbitmap status TS-x blocked` THE MOMENT the worker reports it,\n not at fold \u2014 the run CONTINUES without it.\n Its dependents leave the ready-set with their own logged blocker but KEEP their\n status (backlog): they are waiting, not failed.\n - Recompute the ready-set; next wave.\n5. **Intent test.** The plan gate guarantees an intent-level test task; run it LAST \u2014\n and run it AS THE ORCHESTRATOR, never a worker: it needs the shared gates and the\n live app, exactly what the worker contract forbids workers.\n6. **Impact pass.** Full gate per touched repo, diffed against the baseline \u2014 a regression\n is a failure not in the baseline. When an API response shape moved, also run the\n contract-coupling steps (regenerate the committed spec, refresh the consumer's vendored\n fixtures) before judging the gates.\n7. **Fix loop.** Every regression or intent-test failure \u2192 a fix, gated by scoped tests;\n after the LAST fix the full pass runs again. NO round cap \u2014 loop until every task is\n delivered or honestly blocked and the gates are green vs baseline. An unfixable intent\n test or a design contradiction \u2192 STOP and ask the user: that is intent-level risk, the\n one thing that interrupts.\n8. **Report + resume note.** Leave every repo checked out on its BASE branch \u2014 the\n intent branch is named in the report, not left underfoot. Report in chat: what\n shipped, what was decided, what is blocked and why, deviations from the plan, gate\n results vs baseline. Write ONE resume\n point: `orbitmap log IN-x \"Resume point: \u2026\" --type note`. The intent STAYS `build`;\n merging and closing are the USER'S. The merge EVENT \u2014 whoever performs it \u2014 is what\n later flips the tasks to `--delivery merged`.\n\n**No subagent runtime?** Same flow, serial: do steps 4\u20137 yourself, task by task, with the\nworker contract as your own build rules. The contract is the outcome, not the parallelism.\n\n## Process flow (Flow A)\n```dot\ndigraph orbitmap_execute {\n \"Premise: intent at build, tasks with instructions?\" [shape=diamond];\n \"Refuse politely; point at the missing gate\" [shape=box];\n \"Baseline: full gate per touched repo, results recorded\" [shape=box];\n \"Branch intent/<number>-<slug> per touched repo\" [shape=box];\n \"Compute ready-set from dependency edges\" [shape=box];\n \"Size wave by gate contention; dispatch workers (worktrees only on file overlap)\" [shape=box];\n \"Fold sequentially, gate between folds: scoped tests, format, commit [TS-x], log, in_review on_branch\" [shape=box];\n \"Stuck task: blocked + logged blocker; run continues\" [shape=box];\n \"Runnable tasks remain?\" [shape=diamond];\n \"Run the intent test task (last)\" [shape=box];\n \"Impact pass: full gate per repo, diff vs baseline (+contract steps)\" [shape=box];\n \"Regressions or intent-test failures?\" [shape=diamond];\n \"Fix findings, scoped tests per fix\" [shape=box];\n \"Intent-level risk: stop and ask the user\" [shape=box];\n \"Report + resume note; intent stays build; user merges\" [shape=doublecircle];\n\n \"Premise: intent at build, tasks with instructions?\" -> \"Refuse politely; point at the missing gate\" [label=\"no\"];\n \"Premise: intent at build, tasks with instructions?\" -> \"Baseline: full gate per touched repo, results recorded\" [label=\"yes\"];\n \"Baseline: full gate per touched repo, results recorded\" -> \"Branch intent/<number>-<slug> per touched repo\";\n \"Branch intent/<number>-<slug> per touched repo\" -> \"Compute ready-set from dependency edges\";\n \"Compute ready-set from dependency edges\" -> \"Size wave by gate contention; dispatch workers (worktrees only on file overlap)\";\n \"Size wave by gate contention; dispatch workers (worktrees only on file overlap)\" -> \"Fold sequentially, gate between folds: scoped tests, format, commit [TS-x], log, in_review on_branch\";\n \"Size wave by gate contention; dispatch workers (worktrees only on file overlap)\" -> \"Stuck task: blocked + logged blocker; run continues\" [label=\"worker stuck\"];\n \"Stuck task: blocked + logged blocker; run continues\" -> \"Runnable tasks remain?\";\n \"Fold sequentially, gate between folds: scoped tests, format, commit [TS-x], log, in_review on_branch\" -> \"Runnable tasks remain?\";\n \"Runnable tasks remain?\" -> \"Compute ready-set from dependency edges\" [label=\"yes\"];\n \"Runnable tasks remain?\" -> \"Run the intent test task (last)\" [label=\"no\"];\n \"Run the intent test task (last)\" -> \"Impact pass: full gate per repo, diff vs baseline (+contract steps)\";\n \"Impact pass: full gate per repo, diff vs baseline (+contract steps)\" -> \"Regressions or intent-test failures?\";\n \"Regressions or intent-test failures?\" -> \"Fix findings, scoped tests per fix\" [label=\"yes\"];\n \"Fix findings, scoped tests per fix\" -> \"Impact pass: full gate per repo, diff vs baseline (+contract steps)\" [label=\"re-run\"];\n \"Fix findings, scoped tests per fix\" -> \"Intent-level risk: stop and ask the user\" [label=\"unfixable / contradiction\"];\n \"Regressions or intent-test failures?\" -> \"Report + resume note; intent stays build; user merges\" [label=\"no\"];\n}\n```\n\n## Flow B \u2014 work on TS-x (single task)\n1. Ensure session focus (see Session focus in the `orbitmap` skill): a valid focus file\n means NO context call; missing or invalid \u2192 one `orbitmap context` call, match the\n conversation against its handles, and state the match in one line. A directly named\n TS-x needs no matching at all \u2014 fetch it. Never ask which area; never list areas first.\n2. Unfinished work (`orbitmap tasks --status in_progress`, with `--intent IN-x` while\n focused on an intent) \u2192 `orbitmap task TS-x` \u2192 read the work log \u2192 resume from the\n resume point.\n3. Otherwise pick work serving the active mission / open intents, or `orbitmap start` \u2014\n auto-picks the first todo task, sets it in_progress and prints full context.\n `orbitmap start TS-x` begins a specific task; `orbitmap task TS-x` only inspects.\n Nothing to pick up \u2192 inform the user.\n4. Read agent_instructions before implementing \u2014 task-level overrides area-level \u2014 then\n distrust-and-verify their claims against the tree.\n5. Work on ONE task at a time. Implement, run the task's tests, commit `[TS-x] \u2026`.\n6. Log as you work (below); finish per \"End of session or task\".\n\n## Logging (both flows)\n- `orbitmap log TS-x \"\u2026\" --type note|code_change|decision|blocker` \u2014 work WITHIN a task.\n- CADENCE IS A TEST, not a schedule: log when knowledge arises that git cannot\n reconstruct \u2014 a spec claim that failed verification, a decision with a rejected\n alternative, a blocker the moment it blocks, a discovery or risk outside the task's\n boundary, what a failing gate revealed. NOT file lists, test counts or progress\n narration. 1\u20133 entries on a normal task \u2014 losing nothing is the goal, volume is not.\n A long task whose whole log lands at the end is refused (WORK_LOG_RECONSTRUCTED) \u2014\n log during, not after.\n- `orbitmap vibe log \"\u2026\" --type discovery|exploration|fix` \u2014 ad-hoc work outside a task.\n- `orbitmap idea add` \u2014 future possibilities, NOT problems (problems \u2192\n `orbitmap issue register`).\n- `note` is the CATCH-ALL: anything useful that is not a `code_change`, `decision` or\n `blocker` goes in as `note`, with `--meta` carrying any unusual structure. There is\n deliberately NO `other` type. NEVER write `status_change` \u2014 the server authors it on\n every transition and the API rejects it from clients.\n- KEEP/DROP TEST \u2014 log a `decision` when ANY of these is true: an alternative was\n considered and REJECTED (record which, and why it lost); a non-obvious assumption or\n constraint was LOCKED IN; a choice was made that a later reader would otherwise\n re-litigate. Do NOT log: restating the outcome, design or plan (they are already\n fields on the intent); confirming something already written down elsewhere; mechanical\n facts recoverable from git, CI or the tracker (test counts, file lists, commit hashes);\n progress narration (\"started X\", \"working on Y\").\n KEEP \u2192 \"Parallelised the build across four subagents; the Laravel slices were split by\n file ownership to avoid collisions in one working tree.\" \u2014 records the rejected\n alternative (one agent per repo) and why it lost.\n DROP \u2192 \"make verify green at 2415 passed after merging all four agents.\" \u2014 a mechanical\n fact already in the commit message and the CI output.\n- Promote to the parent intent \u2014 TWO filters, BOTH must pass: the entry is a `decision` or\n `blocker` (never `note`/`code_change`), AND it passes the keep/drop test. Then ALSO\n write a SECOND, separately-worded entry for a reader who never saw the task:\n `orbitmap log IN-x \"<the decision and why>\" --type decision --meta\n '{\"source\":{\"type\":\"task\",\"id\":\"<task-uuid>\"}}'` (fall back to the TS- number if you\n lack the UUID). Two distinct entries, never one shared row.\n\n## End of session or task \u2014 MANDATORY\n- Task finished \u2192 default to **in_review** so a human verifies before closing:\n `orbitmap log TS-x \"Ready for review: \u2026\" --type note` then\n `orbitmap status TS-x in_review` (add `--delivery on_branch` when code was committed).\n- Task finished AND the user's prompt or the task's agent_instructions explicitly say to\n close without review \u2192 log a summary `note`, then `orbitmap status TS-x done`.\n- Blocked by something outside your control \u2192 `orbitmap log TS-x \"Blocked: <reason>\"\n --type blocker` then `orbitmap status TS-x blocked`.\n- Session ending, task unfinished but NOT blocked \u2192 `orbitmap log TS-x \"Resume point: \u2026\"\n --type note` \u2014 leave status in_progress.\n- NEVER leave a task without a final log entry \u2014 the final entry closes a record that\n already exists; it is never the record.\n- Closing the intent (ONLY when the user explicitly asks \u2014 Flow A never does) \u2192 the\n transition must carry the build phase's entries (`--log <type>:<content>` is\n repeatable): `orbitmap intent update IN-x --status done --log code_change:\"<what was\n built>\" --log note:\"<what remains>\"`. A transition carrying no `--log` is REFUSED (422)\n and writes nothing at all.\n\n### Status decision guide\n- **in_review**: work finished. THE DEFAULT \u2014 the requester verifies before closing.\n- **done**: only when the prompt or agent_instructions explicitly allow closing without\n review. \"Do this task\" is NOT permission to auto-close.\n- **blocked**: an external factor stops you. Always log the specific blocker.\n- **in_progress** (keep): session ends but you can resume autonomously next time.\n\n## Git & delivery\n- Flow B: when the task context carries a `branch_name`, create or switch to it; without\n one, stay on the current branch \u2014 and never work directly on main/master/develop.\n- Commit messages: prefix the entity number with its type tag \u2014\n `[TS-r5d8zf] Add delivery status field` (also `[IS-\u2026]`, `[ID-\u2026]`, `[VB-\u2026]`).\n- Committed/pushed code during a task \u2192 finish with `--delivery on_branch`.\n- Asked what's in a branch/PR: `git log target..source --oneline`, parse the `[TS-\u2026]`\n tags, report the matched entities.\n- The delivery status follows the merge/release EVENT, whoever performs it: on a merge\n update the affected tasks with `--delivery merged`; on a release, `--delivery released`.\n\n## Rules\n- Flow A never merges, never pushes to the default branch, never closes tasks or the\n intent as `done` \u2014 the run ends at `in_review` on the intent branch, intent at `build`.\n- Baseline before any change; \"no new bugs\" = no failure absent from the baseline.\n- The fix loop is goal-based \u2014 no round cap; termination is delivered-or-blocked plus\n green gates, never a retry budget.\n- Decide-and-log within the design; `blocked` + continue for a stuck task; interrupt the\n user only for intent-level risk. Never a silent skip.\n- Workers follow `references/worker-contract.md`: no git, no shared test DB, no\n formatter, no dependency changes, no OrbitMap writes beyond their own task's log \u2014\n the orchestrator owns all of those.\n- Flow B works on ONE task at a time.\n- Always read agent_instructions before implementing, then re-verify their claims against\n the tree (distrust-and-verify).\n- Agents with a plan mode: an implementation plan for a tracked task MUST include the\n lifecycle as explicit steps \u2014 first the task number/title, last the final `orbitmap log`\n + `orbitmap status` per the status decision guide.\n- NEVER leave a task without a final log entry \u2014 it closes a record that already exists,\n never IS the record; never author `status_change`; an intent transition without\n `--log` entries is refused (422).";
|
|
38
|
+
export declare const SKILL_EXECUTE_BODY: string;
|
|
38
39
|
export declare const SKILL_EXECUTE_REFERENCES: Readonly<Record<string, string>>;
|
|
39
40
|
export declare const SKILL_PLAN_FRONTMATTER = "---\nname: orbitmap-plan\ndescription: >\n Planning an intent's design into executable tasks in OrbitMap \u2014 the third gate of the\n product-building flow (after design). Decomposes the agreed design into Orb-hierarchy\n tasks that provably cover the intent: tests per task + an intent-level test, a coverage\n hard-gate, correct-area placement, self-contained context/doc-grounded agent_instructions,\n cross-task notes in the intent plan field, and a doc-update-after-green step; then creates\n the tasks and hands off to orbitmap-execute. Use for \"plan this intent\", \"break this down\n into tasks\", an intent entering `plan` status \u2014 and for general planning (missions,\n intents, promoting ideas, triaging issues).\n---";
|
|
40
|
-
export declare const SKILL_PLAN_BODY = "# Planning a design into executable tasks\n\n## Goal\nProduce the intent's PLAN \u2014 a validated set of executable Orb tasks (with tests and\ndependencies) that fully covers the design \u2014 and create those tasks. The task set plus the\nplan-field notes are this gate's one deliverable.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## The outcome is the north star; the design is its communication form\nThe tasks you plan exist to REALISE the intent's OUTCOME \u2014 the outcome is the north star,\nthe direction everything heads toward. The design is NOT the end; it is the agreed\ncommunication form that expresses HOW the outcome gets built. So plan against the design,\nbut keep the outcome as the test: every task, and the plan as a whole, must move the\noutcome closer \u2014 and if the design and the outcome ever disagree, the OUTCOME wins; surface\nthe gap rather than planning to a design that misses it. Read the outcome AND the design\nfirst; every task traces back to both. If the design is missing or too thin to plan against\n(the intent has not been through the design gate), STOP and step aside to `orbitmap-design`\n\u2014 do not decompose an unsettled design.\n\n## The plan field may hold seed notes\nThe intent's `plan` field may already carry seed notes \u2014 build-order, task ideas and\nexecution risks that the `orbitmap-brainstorm` gate (or the user) filed there earlier. If\nit does, read them FIRST and treat them as your HIGHEST-PRIORITY input: the USER-marked\nnotes outrank your own ideas and any agent notes. Absorb them into the plan you build, then\nlet your finished plan-field write REPLACE them (absorb, then replace). If the field already\nholds a real plan (notes + summary) instead of seed notes, treat it as an existing plan to\nrefine.\n\n## Key principles\n- **Cover the whole design.** The plan is complete only when every part of the design maps\n to at least one task and the task set, executed, delivers the outcome. Under-coverage is\n the main failure mode \u2014 the coverage check is a HARD GATE, not a nicety.\n- **Every task is testable, and the intent is tested.** Each task carries its own tests;\n the intent gets ONE test that proves the whole outcome.\n- **Every task is self-contained.** A fresh execute-agent with ZERO prior context must\n succeed from the task alone \u2014 so its `agent_instructions` carry the task's own summary,\n the Orb context and doc pointers it needs, and its acceptance/tests.\n- **Flat tasks, no subtasks.** Decompose into a flat list of tasks; this gate does NOT use\n subtasks. Express structure through dependencies, not nesting.\n- **Dependencies live in two places.** Wire the Orb dependency EDGE (`orbitmap dep add`) so\n `orbitmap-execute` can compute the ready-set and order/parallelise work \u2014 AND name the\n blocker and WHY inside the dependent task's own instructions (\"depends on TS-x: needs the\n schema it produces\"), so a zero-context agent sees it without querying the graph.\n- **Right area.** Derive each task's area from the work itself (which repo/package), not\n from where you happen to be; pass `--area <slug>` when it differs.\n- **Ground in verified reality.** Read the design, the relevant doc bodies and the repo\n before decomposing \u2014 never plan against a stale or assumed state.\n- **Know the neighbourhood.** Reuse or extend the intent's EXISTING tasks \u2014 never silently\n re-decompose work that already exists.\n- **One question at a time; ask sparingly; prefer multiple choice.** When you must ask,\n offer enumerable options with a recommended default; open questions are a last resort.\n\n## Hierarchy\nMission (MS-) \u2192 Intent (IN-) \u2192 Task (TS-) / Issue (IS-). Missions and intents are\nworkspace-level and take no area; tasks and issues are area-scoped. An intent groups the\ntasks/issues that realise one goal; a mission time-boxes a set of intents toward an\noutcome. At most ONE mission is active at a time. RULE (intent-exclusive): an item linked\nto an intent gets its mission THROUGH the intent \u2014 never set a direct mission on a\ntask/issue that has an intent; the CLI enforces this.\n\n## Dependencies\n- **Two layers, always.** The Orb dependency EDGE (`orbitmap dep add TS-a TS-b` \u2014 a\n depends on b) is machine-readable, so `orbitmap-execute` computes the ready-set, orders\n work, and runs independent tasks in parallel. The one-line \"depends on TS-x: <why>\" in\n the dependent task's `agent_instructions` is what a zero-context agent reads without\n querying the graph. Do both for every dependency.\n- **Only REAL blockers.** Add an edge only when a task genuinely cannot start until another\n is done \u2014 it needs that task's output (a schema, an interface, a bumped contract). Never\n encode mere preference or \"feels tidier\" ordering: false dependencies serialise work that\n could have run in parallel.\n- **Depend on the smallest thing.** If a task needs just one artifact from its predecessor,\n say exactly that in the note; do not over-couple whole tasks when one output suffices.\n- **Keep the DAG shallow and wide.** Prefer many independent tasks over a long chain \u2014 a\n deep chain forces serial execution and slows the whole intent. Split or re-cut to widen\n where the design allows.\n- **At least one ready task.** Some task must have NO dependencies \u2014 that is where execution\n starts. A plan where everything depends on something else cannot begin; re-cut it.\n- **No cycles.** If A depends on B and B on A, the task boundaries are wrong \u2014 re-cut them.\n- **Cross-area dependencies are first-class.** Provider-before-consumer across repos (e.g. a\n contract/schema change in one area before the tasks that re-vendor it in others) is a real\n edge \u2014 wire it even though the tasks live in different areas.\n\n## Flow\n1. Gather context. Ensure session focus (see Session focus in the `orbitmap` skill) \u2014\n the intent you are planning joins the focus by its handle, no context call while the\n focus file is valid. Read the intent's `outcome` + `design` + `plan` field\n (`orbitmap intent show IN-x`) \u2014 if the plan field holds seed notes, absorb them as\n highest-priority input (see above); the relevant doc BODIES (`orbitmap doc <slug>` \u2014 the design flagged\n which); the neighbourhood (mission, sibling intents, and the intent's EXISTING tasks \u2014\n do not re-decompose them). Verify against the repo before decomposing.\n2. Decompose the design into a FLAT list of concrete tasks, each placed in the CORRECT\n area \u2014 `orbitmap create \"title\" --intent IN-x --area <slug> [--priority p]`. No\n subtasks.\n - DECLARE THE INTENT'S AREAS as part of decomposition: your task placement decisions\n ARE the intent's area list \u2014 write it with\n `orbitmap intent update IN-x --areas <slug>,<slug>` (the distinct areas of the\n tasks you are creating). Declared areas feed session-focus matching for every later\n session.\n - KEEP/DROP TEST \u2014 log a `decision` when ANY of these is true: an alternative was\n considered and REJECTED (record which, and why it lost); a non-obvious assumption or\n constraint was LOCKED IN; a choice was made that a later reader would otherwise\n re-litigate. Do NOT log: restating the outcome, design or plan (they are already\n fields on the intent); confirming something already written down elsewhere; mechanical\n facts recoverable from git, CI or the tracker (test counts, file lists, commit hashes);\n progress narration (\"started X\", \"working on Y\").\n KEEP \u2192 \"Parallelised the build across four subagents; the Laravel slices were split by\n file ownership to avoid collisions in one working tree.\" \u2014 records the rejected\n alternative (one agent per repo) and why it lost.\n DROP \u2192 \"make verify green at 2415 passed after merging all four agents.\" \u2014 a mechanical\n fact already in the commit message and the CI output.\n - LOG IT THE MOMENT IT IS AGREED, not batched at the end:\n `orbitmap log IN-x \"<the decision and why \u2014 task shape, sequencing, area>\" --type decision`.\n An abandoned session must still leave its decisions recorded.\n - Progress stops (a design gap you cannot close, a missing prerequisite) \u2192\n `orbitmap log IN-x \"Blocked: <what stopped and why>\" --type blocker`.\n - `note` is the CATCH-ALL \u2014 anything useful that is not `code_change` / `decision` /\n `blocker` goes in as `note`, with `--meta` for unusual structure. There is deliberately\n NO `other` type. NEVER write `status_change`: the server authors it on every transition.\n3. For EACH task, write `agent_instructions` a zero-context execute-agent can run from\n alone: a one-line SUMMARY / outcome of the task; the Orb context + the specific doc\n slugs + the files/acceptance it needs; its TESTS (what to add and how to run them); and,\n if it is blocked, a one-line \"depends on TS-x: <why>\".\n4. Add ONE intent-level test that proves the whole outcome is delivered.\n5. Wire ordering \u2014 `orbitmap dep add TS-a TS-b` (a depends on b) \u2014 for every dependency,\n matching the \"depends on\" line you put in the task's instructions.\n6. COVERAGE GATE (hard): walk the design element by element and confirm each maps to a\n task, and that the task set as a whole delivers the outcome. If anything is uncovered,\n add or fix tasks and re-check. Do NOT proceed while a gap remains.\n7. Write cross-task PLANNING NOTES + a short SUMMARY to the intent `plan` field \u2014\n `orbitmap intent update IN-x --plan \"<notes>\"`: decisions valid for all tasks,\n sequencing rationale, and the coverage argument. This REPLACES any seed notes that were\n in the field \u2014 you have already absorbed them.\n8. Ensure a final DOC-UPDATE task exists: after the implementation is done and all tests\n are green, update the OrbitMap documentation (see the `orbitmap-docs` skill).\n9. SELF-REVIEW the plan with fresh eyes (see the Self-review section) and fix issues inline.\n10. Present the plan (tasks + areas + tests + the coverage argument) and get the user's\n approval before creating anything.\n11. On approval: create the tasks + dependency edges, then SHOW the created tasks in the\n terminal (display number \u00B7 title \u00B7 area \u00B7 its dependencies) so the user sees exactly\n what landed; write the plan field; advance the intent `plan \u2192 build` carrying this\n gate's entries \u2014 `--log <type>:<content>` is REPEATABLE, and `plan \u2192 build` takes\n `decision` (task shape) + `note` (resume point):\n `orbitmap intent update IN-x --status build --log decision:\"<task-shape decision + why>\" --log note:\"<resume point>\"`\n (a transition carrying no `--log` is REFUSED with 422 and writes nothing); and offer\n the `orbitmap-execute` skill by name so the user can approve and start execution right\n away \u2014 do NOT auto-chain into it yourself.\n\n## Self-review\nBefore presenting, read the plan with fresh eyes \u2014 this is where a weak plan is caught:\n- **Placeholders?** Every task's instructions must be concrete: real files, real\n acceptance, named tests. No \"TBD\", \"add tests\", \"handle edge cases\", or \"similar to\n above\" without the specifics. Fix inline.\n- **Coverage holds?** Re-walk the design \u2014 every element still maps to a task, and the set\n still delivers the outcome.\n- **Consistent?** What a task produces (names, interfaces, files) matches what its\n dependents consume; the dependency edges form a sane DAG with no cycles.\n- **Right-sized?** Each task is independently testable \u2014 not a multi-day monolith, not a\n trivial sliver a reviewer couldn't meaningfully gate.\nFix any issue inline; no need to re-review \u2014 just fix and move on.\n\n## Process flow\n```dot\ndigraph orbitmap_plan {\n \"Gather context: design + outcome + docs + neighbourhood\" [shape=box];\n \"Design solid enough to plan?\" [shape=diamond];\n \"Step aside to orbitmap-design\" [shape=box];\n \"Decompose into a flat list of tasks, each in the correct area\" [shape=box];\n \"Log decisions passing the keep/drop test, as they land\" [shape=box];\n \"Per task: summary + context/doc-grounded instructions + tests + depends-on line\" [shape=box];\n \"Add one intent-level test\" [shape=box];\n \"Wire dependency edges\" [shape=box];\n \"Coverage complete? (every design element to a task)\" [shape=diamond];\n \"Write plan-field notes + summary\" [shape=box];\n \"Add doc-update-after-green task\" [shape=box];\n \"Self-review the plan (placeholders / coverage / consistency / size)\" [shape=box];\n \"User approves the plan?\" [shape=diamond];\n \"Create tasks + dependency edges in Orb\" [shape=box];\n \"Show the created tasks in the terminal\" [shape=box];\n \"Advance status plan to build, with --log entries (refused if none)\" [shape=box];\n \"Offer orbitmap-execute (approve to start execution)\" [shape=doublecircle];\n\n \"Gather context: design + outcome + docs + neighbourhood\" -> \"Design solid enough to plan?\";\n \"Design solid enough to plan?\" -> \"Step aside to orbitmap-design\" [label=\"no\"];\n \"Design solid enough to plan?\" -> \"Decompose into a flat list of tasks, each in the correct area\" [label=\"yes\"];\n \"Decompose into a flat list of tasks, each in the correct area\" -> \"Log decisions passing the keep/drop test, as they land\";\n \"Log decisions passing the keep/drop test, as they land\" -> \"Per task: summary + context/doc-grounded instructions + tests + depends-on line\";\n \"Per task: summary + context/doc-grounded instructions + tests + depends-on line\" -> \"Add one intent-level test\";\n \"Add one intent-level test\" -> \"Wire dependency edges\";\n \"Wire dependency edges\" -> \"Coverage complete? (every design element to a task)\";\n \"Coverage complete? (every design element to a task)\" -> \"Decompose into a flat list of tasks, each in the correct area\" [label=\"no, add tasks\"];\n \"Coverage complete? (every design element to a task)\" -> \"Write plan-field notes + summary\" [label=\"yes\"];\n \"Write plan-field notes + summary\" -> \"Add doc-update-after-green task\";\n \"Add doc-update-after-green task\" -> \"Self-review the plan (placeholders / coverage / consistency / size)\";\n \"Self-review the plan (placeholders / coverage / consistency / size)\" -> \"User approves the plan?\";\n \"User approves the plan?\" -> \"Decompose into a flat list of tasks, each in the correct area\" [label=\"no, revise\"];\n \"User approves the plan?\" -> \"Create tasks + dependency edges in Orb\" [label=\"yes\"];\n \"Create tasks + dependency edges in Orb\" -> \"Show the created tasks in the terminal\";\n \"Show the created tasks in the terminal\" -> \"Advance status plan to build, with --log entries (refused if none)\";\n \"Advance status plan to build, with --log entries (refused if none)\" -> \"Offer orbitmap-execute (approve to start execution)\";\n}\n```\n\n## Before you hand off\n- **Coverage?** Every design element maps to a task, and the set delivers the outcome.\n- **Tests?** Every task has tests; one intent-level test proves the outcome.\n- **Self-contained?** Every task's instructions carry summary + Orb context + doc pointers\n + acceptance + any depends-on line \u2014 runnable by a zero-context agent.\n- **No placeholders?** Self-review done; no vague/TBD instructions remain.\n- **Areas?** Each task in the right area, and the intent's areas declared\n (`intent update --areas`) to match the placements.\n- **Dependencies?** Orb dep edges wired AND named in the dependent tasks' instructions.\n- **Plan field?** Cross-task notes + a summary written to the intent `plan` field.\n- **Doc-update?** A doc-update-after-green task is in the plan.\nThen create the tasks + edges, SHOW them in the terminal, advance `plan \u2192 build`, and offer\n`orbitmap-execute` \u2014 never auto-chain.\n\n## Planning entities (reference)\nFor general planning outside a single design (setting up missions, capturing ideas,\ntriaging issues):\n- **Missions:** `orbitmap mission list|show MS-x`; `orbitmap mission create \"name\"\n [--outcome \"\u2026\"] [--start d] [--end d]`; `orbitmap mission status MS-x\n active|completed|cancelled` (activating fails while another is active \u2014 complete/cancel\n it first); `orbitmap mission link|unlink MS-x IN-y|TS-y|IS-y|ID-y`. A mission status\n change takes the same repeatable `--log <type>:<content>` and is refused (422) without\n at least one entry \u2014 `cancelled` above all needs its `decision:\"<why abandoned>\"`.\n `orbitmap log MS-x \"\u2026\" --type \u2026` logs against a mission outside a transition.\n- **Intents:** `orbitmap intent create \"name\" [--outcome \"\u2026\"] [--design \"\u2026\"] [--plan \"\u2026\"]\n [--mission MS-x]`, statuses new \u2192 design \u2192 plan \u2192 build \u2192 done (or cancelled). The\n `outcome` is the north star, `design` the agreed solution, `plan` the agreed build\n plan \u2014 produced by the `orbitmap-brainstorm` / `orbitmap-design` / `orbitmap-plan`\n gates respectively.\n- **Ideas (opportunities, not problems):** `orbitmap idea add \"\u2026\" [--priority p]`;\n `orbitmap idea list`; promote by analysing the codebase, then `orbitmap create \"title\"\n --intent \u2026` referencing the idea, then `orbitmap idea status ID-x used` (or `rejected`).\n- **Issues (problems):** `orbitmap issue register \"title\" --severity\n critical|high|medium|low [--description \"\u2026\"]`; `orbitmap issue status IS-x\n investigating`; resolve with a fix task via `orbitmap issue resolve IS-x --task TS-y\n --resolution \"\u2026\"` (or `wont_fix` / `duplicate` with a reason).\n\n## Rules\n- Cover the whole design \u2014 the coverage check is a HARD GATE; never hand off with a gap.\n- Flat tasks only \u2014 no subtasks; express structure through dependencies.\n- Every task carries its tests; the intent carries one outcome-proving test.\n- Every task's `agent_instructions` are self-contained for a zero-context agent (summary +\n Orb context + doc pointers + acceptance + any depends-on line). No placeholders.\n- Wire dependencies as Orb edges AND name them in the dependent tasks' instructions.\n- Place each task in the correct area; derive it from the work, not the current directory.\n- Declare the intent's areas during decomposition (`orbitmap intent update IN-x --areas`) \u2014\n task placement decisions are the area list.\n- Self-review the plan before presenting; fix placeholders/coverage/consistency inline.\n- Write cross-task notes + a summary to the intent `plan` field.\n- Log `decision` entries that pass the keep/drop test (Flow step 2) as they are agreed, never\n batched; `blocker` whenever progress stops \u2014 an abandoned session must still leave a record.\n- The `plan \u2192 build` transition must carry the gate's entries as repeatable\n `--log <type>:<content>` \u2014 `decision` (task shape) + `note` (resume point); without at\n least one it is refused (422) and nothing is written. Never author `status_change` \u2014 the\n server writes it.\n- Include a doc-update-after-green task in every plan.\n- After approval, create the tasks + edges and SHOW them in the terminal.\n- Advance `plan \u2192 build` only after the user has approved the plan.\n- Never auto-chain into execution \u2014 offer `orbitmap-execute` and stop.";
|
|
41
|
+
export declare const SKILL_PLAN_BODY: string;
|
|
41
42
|
export declare const SKILL_BRAINSTORM_FRONTMATTER = "---\nname: orbitmap-brainstorm\ndescription: >\n Brainstorming an idea into an agreed outcome in OrbitMap \u2014 the first gate of the\n product-building flow, run as a natural thinking-partner conversation. You MUST use this\n before any creative work \u2014 creating features, building components, adding functionality,\n or modifying behavior. It explores intent, requirements and constraints one question at a\n time until the outcome is AGREED, writes that outcome to the intent's outcome field, and\n files useful asides to the design (and, when relevant, plan) fields for the later gates.\n Use for \"I have an idea\", \"brainstorm this\", \"let's think through X\", \"what should we\n build/do about X\", shaping an intent's outcome, or an intent at `new` status.\n---";
|
|
42
|
-
export declare const SKILL_BRAINSTORM_BODY = "# Framing an idea into an outcome\n\n## Goal\nProduce the intent's OUTCOME \u2014 a short statement of WHAT should change and WHY, that the\nuser actually agrees to. That agreed outcome is this gate's deliverable; the design and\nplan are later gates' jobs.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## From idea to agreed outcome\nThis is the FIRST gate of OrbitMap's product-building flow, and it is a natural\nconversation \u2014 you are a thinking partner, not a form. Turn a raw idea into an outcome the\nuser actually AGREES to; that agreement is the ONE thing you must reach before moving on.\nYou are deciding WHAT should change and WHY \u2014 not designing the solution, not starting to\nbuild. As the conversation flows it will wander into HOW and into build-order; do not block\non those \u2014 capture them as notes filed to the right downstream field (design or plan) and\nsteer gently back to the outcome. The agreed outcome plus those routed notes are the baton\nyou hand to `orbitmap-design` (and, through the plan field, to `orbitmap-plan`).\n\n## Key principles\n- **Thinking partner, not a form.** Follow the conversation and reflect back to converge \u2014\n do not interrogate. The ONE thing you must reach is an AGREED OUTCOME; everything else\n useful gets captured for later, never blocked on.\n- **Gate before build.** No feature, component, or behavior change starts before the\n outcome is agreed and written to OrbitMap. For anything that changes behaviour, \"too\n simple to frame\" is exactly where unexamined assumptions cost the most \u2014 a one-sentence\n outcome is still an outcome. Genuinely small self-contained work (a typo, a copy tweak,\n an obvious one-file fix) is a task, not an intent; see the `orbitmap` skill's\n task-or-intent test.\n- **The outcome is an agreement, not your guess.** It is the user's, in the user's words.\n Never advance on an assumed or half-agreed outcome.\n- **One question at a time.** Refine by dialogue, never a questionnaire dump.\n- **Prefer multiple choice \u2014 open questions are a LAST RESORT.** When a question's options\n can be enumerated, ALWAYS offer them as a multiple choice with a recommended default; ask\n an open-ended question only when the option space genuinely cannot be enumerated. Always\n include a free-text \"or something else \u2014 tell me\" escape.\n- **Ask sparingly \u2014 earn every question.** Before asking: (1) answer it yourself from the\n idea, the context and the repo \u2014 never ask what you can already determine; (2) drop it if\n the answer would not change the outcome; (3) batch tightly-related micro-decisions into\n ONE question. Prefer proposing a sensible default for the user to correct over an open\n interrogation. Aim for the few highest-leverage questions \u2014 \"one question at a time\" sets\n the pace, not the total count.\n- **Lead with a recommendation.** Present options and the outcome conversationally, leading\n with the option you recommend and WHY \u2014 never a flat, neutral menu with no steer.\n- **YAGNI.** Cut every want that does not serve the outcome; a smaller outcome ships.\n- **Capture the user's opinions faithfully \u2014 and mark them as the user's.** Label the\n user's notes as user notes in whichever field they land (design or plan); the design and\n plan gates treat user-marked notes as their highest-priority input, so do not paraphrase\n away their intent. You may add your own notes too \u2014 keep them clearly separate.\n- **Route notes by type (light-touch).** As the conversation surfaces useful asides, file\n them to the field that will use them: HOW / tech / UX \u2192 the **design** notes; build-order\n / task ideas / execution risks \u2192 the **plan** notes; WHAT / WHY stays in the outcome.\n Capture the obvious and steer back \u2014 do not over-police a flowing conversation. Feeding\n the plan field is OPTIONAL: only when the chat actually produced build-order material.\n- **Ground in verified reality \u2014 never frame on assumptions.** Before framing, verify the\n idea against the actual repo and tracker, not the plan doc's or the user's claim: is this\n already built or partially shipped, is a prerequisite phase actually done, do the named\n entities exist? A wrong premise wastes the whole design and build that follow.\n- **Framing precedes design precedes build.** You decide WHAT and WHY here; HOW is the\n design gate's job. For every point, ask \"would a different answer change WHAT ships, or\n only HOW it is built?\" \u2014 route HOW answers (assets, routes, component structure, exact\n validation) into the design notes, never into the agreed outcome. Do not slip into\n solutioning.\n\n## Flow\n1. Gather context.\n - Ensure session focus (see Session focus in the `orbitmap` skill): a valid focus\n file means NO context call; missing or invalid \u2192 one `orbitmap context` call\n supplies the matching material. The focus plus `orbitmap intent show IN-x` already\n carry the workspace, mission, the nearby recently-used and open intents, and the\n target intent; read any referenced idea (ID-) too.\n - Check the repo itself \u2014 relevant files, docs, recent commits \u2014 when the outcome\n touches existing code and to get all the context.\n - Skim the available knowledge \u2014 the doc lists (`available_docs` across areas,\n `workspace_knowledge`, `orbit_docs`), from the intent context if present, else\n `orbitmap docs`. METADATA only (title / context / sections_count) \u2014 do not read bodies\n here. Note which docs are relevant and record their slugs in the design notes.\n - Know the neighbourhood (status matters): the MISSION's outcome + status (does this\n intent serve a still-active mission?) and the SIBLING intents under that mission/orbit\n with their outcomes + statuses \u2014 from the intent context if present, else\n `orbitmap mission show MS-x` / `orbitmap intents`. Reconcile or link rather than frame\n a duplicate/conflicting outcome \u2014 and never declare \"no duplicate\" from TL;DRs alone:\n fetch the 1\u20133 nearest candidates' bodies (`orbitmap intent show IN-x --no-logs`)\n first. Ignore siblings that are `done`/`cancelled`.\n - Verify the premise before framing: is this already built or partially shipped, is any\n prerequisite phase actually complete, do the named entities exist? Grep migrations /\n commits / the tracker \u2014 frame on what is true NOW, not on the plan doc's claim.\n2. Clarify the idea into an outcome, ONE question at a time \u2014 the real goal, what changes\n and for whom, what success looks like, the constraints. As you go, capture the user's\n opinions, preferences and context as notes; these outrank your own ideas in the design\n stage, so record them faithfully.\n - KEEP/DROP TEST \u2014 log a `decision` when ANY of these is true: an alternative was\n considered and REJECTED (record which, and why it lost); a non-obvious assumption or\n constraint was LOCKED IN; a choice was made that a later reader would otherwise\n re-litigate. Do NOT log: restating the outcome, design or plan (they are already\n fields on the intent); confirming something already written down elsewhere; mechanical\n facts recoverable from git, CI or the tracker (test counts, file lists, commit hashes);\n progress narration (\"started X\", \"working on Y\").\n KEEP \u2192 \"Parallelised the build across four subagents; the Laravel slices were split by\n file ownership to avoid collisions in one working tree.\" \u2014 records the rejected\n alternative (one agent per repo) and why it lost.\n DROP \u2192 \"make verify green at 2415 passed after merging all four agents.\" \u2014 a mechanical\n fact already in the commit message and the CI output.\n - LOG IT THE MOMENT IT PASSES, not batched at the end: `orbitmap log IN-x \"<what was\n decided and why>\" --type decision`. An abandoned session must still leave its decisions\n recorded. If the intent does not exist yet, create it (step 4) at the first passing\n answer and log from then on.\n - Progress stops (missing access, an unanswerable question, a conflicting intent) \u2192\n `orbitmap log IN-x \"Blocked: <what stopped and why>\" --type blocker`.\n - `note` is the CATCH-ALL \u2014 anything useful that is not `code_change` / `decision` /\n `blocker` goes in as `note`, with `--meta` for unusual structure. There is deliberately\n NO `other` type. NEVER write `status_change`: the server authors it on every transition.\n3. Present the outcome as a short, concrete statement that also names what is explicitly\n OUT of scope and how success will be measured or checked. Refine it with the user until\n they AGREE \u2014 never proceed on a vague or assumed outcome.\n4. Persist (create or refine). Update an existing unprocessed intent, or create one:\n `orbitmap intent update IN-x --outcome \"<agreed outcome>\" [--design \"<design notes>\"] [--plan \"<plan notes>\"]`\n / `orbitmap intent create \"<name>\" --outcome \"<agreed outcome>\" [--design \"\u2026\"] [--plan \"\u2026\"]`.\n The agreed **outcome** goes in the outcome field. Route the captured notes by type \u2014\n HOW / tech / UX \u2192 the **design** field; build-order / task ideas / execution risks \u2192 the\n **plan** field (OPTIONAL \u2014 only if the conversation produced any). Mark the user's notes\n as the user's in both fields; you may add your own, kept separate. The design gate reads\n the design notes and the plan gate reads the plan notes, each as its highest-priority\n input.\n - A freshly created intent joins your session focus by its handle \u2014 no context call.\n - OPTIONALLY declare the intent's areas when the conversation already made the touched\n repos obvious \u2014 `orbitmap intent update IN-x --areas <slug>,<slug>`; otherwise leave\n the declaration to the design and plan gates, which own it.\n - If you promoted an OrbitMap idea, mark it used: `orbitmap idea status ID-x used`.\n5. Advance the lifecycle, carrying this gate's entries \u2014 `--log <type>:<content>` is\n REPEATABLE and `new \u2192 design` is decision-heavy (why this outcome, what is out of scope):\n `orbitmap intent update IN-x --status design --log decision:\"<why this outcome>\" --log decision:\"<what is out of scope>\"`.\n A transition carrying no `--log` is REFUSED (422) and writes nothing \u2014 not the status,\n not an entry \u2014 so this is not optional.\n6. Ask the user whether to review the outcome further or start designing \u2014 offer the\n `orbitmap-design` skill by name. Do NOT auto-chain into it yourself.\n\n## Process flow\n```dot\ndigraph orbitmap_brainstorm {\n \"Gather context: Orb (intents / idea) + repo (files, docs, commits)\" [shape=box];\n \"Clarify idea into an outcome, one question at a time\" [shape=box];\n \"Log decisions passing the keep/drop test, as they land\" [shape=box];\n \"Capture user opinions / context as notes\" [shape=box];\n \"Present the outcome\" [shape=box];\n \"User agrees the outcome?\" [shape=diamond];\n \"Create or refine intent: agreed outcome\" [shape=box];\n \"Route notes to design/plan fields by type (marked as the user's)\" [shape=box];\n \"Promote referenced idea to used\" [shape=box];\n \"Advance status new to design, with --log entries (refused if none)\" [shape=box];\n \"Offer orbitmap-design (review or design?)\" [shape=doublecircle];\n\n \"Gather context: Orb (intents / idea) + repo (files, docs, commits)\" -> \"Clarify idea into an outcome, one question at a time\";\n \"Clarify idea into an outcome, one question at a time\" -> \"Log decisions passing the keep/drop test, as they land\";\n \"Log decisions passing the keep/drop test, as they land\" -> \"Capture user opinions / context as notes\";\n \"Capture user opinions / context as notes\" -> \"Present the outcome\";\n \"Present the outcome\" -> \"User agrees the outcome?\";\n \"User agrees the outcome?\" -> \"Clarify idea into an outcome, one question at a time\" [label=\"no, refine\"];\n \"User agrees the outcome?\" -> \"Create or refine intent: agreed outcome\" [label=\"yes\"];\n \"Create or refine intent: agreed outcome\" -> \"Route notes to design/plan fields by type (marked as the user's)\";\n \"Route notes to design/plan fields by type (marked as the user's)\" -> \"Promote referenced idea to used\";\n \"Promote referenced idea to used\" -> \"Advance status new to design, with --log entries (refused if none)\";\n \"Advance status new to design, with --log entries (refused if none)\" -> \"Offer orbitmap-design (review or design?)\";\n}\n```\n\n## After the outcome\nBefore handing off, review the agreed outcome with fresh eyes:\n- **Vague or assumed?** Is it concrete and in the user's words, or did you fill gaps? Fix.\n- **Unmeasurable?** Can you tell when it is met? If not, sharpen the success criteria.\n- **Too big?** If it needs several independent designs, decompose into sibling intents and\n frame the first \u2014 do not hand design an outcome that is really three outcomes.\nThen write it (Flow step 4), advance `new \u2192 design`, and hand the baton to\n`orbitmap-design` \u2014 never auto-chain.\n\n## Rules\n- One question at a time \u2014 never dump a checklist of questions on the user in one turn.\n- The outcome is an AGREEMENT, not your guess: never advance to `design` status until the\n user has agreed the outcome in words.\n- Mark the user's notes as the user's in whichever field they land (design or plan): the\n design and plan gates treat user-marked notes as highest-priority input. Add your own\n notes too, kept clearly separate.\n- Route notes by type (light-touch): HOW/tech/UX \u2192 design field; build-order/task/risk \u2192\n plan field (optional); WHAT/WHY stays in the outcome. Capture and steer back; do not\n over-police the conversation.\n- Log `decision` entries that pass the keep/drop test (Flow step 2) as they land, never\n batched; `blocker` whenever progress stops \u2014 an abandoned session must still leave a record.\n- The `new \u2192 design` transition must carry the gate's entries as repeatable\n `--log <type>:<content>`; without at least one it is refused (422) and nothing is written.\n Never author `status_change` \u2014 the server writes it.\n- Create-or-refine: reuse an existing unprocessed intent instead of creating a duplicate.\n- Ground the outcome in verified repo/tracker reality, not the plan doc or a stated claim \u2014\n check it is still needed and still undone before framing.\n- Keep the outcome WHAT/WHY: name what is OUT of scope and how success is measured; push\n HOW answers into the design notes.\n- If the intent already has an agreed outcome (status `design` or later), step aside and\n point at `orbitmap-design` \u2014 do not re-frame a settled outcome.\n- Never auto-chain into designing after framing \u2014 always ask first.";
|
|
43
|
+
export declare const SKILL_BRAINSTORM_BODY: string;
|
|
43
44
|
export declare const SKILL_DESIGN_FRONTMATTER = "---\nname: orbitmap-design\ndescription: >\n Designing an intent's solution in OrbitMap \u2014 the second gate of the product-building\n flow (after brainstorm): turns an agreed outcome into an approach,\n technical spec, and UX (when there's UI), one question at a time, then writes the\n result to the intent's design field. Use for \"design this intent\", \"let's design X\", or\n an intent entering `design` status. Use it once the outcome is agreed; if the outcome is\n still missing or vague, step aside to `orbitmap-brainstorm` first.\n---";
|
|
44
|
-
export declare const SKILL_DESIGN_BODY = "# Designing an intent's solution\n\n## Goal\nProduce the intent's DESIGN \u2014 a buildable, code-grounded markdown doc (approach, technical\nspec, UX where there's UI) that a plan can be built from. That design doc is this gate's\none deliverable.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## The outcome is the north star\nAn intent's `outcome` is why the design exists \u2014 the design's only job is to bring that\noutcome to life. Read it and internalize it before anything else; every question you ask\nand every section you write must trace back to it. If the outcome is missing, or too\nvague to design against, STOP. The framing gate comes before the solution gate: if the\noutcome is missing or still vague (intent at `new`), step aside to `orbitmap-brainstorm` to\nsettle it first \u2014 do not design a solution for an outcome that is not solid yet.\n\n## The framing notes are your highest-priority input\nWhen the `orbitmap-brainstorm` gate ran first, the intent's `design` field arrives holding\nframing notes \u2014 NOT a design doc: the user's notes (marked as the user's) plus any notes\nthe framing agent added. Read them FIRST. The USER-marked notes are your HIGHEST-PRIORITY\ninput \u2014 they outrank your own ideas and the agent notes; treat the agent notes as normal\ninput. Absorb all of them \u2014 honor and reflect them in the design you build \u2014 then let your\nfinished design doc REPLACE them in the field (absorb, then replace). If the field already\nholds a real design doc instead of raw notes, treat it as existing design to refine.\n\n## Key principles\n- **Serve the outcome.** Every question and every section traces back to the outcome; if\n it does not, cut it or go fix the outcome first.\n- **One question at a time.** Refine by dialogue, never a questionnaire dump.\n- **Prefer multiple choice \u2014 open questions are a LAST RESORT.** When a question's options\n can be enumerated, ALWAYS offer them as a multiple choice with a recommended default; ask\n an open-ended question only when the option space genuinely cannot be enumerated. Always\n include a free-text \"or something else \u2014 tell me\" escape.\n- **Ask sparingly \u2014 earn every question.** Before asking: (1) answer it yourself from the\n outcome, the notes and the repo \u2014 never ask what you can already determine; (2) drop it\n if the answer would not change the design; (3) batch tightly-related micro-decisions into\n ONE question. Prefer proposing a sensible default for the user to correct over an open\n interrogation. Aim for the few highest-leverage questions \u2014 \"one question at a time\" sets\n the pace, not the total count.\n- **Lead with a recommendation.** When you propose approaches or technical options, lead\n with the one you recommend and WHY \u2014 never a flat, neutral menu with no steer.\n- **YAGNI.** Cut every part of the design that does not serve the outcome; a smaller\n design ships.\n- **Ground the spec in verified current code \u2014 never assume.** Read/grep every file and\n behavior you rely on before asserting it; a design with a false claim about the code\n misleads the builder and is worse than none. Carry nothing forward from the outcome stage\n unchecked.\n- **Concrete and verbatim.** Name the exact files, classes, schemas/tokens and locked copy \u2014\n not prose behavior \u2014 so a builder can execute the design without re-deriving it.\n- **Ground every proposal in the existing codebase.** Follow the patterns already there;\n name the real files and classes; do not invent structure the repo does not use.\n\n## Working in existing codebases\nExplore the current structure BEFORE proposing anything, and follow the patterns already\nthere \u2014 the canonical CRUD module, the sibling component you are mirroring, the existing\nroute. Name the concrete files and classes your design will touch or create, each grounded\nin the equivalent existing pattern, so the design is buildable without re-derivation. Where\nexisting code in your path has a real problem (a file grown too large, a tangled boundary),\ninclude a targeted fix as part of the design \u2014 but never propose unrelated refactoring;\nstay focused on what serves this outcome.\n\n## Design for isolation and clarity\nBreak the solution into small units that each have ONE clear purpose, communicate through\nwell-defined interfaces, and can be understood and tested independently. For each unit you\nshould be able to say what it does, how it is used, and what it depends on. Two tests: can\nsomeone understand what a unit does without reading its internals, and can you change its\ninternals without breaking its consumers? If not, the boundaries need work. Smaller,\nwell-bounded units are easier to build, review, and reason about.\n\n## Flow\n1. Gather context.\n - Ensure session focus (see Session focus in the `orbitmap` skill) \u2014 the intent you\n are designing joins the focus by its handle; no context call while the focus file is\n valid. `orbitmap intent show IN-x` \u2192 the outcome and the design field. If the design\n field holds framing notes, absorb them as highest-priority input (see above).\n - Check the repo \u2014 relevant files, existing patterns, docs, recent commits. You design\n against real code, so read it before proposing.\n - Pull the relevant OrbitMap docs: from the doc lists (`available_docs` /\n `workspace_knowledge` / `orbit_docs` \u2014 in the intent context if present, else\n `orbitmap docs`, plus any slugs the framing notes flagged), READ the bodies that matter\n with `orbitmap doc <slug>` (TOC \u2192 section \u2192 full) to ground the spec. Metadata is not\n enough at the design gate.\n - Know the neighbourhood (status matters): the MISSION's outcome + status (the design\n must serve it), the SIBLING intents under the mission/orbit with their statuses, and\n the intent's OWN tasks + issues with statuses \u2014 from the intent context if present,\n else `orbitmap mission show MS-x` / `orbitmap intents` / the intent's linked items.\n Design AROUND existing tasks \u2014 never silently re-decompose work that already exists.\n - Verify, do not assume: Read/grep each \"existing\" file, route or component before you\n rely on it, and re-check any claim the outcome stage carried forward.\n2. Clarify ONE question at a time, each anchored to the outcome \u2014 \"to achieve <outcome>,\n how should X work?\" Cover technical decisions, UX (only if the intent has UI), edge\n cases, data/API shape. Continuously check whether the emerging design actually delivers\n the outcome, and surface any gap where it would not. Capture the user's decisions and\n the reasoning behind them as you go \u2014 those decisions are part of the design.\n - KEEP/DROP TEST \u2014 log a `decision` when ANY of these is true: an alternative was\n considered and REJECTED (record which, and why it lost); a non-obvious assumption or\n constraint was LOCKED IN; a choice was made that a later reader would otherwise\n re-litigate. Do NOT log: restating the outcome, design or plan (they are already\n fields on the intent); confirming something already written down elsewhere; mechanical\n facts recoverable from git, CI or the tracker (test counts, file lists, commit hashes);\n progress narration (\"started X\", \"working on Y\").\n KEEP \u2192 \"Parallelised the build across four subagents; the Laravel slices were split by\n file ownership to avoid collisions in one working tree.\" \u2014 records the rejected\n alternative (one agent per repo) and why it lost.\n DROP \u2192 \"make verify green at 2415 passed after merging all four agents.\" \u2014 a mechanical\n fact already in the commit message and the CI output.\n - LOG IT THE MOMENT IT IS AGREED, not batched at the end: `orbitmap log IN-x \"<the choice\n and why, incl. what it rules out>\" --type decision`. An abandoned session must still\n leave its decisions recorded.\n - Progress stops (a blocking unknown, missing access, a contradicting design) \u2192\n `orbitmap log IN-x \"Blocked: <what stopped and why>\" --type blocker`.\n - `note` is the CATCH-ALL \u2014 anything useful that is not `code_change` / `decision` /\n `blocker` goes in as `note`, with `--meta` for unusual structure. There is deliberately\n NO `other` type. NEVER write `status_change`: the server authors it on every transition.\n3. Explore approaches: propose 2-3 concrete approaches with their trade-offs, lead with the\n one you recommend and WHY, and let the user pick before you spec anything. YAGNI the\n rest \u2014 and record which approaches you weighed and why you rejected them.\n4. Draft ONE markdown design doc with these sections, in order:\n - Outcome (restated)\n - How this design delivers the outcome \u2014 MANDATORY: trace the design back to the\n outcome explicitly; never skip this section\n - Approach \u2014 the chosen approach and why\n - Key decisions \u2014 the decisions taken with the user during design, each with its\n rationale, so no one silently re-litigates or reverses them later\n - Technical spec \u2014 name the concrete files / classes / components to touch or create,\n each grounded in the existing pattern it mirrors; give exact class/method names,\n schemas/tokens and locked copy for anything UI- or contract-facing, not prose alone\n - UX design (only if the intent has UI)\n - Alternatives considered / rejected \u2014 options weighed and declined, and WHY, so a\n future contributor does not re-introduce a declined option\n - Testing / verification approach \u2014 the tests to add and the gating commands to run\n (e.g. `make contract`, `make verify`)\n - Risks / open questions\n5. Present the draft in sections scaled to their complexity (a few sentences when simple,\n more when nuanced); after each section ask whether it looks right, and get the user's\n approval before writing anything.\n6. Write it: `orbitmap intent update IN-x --design \"<doc>\"`. This REPLACES any framing\n notes that were in the field \u2014 you have already absorbed them into the doc. When the\n spec names the repos the build will touch, declare them on the intent in the same\n update \u2014 `--areas <slug>,<slug>` \u2014 so session-focus matching works from declared data.\n7. Advance the lifecycle, carrying this gate's entries \u2014 `--log <type>:<content>` is\n REPEATABLE and `design \u2192 plan` is decision-heavy (technical choices, rejected\n alternatives):\n `orbitmap intent update IN-x --status plan --log decision:\"<technical choice + why>\" --log decision:\"<alternative rejected + why>\"`.\n A transition carrying no `--log` is REFUSED (422) and writes nothing \u2014 not the status,\n not an entry \u2014 so this is not optional.\n8. Ask the user whether to review the design further or start planning \u2014 offer the\n `orbitmap-plan` skill by name. Do NOT auto-chain into it yourself.\n\n## Process flow\n```dot\ndigraph orbitmap_design {\n \"Gather context: outcome + notes + repo (files, patterns, docs)\" [shape=box];\n \"Internalize the outcome (north star)\" [shape=box];\n \"Outcome solid enough to design?\" [shape=diamond];\n \"Step aside to orbitmap-brainstorm\" [shape=box];\n \"Clarify one question at a time, anchored to the outcome\" [shape=box];\n \"Log decisions passing the keep/drop test, as they land\" [shape=box];\n \"Explore approaches (2-3, recommend, user picks)\" [shape=box];\n \"Draft the design doc (outcome-delivery trace mandatory)\" [shape=box];\n \"User approves the draft?\" [shape=diamond];\n \"Write design field (replaces framing notes)\" [shape=box];\n \"Advance status design to plan, with --log entries (refused if none)\" [shape=box];\n \"Offer orbitmap-plan (review or plan?)\" [shape=doublecircle];\n\n \"Gather context: outcome + notes + repo (files, patterns, docs)\" -> \"Internalize the outcome (north star)\";\n \"Internalize the outcome (north star)\" -> \"Outcome solid enough to design?\";\n \"Outcome solid enough to design?\" -> \"Step aside to orbitmap-brainstorm\" [label=\"no\"];\n \"Outcome solid enough to design?\" -> \"Clarify one question at a time, anchored to the outcome\" [label=\"yes\"];\n \"Clarify one question at a time, anchored to the outcome\" -> \"Log decisions passing the keep/drop test, as they land\";\n \"Log decisions passing the keep/drop test, as they land\" -> \"Explore approaches (2-3, recommend, user picks)\";\n \"Explore approaches (2-3, recommend, user picks)\" -> \"Draft the design doc (outcome-delivery trace mandatory)\";\n \"Draft the design doc (outcome-delivery trace mandatory)\" -> \"User approves the draft?\";\n \"User approves the draft?\" -> \"Clarify one question at a time, anchored to the outcome\" [label=\"no, refine\"];\n \"User approves the draft?\" -> \"Write design field (replaces framing notes)\" [label=\"yes\"];\n \"Write design field (replaces framing notes)\" -> \"Advance status design to plan, with --log entries (refused if none)\";\n \"Advance status design to plan, with --log entries (refused if none)\" -> \"Offer orbitmap-plan (review or plan?)\";\n}\n```\n\n## Format\nOne markdown document holds both the technical spec and the UX design (when the intent\nhas UI) \u2014 there is no separate field for either. It renders wherever the intent's design\nis shown, so write it as a document a human would actually want to read.\n\n## Before you hand off\nReview the draft with fresh eyes before you write it:\n- **Placeholders?** Any TBD / TODO / vague requirement? Fix them inline.\n- **Delivers the outcome?** Does the \"how this design delivers the outcome\" trace actually\n hold end to end? If there is a gap where it would not, close it.\n- **Internally consistent?** Do any sections contradict, or the approach not match the\n spec? Reconcile them.\n- **Too big or ambiguous?** If it needs more than one implementation plan, note the split;\n if a requirement reads two ways, pick one and make it explicit.\n- **Schema & tenancy guardrails?** For any schema / FK / migration change, verify multi-tenancy\n (`account_id` isolation), RLS policies and Postgres triggers against the repo's audit\n rules before handing off; and name the gating commands the plan must run.\n- **Verified, not assumed?** Is every claim about existing code checked against the repo,\n not recalled? Fix any you have not actually Read/grepped.\n- **Concrete enough to build?** Does the Technical spec name real files/classes with exact\n names, schemas and locked copy, and does the doc carry the Key decisions,\n Alternatives-rejected, and Testing sections? If any is missing, it is not ready.\nThen write it (Flow step 6), advance `design \u2192 plan`, and hand the baton to\n`orbitmap-plan` \u2014 never auto-chain.\n\n## Rules\n- One question at a time \u2014 never dump a checklist of questions on the user in one turn.\n- If the outcome is missing or vague (intent at `new`), step aside to `orbitmap-brainstorm`\n first \u2014 do not design against an unsettled outcome.\n- If the design field holds framing notes from the `orbitmap-brainstorm` gate, they are your\n highest-priority input: absorb them, then let the finished doc replace them.\n- Every question, and every section of the draft, must serve the outcome; if it does\n not, cut it or go fix the outcome first.\n- The \"how this design delivers the outcome\" section is mandatory, not optional.\n- Ground every claim about existing code in an actual Read/grep \u2014 never assert from memory.\n- Name concrete files/classes to touch in the Technical spec, grounded in the existing\n pattern, with exact names/schemas and locked copy for UI/contract-facing pieces \u2014 never\n ship a prose-only spec.\n- Capture the user's design decisions with their rationale, and record the alternatives you\n rejected and why.\n- Log `decision` entries that pass the keep/drop test (Flow step 2) as they are agreed, never\n batched; `blocker` whenever progress stops \u2014 an abandoned session must still leave a record.\n- The `design \u2192 plan` transition must carry the gate's entries as repeatable\n `--log <type>:<content>`; without at least one it is refused (422) and nothing is written.\n Never author `status_change` \u2014 the server writes it.\n- Follow existing codebase patterns; propose no unrelated refactoring.\n- Never advance the intent past `design` status until the user has approved the draft.\n- Never auto-chain into planning after writing the design \u2014 always ask first.";
|
|
45
|
+
export declare const SKILL_DESIGN_BODY: string;
|
|
45
46
|
export declare const SKILL_DOCS_FRONTMATTER = "---\nname: orbitmap-docs\ndescription: >\n Reading and updating OrbitMap documents (specs, architecture, guides, decisions).\n Use when the user asks to read, import, or update project documentation tracked in\n OrbitMap.\n---";
|
|
46
47
|
export declare const SKILL_DOCS_BODY = "# OrbitMap documents\n\nDocuments are workspace-level: exactly ONE copy per workspace, never per-area. No document\ncommand takes an area, and their metadata (slug, when to use) already rides the context\npayload your session focus was matched from (see Session focus in the `orbitmap` skill \u2014\nensure, don't re-call).\n\n## Goal\nRead and update OrbitMap documents efficiently: pull only the context you need (TOC \u2192\nsection \u2192 full, never dump a whole doc into the conversation), and make every change\nthrough the CLI \u2014 never by editing the workspace files directly.\n\n**Interface:** every action below is an OrbitMap operation \u2014 run the `orbitmap` CLI command\nshown, or its equivalent MCP tool when this session uses MCP; `orbitmap <cmd> --help` and the\nMCP tool schemas are the authority. Never edit the workspace data files directly.\n\n## Choosing what to read\n`orbitmap docs` lists documents with their `context` (when the doc is relevant) and\n`sections_count`. Use context to pick the right document; use sections_count to decide\nwhether to fetch the TOC first (many sections) or go straight to full.\n\n## Token-efficient reading flow\n1. `orbitmap doc <slug>` \u2192 context + table of contents (cheap).\n2. `orbitmap doc <slug> --section \"## Auth\"` \u2192 just that section.\n3. `orbitmap doc <slug> --full` \u2192 full content (expensive \u2014 last resort).\nUse the lightest mode that answers your question. When the CLI reports a local file path\nfor the full content, read that file instead of printing the content into the\nconversation.\n\n## Editing\n- Import a new document: `orbitmap doc-import <file.md> --title \"\u2026\" --type\n spec|architecture|api|guide|decision|changelog|other [--context \"\u2026\"]`.\n- Update: `orbitmap doc-update <slug> --file <file.md>` (replaces content, bumps\n version).\n- To change an OrbitMap document, ALWAYS go through these commands \u2014 NEVER edit files\n inside the OrbitMap workspace/cache directories directly.\n\n## Editing safely \u2014 documents have NO revert (known server defects: IS-8wwkb9)\n- Prefer section ops (`doc-patch --replace-section/--insert-section`); use line-based\n ops only when no section op can express the change \u2014 line coordinates are shifted\n server-side assuming ASCENDING order, and blank edges of op content get trimmed.\n- The section parser is not fence-aware: a line-start `#` INSIDE a code block is taken\n for a heading and becomes a section boundary. Keep code-block comments inline\n (`cmd # comment`), and check target sections for this hazard BEFORE replacing them.\n- Never read a document between a `doc-update` upload and its confirm \u2014 a cached read\n makes the confirm silently re-save the OLD content while still bumping the version.\n- After ANY write, re-read the changed section (or TOC for structure) and verify the\n result actually matches what you sent. A bumped version number is not proof.";
|
|
47
48
|
export interface SkillDef {
|
|
@@ -66,8 +67,8 @@ export interface SkillDef {
|
|
|
66
67
|
references?: Readonly<Record<string, string>>;
|
|
67
68
|
}
|
|
68
69
|
export declare const SKILLS: readonly SkillDef[];
|
|
69
|
-
export declare const THIN_HOOK_CLAUDE = "## OrbitMap\n\nWork is tracked in OrbitMap via the `orbitmap` CLI. You work in a WORKSPACE, which can span\nseveral repositories: each repo is an AREA, while missions, intents and documents belong to\nthe workspace itself, not to any one repo.\nLoad the OrbitMap skills whenever the user wants to build, add, change or fix something, in\nwhatever words they use \u2014 do not wait for OrbitMap vocabulary. Load them too when they talk\nabout tracking work (backlog, tasks, missions, intents, ideas, issues, documents, planning).\nNothing gets built before it is framed: a feature, component or behaviour change gets an intent\n\u2014 outcome (brainstorm) \u2192 design \u2192 plan \u2192 build (execute), one gate at a time, written to the\nintent as you go. Small self-contained work (a typo, an obvious one-file fix) is just a task.\nNEVER finish a task, intent or mission without a final `orbitmap log` entry and a status update;\nthe final entry closes a record that already exists. Finished work defaults to `in_review`, not `done
|
|
70
|
-
export declare const THIN_HOOK_GENERIC = "## OrbitMap\n\nWork is tracked in OrbitMap via the `orbitmap` CLI. You work in a WORKSPACE, which can span\nseveral repositories: each repo is an AREA, while missions, intents and documents belong to\nthe workspace itself, not to any one repo.\nFollow the sections below whenever the user wants to build, add, change or fix something, in\nwhatever words they use \u2014 do not wait for OrbitMap vocabulary. Follow them too when they talk\nabout tracking work (backlog, tasks, missions, intents, ideas, issues, documents, planning).\nNothing gets built before it is framed: a feature, component or behaviour change gets an intent\n\u2014 outcome (brainstorm) \u2192 design \u2192 plan \u2192 build (execute), one gate at a time, written to the\nintent as you go. Small self-contained work (a typo, an obvious one-file fix) is just a task.\nNEVER finish a task, intent or mission without a final `orbitmap log` entry and a status update;\nthe final entry closes a record that already exists. Finished work defaults to `in_review`, not `done
|
|
70
|
+
export declare const THIN_HOOK_CLAUDE = "## OrbitMap\n\nWork is tracked in OrbitMap via the `orbitmap` CLI. You work in a WORKSPACE, which can span\nseveral repositories: each repo is an AREA, while missions, intents and documents belong to\nthe workspace itself, not to any one repo.\nLoad the OrbitMap skills whenever the user wants to build, add, change or fix something, in\nwhatever words they use \u2014 do not wait for OrbitMap vocabulary. Load them too when they talk\nabout tracking work (backlog, tasks, missions, intents, ideas, issues, documents, planning).\nNothing gets built before it is framed: a feature, component or behaviour change gets an intent\n\u2014 outcome (brainstorm) \u2192 design \u2192 plan \u2192 build (execute), one gate at a time, written to the\nintent as you go. Small self-contained work (a typo, an obvious one-file fix) is just a task.\nNEVER finish a task, intent or mission without a final `orbitmap log` entry and a status update;\nthe final entry closes a record that already exists. Finished work defaults to `in_review`, not `done`.\nOrbitMap tool responses may carry an Instructions section \u2014 act on it before continuing.";
|
|
71
|
+
export declare const THIN_HOOK_GENERIC = "## OrbitMap\n\nWork is tracked in OrbitMap via the `orbitmap` CLI. You work in a WORKSPACE, which can span\nseveral repositories: each repo is an AREA, while missions, intents and documents belong to\nthe workspace itself, not to any one repo.\nFollow the sections below whenever the user wants to build, add, change or fix something, in\nwhatever words they use \u2014 do not wait for OrbitMap vocabulary. Follow them too when they talk\nabout tracking work (backlog, tasks, missions, intents, ideas, issues, documents, planning).\nNothing gets built before it is framed: a feature, component or behaviour change gets an intent\n\u2014 outcome (brainstorm) \u2192 design \u2192 plan \u2192 build (execute), one gate at a time, written to the\nintent as you go. Small self-contained work (a typo, an obvious one-file fix) is just a task.\nNEVER finish a task, intent or mission without a final `orbitmap log` entry and a status update;\nthe final entry closes a record that already exists. Finished work defaults to `in_review`, not `done`.\nOrbitMap tool responses may carry an Instructions section \u2014 act on it before continuing.";
|
|
71
72
|
/** Build one SKILL.md file (frontmatter + body) for Claude. */
|
|
72
73
|
export declare function buildSkillFile(skill: SkillDef): string;
|
|
73
74
|
/**
|
|
@@ -84,7 +85,7 @@ export declare const SKILL_SCOPE_CAVEAT_PROJECT: string;
|
|
|
84
85
|
* `scope` is where the accompanying skill files were installed — see
|
|
85
86
|
* {@link SKILL_SCOPE_CAVEAT_PROJECT}.
|
|
86
87
|
*/
|
|
87
|
-
export declare function
|
|
88
|
+
export declare function buildClaudeBlock(scope?: 'user' | 'project'): string;
|
|
88
89
|
/**
|
|
89
90
|
* Build the markdown fallback block for non-Claude agents: the thin hook plus every
|
|
90
91
|
* skill body inlined (no skill ecosystem to lean on).
|