swe-workflow-skills 0.1.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 (177) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +144 -0
  3. package/VERSION +1 -0
  4. package/bin/cli.mjs +44 -0
  5. package/catalog.json +225 -0
  6. package/commands/role.md +34 -0
  7. package/hooks/session-start.mjs +118 -0
  8. package/install.mjs +318 -0
  9. package/package.json +47 -0
  10. package/roles.json +194 -0
  11. package/scripts/resolve.mjs +296 -0
  12. package/skills/accessibility-design/SKILL.md +128 -0
  13. package/skills/accessibility-design/evals/evals.json +51 -0
  14. package/skills/accessibility-design/references/accessibility-patterns.md +321 -0
  15. package/skills/api-design/SKILL.md +144 -0
  16. package/skills/api-design/evals/evals.json +48 -0
  17. package/skills/api-design/references/rest-conventions.md +147 -0
  18. package/skills/api-design/templates/api-spec.md +156 -0
  19. package/skills/architecture-design/SKILL.md +86 -0
  20. package/skills/architecture-design/evals/evals.json +44 -0
  21. package/skills/architecture-design/references/clean-architecture.md +147 -0
  22. package/skills/architecture-design/references/component-principles.md +129 -0
  23. package/skills/architecture-design/references/principles.md +81 -0
  24. package/skills/architecture-design/references/solid-principles.md +106 -0
  25. package/skills/architecture-design/templates/adr.md +63 -0
  26. package/skills/architecture-documentation/SKILL.md +126 -0
  27. package/skills/architecture-documentation/evals/evals.json +44 -0
  28. package/skills/architecture-documentation/references/abstraction-levels.md +91 -0
  29. package/skills/architecture-documentation/references/diagram-tooling.md +141 -0
  30. package/skills/architecture-documentation/templates/architecture-doc.md +171 -0
  31. package/skills/bug-investigating/SKILL.md +133 -0
  32. package/skills/bug-investigating/evals/evals.json +56 -0
  33. package/skills/bug-investigating/references/common-bugs.md +62 -0
  34. package/skills/bug-investigating/references/debugging-patterns.md +94 -0
  35. package/skills/cicd-pipeline/SKILL.md +87 -0
  36. package/skills/cicd-pipeline/evals/evals.json +34 -0
  37. package/skills/cicd-pipeline/references/pipeline-patterns.md +206 -0
  38. package/skills/cicd-pipeline/templates/github-actions.md +206 -0
  39. package/skills/code-reviewing/SKILL.md +92 -0
  40. package/skills/code-reviewing/evals/evals.json +62 -0
  41. package/skills/code-reviewing/references/error-handling.md +108 -0
  42. package/skills/code-reviewing/references/review-checklist.md +144 -0
  43. package/skills/configuration-strategy/SKILL.md +109 -0
  44. package/skills/configuration-strategy/evals/evals.json +41 -0
  45. package/skills/configuration-strategy/references/config-patterns.md +161 -0
  46. package/skills/containerization/SKILL.md +90 -0
  47. package/skills/containerization/evals/evals.json +36 -0
  48. package/skills/containerization/references/dockerfile-patterns.md +168 -0
  49. package/skills/containerization/templates/dockerfile.md +154 -0
  50. package/skills/data-modeling/SKILL.md +83 -0
  51. package/skills/data-modeling/evals/evals.json +43 -0
  52. package/skills/data-modeling/references/conventions.md +57 -0
  53. package/skills/data-modeling/templates/schema.md +120 -0
  54. package/skills/dependency-impact-analysis/SKILL.md +113 -0
  55. package/skills/dependency-impact-analysis/evals/evals.json +41 -0
  56. package/skills/dependency-impact-analysis/references/impact-patterns.md +150 -0
  57. package/skills/dependency-management/SKILL.md +161 -0
  58. package/skills/dependency-management/evals/evals.json +48 -0
  59. package/skills/dependency-management/references/evaluation-checklist.md +127 -0
  60. package/skills/deployment-checklist/SKILL.md +132 -0
  61. package/skills/deployment-checklist/evals/evals.json +58 -0
  62. package/skills/deployment-checklist/references/pre-deploy-gates.md +91 -0
  63. package/skills/deployment-repo/SKILL.md +190 -0
  64. package/skills/deployment-repo/evals/evals.json +44 -0
  65. package/skills/deployment-repo/references/deployment-repo-patterns.md +258 -0
  66. package/skills/deployment-repo/references/version-compatibility.md +227 -0
  67. package/skills/deployment-repo/templates/deployment-repo-structure.md +226 -0
  68. package/skills/effort-estimation/SKILL.md +95 -0
  69. package/skills/effort-estimation/evals/evals.json +32 -0
  70. package/skills/effort-estimation/references/estimation-methods.md +154 -0
  71. package/skills/feature-planning/SKILL.md +84 -0
  72. package/skills/feature-planning/evals/evals.json +44 -0
  73. package/skills/feature-planning/templates/plan.md +55 -0
  74. package/skills/feature-planning/templates/task.md +26 -0
  75. package/skills/frontend-architecture/SKILL.md +154 -0
  76. package/skills/frontend-architecture/evals/evals.json +34 -0
  77. package/skills/frontend-architecture/references/component-patterns.md +264 -0
  78. package/skills/frontend-architecture/templates/folder-structure.md +203 -0
  79. package/skills/git-workflow/SKILL.md +127 -0
  80. package/skills/git-workflow/evals/evals.json +44 -0
  81. package/skills/git-workflow/references/conventions.md +142 -0
  82. package/skills/git-workflow/templates/pull-request.md +57 -0
  83. package/skills/gitops-delivery/SKILL.md +319 -0
  84. package/skills/gitops-delivery/evals/evals.json +44 -0
  85. package/skills/gitops-delivery/references/gitops-patterns.md +478 -0
  86. package/skills/gitops-delivery/templates/gitops-config.md +196 -0
  87. package/skills/incident-response/SKILL.md +130 -0
  88. package/skills/incident-response/evals/evals.json +55 -0
  89. package/skills/incident-response/references/communication-templates.md +134 -0
  90. package/skills/incident-response/references/severity-levels.md +77 -0
  91. package/skills/incident-response/templates/incident-timeline.md +57 -0
  92. package/skills/infrastructure-as-code/SKILL.md +86 -0
  93. package/skills/infrastructure-as-code/evals/evals.json +33 -0
  94. package/skills/infrastructure-as-code/references/iac-patterns.md +179 -0
  95. package/skills/infrastructure-as-code/templates/terraform-module.md +158 -0
  96. package/skills/metrics-and-okrs/SKILL.md +113 -0
  97. package/skills/metrics-and-okrs/evals/evals.json +33 -0
  98. package/skills/metrics-and-okrs/references/metric-catalog.md +90 -0
  99. package/skills/metrics-and-okrs/templates/okr-document.md +61 -0
  100. package/skills/ml-experiment-tracking/SKILL.md +96 -0
  101. package/skills/ml-experiment-tracking/evals/evals.json +32 -0
  102. package/skills/ml-experiment-tracking/references/tracking-tools.md +127 -0
  103. package/skills/ml-model-deployment/SKILL.md +106 -0
  104. package/skills/ml-model-deployment/evals/evals.json +34 -0
  105. package/skills/ml-model-deployment/references/serving-patterns.md +162 -0
  106. package/skills/ml-pipeline-design/SKILL.md +162 -0
  107. package/skills/ml-pipeline-design/evals/evals.json +34 -0
  108. package/skills/ml-pipeline-design/references/pipeline-components.md +174 -0
  109. package/skills/observability-design/SKILL.md +162 -0
  110. package/skills/observability-design/evals/evals.json +52 -0
  111. package/skills/observability-design/references/logging-patterns.md +229 -0
  112. package/skills/observability-design/references/slo-framework.md +151 -0
  113. package/skills/observability-design/templates/slo-document.md +80 -0
  114. package/skills/performance-optimization/SKILL.md +83 -0
  115. package/skills/performance-optimization/evals/evals.json +47 -0
  116. package/skills/performance-optimization/references/bottleneck-patterns.md +256 -0
  117. package/skills/performance-optimization/references/concurrency.md +101 -0
  118. package/skills/prd-writing/SKILL.md +109 -0
  119. package/skills/prd-writing/evals/evals.json +33 -0
  120. package/skills/prd-writing/references/prd-examples.md +132 -0
  121. package/skills/prd-writing/templates/prd.md +71 -0
  122. package/skills/prd-writing/templates/rfc.md +79 -0
  123. package/skills/project-documentation/SKILL.md +104 -0
  124. package/skills/project-documentation/evals/evals.json +48 -0
  125. package/skills/project-documentation/references/contributing-guide.md +100 -0
  126. package/skills/project-documentation/templates/changelog.md +59 -0
  127. package/skills/project-documentation/templates/readme.md +121 -0
  128. package/skills/project-proposal/SKILL.md +90 -0
  129. package/skills/project-proposal/evals/evals.json +31 -0
  130. package/skills/project-proposal/references/proposal-examples.md +140 -0
  131. package/skills/project-proposal/templates/proposal.md +76 -0
  132. package/skills/project-review/SKILL.md +111 -0
  133. package/skills/project-review/evals/evals.json +42 -0
  134. package/skills/refactoring/SKILL.md +90 -0
  135. package/skills/refactoring/evals/evals.json +44 -0
  136. package/skills/refactoring/references/transformations.md +132 -0
  137. package/skills/retrospective/SKILL.md +157 -0
  138. package/skills/retrospective/evals/evals.json +34 -0
  139. package/skills/retrospective/references/facilitation-guide.md +130 -0
  140. package/skills/retrospective/templates/post-mortem.md +121 -0
  141. package/skills/rollback-strategy/SKILL.md +116 -0
  142. package/skills/rollback-strategy/evals/evals.json +55 -0
  143. package/skills/rollback-strategy/references/rollback-patterns.md +125 -0
  144. package/skills/rollback-strategy/templates/rollback-plan.md +69 -0
  145. package/skills/security-audit/SKILL.md +146 -0
  146. package/skills/security-audit/evals/evals.json +66 -0
  147. package/skills/security-audit/references/owasp-top-10.md +167 -0
  148. package/skills/security-audit/templates/security-report.md +79 -0
  149. package/skills/skill-router/SKILL.md +171 -0
  150. package/skills/skill-router/evals/evals.json +39 -0
  151. package/skills/strategic-review/SKILL.md +106 -0
  152. package/skills/strategic-review/evals/evals.json +42 -0
  153. package/skills/strategic-review/templates/full-review-prompt.md +84 -0
  154. package/skills/tdd-workflow/SKILL.md +147 -0
  155. package/skills/tdd-workflow/evals/evals.json +58 -0
  156. package/skills/tdd-workflow/references/test-quality.md +71 -0
  157. package/skills/technical-debt-review/SKILL.md +113 -0
  158. package/skills/technical-debt-review/evals/evals.json +41 -0
  159. package/skills/technical-debt-review/references/debt-taxonomy.md +124 -0
  160. package/skills/technical-debt-review/templates/debt-audit.md +85 -0
  161. package/skills/test-data-strategy/SKILL.md +129 -0
  162. package/skills/test-data-strategy/evals/evals.json +49 -0
  163. package/skills/test-data-strategy/references/data-generation-patterns.md +341 -0
  164. package/skills/test-suite-design/SKILL.md +137 -0
  165. package/skills/test-suite-design/evals/evals.json +69 -0
  166. package/skills/test-suite-design/references/test-infrastructure.md +175 -0
  167. package/skills/test-suite-design/references/testing-pyramid.md +140 -0
  168. package/skills/ui-ux-design/SKILL.md +117 -0
  169. package/skills/ui-ux-design/evals/evals.json +35 -0
  170. package/skills/ui-ux-design/references/interaction-patterns.md +145 -0
  171. package/skills/ui-ux-design/templates/screen-spec.md +97 -0
  172. package/skills/verification-before-completion/SKILL.md +85 -0
  173. package/skills/verification-before-completion/evals/evals.json +53 -0
  174. package/skills/writing-skills/SKILL.md +87 -0
  175. package/skills/writing-skills/evals/evals.json +41 -0
  176. package/skills/writing-skills/references/pressure-testing.md +69 -0
  177. package/uninstall.mjs +182 -0
