@groupby/ai-dev 0.5.10 → 0.5.11

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 (61) hide show
  1. package/package.json +1 -1
  2. package/teams/fhr-neowise/commands/address-pr.md +120 -0
  3. package/teams/fhr-neowise/commands/ready-pr.md +70 -0
  4. package/teams/fhr-neowise/commands/review-pr.md +111 -0
  5. package/teams/fhr-neowise/commands/tdd-implementation.md +86 -0
  6. package/teams/fhr-neowise/commands/write-plan.md +23 -0
  7. package/teams/fhr-neowise/commands/write-pr.md +21 -0
  8. package/teams/fhr-neowise/commands/write-spec.md +25 -0
  9. package/teams/fhr-neowise/skills/agent-routing/SKILL.md +72 -0
  10. package/teams/fhr-neowise/skills/code-review/SKILL.md +83 -0
  11. package/teams/fhr-neowise/skills/code-review/review-template.md +90 -0
  12. package/teams/fhr-neowise/skills/mermaid-diagram/SKILL.md +94 -0
  13. package/teams/fhr-neowise/skills/mermaid-diagram/references/BEST_PRACTICES.md +96 -0
  14. package/teams/fhr-neowise/skills/mermaid-diagram/references/architecture.md +434 -0
  15. package/teams/fhr-neowise/skills/mermaid-diagram/references/block.md +753 -0
  16. package/teams/fhr-neowise/skills/mermaid-diagram/references/c4.md +619 -0
  17. package/teams/fhr-neowise/skills/mermaid-diagram/references/classDiagram.md +1186 -0
  18. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-configuration.md +72 -0
  19. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-directives.md +342 -0
  20. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-layouts.md +40 -0
  21. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-math.md +96 -0
  22. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-theming.md +246 -0
  23. package/teams/fhr-neowise/skills/mermaid-diagram/references/config-tidy-tree.md +89 -0
  24. package/teams/fhr-neowise/skills/mermaid-diagram/references/cynefin.md +279 -0
  25. package/teams/fhr-neowise/skills/mermaid-diagram/references/entityRelationshipDiagram.md +670 -0
  26. package/teams/fhr-neowise/skills/mermaid-diagram/references/eventmodeling.md +475 -0
  27. package/teams/fhr-neowise/skills/mermaid-diagram/references/examples.md +301 -0
  28. package/teams/fhr-neowise/skills/mermaid-diagram/references/flowchart.md +2116 -0
  29. package/teams/fhr-neowise/skills/mermaid-diagram/references/gantt.md +725 -0
  30. package/teams/fhr-neowise/skills/mermaid-diagram/references/gitgraph.md +2138 -0
  31. package/teams/fhr-neowise/skills/mermaid-diagram/references/ishikawa.md +66 -0
  32. package/teams/fhr-neowise/skills/mermaid-diagram/references/kanban.md +161 -0
  33. package/teams/fhr-neowise/skills/mermaid-diagram/references/mindmap.md +335 -0
  34. package/teams/fhr-neowise/skills/mermaid-diagram/references/packet.md +153 -0
  35. package/teams/fhr-neowise/skills/mermaid-diagram/references/pie.md +93 -0
  36. package/teams/fhr-neowise/skills/mermaid-diagram/references/quadrantChart.md +267 -0
  37. package/teams/fhr-neowise/skills/mermaid-diagram/references/radar.md +269 -0
  38. package/teams/fhr-neowise/skills/mermaid-diagram/references/railroad.md +337 -0
  39. package/teams/fhr-neowise/skills/mermaid-diagram/references/requirementDiagram.md +495 -0
  40. package/teams/fhr-neowise/skills/mermaid-diagram/references/sankey.md +415 -0
  41. package/teams/fhr-neowise/skills/mermaid-diagram/references/sequenceDiagram.md +1195 -0
  42. package/teams/fhr-neowise/skills/mermaid-diagram/references/stateDiagram.md +670 -0
  43. package/teams/fhr-neowise/skills/mermaid-diagram/references/timeline.md +571 -0
  44. package/teams/fhr-neowise/skills/mermaid-diagram/references/treeView.md +321 -0
  45. package/teams/fhr-neowise/skills/mermaid-diagram/references/treemap.md +353 -0
  46. package/teams/fhr-neowise/skills/mermaid-diagram/references/userJourney.md +42 -0
  47. package/teams/fhr-neowise/skills/mermaid-diagram/references/venn.md +134 -0
  48. package/teams/fhr-neowise/skills/mermaid-diagram/references/wardley.md +732 -0
  49. package/teams/fhr-neowise/skills/mermaid-diagram/references/xyChart.md +312 -0
  50. package/teams/fhr-neowise/skills/mermaid-diagram/references/zenuml.md +474 -0
  51. package/teams/fhr-neowise/skills/mermaid-diagram/scripts/sync_docs.py +138 -0
  52. package/teams/fhr-neowise/skills/pull-request-authoring/COMPLEX.template.md +52 -0
  53. package/teams/fhr-neowise/skills/pull-request-authoring/NON-CODE.template.md +15 -0
  54. package/teams/fhr-neowise/skills/pull-request-authoring/SIMPLE.template.md +20 -0
  55. package/teams/fhr-neowise/skills/pull-request-authoring/SKILL.md +102 -0
  56. package/teams/fhr-neowise/skills/spec-investigation/SKILL.md +139 -0
  57. package/teams/fhr-neowise/skills/spec-investigation/TEMPLATE.spec.md +74 -0
  58. package/teams/fhr-neowise/skills/tdd-workflow/SKILL.md +137 -0
  59. package/teams/fhr-neowise/skills/write-plan/SKILL.md +285 -0
  60. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.checklist.json +79 -0
  61. package/teams/fhr-neowise/skills/write-plan/assets/TEMPLATE.plan.md +158 -0
