@hawkeyexl/manni 4.12.4 → 4.13.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 (186) hide show
  1. package/README.md +1 -1
  2. package/dist/{batch-UHLVBMYM.js → batch-OB2FXT47.js} +12 -12
  3. package/dist/{build-4RPXBSAO.js → build-4BL24BG3.js} +13 -13
  4. package/dist/{calibrate-POL5DCJ6.js → calibrate-AEDJ7N7G.js} +13 -13
  5. package/dist/{capture-I7ZYG7NZ.js → capture-TP3P4YNL.js} +12 -12
  6. package/dist/{check-6TEG5TM6.js → check-5IYH42KS.js} +14 -14
  7. package/dist/{check-3O2PZ7TZ.js → check-LU5YC3L4.js} +12 -12
  8. package/dist/{check-V7JUDAPS.js → check-NBN2YK2J.js} +13 -13
  9. package/dist/{check-DGOUTC3V.js → check-S55MH66H.js} +11 -11
  10. package/dist/{chunk-6KONPVHQ.js → chunk-3BVDFQ6Y.js} +2 -2
  11. package/dist/{chunk-JAPSZ44X.js → chunk-3HUCB4Z3.js} +4 -4
  12. package/dist/{chunk-LWMB7JRE.js → chunk-3O6U4ICM.js} +2 -2
  13. package/dist/{chunk-3QUCVYNX.js → chunk-3XGTNN3M.js} +3 -3
  14. package/dist/{chunk-AATCO43N.js → chunk-52WO7ESI.js} +3 -3
  15. package/dist/{chunk-TBAMBLF3.js → chunk-6ZFJWUUH.js} +132 -15
  16. package/dist/chunk-6ZFJWUUH.js.map +1 -0
  17. package/dist/{chunk-7TVIFCGT.js → chunk-7JPL3CUC.js} +2 -2
  18. package/dist/{chunk-RLPWXF5R.js → chunk-7RNONVHI.js} +6 -6
  19. package/dist/{chunk-WWKXPPN5.js → chunk-BMBAAPGN.js} +3 -3
  20. package/dist/{chunk-BGRP44SX.js → chunk-BQXY76JB.js} +4 -4
  21. package/dist/{chunk-N5JSOJY6.js → chunk-CODWRUAD.js} +2 -2
  22. package/dist/{chunk-5OKSFNUV.js → chunk-DQOM3DEU.js} +5 -5
  23. package/dist/{chunk-QUG53QGZ.js → chunk-E6BVUDGY.js} +3 -3
  24. package/dist/{chunk-PSPNIAOP.js → chunk-EQ7E6HMG.js} +8 -8
  25. package/dist/{chunk-7JUIJ7Q5.js → chunk-GWI6JPTT.js} +3 -3
  26. package/dist/{chunk-VXU75N5R.js → chunk-HIEGOW7X.js} +3 -3
  27. package/dist/{chunk-GNUZ37L2.js → chunk-HKTGHLBA.js} +2 -2
  28. package/dist/{chunk-GNUZ37L2.js.map → chunk-HKTGHLBA.js.map} +1 -1
  29. package/dist/{chunk-Y4TDIUG6.js → chunk-HY6ROJTH.js} +2 -2
  30. package/dist/{chunk-PP22XDW2.js → chunk-IGQMBHFY.js} +6 -6
  31. package/dist/{chunk-J4ZOTZII.js → chunk-J5NOWIJ3.js} +6 -6
  32. package/dist/{chunk-XEYS3KAZ.js → chunk-JUL2PRQN.js} +4 -4
  33. package/dist/{chunk-NLELGEKL.js → chunk-KE2F7QES.js} +5 -5
  34. package/dist/{chunk-EBZ4QKKX.js → chunk-LNGSE7V2.js} +2 -2
  35. package/dist/{chunk-EU4HDGG4.js → chunk-LSFXNAHU.js} +7 -7
  36. package/dist/{chunk-SSDSV52B.js → chunk-N6A6DJUO.js} +4 -4
  37. package/dist/{chunk-Z42MO7SO.js → chunk-NSAW7U42.js} +2 -2
  38. package/dist/{chunk-KRKNZ3IV.js → chunk-NTEYYYKL.js} +34 -10
  39. package/dist/chunk-NTEYYYKL.js.map +1 -0
  40. package/dist/{chunk-7QH2ZI4F.js → chunk-NWUXRV6N.js} +52 -27
  41. package/dist/chunk-NWUXRV6N.js.map +1 -0
  42. package/dist/{chunk-QWE3WLV4.js → chunk-OBXCJZ6R.js} +5 -5
  43. package/dist/{chunk-VFL3ERMI.js → chunk-OREHJQNN.js} +2 -2
  44. package/dist/{chunk-DTXLFSAB.js → chunk-OUAH7XF2.js} +2 -2
  45. package/dist/{chunk-ZCJUSQM7.js → chunk-OYIWF3B2.js} +10 -10
  46. package/dist/{chunk-HP43LH7E.js → chunk-PA7CMQGD.js} +2 -2
  47. package/dist/{chunk-5NNPEPVM.js → chunk-PCGBXHSE.js} +3 -3
  48. package/dist/{chunk-TR2XFZPR.js → chunk-QKT67PFE.js} +3 -3
  49. package/dist/{chunk-YGFIQ6Y5.js → chunk-SCLXVTFZ.js} +1 -1
  50. package/dist/{chunk-YGFIQ6Y5.js.map → chunk-SCLXVTFZ.js.map} +1 -1
  51. package/dist/{chunk-PNUM6RHR.js → chunk-TDCOKKMI.js} +3 -3
  52. package/dist/{chunk-X4GQ4HPY.js → chunk-TQ3W6RKG.js} +2 -2
  53. package/dist/{chunk-EX6E2P6Z.js → chunk-ULDV2LUI.js} +2 -2
  54. package/dist/{chunk-XP4RNQZL.js → chunk-UQMLCIRX.js} +242 -15
  55. package/dist/chunk-UQMLCIRX.js.map +1 -0
  56. package/dist/{chunk-KQRYW4DN.js → chunk-VNYXK7TM.js} +3 -3
  57. package/dist/{chunk-3FXPIZXL.js → chunk-VOXOBUTX.js} +2 -2
  58. package/dist/{chunk-4IW6FAUN.js → chunk-VYBYUQIP.js} +7 -7
  59. package/dist/{chunk-4TGIGVFO.js → chunk-WVXCN5DS.js} +4 -4
  60. package/dist/{chunk-J67EOBN3.js → chunk-X4MPUD4B.js} +3 -3
  61. package/dist/{chunk-W7EZJPRX.js → chunk-Y6M4JFKG.js} +3 -3
  62. package/dist/{chunk-U4SY2TJS.js → chunk-YZ4TJLZQ.js} +7 -7
  63. package/dist/{cli-USPQURPP.js → cli-4JHQCPHU.js} +2 -2
  64. package/dist/{cli-UL2IFH3R.js → cli-7DETHSNW.js} +15 -15
  65. package/dist/{cli-4ANSKDPD.js → cli-AZKWTCFV.js} +9 -9
  66. package/dist/{cli-2OQKCKRD.js → cli-BW5VOFOZ.js} +8 -8
  67. package/dist/{cli-5QGP6R63.js → cli-DGFLJ2DD.js} +2 -2
  68. package/dist/{cli-SDTXHLCA.js → cli-ECVT4YXR.js} +16 -16
  69. package/dist/{cli-IE3CYYHA.js → cli-G66X7YMP.js} +54 -15
  70. package/dist/cli-G66X7YMP.js.map +1 -0
  71. package/dist/{cli-2Q5FODAX.js → cli-H5LVGOVT.js} +31 -31
  72. package/dist/{cli-RQRMZKKM.js → cli-KYTCJYXK.js} +16 -16
  73. package/dist/{cli-SGSS6FXE.js → cli-L5B2RVV2.js} +19 -19
  74. package/dist/{cli-RQSCBJJY.js → cli-RP5E7XHC.js} +13 -13
  75. package/dist/cli.js +14 -14
  76. package/dist/docmeta.js +8 -8
  77. package/dist/{github-PBIYRH5S.js → github-DJQ4MWNZ.js} +13 -13
  78. package/dist/{github-RJG2MAWB.js → github-UWTDM2J2.js} +11 -11
  79. package/dist/index.d.ts +76 -4
  80. package/dist/index.js +47 -37
  81. package/dist/index.js.map +1 -1
  82. package/dist/{json-PQURAHQ5.js → json-LCVPMEAM.js} +11 -11
  83. package/dist/{labels-FMLO2URZ.js → labels-OQXBVM4A.js} +10 -10
  84. package/dist/{lint-N2CY66JX.js → lint-O7XRHKFP.js} +13 -13
  85. package/dist/{list-VBFNFEXV.js → list-OOOCLOAL.js} +11 -11
  86. package/dist/{list-OMHTVFDY.js → list-OYQ5XPN2.js} +11 -11
  87. package/dist/{page-X3HYSH6D.js → page-XPX5XJZE.js} +10 -10
  88. package/dist/{prepare-IQMB262G.js → prepare-VMBIQYAM.js} +11 -11
  89. package/dist/{pretty-22PXIEOV.js → pretty-KG6TMOEI.js} +12 -12
  90. package/dist/{pretty-K5BOCKBB.js → pretty-KSTZMBUF.js} +11 -11
  91. package/dist/{reporters-324OWH36.js → reporters-AQU4W3KY.js} +4 -4
  92. package/dist/{reporters-5LIYYE6M.js → reporters-FBYLPKD4.js} +12 -12
  93. package/dist/{run-4EKG6EMI.js → run-KUGTU3TT.js} +11 -11
  94. package/dist/{term-2ADSKGZW.js → term-SI3VM6EM.js} +15 -15
  95. package/dist/{validate-LRYUEZLJ.js → validate-NQO7TFSN.js} +5 -5
  96. package/package.json +1 -1
  97. package/plugin/manni/.claude-plugin/plugin.json +1 -1
  98. package/plugin/manni/skills/fix/SKILL.md +4 -2
  99. package/schemas/lint/template.json +6 -1
  100. package/templates/lint/tgdp/concept.yaml +27 -13
  101. package/templates/lint/tgdp/how-to.yaml +35 -21
  102. package/templates/lint/tgdp/readme.yaml +69 -25
  103. package/templates/lint/tgdp/reference.yaml +44 -31
  104. package/templates/lint/tgdp/release-notes.yaml +48 -19
  105. package/templates/lint/tgdp/troubleshooting.yaml +45 -31
  106. package/templates/lint/tgdp/tutorial.yaml +35 -19
  107. package/dist/chunk-7QH2ZI4F.js.map +0 -1
  108. package/dist/chunk-KRKNZ3IV.js.map +0 -1
  109. package/dist/chunk-TBAMBLF3.js.map +0 -1
  110. package/dist/chunk-XP4RNQZL.js.map +0 -1
  111. package/dist/cli-IE3CYYHA.js.map +0 -1
  112. /package/dist/{batch-UHLVBMYM.js.map → batch-OB2FXT47.js.map} +0 -0
  113. /package/dist/{build-4RPXBSAO.js.map → build-4BL24BG3.js.map} +0 -0
  114. /package/dist/{calibrate-POL5DCJ6.js.map → calibrate-AEDJ7N7G.js.map} +0 -0
  115. /package/dist/{capture-I7ZYG7NZ.js.map → capture-TP3P4YNL.js.map} +0 -0
  116. /package/dist/{check-3O2PZ7TZ.js.map → check-5IYH42KS.js.map} +0 -0
  117. /package/dist/{check-6TEG5TM6.js.map → check-LU5YC3L4.js.map} +0 -0
  118. /package/dist/{check-V7JUDAPS.js.map → check-NBN2YK2J.js.map} +0 -0
  119. /package/dist/{check-DGOUTC3V.js.map → check-S55MH66H.js.map} +0 -0
  120. /package/dist/{chunk-6KONPVHQ.js.map → chunk-3BVDFQ6Y.js.map} +0 -0
  121. /package/dist/{chunk-JAPSZ44X.js.map → chunk-3HUCB4Z3.js.map} +0 -0
  122. /package/dist/{chunk-LWMB7JRE.js.map → chunk-3O6U4ICM.js.map} +0 -0
  123. /package/dist/{chunk-3QUCVYNX.js.map → chunk-3XGTNN3M.js.map} +0 -0
  124. /package/dist/{chunk-AATCO43N.js.map → chunk-52WO7ESI.js.map} +0 -0
  125. /package/dist/{chunk-7TVIFCGT.js.map → chunk-7JPL3CUC.js.map} +0 -0
  126. /package/dist/{chunk-RLPWXF5R.js.map → chunk-7RNONVHI.js.map} +0 -0
  127. /package/dist/{chunk-WWKXPPN5.js.map → chunk-BMBAAPGN.js.map} +0 -0
  128. /package/dist/{chunk-BGRP44SX.js.map → chunk-BQXY76JB.js.map} +0 -0
  129. /package/dist/{chunk-N5JSOJY6.js.map → chunk-CODWRUAD.js.map} +0 -0
  130. /package/dist/{chunk-5OKSFNUV.js.map → chunk-DQOM3DEU.js.map} +0 -0
  131. /package/dist/{chunk-QUG53QGZ.js.map → chunk-E6BVUDGY.js.map} +0 -0
  132. /package/dist/{chunk-PSPNIAOP.js.map → chunk-EQ7E6HMG.js.map} +0 -0
  133. /package/dist/{chunk-7JUIJ7Q5.js.map → chunk-GWI6JPTT.js.map} +0 -0
  134. /package/dist/{chunk-VXU75N5R.js.map → chunk-HIEGOW7X.js.map} +0 -0
  135. /package/dist/{chunk-Y4TDIUG6.js.map → chunk-HY6ROJTH.js.map} +0 -0
  136. /package/dist/{chunk-PP22XDW2.js.map → chunk-IGQMBHFY.js.map} +0 -0
  137. /package/dist/{chunk-J4ZOTZII.js.map → chunk-J5NOWIJ3.js.map} +0 -0
  138. /package/dist/{chunk-XEYS3KAZ.js.map → chunk-JUL2PRQN.js.map} +0 -0
  139. /package/dist/{chunk-NLELGEKL.js.map → chunk-KE2F7QES.js.map} +0 -0
  140. /package/dist/{chunk-EBZ4QKKX.js.map → chunk-LNGSE7V2.js.map} +0 -0
  141. /package/dist/{chunk-EU4HDGG4.js.map → chunk-LSFXNAHU.js.map} +0 -0
  142. /package/dist/{chunk-SSDSV52B.js.map → chunk-N6A6DJUO.js.map} +0 -0
  143. /package/dist/{chunk-Z42MO7SO.js.map → chunk-NSAW7U42.js.map} +0 -0
  144. /package/dist/{chunk-QWE3WLV4.js.map → chunk-OBXCJZ6R.js.map} +0 -0
  145. /package/dist/{chunk-VFL3ERMI.js.map → chunk-OREHJQNN.js.map} +0 -0
  146. /package/dist/{chunk-DTXLFSAB.js.map → chunk-OUAH7XF2.js.map} +0 -0
  147. /package/dist/{chunk-ZCJUSQM7.js.map → chunk-OYIWF3B2.js.map} +0 -0
  148. /package/dist/{chunk-HP43LH7E.js.map → chunk-PA7CMQGD.js.map} +0 -0
  149. /package/dist/{chunk-5NNPEPVM.js.map → chunk-PCGBXHSE.js.map} +0 -0
  150. /package/dist/{chunk-TR2XFZPR.js.map → chunk-QKT67PFE.js.map} +0 -0
  151. /package/dist/{chunk-PNUM6RHR.js.map → chunk-TDCOKKMI.js.map} +0 -0
  152. /package/dist/{chunk-X4GQ4HPY.js.map → chunk-TQ3W6RKG.js.map} +0 -0
  153. /package/dist/{chunk-EX6E2P6Z.js.map → chunk-ULDV2LUI.js.map} +0 -0
  154. /package/dist/{chunk-KQRYW4DN.js.map → chunk-VNYXK7TM.js.map} +0 -0
  155. /package/dist/{chunk-3FXPIZXL.js.map → chunk-VOXOBUTX.js.map} +0 -0
  156. /package/dist/{chunk-4IW6FAUN.js.map → chunk-VYBYUQIP.js.map} +0 -0
  157. /package/dist/{chunk-4TGIGVFO.js.map → chunk-WVXCN5DS.js.map} +0 -0
  158. /package/dist/{chunk-J67EOBN3.js.map → chunk-X4MPUD4B.js.map} +0 -0
  159. /package/dist/{chunk-W7EZJPRX.js.map → chunk-Y6M4JFKG.js.map} +0 -0
  160. /package/dist/{chunk-U4SY2TJS.js.map → chunk-YZ4TJLZQ.js.map} +0 -0
  161. /package/dist/{cli-USPQURPP.js.map → cli-4JHQCPHU.js.map} +0 -0
  162. /package/dist/{cli-UL2IFH3R.js.map → cli-7DETHSNW.js.map} +0 -0
  163. /package/dist/{cli-4ANSKDPD.js.map → cli-AZKWTCFV.js.map} +0 -0
  164. /package/dist/{cli-2OQKCKRD.js.map → cli-BW5VOFOZ.js.map} +0 -0
  165. /package/dist/{cli-5QGP6R63.js.map → cli-DGFLJ2DD.js.map} +0 -0
  166. /package/dist/{cli-SDTXHLCA.js.map → cli-ECVT4YXR.js.map} +0 -0
  167. /package/dist/{cli-2Q5FODAX.js.map → cli-H5LVGOVT.js.map} +0 -0
  168. /package/dist/{cli-RQRMZKKM.js.map → cli-KYTCJYXK.js.map} +0 -0
  169. /package/dist/{cli-SGSS6FXE.js.map → cli-L5B2RVV2.js.map} +0 -0
  170. /package/dist/{cli-RQSCBJJY.js.map → cli-RP5E7XHC.js.map} +0 -0
  171. /package/dist/{github-PBIYRH5S.js.map → github-DJQ4MWNZ.js.map} +0 -0
  172. /package/dist/{github-RJG2MAWB.js.map → github-UWTDM2J2.js.map} +0 -0
  173. /package/dist/{json-PQURAHQ5.js.map → json-LCVPMEAM.js.map} +0 -0
  174. /package/dist/{labels-FMLO2URZ.js.map → labels-OQXBVM4A.js.map} +0 -0
  175. /package/dist/{lint-N2CY66JX.js.map → lint-O7XRHKFP.js.map} +0 -0
  176. /package/dist/{list-OMHTVFDY.js.map → list-OOOCLOAL.js.map} +0 -0
  177. /package/dist/{list-VBFNFEXV.js.map → list-OYQ5XPN2.js.map} +0 -0
  178. /package/dist/{page-X3HYSH6D.js.map → page-XPX5XJZE.js.map} +0 -0
  179. /package/dist/{prepare-IQMB262G.js.map → prepare-VMBIQYAM.js.map} +0 -0
  180. /package/dist/{pretty-22PXIEOV.js.map → pretty-KG6TMOEI.js.map} +0 -0
  181. /package/dist/{pretty-K5BOCKBB.js.map → pretty-KSTZMBUF.js.map} +0 -0
  182. /package/dist/{reporters-324OWH36.js.map → reporters-AQU4W3KY.js.map} +0 -0
  183. /package/dist/{reporters-5LIYYE6M.js.map → reporters-FBYLPKD4.js.map} +0 -0
  184. /package/dist/{run-4EKG6EMI.js.map → run-KUGTU3TT.js.map} +0 -0
  185. /package/dist/{term-2ADSKGZW.js.map → term-SI3VM6EM.js.map} +0 -0
  186. /package/dist/{validate-LRYUEZLJ.js.map → validate-NQO7TFSN.js.map} +0 -0
