@shepai/cli 1.95.0 → 1.96.0-pr281.fcbc0cd

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 (264) hide show
  1. package/README.md +132 -348
  2. package/apis/json-schema/Feature.yaml +1 -1
  3. package/apis/json-schema/SdlcLifecycle.yaml +1 -0
  4. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts +16 -4
  5. package/dist/packages/core/src/application/ports/output/repositories/feature-repository.interface.d.ts.map +1 -1
  6. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts +17 -12
  7. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.d.ts.map +1 -1
  8. package/dist/packages/core/src/application/use-cases/features/delete-feature.use-case.js +64 -31
  9. package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts +19 -0
  10. package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.d.ts.map +1 -0
  11. package/dist/packages/core/src/application/use-cases/settings/complete-web-onboarding.use-case.js +52 -0
  12. package/dist/packages/core/src/application/use-cases/settings/index.d.ts +2 -0
  13. package/dist/packages/core/src/application/use-cases/settings/index.d.ts.map +1 -1
  14. package/dist/packages/core/src/application/use-cases/settings/index.js +1 -0
  15. package/dist/packages/core/src/domain/generated/output.d.ts +3 -2
  16. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  17. package/dist/packages/core/src/domain/generated/output.js +1 -0
  18. package/dist/packages/core/src/infrastructure/di/container.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/di/container.js +5 -0
  20. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  21. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  22. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
  23. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  24. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +12 -0
  25. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +2 -0
  26. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  27. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -3
  28. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  29. package/dist/src/presentation/cli/commands/feat/ls.command.js +9 -2
  30. package/dist/src/presentation/cli/commands/feat/new.command.d.ts.map +1 -1
  31. package/dist/src/presentation/cli/commands/feat/new.command.js +9 -0
  32. package/dist/src/presentation/cli/index.js +0 -12
  33. package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts +6 -0
  34. package/dist/src/presentation/web/app/actions/agent-setup-flag.d.ts.map +1 -0
  35. package/dist/src/presentation/web/app/actions/agent-setup-flag.js +14 -0
  36. package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts +11 -0
  37. package/dist/src/presentation/web/app/actions/check-agent-tool.d.ts.map +1 -0
  38. package/dist/src/presentation/web/app/actions/check-agent-tool.js +35 -0
  39. package/dist/src/presentation/web/app/actions/update-agent-and-model.d.ts.map +1 -1
  40. package/dist/src/presentation/web/app/actions/update-agent-and-model.js +6 -12
  41. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  42. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  43. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  44. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +5 -0
  45. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  46. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  47. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
  48. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  49. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +11 -1
  50. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  51. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +4 -4
  52. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
  53. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  54. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +21 -0
  55. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
  56. package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +20 -4
  57. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  58. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +53 -16
  59. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts +6 -0
  60. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.d.ts.map +1 -0
  61. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.js +222 -0
  62. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts +7 -0
  63. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.d.ts.map +1 -0
  64. package/dist/src/presentation/web/components/features/control-center/welcome-agent-setup.stories.js +20 -0
  65. package/dist/src/presentation/web/components/layouts/app-shell/app-shell.js +1 -1
  66. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  67. package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -0
  68. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  69. package/dist/src/presentation/web/hooks/use-graph-state.js +27 -0
  70. package/dist/tsconfig.build.tsbuildinfo +1 -1
  71. package/package.json +1 -1
  72. package/web/.next/BUILD_ID +1 -1
  73. package/web/.next/build-manifest.json +2 -2
  74. package/web/.next/fallback-build-manifest.json +2 -2
  75. package/web/.next/prerender-manifest.json +3 -3
  76. package/web/.next/required-server-files.js +3 -3
  77. package/web/.next/required-server-files.json +3 -3
  78. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +92 -62
  79. package/web/.next/server/app/(dashboard)/@drawer/create/page.js +2 -2
  80. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  81. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  82. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
  83. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js +2 -2
  84. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  85. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +102 -42
  87. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js +2 -2
  88. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  89. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  90. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
  91. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js +2 -2
  92. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  93. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  94. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +92 -62
  95. package/web/.next/server/app/(dashboard)/create/page.js +2 -2
  96. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  97. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  98. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +102 -42
  99. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js +2 -2
  100. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  101. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  102. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +102 -42
  103. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js +2 -2
  104. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  105. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  106. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +88 -28
  107. package/web/.next/server/app/(dashboard)/page.js +2 -2
  108. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  109. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  110. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +88 -28
  111. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js +2 -2
  112. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  113. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  114. package/web/.next/server/app/_global-error.html +2 -2
  115. package/web/.next/server/app/_global-error.rsc +1 -1
  116. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  117. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  118. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  119. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  120. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  121. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  122. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  123. package/web/.next/server/app/api/attachments/preview/route.js.nft.json +1 -1
  124. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  125. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  126. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  127. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  128. package/web/.next/server/app/skills/page.js.nft.json +1 -1
  129. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  130. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  131. package/web/.next/server/app/tools/page.js.nft.json +1 -1
  132. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  133. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  134. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  135. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  136. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  137. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  138. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_2b65878f._.js +3 -0
  140. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_2b65878f._.js.map +1 -0
  141. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js +3 -0
  142. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_6ba7eb21._.js.map +1 -0
  143. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js +3 -0
  144. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -0
  145. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +3 -0
  146. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js.map +1 -0
  147. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  148. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/{[root-of-the-server]__17143953._.js → [root-of-the-server]__19fb0bfe._.js} +2 -2
  150. package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js.map → [root-of-the-server]__19fb0bfe._.js.map} +1 -1
  151. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +4 -0
  152. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js.map +1 -0
  153. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  154. package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js → [root-of-the-server]__3d6f6b0e._.js} +2 -2
  155. package/web/.next/server/chunks/ssr/{[root-of-the-server]__17143953._.js.map → [root-of-the-server]__3d6f6b0e._.js.map} +1 -1
  156. package/web/.next/server/chunks/ssr/{[root-of-the-server]__5cc4752a._.js → [root-of-the-server]__42020c54._.js} +2 -2
  157. package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js.map → [root-of-the-server]__42020c54._.js.map} +1 -1
  158. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  159. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js.map +1 -1
  160. package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js +3 -0
  161. package/web/.next/server/chunks/ssr/[root-of-the-server]__7b49fcb3._.js.map +1 -0
  162. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  163. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  164. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  165. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
  166. package/web/.next/server/chunks/ssr/{[root-of-the-server]__9de266fa._.js → [root-of-the-server]__9cb60e1e._.js} +2 -2
  167. package/web/.next/server/chunks/ssr/{[root-of-the-server]__45aad79d._.js.map → [root-of-the-server]__9cb60e1e._.js.map} +1 -1
  168. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  169. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  170. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  171. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  172. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  173. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  174. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  175. package/web/.next/server/chunks/ssr/_501b06da._.js +3 -0
  176. package/web/.next/server/chunks/ssr/_501b06da._.js.map +1 -0
  177. package/web/.next/server/chunks/ssr/_5e112f82._.js +3 -0
  178. package/web/.next/server/chunks/ssr/_5e112f82._.js.map +1 -0
  179. package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
  180. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  181. package/web/.next/server/chunks/ssr/{_3533fed7._.js → _7f1598ce._.js} +2 -2
  182. package/web/.next/server/chunks/ssr/_7f1598ce._.js.map +1 -0
  183. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  184. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  185. package/web/.next/server/chunks/ssr/{_c2399eb5._.js → _c1e8bc5a._.js} +2 -2
  186. package/web/.next/server/chunks/ssr/{_c2399eb5._.js.map → _c1e8bc5a._.js.map} +1 -1
  187. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  188. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  189. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  190. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  191. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +5 -0
  192. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -0
  193. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +3 -0
  194. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js.map +1 -0
  195. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  196. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  197. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  198. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  199. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  200. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js.map +1 -1
  201. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  202. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js.map +1 -1
  203. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  204. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js.map +1 -1
  205. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  206. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  207. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js +1 -1
  208. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_3d0aa70c._.js.map +1 -1
  209. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +5 -0
  210. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js.map +1 -0
  211. package/web/.next/server/pages/500.html +2 -2
  212. package/web/.next/server/server-reference-manifest.js +1 -1
  213. package/web/.next/server/server-reference-manifest.json +482 -242
  214. package/web/.next/static/chunks/0043b0813128e1ff.js +1 -0
  215. package/web/.next/static/chunks/158f9d833716f8e0.js +1 -0
  216. package/web/.next/static/chunks/{465f63a101981da8.js → 1e45f54397cd5d7f.js} +1 -1
  217. package/web/.next/static/chunks/{c4bbbfcfc008cba4.js → 275e1e0c565cc109.js} +1 -1
  218. package/web/.next/static/chunks/71d785d1de4b86f6.css +1 -0
  219. package/web/.next/static/chunks/7268e1087af4eaa0.js +1 -0
  220. package/web/.next/static/chunks/86a559935e43c119.js +1 -0
  221. package/web/.next/static/chunks/8bd300e88a189928.js +1 -0
  222. package/web/.next/static/chunks/{98767389c1aad0b2.js → 8d943a1a82db483d.js} +1 -1
  223. package/web/.next/static/chunks/a262fb8cb5f35ce3.js +1 -0
  224. package/web/.next/static/chunks/ae4e669485fb8d72.js +1 -0
  225. package/web/.next/static/chunks/b272ac93b52dceeb.js +1 -0
  226. package/web/.next/static/chunks/{f0bbc2f086d7d996.js → b42e2cd6fe3896c3.js} +2 -2
  227. package/web/.next/static/chunks/{59b988d41943386c.js → c4e8e94e8c2800b0.js} +1 -1
  228. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js +0 -3
  229. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_81a06555._.js.map +0 -1
  230. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js +0 -3
  231. package/web/.next/server/chunks/ssr/7f428_lucide-react_dist_esm_icons_rocket_1575cd4d.js.map +0 -1
  232. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +0 -3
  233. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +0 -1
  234. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +0 -3
  235. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +0 -1
  236. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +0 -4
  237. package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js.map +0 -1
  238. package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js +0 -3
  239. package/web/.next/server/chunks/ssr/[root-of-the-server]__9dc40036._.js.map +0 -1
  240. package/web/.next/server/chunks/ssr/_3533fed7._.js.map +0 -1
  241. package/web/.next/server/chunks/ssr/_364346ad._.js +0 -3
  242. package/web/.next/server/chunks/ssr/_364346ad._.js.map +0 -1
  243. package/web/.next/server/chunks/ssr/_df15bd24._.js +0 -3
  244. package/web/.next/server/chunks/ssr/_df15bd24._.js.map +0 -1
  245. package/web/.next/server/chunks/ssr/_f50485a5._.js +0 -3
  246. package/web/.next/server/chunks/ssr/_f50485a5._.js.map +0 -1
  247. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +0 -3
  248. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +0 -1
  249. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js +0 -5
  250. package/web/.next/server/chunks/ssr/src_presentation_web_c4348b8a._.js.map +0 -1
  251. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js +0 -5
  252. package/web/.next/server/chunks/ssr/src_presentation_web_e4510d10._.js.map +0 -1
  253. package/web/.next/static/chunks/2536dce61f55daad.js +0 -1
  254. package/web/.next/static/chunks/35b142afe3405da9.js +0 -1
  255. package/web/.next/static/chunks/3c68b85c9dd7f200.js +0 -1
  256. package/web/.next/static/chunks/42040482bd2ec9aa.js +0 -1
  257. package/web/.next/static/chunks/490407527f8234cb.js +0 -1
  258. package/web/.next/static/chunks/6d61b6eaca9f925a.js +0 -1
  259. package/web/.next/static/chunks/8ec10587d1c608a2.css +0 -1
  260. package/web/.next/static/chunks/d9247a52ae260218.js +0 -1
  261. package/web/.next/static/chunks/eb981f9e02a74f15.js +0 -1
  262. /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_buildManifest.js +0 -0
  263. /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_clientMiddlewareManifest.json +0 -0
  264. /package/web/.next/static/{AT8BmALAnMpq68TlqG9FY → mF-tWwVmRA3ztS3klC9lR}/_ssgManifest.js +0 -0
