prjct-cli 0.20.0 → 0.20.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (226) hide show
  1. package/CHANGELOG.md +24 -6
  2. package/CLAUDE.md +56 -15
  3. package/README.md +5 -6
  4. package/bin/prjct +59 -42
  5. package/bin/prjct.ts +60 -0
  6. package/core/__tests__/agentic/memory-system.test.ts +18 -3
  7. package/core/__tests__/agentic/plan-mode.test.ts +55 -26
  8. package/core/__tests__/agentic/prompt-builder.test.ts +6 -6
  9. package/core/__tests__/utils/project-commands.test.ts +72 -0
  10. package/core/agentic/agent-router.ts +3 -12
  11. package/core/agentic/command-executor.ts +372 -3
  12. package/core/agentic/context-builder.ts +7 -27
  13. package/core/agentic/ground-truth.ts +604 -5
  14. package/core/agentic/index.ts +180 -0
  15. package/core/agentic/loop-detector.ts +418 -4
  16. package/core/agentic/memory-system.ts +857 -3
  17. package/core/agentic/plan-mode.ts +491 -4
  18. package/core/agentic/prompt-builder.ts +44 -65
  19. package/core/agentic/services.ts +13 -5
  20. package/core/agentic/skill-loader.ts +112 -0
  21. package/core/agentic/smart-context.ts +37 -122
  22. package/core/agentic/template-loader.ts +79 -122
  23. package/core/agentic/tool-registry.ts +5 -11
  24. package/core/agents/index.ts +1 -1
  25. package/core/agents/performance.ts +4 -2
  26. package/core/bus/bus.ts +262 -0
  27. package/core/bus/index.ts +3 -313
  28. package/core/commands/analysis.ts +5 -5
  29. package/core/commands/analytics.ts +11 -11
  30. package/core/commands/base.ts +33 -209
  31. package/core/commands/cleanup.ts +148 -0
  32. package/core/commands/command-data.ts +346 -0
  33. package/core/commands/commands.ts +216 -0
  34. package/core/commands/design.ts +83 -0
  35. package/core/commands/index.ts +13 -207
  36. package/core/commands/maintenance.ts +52 -473
  37. package/core/commands/planning.ts +3 -3
  38. package/core/commands/register.ts +104 -0
  39. package/core/commands/registry.ts +441 -0
  40. package/core/commands/setup.ts +25 -9
  41. package/core/commands/shipping.ts +48 -11
  42. package/core/commands/snapshots.ts +299 -0
  43. package/core/commands/workflow.ts +2 -2
  44. package/core/constants/index.ts +254 -4
  45. package/core/domain/agent-loader.ts +5 -6
  46. package/core/domain/task-stack.ts +555 -4
  47. package/core/errors.ts +127 -1
  48. package/core/events/events.ts +87 -0
  49. package/core/events/index.ts +4 -138
  50. package/core/index.ts +15 -23
  51. package/core/infrastructure/agent-detector.ts +126 -201
  52. package/core/infrastructure/author-detector.ts +99 -171
  53. package/core/infrastructure/command-installer.ts +476 -4
  54. package/core/infrastructure/config-manager.ts +41 -37
  55. package/core/infrastructure/path-manager.ts +59 -9
  56. package/core/infrastructure/permission-manager.ts +286 -0
  57. package/core/outcomes/analyzer.ts +7 -41
  58. package/core/outcomes/index.ts +1 -1
  59. package/core/outcomes/recorder.ts +1 -1
  60. package/core/{plugins → plugin/builtin}/webhook.ts +6 -22
  61. package/core/plugin/loader.ts +5 -5
  62. package/core/plugin/registry.ts +2 -2
  63. package/core/schemas/ideas.ts +85 -54
  64. package/core/schemas/index.ts +14 -33
  65. package/core/schemas/permissions.ts +177 -0
  66. package/core/schemas/project.ts +39 -12
  67. package/core/schemas/roadmap.ts +94 -59
  68. package/core/schemas/schemas.ts +39 -0
  69. package/core/schemas/shipped.ts +87 -60
  70. package/core/schemas/state.ts +110 -70
  71. package/core/server/index.ts +21 -0
  72. package/core/server/routes.ts +165 -0
  73. package/core/server/server.ts +136 -0
  74. package/core/server/sse.ts +135 -0
  75. package/core/services/agent-service.ts +170 -0
  76. package/core/services/breakdown-service.ts +126 -0
  77. package/core/services/index.ts +21 -0
  78. package/core/services/memory-service.ts +108 -0
  79. package/core/services/project-service.ts +146 -0
  80. package/core/services/skill-service.ts +253 -0
  81. package/core/session/compaction.ts +257 -0
  82. package/core/session/index.ts +20 -8
  83. package/core/{infrastructure/session-manager/migration.ts → session/log-migration.ts} +9 -9
  84. package/core/{infrastructure/session-manager/session-manager.ts → session/session-log-manager.ts} +27 -26
  85. package/core/session/{session-manager.ts → task-session-manager.ts} +7 -4
  86. package/core/session/utils.ts +1 -1
  87. package/core/storage/ideas-storage.ts +10 -26
  88. package/core/storage/index.ts +14 -162
  89. package/core/storage/queue-storage.ts +13 -11
  90. package/core/storage/shipped-storage.ts +4 -17
  91. package/core/storage/state-storage.ts +35 -43
  92. package/core/storage/storage-manager.ts +42 -52
  93. package/core/storage/storage.ts +160 -0
  94. package/core/sync/auth-config.ts +1 -8
  95. package/core/sync/index.ts +17 -10
  96. package/core/sync/oauth-handler.ts +1 -6
  97. package/core/sync/sync-client.ts +6 -34
  98. package/core/sync/sync-manager.ts +11 -40
  99. package/core/types/agentic.ts +577 -0
  100. package/core/types/agents.ts +145 -0
  101. package/core/types/bus.ts +82 -0
  102. package/core/types/commands.ts +366 -0
  103. package/core/types/config.ts +66 -0
  104. package/core/types/core.ts +96 -0
  105. package/core/types/domain.ts +71 -0
  106. package/core/types/events.ts +42 -0
  107. package/core/types/fs.ts +56 -0
  108. package/core/types/index.ts +387 -500
  109. package/core/types/infrastructure.ts +196 -0
  110. package/core/{agentic/memory-system/types.ts → types/memory.ts} +33 -8
  111. package/core/{outcomes/types.ts → types/outcomes.ts} +53 -8
  112. package/core/types/plugin.ts +25 -0
  113. package/core/types/server.ts +54 -0
  114. package/core/types/services.ts +65 -0
  115. package/core/types/session.ts +135 -0
  116. package/core/types/storage.ts +148 -0
  117. package/core/types/sync.ts +121 -0
  118. package/core/types/task.ts +72 -0
  119. package/core/types/template.ts +24 -0
  120. package/core/types/utils.ts +90 -0
  121. package/core/utils/cache.ts +195 -0
  122. package/core/utils/collection-filters.ts +245 -0
  123. package/core/utils/date-helper.ts +1 -5
  124. package/core/utils/file-helper.ts +20 -10
  125. package/core/utils/jsonl-helper.ts +5 -8
  126. package/core/utils/markdown-builder.ts +277 -0
  127. package/core/utils/project-commands.ts +132 -0
  128. package/core/utils/runtime.ts +119 -0
  129. package/dist/bin/prjct.mjs +12568 -0
  130. package/package.json +13 -8
  131. package/scripts/build.js +106 -0
  132. package/scripts/postinstall.js +50 -8
  133. package/templates/agentic/subagent-generation.md +1 -1
  134. package/templates/commands/serve.md +118 -0
  135. package/templates/commands/ship.md +13 -2
  136. package/templates/commands/skill.md +110 -0
  137. package/templates/commands/sync.md +1 -1
  138. package/templates/commands/test.md +23 -4
  139. package/templates/permissions/default.jsonc +60 -0
  140. package/templates/permissions/permissive.jsonc +49 -0
  141. package/templates/permissions/strict.jsonc +62 -0
  142. package/templates/skills/code-review.md +47 -0
  143. package/templates/skills/debug.md +61 -0
  144. package/templates/skills/refactor.md +47 -0
  145. package/templates/subagents/domain/devops.md +1 -1
  146. package/templates/subagents/domain/testing.md +6 -10
  147. package/templates/subagents/workflow/prjct-shipper.md +16 -7
  148. package/templates/tools/bash.txt +22 -0
  149. package/templates/tools/edit.txt +18 -0
  150. package/templates/tools/glob.txt +19 -0
  151. package/templates/tools/grep.txt +21 -0
  152. package/templates/tools/read.txt +14 -0
  153. package/templates/tools/task.txt +20 -0
  154. package/templates/tools/webfetch.txt +16 -0
  155. package/templates/tools/websearch.txt +18 -0
  156. package/templates/tools/write.txt +17 -0
  157. package/core/agentic/command-executor/command-executor.ts +0 -312
  158. package/core/agentic/command-executor/index.ts +0 -16
  159. package/core/agentic/command-executor/status-signal.ts +0 -38
  160. package/core/agentic/command-executor/types.ts +0 -79
  161. package/core/agentic/ground-truth/index.ts +0 -76
  162. package/core/agentic/ground-truth/types.ts +0 -33
  163. package/core/agentic/ground-truth/utils.ts +0 -48
  164. package/core/agentic/ground-truth/verifiers/analyze.ts +0 -54
  165. package/core/agentic/ground-truth/verifiers/done.ts +0 -75
  166. package/core/agentic/ground-truth/verifiers/feature.ts +0 -70
  167. package/core/agentic/ground-truth/verifiers/index.ts +0 -37
  168. package/core/agentic/ground-truth/verifiers/init.ts +0 -52
  169. package/core/agentic/ground-truth/verifiers/now.ts +0 -57
  170. package/core/agentic/ground-truth/verifiers/ship.ts +0 -85
  171. package/core/agentic/ground-truth/verifiers/spec.ts +0 -45
  172. package/core/agentic/ground-truth/verifiers/sync.ts +0 -47
  173. package/core/agentic/ground-truth/verifiers.ts +0 -6
  174. package/core/agentic/loop-detector/error-analysis.ts +0 -97
  175. package/core/agentic/loop-detector/hallucination.ts +0 -71
  176. package/core/agentic/loop-detector/index.ts +0 -41
  177. package/core/agentic/loop-detector/loop-detector.ts +0 -222
  178. package/core/agentic/loop-detector/types.ts +0 -66
  179. package/core/agentic/memory-system/history.ts +0 -53
  180. package/core/agentic/memory-system/index.ts +0 -192
  181. package/core/agentic/memory-system/patterns.ts +0 -156
  182. package/core/agentic/memory-system/semantic-memories.ts +0 -278
  183. package/core/agentic/memory-system/session.ts +0 -21
  184. package/core/agentic/plan-mode/approval.ts +0 -57
  185. package/core/agentic/plan-mode/constants.ts +0 -44
  186. package/core/agentic/plan-mode/index.ts +0 -28
  187. package/core/agentic/plan-mode/plan-mode.ts +0 -407
  188. package/core/agentic/plan-mode/types.ts +0 -193
  189. package/core/agents/types.ts +0 -126
  190. package/core/command-registry/categories.ts +0 -23
  191. package/core/command-registry/commands.ts +0 -15
  192. package/core/command-registry/core-commands.ts +0 -344
  193. package/core/command-registry/index.ts +0 -158
  194. package/core/command-registry/optional-commands.ts +0 -163
  195. package/core/command-registry/setup-commands.ts +0 -83
  196. package/core/command-registry/types.ts +0 -59
  197. package/core/command-registry.ts +0 -9
  198. package/core/commands/types.ts +0 -185
  199. package/core/commands.ts +0 -11
  200. package/core/constants/formats.ts +0 -187
  201. package/core/context-sync.ts +0 -18
  202. package/core/data/index.ts +0 -27
  203. package/core/data/md-base-manager.ts +0 -203
  204. package/core/data/md-ideas-manager.ts +0 -155
  205. package/core/data/md-queue-manager.ts +0 -180
  206. package/core/data/md-shipped-manager.ts +0 -90
  207. package/core/data/md-state-manager.ts +0 -137
  208. package/core/domain/task-stack/index.ts +0 -19
  209. package/core/domain/task-stack/parser.ts +0 -86
  210. package/core/domain/task-stack/storage.ts +0 -123
  211. package/core/domain/task-stack/task-stack.ts +0 -340
  212. package/core/domain/task-stack/types.ts +0 -51
  213. package/core/infrastructure/command-installer/command-installer.ts +0 -327
  214. package/core/infrastructure/command-installer/global-config.ts +0 -136
  215. package/core/infrastructure/command-installer/index.ts +0 -25
  216. package/core/infrastructure/command-installer/types.ts +0 -41
  217. package/core/infrastructure/session-manager/index.ts +0 -23
  218. package/core/infrastructure/session-manager/types.ts +0 -45
  219. package/core/infrastructure/session-manager.ts +0 -8
  220. package/core/serializers/ideas-serializer.ts +0 -187
  221. package/core/serializers/index.ts +0 -36
  222. package/core/serializers/queue-serializer.ts +0 -210
  223. package/core/serializers/shipped-serializer.ts +0 -108
  224. package/core/serializers/state-serializer.ts +0 -136
  225. package/core/session/types.ts +0 -29
  226. /package/core/infrastructure/{agents/claude-agent.ts → claude-agent.ts} +0 -0
