@shepai/cli 1.96.0 → 1.97.0-pr288.bd6ff40

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 (173) hide show
  1. package/README.md +148 -357
  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/domain/generated/output.d.ts +3 -2
  10. package/dist/packages/core/src/domain/generated/output.d.ts.map +1 -1
  11. package/dist/packages/core/src/domain/generated/output.js +1 -0
  12. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts +1 -0
  13. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.d.ts.map +1 -1
  14. package/dist/packages/core/src/infrastructure/persistence/sqlite/mappers/feature.mapper.js +4 -0
  15. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.d.ts.map +1 -1
  16. package/dist/packages/core/src/infrastructure/persistence/sqlite/migrations.js +12 -0
  17. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts +2 -0
  18. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.d.ts.map +1 -1
  19. package/dist/packages/core/src/infrastructure/repositories/sqlite-feature.repository.js +13 -3
  20. package/dist/src/presentation/cli/commands/feat/ls.command.d.ts.map +1 -1
  21. package/dist/src/presentation/cli/commands/feat/ls.command.js +9 -2
  22. package/dist/src/presentation/web/app/api/agent-events/route.d.ts.map +1 -1
  23. package/dist/src/presentation/web/app/api/agent-events/route.js +1 -0
  24. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.d.ts.map +1 -1
  25. package/dist/src/presentation/web/components/common/control-center-drawer/feature-drawer-client.js +5 -0
  26. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.d.ts.map +1 -1
  27. package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +4 -0
  28. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
  29. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
  30. package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +11 -1
  31. package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
  32. package/dist/src/presentation/web/components/common/feature-node/feature-node.js +4 -4
  33. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
  34. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
  35. package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +21 -0
  36. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.d.ts.map +1 -1
  37. package/dist/src/presentation/web/components/features/control-center/use-control-center-state.js +53 -16
  38. package/dist/src/presentation/web/hooks/sidebar-features-context.d.ts.map +1 -1
  39. package/dist/src/presentation/web/hooks/sidebar-features-context.js +1 -0
  40. package/dist/src/presentation/web/hooks/use-graph-state.d.ts.map +1 -1
  41. package/dist/src/presentation/web/hooks/use-graph-state.js +27 -0
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/web/.next/BUILD_ID +1 -1
  45. package/web/.next/build-manifest.json +2 -2
  46. package/web/.next/fallback-build-manifest.json +2 -2
  47. package/web/.next/prerender-manifest.json +3 -3
  48. package/web/.next/required-server-files.js +3 -3
  49. package/web/.next/required-server-files.json +3 -3
  50. package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +20 -20
  51. package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
  52. package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
  53. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  54. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  55. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  56. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +25 -25
  57. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
  58. package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
  59. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  60. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
  61. package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  62. package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +20 -20
  63. package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
  64. package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
  65. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page/server-reference-manifest.json +25 -25
  66. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
  67. package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
  68. package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +25 -25
  69. package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
  70. package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
  71. package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +18 -18
  72. package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
  73. package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
  74. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +18 -18
  75. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
  76. package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
  77. package/web/.next/server/app/_global-error.html +2 -2
  78. package/web/.next/server/app/_global-error.rsc +1 -1
  79. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  80. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  81. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  82. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  83. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  84. package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
  85. package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  86. package/web/.next/server/app/settings/page/server-reference-manifest.json +5 -5
  87. package/web/.next/server/app/settings/page.js.nft.json +1 -1
  88. package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
  89. package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
  90. package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
  91. package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
  92. package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
  93. package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
  94. package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
  95. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +1 -1
  96. package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
  97. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
  98. package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
  99. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js +1 -1
  100. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_c757eb00.js.map +1 -1
  101. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js +1 -1
  102. package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_7eb49631.js.map +1 -1
  103. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
  104. package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
  105. package/web/.next/server/chunks/ssr/[root-of-the-server]__19fb0bfe._.js +1 -1
  106. package/web/.next/server/chunks/ssr/[root-of-the-server]__19fb0bfe._.js.map +1 -1
  107. package/web/.next/server/chunks/ssr/[root-of-the-server]__24dd0927._.js +2 -2
  108. package/web/.next/server/chunks/ssr/[root-of-the-server]__357d99f9._.js +1 -1
  109. package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js +1 -1
  110. package/web/.next/server/chunks/ssr/[root-of-the-server]__3d6f6b0e._.js.map +1 -1
  111. package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js +1 -1
  112. package/web/.next/server/chunks/ssr/[root-of-the-server]__42020c54._.js.map +1 -1
  113. package/web/.next/server/chunks/ssr/[root-of-the-server]__5d87af2e._.js +1 -1
  114. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js +1 -1
  115. package/web/.next/server/chunks/ssr/[root-of-the-server]__845a9d2a._.js.map +1 -1
  116. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js +2 -2
  117. package/web/.next/server/chunks/ssr/[root-of-the-server]__89e8a5cc._.js.map +1 -1
  118. package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js +1 -1
  119. package/web/.next/server/chunks/ssr/[root-of-the-server]__9cb60e1e._.js.map +1 -1
  120. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
  121. package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
  122. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
  123. package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
  124. package/web/.next/server/chunks/ssr/{_89642645._.js → _0db5b27c._.js} +2 -2
  125. package/web/.next/server/chunks/ssr/{_89642645._.js.map → _0db5b27c._.js.map} +1 -1
  126. package/web/.next/server/chunks/ssr/_135edb9c._.js +1 -1
  127. package/web/.next/server/chunks/ssr/_135edb9c._.js.map +1 -1
  128. package/web/.next/server/chunks/ssr/_1bb131c4._.js.map +1 -1
  129. package/web/.next/server/chunks/ssr/{_25804645._.js → _52a00806._.js} +2 -2
  130. package/web/.next/server/chunks/ssr/{_25804645._.js.map → _52a00806._.js.map} +1 -1
  131. package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
  132. package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
  133. package/web/.next/server/chunks/ssr/_8dacd1e7._.js +1 -1
  134. package/web/.next/server/chunks/ssr/_8dacd1e7._.js.map +1 -1
  135. package/web/.next/server/chunks/ssr/_9d8e7a01._.js +3 -0
  136. package/web/.next/server/chunks/ssr/{_29706078._.js.map → _9d8e7a01._.js.map} +1 -1
  137. package/web/.next/server/chunks/ssr/_cc77a143._.js +1 -1
  138. package/web/.next/server/chunks/ssr/_cc77a143._.js.map +1 -1
  139. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
  140. package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
  141. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js +2 -2
  142. package/web/.next/server/chunks/ssr/src_presentation_web_3c53a23d._.js.map +1 -1
  143. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js +1 -1
  144. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_befd865a.js.map +1 -1
  145. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
  146. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
  147. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
  148. package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
  149. package/web/.next/server/chunks/ssr/src_presentation_web_components_bf50c527._.js +1 -1
  150. package/web/.next/server/chunks/ssr/src_presentation_web_components_de814675._.js +1 -1
  151. package/web/.next/server/chunks/ssr/src_presentation_web_components_e599bb8c._.js +1 -1
  152. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
  153. package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
  154. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js +2 -2
  155. package/web/.next/server/chunks/ssr/src_presentation_web_ec8c7a4f._.js.map +1 -1
  156. package/web/.next/server/pages/500.html +2 -2
  157. package/web/.next/server/server-reference-manifest.js +1 -1
  158. package/web/.next/server/server-reference-manifest.json +30 -30
  159. package/web/.next/static/chunks/{2a7239eb16bfe1c6.js → 04ad119023a941f0.js} +1 -1
  160. package/web/.next/static/chunks/{7ae799537de2a498.js → 09f0be1f181c940c.js} +1 -1
  161. package/web/.next/static/chunks/{16f95844a435acec.js → 11a89c4efffc1cbe.js} +1 -1
  162. package/web/.next/static/chunks/{f47c30133739a043.js → 3059a91a567c6cda.js} +1 -1
  163. package/web/.next/static/chunks/{447660fbaba174d4.js → 5a2def36e6f1480e.js} +1 -1
  164. package/web/.next/static/chunks/{8a2dfd7720cc95d2.js → 7e6a89d952090960.js} +1 -1
  165. package/web/.next/static/chunks/{896bf4b2aed373c1.js → 80e0e1e16936282a.js} +1 -1
  166. package/web/.next/static/chunks/{441c4c4fac0587bc.js → 927930f10d507503.js} +1 -1
  167. package/web/.next/static/chunks/{062edbb0027f7706.js → e87446b30572cf0d.js} +1 -1
  168. package/web/.next/static/chunks/{8bae17e4a4833517.js → e9d61af9f22c288e.js} +1 -1
  169. package/web/.next/static/chunks/{d4a066dfc6f5dab7.js → edc1a6ce7f65fdeb.js} +1 -1
  170. package/web/.next/server/chunks/ssr/_29706078._.js +0 -3
  171. /package/web/.next/static/{EPem_w0RRU96dbLFoOYwF → p4oVbIPgv3PIdbTKcUZNM}/_buildManifest.js +0 -0
  172. /package/web/.next/static/{EPem_w0RRU96dbLFoOYwF → p4oVbIPgv3PIdbTKcUZNM}/_clientMiddlewareManifest.json +0 -0
  173. /package/web/.next/static/{EPem_w0RRU96dbLFoOYwF → p4oVbIPgv3PIdbTKcUZNM}/_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