@@ -18,47 +18,61 @@ templates:
18
18
  how-to:
19
19
  types:
20
20
  - how-to
21
+ guide: https://gitlab.com/tgdp/templates/-/blob/v1.6.0/how-to/guide_how-to.md
22
+ description: >-
23
+ Walk a reader who already knows the product through the steps to
24
+ complete one task.
21
25
  sections:
26
+ # What the guide explains, and optionally when and why a reader
27
+ # would want to do it. A how-to that does not say what task it
28
+ # covers is not a how-to, so at least one paragraph is required.
22
29
  - id: overview
23
30
  description: >-
24
- What the guide explains, and optionally when and why a reader
25
- would want to do it. A how-to that does not say what task it
26
- covers is not a how-to, so at least one paragraph is required.
31
+ Say what task this guide covers, and when and why a reader would
32
+ do it.
27
33
  heading: Overview
28
34
  max: 1
29
35
  contains:
30
36
  paragraphs:
31
37
  min: 1
38
+ # Prerequisites. Upstream marks this "{This section is optional}",
39
+ # and the authoring guide repeats that, so it is not required.
40
+ # Its shape varies too much to constrain - a lead-in and a bullet
41
+ # list in the template, but prose or grouped categories in the
42
+ # guide's own examples - so no content counts are set.
32
43
  - id: before-you-start
