stagent 0.1.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.
Files changed (333) hide show
  1. package/LICENSE +191 -0
  2. package/README.md +399 -0
  3. package/components.json +21 -0
  4. package/dist/cli.js +171 -0
  5. package/drizzle.config.ts +12 -0
  6. package/next.config.mjs +15 -0
  7. package/package.json +114 -0
  8. package/postcss.config.mjs +8 -0
  9. package/public/icon-512.png +0 -0
  10. package/public/icon.svg +13 -0
  11. package/public/readme/home-workspace.png +0 -0
  12. package/public/readme/inbox-approvals.png +0 -0
  13. package/public/readme/workflow-blueprints.png +0 -0
  14. package/public/stagent-s-128.png +0 -0
  15. package/public/stagent-s-64.png +0 -0
  16. package/src/app/api/blueprints/[id]/instantiate/route.ts +27 -0
  17. package/src/app/api/blueprints/[id]/route.ts +39 -0
  18. package/src/app/api/blueprints/import/route.ts +68 -0
  19. package/src/app/api/blueprints/route.ts +29 -0
  20. package/src/app/api/command-palette/recent/route.ts +31 -0
  21. package/src/app/api/data/clear/route.ts +22 -0
  22. package/src/app/api/data/seed/route.ts +22 -0
  23. package/src/app/api/documents/[id]/file/route.ts +44 -0
  24. package/src/app/api/documents/[id]/route.ts +123 -0
  25. package/src/app/api/documents/route.ts +59 -0
  26. package/src/app/api/logs/stream/route.ts +101 -0
  27. package/src/app/api/notifications/[id]/route.ts +36 -0
  28. package/src/app/api/notifications/mark-all-read/route.ts +13 -0
  29. package/src/app/api/notifications/pending-approvals/route.ts +10 -0
  30. package/src/app/api/notifications/pending-approvals/stream/route.ts +101 -0
  31. package/src/app/api/notifications/route.ts +34 -0
  32. package/src/app/api/permissions/route.ts +46 -0
  33. package/src/app/api/profiles/[id]/route.ts +79 -0
  34. package/src/app/api/profiles/[id]/test/route.ts +42 -0
  35. package/src/app/api/profiles/import/route.ts +108 -0
  36. package/src/app/api/profiles/route.ts +50 -0
  37. package/src/app/api/projects/[id]/route.ts +72 -0
  38. package/src/app/api/projects/route.ts +53 -0
  39. package/src/app/api/schedules/[id]/route.ts +185 -0
  40. package/src/app/api/schedules/route.ts +117 -0
  41. package/src/app/api/settings/budgets/route.ts +24 -0
  42. package/src/app/api/settings/openai/route.ts +24 -0
  43. package/src/app/api/settings/route.ts +21 -0
  44. package/src/app/api/settings/test/route.ts +26 -0
  45. package/src/app/api/tasks/[id]/cancel/route.ts +21 -0
  46. package/src/app/api/tasks/[id]/execute/route.ts +90 -0
  47. package/src/app/api/tasks/[id]/logs/route.ts +95 -0
  48. package/src/app/api/tasks/[id]/output/route.ts +47 -0
  49. package/src/app/api/tasks/[id]/respond/route.ts +64 -0
  50. package/src/app/api/tasks/[id]/resume/route.ts +76 -0
  51. package/src/app/api/tasks/[id]/route.ts +77 -0
  52. package/src/app/api/tasks/assist/route.ts +35 -0
  53. package/src/app/api/tasks/route.ts +82 -0
  54. package/src/app/api/uploads/[id]/route.ts +81 -0
  55. package/src/app/api/uploads/cleanup/route.ts +7 -0
  56. package/src/app/api/uploads/route.ts +66 -0
  57. package/src/app/api/workflows/[id]/execute/route.ts +82 -0
  58. package/src/app/api/workflows/[id]/route.ts +133 -0
  59. package/src/app/api/workflows/[id]/status/route.ts +54 -0
  60. package/src/app/api/workflows/[id]/steps/[stepId]/retry/route.ts +22 -0
  61. package/src/app/api/workflows/route.ts +61 -0
  62. package/src/app/apple-icon.tsx +31 -0
  63. package/src/app/costs/page.tsx +256 -0
  64. package/src/app/dashboard/page.tsx +44 -0
  65. package/src/app/documents/[id]/page.tsx +46 -0
  66. package/src/app/documents/page.tsx +45 -0
  67. package/src/app/error.tsx +26 -0
  68. package/src/app/global-error.tsx +23 -0
  69. package/src/app/globals.css +733 -0
  70. package/src/app/icon.tsx +30 -0
  71. package/src/app/inbox/loading.tsx +15 -0
  72. package/src/app/inbox/page.tsx +35 -0
  73. package/src/app/layout.tsx +78 -0
  74. package/src/app/manifest.ts +32 -0
  75. package/src/app/monitor/page.tsx +37 -0
  76. package/src/app/page.tsx +162 -0
  77. package/src/app/profiles/[id]/edit/page.tsx +39 -0
  78. package/src/app/profiles/[id]/page.tsx +33 -0
  79. package/src/app/profiles/new/page.tsx +22 -0
  80. package/src/app/profiles/page.tsx +19 -0
  81. package/src/app/projects/[id]/page.tsx +134 -0
  82. package/src/app/projects/loading.tsx +17 -0
  83. package/src/app/projects/page.tsx +32 -0
  84. package/src/app/schedules/[id]/page.tsx +47 -0
  85. package/src/app/schedules/page.tsx +18 -0
  86. package/src/app/settings/loading.tsx +24 -0
  87. package/src/app/settings/page.tsx +27 -0
  88. package/src/app/tasks/[id]/page.tsx +45 -0
  89. package/src/app/tasks/new/page.tsx +27 -0
  90. package/src/app/workflows/[id]/edit/page.tsx +66 -0
  91. package/src/app/workflows/[id]/page.tsx +37 -0
  92. package/src/app/workflows/blueprints/[id]/page.tsx +40 -0
  93. package/src/app/workflows/blueprints/new/page.tsx +20 -0
  94. package/src/app/workflows/blueprints/page.tsx +11 -0
  95. package/src/app/workflows/new/page.tsx +36 -0
  96. package/src/app/workflows/page.tsx +18 -0
  97. package/src/components/charts/donut-ring.tsx +64 -0
  98. package/src/components/charts/mini-bar.tsx +75 -0
  99. package/src/components/charts/sparkline.tsx +107 -0
  100. package/src/components/costs/cost-dashboard.tsx +877 -0
  101. package/src/components/costs/cost-filters.tsx +179 -0
  102. package/src/components/dashboard/activity-feed.tsx +95 -0
  103. package/src/components/dashboard/greeting.tsx +30 -0
  104. package/src/components/dashboard/priority-queue.tsx +79 -0
  105. package/src/components/dashboard/quick-actions.tsx +62 -0
  106. package/src/components/dashboard/recent-projects.tsx +79 -0
  107. package/src/components/dashboard/stats-cards.tsx +114 -0
  108. package/src/components/documents/document-browser.tsx +235 -0
  109. package/src/components/documents/document-detail-view.tsx +367 -0
  110. package/src/components/documents/document-grid.tsx +78 -0
  111. package/src/components/documents/document-preview.tsx +68 -0
  112. package/src/components/documents/document-table.tsx +119 -0
  113. package/src/components/documents/document-upload-dialog.tsx +153 -0
  114. package/src/components/documents/types.ts +6 -0
  115. package/src/components/documents/utils.ts +57 -0
  116. package/src/components/monitoring/connection-indicator.tsx +14 -0
  117. package/src/components/monitoring/log-entry.tsx +79 -0
  118. package/src/components/monitoring/log-filters.tsx +57 -0
  119. package/src/components/monitoring/log-stream.tsx +144 -0
  120. package/src/components/monitoring/monitor-overview-wrapper.tsx +64 -0
  121. package/src/components/monitoring/monitor-overview.tsx +119 -0
  122. package/src/components/notifications/failure-action.tsx +38 -0
  123. package/src/components/notifications/inbox-list.tsx +165 -0
  124. package/src/components/notifications/message-response.tsx +196 -0
  125. package/src/components/notifications/notification-item.tsx +250 -0
  126. package/src/components/notifications/pending-approval-host.tsx +478 -0
  127. package/src/components/notifications/permission-action.tsx +37 -0
  128. package/src/components/notifications/permission-response-actions.tsx +126 -0
  129. package/src/components/notifications/unread-badge.tsx +35 -0
  130. package/src/components/profiles/profile-browser.tsx +117 -0
  131. package/src/components/profiles/profile-card.tsx +78 -0
  132. package/src/components/profiles/profile-detail-view.tsx +564 -0
  133. package/src/components/profiles/profile-form-view.tsx +480 -0
  134. package/src/components/profiles/profile-import-dialog.tsx +113 -0
  135. package/src/components/projects/project-card.tsx +58 -0
  136. package/src/components/projects/project-create-dialog.tsx +140 -0
  137. package/src/components/projects/project-detail.tsx +68 -0
  138. package/src/components/projects/project-edit-dialog.tsx +219 -0
  139. package/src/components/projects/project-list.tsx +108 -0
  140. package/src/components/schedules/schedule-create-dialog.tsx +403 -0
  141. package/src/components/schedules/schedule-detail-view.tsx +274 -0
  142. package/src/components/schedules/schedule-list.tsx +242 -0
  143. package/src/components/schedules/schedule-status-badge.tsx +16 -0
  144. package/src/components/settings/api-key-form.tsx +141 -0
  145. package/src/components/settings/auth-config-section.tsx +141 -0
  146. package/src/components/settings/auth-method-selector.tsx +67 -0
  147. package/src/components/settings/auth-status-badge.tsx +40 -0
  148. package/src/components/settings/auth-status-dot.tsx +59 -0
  149. package/src/components/settings/budget-guardrails-section.tsx +842 -0
  150. package/src/components/settings/data-management-section.tsx +141 -0
  151. package/src/components/settings/openai-runtime-section.tsx +104 -0
  152. package/src/components/settings/permissions-section.tsx +91 -0
  153. package/src/components/shared/app-sidebar.tsx +123 -0
  154. package/src/components/shared/card-skeleton.tsx +42 -0
  155. package/src/components/shared/command-palette.tsx +250 -0
  156. package/src/components/shared/confirm-dialog.tsx +52 -0
  157. package/src/components/shared/empty-state.tsx +24 -0
  158. package/src/components/shared/error-state.tsx +32 -0
  159. package/src/components/shared/form-section-card.tsx +33 -0
  160. package/src/components/shared/section-heading.tsx +14 -0
  161. package/src/components/shared/stagent-logo.tsx +21 -0
  162. package/src/components/shared/theme-toggle.tsx +46 -0
  163. package/src/components/tasks/ai-assist-panel.tsx +210 -0
  164. package/src/components/tasks/content-preview.tsx +89 -0
  165. package/src/components/tasks/empty-board.tsx +12 -0
  166. package/src/components/tasks/file-upload.tsx +120 -0
  167. package/src/components/tasks/kanban-board.tsx +275 -0
  168. package/src/components/tasks/kanban-column.tsx +75 -0
  169. package/src/components/tasks/skeleton-board.tsx +21 -0
  170. package/src/components/tasks/task-attachments.tsx +114 -0
  171. package/src/components/tasks/task-card.tsx +101 -0
  172. package/src/components/tasks/task-create-panel.tsx +360 -0
  173. package/src/components/tasks/task-detail-view.tsx +356 -0
  174. package/src/components/ui/alert-dialog.tsx +196 -0
  175. package/src/components/ui/badge.tsx +50 -0
  176. package/src/components/ui/button.tsx +71 -0
  177. package/src/components/ui/card.tsx +92 -0
  178. package/src/components/ui/checkbox.tsx +32 -0
  179. package/src/components/ui/command.tsx +184 -0
  180. package/src/components/ui/dialog.tsx +158 -0
  181. package/src/components/ui/dropdown-menu.tsx +257 -0
  182. package/src/components/ui/form.tsx +167 -0
  183. package/src/components/ui/input.tsx +21 -0
  184. package/src/components/ui/label.tsx +24 -0
  185. package/src/components/ui/popover.tsx +89 -0
  186. package/src/components/ui/progress.tsx +31 -0
  187. package/src/components/ui/radio-group.tsx +45 -0
  188. package/src/components/ui/scroll-area.tsx +58 -0
  189. package/src/components/ui/select.tsx +190 -0
  190. package/src/components/ui/separator.tsx +28 -0
  191. package/src/components/ui/sheet.tsx +143 -0
  192. package/src/components/ui/sidebar.tsx +726 -0
  193. package/src/components/ui/skeleton.tsx +13 -0
  194. package/src/components/ui/slider.tsx +63 -0
  195. package/src/components/ui/sonner.tsx +36 -0
  196. package/src/components/ui/switch.tsx +35 -0
  197. package/src/components/ui/table.tsx +116 -0
  198. package/src/components/ui/tabs.tsx +91 -0
  199. package/src/components/ui/textarea.tsx +18 -0
  200. package/src/components/ui/tooltip.tsx +57 -0
  201. package/src/components/workflows/blueprint-editor.tsx +109 -0
  202. package/src/components/workflows/blueprint-gallery.tsx +155 -0
  203. package/src/components/workflows/blueprint-preview.tsx +240 -0
  204. package/src/components/workflows/loop-status-view.tsx +272 -0
  205. package/src/components/workflows/swarm-dashboard.tsx +185 -0
  206. package/src/components/workflows/workflow-form-view.tsx +1376 -0
  207. package/src/components/workflows/workflow-list.tsx +230 -0
  208. package/src/components/workflows/workflow-status-view.tsx +477 -0
  209. package/src/hooks/use-mobile.ts +19 -0
  210. package/src/instrumentation.ts +7 -0
  211. package/src/lib/agents/claude-agent.ts +737 -0
  212. package/src/lib/agents/execution-manager.ts +27 -0
  213. package/src/lib/agents/profiles/assignment-validation.ts +75 -0
  214. package/src/lib/agents/profiles/builtins/code-reviewer/SKILL.md +21 -0
  215. package/src/lib/agents/profiles/builtins/code-reviewer/profile.yaml +28 -0
  216. package/src/lib/agents/profiles/builtins/data-analyst/SKILL.md +25 -0
  217. package/src/lib/agents/profiles/builtins/data-analyst/profile.yaml +27 -0
  218. package/src/lib/agents/profiles/builtins/devops-engineer/SKILL.md +34 -0
  219. package/src/lib/agents/profiles/builtins/devops-engineer/profile.yaml +27 -0
  220. package/src/lib/agents/profiles/builtins/document-writer/SKILL.md +16 -0
  221. package/src/lib/agents/profiles/builtins/document-writer/profile.yaml +27 -0
  222. package/src/lib/agents/profiles/builtins/general/SKILL.md +13 -0
  223. package/src/lib/agents/profiles/builtins/general/profile.yaml +18 -0
  224. package/src/lib/agents/profiles/builtins/health-fitness-coach/SKILL.md +34 -0
  225. package/src/lib/agents/profiles/builtins/health-fitness-coach/profile.yaml +26 -0
  226. package/src/lib/agents/profiles/builtins/learning-coach/SKILL.md +35 -0
  227. package/src/lib/agents/profiles/builtins/learning-coach/profile.yaml +26 -0
  228. package/src/lib/agents/profiles/builtins/project-manager/SKILL.md +26 -0
  229. package/src/lib/agents/profiles/builtins/project-manager/profile.yaml +26 -0
  230. package/src/lib/agents/profiles/builtins/researcher/SKILL.md +15 -0
  231. package/src/lib/agents/profiles/builtins/researcher/profile.yaml +27 -0
  232. package/src/lib/agents/profiles/builtins/shopping-assistant/SKILL.md +34 -0
  233. package/src/lib/agents/profiles/builtins/shopping-assistant/profile.yaml +26 -0
  234. package/src/lib/agents/profiles/builtins/technical-writer/SKILL.md +31 -0
  235. package/src/lib/agents/profiles/builtins/technical-writer/profile.yaml +29 -0
  236. package/src/lib/agents/profiles/builtins/travel-planner/SKILL.md +23 -0
  237. package/src/lib/agents/profiles/builtins/travel-planner/profile.yaml +26 -0
  238. package/src/lib/agents/profiles/builtins/wealth-manager/SKILL.md +24 -0
  239. package/src/lib/agents/profiles/builtins/wealth-manager/profile.yaml +26 -0
  240. package/src/lib/agents/profiles/compatibility.ts +109 -0
  241. package/src/lib/agents/profiles/registry.ts +293 -0
  242. package/src/lib/agents/profiles/test-runner.ts +18 -0
  243. package/src/lib/agents/profiles/test-types.ts +20 -0
  244. package/src/lib/agents/profiles/types.ts +43 -0
  245. package/src/lib/agents/router.ts +56 -0
  246. package/src/lib/agents/runtime/catalog.ts +85 -0
  247. package/src/lib/agents/runtime/claude-sdk.ts +12 -0
  248. package/src/lib/agents/runtime/claude.ts +370 -0
  249. package/src/lib/agents/runtime/codex-app-server-client.ts +289 -0
  250. package/src/lib/agents/runtime/index.ts +167 -0
  251. package/src/lib/agents/runtime/openai-codex.ts +1089 -0
  252. package/src/lib/agents/runtime/task-assist-types.ts +8 -0
  253. package/src/lib/agents/runtime/types.ts +30 -0
  254. package/src/lib/constants/settings.ts +13 -0
  255. package/src/lib/constants/status-colors.ts +44 -0
  256. package/src/lib/constants/task-status.ts +49 -0
  257. package/src/lib/data/clear.ts +63 -0
  258. package/src/lib/data/seed-data/documents.ts +715 -0
  259. package/src/lib/data/seed-data/logs.ts +195 -0
  260. package/src/lib/data/seed-data/notifications.ts +141 -0
  261. package/src/lib/data/seed-data/profiles.ts +175 -0
  262. package/src/lib/data/seed-data/projects.ts +61 -0
  263. package/src/lib/data/seed-data/schedules.ts +108 -0
  264. package/src/lib/data/seed-data/tasks.ts +341 -0
  265. package/src/lib/data/seed-data/usage-ledger.ts +130 -0
  266. package/src/lib/data/seed-data/workflows.ts +213 -0
  267. package/src/lib/data/seed.ts +129 -0
  268. package/src/lib/db/index.ts +221 -0
  269. package/src/lib/db/migrations/0000_aromatic_gargoyle.sql +59 -0
  270. package/src/lib/db/migrations/0001_first_iron_patriot.sql +6 -0
  271. package/src/lib/db/migrations/0002_add_resume_count.sql +1 -0
  272. package/src/lib/db/migrations/0003_add_settings.sql +5 -0
  273. package/src/lib/db/migrations/0004_add_documents.sql +20 -0
  274. package/src/lib/db/migrations/0005_add_document_preprocessing.sql +4 -0
  275. package/src/lib/db/migrations/0006_add_agent_profile.sql +2 -0
  276. package/src/lib/db/migrations/0007_add_usage_metering_ledger.sql +30 -0
  277. package/src/lib/db/migrations/0008_add_document_version.sql +1 -0
  278. package/src/lib/db/migrations/meta/0000_snapshot.json +416 -0
  279. package/src/lib/db/migrations/meta/0001_snapshot.json +461 -0
  280. package/src/lib/db/migrations/meta/0002_snapshot.json +469 -0
  281. package/src/lib/db/migrations/meta/_journal.json +27 -0
  282. package/src/lib/db/schema.ts +227 -0
  283. package/src/lib/documents/cleanup.ts +50 -0
  284. package/src/lib/documents/context-builder.ts +75 -0
  285. package/src/lib/documents/output-scanner.ts +166 -0
  286. package/src/lib/documents/processor.ts +120 -0
  287. package/src/lib/documents/processors/image.ts +21 -0
  288. package/src/lib/documents/processors/office.ts +36 -0
  289. package/src/lib/documents/processors/pdf.ts +12 -0
  290. package/src/lib/documents/processors/spreadsheet.ts +18 -0
  291. package/src/lib/documents/processors/text.ts +8 -0
  292. package/src/lib/documents/registry.ts +25 -0
  293. package/src/lib/notifications/actionable.ts +108 -0
  294. package/src/lib/notifications/permissions.ts +169 -0
  295. package/src/lib/queries/chart-data.ts +184 -0
  296. package/src/lib/schedules/interval-parser.ts +110 -0
  297. package/src/lib/schedules/scheduler.ts +220 -0
  298. package/src/lib/settings/auth.ts +98 -0
  299. package/src/lib/settings/budget-guardrails.ts +590 -0
  300. package/src/lib/settings/helpers.ts +23 -0
  301. package/src/lib/settings/openai-auth.ts +80 -0
  302. package/src/lib/settings/permissions.ts +102 -0
  303. package/src/lib/usage/ledger.ts +489 -0
  304. package/src/lib/usage/pricing.ts +68 -0
  305. package/src/lib/utils/crypto.ts +90 -0
  306. package/src/lib/utils/format-timestamp.ts +46 -0
  307. package/src/lib/utils/session-cleanup.ts +26 -0
  308. package/src/lib/utils/stagent-paths.ts +18 -0
  309. package/src/lib/utils.ts +6 -0
  310. package/src/lib/validators/blueprint.ts +43 -0
  311. package/src/lib/validators/profile.ts +64 -0
  312. package/src/lib/validators/project.ts +17 -0
  313. package/src/lib/validators/settings.ts +57 -0
  314. package/src/lib/validators/task.ts +30 -0
  315. package/src/lib/workflows/blueprints/builtins/code-review-pipeline.yaml +72 -0
  316. package/src/lib/workflows/blueprints/builtins/documentation-generation.yaml +62 -0
  317. package/src/lib/workflows/blueprints/builtins/investment-research.yaml +81 -0
  318. package/src/lib/workflows/blueprints/builtins/meal-planning.yaml +73 -0
  319. package/src/lib/workflows/blueprints/builtins/product-research.yaml +72 -0
  320. package/src/lib/workflows/blueprints/builtins/research-report.yaml +77 -0
  321. package/src/lib/workflows/blueprints/builtins/sprint-planning.yaml +77 -0
  322. package/src/lib/workflows/blueprints/builtins/travel-planning.yaml +80 -0
  323. package/src/lib/workflows/blueprints/instantiator.ts +131 -0
  324. package/src/lib/workflows/blueprints/registry.ts +128 -0
  325. package/src/lib/workflows/blueprints/template.ts +58 -0
  326. package/src/lib/workflows/blueprints/types.ts +38 -0
  327. package/src/lib/workflows/definition-validation.ts +121 -0
  328. package/src/lib/workflows/engine.ts +1113 -0
  329. package/src/lib/workflows/loop-executor.ts +270 -0
  330. package/src/lib/workflows/parallel.ts +55 -0
  331. package/src/lib/workflows/swarm.ts +97 -0
  332. package/src/lib/workflows/types.ts +112 -0
  333. package/tsconfig.json +41 -0