+ ### One command. Full lifecycle. Merged PR.
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
+ _Describe a feature in plain English Shep researches, plans, codes, tests, and opens a PR. You approve when you want to, or let it run hands-free._
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,129 @@ _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
46
+ ```bash
47
+ shep feat new "add stripe payments" --allow-all --push --pr
48
+ # ↳ PRD → research → plan → code → tests → PR → CI watch — done.
52
49
  ```
53
50
 
54
- </details>
51
+ - **Full lifecycle in one shot** — From idea to merged PR: requirements, technical research, implementation plan, code with tests, PR creation, and CI fix loop
52
+ - **Approve or go hands-free** — Three review gates (PRD, Plan, Merge) you can enable, disable, or skip entirely with `--allow-all`
53
+ - **Run 10 features in parallel** — Each gets its own git worktree — switch context instantly, no stashing, no branch juggling, no conflicts
54
+ - **Pick your agent** — Claude Code, Cursor CLI, or Gemini CLI — swap per feature, per repo, anytime
55
+ - **Live dashboard** — Interactive graph of every repo and feature — review diffs, approve merges, launch dev servers, all in-browser
56
+ - **100% local, zero signup** — SQLite in `~/.shep/`, nothing leaves your machine, no account needed
55
57
 
56
- <details>
57
- <summary><b>Show feature detail</b> &mdash; <code>shep feat show 1b0a7969</code></summary>
58
- <br />
58
+ > **[See the full Features Guide with screenshots →](./docs/FEATURES.md)**
59
59
 