33
44
  description: >-
34
- Prerequisites. Upstream marks this "{This section is optional}",
35
- and the authoring guide repeats that, so it is not required.
36
- Its shape varies too much to constrain - a lead-in and a bullet
37
- list in the template, but prose or grouped categories in the
38
- guide's own examples - so no content counts are set.
45
+ List what the reader needs before starting, such as background
46
+ knowledge, software, access, or other guides to read first.
39
47
  heading: Before you start
40
48
  min: 0
41
49
  max: 1
50
+ # The steps. Upstream's heading is the placeholder "{Task name}",
51
+ # so this is a slot; leaving `max` unbounded lets a page carry
52
+ # several task sections, which the guide explicitly contemplates
53
+ # ("you may break down the task into multiple logical sub-tasks").
54
+ # No `lists` floor: a task that delegates its procedure to
55
+ # sub-tasks legitimately holds no ordered list of its own.
42
56
  - id: task
43
57
  description: >-
44
- The steps. Upstream's heading is the placeholder "{Task name}",
45
- so this is a slot; leaving `max` unbounded lets a page carry
46
- several task sections, which the guide explicitly contemplates
47
- ("you may break down the task into multiple logical sub-tasks").
48
- No `lists` floor: a task that delegates its procedure to
49
- sub-tasks legitimately holds no ordered list of its own.
58
+ Name the task, starting with a verb, then give its steps as a
59
+ numbered list with one action per step.
50
60
  sections:
61
+ # "### {Sub-task}" - another placeholder heading, and upstream
62
+ # says to "include a sub-task only if the task is big and
63
+ # complex", so it is optional and may occur more than once.
51
64
  - id: sub-task
52
65
  description: >-
53
- "### {Sub-task}" - another placeholder heading, and upstream
54
- says to "include a sub-task only if the task is big and
55
- complex", so it is optional and may occur more than once.
66
+ Break a large task into smaller parts, each with its own
67
+ numbered steps.
56
68
  min: 0
69
+ # Related reading. Upstream includes it unconditionally and does not
70
+ # mark it optional the way it marks "Before you start", so it is
71
+ # required. Its body is a mix of prose and links, so nothing is
72
+ # counted.
57
73
  - id: see-also
58
74
  description: >-
59
- Related reading. Upstream includes it unconditionally and does not
60
- mark it optional the way it marks "Before you start", so it is
61
- required. Its body is a mix of prose and links, so nothing is
62
- counted.
75
+ Link to related topics the reader may want next but does not need
76
+ to finish this task.
63
77
  heading: See also
64
78
  max: 1
@@ -33,37 +33,51 @@ templates:
33
33
  readme:
34
34
  types:
35
35
  - readme
36
+ guide: https://gitlab.com/tgdp/templates/-/blob/v1.6.0/readme/guide_readme.md
37
+ description: >-
38
+ Introduce the project, say who it is for, and show how to install,
39
+ use, and contribute to it.
36
40
  sections:
41
+ # `## {Project} logo and badges`. Explicitly optional upstream.
42
+ # Anchored on the words either side of the placeholder rather than
43
+ # left as a slot, so it cannot swallow whatever section happens to
44
+ # come first.
37
45
  - id: logo-and-badges
38
46
  description: >-
39
- `## {Project} logo and badges`. Explicitly optional upstream.
40
- Anchored on the words either side of the placeholder rather than
41
- left as a slot, so it cannot swallow whatever section happens to
42
- come first.
47
+ Show the project logo, and any badges for status, build health, or
48
+ other signs that the project is current.
43
49
  min: 0
44
50
  max: 1
45
51
  heading:
46
52
  pattern: "\\b[Ll]ogos?\\b|\\b[Bb]adges?\\b"
53
+ # `## {Project Name}` - the heading is nothing but a placeholder,
54
+ # so this is a slot. One section, never a run.
47
55
  - id: project-name
48
56
  description: >-
49
- `## {Project Name}` - the heading is nothing but a placeholder,
50
- so this is a slot. One section, never a run.
57
+ Name the project where readers will see it first, with its URL and
58
+ owners if they help identify it.
51
59
  min: 0
52
60
  max: 1
53
61
  sections:
54
62
  - min: 0
63
+ description: Add any subsections this section needs here.
64
+ # Explicitly optional upstream. A table of contents that holds no
65
+ # list is not one, hence the list minimum.
55
66
  - id: table-of-contents
56
67
  description: >-
57
- Explicitly optional upstream. A table of contents that holds no
58
- list is not one, hence the list minimum.
68
+ List the README's sections as links, so readers can find their way
69
+ around a long README.
59
70
  min: 0
60
71
  max: 1
61
72
  heading: Table of contents
62
73
  contains:
63
74
  lists:
64
75
  min: 1
76
+ # What the project is and what it lets you do.
65
77
  - id: project-description
66
- description: What the project is and what it lets you do.
78
+ description: >-
79
+ Say what the project does and why a reader should care, before
80
+ naming the tools it is built with.
67
81
  min: 0
68
82
  max: 1
69
83
  heading: Project description
@@ -72,86 +86,115 @@ templates:
72
86
  min: 1
73
87
  sections:
74
88
  - min: 0
89
+ description: Add any subsections this section needs here.
90
+ # The intended audience and their objective.
75
91
  - id: who-this-project-is-for
76
- description: The intended audience and their objective.
92
+ description: >-
93
+ Say who the project is for, and the problems it helps them solve.
77
94
  min: 0
78
95
  max: 1
79
96
  heading: Who this project is for
80
97
  contains:
81
98
  paragraphs:
82
99
  min: 1
100
+ # Prerequisites. No list minimum: upstream's own troubleshooting
101
+ # content shows these sections are as often tables, which the
102
+ # parser does not count as lists.
83
103
  - id: project-dependencies
84
104
  description: >-
85
- Prerequisites. No list minimum: upstream's own troubleshooting
86
- content shows these sections are as often tables, which the
87
- parser does not count as lists.
105
+ List what a reader needs before using the project, and link to how
106
+ to get each item.
88
107
  min: 0
89
108
  max: 1
90
109
  heading: Project dependencies
110
+ # `## Instructions for using {Project Name}`, anchored on the
111
+ # literal opening words. Its subsections are the install/configure/
112
+ # run/troubleshoot procedure, each of which is itself optional and
113
+ # itself heading-anchored.
91
114
  - id: instructions-for-use
92
115
  description: >-
93
- `## Instructions for using {Project Name}`, anchored on the
94
- literal opening words. Its subsections are the install/configure/
95
- run/troubleshoot procedure, each of which is itself optional and
96
- itself heading-anchored.
116
+ Give clear, numbered steps for using the project, grouped into
117
+ installing, configuring, running, and troubleshooting it.
97
118
  min: 0
98
119
  max: 1
99
120
  heading:
100
121
  pattern: "^Instructions\\b"
101
122
  sections:
123
+ # `### Install {Project Name}`.
102
124
  - id: install
103
- description: "`### Install {Project Name}`."
125
+ description: Give the steps to install or download the project.
104
126
  min: 0
105
127
  max: 1
106
128
  heading:
107
129
  pattern: "^Install"
108
130
  sections:
109
131
  - min: 0
132
+ description: Add any subsections this section needs here.
133
+ # `### Configure {Project Name}`.
110
134
  - id: configure
111
- description: "`### Configure {Project Name}`."
135
+ description: Give the steps to configure the project.
112
136
  min: 0
113
137
  max: 1
114
138
  heading:
115
139
  pattern: "^Configur"
116
140
  sections:
117
141
  - min: 0
142
+ description: Add any subsections this section needs here.
143
+ # `### Run {Project Name}`.
118
144
  - id: run
119
- description: "`### Run {Project Name}`."
145
+ description: >-
146
+ Give the steps to run the project, and link to a quickstart if
147
+ there is one.
120
148
  min: 0
121
149
  max: 1
122
150
  heading:
123
151
  pattern: "^Run(ning)?\\b"