package/README.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  # Shep AI
4
4
 
5
- ### Multi-Session SDLC Control Center for AI Coding Agents
5
+ ### Autonomous AI Native SDLC Platform
6
6
 
7
- _Manage Claude Code, Cursor CLI, or any coding agent across the full development lifecycle — from requirements to deploy with parallel sessions, instant context switching, and human-in-the-loop control_
7
+ _Run `shep` in any repo to manage features through the full development lifecycle — requirements, planning, implementation, review, and deployment using AI coding agents with human-in-the-loop approval gates._
8
8
 
9
9
  [![CI](https://github.com/shep-ai/cli/actions/workflows/ci.yml/badge.svg)](https://github.com/shep-ai/cli/actions/workflows/ci.yml)
10
10
  [![npm version](https://img.shields.io/npm/v/@shepai/cli.svg?color=cb3837&logo=npm)](https://www.npmjs.com/package/@shepai/cli)
@@ -17,367 +17,124 @@ _Manage Claude Code, Cursor CLI, or any coding agent across the full development
17
17
 
18
18
  <br />
19
19
 
20
- [Features](#features) · [Quick Start](#quick-start) · [CLI Reference](#cli) · [Architecture](#architecture) · [Contributing](#contributing)
20
+ [Features](#features) · [Quick Start](#quick-start) · [CLI Reference](#cli-reference) · [Architecture](#architecture) · [Contributing](#contributing)
21
21
 
22
22
  <br />
23
23
 
24
- <img src="docs/poc/imgs/00-control-center-hero.png" alt="Shep AI Control Center — manage all features across repos from a single canvas" width="100%" />
25
-
26
- [![Live Demo](https://img.shields.io/badge/Live_Demo-shep--ai.github.io-blue?style=for-the-badge)](https://shep-ai.github.io/cli/poc/)
24
+ <img src="docs/screenshots/features-guide/01-dashboard-canvas.png" alt="Shep AI Control Center Dashboard" width="900" />
27
25
 
28
26
  </div>
29
27
 
30
- ### Install
28
+ ---
29
+
30
+ ## Quick Start
31
31
 
32
32
  ```bash
33
+ # 1. Install
33
34
  npm i -g @shepai/cli
34
- ```
35
35
 
36
- ### Try it
36
+ # 2. Run Shep — completes setup on first run, then opens the web UI
37
+ shep
37
38
 
38
- ```bash
39
- cd your-project/
40
- shep feat new "Add unit tests for all source files"
39
+ # 3. Browser opens at http://localhost:4050 — you're in
41
40
  ```
42
41
 
43
- <details>
44
- <summary><b>List features</b> &mdash; <code>shep feat ls</code></summary>
45
- <br />
42
+ ---
46
43
 
47
- ```
48
- Features for /home/user/projects/my-app
44
+ ## Features
49
45
 
50
- ID Name Status Branch Created
51
- 1b0a7969 Add Unit Tests ✓ Completed feat/add-unit-tests 2/13/2026
52
- ```
46
+ - **Full SDLC automation** — AI agents handle requirements gathering, research, planning, implementation, and review
47
+ - **Human-in-the-loop gates** — Approval checkpoints at PRD, Plan, and Merge phases (configurable or skip with `--allow-all`)
48
+ - **Multi-agent support** — Plug in Claude Code, Cursor CLI, or Gemini CLI as your coding agent
49
+ - **Web UI dashboard** — Interactive React Flow canvas showing features and repos as graph nodes with real-time SSE updates
50
+ - **Git worktree isolation** — Each feature gets its own worktree, no branch switching or stashing
51
+ - **CLI-first workflow** — Full feature management, agent control, settings, and tooling from the terminal
52
+ - **TUI onboarding wizard** — Guided setup on first run
53
+ - **Per-repo SQLite database** — All data lives locally in `~/.shep/`, no cloud dependency
53
54
 
54
- </details>
55
+ ---
55
56
 
56
- <details>
57
- <summary><b>Show feature detail</b> &mdash; <code>shep feat show 1b0a7969</code></summary>
58
- <br />
57
+ ## CLI Reference
58
+
59
+ ### Daemon
59
60
 
60
61
  ```
61
- Feature: Add Unit Tests
62
-
63
- ID 1b0a7969-b420-4754-832f-5c38801b4852
64
- Slug add-unit-tests
65
- Description Add comprehensive unit tests for all existing source files
66
- in the project to ensure code correctness and improve test coverage.
67
- Repository /home/user/projects/my-app
68
- Branch feat/add-unit-tests
69
- Status ✓ Completed
70
- Worktree ~/.shep/repos/9bbd30de/wt/feat-add-unit-tests
71
- Spec Dir ~/.shep/repos/9bbd30de/wt/feat-add-unit-tests/specs/001-add-unit-tests
72
- Agent Run 732a1fc2-a346-4052-a028-dcb1a46b6f2c
73
-
74
- Timestamps
75
- Created 2/13/2026, 12:15:08 AM
76
- Updated 2/13/2026, 12:15:08 AM
62
+ shep Start daemon + onboarding (first run)
63
+ shep start [--port <number>] Start web UI daemon (background, default port 4050)
64
+ shep stop Stop the running daemon
65
+ shep restart Restart the daemon
66
+ shep status Show daemon status and live metrics
67
+ shep ui [--port] [--no-open] Start the web UI in the foreground
77
68
  ```
78
69
 
79
- </details>
80
-
81
- <details>
82
- <summary><b>Isolated worktree per feature</b> &mdash; no stashing, no branch switching</summary>
83
- <br />
84
-
85
- Each feature gets its own git worktree — fully isolated from your main branch.
70
+ ### Feature Management
86
71
 
87
72
  ```
88
- ~/.shep/repos/9bbd30de/wt/feat-add-unit-tests/
89
- ├── .git # linked worktree (not a clone)
90
- ├── src/
91
- ├── tests/
92
- ├── specs/
93
- │ └── 001-add-unit-tests/
94
- │ ├── feature.yaml # status tracking
95
- │ ├── spec.yaml # requirements & scope
96
- │ ├── research.yaml # technical decisions
97
- │ ├── plan.yaml # implementation strategy
98
- │ └── tasks.yaml # task breakdown
99
- ├── pyproject.toml
100
- └── README.md
73
+ shep feat new <description> Create a new feature
74
+ [--repo] [--push] [--pr]
75
+ [--allow-prd] [--allow-plan] [--allow-merge] [--allow-all]
76
+ [--parent] [--fast] [--model] [--attach]
77
+ shep feat ls [--repo] List features
78
+ shep feat show <id> Show feature details
79
+ shep feat del <id> Delete a feature
80
+ shep feat resume <id> Resume a paused feature
81
+ shep feat review <id> Review a feature
82
+ shep feat approve <id> [--comments] Approve a feature
83
+ shep feat reject <id> [--feedback] Reject a feature
84
+ shep feat logs <id> View feature logs
101
85
  ```
102
86
 
103
- </details>
104
-
105
- <details>
106
- <summary><b>Auto-generated spec files</b> &mdash; real output from a single <code>shep feat new</code></summary>
107
- <br />
108
-
109
- > **`spec.yaml`** — requirements & scope
110
-
111
- ```yaml
112
- name: add-unit-tests
113
- oneLiner: Add comprehensive unit tests for all source modules
114
- summary: >
115
- Add unit tests for every module in the package. The project currently has
116
- minimal test coverage (only 7 tests total). This feature adds tests for
117
- config, agents, flows, tools, observability, and CLI — using pytest with
118
- mocking to avoid external dependencies.
119
- sizeEstimate: M
120
- openQuestions:
121
- - question: 'Should we set a minimum coverage threshold and enforce it in CI?'
122
- resolved: true
123
- answer: >
124
- Set 70% minimum via --cov-fail-under=70. Achievable and prevents regression.
125
- ```
87
+ ### Agent Management
126
88
 
127
- > **`research.yaml`** — technical decisions with rationale
128
-
129
- ```yaml
130
- decisions:
131
- - title: 'Test Framework'
132
- chosen: 'pytest (already configured)'
133
- rejected:
134
- - 'unittest — More verbose, no fixture system'
135
- - 'nose2 — Unmaintained, no advantage'
136
- rationale: >
137
- Already a dev dependency with asyncio and coverage plugins configured.
138
-
139
- - title: 'Mocking Library'
140
- chosen: 'unittest.mock (stdlib)'
141
- rejected:
142
- - 'pytest-mock — Adds a dependency for marginal convenience'
143
- rationale: >
144
- patch() for module-level replacement, MagicMock for spec objects,
145
- assert_called_with for verification. No new dependency needed.
146
89
  ```
147
-
148
- > **`tasks.yaml`** TDD task breakdown
149
-
150
- ```yaml
151
- tasks:
152
- - id: task-1
153
- title: 'Create conftest.py with shared fixtures'
154
- dependencies: []
155
- acceptanceCriteria:
156
- - 'mock_settings returns a Settings instance with known values'
157
- - 'mock_llm returns MagicMock(spec=LLM) for agent tests'
158
- - 'tmp_repo creates a temp dir with git init and one commit'
159
- tdd:
160
- red: ['Write test_smoke.py that imports fixtures and asserts properties']
161
- green: ['Implement conftest.py with all three fixtures']
162
- refactor: ['Remove smoke test — subsumed by real test files']
163
-
164
- - id: task-3
165
- title: 'Test config/llm.py'
166
- dependencies: [task-1]
167
- acceptanceCriteria:
168
- - 'test_create_llm_with_openai_provider: verifies model, temperature, api_key'
169
- - 'test_create_llm_with_cursor_provider: verifies base_url included'
170
- - 'test_get_fast_llm: calls create_llm with settings.fast_model'
171
- tdd:
172
- red: ['Patch LLM and get_settings, assert constructor kwargs']
173
- green: ['Tests pass — they verify existing code with mocks']
174
- refactor: ['Extract common patch decorators if repetitive']
90
+ shep agent ls List agents
91
+ shep agent show <id> Show agent details
92
+ shep agent stop <id> Stop a running agent
93
+ shep agent logs <id> View agent logs
94
+ shep agent delete <id> Delete an agent
95
+ shep agent approve <id> Approve an agent action
96
+ shep agent reject <id> Reject an agent action
175
97
  ```
176
98
 
177
- > **`feature.yaml`** machine-readable progress (updated continuously)
178
-
179
- ```yaml
180
- feature:
181
- id: '001-add-unit-tests'
182
- branch: 'feat/001-add-unit-tests'
183
- lifecycle: 'research'
99
+ ### Repository & Session Management
184
100
 
185
- status:
186
- phase: 'research'
187
- progress: { completed: 0, total: 12, percentage: 0 }
188
- lastUpdatedBy: 'feature-agent'
101
+ ```
102
+ shep repo ls List repositories
103
+ shep repo show <id> Show repository details
104
+ shep session ls List sessions
105
+ shep session show <id> Show session details
189
106
  ```
190
107
 
191
- </details>
192
-
193
- ---
194
-
195
- Running AI agents is easy. **Managing many of them through a full SDLC is the hard part.** Shep gives you a control center that handles the entire lifecycle — requirements gathering, planning, implementation, QA, and deployment — across multiple agent sessions running in parallel. See what each agent is doing, jump into any session's web preview, code editor, or terminal, approve plans when agents need your input, and let them keep working while you move on. Plug in Claude Code, Cursor CLI, Gemini CLI, or any coding agent. Each feature gets its own isolated worktree and dev environment. You manage the lifecycle, agents do the work.
196
-
197
- ---
198
-
199
- ## Features
200
-
201
- > 🚧 **Under active development** — Web UI screenshots are from the design spec. Core CLI (`feat new`, `feat ls`, `feat show`, `settings`, `ui`, `start`, `stop`, `status`) works today. The `mem` command is still WIP.
202
-
203
- <table>
204
- <tr>
205
- <td width="55%"><img src="docs/poc/imgs/01-features-control-center-overview.png" alt="Feature properties with attachments and metadata" /></td>
206
- <td width="45%">
207
-
208
- ### Feature Properties & Attachments
209
-
210
- - **Rich feature detail panel** with name, description, and metadata
211
- - **File attachments** — requirements PDFs, mockup images, API specs linked directly to features
212
- - **Team & metadata** tracking for ownership and collaboration
213
- - **Dependency mapping** between features across repos
214
- - **Iterative refinement** — update properties as requirements evolve through the lifecycle
215
-
216
- </td>
217
- </tr>
218
-
219
- <tr>
220
- <td width="55%"><img src="docs/poc/imgs/02-feature-card-action-toolbar.png" alt="Feature card with action toolbar" /></td>
221
- <td width="45%">
222
-
223
- ### Feature Cards with Quick Actions
224
-
225
- - **One-click dev server** launch directly from any card
226
- - **Action toolbar** — GitHub, web preview, terminal, code editor at your fingertips
227
- - **Live progress** tracking with percentage and lifecycle stage badge
228
- - **Unique IDs** for instant cross-referencing across CLI and UI
229
-
230
- </td>
231
- </tr>
232
-
233
- <tr>
234
- <td width="55%"><img src="docs/poc/imgs/03-requirements-discovery-validation.png" alt="Requirements discovery questionnaire" /></td>
235
- <td width="45%">
236
-
237
- ### AI-Guided Requirements Discovery
238
-
239
- - **Smart questionnaires** that surface the right questions for your feature
240
- - **Categorized inputs** — business, technical, and UX problem classification
241
- - **Priority tiers** (P1–P3) with clear impact descriptions
242
- - **Domain tagging** to scope the affected areas of your codebase
243
- - **Human breakpoint** — agent pauses here until you finalize
244
-
245
- </td>
246
- </tr>
247
-
248
- <tr>
249
- <td width="55%"><img src="docs/poc/imgs/04-technical-implementation-plan-review.png" alt="Technical plan review with architecture decisions" /></td>
250
- <td width="45%">
251
-
252
- ### Technical Plan Review
253
-
254
- - **AI-generated implementation plans** with full architecture rationale
255
- - **Technical decision cards** — see the chosen approach and alternatives side-by-side
256
- - **Architecture pattern selection** (microservices, monolith, serverless) with trade-off analysis
257
- - **Approve & continue** or send back for revision — you control the direction
258
-
259
- </td>
260
- </tr>
261
-
262
- <tr>
263
- <td width="55%"><img src="docs/poc/imgs/05-plan-review-tasks-and-artifacts.png" alt="Task breakdown and generated artifacts" /></td>
264
- <td width="45%">
265
-
266
- ### Tasks & Generated Artifacts
267
-
268
- - **Auto-generated documents** — plan.md, tasks.md, data_model.md created from your approved spec
269
- - **Task breakdown** with dependency tracking and status badges
270
- - **Artifact browser** — inspect any generated document directly in the panel
271
- - **Draft indicator** — nothing ships until you explicitly approve
272
-
273
- </td>
274
- </tr>
275
-
276
- <tr>
277
- <td width="55%"><img src="docs/poc/imgs/06-qa-check-review.png" alt="QA checklist with all checks passing" /></td>
278
- <td width="45%">
279
-
280
- ### Quality Assurance Gate
281
-
282
- - **Automated QA checklist** — functional, performance, compatibility, accessibility
283
- - **Performance benchmarks** — API response time p95 thresholds
284
- - **WCAG 2.5** accessibility compliance verification
285
- - **One-click Pass QA** when all checks are green
286
-
287
- </td>
288
- </tr>
289
-
290
- <tr>
291
- <td width="55%"><img src="docs/poc/imgs/07-dev-environment-web-preview.png" alt="Integrated web preview in dev environment" /></td>
292
- <td width="45%">
293
-
294
- ### Integrated Dev Environment — Web Preview
295
-
296
- - **Live localhost preview** embedded in the control center
297
- - **Isolated ports** — each feature runs its own dev server
298
- - **Server status** indicator with start/stop controls
299
- - **Open in Browser** for full-screen testing
300
- - **PR context** — branch, worktree path, and PR link always visible
301
-
302
- </td>
303
- </tr>
304
-
305
- <tr>
306
- <td width="55%"><img src="docs/poc/imgs/08-dev-environment-vscode-tab.png" alt="Embedded VS Code editor in dev environment" /></td>
307
- <td width="45%">
308
-
309
- ### Integrated Dev Environment — Code Editor
310
-
311
- - **Embedded VS Code** with full editor capabilities
312
- - **Git worktree isolation** — each feature in its own directory, no branch conflicts
313
- - **File explorer** with project structure at a glance
314
- - **PR badge** with commits ahead/behind and changed file count
315
- - **Zero context-switch** — edit code without leaving the control center
316
-
317
- </td>
318
- </tr>
319
-
320
- <tr>
321
- <td width="55%"><img src="docs/poc/imgs/09-dev-environment-terminal-tab.png" alt="Terminal tab showing running dev server" /></td>
322
- <td width="45%">
323
-
324
- ### Integrated Dev Environment — Terminal
325
-
326
- - **Full terminal access** inside the feature workspace
327
- - **Build output, test results, agent logs** in one place
328
- - **Pre-configured** in the feature's worktree directory
329
- - **Dev server output** — see Next.js/Vite/Express startup and compile times
330
- - **Three-tab workflow** — preview, code, and terminal without leaving the UI
331
-
332
- </td>
333
- </tr>
334
- </table>
335
-
336
- ---
337
-
338
- ## Quick Start
339
-
340
- ```bash
341
- # 1. Install
342
- npm i -g @shepai/cli
108
+ ### Settings
343
109
 
344
- # 2. Run Shep — completes setup on first run, then opens the web UI
345
- shep
346
-
347
- # 3. Browser opens at http://localhost:4050 — you're in
110
+ ```
111
+ shep settings Launch setup wizard
112
+ shep settings show Display current configuration
113
+ shep settings init Initialize settings
114
+ shep settings agent Configure AI coding agent
115
+ shep settings ide Configure IDE
116
+ shep settings workflow Configure workflow
117
+ shep settings model Configure model
348
118
  ```
349
119
 
350
- ## Daemon Management
351
-
352
- `shep` runs the web UI as a background daemon so your terminal stays free. Use these commands to manage it:
120
+ ### Tools
353
121
 
354
- ```bash
355
- shep start # Start (or re-open) the web UI daemon
356
- shep stop # Gracefully stop the daemon
357
- shep status # Show live PID, port, uptime, CPU%, and memory
122
+ ```
123
+ shep tools list List tools with install status
124
+ shep install <tool> [--how] Install a dev tool
125
+ shep ide-open [--ide] [--dir] Open IDE in directory
358
126
  ```
359
127
 
360
- ## CLI
128
+ ### Other
361
129
 
362
130
  ```
363
- shep Start daemon (onboarding on first run)
364
- shep start [--port <number>] Start the web UI as a background daemon
365
- shep stop Stop the running web UI daemon
366
- shep status Show daemon status and live metrics
367
- shep feat new <description> Create a new feature
368
- shep feat new --interactive Interactive mode with human checkpoints
369
- shep feat new --allow-all Full autonomous mode
370
- shep feat ls List features across repos
371
- shep feat show <id> Show feature details
372
- shep feat preview <id> Preview feature dev environment
373
- shep ui Start the web UI in the foreground
374
- shep settings show Display current configuration
375
- shep settings agent Configure AI coding agent
376
- shep mem add <text> --global|--repo Add agent memory
377
- shep mem ls List memories
378
- shep version Version info
131
+ shep version Show version info
132
+ shep upgrade Upgrade to latest version
133
+ shep run <agent> [-p prompt] [-r repo] [-s] Run an agent directly
379
134
  ```
380
135
 
136
+ ---
137
+
381
138
  ## Architecture
382
139
 
383
140
  Clean Architecture with four layers. Dependencies point inward — domain has zero external deps.
@@ -387,7 +144,7 @@ flowchart TB
387
144
  P["<b>Presentation</b><br/>CLI · Web UI · TUI"]
388
145
  A["<b>Application</b><br/>Use Cases · Orchestration · Ports"]
389
146
  D["<b>Domain</b><br/>Entities · Value Objects · Services"]
390
- I["<b>Infrastructure</b><br/>SQLite · LangGraph · LanceDB"]
147
+ I["<b>Infrastructure</b><br/>SQLite · LangGraph · DI"]
391
148
 
392
149
  P --> A --> D
393
150
  I --> A
@@ -398,48 +155,76 @@ flowchart TB
398
155
  style I fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95
399
156
  ```
400
157
 
158
+ | Layer | Path | Responsibility |
159
+ | -------------- | ----------------------------------- | ------------------------------------------------- |
160
+ | Domain | `packages/core/src/domain/` | Business logic, TypeSpec-generated types |
161
+ | Application | `packages/core/src/application/` | Use cases, output port interfaces |
162
+ | Infrastructure | `packages/core/src/infrastructure/` | SQLite repos, LangGraph agents, DI (tsyringe) |
163
+ | Presentation | `src/presentation/` | CLI (Commander), TUI (Inquirer), Web UI (Next.js) |
164
+
401
165
  ### Feature Lifecycle
402
166
 
403
- Every feature progresses through a structured SDLC pipeline:
167
+ Every feature progresses through a structured SDLC pipeline with 9 states:
404
168
 
405
169
  ```
406
- Requirements Research Review PRD Planning Review Plan → Implementation QA Approval → Live
407
- ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
408
- Agent Agent Human Agent Human Agent Human Human
409
- breakpoint breakpoint check gate
170
+ Started -> Analyze -> Requirements -> Research -> Planning -> Implementation -> Review -> Maintain
171
+ |
172
+ (Blocked)
410
173
  ```
411
174
 
412
- Breakpoints are configurable. In `--allow-all` mode, the agent handles everything autonomously.
175
+ Human approval gates are configurable at PRD, Plan, and Merge phases. In `--allow-all` mode the agent handles everything autonomously.
413
176
 
414
177
  ### Tech Stack
415
178
 
416
- | Component | Technology |
417
- | --------------- | --------------------------------------------------------------------------------------- |
418
- | Language | TypeScript |
419
- | Package Manager | pnpm |
420
- | CLI Framework | Commander |
421
- | TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) |
422
- | Web UI | Next.js 16 + React 19 + shadcn/ui ([@shepai/web](./src/presentation/web/)) |
423
- | Design System | Storybook |
424
- | Build Tool | tsc + tsc-alias (prod), tsx (CLI dev), Next.js (web dev) |
425
- | Database | SQLite |
426
- | Agent System | [LangGraph](https://www.langchain.com/langgraph) (`@langchain/langgraph`) |
427
- | Vector DB | [LanceDB](https://lancedb.com/) (file-based) |
428
- | Embeddings | [Transformers.js](https://huggingface.co/docs/transformers.js) (local, multiple models) |
429
- | Testing | Vitest (unit/integration) + Playwright (e2e) |
430
- | Methodology | TDD (Red-Green-Refactor) |
179
+ | Component | Technology |
180
+ | --------------- | ------------------------------------------------------------------------- |
181
+ | Language | TypeScript (ES2022) |
182
+ | Package Manager | pnpm |
183
+ | CLI Framework | Commander |
184
+ | TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) |
185
+ | Web UI | Next.js 16 + React 19 + shadcn/ui + Tailwind CSS 4 |
186
+ | Graph Viz | React Flow (XYFlow) 12 |
187
+ | Design System | Storybook 8.x |
188
+ | Build Tool | tsc + tsc-alias (prod), tsx (CLI dev), Next.js (web dev) |
189
+ | Database | SQLite (better-sqlite3, per-repo) |
190
+ | Domain Models | TypeSpec -> generated TypeScript |
191
+ | Agent System | [LangGraph](https://www.langchain.com/langgraph) (`@langchain/langgraph`) |
192
+ | DI Container | tsyringe |
193
+ | Testing | Vitest (unit/integration) + Playwright (e2e) |
194
+ | Methodology | TDD (Red-Green-Refactor) |
195
+
196
+ ### Supported Tools
197
+
198
+ Shep can detect, install, and manage the following tools:
199
+
200
+ | Category | Tools |
201
+ | ---------- | --------------------------------------------------------------------------------- |
202
+ | IDEs | Alacritty, Antigravity, Cursor, iTerm2, Kitty, TMux, VS Code, Warp, Windsurf, Zed |
203
+ | CLI Agents | Claude Code, Cursor CLI, Gemini CLI |
204
+ | Dev Tools | Git, GitHub CLI |
205
+
206
+ ### Web UI
207
+
208
+ The web dashboard runs at `http://localhost:4050` and provides:
209
+
210
+ - **Dashboard canvas** — Interactive React Flow graph with feature and repository nodes
211
+ - **Feature drawer** — Tabs for overview, activity, approval, rejection, PR info, deployment, and timeline
212
+ - **Create feature form** — Start new features from the UI
213
+ - **Settings, Tools, Skills, and Version pages**
214
+ - **Real-time updates** via Server-Sent Events (SSE)
431
215
 
432
216
  ### Data Model
433
217
 
434
218
  ```
435
- Repository ──┬── Feature ──┬── Plan ──┬── Task ──── ActionItem
436
- └── Artifact
437
- └── Requirement ── Research
438
- └── Analysis docs (cached)
219
+ Repository --+-- Feature --+-- Plan --+-- Task -- ActionItem
220
+ | | +-- Artifact
221
+ | +-- Requirement -- Research
439
222
  ```
440
223
 
441
224
  All data lives locally in `~/.shep/`. Per-repo SQLite databases. No cloud dependency.
442
225
 
226
+ ---
227
+
443
228
  ## Documentation
444
229
 
445
230
  | Document | Description |
@@ -453,7 +238,6 @@ All data lives locally in `~/.shep/`. Per-repo SQLite databases. No cloud depend
453
238
  | [Guides](./docs/guides/) | User guides and tutorials |
454
239
  | [Development](./docs/development/) | Contributing and development setup |
455
240
  | [API Reference](./docs/api/) | Interface and model documentation |
456
- | [POC: Feature Flow](./docs/poc/) | Interactive feature lifecycle demo |
457
241
 
458
242
  ## Contributing
459
243
 
@@ -89,5 +89,5 @@ required:
89
89
  - openPr
90
90
  - approvalGates
91
91
  allOf:
92
- - $ref: BaseEntity.yaml
92
+ - $ref: SoftDeletableEntity.yaml
93
93
  description: Central entity tracking a piece of work through the SDLC lifecycle (Aggregate Root)
@@ -11,4 +11,5 @@ enum:
11
11
  - Review
12
12
  - Maintain
13
13
  - Blocked
14
+ - Deleting
14
15
  description: Software Development Lifecycle stages for feature progression