60
- ```
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
77
- ```
60
+ ---
78
61
 
79
- </details>
62
+ ## CLI Reference
80
63
 
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.
64
+ ### Daemon
86
65
 
87
66
  ```
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
67
+ shep Start daemon + onboarding (first run)
68
+ shep start [--port <number>] Start web UI daemon (background, default port 4050)
69
+ shep stop Stop the running daemon
70
+ shep restart Restart the daemon
71
+ shep status Show daemon status and live metrics
72
+ shep ui [--port] [--no-open] Start the web UI in the foreground
101
73
  ```
102
74
 
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
- ```
75
+ ### Feature Management
126
76
 
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
77
  ```
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']
78
+ shep feat new <description> Create a new feature
79
+ [--repo] [--push] [--pr]
80
+ [--allow-prd] [--allow-plan] [--allow-merge] [--allow-all]
81
+ [--parent] [--fast] [--model] [--attach]
82
+ shep feat ls [--repo] List features
83
+ shep feat show <id> Show feature details
84
+ shep feat del <id> Delete a feature
85
+ shep feat resume <id> Resume a paused feature
86
+ shep feat review <id> Review a feature
87
+ shep feat approve <id> [--comments] Approve a feature
88
+ shep feat reject <id> [--feedback] Reject a feature
89
+ shep feat logs <id> View feature logs
175
90
  ```
176
91
 
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'
92
+ ### Agent Management
184
93
 
185
- status:
186
- phase: 'research'
187
- progress: { completed: 0, total: 12, percentage: 0 }
188
- lastUpdatedBy: 'feature-agent'
94
+ ```
95
+ shep agent ls List agents
96
+ shep agent show <id> Show agent details
97
+ shep agent stop <id> Stop a running agent
98
+ shep agent logs <id> View agent logs
99
+ shep agent delete <id> Delete an agent
100
+ shep agent approve <id> Approve an agent action
101
+ shep agent reject <id> Reject an agent action
189
102
  ```
190
103
 
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
- ---
104
+ ### Repository & Session Management
337
105
 
338
- ## Quick Start
106
+ ```
107
+ shep repo ls List repositories
108
+ shep repo show <id> Show repository details
109
+ shep session ls List sessions
110
+ shep session show <id> Show session details
111
+ ```
339
112
 
340
- ```bash
341
- # 1. Install
342
- npm i -g @shepai/cli
113
+ ### Settings
343
114
 
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
115
+ ```
116
+ shep settings Launch setup wizard
117
+ shep settings show Display current configuration
118
+ shep settings init Initialize settings
119
+ shep settings agent Configure AI coding agent
120
+ shep settings ide Configure IDE
121
+ shep settings workflow Configure workflow
122
+ shep settings model Configure model
348
123
  ```