124
152
  sections:
125
153
  - min: 0
154
+ description: Add any subsections this section needs here.
155
+ # `### Troubleshoot {Project Name}`.
126
156
  - id: troubleshoot
127
- description: "`### Troubleshoot {Project Name}`."
157
+ description: >-
158
+ Describe common problems and how to solve them. A table of
159
+ issues and solutions works well.
128
160
  min: 0
129
161
  max: 1
130
162
  heading:
131
163
  pattern: "^Troubleshoot"
132
164
  sections:
133
165
  - min: 0
166
+ description: Add any subsections this section needs here.
134
167
  - min: 0
168
+ description: Add any other usage sections here, after the ones above.
169
+ # How to contribute, or a link to the contributing guide.
135
170
  - id: contributing-guidelines
136
- description: How to contribute, or a link to the contributing guide.
171
+ description: >-
172
+ Say how to contribute, or link to the project's contributing guide.
137
173
  min: 0
138
174
  max: 1
139
175
  heading: Contributing guidelines
140
176
  contains:
141
177
  paragraphs:
142
178
  min: 1
179
+ # Links to further reading.
143
180
  - id: additional-documentation
144
- description: Links to further reading.
181
+ description: >-
182
+ Link to further documentation, such as the project website and
183
+ examples, with a short description of each.
145
184
  min: 0
146
185
  max: 1
147
186
  heading: Additional documentation
187
+ # Support resources.
148
188
  - id: how-to-get-help
149
- description: Support resources.
189
+ description: >-
190
+ Say where readers can get help, such as a mailing list, a chat
191
+ channel, or an issue tracker.
150
192
  min: 0
151
193
  max: 1
152
194
  heading: How to get help
195
+ # The licence the project is published under.
153
196
  - id: terms-of-use
154
- description: The licence the project is published under.
197
+ description: State the project's license and any other licensing terms.
155
198
  min: 0
156
199
  max: 1
157
200
  heading: Terms of use
@@ -161,3 +204,4 @@ templates:
161
204
  # Tolerate a document that carries more than one top-level heading
162
205
  # beyond the ones named above.
163
206
  - min: 0
207
+ description: Add any other sections here, after the ones above.
@@ -17,59 +17,71 @@ templates:
17
17
  reference:
18
18
  types:
19
19
  - reference
20
+ guide: https://gitlab.com/tgdp/templates/-/blob/v1.6.0/reference/guide_reference.md
21
+ description: >-
22
+ Describe the parts of the product in a structured form the reader can
23
+ scan quickly. Keep step-by-step instructions out of it.
20
24
 
21
25
  sections:
26
+ # `## {Reference description}` - a placeholder heading, so a slot.
27
+ # Summarizes what the reference covers and how it relates to the
28
+ # rest of the doc set. Required: the guide makes this the section
29
+ # that "concisely summarizes the reference article's content and
30
+ # purpose".
22
31
  - id: reference-description
23
32
  description: >-
24
- `## {Reference description}` - a placeholder heading, so a slot.
25
- Summarizes what the reference covers and how it relates to the
26
- rest of the doc set. Required: the guide makes this the section
27
- that "concisely summarizes the reference article's content and
28
- purpose".
33
+ Briefly summarize what this reference covers and what the reader
34
+ can find in it.
29
35
  max: 1
30
36
 
37
+ # `## {Table name or other structured entry}` - a placeholder
38
+ # heading standing for a repeated section, so a slot with an
39
+ # unbounded `max`. Claims every consecutive section up to
40
+ # `commands` or `related`. Optional because it and
41
+ # `reference-description` are both unconstrained placeholders: the
42
+ # matcher cannot tell "the description" from "the first entry", so
43
+ # requiring both would
44
+ # mandate two H2s where the doctype only asks that entries exist.
45
+ # The node model can name a table directly (proposal 0065), so this
46
+ # asks for one. Every parser reports tables now, so the rule runs and
47
+ # upstream's own table satisfies it. Against a format that cannot
48
+ # report them the rule is pruned and reported as an
49
+ # `unsupported_content_kind` warning, rather than silently passing or
50
+ # failing a page for a shape that format cannot show.
31
51
  - id: structured-entry
32
52
  description: >-
33
- `## {Table name or other structured entry}` - a placeholder
34
- heading standing for a repeated section, so a slot with an
35
- unbounded `max`. Claims every consecutive section up to
36
- `commands` or `related`. Optional because it and
37
- `reference-description` are both unconstrained placeholders: the
38
- matcher cannot tell "the description" from "the first entry", so
39
- requiring both would
40
- mandate two H2s where the doctype only asks that entries exist.
41
- The node model can name a table directly (proposal 0065), so this
42
- asks for one. Every parser reports tables now, so the rule runs and
43
- upstream's own table satisfies it. Against a format that cannot
44
- report them the rule is pruned and reported as an
45
- `unsupported_content_kind` warning, rather than silently passing or
46
- failing a page for a shape that format cannot show.
53
+ Present the reference information in a table the reader can scan.
54
+ Use one section for each table or group of entries.
47
55
  min: 0
48
56
  contains:
49
57
  tables:
50
58
  min: 1
51
59
 
60
+ # `## (Optional) Commands`. The guide calls this "this optional
61
+ # section" outright. The pattern accepts the heading with the
62
+ # `(Optional)` marker still attached, as upstream ships it, and
63
+ # with the marker removed, as an author who keeps the section would
64
+ # write it. A section named anything else - "CLI commands",
65
+ # "Command reference" - simply falls to the entry slot above.
52
66
  - id: commands
53
67
  description: >-
54
- `## (Optional) Commands`. The guide calls this "this optional
55
- section" outright. The pattern accepts the heading with the
56
- `(Optional)` marker still attached, as upstream ships it, and
57
- with the marker removed, as an author who keeps the section would
58
- write it. A section named anything else - "CLI commands",
59
- "Command reference" - simply falls to the entry slot above.
68
+ List the commands, each with a short description and an example,
69
+ and say which settings are required or optional.
60
70
  min: 0