package/uninstall.mjs ADDED
@@ -0,0 +1,182 @@
1
+ #!/usr/bin/env node
2
+ // Remove the swe-workflow-skills library from a Claude config directory. Removes only
3
+ // what install.mjs created: this repo's skills, the catalog/role markers, resolve.mjs,
4
+ // the SessionStart hook, and the /role command. Your own custom skills are never
5
+ // touched. The library's skillOverrides entries are pruned from settings.local.json;
6
+ // the SessionStart registration in settings.json is left for you to remove by hand
7
+ // (this tool never edits settings.json) — the exact block is printed.
8
+ //
9
+ // Runs on Linux, macOS, and Windows using only Node.
10
+ //
11
+ // node uninstall.mjs # remove from ./.claude/
12
+ // node uninstall.mjs --global # remove from the user config dir
13
+ // node uninstall.mjs --dir DIR --dry-run
14
+
15
+ import { existsSync, statSync, readdirSync, rmSync, rmdirSync } from "node:fs";
16
+ import { dirname, join, resolve } from "node:path";
17
+ import { fileURLToPath } from "node:url";
18
+ import { homedir } from "node:os";
19
+ import { createInterface } from "node:readline/promises";
20
+ import { pruneSettings } from "./scripts/resolve.mjs";
21
+
22
+ const REPO_ROOT = dirname(fileURLToPath(import.meta.url));
23
+ const SKILLS_DIR = join(REPO_ROOT, "skills");
24
+
25
+ if (!isDir(SKILLS_DIR)) fatal("must be run from the swe-workflow-skills repo root");
26
+
27
+ const USAGE = `Usage: uninstall.mjs [options]
28
+
29
+ Remove the swe-workflow-skills library from a Claude config directory.
30
+
31
+ Options:
32
+ -g, --global Remove from the user config dir: $CLAUDE_CONFIG_DIR if set, else
33
+ ~/.claude/ (default without this flag: ./.claude/)
34
+ -d, --dir DIR Remove from a custom Claude config directory DIR
35
+ (mutually exclusive with --global)
36
+ -y, --yes Skip the confirmation prompt
37
+ -n, --dry-run Print what would be removed; change nothing
38
+ -h, --help Show this help`;
39
+
40
+ function isDir(p) {
41
+ return existsSync(p) && statSync(p).isDirectory();
42
+ }
43
+ function fatal(msg) {
44
+ process.stderr.write(`Error: ${msg}\n`);
45
+ process.exit(1);
46
+ }
47
+ function log(msg) {
48
+ process.stdout.write(msg + "\n");
49
+ }
50
+ function expandTilde(p) {
51
+ if (p === "~" || p.startsWith("~/") || p.startsWith("~\\")) return homedir() + p.slice(1);
52
+ return p;
53
+ }
54
+
55
+ // ---- arg parsing -----------------------------------------------------------
56
+
57
+ let global = false;
58
+ let dryRun = false;
59
+ let assumeYes = false;
60
+ let configDir = "";
61
+
62
+ const argv = process.argv.slice(2);
63
+ for (let i = 0; i < argv.length; i++) {
64
+ const a = argv[i];
65
+ if (a === "-g" || a === "--global") global = true;
66
+ else if (a === "-d" || a === "--dir") {
67
+ configDir = argv[++i];
68
+ if (configDir === undefined) fatal("--dir requires a path");
69
+ } else if (a.startsWith("--dir=")) configDir = a.slice("--dir=".length);
70
+ else if (a === "-y" || a === "--yes") assumeYes = true;
71
+ else if (a === "-n" || a === "--dry-run") dryRun = true;
72
+ else if (a === "-h" || a === "--help") {
73
+ log(USAGE);
74
+ process.exit(0);
75
+ } else {
76
+ process.stderr.write(`Unknown option: ${a}\n${USAGE}\n`);
77
+ process.exit(1);
78
+ }
79
+ }
80
+
81
+ let claudeDir;
82
+ if (configDir) {
83
+ if (global) fatal("--dir and --global are mutually exclusive");
84
+ claudeDir = resolve(expandTilde(configDir));
85
+ } else if (global) {
86
+ claudeDir = process.env.CLAUDE_CONFIG_DIR || join(homedir(), ".claude");
87
+ } else {
88
+ claudeDir = join(process.cwd(), ".claude");
89
+ }
90
+ const dest = join(claudeDir, "skills");
91
+
92
+ if (!isDir(claudeDir)) {
93
+ log(`Nothing to do: ${claudeDir} does not exist.`);
94
+ process.exit(0);
95
+ }
96
+
97
+ const settingsLocal = join(claudeDir, "settings.local.json");
98
+
99
+ // Build the removal list: only library skills present on disk, plus the machinery.
100
+ const libSkills = readdirSync(SKILLS_DIR)
101
+ .filter((s) => isDir(join(SKILLS_DIR, s)) && isDir(join(dest, s)))
102
+ .sort();
103
+
104
+ const targets = [...libSkills.map((s) => join(dest, s))];
105
+ for (const f of [
106
+ join(dest, ".roles.json"),
107
+ join(dest, ".catalog.json"),
108
+ join(dest, ".active-role"),
109
+ join(claudeDir, "hooks", "resolve.mjs"),
110
+ join(claudeDir, "hooks", "session-start.mjs"),
111
+ join(claudeDir, "commands", "role.md"),
112
+ ]) {
113
+ if (existsSync(f)) targets.push(f);
114
+ }
115
+
116
+ if (targets.length === 0) {
117
+ log(`Nothing to remove under ${claudeDir} (no swe-workflow-skills install found).`);
118
+ process.exit(0);
119
+ }
120
+
121
+ log(`Will remove from ${claudeDir}:`);
122
+ for (const t of targets) log(" " + t);
123
+ log(` (and prune swe-workflow skillOverrides from ${settingsLocal})`);
124
+
125
+ if (dryRun) {
126
+ log("");
127
+ log("Dry run: nothing changed.");
128
+ process.exit(0);
129
+ }
130
+
131
+ if (!assumeYes) {
132
+ const rl = createInterface({ input: process.stdin, output: process.stdout });
133
+ const reply = (await rl.question("Proceed? [y/N] ")).trim();
134
+ rl.close();
135
+ if (!/^(y|yes)$/i.test(reply)) {
136
+ log("Aborted.");
137
+ process.exit(0);
138
+ }
139
+ }
140
+
141
+ // Prune settings.local.json (machine-written baseline). Best-effort.
142
+ if (libSkills.length > 0) {
143
+ try {
144
+ pruneSettings(settingsLocal, libSkills);
145
+ } catch {
146
+ process.stderr.write(
147
+ `Warning: could not prune ${settingsLocal} (remove swe-workflow skillOverrides by hand).\n`,
148
+ );
149
+ }
150
+ }
151
+
152
+ for (const t of targets) {
153
+ rmSync(t, { recursive: true, force: true });
154
+ log(`Removed: ${t}`);
155
+ }
156
+
157
+ // Tidy now-empty machinery dirs (ignore failures: the user may keep other content).
158
+ for (const d of [dest, join(claudeDir, "hooks"), join(claudeDir, "commands")]) {
159
+ if (isDir(d)) {
160
+ try {
161
+ rmdirSync(d);
162
+ log(`Removed empty dir: ${d}`);
163
+ } catch {
164
+ /* not empty — leave it */
165
+ }
166
+ }
167
+ }
168
+
169
+ log("");
170
+ log("Done. If you enabled the SessionStart hook, remove this block from");
171
+ log(`${join(claudeDir, "settings.json")} by hand (this tool never edits settings.json):`);
172
+ log("");
173
+ log(` "hooks": {
174
+ "SessionStart": [
175
+ {
176
+ "matcher": "startup|resume|clear|compact",
177
+ "hooks": [
178
+ { "type": "command", "command": "node \\".../hooks/session-start.mjs\\"" }
179
+ ]
180
+ }
181
+ ]
182
+ }`);