349
124
 
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:
125
+ ### Tools
353
126
 
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
127
+ ```
128
+ shep tools list List tools with install status
129
+ shep install <tool> [--how] Install a dev tool
130
+ shep ide-open [--ide] [--dir] Open IDE in directory
358
131
  ```
359
132
 
360
- ## CLI
133
+ ### Other
361
134
 
362
135
  ```
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
136
+ shep version Show version info
137
+ shep upgrade Upgrade to latest version
138
+ shep run <agent> [-p prompt] [-r repo] [-s] Run an agent directly
379
139
  ```
380
140
 
141
+ ---
142
+
381
143
  ## Architecture
382
144
 
383
145
  Clean Architecture with four layers. Dependencies point inward — domain has zero external deps.
@@ -387,7 +149,7 @@ flowchart TB
387
149
  P["<b>Presentation</b><br/>CLI · Web UI · TUI"]
388
150
  A["<b>Application</b><br/>Use Cases · Orchestration · Ports"]
389
151
  D["<b>Domain</b><br/>Entities · Value Objects · Services"]
390
- I["<b>Infrastructure</b><br/>SQLite · LangGraph · LanceDB"]
152
+ I["<b>Infrastructure</b><br/>SQLite · LangGraph · DI"]
391
153
 
392
154
  P --> A --> D
393
155
  I --> A
@@ -398,62 +160,91 @@ flowchart TB
398
160
  style I fill:#ede9fe,stroke:#8b5cf6,color:#4c1d95
399
161
  ```
400
162
 
163
+ | Layer | Path | Responsibility |
164
+ | -------------- | ----------------------------------- | ------------------------------------------------- |
165
+ | Domain | `packages/core/src/domain/` | Business logic, TypeSpec-generated types |
166
+ | Application | `packages/core/src/application/` | Use cases, output port interfaces |
167
+ | Infrastructure | `packages/core/src/infrastructure/` | SQLite repos, LangGraph agents, DI (tsyringe) |
168
+ | Presentation | `src/presentation/` | CLI (Commander), TUI (Inquirer), Web UI (Next.js) |
169
+
401
170
  ### Feature Lifecycle
402
171
 
403
- Every feature progresses through a structured SDLC pipeline:
172
+ Every feature progresses through a structured SDLC pipeline with 9 states:
404
173
 
405
174
  ```
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
175
+ Started -> Analyze -> Requirements -> Research -> Planning -> Implementation -> Review -> Maintain
176
+ |
177
+ (Blocked)
410
178
  ```
411
179
 
412
- Breakpoints are configurable. In `--allow-all` mode, the agent handles everything autonomously.
180
+ Human approval gates are configurable at PRD, Plan, and Merge phases. In `--allow-all` mode the agent handles everything autonomously.
413
181
 
414
182
  ### Tech Stack
415
183
 
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) |
184
+ | Component | Technology |
185
+ | --------------- | ------------------------------------------------------------------------- |
186
+ | Language | TypeScript (ES2022) |
187
+ | Package Manager | pnpm |
188
+ | CLI Framework | Commander |
189
+ | TUI Framework | [@inquirer/prompts](https://github.com/SBoudrias/Inquirer.js) |
190
+ | Web UI | Next.js 16 + React 19 + shadcn/ui + Tailwind CSS 4 |
191
+ | Graph Viz | React Flow (XYFlow) 12 |
192
+ | Design System | Storybook 8.x |
193
+ | Build Tool | tsc + tsc-alias (prod), tsx (CLI dev), Next.js (web dev) |
194
+ | Database | SQLite (better-sqlite3, per-repo) |
195
+ | Domain Models | TypeSpec -> generated TypeScript |
196
+ | Agent System | [LangGraph](https://www.langchain.com/langgraph) (`@langchain/langgraph`) |
197
+ | DI Container | tsyringe |
198
+ | Testing | Vitest (unit/integration) + Playwright (e2e) |
199
+ | Methodology | TDD (Red-Green-Refactor) |
200
+
201
+ ### Supported Tools
202
+
203
+ Shep can detect, install, and manage the following tools:
204
+
205
+ | Category | Tools |
206
+ | ---------- | --------------------------------------------------------------------------------- |
207
+ | IDEs | Alacritty, Antigravity, Cursor, iTerm2, Kitty, TMux, VS Code, Warp, Windsurf, Zed |
208
+ | CLI Agents | Claude Code, Cursor CLI, Gemini CLI |
209
+ | Dev Tools | Git, GitHub CLI |
210
+
211
+ ### Web UI
212
+
213
+ The web dashboard runs at `http://localhost:4050` and provides:
214
+
215
+ - **Dashboard canvas** — Interactive React Flow graph with feature and repository nodes
216
+ - **Feature drawer** — Tabs for overview, activity, approval, rejection, PR info, deployment, and timeline
217
+ - **Create feature form** — Start new features from the UI
218
+ - **Settings, Tools, Skills, and Version pages**
219
+ - **Real-time updates** via Server-Sent Events (SSE)
431
220
 