61
71
  max: 1
62
72
  heading:
63
73
  pattern: '^(?:\(Optional\)\s+)?Commands$'
64
74
 
75
+ # Trailing related-reading sections. Reference pages routinely end
76
+ # with them, the doctype does not enumerate them, and upstream does
77
+ # not forbid them. Named so the entry slot above stops before them
78
+ # rather than asking them for a table. No `max`, so a page can end
79
+ # with both "Notes" and "See also". With a bound of one, the entry
80
+ # slot would take the first of the two.
65
81
  - id: related
66
82
  description: >-
67
- Trailing related-reading sections. Reference pages routinely end
68
- with them, the doctype does not enumerate them, and upstream does
69
- not forbid them. Named so the entry slot above stops before them
70
- rather than asking them for a table. No `max`, so a page can end
71
- with both "Notes" and "See also". With a bound of one, the entry
72
- slot would take the first of the two.
83
+ Link to related pages, or add notes that the entries above do not
84
+ cover.
73
85
  min: 0
74
86
  heading:
75
87
  - See also
@@ -80,3 +92,4 @@ templates:
80
92
  # Anything after those is the author's own, and upstream does not forbid
81
93
  # it, so it is not a finding.
82
94
  - min: 0
95
+ description: Add any other sections here, after the ones above.
@@ -32,77 +32,106 @@ templates:
32
32
  release-notes:
33
33
  types:
34
34
  - release-notes
35
+ guide: https://gitlab.com/tgdp/templates/-/blob/v1.6.0/release-notes/guide_release-notes.md
36
+ # The page itself. Upstream titles it
37
+ # `Release notes - {Product name} {Release number}`; only the braced
38
+ # parts are placeholders, so the literal prefix is the one thing this
39
+ # template insists on. Its body carries the release version, the
40
+ # release date, and an optional high-level summary.
35
41
  description: >-
36
- The page itself. Upstream titles it
37
- `Release notes - {Product name} {Release number}`; only the braced
38
- parts are placeholders, so the literal prefix is the one thing this
39
- template insists on. Its body carries the release version, the
40
- release date, and an optional high-level summary.
42
+ Tell readers what changed in one release and why it matters to them.
43
+ Start the title with Release notes, then the product name and release
44
+ number.
41
45
  heading:
42
46
  pattern: '^Release [Nn]otes\b'
43
47
  sections:
48
+ # Functionality this release adds. Omitted by a release that adds none.
44
49
  - id: new-features
45
- description: Functionality this release adds. Omitted by a release that adds none.
50
+ description: >-
51
+ Describe each new feature and how it benefits the reader, most
52
+ important first.
46
53
  heading: New features
47
54
  min: 0
48
55
  max: 1
49
56
  sections:
50
57
  - min: 0
58
+ description: Add any subsections this section needs here.
51
59
 
60
+ # New functionality that does not switch itself on. Separated from
61
+ # `New features` upstream because these entries are action items
62
+ # for the reader, not announcements.
52
63
  - id: new-features-requiring-configuration-updates
53
64
  description: >-
54
- New functionality that does not switch itself on. Separated from
55
- `New features` upstream because these entries are action items
56
- for the reader, not announcements.
65
+ Describe each new feature the reader must configure before using
66
+ it, and what they need to change.
57
67
  heading: New features requiring configuration updates
58
68
  min: 0
59
69
  max: 1
60
70
  sections:
61
71
  - min: 0
72
+ description: Add any subsections this section needs here.
62
73
 
74
+ # Changes to functionality that already existed - speed, usability,
75
+ # behaviour.
63
76
  - id: improvements
64
- description: Changes to functionality that already existed - speed, usability, behaviour.
77
+ description: >-
78
+ Describe changes to existing features and how they benefit the
79
+ reader, most important first.
65
80
  heading: Improvements
66
81
  min: 0
67
82
  max: 1
68
83
  sections:
69
84
  - min: 0
85
+ description: Add any subsections this section needs here.
70
86
 
87
+ # Changes to programmatic interfaces, which have a different audience
88
+ # from the rest of the page.
71
89
  - id: api-web-service-updates
72
- description: Changes to programmatic interfaces, which have a different audience from the rest of the page.
90
+ description: Describe changes to the product's APIs and web services.
73
91
  heading: API/Web service updates
74
92
  min: 0
75
93
  max: 1
76
94
  sections:
77
95
  - min: 0
96
+ description: Add any subsections this section needs here.
78
97
 
98
+ # Defects resolved in this release.
79
99
  - id: bug-fixes
80
- description: Defects resolved in this release.
100
+ description: >-
101
+ Describe what each fix changes for the reader, by comparing what
102
+ the software did before with what it does now.
81
103
  heading: Bug fixes
82
104
  min: 0
83
105
  max: 1
84
106
  sections:
107
+ # Defects that are known and *not* resolved. Upstream nests this
108
+ # under `Bug fixes` rather than making it a category of its own,
109
+ # which puts what is still broken next to what was fixed.
85
110
  - id: known-issues
86
111
  description: >-
87
- Defects that are known and *not* resolved. Upstream nests this
88
- under `Bug fixes` rather than making it a category of its own,
89
- which puts what is still broken next to what was fixed.
112
+ Describe the problems this release does not fix, with a
113
+ workaround where one exists.
90
114
  heading: Known issues
91
115
  min: 0
92
116
  max: 1
93
117
  sections:
94
118
  - min: 0
119
+ description: Add any subsections this section needs here.
95
120
  - min: 0
121
+ description: Add any other subsections here, after the ones above.
96
122
 
123
+ # Functionality being retired, with the date it stops being
124
+ # supported and what replaces it. Upstream writes the heading as
125
+ # `Optional: Deprecation notice`, so the pattern accepts the
126
+ # published form as well as the one a real page would use.
97
127
  - id: deprecation-notice
98
128
  description: >-
