@shepai/cli 1.44.1 → 1.44.2

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 (170) hide show
  1. package/apis/json-schema/AcceptanceCriteria.yaml +16 -0
  2. package/apis/json-schema/ActionItem.yaml +32 -0
  3. package/apis/json-schema/AgentAuthMethod.yaml +7 -0
  4. package/apis/json-schema/AgentConfig.yaml +19 -0
  5. package/apis/json-schema/AgentDefinition.yaml +14 -0
  6. package/apis/json-schema/AgentFeature.yaml +10 -0
  7. package/apis/json-schema/AgentInstance.yaml +23 -0
  8. package/apis/json-schema/AgentRun.yaml +63 -0
  9. package/apis/json-schema/AgentRunEvent.yaml +25 -0
  10. package/apis/json-schema/AgentRunStatus.yaml +12 -0
  11. package/apis/json-schema/AgentStatus.yaml +9 -0
  12. package/apis/json-schema/AgentType.yaml +10 -0
  13. package/apis/json-schema/ApprovalGates.yaml +18 -0
  14. package/apis/json-schema/Artifact.yaml +36 -0
  15. package/apis/json-schema/ArtifactCategory.yaml +9 -0
  16. package/apis/json-schema/ArtifactFormat.yaml +9 -0
  17. package/apis/json-schema/ArtifactState.yaml +8 -0
  18. package/apis/json-schema/AskRequest.yaml +10 -0
  19. package/apis/json-schema/AskResponse.yaml +14 -0
  20. package/apis/json-schema/AuditableEntity.yaml +13 -0
  21. package/apis/json-schema/BaseEntity.yaml +20 -0
  22. package/apis/json-schema/CiStatus.yaml +8 -0
  23. package/apis/json-schema/DeployMethod.yaml +10 -0
  24. package/apis/json-schema/DeploySkill.yaml +29 -0
  25. package/apis/json-schema/DeployTarget.yaml +10 -0
  26. package/apis/json-schema/DeployTargetActionItem.yaml +15 -0
  27. package/apis/json-schema/DeployTargetTask.yaml +15 -0
  28. package/apis/json-schema/DeployTargetTasks.yaml +17 -0
  29. package/apis/json-schema/Deployment.yaml +33 -0
  30. package/apis/json-schema/DeploymentState.yaml +8 -0
  31. package/apis/json-schema/EditorType.yaml +10 -0
  32. package/apis/json-schema/EnvironmentConfig.yaml +16 -0
  33. package/apis/json-schema/Feature.yaml +77 -0
  34. package/apis/json-schema/FeatureAgent.yaml +29 -0
  35. package/apis/json-schema/FeatureAgentState.yaml +11 -0
  36. package/apis/json-schema/FeatureArtifact.yaml +35 -0
  37. package/apis/json-schema/FeatureCheckpoint.yaml +18 -0
  38. package/apis/json-schema/FeatureErrors.yaml +15 -0
  39. package/apis/json-schema/FeatureIdentity.yaml +32 -0
  40. package/apis/json-schema/FeatureSpec.yaml +30 -0
  41. package/apis/json-schema/FeatureStatus.yaml +40 -0
  42. package/apis/json-schema/FeatureStatusInfo.yaml +30 -0
  43. package/apis/json-schema/FeatureStatusProgress.yaml +24 -0
  44. package/apis/json-schema/FeatureTaskTracking.yaml +21 -0
  45. package/apis/json-schema/FeatureValidation.yaml +21 -0
  46. package/apis/json-schema/GanttTask.yaml +34 -0
  47. package/apis/json-schema/GanttViewData.yaml +22 -0
  48. package/apis/json-schema/InstallationSuggestion.yaml +21 -0
  49. package/apis/json-schema/LocalDeployAgent.yaml +18 -0
  50. package/apis/json-schema/Message.yaml +29 -0
  51. package/apis/json-schema/MessageRole.yaml +7 -0
  52. package/apis/json-schema/ModelConfiguration.yaml +26 -0
  53. package/apis/json-schema/NotificationChannelConfig.yaml +11 -0
  54. package/apis/json-schema/NotificationEvent.yaml +34 -0
  55. package/apis/json-schema/NotificationEventConfig.yaml +31 -0
  56. package/apis/json-schema/NotificationEventType.yaml +10 -0
  57. package/apis/json-schema/NotificationPreferences.yaml +22 -0
  58. package/apis/json-schema/NotificationSeverity.yaml +9 -0
  59. package/apis/json-schema/OpenQuestion.yaml +25 -0
  60. package/apis/json-schema/PhaseTiming.yaml +35 -0
  61. package/apis/json-schema/Plan.yaml +37 -0
  62. package/apis/json-schema/PlanPhase.yaml +26 -0
  63. package/apis/json-schema/PlanSpec.yaml +26 -0
  64. package/apis/json-schema/PlanState.yaml +8 -0
  65. package/apis/json-schema/PortMap.yaml +19 -0
  66. package/apis/json-schema/PortProtocol.yaml +7 -0
  67. package/apis/json-schema/PrStatus.yaml +8 -0
  68. package/apis/json-schema/PrdApprovalPayload.yaml +15 -0
  69. package/apis/json-schema/PrdFinalAction.yaml +18 -0
  70. package/apis/json-schema/PrdOption.yaml +24 -0
  71. package/apis/json-schema/PrdQuestion.yaml +25 -0
  72. package/apis/json-schema/PrdQuestionnaireData.yaml +24 -0
  73. package/apis/json-schema/PrdRejectionPayload.yaml +20 -0
  74. package/apis/json-schema/PrdReviewResult.yaml +19 -0
  75. package/apis/json-schema/PullRequest.yaml +26 -0
  76. package/apis/json-schema/QuestionOption.yaml +18 -0
  77. package/apis/json-schema/QuestionSelectionChange.yaml +14 -0
  78. package/apis/json-schema/RejectionFeedbackEntry.yaml +21 -0
  79. package/apis/json-schema/Requirement.yaml +26 -0
  80. package/apis/json-schema/RequirementType.yaml +7 -0
  81. package/apis/json-schema/Research.yaml +26 -0
  82. package/apis/json-schema/ResearchArtifact.yaml +14 -0
  83. package/apis/json-schema/ResearchSpec.yaml +14 -0
  84. package/apis/json-schema/ResearchState.yaml +8 -0
  85. package/apis/json-schema/ReviewQuestion.yaml +24 -0
  86. package/apis/json-schema/SdlcLifecycle.yaml +13 -0
  87. package/apis/json-schema/Settings.yaml +36 -0
  88. package/apis/json-schema/SoftDeletableEntity.yaml +11 -0
  89. package/apis/json-schema/SpecArtifactBase.yaml +44 -0
  90. package/apis/json-schema/SpecTask.yaml +45 -0
  91. package/apis/json-schema/SystemConfig.yaml +16 -0
  92. package/apis/json-schema/Task.yaml +38 -0
  93. package/apis/json-schema/TaskState.yaml +9 -0
  94. package/apis/json-schema/TasksArtifact.yaml +18 -0
  95. package/apis/json-schema/TasksSpec.yaml +18 -0
  96. package/apis/json-schema/TddCycle.yaml +24 -0
  97. package/apis/json-schema/TechDecision.yaml +24 -0
  98. package/apis/json-schema/TechnicalPlanArtifact.yaml +26 -0
  99. package/apis/json-schema/TimelineEvent.yaml +17 -0
  100. package/apis/json-schema/Tool.yaml +23 -0
  101. package/apis/json-schema/ToolInstallCommand.yaml +28 -0
  102. package/apis/json-schema/ToolInstallationStatus.yaml +28 -0
  103. package/apis/json-schema/ToolType.yaml +12 -0
  104. package/apis/json-schema/UUID.yaml +4 -0
  105. package/apis/json-schema/UserProfile.yaml +14 -0
  106. package/apis/json-schema/WorkflowConfig.yaml +31 -0
  107. package/apis/openapi/openapi.yaml +7 -0
  108. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts +8 -0
  109. package/dist/packages/core/src/application/ports/output/services/worktree-service.interface.d.ts.map +1 -1
  110. package/dist/packages/core/src/application/use-cases/features/create/slug-resolver.d.ts.map +1 -1
  111. package/dist/packages/core/src/application/use-cases/features/create/slug-resolver.js +3 -2
  112. package/dist/packages/core/src/domain/factories/spec-yaml-parser.d.ts.map +1 -1
  113. package/dist/packages/core/src/domain/factories/spec-yaml-parser.js +16 -4
  114. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts +1 -0
  115. package/dist/packages/core/src/infrastructure/services/git/worktree.service.d.ts.map +1 -1
  116. package/dist/packages/core/src/infrastructure/services/git/worktree.service.js +11 -0
  117. package/dist/tsconfig.build.tsbuildinfo +1 -1
  118. package/package.json +2 -1
  119. package/web/.next/BUILD_ID +1 -1
  120. package/web/.next/build-manifest.json +2 -2
  121. package/web/.next/cache/.previewinfo +1 -1
  122. package/web/.next/cache/.rscinfo +1 -1
  123. package/web/.next/cache/.tsbuildinfo +1 -1
  124. package/web/.next/cache/config.json +3 -3
  125. package/web/.next/fallback-build-manifest.json +2 -2
  126. package/web/.next/prerender-manifest.json +3 -3
  127. package/web/.next/required-server-files.js +1 -1
  128. package/web/.next/required-server-files.json +1 -1
  129. package/web/.next/server/app/_global-error.html +2 -2
  130. package/web/.next/server/app/_global-error.rsc +1 -1
  131. package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  132. package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  133. package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  134. package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  135. package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  136. package/web/.next/server/app/page/server-reference-manifest.json +11 -11
  137. package/web/.next/server/app/page_client-reference-manifest.js +1 -1
  138. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +2 -2
  139. package/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js.map +1 -1
  140. package/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  141. package/web/.next/server/chunks/ssr/[root-of-the-server]__4e8ca89c._.js +2 -2
  142. package/web/.next/server/pages/500.html +2 -2
  143. package/web/.next/server/server-reference-manifest.js +1 -1
  144. package/web/.next/server/server-reference-manifest.json +12 -12
  145. package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
  146. package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
  147. package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
  148. package/web/.next/standalone/src/presentation/web/.next/required-server-files.json +1 -1
  149. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
  150. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
  151. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
  152. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  153. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  154. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  155. package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  156. package/web/.next/standalone/src/presentation/web/.next/server/app/page/server-reference-manifest.json +11 -11
  157. package/web/.next/standalone/src/presentation/web/.next/server/app/page_client-reference-manifest.js +1 -1
  158. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__03a0dba7._.js +2 -2
  159. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__249c74f6._.js +1 -1
  160. package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__4e8ca89c._.js +2 -2
  161. package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
  162. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
  163. package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +12 -12
  164. package/web/.next/standalone/src/presentation/web/server.js +1 -1
  165. package/web/.next/static/chunks/{631933b137e91fb2.js → fde97f50747ffbcc.js} +2 -2
  166. package/web/.next/trace +1 -1
  167. package/web/.next/trace-build +1 -1
  168. /package/web/.next/static/{aWm2zr_Js7tN6yFqI9qT- → DFCnsrgJiPWig4e8ubqSt}/_buildManifest.js +0 -0
  169. /package/web/.next/static/{aWm2zr_Js7tN6yFqI9qT- → DFCnsrgJiPWig4e8ubqSt}/_clientMiddlewareManifest.json +0 -0
  170. /package/web/.next/static/{aWm2zr_Js7tN6yFqI9qT- → DFCnsrgJiPWig4e8ubqSt}/_ssgManifest.js +0 -0
