@mytechtoday/augment-extensions 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (232) hide show
  1. package/LICENSE +22 -22
  2. package/README.md +105 -6
  3. package/augment-extensions/domain-rules/software-architecture/README.md +143 -143
  4. package/augment-extensions/domain-rules/software-architecture/examples/banking-layered.md +961 -961
  5. package/augment-extensions/domain-rules/software-architecture/examples/ecommerce-microservices.md +990 -990
  6. package/augment-extensions/domain-rules/software-architecture/examples/iot-eventdriven.md +882 -882
  7. package/augment-extensions/domain-rules/software-architecture/examples/monolith-to-microservices-migration.md +703 -703
  8. package/augment-extensions/domain-rules/software-architecture/examples/serverless-imageprocessing.md +957 -957
  9. package/augment-extensions/domain-rules/software-architecture/examples/trading-eventdriven.md +747 -747
  10. package/augment-extensions/domain-rules/software-architecture/module.json +119 -119
  11. package/augment-extensions/domain-rules/software-architecture/rules/challenges-solutions.md +763 -763
  12. package/augment-extensions/domain-rules/software-architecture/rules/definitions-terminology.md +409 -409
  13. package/augment-extensions/domain-rules/software-architecture/rules/design-principles.md +684 -684
  14. package/augment-extensions/domain-rules/software-architecture/rules/evaluation-testing.md +1381 -1381
  15. package/augment-extensions/domain-rules/software-architecture/rules/event-driven-architecture.md +616 -616
  16. package/augment-extensions/domain-rules/software-architecture/rules/fundamentals.md +306 -306
  17. package/augment-extensions/domain-rules/software-architecture/rules/industry-architectures.md +554 -554
  18. package/augment-extensions/domain-rules/software-architecture/rules/layered-architecture.md +776 -776
  19. package/augment-extensions/domain-rules/software-architecture/rules/microservices-architecture.md +503 -503
  20. package/augment-extensions/domain-rules/software-architecture/rules/modeling-documentation.md +1199 -1199
  21. package/augment-extensions/domain-rules/software-architecture/rules/monolithic-architecture.md +351 -351
  22. package/augment-extensions/domain-rules/software-architecture/rules/principles.md +556 -556
  23. package/augment-extensions/domain-rules/software-architecture/rules/quality-attributes.md +797 -797
  24. package/augment-extensions/domain-rules/software-architecture/rules/scalability-performance.md +1345 -1345
  25. package/augment-extensions/domain-rules/software-architecture/rules/security-architecture.md +1039 -1039
  26. package/augment-extensions/domain-rules/software-architecture/rules/serverless-architecture.md +711 -711
  27. package/augment-extensions/domain-rules/software-architecture/rules/skills-development.md +568 -568
  28. package/augment-extensions/domain-rules/software-architecture/rules/tools-methodologies.md +961 -961
  29. package/augment-extensions/visual-design/CHANGELOG.md +132 -132
  30. package/augment-extensions/visual-design/README.md +255 -255
  31. package/augment-extensions/visual-design/__tests__/README.md +119 -119
  32. package/augment-extensions/visual-design/__tests__/style-selector.test.ts +172 -172
  33. package/augment-extensions/visual-design/__tests__/vendor-styles.test.ts +214 -214
  34. package/augment-extensions/visual-design/domains/other/ai-prompt-helper.ts +157 -157
  35. package/augment-extensions/visual-design/domains/other/dotnet-application.ts +156 -156
  36. package/augment-extensions/visual-design/domains/other/linux-platform.ts +156 -156
  37. package/augment-extensions/visual-design/domains/other/mobile-application.ts +157 -157
  38. package/augment-extensions/visual-design/domains/other/motion-picture.ts +156 -156
  39. package/augment-extensions/visual-design/domains/other/os-application.ts +156 -156
  40. package/augment-extensions/visual-design/domains/other/print-campaigns.ts +158 -158
  41. package/augment-extensions/visual-design/domains/other/web-app.ts +157 -157
  42. package/augment-extensions/visual-design/domains/other/website.ts +161 -161
  43. package/augment-extensions/visual-design/domains/other/windows-platform.ts +156 -156
  44. package/augment-extensions/visual-design/domains/web-page-styles/amazon-cloudscape.ts +506 -506
  45. package/augment-extensions/visual-design/domains/web-page-styles/google-modern.ts +615 -615
  46. package/augment-extensions/visual-design/domains/web-page-styles/microsoft-fluent.ts +531 -531
  47. package/augment-extensions/visual-design/examples/README.md +97 -97
  48. package/augment-extensions/visual-design/examples/ai-prompt-generation.md +233 -233
  49. package/augment-extensions/visual-design/examples/basic-usage.md +216 -216
  50. package/augment-extensions/visual-design/examples/domain-workflows.md +257 -257
  51. package/augment-extensions/visual-design/examples/vendor-comparison.md +247 -247
  52. package/augment-extensions/visual-design/module.json +78 -78
  53. package/augment-extensions/visual-design/style-selector.ts +177 -177
  54. package/augment-extensions/visual-design/types.ts +302 -302
  55. package/augment-extensions/visual-design/visual-design-core.ts +469 -469
  56. package/augment-extensions/workflows/adr-support/README.md +227 -227
  57. package/augment-extensions/workflows/adr-support/__tests__/adr-validator.test.ts +203 -203
  58. package/augment-extensions/workflows/adr-support/adr-validator.ts +162 -162
  59. package/augment-extensions/workflows/adr-support/examples/complete-lifecycle-example.md +449 -449
  60. package/augment-extensions/workflows/adr-support/examples/integration-example.md +580 -580
  61. package/augment-extensions/workflows/adr-support/examples/superseding-example.md +436 -436
  62. package/augment-extensions/workflows/adr-support/module.json +112 -112
  63. package/augment-extensions/workflows/adr-support/rules/adr-creation.md +372 -372
  64. package/augment-extensions/workflows/adr-support/rules/beads-integration.md +443 -443
  65. package/augment-extensions/workflows/adr-support/rules/conflict-detection.md +486 -486
  66. package/augment-extensions/workflows/adr-support/rules/decision-detection.md +362 -362
  67. package/augment-extensions/workflows/adr-support/rules/lifecycle-management.md +427 -427
  68. package/augment-extensions/workflows/adr-support/rules/openspec-integration.md +465 -465
  69. package/augment-extensions/workflows/adr-support/rules/template-selection.md +405 -405
  70. package/augment-extensions/workflows/adr-support/rules/validation-rules.md +543 -543
  71. package/augment-extensions/workflows/adr-support/schemas/adr-config.json +191 -191
  72. package/augment-extensions/workflows/adr-support/schemas/adr-metadata.json +172 -172
  73. package/augment-extensions/workflows/adr-support/templates/business-case.md +235 -235
  74. package/augment-extensions/workflows/adr-support/templates/madr-elaborate.md +197 -197
  75. package/augment-extensions/workflows/adr-support/templates/madr-simple.md +68 -68
  76. package/augment-extensions/workflows/adr-support/templates/nygard.md +84 -84
  77. package/augment-extensions/writing-standards/screenplay/rules/file-organization.md +213 -213
  78. package/augment-extensions/writing-standards/screenplay/utils/__tests__/file-organization.test.ts +169 -169
  79. package/augment-extensions/writing-standards/screenplay/utils/file-organization.ts +165 -165
  80. package/cli/dist/commands/agent.d.ts +37 -0
  81. package/cli/dist/commands/agent.d.ts.map +1 -0
  82. package/cli/dist/commands/agent.js +222 -0
  83. package/cli/dist/commands/agent.js.map +1 -0
  84. package/cli/dist/commands/beads.d.ts +64 -0
  85. package/cli/dist/commands/beads.d.ts.map +1 -0
  86. package/cli/dist/commands/beads.js +377 -0
  87. package/cli/dist/commands/beads.js.map +1 -0
  88. package/cli/dist/commands/change.d.ts +54 -0
  89. package/cli/dist/commands/change.d.ts.map +1 -0
  90. package/cli/dist/commands/change.js +243 -0
  91. package/cli/dist/commands/change.js.map +1 -0
  92. package/cli/dist/commands/clean.d.ts +15 -0
  93. package/cli/dist/commands/clean.d.ts.map +1 -0
  94. package/cli/dist/commands/clean.js +63 -0
  95. package/cli/dist/commands/clean.js.map +1 -0
  96. package/cli/dist/commands/clone.d.ts +15 -0
  97. package/cli/dist/commands/clone.d.ts.map +1 -0
  98. package/cli/dist/commands/clone.js +49 -0
  99. package/cli/dist/commands/clone.js.map +1 -0
  100. package/cli/dist/commands/config.d.ts +33 -0
  101. package/cli/dist/commands/config.d.ts.map +1 -0
  102. package/cli/dist/commands/config.js +166 -0
  103. package/cli/dist/commands/config.js.map +1 -0
  104. package/cli/dist/commands/context.d.ts +38 -0
  105. package/cli/dist/commands/context.d.ts.map +1 -0
  106. package/cli/dist/commands/context.js +205 -0
  107. package/cli/dist/commands/context.js.map +1 -0
  108. package/cli/dist/commands/create.d.ts +18 -0
  109. package/cli/dist/commands/create.d.ts.map +1 -0
  110. package/cli/dist/commands/create.js +178 -0
  111. package/cli/dist/commands/create.js.map +1 -0
  112. package/cli/dist/commands/diff.d.ts +19 -0
  113. package/cli/dist/commands/diff.d.ts.map +1 -0
  114. package/cli/dist/commands/diff.js +104 -0
  115. package/cli/dist/commands/diff.js.map +1 -0
  116. package/cli/dist/commands/doctor.d.ts +14 -0
  117. package/cli/dist/commands/doctor.d.ts.map +1 -0
  118. package/cli/dist/commands/doctor.js +62 -0
  119. package/cli/dist/commands/doctor.js.map +1 -0
  120. package/cli/dist/commands/export.d.ts +28 -0
  121. package/cli/dist/commands/export.d.ts.map +1 -0
  122. package/cli/dist/commands/export.js +135 -0
  123. package/cli/dist/commands/export.js.map +1 -0
  124. package/cli/dist/commands/import.d.ts +23 -0
  125. package/cli/dist/commands/import.d.ts.map +1 -0
  126. package/cli/dist/commands/import.js +118 -0
  127. package/cli/dist/commands/import.js.map +1 -0
  128. package/cli/dist/commands/prompt.d.ts +45 -0
  129. package/cli/dist/commands/prompt.d.ts.map +1 -0
  130. package/cli/dist/commands/prompt.js +223 -0
  131. package/cli/dist/commands/prompt.js.map +1 -0
  132. package/cli/dist/commands/spec.d.ts +57 -0
  133. package/cli/dist/commands/spec.d.ts.map +1 -0
  134. package/cli/dist/commands/spec.js +279 -0
  135. package/cli/dist/commands/spec.js.map +1 -0
  136. package/cli/dist/commands/stats.d.ts +18 -0
  137. package/cli/dist/commands/stats.d.ts.map +1 -0
  138. package/cli/dist/commands/stats.js +85 -0
  139. package/cli/dist/commands/stats.js.map +1 -0
  140. package/cli/dist/commands/task.d.ts +65 -0
  141. package/cli/dist/commands/task.d.ts.map +1 -0
  142. package/cli/dist/commands/task.js +282 -0
  143. package/cli/dist/commands/task.js.map +1 -0
  144. package/cli/dist/commands/template.d.ts +17 -0
  145. package/cli/dist/commands/template.d.ts.map +1 -0
  146. package/cli/dist/commands/template.js +55 -0
  147. package/cli/dist/commands/template.js.map +1 -0
  148. package/cli/dist/utils/agent-config.d.ts +129 -0
  149. package/cli/dist/utils/agent-config.d.ts.map +1 -0
  150. package/cli/dist/utils/agent-config.js +297 -0
  151. package/cli/dist/utils/agent-config.js.map +1 -0
  152. package/cli/dist/utils/auto-sync.js +19 -19
  153. package/cli/dist/utils/beads-graph.d.ts +17 -0
  154. package/cli/dist/utils/beads-graph.d.ts.map +1 -0
  155. package/cli/dist/utils/beads-graph.js +150 -0
  156. package/cli/dist/utils/beads-graph.js.map +1 -0
  157. package/cli/dist/utils/beads-integration.d.ts +112 -0
  158. package/cli/dist/utils/beads-integration.d.ts.map +1 -0
  159. package/cli/dist/utils/beads-integration.js +312 -0
  160. package/cli/dist/utils/beads-integration.js.map +1 -0
  161. package/cli/dist/utils/beads-reporter.d.ts +17 -0
  162. package/cli/dist/utils/beads-reporter.d.ts.map +1 -0
  163. package/cli/dist/utils/beads-reporter.js +160 -0
  164. package/cli/dist/utils/beads-reporter.js.map +1 -0
  165. package/cli/dist/utils/cache-manager.d.ts +55 -0
  166. package/cli/dist/utils/cache-manager.d.ts.map +1 -0
  167. package/cli/dist/utils/cache-manager.js +150 -0
  168. package/cli/dist/utils/cache-manager.js.map +1 -0
  169. package/cli/dist/utils/change-manager.d.ts +70 -0
  170. package/cli/dist/utils/change-manager.d.ts.map +1 -0
  171. package/cli/dist/utils/change-manager.js +412 -0
  172. package/cli/dist/utils/change-manager.js.map +1 -0
  173. package/cli/dist/utils/config-manager-enhanced.d.ts +66 -0
  174. package/cli/dist/utils/config-manager-enhanced.d.ts.map +1 -0
  175. package/cli/dist/utils/config-manager-enhanced.js +77 -0
  176. package/cli/dist/utils/config-manager-enhanced.js.map +1 -0
  177. package/cli/dist/utils/context-manager.d.ts +96 -0
  178. package/cli/dist/utils/context-manager.d.ts.map +1 -0
  179. package/cli/dist/utils/context-manager.js +258 -0
  180. package/cli/dist/utils/context-manager.js.map +1 -0
  181. package/cli/dist/utils/diff-engine.d.ts +78 -0
  182. package/cli/dist/utils/diff-engine.d.ts.map +1 -0
  183. package/cli/dist/utils/diff-engine.js +233 -0
  184. package/cli/dist/utils/diff-engine.js.map +1 -0
  185. package/cli/dist/utils/export-system.d.ts +101 -0
  186. package/cli/dist/utils/export-system.d.ts.map +1 -0
  187. package/cli/dist/utils/export-system.js +289 -0
  188. package/cli/dist/utils/export-system.js.map +1 -0
  189. package/cli/dist/utils/health-checker.d.ts +66 -0
  190. package/cli/dist/utils/health-checker.d.ts.map +1 -0
  191. package/cli/dist/utils/health-checker.js +285 -0
  192. package/cli/dist/utils/health-checker.js.map +1 -0
  193. package/cli/dist/utils/import-system.d.ts +74 -0
  194. package/cli/dist/utils/import-system.d.ts.map +1 -0
  195. package/cli/dist/utils/import-system.js +317 -0
  196. package/cli/dist/utils/import-system.js.map +1 -0
  197. package/cli/dist/utils/module-cloner.d.ts +40 -0
  198. package/cli/dist/utils/module-cloner.d.ts.map +1 -0
  199. package/cli/dist/utils/module-cloner.js +136 -0
  200. package/cli/dist/utils/module-cloner.js.map +1 -0
  201. package/cli/dist/utils/prompt-manager.d.ts +90 -0
  202. package/cli/dist/utils/prompt-manager.d.ts.map +1 -0
  203. package/cli/dist/utils/prompt-manager.js +302 -0
  204. package/cli/dist/utils/prompt-manager.js.map +1 -0
  205. package/cli/dist/utils/spec-manager.d.ts +65 -0
  206. package/cli/dist/utils/spec-manager.d.ts.map +1 -0
  207. package/cli/dist/utils/spec-manager.js +329 -0
  208. package/cli/dist/utils/spec-manager.js.map +1 -0
  209. package/cli/dist/utils/stats-collector.d.ts +74 -0
  210. package/cli/dist/utils/stats-collector.d.ts.map +1 -0
  211. package/cli/dist/utils/stats-collector.js +164 -0
  212. package/cli/dist/utils/stats-collector.js.map +1 -0
  213. package/cli/dist/utils/template-engine.d.ts +47 -0
  214. package/cli/dist/utils/template-engine.d.ts.map +1 -0
  215. package/cli/dist/utils/template-engine.js +204 -0
  216. package/cli/dist/utils/template-engine.js.map +1 -0
  217. package/package.json +12 -3
  218. package/augment-extensions/workflows/openspec/README.md +0 -96
  219. package/augment-extensions/workflows/openspec/examples/complete-change-example.md +0 -244
  220. package/augment-extensions/workflows/openspec/module.json +0 -54
  221. package/augment-extensions/workflows/openspec/rules/best-practices.md +0 -272
  222. package/augment-extensions/workflows/openspec/rules/manual-setup.md +0 -231
  223. package/augment-extensions/workflows/openspec/rules/spec-format.md +0 -236
  224. package/augment-extensions/workflows/openspec/rules/workflow.md +0 -214
  225. package/cli/dist/utils/__tests__/adr-validator.example.d.ts +0 -6
  226. package/cli/dist/utils/__tests__/adr-validator.example.d.ts.map +0 -1
  227. package/cli/dist/utils/__tests__/adr-validator.example.js +0 -148
  228. package/cli/dist/utils/__tests__/adr-validator.example.js.map +0 -1
  229. package/cli/dist/utils/adr-validator.d.ts +0 -65
  230. package/cli/dist/utils/adr-validator.d.ts.map +0 -1
  231. package/cli/dist/utils/adr-validator.js +0 -203
  232. package/cli/dist/utils/adr-validator.js.map +0 -1