99
- Functionality being retired, with the date it stops being
100
- supported and what replaces it. Upstream writes the heading as
101
- `Optional: Deprecation notice`, so the pattern accepts the
102
- published form as well as the one a real page would use.
129
+ Name each feature being removed, say when support ends, and say
130
+ what replaces it and what the reader must do.
103
131
  heading:
104
132
  pattern: '^(Optional: )?Deprecation notice$'
105
133
  min: 0
106
134
  max: 1
107
135
  sections:
108
136
  - min: 0
137
+ description: Add any subsections this section needs here.
@@ -33,66 +33,80 @@ templates:
33
33
  troubleshooting:
34
34
  types:
35
35
  - troubleshooting
36
+ guide: https://gitlab.com/tgdp/templates/-/blob/v1.6.0/troubleshooting/guide_troubleshooting.md
37
+ # The page itself (H1). Upstream titles it
38
+ # `# Troubleshooting {product name, feature, or task}`, a placeholder,
39
+ # so the text is left free. What the doctype does ask for is underneath
40
+ # it: the one- or two-sentence statement of what the guide covers,
41
+ # which is how a reader decides in seconds whether they are in the
42
+ # right document.
36
43
  description: >-
37
- The page itself (H1). Upstream titles it
38
- `# Troubleshooting {product name, feature, or task}`, a placeholder,
39
- so the text is left free. What the doctype does ask for is underneath
40
- it: the one- or two-sentence statement of what the guide covers,
41
- which is how a reader decides in seconds whether they are in the
42
- right document.
44
+ Help the reader solve a problem with the product. Open with a sentence
45
+ or two on what this guide covers, so readers know at once if they are
46
+ in the right place.
43
47
  contains:
44
48
  paragraphs:
45
49
  min: 1
46
50
  sections:
51
+ # One thing the reader might be seeing - an error message, a
52
+ # failure, a performance problem. An unbounded `max` claims every
53
+ # consecutive H2 whose title starts with "Symptom". The number
54
+ # upstream attaches (`## Symptom 1`) is not required, so
55
+ # `## Symptom: sync stalls` is equally acceptable.
47
56
  - id: symptom
48
57
  description: >-
49
- One thing the reader might be seeing - an error message, a
50
- failure, a performance problem. An unbounded `max` claims every
51
- consecutive H2 whose title starts with "Symptom". The number
52
- upstream attaches (`## Symptom 1`) is not required, so
53
- `## Symptom: sync stalls` is equally acceptable.
58
+ Describe one sign of the problem the reader might see, such as an
59
+ error message or a slowdown. Start the heading with Symptom.
54
60
  heading:
55
61
  pattern: '^[Ss]ymptoms?\b'
56
62
  sections:
63
+ # One cause of the symptom, optionally followed by its solution
64
+ # or workaround - `### Cause 1 of symptom 1`, then
65
+ # `### Solution or workaround to cause 1 of symptom 1`. The
66
+ # solution is optional within the pair because upstream's own
67
+ # file pairs a second cause with no heading solution at all.
57
68
  - id: cause-or-solution
58
69
  description: >-
59
- One cause of the symptom, optionally followed by its solution
60
- or workaround - `### Cause 1 of symptom 1`, then
61
- `### Solution or workaround to cause 1 of symptom 1`. The
62
- solution is optional within the pair because upstream's own
63
- file pairs a second cause with no heading solution at all.
70
+ Explain one cause of the symptom, followed by its solution or
71
+ workaround. Repeat the pair for each cause.
64
72
  repeat:
73
+ # At least one is required: a symptom with no cause is not
74
+ # a troubleshooting entry. Content is left unconstrained,
75
+ # because the guide recommends bullet points for symptoms
76
+ # and numbered steps for solutions, so a section here may
77
+ # legitimately hold no paragraph at all.
65
78
  - id: cause
66
79
  description: >-
67
- At least one is required: a symptom with no cause is not
68
- a troubleshooting entry. Content is left unconstrained,
69
- because the guide recommends bullet points for symptoms
70
- and numbered steps for solutions, so a section here may
71
- legitimately hold no paragraph at all.
80
+ Explain one thing that causes the symptom. Start the heading
81
+ with Cause.
72
82
  heading:
73
83
  pattern: '^[Cc]auses?\b'
74
84
  max: 1
75
85
  - id: solution
86
+ description: >-
87
+ Give the numbered steps that fix this cause, or a workaround.
88
+ Start the heading with Solution or Workaround.
76
89
  heading:
77
90
  pattern: '^([Ss]olutions?|[Ww]orkarounds?)\b'
78
91
  min: 0
79
92
  max: 1
93
+ # Further reading for this symptom. Optional, and anchored, so
94
+ # the repeating pair above stops at it rather than treating it
95
+ # as one more cause.
80
96
  - id: for-more-information
81
- description: >-
82
- Further reading for this symptom. Optional, and anchored, so
83
- the repeating pair above stops at it rather than treating it
84
- as one more cause.
97
+ description: Link to more help with this symptom.
85
98
  heading: For more information
86
99
  min: 0
87
100
  max: 1
101
+ # Further reading for the guide as a whole. Upstream writes this
102
+ # heading at H3, inside the last symptom, which reads like a level
103
+ # slip - its text ("other sources ... with your product, task, or
104
+ # feature") is about the product, not about one symptom. Rather
105
+ # than pick a side, the section is allowed, and optional, at both
106
+ # levels.
88
107
  - id: for-more-information
89
108
  description: >-
90
- Further reading for the guide as a whole. Upstream writes this
91
- heading at H3, inside the last symptom, which reads like a level
92
- slip - its text ("other sources ... with your product, task, or
93
- feature") is about the product, not about one symptom. Rather
94
- than pick a side, the section is allowed, and optional, at both
95
- levels.
109
+ Link to other sources of help with the product, task, or feature.
96
110
  heading: For more information
97
111
  min: 0
98
112
  max: 1