orbitmap 0.3.0 → 0.4.1

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.
Files changed (174) hide show
  1. package/README.md +546 -212
  2. package/dist/adapters/cloud.d.ts +367 -0
  3. package/dist/adapters/cloud.js +582 -0
  4. package/dist/adapters/cloud.js.map +1 -0
  5. package/dist/adapters/factory.d.ts +15 -0
  6. package/dist/adapters/factory.js +31 -0
  7. package/dist/adapters/factory.js.map +1 -0
  8. package/dist/adapters/local/adapter.d.ts +351 -0
  9. package/dist/adapters/local/adapter.js +346 -0
  10. package/dist/adapters/local/adapter.js.map +1 -0
  11. package/dist/adapters/local/context.d.ts +112 -0
  12. package/dist/adapters/local/context.js +137 -0
  13. package/dist/adapters/local/context.js.map +1 -0
  14. package/dist/adapters/local/entities/documents.d.ts +85 -0
  15. package/dist/adapters/local/entities/documents.js +251 -0
  16. package/dist/adapters/local/entities/documents.js.map +1 -0
  17. package/dist/adapters/local/entities/planning.d.ts +108 -0
  18. package/dist/adapters/local/entities/planning.js +540 -0
  19. package/dist/adapters/local/entities/planning.js.map +1 -0
  20. package/dist/adapters/local/entities/tasks.d.ts +95 -0
  21. package/dist/adapters/local/entities/tasks.js +442 -0
  22. package/dist/adapters/local/entities/tasks.js.map +1 -0
  23. package/dist/adapters/local/entities/work-items.d.ts +110 -0
  24. package/dist/adapters/local/entities/work-items.js +623 -0
  25. package/dist/adapters/local/entities/work-items.js.map +1 -0
  26. package/dist/adapters/local/rules.d.ts +172 -0
  27. package/dist/adapters/local/rules.js +319 -0
  28. package/dist/adapters/local/rules.js.map +1 -0
  29. package/dist/adapters/local/shapes.d.ts +209 -0
  30. package/dist/adapters/local/shapes.js +558 -0
  31. package/dist/adapters/local/shapes.js.map +1 -0
  32. package/dist/adapters/local/store.d.ts +200 -0
  33. package/dist/adapters/local/store.js +665 -0
  34. package/dist/adapters/local/store.js.map +1 -0
  35. package/dist/adapters/local/types.d.ts +226 -0
  36. package/dist/adapters/local/types.js +41 -0
  37. package/dist/adapters/local/types.js.map +1 -0
  38. package/dist/adapters/types.d.ts +332 -0
  39. package/dist/adapters/types.js +2 -0
  40. package/dist/adapters/types.js.map +1 -0
  41. package/dist/agent-instructions.d.ts +25 -9
  42. package/dist/agent-instructions.js +285 -237
  43. package/dist/agent-instructions.js.map +1 -1
  44. package/dist/api-client.d.ts +8 -239
  45. package/dist/api-client.js +8 -403
  46. package/dist/api-client.js.map +1 -1
  47. package/dist/commands/agents.d.ts +1 -1
  48. package/dist/commands/agents.js +10 -10
  49. package/dist/commands/agents.js.map +1 -1
  50. package/dist/commands/areas.d.ts +3 -0
  51. package/dist/commands/areas.js +29 -0
  52. package/dist/commands/areas.js.map +1 -0
  53. package/dist/commands/assign.d.ts +3 -2
  54. package/dist/commands/assign.js +52 -15
  55. package/dist/commands/assign.js.map +1 -1
  56. package/dist/commands/context.d.ts +1 -1
  57. package/dist/commands/context.js +18 -12
  58. package/dist/commands/context.js.map +1 -1
  59. package/dist/commands/create-area.d.ts +7 -0
  60. package/dist/commands/create-area.js +29 -0
  61. package/dist/commands/create-area.js.map +1 -0
  62. package/dist/commands/create.d.ts +3 -1
  63. package/dist/commands/create.js +5 -8
  64. package/dist/commands/create.js.map +1 -1
  65. package/dist/commands/dep.d.ts +2 -2
  66. package/dist/commands/dep.js +3 -3
  67. package/dist/commands/dep.js.map +1 -1
  68. package/dist/commands/doc-import.d.ts +1 -1
  69. package/dist/commands/doc-import.js +2 -2
  70. package/dist/commands/doc-import.js.map +1 -1
  71. package/dist/commands/doc-patch.d.ts +1 -1
  72. package/dist/commands/doc-patch.js +2 -2
  73. package/dist/commands/doc-patch.js.map +1 -1
  74. package/dist/commands/doc-share.d.ts +6 -6
  75. package/dist/commands/doc-share.js +13 -13
  76. package/dist/commands/doc-share.js.map +1 -1
  77. package/dist/commands/doc-update.d.ts +1 -1
  78. package/dist/commands/doc-update.js +2 -2
  79. package/dist/commands/doc-update.js.map +1 -1
  80. package/dist/commands/doc.d.ts +1 -1
  81. package/dist/commands/doc.js +5 -4
  82. package/dist/commands/doc.js.map +1 -1
  83. package/dist/commands/docs-cache.d.ts +2 -2
  84. package/dist/commands/docs-cache.js +3 -3
  85. package/dist/commands/docs-cache.js.map +1 -1
  86. package/dist/commands/docs.d.ts +1 -1
  87. package/dist/commands/docs.js +2 -2
  88. package/dist/commands/docs.js.map +1 -1
  89. package/dist/commands/get.d.ts +1 -1
  90. package/dist/commands/get.js +43 -3
  91. package/dist/commands/get.js.map +1 -1
  92. package/dist/commands/ideas.d.ts +4 -4
  93. package/dist/commands/ideas.js +6 -11
  94. package/dist/commands/ideas.js.map +1 -1
  95. package/dist/commands/init.d.ts +45 -3
  96. package/dist/commands/init.js +452 -104
  97. package/dist/commands/init.js.map +1 -1
  98. package/dist/commands/intent.d.ts +41 -0
  99. package/dist/commands/intent.js +237 -0
  100. package/dist/commands/intent.js.map +1 -0
  101. package/dist/commands/issues.d.ts +6 -5
  102. package/dist/commands/issues.js +8 -12
  103. package/dist/commands/issues.js.map +1 -1
  104. package/dist/commands/log.d.ts +1 -1
  105. package/dist/commands/log.js +2 -2
  106. package/dist/commands/log.js.map +1 -1
  107. package/dist/commands/mission.d.ts +42 -0
  108. package/dist/commands/mission.js +219 -0
  109. package/dist/commands/mission.js.map +1 -0
  110. package/dist/commands/orbit.d.ts +40 -3
  111. package/dist/commands/orbit.js +231 -58
  112. package/dist/commands/orbit.js.map +1 -1
  113. package/dist/commands/overview.d.ts +2 -2
  114. package/dist/commands/overview.js +25 -28
  115. package/dist/commands/overview.js.map +1 -1
  116. package/dist/commands/setup-agent.d.ts +27 -0
  117. package/dist/commands/setup-agent.js +85 -30
  118. package/dist/commands/setup-agent.js.map +1 -1
  119. package/dist/commands/setup-mcp.d.ts +1 -1
  120. package/dist/commands/setup-mcp.js +20 -49
  121. package/dist/commands/setup-mcp.js.map +1 -1
  122. package/dist/commands/start.d.ts +1 -1
  123. package/dist/commands/start.js +2 -2
  124. package/dist/commands/start.js.map +1 -1
  125. package/dist/commands/status.d.ts +2 -1
  126. package/dist/commands/status.js +3 -3
  127. package/dist/commands/status.js.map +1 -1
  128. package/dist/commands/subtask.d.ts +1 -1
  129. package/dist/commands/subtask.js +2 -2
  130. package/dist/commands/subtask.js.map +1 -1
  131. package/dist/commands/task-edit-content.d.ts +1 -1
  132. package/dist/commands/task-edit-content.js +2 -2
  133. package/dist/commands/task-edit-content.js.map +1 -1
  134. package/dist/commands/task.d.ts +10 -3
  135. package/dist/commands/task.js +19 -21
  136. package/dist/commands/task.js.map +1 -1
  137. package/dist/commands/tasks.d.ts +1 -1
  138. package/dist/commands/tasks.js +2 -2
  139. package/dist/commands/tasks.js.map +1 -1
  140. package/dist/commands/vibes.d.ts +4 -4
  141. package/dist/commands/vibes.js +5 -5
  142. package/dist/commands/vibes.js.map +1 -1
  143. package/dist/config.d.ts +69 -9
  144. package/dist/config.js +206 -23
  145. package/dist/config.js.map +1 -1
  146. package/dist/doc-cache.d.ts +23 -3
  147. package/dist/doc-cache.js +72 -12
  148. package/dist/doc-cache.js.map +1 -1
  149. package/dist/errors.d.ts +19 -2
  150. package/dist/errors.js +35 -0
  151. package/dist/errors.js.map +1 -1
  152. package/dist/id-resolve.d.ts +61 -0
  153. package/dist/id-resolve.js +87 -0
  154. package/dist/id-resolve.js.map +1 -0
  155. package/dist/index.js +477 -104
  156. package/dist/index.js.map +1 -1
  157. package/dist/mcp-config.d.ts +36 -0
  158. package/dist/mcp-config.js +51 -0
  159. package/dist/mcp-config.js.map +1 -0
  160. package/dist/oauth.d.ts +8 -0
  161. package/dist/oauth.js +54 -15
  162. package/dist/oauth.js.map +1 -1
  163. package/dist/output.js +7 -2
  164. package/dist/output.js.map +1 -1
  165. package/dist/paths.d.ts +97 -0
  166. package/dist/paths.js +178 -0
  167. package/dist/paths.js.map +1 -0
  168. package/dist/project-config.d.ts +75 -0
  169. package/dist/project-config.js +55 -0
  170. package/dist/project-config.js.map +1 -0
  171. package/dist/workspace-resolve.d.ts +158 -0
  172. package/dist/workspace-resolve.js +284 -0
  173. package/dist/workspace-resolve.js.map +1 -0
  174. package/package.json +53 -50