@@ -1,83 +0,0 @@
1
- /**
2
- * Setup Commands
3
- * Installation and configuration (not for daily use).
4
- */
5
-
6
- import type { Command } from './types'
7
-
8
- export const SETUP_COMMANDS: Command[] = [
9
- {
10
- name: 'start',
11
- category: 'setup',
12
- description: 'First-time setup (install commands to editors)',
13
- usage: {
14
- claude: null,
15
- terminal: 'prjct start',
16
- },
17
- params: null,
18
- implemented: true,
19
- hasTemplate: false,
20
- requiresInit: false,
21
- blockingRules: null,
22
- },
23
-
24
- {
25
- name: 'setup',
26
- category: 'setup',
27
- description: 'Reconfigure editor installations',
28
- usage: {
29
- claude: '/p:setup',
30
- terminal: 'prjct setup [--force] [--editor <name>]',
31
- },
32
- params: '[--force] [--editor <name>]',
33
- implemented: true,
34
- hasTemplate: true,
35
- requiresInit: false,
36
- blockingRules: null,
37
- },
38
-
39
- {
40
- name: 'migrate',
41
- category: 'setup',
42
- description: 'Migrate project to UUID format + sync',
43
- usage: {
44
- claude: '/p:migrate',
45
- terminal: null, // Claude-only
46
- },
47
- params: null,
48
- implemented: true,
49
- hasTemplate: true,
50
- requiresInit: true,
51
- blockingRules: null,
52
- },
53
-
54
- {
55
- name: 'migrate-all',
56
- category: 'setup',
57
- description: 'Migrate all legacy projects to UUID format',
58
- usage: {
59
- claude: '/p:migrate-all',
60
- terminal: 'prjct migrate-all [--deep-scan] [--dry-run]',
61
- },
62
- params: '[--deep-scan] [--dry-run]',
63
- implemented: true,
64
- hasTemplate: true,
65
- requiresInit: false,
66
- blockingRules: null,
67
- },
68
-
69
- {
70
- name: 'auth',
71
- category: 'setup',
72
- description: 'Manage cloud authentication',
73
- usage: {
74
- claude: '/p:auth [login|logout|status]',
75
- terminal: 'prjct auth [login|logout|status]',
76
- },
77
- params: '[login|logout|status]',
78
- implemented: true,
79
- hasTemplate: true,
80
- requiresInit: false,
81
- blockingRules: null,
82
- },
83
- ]
@@ -1,59 +0,0 @@
1
- /**
2
- * Command Registry Types
3
- */
4
-
5
- export interface CommandUsage {
6
- claude: string | null
7
- terminal: string | null
8
- }
9
-
10
- export interface BlockingRules {
11
- check: string
12
- message: string
13
- }
14
-
15
- export interface Command {
16
- name: string
17
- category: string
18
- description: string
19
- usage: CommandUsage
20
- params: string | null
21
- implemented: boolean
22
- hasTemplate: boolean
23
- requiresInit: boolean
24
- blockingRules: BlockingRules | null
25
- features?: string[]
26
- isOptional?: boolean
27
- deprecated?: boolean
28
- replacedBy?: string
29
- }
30
-
31
- export interface CategoryInfo {
32
- title: string
33
- description: string
34
- order: number
35
- }
36
-
37
- export interface Categories {
38
- [key: string]: CategoryInfo
39
- }
40
-
41
- export interface RegistryStats {
42
- total: number
43
- core: number
44
- optional: number
45
- setup: number
46
- implemented: number
47
- withTemplates: number
48
- claudeOnly: number
49
- terminalOnly: number
50
- both: number
51
- requiresInit: number
52
- withBlockingRules: number
53
- byCategory: Record<string, number>
54
- }
55
-
56
- export interface ValidationResult {
57
- valid: boolean
58
- issues: string[]
59
- }
@@ -1,9 +0,0 @@
1
- /**
2
- * Command Registry
3
- * Re-exports from command-registry/index.ts for backwards compatibility.
4
- */
5
-
6
- import registry from './command-registry/index'
7
- export default registry
8
- export type { Command, CategoryInfo, Categories, RegistryStats, ValidationResult } from './command-registry/index'
9
- export { COMMANDS, CATEGORIES } from './command-registry/index'
@@ -1,185 +0,0 @@
1
- /**
2
- * Type definitions for Commands module
3
- *
4
- * Re-exports common types from core/types and defines command-specific types.
5
- */
6
-
7
- // Re-export commonly used types from core/types
8
- export type {
9
- ContextPaths as Paths,
10
- ProjectContext as Context,
11
- CommandParams,
12
- CommandResult as BaseCommandResult,
13
- } from '../types'
14
-
15
- /**
16
- * Command execution result with optional extra data.
17
- * Extends BaseCommandResult with command-specific fields.
18
- */
19
- export interface CommandResult {
20
- success: boolean
21
- message?: string
22
- error?: string
23
- /** Duration of command execution */
24
- duration?: string
25
- /** Task that was affected */
26
- task?: string
27
- /** Feature that was affected */
28
- feature?: string
29
- /** Files that were modified */
30
- filesModified?: string[]
31
- /** Allow any additional properties for command-specific data */
32
- [key: string]: unknown
33
- }
34
-
35
- // Agent types
36
- export interface AgentInfo {
37
- isSupported: boolean
38
- type: string
39
- }
40
-
41
- export interface Author {
42
- name: string | null
43
- email: string | null
44
- github?: string | null
45
- }
46
-
47
- export interface AgentAssignmentResult {
48
- agent: { name: string; domain?: string } | null
49
- routing: {
50
- confidence: number
51
- reason: string
52
- availableAgents?: string[]
53
- }
54
- _agenticNote?: string
55
- }
56
-
57
- // Analysis types
58
- export interface ComplexityResult {
59
- level: 'low' | 'medium' | 'high'
60
- hours: number
61
- type: string
62
- }
63
-
64
- export interface HealthResult {
65
- score: number
66
- message: string
67
- }
68
-
69
- /**
70
- * Options for the design command.
71
- */
72
- export interface DesignOptions {
73
- /** Type of design */
74
- type?: 'architecture' | 'api' | 'component' | 'database' | 'flow'
75
- /** Output format */
76
- format?: 'markdown' | 'mermaid'
77
- }
78
-
79
- /**
80
- * Options for the cleanup command.
81
- */
82
- export interface CleanupOptions {
83
- /** Clean up memory/history */
84
- memory?: boolean
85
- /** Type of cleanup */
86
- type?: 'all' | 'memory' | 'sessions' | 'cache'
87
- /** Dry run without making changes */
88
- dryRun?: boolean
89
- }
90
-
91
- /**
92
- * Options for the setup command.
93
- */
94
- export interface SetupOptions {
95
- /** Force re-setup even if already configured */
96
- force?: boolean
97
- /** Skip interactive prompts */
98
- nonInteractive?: boolean
99
- }
100
-
101
- /**
102
- * Options for the migrate-all command.
103
- */
104
- export interface MigrateOptions {
105
- /** Perform deep scan for legacy installations */
106
- deepScan?: boolean
107
- /** Remove legacy installations after migration */
108
- removeLegacy?: boolean
109
- /** Dry run without making changes */
110
- dryRun?: boolean
111
- }
112
-
113
- /**
114
- * Options for the analyze command.
115
- */
116
- export interface AnalyzeOptions {
117
- /** Force re-analysis even if cached */
118
- force?: boolean
119
- /** Analysis depth */
120
- depth?: 'quick' | 'normal' | 'deep'
121
- }
122
-
123
- /**
124
- * Result from project migration.
125
- */
126
- export interface MigrationResult {
127
- success: boolean
128
- projectId: string | null
129
- filesCopied?: number
130
- layerCounts: LayerCounts
131
- config: MigrationConfig | null
132
- author: Author | null
133
- issues: string[]
134
- dryRun: boolean
135
- legacyRemoved?: boolean
136
- legacyCleaned?: boolean
137
- }
138
-
139
- export interface LayerCounts {
140
- core: number
141
- progress: number
142
- planning: number
143
- analysis: number
144
- memory: number
145
- other: number
146
- }
147
-
148
- export interface MigrationConfig {
149
- projectId: string
150
- version: string
151
- migratedAt: string
152
- }
153
-
154
- // Type-safe command method names (for dynamic invocation)
155
- export type CommandMethodName =
156
- | 'work' | 'now' | 'done' | 'next' | 'pause' | 'resume'
157
- | 'init' | 'feature' | 'bug' | 'idea' | 'spec'
158
- | 'ship'
159
- | 'dash' | 'help'
160
- | 'cleanup' | 'design' | 'recover' | 'undo' | 'redo' | 'history'
161
- | 'analyze' | 'sync'
162
- | 'start' | 'setup' | 'migrateAll'
163
-
164
- // Function signature for standard command methods
165
- export type StandardCommandFn = (param: string | null, projectPath?: string) => Promise<CommandResult>
166
-
167
- /**
168
- * Global configuration for prjct.
169
- */
170
- export interface GlobalConfig {
171
- projectId: string
172
- projectPath?: string
173
- authors: AuthorEntry[]
174
- version: string
175
- created?: string
176
- lastSync: string
177
- }
178
-
179
- export interface AuthorEntry {
180
- name: string
181
- email: string
182
- github: string
183
- firstContribution?: string
184
- lastActivity?: string
185
- }
package/core/commands.ts DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * Agentic Commands Handler for prjct CLI
3
- *
4
- * Re-exports from modular commands/ directory.
5
- * See commands/index.ts for implementation.
6
- */
7
-
8
- import instance, { PrjctCommands } from './commands/index'
9
-
10
- export default instance
11
- export { PrjctCommands }
@@ -1,187 +0,0 @@
1
- /**
2
- * File Format Constants
3
- *
4
- * Single source of truth for all file patterns and formats used in prjct.
5
- * Use these constants instead of hardcoded strings.
6
- *
7
- * @example
8
- * ```typescript
9
- * import { FORMATS, STATUS } from '../constants/formats'
10
- *
11
- * // Instead of:
12
- * const nowContent = `# NOW\n\n**${task}**`
13
- *
14
- * // Use:
15
- * const nowContent = FORMATS.NOW.header(task)
16
- * ```
17
- */
18
-
19
- /**
20
- * NOW file format patterns.
21
- */
22
- export const NOW = {
23
- /** Header marker for NOW file */
24
- HEADER: '# NOW',
25
-
26
- /** Pattern to extract task from NOW content */
27
- TASK_PATTERN: /\*\*(.+?)\*\*/,
28
-
29
- /** Generate NOW file content */
30
- content: (task: string, startedAt: string, agent?: string, confidence?: number): string => {
31
- const lines = [
32
- '# NOW',
33
- '',
34
- `**${task}**`,
35
- '',
36
- `Started: ${startedAt}`,
37
- ]
38
- if (agent) {
39
- lines.push(`Agent: ${agent}${confidence ? ` (${Math.round(confidence * 100)}% confidence)` : ''}`)
40
- }
41
- return lines.join('\n') + '\n'
42
- },
43
-
44
- /** Extract task from NOW content */
45
- extractTask: (content: string): string | null => {
46
- const match = content.match(NOW.TASK_PATTERN)
47
- return match ? match[1] : null
48
- },
49
- } as const
50
-
51
- /**
52
- * SHIPPED file format patterns.
53
- */
54
- export const SHIPPED = {
55
- /** Header marker for SHIPPED file */
56
- HEADER: '# SHIPPED 🚀',
57
-
58
- /** Generate ship entry */
59
- entry: (feature: string, date: string, duration?: string): string => {
60
- const lines = [
61
- `## ${feature}`,
62
- '',
63
- `Shipped: ${date}`,
64
- ]
65
- if (duration) {
66
- lines.push(`Duration: ${duration}`)
67
- }
68
- return lines.join('\n') + '\n\n'
69
- },
70
- } as const
71
-
72
- /**
73
- * NEXT file format patterns.
74
- */
75
- export const NEXT = {
76
- /** Header marker for NEXT file */
77
- HEADER: '# NEXT',
78
-
79
- /** Pattern for task entries */
80
- TASK_PATTERN: /^[-*]\s+\[([x ])\]\s+(.+)$/gm,
81
-
82
- /** Generate task entry */
83
- entry: (task: string, completed: boolean = false): string => {
84
- return `- [${completed ? 'x' : ' '}] ${task}\n`
85
- },
86
- } as const
87
-
88
- /**
89
- * IDEAS file format patterns.
90
- */
91
- export const IDEAS = {
92
- /** Header marker for IDEAS file */
93
- HEADER: '# IDEAS 💡',
94
-
95
- /** Generate idea entry */
96
- entry: (idea: string, date: string): string => {
97
- return `- ${idea} _(${date})_\n`
98
- },
99
- } as const
100
-
101
- /**
102
- * ROADMAP file format patterns.
103
- */
104
- export const ROADMAP = {
105
- /** Header marker for ROADMAP file */
106
- HEADER: '# ROADMAP 🗺️',
107
-
108
- /** Status markers */
109
- STATUS: {
110
- PLANNED: '📋 Planned',
111
- IN_PROGRESS: '🚧 In Progress',
112
- COMPLETED: '✅ Completed',
113
- BLOCKED: '🚫 Blocked',
114
- },
115
-
116
- /** Generate feature entry */
117
- entry: (feature: string, status: keyof typeof ROADMAP.STATUS, tasks?: string[]): string => {
118
- const lines = [
119
- `## ${feature}`,
120
- '',
121
- `Status: ${ROADMAP.STATUS[status]}`,
122
- ]
123
- if (tasks && tasks.length > 0) {
124
- lines.push('', '### Tasks', '')
125
- tasks.forEach(task => lines.push(`- [ ] ${task}`))
126
- }
127
- return lines.join('\n') + '\n\n'
128
- },
129
- } as const
130
-
131
- /**
132
- * Session file paths.
133
- */
134
- export const SESSION = {
135
- /** Date format for session directories */
136
- DATE_FORMAT: 'YYYY-MM-DD',
137
-
138
- /** Generate session path */
139
- path: (year: string, month: string, day: string): string => {
140
- return `sessions/${year}-${month}/${year}-${month}-${day}`
141
- },
142
-
143
- /** Session metadata filename */
144
- METADATA_FILE: 'session-meta.json',
145
-
146
- /** Context log filename */
147
- CONTEXT_FILE: 'context.jsonl',
148
- } as const
149
-
150
- /**
151
- * Status values used throughout prjct.
152
- */
153
- export const STATUS = {
154
- PENDING: 'pending',
155
- IN_PROGRESS: 'in_progress',
156
- COMPLETED: 'completed',
157
- BLOCKED: 'blocked',
158
- PAUSED: 'paused',
159
- } as const
160
-
161
- export type Status = typeof STATUS[keyof typeof STATUS]
162
-
163
- /**
164
- * Priority levels.
165
- */
166
- export const PRIORITY = {
167
- LOW: 'low',
168
- MEDIUM: 'medium',
169
- HIGH: 'high',
170
- CRITICAL: 'critical',
171
- } as const
172
-
173
- export type Priority = typeof PRIORITY[keyof typeof PRIORITY]
174
-
175
- /**
176
- * Combined exports for easy import.
177
- */
178
- export const FORMATS = {
179
- NOW,
180
- SHIPPED,
181
- NEXT,
182
- IDEAS,
183
- ROADMAP,
184
- SESSION,
185
- STATUS,
186
- PRIORITY,
187
- } as const
@@ -1,18 +0,0 @@
1
- /**
2
- * Context Sync
3
- *
4
- * Wrapper that generates context MD files from JSON data.
5
- * Uses the context generator to create CLAUDE.md, now.md, queue.md, summary.md
6
- */
7
-
8
- import { generateContext } from './context/generator'
9
-
10
- /**
11
- * Generate local context files for Claude
12
- */
13
- async function generateLocalContext(projectPath: string, projectId: string): Promise<void> {
14
- await generateContext(projectId, projectPath)
15
- }
16
-
17
- export { generateLocalContext }
18
- export default { generateLocalContext }
@@ -1,27 +0,0 @@
1
- /**
2
- * Data Module
3
- *
4
- * MD-First Architecture: MD files are the source of truth.
5
- */
6
-
7
- // MD managers
8
- import { mdStateManager } from './md-state-manager'
9
- import { mdQueueManager } from './md-queue-manager'
10
- import { mdShippedManager } from './md-shipped-manager'
11
- import { mdIdeasManager } from './md-ideas-manager'
12
-
13
- // Base classes
14
- export { MdBaseManager, MdArrayManager } from './md-base-manager'
15
-
16
- // MD managers
17
- export { mdStateManager, mdQueueManager, mdShippedManager, mdIdeasManager }
18
-
19
- // MD managers object
20
- export const mdManagers = {
21
- state: mdStateManager,
22
- queue: mdQueueManager,
23
- shipped: mdShippedManager,
24
- ideas: mdIdeasManager
25
- }
26
-
27
- export default mdManagers