@@ -0,0 +1,37 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: Plan.yaml
3
+ type: object
4
+ properties:
5
+ overview:
6
+ type: string
7
+ description: High-level overview describing the implementation approach
8
+ requirements:
9
+ type: array
10
+ items:
11
+ $ref: Requirement.yaml
12
+ description: User and inferred requirements that this plan addresses
13
+ artifacts:
14
+ type: array
15
+ items:
16
+ $ref: Artifact.yaml
17
+ description: Documents and artifacts to be produced as part of this plan
18
+ tasks:
19
+ type: array
20
+ items:
21
+ $ref: Task.yaml
22
+ description: Work items (tasks) that comprise this implementation plan
23
+ state:
24
+ $ref: PlanState.yaml
25
+ description: Current state of the plan execution lifecycle
26
+ workPlan:
27
+ $ref: GanttViewData.yaml
28
+ description: Optional Gantt chart visualization data for work scheduling
29
+ required:
30
+ - overview
31
+ - requirements
32
+ - artifacts
33
+ - tasks
34
+ - state
35
+ allOf:
36
+ - $ref: BaseEntity.yaml
37
+ description: Implementation plan for a feature containing tasks, artifacts, and requirements
@@ -0,0 +1,26 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PlanPhase.yaml
3
+ type: object
4
+ properties:
5
+ id:
6
+ type: string
7
+ description: Unique identifier for this phase (e.g., 'phase-1')
8
+ name:
9
+ type: string
10
+ description: Display name of the phase
11
+ description:
12
+ type: string
13
+ description: Description of what this phase accomplishes and why it's ordered this way
14
+ parallel:
15
+ type: boolean
16
+ description: Whether tasks in this phase can be executed in parallel
17
+ taskIds:
18
+ type: array
19
+ items:
20
+ type: string
21
+ description: Task IDs belonging to this phase (e.g., ['task-1', 'task-2']). Optional — not present in plan.yaml phases.
22
+ required:
23
+ - id
24
+ - name
25
+ - parallel
26
+ description: Implementation phase grouping related tasks
@@ -0,0 +1,26 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PlanSpec.yaml
3
+ type: object
4
+ properties:
5
+ phases:
6
+ type: array
7
+ items:
8
+ $ref: PlanPhase.yaml
9
+ description: Structured implementation phases with task groupings
10
+ filesToCreate:
11
+ type: array
12
+ items:
13
+ type: string
14
+ description: New files planned to be created
15
+ filesToModify:
16
+ type: array
17
+ items:
18
+ type: string
19
+ description: Existing files planned to be modified
20
+ required:
21
+ - phases
22
+ - filesToCreate
23
+ - filesToModify
24
+ allOf:
25
+ - $ref: SpecArtifactBase.yaml
26
+ description: Implementation plan artifact defining strategy and file changes
@@ -0,0 +1,8 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PlanState.yaml
3
+ type: string
4
+ enum:
5
+ - Requirements
6
+ - ClarificationRequired
7
+ - Ready
8
+ description: States for plan entities during the planning phase
@@ -0,0 +1,19 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PortMap.yaml
3
+ type: object
4
+ properties:
5
+ name:
6
+ type: string
7
+ description: Service name identifier (e.g., 'web', 'api', 'db', 'redis')
8
+ port:
9
+ type: integer
10
+ minimum: -2147483648
11
+ maximum: 2147483647
12
+ description: Port number to expose on the host or container network
13
+ protocol:
14
+ $ref: PortProtocol.yaml
15
+ description: Network protocol for the port (defaults to TCP if not specified)
16
+ required:
17
+ - name
18
+ - port
19
+ description: Port mapping configuration for exposing container services to the network
@@ -0,0 +1,7 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PortProtocol.yaml
3
+ type: string
4
+ enum:
5
+ - TCP
6
+ - UDP
7
+ description: Network transport protocols for port configuration
@@ -0,0 +1,8 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrStatus.yaml
3
+ type: string
4
+ enum:
5
+ - Open
6
+ - Merged
7
+ - Closed
8
+ description: Pull request status for a feature
@@ -0,0 +1,15 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdApprovalPayload.yaml
3
+ type: object
4
+ properties:
5
+ approved:
6
+ type: boolean
7
+ description: Always true for approval payloads
8
+ changedSelections:
9
+ type: array
10
+ items:
11
+ $ref: QuestionSelectionChange.yaml
12
+ description: List of selection changes the user made during review (empty if no changes)
13
+ required:
14
+ - approved
15
+ description: Payload sent when user approves a PRD with optional selection changes
@@ -0,0 +1,18 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdFinalAction.yaml
3
+ type: object
4
+ properties:
5
+ id:
6
+ type: string
7
+ description: Unique identifier for this action
8
+ label:
9
+ type: string
10
+ description: Button label text
11
+ description:
12
+ type: string
13
+ description: Description of what this action does
14
+ required:
15
+ - id
16
+ - label
17
+ - description
18
+ description: Configuration for the final action button in the questionnaire
@@ -0,0 +1,24 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdOption.yaml
3
+ type: object
4
+ properties:
5
+ id:
6
+ type: string
7
+ description: Unique identifier for this option
8
+ label:
9
+ type: string
10
+ description: Display label for this option
11
+ rationale:
12
+ type: string
13
+ description: Explanation of why this option is relevant
14
+ recommended:
15
+ type: boolean
16
+ description: Whether this option is recommended by AI analysis
17
+ isNew:
18
+ type: boolean
19
+ description: Whether this option was newly added after refinement
20
+ required:
21
+ - id
22
+ - label
23
+ - rationale
24
+ description: A selectable option within a PRD questionnaire question
@@ -0,0 +1,25 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdQuestion.yaml
3
+ type: object
4
+ properties:
5
+ id:
6
+ type: string
7
+ description: Unique identifier for this question
8
+ question:
9
+ type: string
10
+ description: The question text displayed to the user
11
+ type:
12
+ type: string
13
+ const: select
14
+ description: Question interaction type (currently only single-select)
15
+ options:
16
+ type: array
17
+ items:
18
+ $ref: PrdOption.yaml
19
+ description: Available options for this question
20
+ required:
21
+ - id
22
+ - question
23
+ - type
24
+ - options
25
+ description: A single question in the PRD questionnaire with selectable options
@@ -0,0 +1,24 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdQuestionnaireData.yaml
3
+ type: object
4
+ properties:
5
+ question:
6
+ type: string
7
+ description: Header title text for the questionnaire
8
+ context:
9
+ type: string
10
+ description: Header context/description text
11
+ questions:
12
+ type: array
13
+ items:
14
+ $ref: PrdQuestion.yaml
15
+ description: Array of questions to display
16
+ finalAction:
17
+ $ref: PrdFinalAction.yaml
18
+ description: Configuration for the finalize/approve action button
19
+ required:
20
+ - question
21
+ - context
22
+ - questions
23
+ - finalAction
24
+ description: Complete data for rendering a PRD questionnaire
@@ -0,0 +1,20 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdRejectionPayload.yaml
3
+ type: object
4
+ properties:
5
+ rejected:
6
+ type: boolean
7
+ description: Always true for rejection payloads
8
+ feedback:
9
+ type: string
10
+ description: User's feedback explaining what needs to change
11
+ iteration:
12
+ type: integer
13
+ minimum: -2147483648
14
+ maximum: 2147483647
15
+ description: Iteration number (1-based, derived from PhaseTiming row count)
16
+ required:
17
+ - rejected
18
+ - feedback
19
+ - iteration
20
+ description: Payload sent when user rejects a PRD with feedback for iteration
@@ -0,0 +1,19 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PrdReviewResult.yaml
3
+ type: object
4
+ properties:
5
+ questions:
6
+ type: array
7
+ items:
8
+ $ref: ReviewQuestion.yaml
9
+ description: All questions with their final selection state
10
+ action:
11
+ type: string
12
+ description: "User action: approve or reject"
13
+ feedback:
14
+ type: string
15
+ description: Rejection feedback (only present when action is 'reject')
16
+ required:
17
+ - questions
18
+ - action
19
+ description: Result of the PRD review TUI interaction
@@ -0,0 +1,26 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: PullRequest.yaml
3
+ type: object
4
+ properties:
5
+ url:
6
+ type: string
7
+ description: GitHub PR URL
8
+ number:
9
+ type: integer
10
+ minimum: -2147483648
11
+ maximum: 2147483647
12
+ description: GitHub PR number
13
+ status:
14
+ $ref: PrStatus.yaml
15
+ description: Current PR status
16
+ commitHash:
17
+ type: string
18
+ description: Final commit SHA after push
19
+ ciStatus:
20
+ $ref: CiStatus.yaml
21
+ description: CI pipeline status
22
+ required:
23
+ - url
24
+ - number
25
+ - status
26
+ description: Pull request tracking data for a feature
@@ -0,0 +1,18 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: QuestionOption.yaml
3
+ type: object
4
+ properties:
5
+ option:
6
+ type: string
7
+ description: The option text describing the potential approach or answer
8
+ description:
9
+ type: string
10
+ description: Description explaining this option's benefits and approach
11
+ selected:
12
+ type: boolean
13
+ description: Whether this option was the one ultimately selected
14
+ required:
15
+ - option
16
+ - description
17
+ - selected
18
+ description: Option for resolving an open question
@@ -0,0 +1,14 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: QuestionSelectionChange.yaml
3
+ type: object
4
+ properties:
5
+ questionId:
6
+ type: string
7
+ description: ID of the open question being changed (the question text)
8
+ selectedOption:
9
+ type: string
10
+ description: The option text that the user selected
11
+ required:
12
+ - questionId
13
+ - selectedOption
14
+ description: Change to a question's selected option during PRD review
@@ -0,0 +1,21 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: RejectionFeedbackEntry.yaml
3
+ type: object
4
+ properties:
5
+ iteration:
6
+ type: integer
7
+ minimum: -2147483648
8
+ maximum: 2147483647
9
+ description: Iteration number (1-based)
10
+ message:
11
+ type: string
12
+ description: User's feedback message explaining what needs to change
13
+ timestamp:
14
+ type: string
15
+ format: date-time
16
+ description: When the rejection occurred
17
+ required:
18
+ - iteration
19
+ - message
20
+ - timestamp
21
+ description: Rejection feedback entry for PRD iteration tracking
@@ -0,0 +1,26 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: Requirement.yaml
3
+ type: object
4
+ properties:
5
+ slug:
6
+ type: string
7
+ description: URL-friendly short identifier for the requirement
8
+ userQuery:
9
+ type: string
10
+ description: The original user query that generated this requirement
11
+ type:
12
+ $ref: RequirementType.yaml
13
+ description: Classification type of the requirement (Functional or NonFunctional)
14
+ researches:
15
+ type: array
16
+ items:
17
+ $ref: Research.yaml
18
+ description: Research activities conducted to clarify or validate this requirement
19
+ required:
20
+ - slug
21
+ - userQuery
22
+ - type
23
+ - researches
24
+ allOf:
25
+ - $ref: BaseEntity.yaml
26
+ description: A user or inferred requirement attached to a feature
@@ -0,0 +1,7 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: RequirementType.yaml
3
+ type: string
4
+ enum:
5
+ - Functional
6
+ - NonFunctional
7
+ description: Types of requirements based on their nature
@@ -0,0 +1,26 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: Research.yaml
3
+ type: object
4
+ properties:
5
+ topic:
6
+ type: string
7
+ description: The topic or subject being researched
8
+ state:
9
+ $ref: ResearchState.yaml
10
+ description: Current state of the research activity (NotStarted, Running, Finished)
11
+ summary:
12
+ type: string
13
+ description: Summary of research findings and recommendations
14
+ artifacts:
15
+ type: array
16
+ items:
17
+ $ref: Artifact.yaml
18
+ description: Artifacts produced during the research activity
19
+ required:
20
+ - topic
21
+ - state
22
+ - summary
23
+ - artifacts
24
+ allOf:
25
+ - $ref: BaseEntity.yaml
26
+ description: A research topic exploration for gathering technical information
@@ -0,0 +1,14 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: ResearchArtifact.yaml
3
+ type: object
4
+ properties:
5
+ decisions:
6
+ type: array
7
+ items:
8
+ $ref: TechDecision.yaml
9
+ description: Structured technology decisions with rationale
10
+ required:
11
+ - decisions
12
+ allOf:
13
+ - $ref: SpecArtifactBase.yaml
14
+ description: Research artifact documenting technical analysis and decisions
@@ -0,0 +1,14 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: ResearchSpec.yaml
3
+ type: object
4
+ properties:
5
+ decisions:
6
+ type: array
7
+ items:
8
+ $ref: TechDecision.yaml
9
+ description: Structured technology decisions with rationale
10
+ required:
11
+ - decisions
12
+ allOf:
13
+ - $ref: SpecArtifactBase.yaml
14
+ description: Research artifact documenting technical analysis and decisions
@@ -0,0 +1,8 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: ResearchState.yaml
3
+ type: string
4
+ enum:
5
+ - NotStarted
6
+ - Running
7
+ - Finished
8
+ description: States for research activities during analysis
@@ -0,0 +1,24 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: ReviewQuestion.yaml
3
+ type: object
4
+ properties:
5
+ question:
6
+ type: string
7
+ description: The question text
8
+ options:
9
+ type: array
10
+ items:
11
+ $ref: QuestionOption.yaml
12
+ description: Available options with selection state
13
+ selectedOption:
14
+ type: string
15
+ description: The option text that was selected by the user
16
+ changed:
17
+ type: boolean
18
+ description: Whether the user changed the selection from the AI default
19
+ required:
20
+ - question
21
+ - options
22
+ - selectedOption
23
+ - changed
24
+ description: A single question with its options as presented in the review TUI
@@ -0,0 +1,13 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SdlcLifecycle.yaml
3
+ type: string
4
+ enum:
5
+ - Started
6
+ - Analyze
7
+ - Requirements
8
+ - Research
9
+ - Planning
10
+ - Implementation
11
+ - Review
12
+ - Maintain
13
+ description: Software Development Lifecycle stages for feature progression
@@ -0,0 +1,36 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: Settings.yaml
3
+ type: object
4
+ properties:
5
+ models:
6
+ $ref: ModelConfiguration.yaml
7
+ description: AI model configuration for different agents
8
+ user:
9
+ $ref: UserProfile.yaml
10
+ description: User profile information
11
+ environment:
12
+ $ref: EnvironmentConfig.yaml
13
+ description: Environment and tooling preferences
14
+ system:
15
+ $ref: SystemConfig.yaml
16
+ description: System-level parameters
17
+ agent:
18
+ $ref: AgentConfig.yaml
19
+ description: AI coding agent selection and authentication
20
+ notifications:
21
+ $ref: NotificationPreferences.yaml
22
+ description: Notification preferences for agent lifecycle events
23
+ workflow:
24
+ $ref: WorkflowConfig.yaml
25
+ description: Global workflow configuration defaults
26
+ required:
27
+ - models
28
+ - user
29
+ - environment
30
+ - system
31
+ - agent
32
+ - notifications
33
+ - workflow
34
+ allOf:
35
+ - $ref: BaseEntity.yaml
36
+ description: Global Shep platform settings (singleton)
@@ -0,0 +1,11 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SoftDeletableEntity.yaml
3
+ type: object
4
+ properties:
5
+ deletedAt:
6
+ type: string
7
+ format: date-time
8
+ description: Timestamp when this entity was soft-deleted (null if not deleted)
9
+ allOf:
10
+ - $ref: BaseEntity.yaml
11
+ description: Entity that supports soft deletion with a deletedAt timestamp
@@ -0,0 +1,44 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SpecArtifactBase.yaml
3
+ type: object
4
+ properties:
5
+ name:
6
+ type: string
7
+ description: Artifact title / feature name
8
+ summary:
9
+ type: string
10
+ description: Short description of the artifact's purpose
11
+ content:
12
+ type: string
13
+ description: Raw Markdown body containing the human-written spec content
14
+ technologies:
15
+ type: array
16
+ items:
17
+ type: string
18
+ description: Key technologies mentioned or evaluated in this artifact
19
+ relatedFeatures:
20
+ type: array
21
+ items:
22
+ type: string
23
+ description: References to other spec IDs (e.g., '008-agent-configuration')
24
+ relatedLinks:
25
+ type: array
26
+ items:
27
+ type: string
28
+ description: URLs to external documentation, references, or comparisons
29
+ openQuestions:
30
+ type: array
31
+ items:
32
+ $ref: OpenQuestion.yaml
33
+ description: Structured open questions for validation gate checks
34
+ required:
35
+ - name
36
+ - summary
37
+ - content
38
+ - technologies
39
+ - relatedFeatures
40
+ - relatedLinks
41
+ - openQuestions
42
+ allOf:
43
+ - $ref: BaseEntity.yaml
44
+ description: Base entity for spec artifacts with common metadata fields
@@ -0,0 +1,45 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SpecTask.yaml
3
+ type: object
4
+ properties:
5
+ id:
6
+ type: string
7
+ description: Unique identifier for this task (e.g., 'task-1')
8
+ phaseId:
9
+ type: string
10
+ description: ID of the phase this task belongs to (e.g., 'phase-1')
11
+ title:
12
+ type: string
13
+ description: Task title or name
14
+ description:
15
+ type: string
16
+ description: Detailed description of what this task accomplishes
17
+ state:
18
+ $ref: TaskState.yaml
19
+ description: Current state of the task
20
+ dependencies:
21
+ type: array
22
+ items:
23
+ type: string
24
+ description: IDs of other SpecTasks that must complete before this task starts
25
+ acceptanceCriteria:
26
+ type: array
27
+ items:
28
+ type: string
29
+ description: List of acceptance criteria that define task completion
30
+ tdd:
31
+ $ref: TddCycle.yaml
32
+ description: TDD cycle definition for this task (if applicable)
33
+ estimatedEffort:
34
+ type: string
35
+ description: Estimated effort (e.g., '2 hours', '1 day')
36
+ required:
37
+ - id
38
+ - phaseId
39
+ - title
40
+ - description
41
+ - state
42
+ - dependencies
43
+ - acceptanceCriteria
44
+ - estimatedEffort
45
+ description: Task definition within a spec's task breakdown
@@ -0,0 +1,16 @@
1
+ $schema: https://json-schema.org/draft/2020-12/schema
2
+ $id: SystemConfig.yaml
3
+ type: object
4
+ properties:
5
+ autoUpdate:
6
+ type: boolean
7
+ default: true
8
+ description: CLI auto-update preference
9
+ logLevel:
10
+ type: string
11
+ default: info
12
+ description: Log level for CLI output
13
+ required:
14
+ - autoUpdate
15
+ - logLevel
16
+ description: System configuration