@@ -1,16 +1,32 @@
1
- export declare const SKILL_NAME = "orbitmap";
2
1
  export declare const MARKER_START = "<!-- ORBITMAP_START -->";
3
2
  export declare const MARKER_END = "<!-- ORBITMAP_END -->";
4
- export declare const SKILL_DESCRIPTION: string;
5
- export declare const CORE_INSTRUCTIONS = "# OrbitMap (CLI)\n\nOrbitMap is an agentic project management platform. This project tracks its work in\nOrbitMap, and you reach it through the `orbitmap` CLI from the shell \u2014 invoke it as\n`npx orbitmap <command>` (or `orbitmap <command>` if installed globally). This is the\nCLI equivalent of the OrbitMap MCP server's **full** profile: every command below maps\nto an MCP tool. Add `--json` to any command for machine-readable output.\n\n## General behaviour\n- Always prioritise the user's direct request. If the user asks you to do something\n (e.g. read a file, write code, answer a question), handle that request first.\n- Only interact with OrbitMap tasks when the user explicitly asks you to\n (e.g. \"check my tasks\", \"start a task\", \"what's on my backlog\", \"update docs\", \"create subtasks\").\n- When the user mentions \"OrbitMap\", \"orbit\", \"task\", \"backlog\", or project management\n concepts in the context of tracking work, use the `orbitmap` CLI to handle the request.\n\n## Project context\n- The CLI resolves the active project automatically from `~/.orbitmap/config.json`\n (`project_id`) or the `ORBITMAP_PROJECT_ID` env var. You normally don't pass it.\n- Override it for a single command with `--project <id-or-slug>`.\n- If a command errors asking for project context, run `orbitmap projects` to discover\n your projects, then retry with `--project <id>`.\n- Priority: explicit `--project` flag > `ORBITMAP_PROJECT_ID` env var > config file > auto-detect (single project).\n\n## Task statuses\nValid task statuses: `backlog`, `todo`, `in_progress`, `in_review`, `review_changes`, `done`, `blocked`.\nThe default filter for `orbitmap tasks` is `todo,in_progress`. Pass `--status <value>`\nwhen the user explicitly asks for something else (e.g. `orbitmap tasks --status backlog`).\n\n## Task workflow (on user request)\nWhen the user asks you to work on tasks:\n1. `orbitmap tasks --status in_progress` \u2014 check for unfinished work.\n2. If found \u2192 `orbitmap task <id>` \u2192 read the logs \u2192 resume.\n3. If not \u2192 `orbitmap start` \u2014 auto-picks the first todo task, fetches context, sets status to in_progress.\n4. If no tasks \u2192 inform the user.\n\nUse `orbitmap start [task-id]` to begin work. Use `orbitmap task <id>` to inspect tasks you are not starting.\n\n## Logging\n- `orbitmap log <task-id> \"<message>\" --type <type>` \u2014 for work WITHIN a task\n (types: `note`, `code_change`, `decision`, `blocker`).\n- `orbitmap vibe log --content \"<message>\" --type <type>` \u2014 for ad-hoc work outside a\n task (vibe types: `discovery`, `exploration`, `fix`).\n- `orbitmap idea add --content \"<idea>\"` \u2014 for future possibilities, NOT problems\n (use `orbitmap issue register` for those).\n- To convert an idea into work: `orbitmap create <title>` \u2192 `orbitmap idea status <id> --status used`.\n- When starting to investigate an issue: `orbitmap issue status <id> investigating`.\n- Keep log content concrete, concise, and useful for someone resuming work later.\n\n## End of session or task\n- Task finished \u2192 **default to `in_review`** so a human can verify the work before closing:\n `orbitmap log <id> \"Ready for review: ...\" --type note` \u2192 `orbitmap status <id> in_review`.\n- Task finished AND the user's prompt or agent_instructions explicitly say to close/complete\n without review \u2192 `orbitmap log <id> \"Summary: ...\" --type note` \u2192 `orbitmap status <id> done`.\n- Task blocked by an external dependency you cannot resolve (waiting on another task, missing\n access/credentials, unclear requirements needing human input, a failing external service)\n \u2192 `orbitmap log <id> \"Blocked: <reason>\" --type blocker` \u2192 `orbitmap status <id> blocked`.\n- Session ending, task not done but NOT blocked \u2192 `orbitmap log <id> \"Resume point: ...\" --type note`\n \u2014 leave status as `in_progress`.\n- NEVER leave a task without a final log entry.\n\n### Status decision guide\n- Use `in_review` when work is finished. **This is the default for completed work.** The\n person who requested the task should verify the result before it is closed.\n- Use `done` only when the user's prompt or task-level agent_instructions explicitly allow\n closing without review (e.g. \"auto-close\", \"mark as done\", \"no review needed\"). A user\n saying \"do this task\" is NOT permission to auto-close \u2014 only explicit opt-in counts.\n- Use `blocked` when you cannot continue due to an external factor outside your control.\n Always log the specific blocker so the team knows what to unblock.\n- Keep `in_progress` when the session is ending but you can resume work autonomously next time.\n\n## Git workflow\n- When the task has a `branch_name`, create or switch to it:\n `git checkout -b <branch_name>` (or `git checkout <branch_name>` if it already exists).\n- If the task has NO `branch_name`, work on the current branch \u2014 do not create one.\n- Do NOT work directly on main/master/develop unless the task has no branch_name and you\n are already on a feature branch.\n\n## Delivery flow\n- **Commit messages**: prefix the entity number with its type tag: `TS-` (task), `IS-` (issue),\n `ID-` (idea), `VB-` (vibe). E.g. `[TS-r5d8zf] Add delivery status field`.\n- **Finishing a task with commits**: when you committed and/or pushed code during the task,\n add `--delivery on_branch`: `orbitmap status <id> in_review --delivery on_branch`.\n- **Branch scanning**: when the user asks what's in a branch or PR, run\n `git log target..source --oneline`, parse `[TS-xxxxx]`/`[IS-xxxxx]` tags, and report matched entities.\n- **Delivery updates**: when the user tells you about a merge or release, update delivery\n status: `orbitmap status <id> done --delivery merged` / `orbitmap status <id> done --delivery released`.\n\n## Planning mode (Claude Code / agents with plan mode)\nWhen you create an implementation plan (e.g. entering plan mode), you MUST include OrbitMap\nlifecycle steps as explicit items in the plan:\n- **First step**: reference the OrbitMap task ID and title so the plan stays linked to the task.\n- **Last steps** (always include these):\n 1. `orbitmap log <id> \"...\" --type code_change` with a summary of all changes made.\n 2. `orbitmap status <id> <status>` \u2014 set `done`, `in_review`, or `blocked` per the status\n decision guide (or log a resume point if incomplete).\n\n## Documents\n- List docs with `orbitmap docs` \u2014 check each doc's `context` (when it's relevant) and\n `sections_count` (whether to read the TOC first or go straight to full).\n- **Token-efficient reading flow:**\n 1. `orbitmap doc <id-or-slug>` \u2192 context + table of contents (TOC, cheap).\n 2. `orbitmap doc <id-or-slug> --section \"## Auth\"` \u2192 just that section.\n 3. `orbitmap doc <id-or-slug> --full` \u2192 full content (for large docs, prints a download URL).\n Use the lightest mode that gives you what you need.\n- When `--full` returns a download URL for a large doc, download it locally\n (`orbitmap docs pull <slug>` caches it under `.orbitmap/docs/`) and read the local file.\n Do NOT paste full document content into the conversation.\n- **Section-based editing flow:**\n 1. `orbitmap doc <id-or-slug>` \u2192 read the TOC to find the section heading.\n 2. `orbitmap doc <id-or-slug> --section \"## Auth\"` \u2192 read the section you want to edit.\n 3. `orbitmap doc-patch <id-or-slug> --base-version <n> --replace-section \"## Auth\" --content \"...\"`.\n Patch operations: `--replace-section`, `--insert-section`, `--delete-section`, `--append`.\n- For a full rewrite use `orbitmap doc-update <id-or-slug> --file <path>`. To update an\n OrbitMap document, ALWAYS use `doc-update`/`doc-patch` \u2014 NEVER edit the cached local file directly.\n- **Workspace documents**: `orbitmap start`/`orbitmap task <id>` may surface workspace-level\n knowledge (cross-project docs). Read them the same way as project docs.\n\n## Rules\n- Work on ONE task at a time.\n- Always read `agent_instructions` from the task before implementing.\n- Task-level `agent_instructions` take precedence over project-level instructions.\n- When working on subtasks, only work on subtasks assigned to you (the current agent) \u2014 do\n not pick up subtasks assigned to other agents.\n- Do NOT mark a parent task as `done` if it still has unfinished subtasks, unless the user\n explicitly asks you to.\n\n## Error handling\n- If the OrbitMap API is unreachable, inform the user and continue working without logging.\n- Do NOT retry failed OrbitMap commands in a loop \u2014 report the issue and proceed with the task.\n\n## Example workflows\n\n### Completing a task (default \u2192 in_review)\nUser: \"Work on my next task\"\n1. `orbitmap tasks --status in_progress` \u2192 empty list\n2. `orbitmap start` \u2192 returns task context (title, description, agent_instructions, ...)\n3. Read agent_instructions, understand the task\n4. [implement the work \u2014 write code, edit files, run tests, commit & push]\n5. `orbitmap log <id> \"Implemented X by doing Y...\" --type code_change`\n6. `orbitmap log <id> \"Ready for review: completed task, all tests pass.\" --type note`\n7. `orbitmap status <id> in_review --delivery on_branch`\n\n### Hitting a blocker\n4. [start work, discover missing API credentials]\n5. `orbitmap log <id> \"Blocked: need API key for service X, not in env vars or secrets.\" --type blocker`\n6. `orbitmap status <id> blocked`\n\n## Command reference (MCP tool \u2192 CLI command)\nAll 27 MCP `full`-profile tools map onto these commands.\n\n### Context & projects\n| MCP tool | CLI command |\n|----------|-------------|\n| `get_my_context` | `orbitmap context` |\n| `get_my_projects` | `orbitmap projects` |\n| `create_project` | `orbitmap create-project <name> [--desc <text>] [--slug <slug>]` |\n| `list_project_members` | `orbitmap members <project-id>` |\n\n### Tasks\n| MCP tool | CLI command |\n|----------|-------------|\n| `get_tasks` (list) | `orbitmap tasks [--status <s>] [--priority <p>] [--orbit <id-or-slug>]` |\n| `get_tasks` (detail) | `orbitmap task <id>` (or `orbitmap get TS-xxxxx`) |\n| `start_task` | `orbitmap start [task-id]` |\n| `update_task_status` | `orbitmap status <task-id> <status> [--delivery <on_branch\\|merged\\|released>]` |\n| `create_task` | `orbitmap create <title> [--desc] [--priority] [--status] [--effort] [--agent-id] [--branch] [--instructions] [--from-issue]` |\n| `create_subtasks` | `orbitmap subtask <parent-id> <title> [--desc] [--priority] [--effort]` |\n| `manage_task_dependencies` | `orbitmap dep add\\|remove <task-id> <target-task-id> [--type depends_on\\|related] [--note]` |\n| `edit_task_content` | `orbitmap task-edit-content <task-id> [--title] [--description] [--agent-instructions]` |\n| `assign_task` | `orbitmap assign <task-id> [agent-id] [--user-id <id>]` |\n\n### Work log\n| MCP tool | CLI command |\n|----------|-------------|\n| `log_work` (task-bound) | `orbitmap log <task-id> \"<message>\" --type note\\|code_change\\|decision\\|blocker [--meta <json>]` |\n| `log_work` (vibe) | `orbitmap vibe log --content \"<message>\" --type discovery\\|exploration\\|fix [--title] [--task <id>]` |\n\n### Documents\n| MCP tool | CLI command |\n|----------|-------------|\n| `get_project_docs` | `orbitmap docs [--type <t>] [--search <q>]` |\n| `get_document` | `orbitmap doc <id-or-slug> [--full] [--section \"## Heading\"]` |\n| `import_document` | `orbitmap doc-import <title> --type <t> --file <path> [--context] [--source-path] [--workspace-id]` |\n| `edit_document` (replace) | `orbitmap doc-update <id-or-slug> --file <path> [--changelog]` |\n| `edit_document` (patch) | `orbitmap doc-patch <id-or-slug> --base-version <n> --replace-section\\|--insert-section\\|--delete-section\\|--append [--content] [--after] [--changelog]` |\n| `manage_document_sharing` | `orbitmap doc-share <doc-id> <project-id> [--agents]` \u00B7 `orbitmap doc-unshare <doc-id> <project-id>` \u00B7 `orbitmap doc-visibility <doc-id> <project-id> [--agents]` |\n\n### Issues\n| MCP tool | CLI command |\n|----------|-------------|\n| `register_issue` | `orbitmap issue register --title <t> --description <d> [--severity] [--related-task]` |\n| `get_issues` (list) | `orbitmap issues [--status] [--severity] [--limit]` |\n| `get_issues` (detail) | `orbitmap issue show <id-or-number>` (or `orbitmap get IS-xxxxx`) |\n| `update_issue_status` | `orbitmap issue status <id> <status>` \u00B7 `orbitmap issue resolve <id> --status resolved\\|wont_fix\\|duplicate [--resolution] [--resolved-task]` |\n\n### Vibes\n| MCP tool | CLI command |\n|----------|-------------|\n| `get_vibes` (list) | `orbitmap vibes [--type] [--since] [--limit]` |\n| `get_vibes` (detail) | `orbitmap vibe show <id>` (or `orbitmap get VB-xxxxx`) |\n\n### Ideas\n| MCP tool | CLI command |\n|----------|-------------|\n| `log_idea` | `orbitmap idea add --content <text> [--title] [--priority]` |\n| `get_ideas` (list) | `orbitmap ideas [--status] [--priority] [--limit]` |\n| `get_ideas` (detail) | `orbitmap idea show <id-or-number>` (or `orbitmap get ID-xxxxx`) |\n| `update_idea_status` | `orbitmap idea status <id> --status pending\\|accepted\\|used\\|rejected` |\n\n### Orbits\n| MCP tool | CLI command |\n|----------|-------------|\n| `manage_orbit_item` | `orbitmap orbit attach\\|detach <orbit-id-or-slug> --type task\\|issue\\|vibe\\|document --id <uuid> [--note]` |\n| `get_orbit_items` | `orbitmap orbit items <orbit-id-or-slug> [--type]` |\n\nRun `orbitmap --help` (or `orbitmap <command> --help`) for exact flags.";
6
- export declare const THIN_HOOK_CLAUDE = "## OrbitMap\nThis project tracks its work in **OrbitMap**, reached via the `orbitmap` CLI (`npx orbitmap <command>`).\nWhen the user mentions OrbitMap, a task, the backlog, issues, ideas, or asks to start/resume/finish/log work \u2014 use it.\n\nCore loop: `orbitmap tasks --status in_progress` (resume) \u2192 `orbitmap start` (next todo) \u2192 read the task's\n`agent_instructions` \u2192 implement \u2192 `orbitmap log <id> \"...\" --type code_change` \u2192 `orbitmap status <id> in_review`.\nOne task at a time; always log before finishing. Commit messages: `[TS-<task_number>] summary`.\n\nFor the full workflow, rules, and every command, **use the `orbitmap` skill** \u2014 it loads on demand.";
7
- export declare const THIN_HOOK_GENERIC = "## OrbitMap\nThis project tracks its work in **OrbitMap**, reached via the `orbitmap` CLI (`npx orbitmap <command>`).\nWhen the user mentions OrbitMap, a task, the backlog, issues, ideas, or asks to start/resume/finish/log work \u2014 use it.\n\nCore loop: `orbitmap tasks --status in_progress` (resume) \u2192 `orbitmap start` (next todo) \u2192 read the task's\n`agent_instructions` \u2192 implement \u2192 `orbitmap log <id> \"...\" --type code_change` \u2192 `orbitmap status <id> in_review`.\nOne task at a time; always log before finishing. Commit messages: `[TS-<task_number>] summary`.\n\nThe full workflow, rules, and command reference follow below.";
8
- /** Build the full SKILL.md file (frontmatter + body) for Claude. */
9
- export declare function buildSkillFile(): string;
3
+ /** The core skill name (entry point). Kept for backwards compatibility. */
4
+ export declare const SKILL_NAME = "orbitmap";
5
+ 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---";
6
+ 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## 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## Context\n- Area resolves automatically (config/env). Override per call with `--area <slug>`.\n- If a command fails asking for area context, run `orbitmap areas` to list areas, then\n retry with `--area`.\n- `orbitmap context` shows who you are, the workspace, and the active area. Run it when\n unsure.\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## Command reference (all commands accept --json)\n- Context: `orbitmap context`, `orbitmap areas`, `orbitmap overview`\n- Tasks: `orbitmap tasks [--status s1,s2]`, `orbitmap task TS-x`, `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- 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.";
7
+ export declare const SKILL_WORKING_FRONTMATTER = "---\nname: orbitmap-working\ndescription: >\n Working on OrbitMap tasks: starting/resuming, logging work, decisions and blockers,\n finishing with the correct status, git branches and delivery status. Use whenever\n implementing, resuming, or finishing a tracked task.\n---";
8
+ export declare const SKILL_WORKING_BODY = "# Working on OrbitMap tasks\n\n## Task workflow (on user request)\nWhen the user asks you to work on tasks:\n1. `orbitmap tasks --status in_progress` \u2014 check for unfinished work.\n2. If found \u2192 `orbitmap task TS-x` \u2192 read the work log \u2192 resume from the resume point.\n3. If not \u2192 `orbitmap start` \u2014 auto-picks the first todo task, sets it in_progress and\n prints full context (description, agent_instructions, logs).\n4. If no tasks \u2192 inform the user.\nUse `orbitmap start TS-x` to begin a specific task; `orbitmap task TS-x` only inspects.\n\n## Rules\n- Work on ONE task at a time.\n- Always read agent_instructions from the task before implementing. Task-level\n agent_instructions take precedence over area-level instructions.\n- Only work on subtasks assigned to you; do not pick up other agents' subtasks.\n- Do NOT mark a parent task done while it has unfinished subtasks, unless the user\n explicitly asks.\n\n## Logging\n- `orbitmap log TS-x \"\u2026\" --type note|code_change|decision|blocker` \u2014 work WITHIN a task.\n- `orbitmap vibe log \"\u2026\" --type discovery|exploration|fix` \u2014 ad-hoc work outside a task.\n- Use `--type decision` when you pick between approaches, reject an alternative, or lock\n in a non-obvious assumption \u2014 record the choice AND the why, not just the outcome.\n- `orbitmap idea add` \u2014 future possibilities, NOT problems (problems \u2192\n `orbitmap issue register`).\n- Keep log content concrete, concise, and useful for someone resuming work later.\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`.\n- Task finished AND the user's prompt or the task's agent_instructions explicitly say to\n close without review \u2192 `orbitmap log TS-x \"Summary: \u2026\" --type note` then\n `orbitmap status TS-x done`.\n- Blocked by an external dependency you cannot resolve (waiting on another task, missing\n access/credentials, unclear requirements, failing external service) \u2192\n `orbitmap log TS-x \"Blocked: <reason>\" --type blocker` then\n `orbitmap status TS-x blocked`.\n- Session ending, task not done 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.\n\n### Status decision guide\n- **in_review**: work is finished. THE DEFAULT for completed work. The requester should\n verify before closing.\n- **done**: only when the prompt or task agent_instructions explicitly allow closing\n without review (\"auto-close\", \"mark as done\", \"no review needed\"). A user saying \"do\n this task\" is NOT permission to auto-close.\n- **blocked**: an external factor outside your control stops you. Always log the\n specific blocker.\n- **in_progress** (keep): session ends but you can resume autonomously next time.\n\n## Git workflow\n- When the task context contains a branch_name, create or switch to it:\n `git checkout -b <branch_name>` (or `git checkout <branch_name>` if it exists).\n- If the task has NO branch_name, work on the current branch \u2014 do not create one.\n- Do NOT work directly on main/master/develop unless the task has no branch_name and you\n are already on a feature branch.\n\n## Delivery flow\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- When you committed/pushed code during the task, finish with\n `orbitmap status TS-x <status> --delivery on_branch`.\n- When the user asks what's in a branch/PR: `git log target..source --oneline`, parse\n `[TS-\u2026]`/`[IS-\u2026]` tags, report the matched entities.\n- When the user reports a merge or release: update the relevant tasks with\n `--delivery merged` or `--delivery released`.\n\n## Planning mode (agents with a plan mode)\nWhen you create an implementation plan for a tracked task, you MUST include OrbitMap\nlifecycle steps as explicit plan items:\n- First step: reference the OrbitMap task number and title.\n- Last steps, always: (1) `orbitmap log` with a summary of all changes; (2)\n `orbitmap status` set per the status decision guide (or a resume-point log if\n incomplete).\n\n## Example: completing a task (default \u2192 in_review)\n1. `orbitmap tasks --status in_progress` \u2192 empty\n2. `orbitmap start` \u2192 task context\n3. read agent_instructions; implement; run tests; commit with `[TS-x]` prefix\n4. `orbitmap log TS-x \"Implemented X by doing Y\" --type code_change`\n5. `orbitmap log TS-x \"Ready for review: all tests pass.\" --type note`\n6. `orbitmap status TS-x in_review --delivery on_branch`";
9
+ export declare const SKILL_PLANNING_FRONTMATTER = "---\nname: orbitmap-planning\ndescription: >\n Planning with OrbitMap: missions (time-boxed focus), intents (goals grouping work),\n promoting ideas to tasks, triaging issues, decomposing work into tasks and subtasks.\n Use for \"plan\", \"roadmap\", \"mission\", \"intent\", \"break this down\", idea or issue\n triage requests.\n---";
10
+ export declare const SKILL_PLANNING_BODY = "# Planning in OrbitMap\n\n## Hierarchy\nMission (MS-) \u2192 Intent (IN-) \u2192 Task (TS-) / Issue (IS-). Missions and intents are\nworkspace-level; tasks live in areas. An intent groups the tasks/issues that realise one\ngoal; a mission time-boxes a set of intents (and directly-attached items) toward an\noutcome. At most ONE mission is active at a time.\n\n## Missions\n- `orbitmap mission list` / `orbitmap mission show MS-x`\n- `orbitmap mission create \"name\" [--outcome \"\u2026\"] [--start d] [--end d]`\n- `orbitmap mission status MS-x active|completed|cancelled` \u2014 activating fails while\n another mission is active; complete or cancel it first.\n- `orbitmap mission link MS-x IN-y|TS-y|IS-y|ID-y` / `mission unlink` \u2014 attach items.\n\n## Intents\n- `orbitmap intent create \"name\" [--mission MS-x]`, statuses:\n new \u2192 design \u2192 plan \u2192 build \u2192 done (or cancelled); update with\n `orbitmap intent update IN-x --status build`.\n- `orbitmap intent link IN-x TS-y|IS-y` attaches work items to the intent.\n- RULE (intent-exclusive): an item linked to an intent gets its mission THROUGH the\n intent \u2014 never set a direct mission on a task/issue that has an intent. The CLI\n enforces this; do not fight it.\n\n## Planning workflow (recommended when the user asks to plan a body of work)\n1. Clarify the outcome \u2192 `orbitmap mission create` (or pick the active mission).\n2. Split into goals \u2192 `orbitmap intent create` per goal, `mission link` them.\n3. Decompose each intent into concrete tasks \u2192\n `orbitmap create \"title\" --intent IN-x [--priority p]`, subtasks via\n `orbitmap subtask`.\n4. Wire ordering constraints \u2192 `orbitmap dep add TS-a TS-b` (a depends on b).\n5. Review: `orbitmap mission show MS-x` and `orbitmap overview`.\n\n## Ideas (opportunities, not problems)\n- Capture: `orbitmap idea add \"\u2026\" [--priority p]`.\n- Review: `orbitmap idea list` (default pending).\n- Promote to work: analyse the codebase first, then `orbitmap create \"task title\"\n --intent \u2026` referencing the idea in the description, then\n `orbitmap idea status ID-x used`. Reject with `\u2026 rejected`.\n\n## Issues (problems)\n- Report: `orbitmap issue register \"title\" --severity critical|high|medium|low\n [--description \"\u2026\"]`.\n- Start investigating: `orbitmap issue status IS-x investigating`.\n- Convert to work: `orbitmap create` a fix task, link it, and resolve with\n `orbitmap issue resolve IS-x --task TS-y --resolution \"\u2026\"` (or status wont_fix /\n duplicate with a reason).";
11
+ 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---";
12
+ export declare const SKILL_DOCS_BODY = "# OrbitMap documents\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.";
13
+ export interface SkillDef {
14
+ /** Skill name = directory name under `.claude/skills/`. */
15
+ name: string;
16
+ /** Verbatim YAML frontmatter block, including the `---` fences. */
17
+ frontmatter: string;
18
+ /** Verbatim markdown body. */
19
+ body: string;
20
+ }
21
+ export declare const SKILLS: readonly SkillDef[];
22
+ export declare const THIN_HOOK_CLAUDE = "## OrbitMap\n\nThis project tracks work in OrbitMap via the `orbitmap` CLI (works the same whether data\nis in the cloud or in local files). When the user mentions tasks, backlog, missions,\nintents, ideas, issues, vibes, or asks you to work on / log / plan something, load the\nmatching skill: `orbitmap` (context & commands), `orbitmap-working` (doing tasks),\n`orbitmap-planning` (missions/intents/ideas/issues), `orbitmap-docs` (documents).\nGolden rules: work on ONE task at a time; NEVER finish a task session without a final\n`orbitmap log` entry and an `orbitmap status` update; finished work defaults to\n`in_review`, not `done`. NEVER edit files inside the OrbitMap workspace directory\ndirectly \u2014 always go through `orbitmap` commands.";
23
+ export declare const THIN_HOOK_GENERIC = "## OrbitMap\n\nThis project tracks work in OrbitMap via the `orbitmap` CLI (works the same whether data\nis in the cloud or in local files). When the user mentions tasks, backlog, missions,\nintents, ideas, issues, vibes, or asks you to work on / log / plan something, follow the\nsections below: core (context & commands), working on tasks, planning\n(missions/intents/ideas/issues), and documents.\nGolden rules: work on ONE task at a time; NEVER finish a task session without a final\n`orbitmap log` entry and an `orbitmap status` update; finished work defaults to\n`in_review`, not `done`. NEVER edit files inside the OrbitMap workspace directory\ndirectly \u2014 always go through `orbitmap` commands.";
24
+ /** Build one SKILL.md file (frontmatter + body) for Claude. */
25
+ export declare function buildSkillFile(skill: SkillDef): string;
10
26
  /** Build the thin always-on block for a Claude config file (CLAUDE.md). */
11
27
  export declare function buildClaudeHook(): string;
12
28
  /**
13
- * Build the markdown fallback block for non-Claude agents: the thin hook plus the
14
- * full inlined instructions (no skill ecosystem to lean on).
29
+ * Build the markdown fallback block for non-Claude agents: the thin hook plus all four
30
+ * skill bodies inlined (no skill ecosystem to lean on).
15
31
  */
16
32
  export declare function buildGenericBlock(): string;