strikethroo 3.14.3 → 3.16.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 (93) hide show
  1. package/README.md +52 -31
  2. package/dist/__tests__/fixtures/review-gate.d.ts +59 -0
  3. package/dist/__tests__/fixtures/review-gate.d.ts.map +1 -0
  4. package/dist/__tests__/fixtures/review-gate.js +150 -0
  5. package/dist/__tests__/fixtures/review-gate.js.map +1 -0
  6. package/dist/cli.js +19 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/export-profile.d.ts +50 -0
  9. package/dist/export-profile.d.ts.map +1 -0
  10. package/dist/export-profile.js +321 -0
  11. package/dist/export-profile.js.map +1 -0
  12. package/dist/harnesses/registry.d.ts +4 -2
  13. package/dist/harnesses/registry.d.ts.map +1 -1
  14. package/dist/harnesses/registry.js +4 -2
  15. package/dist/harnesses/registry.js.map +1 -1
  16. package/dist/index.d.ts.map +1 -1
  17. package/dist/index.js +67 -3
  18. package/dist/index.js.map +1 -1
  19. package/dist/profiles.d.ts +163 -0
  20. package/dist/profiles.d.ts.map +1 -0
  21. package/dist/profiles.js +561 -0
  22. package/dist/profiles.js.map +1 -0
  23. package/dist/types.d.ts +37 -0
  24. package/dist/types.d.ts.map +1 -1
  25. package/dist/types.js +15 -1
  26. package/dist/types.js.map +1 -1
  27. package/dist-web/assets/{arc-CsLKjSmD.js → arc-DMHUv2NY.js} +1 -1
  28. package/dist-web/assets/{architectureDiagram-3BPJPVTR-CUdI2ZME.js → architectureDiagram-3BPJPVTR-CeAAqVS4.js} +1 -1
  29. package/dist-web/assets/{blockDiagram-GPEHLZMM-BzGl3sJ5.js → blockDiagram-GPEHLZMM-Hns_u_jz.js} +1 -1
  30. package/dist-web/assets/{c4Diagram-AAUBKEIU-B9BcD268.js → c4Diagram-AAUBKEIU-BH3RLVAi.js} +1 -1
  31. package/dist-web/assets/channel-Dk0dEQIT.js +1 -0
  32. package/dist-web/assets/{chunk-2J33WTMH-jrfdvIhS.js → chunk-2J33WTMH-h6Ws9VXu.js} +1 -1
  33. package/dist-web/assets/{chunk-4BX2VUAB-BppnV9t3.js → chunk-4BX2VUAB-BSBeNNnS.js} +1 -1
  34. package/dist-web/assets/{chunk-55IACEB6-Dgig1qV7.js → chunk-55IACEB6-BmUY060b.js} +1 -1
  35. package/dist-web/assets/{chunk-727SXJPM-CssKzpPg.js → chunk-727SXJPM-CmemMVvQ.js} +1 -1
  36. package/dist-web/assets/{chunk-AQP2D5EJ-DWYbdfaL.js → chunk-AQP2D5EJ-LQpUb_FL.js} +1 -1
  37. package/dist-web/assets/{chunk-FMBD7UC4-Cbt7Dqxf.js → chunk-FMBD7UC4-wk7OYcdf.js} +1 -1
  38. package/dist-web/assets/{chunk-ND2GUHAM-2W-YdHxx.js → chunk-ND2GUHAM-O3K3rkHW.js} +1 -1
  39. package/dist-web/assets/{chunk-QZHKN3VN-BSLdTa36.js → chunk-QZHKN3VN-CvppUbp9.js} +1 -1
  40. package/dist-web/assets/classDiagram-4FO5ZUOK-gqDJqcDV.js +1 -0
  41. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-gqDJqcDV.js +1 -0
  42. package/dist-web/assets/{cose-bilkent-S5V4N54A-D0_MX2M6.js → cose-bilkent-S5V4N54A-Cf1nQ4V_.js} +1 -1
  43. package/dist-web/assets/{dagre-BM42HDAG-DGXkicI6.js → dagre-BM42HDAG-YyP7mwPP.js} +1 -1
  44. package/dist-web/assets/{diagram-2AECGRRQ-DMfWZxh-.js → diagram-2AECGRRQ-BmAtTKkQ.js} +1 -1
  45. package/dist-web/assets/{diagram-5GNKFQAL-IChrzosS.js → diagram-5GNKFQAL-Bem8_DUK.js} +1 -1
  46. package/dist-web/assets/{diagram-KO2AKTUF-C7IVA_Py.js → diagram-KO2AKTUF-0gNyY9-f.js} +1 -1
  47. package/dist-web/assets/{diagram-LMA3HP47-UQXc1x2n.js → diagram-LMA3HP47-CJJh_IUU.js} +1 -1
  48. package/dist-web/assets/{diagram-OG6HWLK6-Z69O_NXy.js → diagram-OG6HWLK6-DJcCho7F.js} +1 -1
  49. package/dist-web/assets/{erDiagram-TEJ5UH35-xrgfPZU-.js → erDiagram-TEJ5UH35-D-TI_EbX.js} +1 -1
  50. package/dist-web/assets/{flowDiagram-I6XJVG4X-Co-y5e2I.js → flowDiagram-I6XJVG4X-BUrB4EYN.js} +1 -1
  51. package/dist-web/assets/{ganttDiagram-6RSMTGT7-C9TOh3M1.js → ganttDiagram-6RSMTGT7-C9_ItheP.js} +1 -1
  52. package/dist-web/assets/{gitGraphDiagram-PVQCEYII-iBpK83U-.js → gitGraphDiagram-PVQCEYII-DYQEmll0.js} +1 -1
  53. package/dist-web/assets/{index-DaaOiRou.js → index-DULKNhw0.js} +4 -4
  54. package/dist-web/assets/{index-6RY653Ds.js → index-X-a-o-AT.js} +1 -1
  55. package/dist-web/assets/{index-D4y2EDE-.js → index-mEUl0sqe.js} +1 -1
  56. package/dist-web/assets/{infoDiagram-5YYISTIA-C-_CUdyF.js → infoDiagram-5YYISTIA-B06Tp7cb.js} +1 -1
  57. package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-zPkWZ6FX.js → ishikawaDiagram-YF4QCWOH-DY9iP3P6.js} +1 -1
  58. package/dist-web/assets/{journeyDiagram-JHISSGLW-CsTWcFHo.js → journeyDiagram-JHISSGLW-Bk4MV49m.js} +1 -1
  59. package/dist-web/assets/{kanban-definition-UN3LZRKU-CCsrhCu2.js → kanban-definition-UN3LZRKU-B9-wsNt9.js} +1 -1
  60. package/dist-web/assets/{linear-DlkSJnhW.js → linear-DEY9HwQB.js} +1 -1
  61. package/dist-web/assets/{mermaid.core-BM7nlTu6.js → mermaid.core-Cn0e4l6V.js} +4 -4
  62. package/dist-web/assets/{mindmap-definition-RKZ34NQL-C5tQ7zJH.js → mindmap-definition-RKZ34NQL-pN4Q2WNG.js} +1 -1
  63. package/dist-web/assets/{pieDiagram-4H26LBE5-CsK9eMOa.js → pieDiagram-4H26LBE5-DTkPv6S2.js} +1 -1
  64. package/dist-web/assets/{quadrantDiagram-W4KKPZXB-CsUwvpcD.js → quadrantDiagram-W4KKPZXB-BS9LhTv0.js} +1 -1
  65. package/dist-web/assets/{requirementDiagram-4Y6WPE33-CzQDuhAP.js → requirementDiagram-4Y6WPE33-BlSOLsQe.js} +1 -1
  66. package/dist-web/assets/{sankeyDiagram-5OEKKPKP-BTa3-BBs.js → sankeyDiagram-5OEKKPKP-B1xl-B1U.js} +1 -1
  67. package/dist-web/assets/{sequenceDiagram-3UESZ5HK-CPPduAn5.js → sequenceDiagram-3UESZ5HK-BoiYrW_0.js} +1 -1
  68. package/dist-web/assets/{stateDiagram-AJRCARHV-T5j3NpOr.js → stateDiagram-AJRCARHV-BxvfZYDK.js} +1 -1
  69. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-XGZY1tGg.js +1 -0
  70. package/dist-web/assets/{timeline-definition-PNZ67QCA-BG2gG3_T.js → timeline-definition-PNZ67QCA-CUEbrRkc.js} +1 -1
  71. package/dist-web/assets/{vennDiagram-CIIHVFJN-B3LyjiD_.js → vennDiagram-CIIHVFJN-CgQiBucH.js} +1 -1
  72. package/dist-web/assets/{wardley-L42UT6IY-CTsJTFG9.js → wardley-L42UT6IY-BsGW6T55.js} +1 -1
  73. package/dist-web/assets/{wardleyDiagram-YWT4CUSO-cmPISkrt.js → wardleyDiagram-YWT4CUSO-Cq3RMp6B.js} +1 -1
  74. package/dist-web/assets/{xychartDiagram-2RQKCTM6-BWy_dUgl.js → xychartDiagram-2RQKCTM6-WaoV-V3f.js} +1 -1
  75. package/dist-web/index.html +1 -1
  76. package/package.json +3 -3
  77. package/templates/harness/skills/st-code-review/SKILL.md +309 -0
  78. package/templates/harness/skills/st-code-review/scripts/code-review.cjs +1539 -0
  79. package/templates/harness/skills/st-code-review/scripts/find-strikethroo-root.cjs +116 -0
  80. package/templates/harness/skills/st-code-review/scripts/validate-plan-blueprint.cjs +429 -0
  81. package/templates/harness/skills/st-execute-blueprint/SKILL.md +48 -1
  82. package/templates/harness/skills/st-execute-blueprint/scripts/capture-base-commit.cjs +325 -0
  83. package/templates/harness/skills/st-execute-blueprint/scripts/dispatch-task-execution.cjs +46 -26
  84. package/templates/harness/skills/st-execute-task/scripts/dispatch-task-execution.cjs +46 -26
  85. package/templates/harness/skills/st-full-workflow/SKILL.md +48 -1
  86. package/templates/harness/skills/st-full-workflow/scripts/capture-base-commit.cjs +325 -0
  87. package/templates/harness/skills/st-full-workflow/scripts/dispatch-task-execution.cjs +46 -26
  88. package/templates/strikethroo/config/hooks/CODE_REVIEW.md +60 -0
  89. package/templates/strikethroo/config/schemas/self-review-v2.xsd +437 -0
  90. package/dist-web/assets/channel-CN9J8c_F.js +0 -1
  91. package/dist-web/assets/classDiagram-4FO5ZUOK-DHR8VHf9.js +0 -1
  92. package/dist-web/assets/classDiagram-v2-Q7XG4LA2-DHR8VHf9.js +0 -1
  93. package/dist-web/assets/stateDiagram-v2-BHNVJYJU-CXpXsXHt.js +0 -1
