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.
- package/README.md +52 -31
- package/dist/__tests__/fixtures/review-gate.d.ts +59 -0
- package/dist/__tests__/fixtures/review-gate.d.ts.map +1 -0
- package/dist/__tests__/fixtures/review-gate.js +150 -0
- package/dist/__tests__/fixtures/review-gate.js.map +1 -0
- package/dist/cli.js +19 -0
- package/dist/cli.js.map +1 -1
- package/dist/export-profile.d.ts +50 -0
- package/dist/export-profile.d.ts.map +1 -0
- package/dist/export-profile.js +321 -0
- package/dist/export-profile.js.map +1 -0
- package/dist/harnesses/registry.d.ts +4 -2
- package/dist/harnesses/registry.d.ts.map +1 -1
- package/dist/harnesses/registry.js +4 -2
- package/dist/harnesses/registry.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +67 -3
- package/dist/index.js.map +1 -1
- package/dist/profiles.d.ts +163 -0
- package/dist/profiles.d.ts.map +1 -0
- package/dist/profiles.js +561 -0
- package/dist/profiles.js.map +1 -0
- package/dist/types.d.ts +37 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +15 -1
- package/dist/types.js.map +1 -1
- package/dist-web/assets/{arc-CsLKjSmD.js → arc-DMHUv2NY.js} +1 -1
- package/dist-web/assets/{architectureDiagram-3BPJPVTR-CUdI2ZME.js → architectureDiagram-3BPJPVTR-CeAAqVS4.js} +1 -1
- package/dist-web/assets/{blockDiagram-GPEHLZMM-BzGl3sJ5.js → blockDiagram-GPEHLZMM-Hns_u_jz.js} +1 -1
- package/dist-web/assets/{c4Diagram-AAUBKEIU-B9BcD268.js → c4Diagram-AAUBKEIU-BH3RLVAi.js} +1 -1
- package/dist-web/assets/channel-Dk0dEQIT.js +1 -0
- package/dist-web/assets/{chunk-2J33WTMH-jrfdvIhS.js → chunk-2J33WTMH-h6Ws9VXu.js} +1 -1
- package/dist-web/assets/{chunk-4BX2VUAB-BppnV9t3.js → chunk-4BX2VUAB-BSBeNNnS.js} +1 -1
- package/dist-web/assets/{chunk-55IACEB6-Dgig1qV7.js → chunk-55IACEB6-BmUY060b.js} +1 -1
- package/dist-web/assets/{chunk-727SXJPM-CssKzpPg.js → chunk-727SXJPM-CmemMVvQ.js} +1 -1
- package/dist-web/assets/{chunk-AQP2D5EJ-DWYbdfaL.js → chunk-AQP2D5EJ-LQpUb_FL.js} +1 -1
- package/dist-web/assets/{chunk-FMBD7UC4-Cbt7Dqxf.js → chunk-FMBD7UC4-wk7OYcdf.js} +1 -1
- package/dist-web/assets/{chunk-ND2GUHAM-2W-YdHxx.js → chunk-ND2GUHAM-O3K3rkHW.js} +1 -1
- package/dist-web/assets/{chunk-QZHKN3VN-BSLdTa36.js → chunk-QZHKN3VN-CvppUbp9.js} +1 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK-gqDJqcDV.js +1 -0
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-gqDJqcDV.js +1 -0
- package/dist-web/assets/{cose-bilkent-S5V4N54A-D0_MX2M6.js → cose-bilkent-S5V4N54A-Cf1nQ4V_.js} +1 -1
- package/dist-web/assets/{dagre-BM42HDAG-DGXkicI6.js → dagre-BM42HDAG-YyP7mwPP.js} +1 -1
- package/dist-web/assets/{diagram-2AECGRRQ-DMfWZxh-.js → diagram-2AECGRRQ-BmAtTKkQ.js} +1 -1
- package/dist-web/assets/{diagram-5GNKFQAL-IChrzosS.js → diagram-5GNKFQAL-Bem8_DUK.js} +1 -1
- package/dist-web/assets/{diagram-KO2AKTUF-C7IVA_Py.js → diagram-KO2AKTUF-0gNyY9-f.js} +1 -1
- package/dist-web/assets/{diagram-LMA3HP47-UQXc1x2n.js → diagram-LMA3HP47-CJJh_IUU.js} +1 -1
- package/dist-web/assets/{diagram-OG6HWLK6-Z69O_NXy.js → diagram-OG6HWLK6-DJcCho7F.js} +1 -1
- package/dist-web/assets/{erDiagram-TEJ5UH35-xrgfPZU-.js → erDiagram-TEJ5UH35-D-TI_EbX.js} +1 -1
- package/dist-web/assets/{flowDiagram-I6XJVG4X-Co-y5e2I.js → flowDiagram-I6XJVG4X-BUrB4EYN.js} +1 -1
- package/dist-web/assets/{ganttDiagram-6RSMTGT7-C9TOh3M1.js → ganttDiagram-6RSMTGT7-C9_ItheP.js} +1 -1
- package/dist-web/assets/{gitGraphDiagram-PVQCEYII-iBpK83U-.js → gitGraphDiagram-PVQCEYII-DYQEmll0.js} +1 -1
- package/dist-web/assets/{index-DaaOiRou.js → index-DULKNhw0.js} +4 -4
- package/dist-web/assets/{index-6RY653Ds.js → index-X-a-o-AT.js} +1 -1
- package/dist-web/assets/{index-D4y2EDE-.js → index-mEUl0sqe.js} +1 -1
- package/dist-web/assets/{infoDiagram-5YYISTIA-C-_CUdyF.js → infoDiagram-5YYISTIA-B06Tp7cb.js} +1 -1
- package/dist-web/assets/{ishikawaDiagram-YF4QCWOH-zPkWZ6FX.js → ishikawaDiagram-YF4QCWOH-DY9iP3P6.js} +1 -1
- package/dist-web/assets/{journeyDiagram-JHISSGLW-CsTWcFHo.js → journeyDiagram-JHISSGLW-Bk4MV49m.js} +1 -1
- package/dist-web/assets/{kanban-definition-UN3LZRKU-CCsrhCu2.js → kanban-definition-UN3LZRKU-B9-wsNt9.js} +1 -1
- package/dist-web/assets/{linear-DlkSJnhW.js → linear-DEY9HwQB.js} +1 -1
- package/dist-web/assets/{mermaid.core-BM7nlTu6.js → mermaid.core-Cn0e4l6V.js} +4 -4
- package/dist-web/assets/{mindmap-definition-RKZ34NQL-C5tQ7zJH.js → mindmap-definition-RKZ34NQL-pN4Q2WNG.js} +1 -1
- package/dist-web/assets/{pieDiagram-4H26LBE5-CsK9eMOa.js → pieDiagram-4H26LBE5-DTkPv6S2.js} +1 -1
- package/dist-web/assets/{quadrantDiagram-W4KKPZXB-CsUwvpcD.js → quadrantDiagram-W4KKPZXB-BS9LhTv0.js} +1 -1
- package/dist-web/assets/{requirementDiagram-4Y6WPE33-CzQDuhAP.js → requirementDiagram-4Y6WPE33-BlSOLsQe.js} +1 -1
- package/dist-web/assets/{sankeyDiagram-5OEKKPKP-BTa3-BBs.js → sankeyDiagram-5OEKKPKP-B1xl-B1U.js} +1 -1
- package/dist-web/assets/{sequenceDiagram-3UESZ5HK-CPPduAn5.js → sequenceDiagram-3UESZ5HK-BoiYrW_0.js} +1 -1
- package/dist-web/assets/{stateDiagram-AJRCARHV-T5j3NpOr.js → stateDiagram-AJRCARHV-BxvfZYDK.js} +1 -1
- package/dist-web/assets/stateDiagram-v2-BHNVJYJU-XGZY1tGg.js +1 -0
- package/dist-web/assets/{timeline-definition-PNZ67QCA-BG2gG3_T.js → timeline-definition-PNZ67QCA-CUEbrRkc.js} +1 -1
- package/dist-web/assets/{vennDiagram-CIIHVFJN-B3LyjiD_.js → vennDiagram-CIIHVFJN-CgQiBucH.js} +1 -1
- package/dist-web/assets/{wardley-L42UT6IY-CTsJTFG9.js → wardley-L42UT6IY-BsGW6T55.js} +1 -1
- package/dist-web/assets/{wardleyDiagram-YWT4CUSO-cmPISkrt.js → wardleyDiagram-YWT4CUSO-Cq3RMp6B.js} +1 -1
- package/dist-web/assets/{xychartDiagram-2RQKCTM6-BWy_dUgl.js → xychartDiagram-2RQKCTM6-WaoV-V3f.js} +1 -1
- package/dist-web/index.html +1 -1
- package/package.json +3 -3
- package/templates/harness/skills/st-code-review/SKILL.md +309 -0
- package/templates/harness/skills/st-code-review/scripts/code-review.cjs +1539 -0
- package/templates/harness/skills/st-code-review/scripts/find-strikethroo-root.cjs +116 -0
- package/templates/harness/skills/st-code-review/scripts/validate-plan-blueprint.cjs +429 -0
- package/templates/harness/skills/st-execute-blueprint/SKILL.md +48 -1
- package/templates/harness/skills/st-execute-blueprint/scripts/capture-base-commit.cjs +325 -0
- package/templates/harness/skills/st-execute-blueprint/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/harness/skills/st-execute-task/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/harness/skills/st-full-workflow/SKILL.md +48 -1
- package/templates/harness/skills/st-full-workflow/scripts/capture-base-commit.cjs +325 -0
- package/templates/harness/skills/st-full-workflow/scripts/dispatch-task-execution.cjs +46 -26
- package/templates/strikethroo/config/hooks/CODE_REVIEW.md +60 -0
- package/templates/strikethroo/config/schemas/self-review-v2.xsd +437 -0
- package/dist-web/assets/channel-CN9J8c_F.js +0 -1
- package/dist-web/assets/classDiagram-4FO5ZUOK-DHR8VHf9.js +0 -1
- package/dist-web/assets/classDiagram-v2-Q7XG4LA2-DHR8VHf9.js +0 -1
- 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"}
|