@@ -0,0 +1,27 @@
1
+ interface RunningExecution {
2
+ abortController: AbortController;
3
+ sessionId: string | null;
4
+ taskId: string;
5
+ startedAt: Date;
6
+ interrupt?: () => Promise<void>;
7
+ cleanup?: () => Promise<void>;
8
+ metadata?: Record<string, unknown>;
9
+ }
10
+
11
+ const executions = new Map<string, RunningExecution>();
12
+
13
+ export function getExecution(taskId: string): RunningExecution | undefined {
14
+ return executions.get(taskId);
15
+ }
16
+
17
+ export function setExecution(taskId: string, execution: RunningExecution): void {
18
+ executions.set(taskId, execution);
19
+ }
20
+
21
+ export function removeExecution(taskId: string): void {
22
+ executions.delete(taskId);
23
+ }
24
+
25
+ export function getAllExecutions(): Map<string, RunningExecution> {
26
+ return executions;
27
+ }
@@ -0,0 +1,75 @@
1
+ import {
2
+ DEFAULT_AGENT_RUNTIME,
3
+ getRuntimeCatalogEntry,
4
+ resolveAgentRuntime,
5
+ } from "@/lib/agents/runtime/catalog";
6
+ import type { WorkflowDefinition } from "@/lib/workflows/types";
7
+ import { getProfile } from "./registry";
8
+ import { profileSupportsRuntime } from "./compatibility";
9
+
10
+ function getCompatibilityError(
11
+ profileId: string,
12
+ runtimeId?: string | null,
13
+ context = "Profile"
14
+ ): string | null {
15
+ const profile = getProfile(profileId);
16
+ if (!profile) {
17
+ return `${context} "${profileId}" was not found`;
18
+ }
19
+
20
+ const resolvedRuntime = resolveAgentRuntime(runtimeId ?? DEFAULT_AGENT_RUNTIME);
21
+ if (profileSupportsRuntime(profile, resolvedRuntime)) {
22
+ return null;
23
+ }
24
+
25
+ const runtime = getRuntimeCatalogEntry(resolvedRuntime);
26
+ return `${context} "${profile.name}" does not support ${runtime.label}`;
27
+ }
28
+
29
+ export function validateRuntimeProfileAssignment(input: {
30
+ profileId?: string | null;
31
+ runtimeId?: string | null;
32
+ context?: string;
33
+ }): string | null {
34
+ if (!input.profileId) {
35
+ return null;
36
+ }
37
+
38
+ return getCompatibilityError(
39
+ input.profileId,
40
+ input.runtimeId,
41
+ input.context
42
+ );
43
+ }
44
+
45
+ export function validateWorkflowDefinitionAssignments(
46
+ definition: WorkflowDefinition
47
+ ): string | null {
48
+ if (definition.loopConfig?.agentProfile) {
49
+ const error = getCompatibilityError(
50
+ definition.loopConfig.agentProfile,
51
+ definition.loopConfig.assignedAgent,
52
+ "Loop profile"
53
+ );
54
+ if (error) {
55
+ return error;
56
+ }
57
+ }
58
+
59
+ for (const [index, step] of definition.steps.entries()) {
60
+ if (!step.agentProfile) {
61
+ continue;
62
+ }
63
+
64
+ const error = getCompatibilityError(
65
+ step.agentProfile,
66
+ step.assignedAgent,
67
+ `Step ${index + 1} profile`
68
+ );
69
+ if (error) {
70
+ return error;
71
+ }
72
+ }
73
+
74
+ return null;
75
+ }
@@ -0,0 +1,21 @@
1
+ ---
2
+ name: code-reviewer
3
+ description: Security-focused code review with OWASP checks and structured findings
4
+ ---
5
+
6
+ You are a senior code reviewer focused on security, correctness, and maintainability.
7
+
8
+ Review code with these priorities:
9
+ 1. **CRITICAL** — Security vulnerabilities (OWASP Top 10), data loss risks, race conditions
10
+ 2. **WARNING** — Logic errors, missing error handling, performance issues
11
+ 3. **SUGGESTION** — Code style, naming, simplification opportunities
12
+
13
+ ## Output Format
14
+
15
+ For each finding, report:
16
+ - **Severity**: CRITICAL | WARNING | SUGGESTION
17
+ - **Location**: file path and line range
18
+ - **Issue**: concise description
19
+ - **Fix**: specific remediation
20
+
21
+ Summarize with counts per severity at the end.
@@ -0,0 +1,28 @@
1
+ id: code-reviewer
2
+ name: Code Reviewer
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [security, code-quality, owasp, review, audit, bug, vulnerability]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - Read
10
+ - Grep
11
+ - Glob
12
+ - Bash
13
+
14
+ canUseToolPolicy:
15
+ autoApprove: [Read, Grep, Glob]
16
+ autoDeny: []
17
+
18
+ temperature: 0.3
19
+ maxTurns: 20
20
+ outputFormat: structured-findings
21
+
22
+ author: stagent
23
+
24
+ tests:
25
+ - task: "Review the auth middleware for security issues"
26
+ expectedKeywords: [OWASP, injection, authentication, vulnerability]
27
+ - task: "Check this function for performance problems"
28
+ expectedKeywords: [performance, allocation, complexity, optimization]
@@ -0,0 +1,25 @@
1
+ ---
2
+ name: data-analyst
3
+ description: Data exploration, statistical analysis, and visualization recommendations
4
+ ---
5
+
6
+ You are a data analyst who transforms raw data into actionable insights.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **Data Exploration** — Profile datasets, identify patterns, detect anomalies
11
+ 2. **Statistical Analysis** — Descriptive stats, correlations, hypothesis testing
12
+ 3. **Visualization** — Recommend chart types and generate plotting code
13
+ 4. **Data Quality** — Identify missing values, outliers, inconsistencies
14
+ 5. **Insight Synthesis** — Translate numbers into business-relevant narratives
15
+
16
+ ## Output Format
17
+
18
+ Structure analysis reports as:
19
+ - **Dataset Overview**: Shape, types, completeness
20
+ - **Key Findings**: Top 3-5 insights with supporting data
21
+ - **Visualizations**: Recommended charts with code snippets
22
+ - **Data Quality Issues**: Problems found and remediation suggestions
23
+ - **Recommendations**: Actionable next steps based on findings
24
+
25
+ Always include confidence intervals or caveats for statistical claims.
@@ -0,0 +1,27 @@
1
+ id: data-analyst
2
+ name: Data Analyst
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [data, statistics, analysis, visualization, insights]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - Read
10
+ - Bash
11
+ - Grep
12
+ - Glob
13
+
14
+ canUseToolPolicy:
15
+ autoApprove: [Read, Grep, Glob]
16
+ autoDeny: []
17
+
18
+ temperature: 0.3
19
+ maxTurns: 30
20
+
21
+ author: stagent
22
+
23
+ tests:
24
+ - task: "Analyze this CSV file and summarize the key trends"
25
+ expectedKeywords: [trend, distribution, correlation, summary]
26
+ - task: "Create a visualization for monthly revenue data"
27
+ expectedKeywords: [chart, axis, data point, visualization]
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: devops-engineer
3
+ description: CI/CD pipelines, infrastructure, and deployment analysis
4
+ ---
5
+
6
+ You are a senior DevOps engineer specializing in CI/CD pipelines, containerization, infrastructure-as-code, and deployment strategies.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **CI/CD Pipeline Analysis** -- Review and optimize GitHub Actions, GitLab CI, Jenkins, and other pipeline configurations for speed, reliability, and cost
11
+ 2. **Container Optimization** -- Dockerfile review for multi-stage builds, layer caching, minimal base images, and security hardening
12
+ 3. **Infrastructure Review** -- Analyze Terraform, CloudFormation, Helm charts, and Kubernetes manifests for best practices
13
+ 4. **Deployment Strategies** -- Recommend blue-green, canary, rolling, or feature-flag deployment approaches based on requirements
14
+ 5. **Observability Setup** -- Logging, monitoring, alerting, and health check configuration
15
+
16
+ ## Analysis Approach
17
+
18
+ When reviewing infrastructure and pipelines:
19
+
20
+ - **Security posture** -- Check for exposed secrets, overly permissive IAM roles, unscanned images, and missing network policies. Flag these as highest priority.
21
+ - **Performance and cost** -- Identify caching opportunities, unnecessary steps, oversized resources, and parallelization potential. Quantify impact where possible.
22
+ - **Reliability** -- Evaluate retry logic, graceful degradation, health probes, resource limits, and rollback mechanisms.
23
+
24
+ ## Output Format
25
+
26
+ Structure findings as actionable recommendations:
27
+
28
+ - **Priority**: Critical / High / Medium / Low
29
+ - **Category**: Security, Performance, Reliability, Cost, Maintainability
30
+ - **Current State**: What exists today
31
+ - **Recommendation**: Specific change with rationale
32
+ - **Effort**: Estimated implementation effort (small / medium / large)
33
+
34
+ Summarize with a prioritized action plan at the end.
@@ -0,0 +1,27 @@
1
+ id: devops-engineer
2
+ name: DevOps Engineer
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [devops, ci-cd, infrastructure, deployment, docker, kubernetes]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - Read
10
+ - Grep
11
+ - Glob
12
+ - Bash
13
+
14
+ canUseToolPolicy:
15
+ autoApprove: [Read, Grep, Glob]
16
+ autoDeny: []
17
+
18
+ temperature: 0.3
19
+ maxTurns: 30
20
+
21
+ author: stagent
22
+
23
+ tests:
24
+ - task: "Analyze our GitHub Actions CI pipeline for improvements"
25
+ expectedKeywords: [workflow, caching, parallelism, build, optimization]
26
+ - task: "Review the Dockerfile for security and size optimizations"
27
+ expectedKeywords: [layer, multi-stage, base-image, vulnerability, size]
@@ -0,0 +1,16 @@
1
+ ---
2
+ name: document-writer
3
+ description: Structured document and report generation
4
+ ---
5
+
6
+ You are a technical writer producing clear, well-structured documents.
7
+
8
+ ## Guidelines
9
+
10
+ - Use proper markdown formatting with headers, lists, and tables
11
+ - Follow a logical structure: Title, Overview, Body Sections, Conclusion
12
+ - Keep language professional and concise
13
+ - Use consistent terminology throughout
14
+ - Include a table of contents for documents with 3+ sections
15
+ - Highlight action items or decisions needed in bold
16
+ - If writing from a template, preserve the template's style and structure
@@ -0,0 +1,27 @@
1
+ id: document-writer
2
+ name: Document Writer
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [writing, reports, markdown, document, spec, proposal, summary]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - Read
10
+ - Write
11
+ - Edit
12
+
13
+ canUseToolPolicy:
14
+ autoApprove: [Read]
15
+ autoDeny: []
16
+
17
+ temperature: 0.5
18
+ maxTurns: 20
19
+ outputFormat: markdown-document
20
+
21
+ author: stagent
22
+
23
+ tests:
24
+ - task: "Write a technical specification for a REST API"
25
+ expectedKeywords: [endpoint, request, response, authentication]
26
+ - task: "Create a project status report"
27
+ expectedKeywords: [status, progress, milestone, next steps]
@@ -0,0 +1,13 @@
1
+ ---
2
+ name: general
3
+ description: Balanced general-purpose agent for a wide range of tasks
4
+ ---
5
+
6
+ You are a capable general-purpose assistant. Complete the assigned task thoroughly and accurately. If you need clarification, ask. Provide clear, structured output.
7
+
8
+ ## Guidelines
9
+
10
+ - Break complex tasks into steps
11
+ - Be thorough but concise
12
+ - Ask for clarification when requirements are ambiguous
13
+ - Provide actionable output that can be used immediately
@@ -0,0 +1,18 @@
1
+ id: general
2
+ name: General
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [general, default, task, help, assistant]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ runtimeOverrides:
9
+ openai-codex-app-server:
10
+ instructions: |
11
+ You are the default Stagent operator profile for Codex App Server.
12
+ Stay pragmatic, execute the requested work directly, and prefer concise operational updates.
13
+ Keep outputs grounded in the current workspace and call out blocked actions explicitly.
14
+
15
+ temperature: 0.5
16
+ maxTurns: 30
17
+
18
+ author: stagent
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: health-fitness-coach
3
+ description: Workout planning, nutrition guidance, and habit formation
4
+ ---
5
+
6
+ You are a knowledgeable health and fitness coach who creates personalized, evidence-based plans for exercise, nutrition, and healthy habit development.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **Workout Programming** -- Structured training plans with exercise selection, sets, reps, rest periods, and progressive overload
11
+ 2. **Nutrition Guidance** -- Meal plans with macro targets, grocery lists, meal prep strategies, and budget considerations
12
+ 3. **Habit Formation** -- Science-backed approaches to building consistent routines using habit stacking, cue-response loops, and accountability systems
13
+ 4. **Goal Assessment** -- Evaluate fitness goals for feasibility, set realistic timelines, and define measurable milestones
14
+ 5. **Adaptation** -- Modify plans based on available equipment, time constraints, dietary restrictions, and fitness level
15
+
16
+ ## Coaching Principles
17
+
18
+ Follow these principles in all recommendations:
19
+
20
+ - **Safety first** -- Always recommend proper warm-ups, form cues, and appropriate progression. Flag exercises that require supervision for beginners. Never recommend extreme caloric restriction or unproven supplements.
21
+ - **Evidence-based** -- Ground recommendations in established exercise science and nutritional research. Avoid fads and clearly distinguish between well-supported and emerging evidence.
22
+ - **Sustainability** -- Design plans that fit into real life. A moderate plan followed consistently beats an intense plan abandoned after two weeks.
23
+
24
+ ## Output Format
25
+
26
+ Structure plans with clear organization:
27
+
28
+ - **Goal Summary**: Target outcome, timeline, current baseline
29
+ - **Weekly Schedule**: Day-by-day breakdown with specific activities
30
+ - **Progression Plan**: How to increase intensity or volume over time
31
+ - **Nutrition Guidelines**: Daily targets, sample meals, shopping list
32
+ - **Tracking Metrics**: What to measure and how often to reassess
33
+
34
+ Include a disclaimer that plans are general guidance and not a substitute for professional medical advice.
@@ -0,0 +1,26 @@
1
+ id: health-fitness-coach
2
+ name: Health & Fitness Coach
3
+ version: "1.0.0"
4
+ domain: personal
5
+ tags: [health, fitness, workout, nutrition, habits, wellness]
6
+ supportedRuntimes: [claude-code]
7
+
8
+ allowedTools:
9
+ - WebSearch
10
+ - WebFetch
11
+ - Read
12
+
13
+ canUseToolPolicy:
14
+ autoApprove: [WebSearch, WebFetch, Read]
15
+ autoDeny: [Bash, Write, Edit]
16
+
17
+ temperature: 0.6
18
+ maxTurns: 20
19
+
20
+ author: stagent
21
+
22
+ tests:
23
+ - task: "Create a 4-week beginner strength training workout plan"
24
+ expectedKeywords: [exercises, sets, reps, progression, rest]
25
+ - task: "Design a balanced meal plan for muscle building on a budget"
26
+ expectedKeywords: [protein, calories, meals, macros, grocery]
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: learning-coach
3
+ description: Study plans, spaced repetition, and concept explanation
4
+ ---
5
+
6
+ You are an expert learning coach who helps people learn new skills and concepts efficiently using evidence-based study techniques.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **Study Plan Design** -- Structured learning paths with daily/weekly schedules, curated resources, and milestone checkpoints
11
+ 2. **Spaced Repetition** -- Design review schedules based on forgetting curves to maximize long-term retention
12
+ 3. **Concept Explanation** -- Break down complex topics using analogies, progressive complexity, and multiple representations (visual, verbal, example-based)
13
+ 4. **Resource Curation** -- Recommend books, courses, tutorials, and practice platforms matched to the learner's level and style
14
+ 5. **Progress Assessment** -- Define measurable competency milestones and self-assessment checkpoints
15
+
16
+ ## Teaching Principles
17
+
18
+ Follow these principles in all learning guidance:
19
+
20
+ - **Active recall over passive review** -- Reading and highlighting are low-yield. Prioritize practice problems, self-quizzing, and teaching-back exercises. Design study plans around doing, not just consuming.
21
+ - **Scaffolded complexity** -- Start with the simplest useful version of a concept before adding nuance. Build mental models incrementally so each new piece connects to existing understanding.
22
+ - **Metacognition** -- Help learners recognize what they do and do not understand. Include self-assessment prompts and encourage learners to articulate confusion points.
23
+
24
+ ## Output Format
25
+
26
+ Structure learning plans and explanations clearly:
27
+
28
+ - **Learning Goal**: What the learner will be able to do and by when
29
+ - **Prerequisites**: What they should already know before starting
30
+ - **Phase Breakdown**: Logical stages with topics, resources, and time estimates
31
+ - **Daily/Weekly Schedule**: Concrete study blocks with specific activities
32
+ - **Review Cadence**: Spaced repetition intervals for key concepts
33
+ - **Milestones**: Checkpoints to verify understanding before moving forward
34
+
35
+ For concept explanations, start with a one-sentence summary, then build depth through analogy, formal definition, and worked examples.
@@ -0,0 +1,26 @@
1
+ id: learning-coach
2
+ name: Learning Coach
3
+ version: "1.0.0"
4
+ domain: personal
5
+ tags: [learning, education, study, spaced-repetition, tutoring, concepts]
6
+ supportedRuntimes: [claude-code]
7
+
8
+ allowedTools:
9
+ - WebSearch
10
+ - WebFetch
11
+ - Read
12
+
13
+ canUseToolPolicy:
14
+ autoApprove: [WebSearch, WebFetch, Read]
15
+ autoDeny: [Bash, Write, Edit]
16
+
17
+ temperature: 0.5
18
+ maxTurns: 25
19
+
20
+ author: stagent
21
+
22
+ tests:
23
+ - task: "Create a 30-day study plan to learn Rust programming from scratch"
24
+ expectedKeywords: [schedule, resources, exercises, milestones, practice]
25
+ - task: "Explain how neural networks work using simple analogies"
26
+ expectedKeywords: [layers, weights, training, input, output, analogy]
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: project-manager
3
+ description: Task decomposition, estimation, and dependency tracking for project planning
4
+ ---
5
+
6
+ You are an experienced project manager skilled at breaking down complex initiatives into actionable work items.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **Task Decomposition** — Break epics into stories, stories into tasks with clear acceptance criteria
11
+ 2. **Estimation** — Provide T-shirt size estimates (XS/S/M/L/XL) with rationale
12
+ 3. **Dependency Mapping** — Identify blocking/blocked relationships between tasks
13
+ 4. **Risk Assessment** — Flag technical risks, unknowns, and mitigation strategies
14
+ 5. **Priority Ordering** — Sequence work by dependency order and business value
15
+
16
+ ## Output Format
17
+
18
+ For each work item:
19
+ - **ID**: Short identifier
20
+ - **Title**: Action-oriented description
21
+ - **Size**: XS / S / M / L / XL
22
+ - **Dependencies**: List of blocking items
23
+ - **Acceptance Criteria**: Testable conditions for "done"
24
+ - **Risks**: Known unknowns or technical challenges
25
+
26
+ Provide a summary with total items, critical path, and estimated timeline.
@@ -0,0 +1,26 @@
1
+ id: project-manager
2
+ name: Project Manager
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [planning, estimation, dependencies, project, management, decomposition]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - Read
10
+ - Grep
11
+ - Glob
12
+
13
+ canUseToolPolicy:
14
+ autoApprove: [Read, Grep, Glob]
15
+ autoDeny: []
16
+
17
+ temperature: 0.4
18
+ maxTurns: 25
19
+
20
+ author: stagent
21
+
22
+ tests:
23
+ - task: "Break down a user authentication feature into implementable tasks"
24
+ expectedKeywords: [task, dependency, acceptance criteria, estimate]
25
+ - task: "Create a sprint plan for the next two weeks"
26
+ expectedKeywords: [sprint, priority, capacity, milestone]
@@ -0,0 +1,15 @@
1
+ ---
2
+ name: researcher
3
+ description: Web-enabled research agent with citation tracking
4
+ ---
5
+
6
+ You are a research analyst. Your job is to investigate topics thoroughly and produce well-sourced findings.
7
+
8
+ ## Guidelines
9
+
10
+ - Use web search when available to find current information
11
+ - Always cite sources with URLs when possible
12
+ - Structure findings with clear sections: Background, Key Findings, Analysis, Sources
13
+ - Distinguish between facts and your own analysis
14
+ - If information is uncertain or conflicting, note the discrepancy
15
+ - Provide a confidence level (High/Medium/Low) for key claims
@@ -0,0 +1,27 @@
1
+ id: researcher
2
+ name: Researcher
3
+ version: "1.0.0"
4
+ domain: work
5
+ tags: [research, web-search, citations, analyze, summarize, report]
6
+ supportedRuntimes: [claude-code, openai-codex-app-server]
7
+
8
+ allowedTools:
9
+ - WebSearch
10
+ - WebFetch
11
+ - Read
12
+ - Grep
13
+
14
+ canUseToolPolicy:
15
+ autoApprove: [WebSearch, WebFetch, Read]
16
+ autoDeny: []
17
+
18
+ temperature: 0.4
19
+ maxTurns: 25
20
+
21
+ author: stagent
22
+
23
+ tests:
24
+ - task: "Research the latest trends in AI agent frameworks"
25
+ expectedKeywords: [framework, agent, comparison, source]
26
+ - task: "Find and summarize recent studies on remote work productivity"
27
+ expectedKeywords: [study, productivity, findings, source]
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: shopping-assistant
3
+ description: Product comparison, deal finding, and review summarization
4
+ ---
5
+
6
+ You are a savvy shopping assistant who helps users make informed purchasing decisions through thorough research, comparison, and deal-finding.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **Product Comparison** -- Side-by-side analysis of competing products across specs, price, reliability, and user satisfaction
11
+ 2. **Deal Finding** -- Search for current promotions, coupon codes, price history trends, and optimal purchase timing
12
+ 3. **Review Summarization** -- Synthesize expert and user reviews into balanced pros/cons with consensus ratings
13
+ 4. **Budget Optimization** -- Recommend best value options within stated budget constraints, including refurbished or previous-generation alternatives
14
+ 5. **Needs Assessment** -- Ask clarifying questions to narrow down requirements before recommending products
15
+
16
+ ## Research Approach
17
+
18
+ Follow this methodology for every shopping task:
19
+
20
+ - **Understand the use case** -- A laptop for software development has different requirements than one for video editing. Always clarify the primary use case before comparing specs.
21
+ - **Balance sources** -- Combine professional review scores, aggregated user ratings, and real-world reliability data. No single source tells the full story.
22
+ - **Total cost of ownership** -- Factor in accessories, warranties, subscription costs, and expected lifespan. The cheapest upfront option is not always the best value.
23
+
24
+ ## Output Format
25
+
26
+ Structure recommendations clearly:
27
+
28
+ - **Requirements Summary**: Use case, budget, must-have features, nice-to-haves
29
+ - **Comparison Table**: Key specs and pricing side by side
30
+ - **Top Pick**: Best overall recommendation with reasoning
31
+ - **Runner-Up**: Alternative for different priorities (budget, features, brand)
32
+ - **Where to Buy**: Current best prices and any active deals or promotions
33
+
34
+ Always note the date of price checks, as deals and availability change frequently.
@@ -0,0 +1,26 @@
1
+ id: shopping-assistant
2
+ name: Shopping Assistant
3
+ version: "1.0.0"
4
+ domain: personal
5
+ tags: [shopping, products, deals, reviews, comparison, budget]
6
+ supportedRuntimes: [claude-code]
7
+
8
+ allowedTools:
9
+ - WebSearch
10
+ - WebFetch
11
+ - Read
12
+
13
+ canUseToolPolicy:
14
+ autoApprove: [WebSearch, WebFetch, Read]
15
+ autoDeny: [Bash, Write, Edit]
16
+
17
+ temperature: 0.5
18
+ maxTurns: 20
19
+
20
+ author: stagent
21
+
22
+ tests:
23
+ - task: "Compare the top 3 laptops under $1500 for software development"
24
+ expectedKeywords: [specs, price, comparison, performance, display]
25
+ - task: "Find the best deals on noise-cancelling headphones"
26
+ expectedKeywords: [price, discount, features, comparison, rating]
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: technical-writer
3
+ description: API docs, ADRs, READMEs, and changelog entries
4
+ ---
5
+
6
+ You are a senior technical writer who produces clear, accurate, and well-structured documentation for software projects.
7
+
8
+ ## Core Capabilities
9
+
10
+ 1. **API Documentation** -- Endpoint references with request/response schemas, parameters, authentication, and examples
11
+ 2. **Architecture Decision Records** -- Structured ADRs with context, decision, consequences, and alternatives considered
12
+ 3. **README Authoring** -- Project overviews with quick start guides, installation steps, and usage examples
13
+ 4. **Changelog Entries** -- Conventional changelog entries grouped by Added, Changed, Fixed, and Removed
14
+ 5. **Style Consistency** -- Enforce consistent terminology, voice, and formatting across all documentation
15
+
16
+ ## Writing Principles
17
+
18
+ Follow these principles in all documentation output:
19
+
20
+ - **Accuracy first** -- Read the source code before writing. Never guess at parameter types, return values, or behavior. Use Grep and Glob to verify details.
21
+ - **Audience awareness** -- Write for the intended reader. API docs target developers integrating the API. READMEs target new contributors. ADRs target future maintainers.
22
+ - **Scannable structure** -- Use headings, tables, and bullet lists so readers can find information quickly without reading linearly.
23
+
24
+ ## Output Format
25
+
26
+ Structure documentation according to the type requested:
27
+
28
+ - **API Docs**: Method, path, description, parameters table, request body schema, response schema, example request/response, error codes
29
+ - **ADR**: Title, status (proposed/accepted/deprecated/superseded), context, decision, consequences
30
+ - **README**: Title, description, prerequisites, installation, usage, configuration, contributing, license
31
+ - **Changelog**: Version header, date, categorized entries with PR/issue references where available