@@ -0,0 +1,163 @@
1
+ /**
2
+ * Profile Package Contract and Import Preparation
3
+ *
4
+ * Defines the manifest schema (`profile.yaml`) and on-disk surface every
5
+ * profile package — local folder or cloned repository — must satisfy, and
6
+ * owns the import steps that run before any workspace mutation: source
7
+ * resolution (local folder / GitHub shorthand / git URL), shallow-clone
8
+ * materialization of remote profiles, contract validation, and staging of
9
+ * the effective template tree (shipped defaults + profile overlay).
10
+ *
11
+ * Validation is side-effect-free: it only reads the package directory.
12
+ * Materialization and staging write only to temp directories under the OS
13
+ * temp root, and every temp directory is removed on every exit path.
14
+ */
15
+ /**
16
+ * Manifest schema version this CLI build understands.
17
+ *
18
+ * Profiles live in external repositories the CLI can never migrate, so a
19
+ * manifest declaring a different version is refused with a message naming
20
+ * both versions and the upgrade direction.
21
+ */
22
+ export declare const PROFILE_MANIFEST_SCHEMA_VERSION = 1;
23
+ /**
24
+ * A single entry in a manifest's `requires` or `recommends` list.
25
+ *
26
+ * Strictly informational: printed during import, never probed, executed,
27
+ * or installed.
28
+ */
29
+ export interface ProfileRequirement {
30
+ /**
31
+ * What kind of prerequisite this is
32
+ */
33
+ kind: 'skill' | 'tool';
34
+ /**
35
+ * Name of the required skill or tool
36
+ */
37
+ name: string;
38
+ /**
39
+ * Optional human-facing installation hint
40
+ */
41
+ install?: string;
42
+ }
43
+ /**
44
+ * Parsed `profile.yaml` manifest
45
+ */
46
+ export interface ProfileManifest {
47
+ /**
48
+ * Manifest format version (must equal PROFILE_MANIFEST_SCHEMA_VERSION)
49
+ */
50
+ schema_version: number;
51
+ /**
52
+ * Profile identity (kebab-case), echoed at import and recorded in provenance
53
+ */
54
+ name: string;
55
+ /**
56
+ * One-line summary shown during init
57
+ */
58
+ description: string;
59
+ /**
60
+ * Long-form statement of what the profile is tuned for
61
+ */
62
+ purpose?: string;
63
+ /**
64
+ * Free-form discovery/labeling tags
65
+ */
66
+ tags?: string[];
67
+ /**
68
+ * Hard prerequisites without which the profile's hooks/config malfunction
69
+ */
70
+ requires?: ProfileRequirement[];
71
+ /**
72
+ * Soft pairings that complement the profile
73
+ */
74
+ recommends?: ProfileRequirement[];
75
+ /**
76
+ * Attribution
77
+ */
78
+ author?: string;
79
+ }
80
+ /**
81
+ * Validate a profile package directory against the contract.
82
+ *
83
+ * Checks, in order: `profile.yaml` exists and parses as a YAML mapping, the
84
+ * manifest fields satisfy the schema, and the `config/` surface contains only
85
+ * allowed files. Top-level entries other than `profile.yaml` and `config/`
86
+ * are ignored (a repository may carry `README.md`, `.git`, etc.).
87
+ *
88
+ * @param profileDir - Absolute or relative path to the package root
89
+ * @returns The parsed manifest on success
90
+ * @throws ProfileError naming the offending field or file on any violation
91
+ */
92
+ export declare function validateProfilePackage(profileDir: string): Promise<ProfileManifest>;
93
+ /**
94
+ * A `--profile` value resolved to its concrete source
95
+ */
96
+ export interface ResolvedProfileSource {
97
+ /**
98
+ * Whether the profile is read in place ('local') or cloned via git ('git')
99
+ */
100
+ kind: 'local' | 'git';
101
+ /**
102
+ * Absolute local package path ('local') or git clone URL ('git')
103
+ */
104
+ location: string;
105
+ }
106
+ /**
107
+ * Result of preparing a profile import, ready for the init copy machinery
108
+ */
109
+ export interface PreparedProfileImport {
110
+ /**
111
+ * Temp directory mirroring `templates/strikethroo/` with the profile's
112
+ * `config/` files overlaid — the effective source tree for init
113
+ */
114
+ stagingDir: string;
115
+ /**
116
+ * The profile's validated manifest
117
+ */
118
+ manifest: ProfileManifest;
119
+ /**
120
+ * Resolved provenance: the clone URL or the absolute local package path
121
+ */
122
+ source: string;
123
+ /**
124
+ * Removes every temp directory this import created; safe to call more
125
+ * than once and tolerant of already-removed paths
126
+ */
127
+ cleanup: () => Promise<void>;
128
+ }
129
+ /**
130
+ * Resolve a `--profile` value to its source.
131
+ *
132
+ * Resolution order is contractual: (a) the value names an existing directory
133
+ * on disk → local package folder; (b) the value matches the GitHub
134
+ * `<user>/<repo-name>` shorthand → expanded to the canonical GitHub clone
135
+ * URL; (c) otherwise → treated verbatim as a git URL (covers GitLab, ssh
136
+ * URLs, and any git host). The existing-path check runs first, so a relative
137
+ * local path that happens to look like `user/repo` resolves as the folder.
138
+ *
139
+ * @param value - The raw `--profile` argument
140
+ * @returns The resolved source kind and location
141
+ * @throws ProfileError when the value names an existing non-directory path
142
+ */
143
+ export declare function resolveProfileSource(value: string): Promise<ResolvedProfileSource>;
144
+ /**
145
+ * Resolve, materialize, validate, and stage a profile for import.
146
+ *
147
+ * Steps, in order: resolve the source; shallow-clone remote profiles into a
148
+ * temp directory (local folders are read in place); validate the package
149
+ * against the contract BEFORE any staging, so an invalid profile never
150
+ * produces a staging tree; copy the shipped template tree into a temp
151
+ * staging directory and overlay the profile's `config/` files.
152
+ *
153
+ * Every temp directory is removed on every failure path before the error is
154
+ * rethrown. On success the caller receives `cleanup` and must invoke it once
155
+ * the copy machinery has consumed `stagingDir`.
156
+ *
157
+ * @param profileValue - The raw `--profile` argument
158
+ * @param shippedTemplateDir - Path to the shipped `templates/strikethroo/` tree
159
+ * @returns The staging directory, validated manifest, resolved source, and cleanup
160
+ * @throws ProfileError on resolution, clone, validation, or staging failure
161
+ */
162
+ export declare function prepareProfileImport(profileValue: string, shippedTemplateDir: string): Promise<PreparedProfileImport>;
163
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAYH;;;;;;GAMG;AACH,eAAO,MAAM,+BAA+B,IAAI,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,OAAO,GAAG,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;OAEG;IACH,cAAc,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC;IACpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB;;OAEG;IACH,QAAQ,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAChC;;OAEG;IACH,UAAU,CAAC,EAAE,kBAAkB,EAAE,CAAC;IAClC;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAiBD;;;;;;;;;;;GAWG;AACH,wBAAsB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAIzF;AAaD;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,IAAI,EAAE,OAAO,GAAG,KAAK,CAAC;IACtB;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,QAAQ,EAAE,eAAe,CAAC;IAC1B;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA6BxF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,MAAM,EACpB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,qBAAqB,CAAC,CAsBhC"}