432
221
  ### Data Model
433
222
 
434
223
  ```
435
- Repository ──┬── Feature ──┬── Plan ──┬── Task ──── ActionItem
436
- └── Artifact
437
- └── Requirement ── Research
438
- └── Analysis docs (cached)
224
+ Repository --+-- Feature --+-- Plan --+-- Task -- ActionItem
225
+ | | +-- Artifact
226
+ | +-- Requirement -- Research
439
227
  ```
440
228
 
441
229
  All data lives locally in `~/.shep/`. Per-repo SQLite databases. No cloud dependency.
442
230
 
231
+ ---
232
+
443
233
  ## Documentation
444
234
 
445
- | Document | Description |
446
- | -------------------------------------------------- | ------------------------------------- |
447
- | [CLAUDE.md](./CLAUDE.md) | Guidance for Claude Code instances |
448
- | [AGENTS.md](./AGENTS.md) | Agent system architecture |
449
- | [CONTRIBUTING-AGENTS.md](./CONTRIBUTING-AGENTS.md) | AI agent contribution guidelines |
450
- | [Architecture](./docs/architecture/) | System design and patterns |
451
- | [Concepts](./docs/concepts/) | Core domain concepts |
452
- | [UI](./docs/ui/) | Web UI architecture and design system |
453
- | [Guides](./docs/guides/) | User guides and tutorials |
454
- | [Development](./docs/development/) | Contributing and development setup |
455
- | [API Reference](./docs/api/) | Interface and model documentation |
456
- | [POC: Feature Flow](./docs/poc/) | Interactive feature lifecycle demo |
235
+ | Document | Description |
236
+ | -------------------------------------------------- | ------------------------------------------ |
237
+ | [Features Guide](./docs/FEATURES.md) | Full features overview with screenshots |
238
+ | [Competitive Landscape](./docs/competitors/) | How Shep fits in the AI dev tool ecosystem |
239
+ | [CLAUDE.md](./CLAUDE.md) | Guidance for Claude Code instances |
240
+ | [AGENTS.md](./AGENTS.md) | Agent system architecture |
241
+ | [CONTRIBUTING-AGENTS.md](./CONTRIBUTING-AGENTS.md) | AI agent contribution guidelines |
242
+ | [Architecture](./docs/architecture/) | System design and patterns |
243
+ | [Concepts](./docs/concepts/) | Core domain concepts |
244
+ | [UI](./docs/ui/) | Web UI architecture and design system |
245
+ | [Guides](./docs/guides/) | User guides and tutorials |
246
+ | [Development](./docs/development/) | Contributing and development setup |
247
+ | [API Reference](./docs/api/) | Interface and model documentation |
457
248
 
458
249
  ## Contributing
459
250
 
@@ -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