@@ -1,213 +1,213 @@
1
- # Screenplay File Organization
2
-
3
- ## Purpose
4
-
5
- This document defines the file organization structure for screenplay projects generated using the `writing-standards/screenplay` module in Augment Extensions.
6
-
7
- ---
8
-
9
- ## Directory Structure
10
-
11
- ### Root Directory: `screenplays/`
12
-
13
- All screenplay projects are organized under a top-level `screenplays/` directory in the repository root.
14
-
15
- ```
16
- repository-root/
17
- ├── screenplays/ # Top-level screenplay directory
18
- │ ├── project-name-1/ # Individual screenplay project
19
- │ │ ├── screenplay.fountain
20
- │ │ ├── outline.md
21
- │ │ ├── characters/
22
- │ │ └── notes/
23
- │ ├── project-name-2/
24
- │ └── ...
25
- ├── .beads/
26
- ├── openspec/
27
- └── ...
28
- ```
29
-
30
- ---
31
-
32
- ## Project Naming Convention
33
-
34
- Project directories are named using the following priority:
35
-
36
- 1. **OpenSpec Spec Name** (highest priority)
37
- - If an active OpenSpec change exists, use the change directory name
38
- - Example: `openspec/changes/heist-movie/` → `screenplays/heist-movie/`
39
-
40
- 2. **Beads Epic ID** (second priority)
41
- - If a Beads epic with `screenplay` or `writing-standards` labels exists, use the epic ID
42
- - Example: Epic `bd-scr-org` → `screenplays/bd-scr-org/`
43
-
44
- 3. **Timestamp Fallback** (lowest priority)
45
- - If neither OpenSpec nor Beads context is available, use a timestamped name
46
- - Format: `screenplay-YYYY-MM-DD`
47
- - Example: `screenplays/screenplay-2026-02-03/`
48
-
49
- ---
50
-
51
- ## Conflict Resolution
52
-
53
- If a project directory already exists, the system handles conflicts using one of these strategies:
54
-
55
- ### Append Number (Default)
56
- ```
57
- screenplays/heist-movie/ # Original
58
- screenplays/heist-movie-1/ # First conflict
59
- screenplays/heist-movie-2/ # Second conflict
60
- ```
61
-
62
- ### Append Timestamp
63
- ```
64
- screenplays/heist-movie/ # Original
65
- screenplays/heist-movie-2026-02-03T14-30/ # Conflict with timestamp
66
- ```
67
-
68
- ### Error on Conflict
69
- Throw an error and require manual resolution.
70
-
71
- ---
72
-
73
- ## File Placement
74
-
75
- All screenplay-related files MUST be placed within the project directory:
76
-
77
- ### Primary Files
78
- - `screenplay.fountain` - Main screenplay in Fountain format
79
- - `screenplay.pdf` - Exported PDF (if generated)
80
- - `outline.md` - Story outline
81
-
82
- ### Supporting Directories
83
- - `characters/` - Character profiles and development
84
- - `notes/` - Research, brainstorming, and notes
85
- - `drafts/` - Previous versions and drafts
86
- - `assets/` - Images, references, and other media
87
-
88
- ### Example Structure
89
- ```
90
- screenplays/heist-movie/
91
- ├── screenplay.fountain # Main screenplay
92
- ├── outline.md # Story outline
93
- ├── beat-sheet.yaml # Save the Cat beat sheet
94
- ├── characters/
95
- │ ├── protagonist.yaml
96
- │ ├── antagonist.yaml
97
- │ └── supporting-cast.yaml
98
- ├── notes/
99
- │ ├── research.md
100
- │ ├── brainstorming.md
101
- │ └── feedback.md
102
- ├── drafts/
103
- │ ├── draft-1.fountain
104
- │ └── draft-2.fountain
105
- └── assets/
106
- ├── location-photos/
107
- └── character-sketches/
108
- ```
109
-
110
- ---
111
-
112
- ## Persistence During Cleanup
113
-
114
- The `screenplays/` directory and all its contents MUST be preserved during cleanup operations.
115
-
116
- ### Protected Paths
117
- - `screenplays/` (entire directory)
118
- - All subdirectories and files within `screenplays/`
119
-
120
- ### Cleanup Exemptions
121
- When running `augment-extensions self-remove` or similar cleanup commands:
122
- - ✅ Remove temporary augment-extensions files
123
- - ✅ Remove cached module data
124
- - ❌ **DO NOT** remove `screenplays/` directory
125
- - ❌ **DO NOT** remove any screenplay project directories
126
- - ❌ **DO NOT** remove any user-generated creative content
127
-
128
- ---
129
-
130
- ## Integration with Workflows
131
-
132
- ### OpenSpec Integration
133
- When creating a screenplay from an OpenSpec spec:
134
- 1. Read the spec name from `openspec/changes/[spec-name]/`
135
- 2. Create `screenplays/[spec-name]/`
136
- 3. Place all generated files in the project directory
137
- 4. Reference the spec in project metadata
138
-
139
- ### Beads Integration
140
- When creating a screenplay from a Beads epic:
141
- 1. Read the epic ID from `.beads/issues.jsonl`
142
- 2. Create `screenplays/[epic-id]/`
143
- 3. Track file creation in Beads comments
144
- 4. Link screenplay files to epic tasks
145
-
146
- ---
147
-
148
- ## Best Practices
149
-
150
- ### DO
151
- ✅ Always create `screenplays/` directory before generating files
152
- ✅ Use OpenSpec or Beads names when available
153
- ✅ Group all related files in the same project directory
154
- ✅ Use descriptive subdirectory names (`characters/`, `notes/`, etc.)
155
- ✅ Preserve the directory during cleanup operations
156
-
157
- ### DON'T
158
- ❌ Create screenplay files in the repository root
159
- ❌ Mix multiple screenplay projects in one directory
160
- ❌ Use special characters in directory names
161
- ❌ Delete `screenplays/` during cleanup
162
- ❌ Hardcode project names without checking OpenSpec/Beads
163
-
164
- ---
165
-
166
- ## Error Handling
167
-
168
- ### Missing Permissions
169
- If the system cannot create directories due to permissions:
170
- - Log an informative error message
171
- - Suggest running with appropriate permissions
172
- - Provide fallback location (e.g., user's home directory)
173
-
174
- ### Name Conflicts
175
- If a project directory already exists:
176
- - Apply the configured conflict resolution strategy
177
- - Log the resolution action
178
- - Continue with the new directory name
179
-
180
- ### Missing Context
181
- If neither OpenSpec nor Beads context is available:
182
- - Use timestamp-based naming
183
- - Log a warning suggesting manual renaming
184
- - Continue with generation
185
-
186
- ---
187
-
188
- ## Configuration
189
-
190
- Project-specific configuration can be set in `.augment/screenplay-config.json`:
191
-
192
- ```json
193
- {
194
- "fileOrganization": {
195
- "rootDir": "screenplays",
196
- "conflictResolution": "append-number",
197
- "autoCreateDirectories": true,
198
- "preserveOnCleanup": true
199
- }
200
- }
201
- ```
202
-
203
- ---
204
-
205
- ## Summary
206
-
207
- The screenplay file organization system ensures:
208
- - **Logical structure** - All screenplay files grouped by project
209
- - **Context awareness** - Names derived from OpenSpec/Beads
210
- - **Conflict resolution** - Automatic handling of duplicate names
211
- - **Persistence** - Creative content preserved during cleanup
212
- - **Integration** - Seamless workflow with OpenSpec and Beads
213
-
1
+ # Screenplay File Organization
2
+
3
+ ## Purpose
4
+
5
+ This document defines the file organization structure for screenplay projects generated using the `writing-standards/screenplay` module in Augment Extensions.
6
+
7
+ ---
8
+
9
+ ## Directory Structure
10
+
11
+ ### Root Directory: `screenplays/`
12
+
13
+ All screenplay projects are organized under a top-level `screenplays/` directory in the repository root.
14
+
15
+ ```
16
+ repository-root/
17
+ ├── screenplays/ # Top-level screenplay directory
18
+ │ ├── project-name-1/ # Individual screenplay project
19
+ │ │ ├── screenplay.fountain
20
+ │ │ ├── outline.md
21
+ │ │ ├── characters/
22
+ │ │ └── notes/
23
+ │ ├── project-name-2/
24
+ │ └── ...
25
+ ├── .beads/
26
+ ├── openspec/
27
+ └── ...
28
+ ```
29
+
30
+ ---
31
+
32
+ ## Project Naming Convention
33
+
34
+ Project directories are named using the following priority:
35
+
36
+ 1. **OpenSpec Spec Name** (highest priority)
37
+ - If an active OpenSpec change exists, use the change directory name
38
+ - Example: `openspec/changes/heist-movie/` → `screenplays/heist-movie/`
39
+
40
+ 2. **Beads Epic ID** (second priority)
41
+ - If a Beads epic with `screenplay` or `writing-standards` labels exists, use the epic ID
42
+ - Example: Epic `bd-scr-org` → `screenplays/bd-scr-org/`
43
+
44
+ 3. **Timestamp Fallback** (lowest priority)
45
+ - If neither OpenSpec nor Beads context is available, use a timestamped name
46
+ - Format: `screenplay-YYYY-MM-DD`
47
+ - Example: `screenplays/screenplay-2026-02-03/`
48
+
49
+ ---
50
+
51
+ ## Conflict Resolution
52
+
53
+ If a project directory already exists, the system handles conflicts using one of these strategies:
54
+
55
+ ### Append Number (Default)
56
+ ```
57
+ screenplays/heist-movie/ # Original
58
+ screenplays/heist-movie-1/ # First conflict
59
+ screenplays/heist-movie-2/ # Second conflict
60
+ ```
61
+
62
+ ### Append Timestamp
63
+ ```
64
+ screenplays/heist-movie/ # Original
65
+ screenplays/heist-movie-2026-02-03T14-30/ # Conflict with timestamp
66
+ ```
67
+
68
+ ### Error on Conflict
69
+ Throw an error and require manual resolution.
70
+
71
+ ---
72
+
73
+ ## File Placement
74
+
75
+ All screenplay-related files MUST be placed within the project directory:
76
+
77
+ ### Primary Files
78
+ - `screenplay.fountain` - Main screenplay in Fountain format
79
+ - `screenplay.pdf` - Exported PDF (if generated)
80
+ - `outline.md` - Story outline
81
+
82
+ ### Supporting Directories
83
+ - `characters/` - Character profiles and development
84
+ - `notes/` - Research, brainstorming, and notes
85
+ - `drafts/` - Previous versions and drafts
86
+ - `assets/` - Images, references, and other media
87
+
88
+ ### Example Structure
89
+ ```
90
+ screenplays/heist-movie/
91
+ ├── screenplay.fountain # Main screenplay
92
+ ├── outline.md # Story outline
93
+ ├── beat-sheet.yaml # Save the Cat beat sheet
94
+ ├── characters/
95
+ │ ├── protagonist.yaml
96
+ │ ├── antagonist.yaml
97
+ │ └── supporting-cast.yaml
98
+ ├── notes/
99
+ │ ├── research.md
100
+ │ ├── brainstorming.md
101
+ │ └── feedback.md
102
+ ├── drafts/
103
+ │ ├── draft-1.fountain
104
+ │ └── draft-2.fountain
105
+ └── assets/
106
+ ├── location-photos/
107
+ └── character-sketches/
108
+ ```
109
+
110
+ ---
111
+
112
+ ## Persistence During Cleanup
113
+
114
+ The `screenplays/` directory and all its contents MUST be preserved during cleanup operations.
115
+
116
+ ### Protected Paths
117
+ - `screenplays/` (entire directory)
118
+ - All subdirectories and files within `screenplays/`
119
+
120
+ ### Cleanup Exemptions
121
+ When running `augment-extensions self-remove` or similar cleanup commands:
122
+ - ✅ Remove temporary augment-extensions files
123
+ - ✅ Remove cached module data
124
+ - ❌ **DO NOT** remove `screenplays/` directory
125
+ - ❌ **DO NOT** remove any screenplay project directories
126
+ - ❌ **DO NOT** remove any user-generated creative content
127
+
128
+ ---
129
+
130
+ ## Integration with Workflows
131
+
132
+ ### OpenSpec Integration
133
+ When creating a screenplay from an OpenSpec spec:
134
+ 1. Read the spec name from `openspec/changes/[spec-name]/`
135
+ 2. Create `screenplays/[spec-name]/`
136
+ 3. Place all generated files in the project directory
137
+ 4. Reference the spec in project metadata
138
+
139
+ ### Beads Integration
140
+ When creating a screenplay from a Beads epic:
141
+ 1. Read the epic ID from `.beads/issues.jsonl`
142
+ 2. Create `screenplays/[epic-id]/`
143
+ 3. Track file creation in Beads comments
144
+ 4. Link screenplay files to epic tasks
145
+
146
+ ---
147
+
148
+ ## Best Practices
149
+
150
+ ### DO
151
+ ✅ Always create `screenplays/` directory before generating files
152
+ ✅ Use OpenSpec or Beads names when available
153
+ ✅ Group all related files in the same project directory
154
+ ✅ Use descriptive subdirectory names (`characters/`, `notes/`, etc.)
155
+ ✅ Preserve the directory during cleanup operations
156
+
157
+ ### DON'T
158
+ ❌ Create screenplay files in the repository root
159
+ ❌ Mix multiple screenplay projects in one directory
160
+ ❌ Use special characters in directory names
161
+ ❌ Delete `screenplays/` during cleanup
162
+ ❌ Hardcode project names without checking OpenSpec/Beads
163
+
164
+ ---
165
+
166
+ ## Error Handling
167
+
168
+ ### Missing Permissions
169
+ If the system cannot create directories due to permissions:
170
+ - Log an informative error message
171
+ - Suggest running with appropriate permissions
172
+ - Provide fallback location (e.g., user's home directory)
173
+
174
+ ### Name Conflicts
175
+ If a project directory already exists:
176
+ - Apply the configured conflict resolution strategy
177
+ - Log the resolution action
178
+ - Continue with the new directory name
179
+
180
+ ### Missing Context
181
+ If neither OpenSpec nor Beads context is available:
182
+ - Use timestamp-based naming
183
+ - Log a warning suggesting manual renaming
184
+ - Continue with generation
185
+
186
+ ---
187
+
188
+ ## Configuration
189
+
190
+ Project-specific configuration can be set in `.augment/screenplay-config.json`:
191
+
192
+ ```json
193
+ {
194
+ "fileOrganization": {
195
+ "rootDir": "screenplays",
196
+ "conflictResolution": "append-number",
197
+ "autoCreateDirectories": true,
198
+ "preserveOnCleanup": true
199
+ }
200
+ }
201
+ ```
202
+
203
+ ---
204
+
205
+ ## Summary
206
+
207
+ The screenplay file organization system ensures:
208
+ - **Logical structure** - All screenplay files grouped by project
209
+ - **Context awareness** - Names derived from OpenSpec/Beads
210
+ - **Conflict resolution** - Automatic handling of duplicate names
211
+ - **Persistence** - Creative content preserved during cleanup
212
+ - **Integration** - Seamless workflow with OpenSpec and Beads
213
+