@@ -0,0 +1,725 @@
1
+ > **Warning**
2
+ >
3
+ > ## THIS IS AN AUTOGENERATED FILE. DO NOT EDIT.
4
+ >
5
+ > ## Please edit the corresponding file in [/packages/mermaid/src/docs/syntax/gantt.md](../../packages/mermaid/src/docs/syntax/gantt.md).
6
+
7
+ # Gantt diagrams
8
+
9
+ > A Gantt chart is a type of bar chart, first developed by Karol Adamiecki in 1896, and independently by Henry Gantt in the 1910s, that illustrates a project schedule and the amount of time it would take for any one project to finish. Gantt charts illustrate number of days between the start and finish dates of the terminal elements and summary elements of a project.
10
+
11
+ ## A note to users
12
+
13
+ Gantt Charts will record each scheduled task as one continuous bar that extends from the left to the right. The x axis represents time and the y records the different tasks and the order in which they are to be completed.
14
+
15
+ It is important to remember that when a date, day, or collection of dates specific to a task are "excluded", the Gantt Chart will accommodate those changes by extending an equal number of days, towards the right, not by creating a gap inside the task.
16
+ As shown here ![](./img/Gantt-excluded-days-within.png)
17
+
18
+ However, if the excluded dates are between two tasks that are set to start consecutively, the excluded dates will be skipped graphically and left blank, and the following task will begin after the end of the excluded dates.
19
+ As shown here ![](./img/Gantt-long-weekend-look.png)
20
+
21
+ A Gantt chart is useful for tracking the amount of time it would take before a project is finished, but it can also be used to graphically represent "non-working days", with a few tweaks.
22
+
23
+ Mermaid can render Gantt diagrams as SVG, PNG or a MarkDown link that can be pasted into docs.
24
+
25
+ ```mermaid-example
26
+ gantt
27
+ title A Gantt Diagram
28
+ dateFormat YYYY-MM-DD
29
+ section Section
30
+ A task :a1, 2014-01-01, 30d
31
+ Another task :after a1, 20d
32
+ section Another
33
+ Task in Another :2014-01-12, 12d
34
+ another task :24d
35
+ ```
36
+
37
+ ```mermaid
38
+ gantt
39
+ title A Gantt Diagram
40
+ dateFormat YYYY-MM-DD
41
+ section Section
42
+ A task :a1, 2014-01-01, 30d
43
+ Another task :after a1, 20d
44
+ section Another
45
+ Task in Another :2014-01-12, 12d
46
+ another task :24d
47
+ ```
48
+
49
+ ## Syntax
50
+
51
+ ```mermaid-example
52
+ gantt
53
+ dateFormat YYYY-MM-DD
54
+ title Adding GANTT diagram functionality to mermaid
55
+ excludes weekends
56
+ %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)
57
+
58
+ section A section
59
+ Completed task :done, des1, 2014-01-06,2014-01-08
60
+ Active task :active, des2, 2014-01-09, 3d
61
+ Future task : des3, after des2, 5d
62
+ Future task2 : des4, after des3, 5d
63
+
64
+ section Critical tasks
65
+ Completed task in the critical line :crit, done, 2014-01-06,24h
66
+ Implement parser and jison :crit, done, after des1, 2d
67
+ Create tests for parser :crit, active, 3d
68
+ Future task in critical line :crit, 5d
69
+ Create tests for renderer :2d
70
+ Add to mermaid :until isadded
71
+ Functionality added :milestone, isadded, 2014-01-25, 0d
72
+
73
+ section Documentation
74
+ Describe gantt syntax :active, a1, after des1, 3d
75
+ Add gantt diagram to demo page :after a1 , 20h
76
+ Add another diagram to demo page :doc1, after a1 , 48h
77
+
78
+ section Last section
79
+ Describe gantt syntax :after doc1, 3d
80
+ Add gantt diagram to demo page :20h
81
+ Add another diagram to demo page :48h
82
+ ```
83
+
84
+ ```mermaid
85
+ gantt
86
+ dateFormat YYYY-MM-DD
87
+ title Adding GANTT diagram functionality to mermaid
88
+ excludes weekends
89
+ %% (`excludes` accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".)
90
+
91
+ section A section
92
+ Completed task :done, des1, 2014-01-06,2014-01-08
93
+ Active task :active, des2, 2014-01-09, 3d
94
+ Future task : des3, after des2, 5d
95
+ Future task2 : des4, after des3, 5d
96
+
97
+ section Critical tasks
98
+ Completed task in the critical line :crit, done, 2014-01-06,24h
99
+ Implement parser and jison :crit, done, after des1, 2d
100
+ Create tests for parser :crit, active, 3d
101
+ Future task in critical line :crit, 5d
102
+ Create tests for renderer :2d
103
+ Add to mermaid :until isadded
104
+ Functionality added :milestone, isadded, 2014-01-25, 0d
105
+
106
+ section Documentation
107
+ Describe gantt syntax :active, a1, after des1, 3d
108
+ Add gantt diagram to demo page :after a1 , 20h
109
+ Add another diagram to demo page :doc1, after a1 , 48h
110
+
111
+ section Last section
112
+ Describe gantt syntax :after doc1, 3d
113
+ Add gantt diagram to demo page :20h
114
+ Add another diagram to demo page :48h
115
+ ```
116
+
117
+ Tasks are by default sequential. A task start date defaults to the end date of the preceding task.
118
+
119
+ A colon, `:`, separates the task title from its metadata.
120
+ Metadata items are separated by a comma, `,`. Valid tags are `active`, `done`, `crit`, and `milestone`. Tags are optional, but if used, they must be specified first.
121
+ After processing the tags, the remaining metadata items are interpreted as follows:
122
+
123
+ 1. If a single item is specified, it determines when the task ends. It can either be a specific date/time or a duration. If a duration is specified, it is added to the start date of the task to determine the end date of the task, taking into account any exclusions.
124
+ 2. If two items are specified, the last item is interpreted as in the previous case. The first item can either specify an explicit start date/time (in the format specified by `dateFormat`) or reference another task using `after <otherTaskID> [[otherTaskID2 [otherTaskID3]]...]`. In the latter case, the start date of the task will be set according to the latest end date of any referenced task.
125
+ 3. If three items are specified, the last two will be interpreted as in the previous case. The first item will denote the ID of the task, which can be referenced using the `later <taskID>` syntax.
126
+
127
+ | Metadata syntax | Start date | End date | ID |
128
+ | ---------------------------------------------------- | --------------------------------------------------- | ----------------------------------------------------- | -------- |
129
+ | `<taskID>, <startDate>, <endDate>` | `startdate` as interpreted using `dateformat` | `endDate` as interpreted using `dateformat` | `taskID` |
130
+ | `<taskID>, <startDate>, <length>` | `startdate` as interpreted using `dateformat` | Start date + `length` | `taskID` |
131
+ | `<taskID>, after <otherTaskId>, <endDate>` | End date of previously specified task `otherTaskID` | `endDate` as interpreted using `dateformat` | `taskID` |
132
+ | `<taskID>, after <otherTaskId>, <length>` | End date of previously specified task `otherTaskID` | Start date + `length` | `taskID` |
133
+ | `<taskID>, <startDate>, until <otherTaskId>` | `startdate` as interpreted using `dateformat` | Start date of previously specified task `otherTaskID` | `taskID` |
134
+ | `<taskID>, after <otherTaskId>, until <otherTaskId>` | End date of previously specified task `otherTaskID` | Start date of previously specified task `otherTaskID` | `taskID` |
135
+ | `<startDate>, <endDate>` | `startdate` as interpreted using `dateformat` | `enddate` as interpreted using `dateformat` | n/a |
136
+ | `<startDate>, <length>` | `startdate` as interpreted using `dateformat` | Start date + `length` | n/a |
137
+ | `after <otherTaskID>, <endDate>` | End date of previously specified task `otherTaskID` | `enddate` as interpreted using `dateformat` | n/a |
138
+ | `after <otherTaskID>, <length>` | End date of previously specified task `otherTaskID` | Start date + `length` | n/a |
139
+ | `<startDate>, until <otherTaskId>` | `startdate` as interpreted using `dateformat` | Start date of previously specified task `otherTaskID` | n/a |
140
+ | `after <otherTaskId>, until <otherTaskId>` | End date of previously specified task `otherTaskID` | Start date of previously specified task `otherTaskID` | n/a |
141
+ | `<endDate>` | End date of preceding task | `enddate` as interpreted using `dateformat` | n/a |
142
+ | `<length>` | End date of preceding task | Start date + `length` | n/a |
143
+ | `until <otherTaskId>` | End date of preceding task | Start date of previously specified task `otherTaskID` | n/a |
144
+
145
+ > **Note**
146
+ > Support for keyword `until` was added in (v10.9.0+). This can be used to define a task which is running until some other specific task or milestone starts.
147
+
148
+ #### Duration format
149
+
150
+ When specifying a `<length>`, use a number followed by one of these unit suffixes:
151
+
152
+ | Unit | Suffix | Example |
153
+ | ------------ | ------ | ------- |
154
+ | Milliseconds | `ms` | `500ms` |
155
+ | Seconds | `s` | `30s` |
156
+ | Minutes | `m` | `30m` |
157
+ | Hours | `h` | `4h` |
158
+ | Days | `d` | `3d` |
159
+ | Weeks | `w` | `2w` |
160
+ | Months | `M` | `1M` |
161
+ | Years | `y` | `1y` |
162
+
163
+ Decimal values are also supported (e.g., `1.5d`). Invalid duration tokens (e.g., `3dX`) will be ignored and the task will default to zero duration.
164
+
165
+ For simplicity, the table does not show the use of multiple tasks listed with the `after` keyword. Here is an example of how to use it and how it's interpreted:
166
+
167
+ ```mermaid-example
168
+ gantt
169
+ apple :a, 2017-07-20, 1w
170
+ banana :crit, b, 2017-07-23, 1d
171
+ cherry :active, c, after b a, 1d
172
+ kiwi :d, 2017-07-20, until b c
173
+ ```
174
+
175
+ ```mermaid
176
+ gantt
177
+ apple :a, 2017-07-20, 1w
178
+ banana :crit, b, 2017-07-23, 1d
179
+ cherry :active, c, after b a, 1d
180
+ kiwi :d, 2017-07-20, until b c
181
+ ```
182
+
183
+ ### Title
184
+
185
+ The `title` is an _optional_ string to be displayed at the top of the Gantt chart to describe the chart as a whole.
186
+
187
+ ### Excludes
188
+
189
+ The `excludes` is an _optional_ attribute that accepts specific dates in YYYY-MM-DD format, days of the week ("sunday") or "weekends", but not the word "weekdays".
190
+ These date will be marked on the graph, and be excluded from the duration calculation of tasks. Meaning that if there are excluded dates during a task interval, the number of 'skipped' days will be added to the end of the task to ensure the duration is as specified in the code.
191
+
192
+ #### Weekend (v\11.0.0+)
193
+
194
+ When excluding weekends, it is possible to configure the weekends to be either Friday and Saturday or Saturday and Sunday. By default weekends are Saturday and Sunday.
195
+ To define the weekend start day, there is an _optional_ attribute `weekend` that can be added in a new line followed by either `friday` or `saturday`.
196
+
197
+ ```mermaid-example
198
+ gantt
199
+ title A Gantt Diagram Excluding Fri - Sat weekends
200
+ dateFormat YYYY-MM-DD
201
+ excludes weekends
202
+ weekend friday
203
+ section Section
204
+ A task :a1, 2024-01-01, 30d
205
+ Another task :after a1, 20d
206
+ ```
207
+
208
+ ```mermaid
209
+ gantt
210
+ title A Gantt Diagram Excluding Fri - Sat weekends
211
+ dateFormat YYYY-MM-DD
212
+ excludes weekends
213
+ weekend friday
214
+ section Section
215
+ A task :a1, 2024-01-01, 30d
216
+ Another task :after a1, 20d
217
+ ```
218
+
219
+ ### Section statements
220
+
221
+ You can divide the chart into various sections, for example to separate different parts of a project like development and documentation.
222
+
223
+ To do so, start a line with the `section` keyword and give it a name. (Note that unlike with the [title for the entire chart](#title), this name is _required_.
224
+
225
+ ### Milestones
226
+
227
+ You can add milestones to the diagrams. Milestones differ from tasks as they represent a single instant in time and are identified by the keyword `milestone`. Below is an example on how to use milestones. As you may notice, the exact location of the milestone is determined by the initial date for the milestone and the "duration" of the task this way: _initial date_+_duration_/2.
228
+
229
+ ```mermaid-example
230
+ gantt
231
+ dateFormat HH:mm
232
+ axisFormat %H:%M
233
+ Initial milestone : milestone, m1, 17:49, 2m
234
+ Task A : 10m
235
+ Task B : 5m
236
+ Final milestone : milestone, m2, 18:08, 4m
237
+ ```
238
+
239
+ ```mermaid
240
+ gantt
241
+ dateFormat HH:mm
242
+ axisFormat %H:%M
243
+ Initial milestone : milestone, m1, 17:49, 2m
244
+ Task A : 10m
245
+ Task B : 5m
246
+ Final milestone : milestone, m2, 18:08, 4m
247
+ ```
248
+
249
+ ### Vertical Markers
250
+
251
+ The `vert` keyword lets you add vertical lines to your Gantt chart, making it easy to highlight important dates like deadlines, events, or checkpoints. These markers extend across the entire chart and are positioned based on the date you provide. Unlike milestones, vertical markers don’t take up a row. They’re purely visual reference points that help break up the timeline and make important moments easier to spot.
252
+
253
+ ```mermaid-example
254
+ gantt
255
+ dateFormat HH:mm
256
+ axisFormat %H:%M
257
+ Initial vert : vert, v1, 17:30, 2m
258
+ Task A : 3m
259
+ Task B : 8m
260
+ Final vert : vert, v2, 17:58, 4m
261
+ ```
262
+
263
+ ```mermaid
264
+ gantt
265
+ dateFormat HH:mm
266
+ axisFormat %H:%M
267
+ Initial vert : vert, v1, 17:30, 2m
268
+ Task A : 3m
269
+ Task B : 8m
270
+ Final vert : vert, v2, 17:58, 4m
271
+ ```
272
+
273
+ ## Setting dates
274
+
275
+ `dateFormat` defines the format of the date **input** of your gantt elements. How these dates are represented in the rendered chart **output** are defined by `axisFormat`.
276
+
277
+ ### Input date format
278
+
279
+ The default input date format is `YYYY-MM-DD`. You can define your custom `dateFormat`.
280
+
281
+ ```markdown
282
+ dateFormat YYYY-MM-DD
283
+ ```
284
+
285
+ The following formatting options are supported:
286
+
287
+ | Input | Example | Description |
288
+ | ---------- | -------------- | ------------------------------------------------------ |
289
+ | `YYYY` | 2014 | 4 digit year |
290
+ | `YY` | 14 | 2 digit year |
291
+ | `Q` | 1..4 | Quarter of year. Sets month to first month in quarter. |
292
+ | `M MM` | 1..12 | Month number |
293
+ | `MMM MMMM` | January..Dec | Month name in locale set by `dayjs.locale()` |
294
+ | `D DD` | 1..31 | Day of month |
295
+ | `Do` | 1st..31st | Day of month with ordinal |
296
+ | `DDD DDDD` | 1..365 | Day of year |
297
+ | `X` | 1410715640.579 | Unix timestamp |
298
+ | `x` | 1410715640579 | Unix ms timestamp |
299
+ | `H HH` | 0..23 | 24 hour time |
300
+ | `h hh` | 1..12 | 12 hour time used with `a A`. |
301
+ | `a A` | am pm | Post or ante meridiem |
302
+ | `m mm` | 0..59 | Minutes |
303
+ | `s ss` | 0..59 | Seconds |
304
+ | `S` | 0..9 | Tenths of a second |
305
+ | `SS` | 0..99 | Hundreds of a second |
306
+ | `SSS` | 0..999 | Thousandths of a second |
307
+ | `Z ZZ` | +12:00 | Offset from UTC as +-HH:mm, +-HHmm, or Z |
308
+
309
+ More info in: <https://day.js.org/docs/en/parse/string-format/>
310
+
311
+ ### Output date format on the axis
312
+
313
+ The default output date format is `YYYY-MM-DD`. You can define your custom `axisFormat`, like `2020-Q1` for the first quarter of the year 2020.
314
+
315
+ ```markdown
316
+ axisFormat %Y-%m-%d
317
+ ```
318
+
319
+ The following formatting strings are supported:
320
+
321
+ | Format | Definition |
322
+ | ------ | ------------------------------------------------------------------------------------------ |
323
+ | %a | abbreviated weekday name |
324
+ | %A | full weekday name |
325
+ | %b | abbreviated month name |
326
+ | %B | full month name |
327
+ | %c | date and time, as "%a %b %e %H:%M:%S %Y" |
328
+ | %d | zero-padded day of the month as a decimal number \[01,31] |
329
+ | %e | space-padded day of the month as a decimal number \[ 1,31]; equivalent to %\_d |
330
+ | %H | hour (24-hour clock) as a decimal number \[00,23] |
331
+ | %I | hour (12-hour clock) as a decimal number \[01,12] |
332
+ | %j | day of the year as a decimal number \[001,366] |
333
+ | %m | month as a decimal number \[01,12] |
334
+ | %M | minute as a decimal number \[00,59] |
335
+ | %L | milliseconds as a decimal number \[000, 999] |
336
+ | %p | either AM or PM |
337
+ | %S | second as a decimal number \[00,61] |
338
+ | %U | week number of the year (Sunday as the first day of the week) as a decimal number \[00,53] |
339
+ | %w | weekday as a decimal number \[0(Sunday),6] |
340
+ | %W | week number of the year (Monday as the first day of the week) as a decimal number \[00,53] |
341
+ | %x | date, as "%m/%d/%Y" |
342
+ | %X | time, as "%H:%M:%S" |
343
+ | %y | year without century as a decimal number \[00,99] |
344
+ | %Y | year with century as a decimal number |
345
+ | %Z | time zone offset, such as "-0700" |
346
+ | %% | a literal "%" character |
347
+
348
+ More info in: <https://github.com/d3/d3-time-format/tree/v4.0.0#locale_format>
349
+
350
+ ### Axis ticks (v10.3.0+)
351
+
352
+ The default output ticks are auto. You can custom your `tickInterval`, like `1day` or `1week`.
353
+
354
+ ```markdown
355
+ tickInterval 1day
356
+ ```
357
+
358
+ The pattern is:
359
+
360
+ ```javascript
361
+ /^([1-9][0-9]*)(millisecond|second|minute|hour|day|week|month)$/;
362
+ ```
363
+
364
+ More info in: <https://github.com/d3/d3-time#interval_every>
365
+
366
+ Week-based `tickInterval`s start the week on sunday by default. If you wish to specify another weekday on which the `tickInterval` should start, use the `weekday` option:
367
+
368
+ ```mermaid-example
369
+ gantt
370
+ tickInterval 1week
371
+ weekday monday
372
+ ```
373
+
374
+ ```mermaid
375
+ gantt
376
+ tickInterval 1week
377
+ weekday monday
378
+ ```
379
+
380
+ > **Warning**
381
+ > `millisecond` and `second` support was added in v10.3.0
382
+
383
+ ## Output in compact mode
384
+
385
+ The compact mode allows you to display multiple tasks in the same row. Compact mode can be enabled for a gantt chart by setting the display mode of the graph via preceding YAML settings.
386
+
387
+ ```mermaid-example
388
+ ---
389
+ displayMode: compact
390
+ ---
391
+ gantt
392
+ title A Gantt Diagram
393
+ dateFormat YYYY-MM-DD
394
+
395
+ section Section
396
+ A task :a1, 2014-01-01, 30d
397
+ Another task :a2, 2014-01-20, 25d
398
+ Another one :a3, 2014-02-10, 20d
399
+ ```
400
+
401
+ ```mermaid
402
+ ---
403
+ displayMode: compact
404
+ ---
405
+ gantt
406
+ title A Gantt Diagram
407
+ dateFormat YYYY-MM-DD
408
+
409
+ section Section
410
+ A task :a1, 2014-01-01, 30d
411
+ Another task :a2, 2014-01-20, 25d
412
+ Another one :a3, 2014-02-10, 20d
413
+ ```
414
+
415
+ ## Comments
416
+
417
+ Comments can be entered within a gantt chart, which will be ignored by the parser. Comments need to be on their own line and must be prefaced with `%%` (double percent signs). Any text after the start of the comment to the next newline will be treated as a comment, including any diagram syntax.
418
+
419
+ ```mermaid-example
420
+ gantt
421
+ title A Gantt Diagram
422
+ %% This is a comment
423
+ dateFormat YYYY-MM-DD
424
+ section Section
425
+ A task :a1, 2014-01-01, 30d
426
+ Another task :after a1, 20d
427
+ section Another
428
+ Task in Another :2014-01-12, 12d
429
+ another task :24d
430
+ ```
431
+
432
+ ```mermaid
433
+ gantt
434
+ title A Gantt Diagram
435
+ %% This is a comment
436
+ dateFormat YYYY-MM-DD
437
+ section Section
438
+ A task :a1, 2014-01-01, 30d
439
+ Another task :after a1, 20d
440
+ section Another
441
+ Task in Another :2014-01-12, 12d
442
+ another task :24d
443
+ ```
444
+
445
+ ## Styling
446
+
447
+ Styling of the Gantt diagram is done by defining a number of CSS classes. During rendering, these classes are extracted from the file located at src/diagrams/gantt/styles.js
448
+
449
+ ### Classes used
450
+
451
+ | Class | Description |
452
+ | --------------------- | ---------------------------------------------------------------------- |
453
+ | grid.tick | Styling for the Grid Lines |
454
+ | grid.path | Styling for the Grid's borders |
455
+ | .taskText | Task Text Styling |
456
+ | .taskTextOutsideRight | Styling for Task Text that exceeds the activity bar towards the right. |
457
+ | .taskTextOutsideLeft | Styling for Task Text that exceeds the activity bar, towards the left. |
458
+ | todayMarker | Toggle and Styling for the "Today Marker" |
459
+
460
+ ### Sample stylesheet
461
+
462
+ ```css
463
+ .grid .tick {
464
+ stroke: lightgrey;
465
+ opacity: 0.3;
466
+ shape-rendering: crispEdges;
467
+ }
468
+ .grid path {
469
+ stroke-width: 0;
470
+ }
471
+
472
+ #tag {
473
+ color: white;
474
+ background: #fa283d;
475
+ width: 150px;
476
+ position: absolute;
477
+ display: none;
478
+ padding: 3px 6px;
479
+ margin-left: -80px;
480
+ font-size: 11px;
481
+ }
482
+
483
+ #tag:before {
484
+ border: solid transparent;
485
+ content: ' ';
486
+ height: 0;
487
+ left: 50%;
488
+ margin-left: -5px;
489
+ position: absolute;
490
+ width: 0;
491
+ border-width: 10px;
492
+ border-bottom-color: #fa283d;
493
+ top: -20px;
494
+ }
495
+ .taskText {
496
+ fill: white;
497
+ text-anchor: middle;
498
+ }
499
+ .taskTextOutsideRight {
500
+ fill: black;
501
+ text-anchor: start;
502
+ }
503
+ .taskTextOutsideLeft {
504
+ fill: black;
505
+ text-anchor: end;
506
+ }
507
+ ```
508
+
509
+ ## Today marker
510
+
511
+ You can style or hide the marker for the current date. To style it, add a value for the `todayMarker` key.
512
+
513
+ ```
514
+ todayMarker stroke-width:5px,stroke:#0f0,opacity:0.5
515
+ ```
516
+
517
+ To hide the marker, set `todayMarker` to `off`.
518
+
519
+ ```
520
+ todayMarker off
521
+ ```
522
+
523
+ ## Configuration
524
+
525
+ It is possible to adjust the margins for rendering the gantt diagram.
526
+
527
+ This is done by defining the `ganttConfig` part of the configuration object.
528
+ How to use the CLI is described in the [mermaidCLI](../config/mermaidCLI.md) page.
529
+
530
+ mermaid.ganttConfig can be set to a JSON string with config parameters or the corresponding object.
531
+
532
+ ```javascript
533
+ mermaid.ganttConfig = {
534
+ titleTopMargin: 25, // Margin top for the text over the diagram
535
+ barHeight: 20, // The height of the bars in the graph
536
+ barGap: 4, // The margin between the different activities in the gantt diagram
537
+ topPadding: 75, // Margin between title and gantt diagram and between axis and gantt diagram.
538
+ rightPadding: 75, // The space allocated for the section name to the right of the activities
539
+ leftPadding: 75, // The space allocated for the section name to the left of the activities
540
+ gridLineStartPadding: 10, // Vertical starting position of the grid lines
541
+ fontSize: 12, // Font size
542
+ sectionFontSize: 24, // Font size for sections
543
+ numberSectionStyles: 1, // The number of alternating section styles
544
+ axisFormat: '%d/%m', // Date/time format of the axis
545
+ tickInterval: '1week', // Axis ticks
546
+ topAxis: true, // When this flag is set, date labels will be added to the top of the chart
547
+ displayMode: 'compact', // Turns compact mode on
548
+ weekday: 'sunday', // On which day a week-based interval should start
549
+ };
550
+ ```
551
+
552
+ ### Possible configuration params:
553
+
554
+ | Param | Description | Default value |
555
+ | --------------- | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------- |
556
+ | mirrorActor | Turns on/off the rendering of actors below the diagram as well as above it | false |
557
+ | bottomMarginAdj | Adjusts how far down the graph ended. Wide borders styles with css could generate unwanted clipping which is why this config param exists. | 1 |
558
+
559
+ ## Interaction
560
+
561
+ It is possible to bind a click event to a task. The click can lead to either a javascript callback or to a link which will be opened in the current browser tab. **Note**: This functionality is disabled when using `securityLevel='strict'` and enabled when using `securityLevel='loose'`.
562
+
563
+ ```
564
+ click taskId call callback(arguments)
565
+ click taskId href URL
566
+ ```
567
+
568
+ - taskId is the id of the task
569
+ - callback is the name of a javascript function defined on the page displaying the graph, the function will be called with the taskId as the parameter if no other arguments are specified.
570
+
571
+ Beginner's tip—a full example using interactive links in an HTML context:
572
+
573
+ ```html
574
+ <body>
575
+ <pre class="mermaid">
576
+ gantt
577
+ dateFormat YYYY-MM-DD
578
+
579
+ section Clickable
580
+ Visit mermaidjs :active, cl1, 2014-01-07, 3d
581
+ Print arguments :cl2, after cl1, 3d
582
+ Print task :cl3, after cl2, 3d
583
+
584
+ click cl1 href "https://mermaidjs.github.io/"
585
+ click cl2 call printArguments("test1", "test2", test3)
586
+ click cl3 call printTask()
587
+ </pre>
588
+
589
+ <script>
590
+ const printArguments = function (arg1, arg2, arg3) {
591
+ alert('printArguments called with arguments: ' + arg1 + ', ' + arg2 + ', ' + arg3);
592
+ };
593
+ const printTask = function (taskId) {
594
+ alert('taskId: ' + taskId);
595
+ };
596
+ const config = {
597
+ startOnLoad: true,
598
+ securityLevel: 'loose',
599
+ };
600
+ mermaid.initialize(config);
601
+ </script>
602
+ </body>
603
+ ```
604
+
605
+ ## Examples
606
+
607
+ ### Bar chart (using gantt chart)
608
+
609
+ ```mermaid-example
610
+ gantt
611
+ title Git Issues - days since last update
612
+ dateFormat X
613
+ axisFormat %s
614
+ section Issue19062
615
+ 71 : 0, 71
616
+ section Issue19401
617
+ 36 : 0, 36
618
+ section Issue193
619
+ 34 : 0, 34
620
+ section Issue7441
621
+ 9 : 0, 9
622
+ section Issue1300
623
+ 5 : 0, 5
624
+ ```
625
+
626
+ ```mermaid
627
+ gantt
628
+ title Git Issues - days since last update
629
+ dateFormat X
630
+ axisFormat %s
631
+ section Issue19062
632
+ 71 : 0, 71
633
+ section Issue19401
634
+ 36 : 0, 36
635
+ section Issue193
636
+ 34 : 0, 34
637
+ section Issue7441
638
+ 9 : 0, 9
639
+ section Issue1300
640
+ 5 : 0, 5
641
+ ```
642
+
643
+ ### Timeline (with comments, CSS, config in frontmatter)
644
+
645
+ ```mermaid-example
646
+ ---
647
+ # Frontmatter config, YAML comments
648
+ title: Ignored if specified in chart
649
+ displayMode: compact #gantt specific setting but works at this level too
650
+ config:
651
+ # theme: forest
652
+ # themeCSS: " #item36 { fill: CadetBlue } "
653
+ themeCSS: " // YAML supports multiline strings using a newline markers: \n
654
+ #item36 { fill: CadetBlue } \n
655
+
656
+ // Custom marker workaround CSS from forum (below) \n
657
+ rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } \n
658
+ text[id^=workaround] { fill: red; y: 100%; font-size: 15px;}
659
+ "
660
+ gantt:
661
+ useWidth: 400
662
+ rightPadding: 0
663
+ topAxis: true #false
664
+ numberSectionStyles: 2
665
+ ---
666
+ gantt
667
+ title Timeline - Gantt Sampler
668
+ dateFormat YYYY
669
+ axisFormat %y
670
+ %% this next line doesn't recognise 'decade' or 'year', but will silently ignore
671
+ tickInterval 1decade
672
+
673
+ section Issue19062
674
+ 71 : item71, 1900, 1930
675
+ section Issue19401
676
+ 36 : item36, 1913, 1935
677
+ section Issue1300
678
+ 94 : item94, 1910, 1915
679
+ 5 : item5, 1920, 1925
680
+ 0 : milestone, item0, 1918, 1s
681
+ 9 : vert, 1906, 1s %% not yet official
682
+ 64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250
683
+ ```
684
+
685
+ ```mermaid
686
+ ---
687
+ # Frontmatter config, YAML comments
688
+ title: Ignored if specified in chart
689
+ displayMode: compact #gantt specific setting but works at this level too
690
+ config:
691
+ # theme: forest
692
+ # themeCSS: " #item36 { fill: CadetBlue } "
693
+ themeCSS: " // YAML supports multiline strings using a newline markers: \n
694
+ #item36 { fill: CadetBlue } \n
695
+
696
+ // Custom marker workaround CSS from forum (below) \n
697
+ rect[id^=workaround] { height: calc(100% - 50px) ; transform: translate(9px, 25px); y: 0; width: 1.5px; stroke: none; fill: red; } \n
698
+ text[id^=workaround] { fill: red; y: 100%; font-size: 15px;}
699
+ "
700
+ gantt:
701
+ useWidth: 400
702
+ rightPadding: 0
703
+ topAxis: true #false
704
+ numberSectionStyles: 2
705
+ ---
706
+ gantt
707
+ title Timeline - Gantt Sampler
708
+ dateFormat YYYY
709
+ axisFormat %y
710
+ %% this next line doesn't recognise 'decade' or 'year', but will silently ignore
711
+ tickInterval 1decade
712
+
713
+ section Issue19062
714
+ 71 : item71, 1900, 1930
715
+ section Issue19401
716
+ 36 : item36, 1913, 1935
717
+ section Issue1300
718
+ 94 : item94, 1910, 1915
719
+ 5 : item5, 1920, 1925
720
+ 0 : milestone, item0, 1918, 1s
721
+ 9 : vert, 1906, 1s %% not yet official
722
+ 64 : workaround, 1923, 1s %% custom CSS object https://github.com/mermaid-js/mermaid/issues/3250
723
+ ```
724
+
725
+ <!--- cspell:ignore isadded --->