@harness-engineering/cli 1.7.0 → 1.8.1

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 (187) hide show
  1. package/dist/agents/personas/documentation-maintainer.yaml +3 -1
  2. package/dist/agents/personas/performance-guardian.yaml +23 -0
  3. package/dist/agents/skills/claude-code/align-documentation/SKILL.md +13 -0
  4. package/dist/agents/skills/claude-code/cleanup-dead-code/SKILL.md +25 -1
  5. package/dist/agents/skills/claude-code/cleanup-dead-code/skill.yaml +5 -2
  6. package/dist/agents/skills/claude-code/detect-doc-drift/SKILL.md +12 -0
  7. package/dist/agents/skills/claude-code/enforce-architecture/SKILL.md +48 -1
  8. package/dist/agents/skills/claude-code/enforce-architecture/skill.yaml +5 -2
  9. package/dist/agents/skills/claude-code/harness-accessibility/SKILL.md +7 -0
  10. package/dist/agents/skills/claude-code/harness-autopilot/SKILL.md +11 -3
  11. package/dist/agents/skills/claude-code/harness-brainstorming/SKILL.md +81 -11
  12. package/dist/agents/skills/claude-code/harness-brainstorming/skill.yaml +2 -0
  13. package/dist/agents/skills/claude-code/harness-code-review/SKILL.md +487 -234
  14. package/dist/agents/skills/claude-code/harness-code-review/skill.yaml +15 -2
  15. package/dist/agents/skills/claude-code/harness-codebase-cleanup/SKILL.md +226 -0
  16. package/dist/agents/skills/claude-code/harness-codebase-cleanup/skill.yaml +64 -0
  17. package/dist/agents/skills/claude-code/harness-dependency-health/SKILL.md +35 -6
  18. package/dist/agents/skills/claude-code/harness-docs-pipeline/SKILL.md +460 -0
  19. package/dist/agents/skills/claude-code/harness-docs-pipeline/skill.yaml +69 -0
  20. package/dist/agents/skills/claude-code/harness-execution/SKILL.md +73 -8
  21. package/dist/agents/skills/claude-code/harness-execution/skill.yaml +1 -0
  22. package/dist/agents/skills/claude-code/harness-hotspot-detector/SKILL.md +32 -6
  23. package/dist/agents/skills/claude-code/harness-i18n/SKILL.md +484 -0
  24. package/dist/agents/skills/claude-code/harness-i18n/skill.yaml +54 -0
  25. package/dist/agents/skills/claude-code/harness-i18n-process/SKILL.md +388 -0
  26. package/dist/agents/skills/claude-code/harness-i18n-process/skill.yaml +43 -0
  27. package/dist/agents/skills/claude-code/harness-i18n-workflow/SKILL.md +512 -0
  28. package/dist/agents/skills/claude-code/harness-i18n-workflow/skill.yaml +53 -0
  29. package/dist/agents/skills/claude-code/harness-impact-analysis/SKILL.md +35 -6
  30. package/dist/agents/skills/claude-code/harness-integrity/SKILL.md +17 -1
  31. package/dist/agents/skills/claude-code/harness-knowledge-mapper/SKILL.md +46 -5
  32. package/dist/agents/skills/claude-code/harness-perf/SKILL.md +37 -8
  33. package/dist/agents/skills/claude-code/harness-perf/skill.yaml +3 -0
  34. package/dist/agents/skills/claude-code/harness-perf-tdd/SKILL.md +17 -4
  35. package/dist/agents/skills/claude-code/harness-planning/SKILL.md +59 -5
  36. package/dist/agents/skills/claude-code/harness-planning/skill.yaml +2 -0
  37. package/dist/agents/skills/claude-code/harness-release-readiness/SKILL.md +16 -0
  38. package/dist/agents/skills/claude-code/harness-roadmap/SKILL.md +561 -0
  39. package/dist/agents/skills/claude-code/harness-roadmap/skill.yaml +43 -0
  40. package/dist/agents/skills/claude-code/harness-security-review/SKILL.md +36 -2
  41. package/dist/agents/skills/claude-code/harness-security-review/skill.yaml +8 -6
  42. package/dist/agents/skills/claude-code/harness-soundness-review/SKILL.md +1267 -0
  43. package/dist/agents/skills/claude-code/harness-soundness-review/skill.yaml +48 -0
  44. package/dist/agents/skills/claude-code/harness-test-advisor/SKILL.md +35 -6
  45. package/dist/agents/skills/claude-code/harness-verification/SKILL.md +66 -0
  46. package/dist/agents/skills/claude-code/harness-verification/skill.yaml +1 -0
  47. package/dist/agents/skills/claude-code/harness-verify/SKILL.md +11 -0
  48. package/dist/agents/skills/claude-code/initialize-harness-project/SKILL.md +15 -1
  49. package/dist/agents/skills/claude-code/validate-context-engineering/SKILL.md +12 -0
  50. package/dist/agents/skills/gemini-cli/add-harness-component/SKILL.md +192 -0
  51. package/dist/agents/skills/gemini-cli/add-harness-component/skill.yaml +32 -0
  52. package/dist/agents/skills/gemini-cli/align-documentation/SKILL.md +213 -0
  53. package/dist/agents/skills/gemini-cli/align-documentation/skill.yaml +31 -0
  54. package/dist/agents/skills/gemini-cli/check-mechanical-constraints/SKILL.md +191 -0
  55. package/dist/agents/skills/gemini-cli/check-mechanical-constraints/skill.yaml +32 -0
  56. package/dist/agents/skills/gemini-cli/cleanup-dead-code/SKILL.md +245 -0
  57. package/dist/agents/skills/gemini-cli/cleanup-dead-code/skill.yaml +33 -0
  58. package/dist/agents/skills/gemini-cli/detect-doc-drift/SKILL.md +179 -0
  59. package/dist/agents/skills/gemini-cli/detect-doc-drift/skill.yaml +30 -0
  60. package/dist/agents/skills/gemini-cli/enforce-architecture/SKILL.md +240 -0
  61. package/dist/agents/skills/gemini-cli/enforce-architecture/skill.yaml +34 -0
  62. package/dist/agents/skills/gemini-cli/harness-accessibility/SKILL.md +7 -0
  63. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/SKILL.md +397 -0
  64. package/dist/agents/skills/gemini-cli/harness-architecture-advisor/skill.yaml +48 -0
  65. package/dist/agents/skills/gemini-cli/harness-autopilot/SKILL.md +11 -3
  66. package/dist/agents/skills/gemini-cli/harness-brainstorming/SKILL.md +317 -0
  67. package/dist/agents/skills/gemini-cli/harness-brainstorming/skill.yaml +49 -0
  68. package/dist/agents/skills/gemini-cli/harness-code-review/SKILL.md +681 -0
  69. package/dist/agents/skills/gemini-cli/harness-code-review/skill.yaml +45 -0
  70. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/SKILL.md +226 -0
  71. package/dist/agents/skills/gemini-cli/harness-codebase-cleanup/skill.yaml +64 -0
  72. package/dist/agents/skills/gemini-cli/harness-debugging/SKILL.md +366 -0
  73. package/dist/agents/skills/gemini-cli/harness-debugging/skill.yaml +47 -0
  74. package/dist/agents/skills/gemini-cli/harness-dependency-health/SKILL.md +35 -6
  75. package/dist/agents/skills/gemini-cli/harness-diagnostics/SKILL.md +318 -0
  76. package/dist/agents/skills/gemini-cli/harness-diagnostics/skill.yaml +50 -0
  77. package/dist/agents/skills/gemini-cli/harness-docs-pipeline/SKILL.md +460 -0
  78. package/dist/agents/skills/gemini-cli/harness-docs-pipeline/skill.yaml +69 -0
  79. package/dist/agents/skills/gemini-cli/harness-execution/SKILL.md +382 -0
  80. package/dist/agents/skills/gemini-cli/harness-execution/skill.yaml +51 -0
  81. package/dist/agents/skills/gemini-cli/harness-git-workflow/SKILL.md +268 -0
  82. package/dist/agents/skills/gemini-cli/harness-git-workflow/skill.yaml +31 -0
  83. package/dist/agents/skills/gemini-cli/harness-hotspot-detector/SKILL.md +32 -6
  84. package/dist/agents/skills/gemini-cli/harness-i18n/SKILL.md +484 -0
  85. package/dist/agents/skills/gemini-cli/harness-i18n/skill.yaml +54 -0
  86. package/dist/agents/skills/gemini-cli/harness-i18n-process/SKILL.md +388 -0
  87. package/dist/agents/skills/gemini-cli/harness-i18n-process/skill.yaml +43 -0
  88. package/dist/agents/skills/gemini-cli/harness-i18n-workflow/SKILL.md +512 -0
  89. package/dist/agents/skills/gemini-cli/harness-i18n-workflow/skill.yaml +53 -0
  90. package/dist/agents/skills/gemini-cli/harness-impact-analysis/SKILL.md +35 -6
  91. package/dist/agents/skills/gemini-cli/harness-integrity/SKILL.md +167 -0
  92. package/dist/agents/skills/gemini-cli/harness-integrity/skill.yaml +47 -0
  93. package/dist/agents/skills/gemini-cli/harness-knowledge-mapper/SKILL.md +46 -5
  94. package/dist/agents/skills/gemini-cli/harness-onboarding/SKILL.md +288 -0
  95. package/dist/agents/skills/gemini-cli/harness-onboarding/skill.yaml +30 -0
  96. package/dist/agents/skills/gemini-cli/harness-parallel-agents/SKILL.md +171 -0
  97. package/dist/agents/skills/gemini-cli/harness-parallel-agents/skill.yaml +33 -0
  98. package/dist/agents/skills/gemini-cli/harness-perf/SKILL.md +37 -8
  99. package/dist/agents/skills/gemini-cli/harness-perf/skill.yaml +3 -0
  100. package/dist/agents/skills/gemini-cli/harness-perf-tdd/SKILL.md +17 -4
  101. package/dist/agents/skills/gemini-cli/harness-planning/SKILL.md +389 -0
  102. package/dist/agents/skills/gemini-cli/harness-planning/skill.yaml +49 -0
  103. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/SKILL.md +262 -0
  104. package/dist/agents/skills/gemini-cli/harness-pre-commit-review/skill.yaml +33 -0
  105. package/dist/agents/skills/gemini-cli/harness-refactoring/SKILL.md +169 -0
  106. package/dist/agents/skills/gemini-cli/harness-refactoring/skill.yaml +33 -0
  107. package/dist/agents/skills/gemini-cli/harness-release-readiness/SKILL.md +16 -0
  108. package/dist/agents/skills/gemini-cli/harness-roadmap/SKILL.md +561 -0
  109. package/dist/agents/skills/gemini-cli/harness-roadmap/skill.yaml +43 -0
  110. package/dist/agents/skills/gemini-cli/harness-security-review/skill.yaml +8 -6
  111. package/dist/agents/skills/gemini-cli/harness-skill-authoring/SKILL.md +292 -0
  112. package/dist/agents/skills/gemini-cli/harness-skill-authoring/skill.yaml +32 -0
  113. package/dist/agents/skills/gemini-cli/harness-soundness-review/SKILL.md +1267 -0
  114. package/dist/agents/skills/gemini-cli/harness-soundness-review/skill.yaml +48 -0
  115. package/dist/agents/skills/gemini-cli/harness-state-management/SKILL.md +309 -0
  116. package/dist/agents/skills/gemini-cli/harness-state-management/skill.yaml +32 -0
  117. package/dist/agents/skills/gemini-cli/harness-tdd/SKILL.md +177 -0
  118. package/dist/agents/skills/gemini-cli/harness-tdd/skill.yaml +48 -0
  119. package/dist/agents/skills/gemini-cli/harness-test-advisor/SKILL.md +35 -6
  120. package/dist/agents/skills/gemini-cli/harness-verification/SKILL.md +328 -0
  121. package/dist/agents/skills/gemini-cli/harness-verification/skill.yaml +42 -0
  122. package/dist/agents/skills/gemini-cli/harness-verify/SKILL.md +159 -0
  123. package/dist/agents/skills/gemini-cli/harness-verify/skill.yaml +40 -0
  124. package/dist/agents/skills/gemini-cli/initialize-harness-project/SKILL.md +224 -0
  125. package/dist/agents/skills/gemini-cli/initialize-harness-project/skill.yaml +31 -0
  126. package/dist/agents/skills/gemini-cli/validate-context-engineering/SKILL.md +150 -0
  127. package/dist/agents/skills/gemini-cli/validate-context-engineering/skill.yaml +31 -0
  128. package/dist/agents/skills/shared/i18n-knowledge/accessibility/intersection.yaml +142 -0
  129. package/dist/agents/skills/shared/i18n-knowledge/anti-patterns/encoding.yaml +67 -0
  130. package/dist/agents/skills/shared/i18n-knowledge/anti-patterns/formatting.yaml +106 -0
  131. package/dist/agents/skills/shared/i18n-knowledge/anti-patterns/layout.yaml +80 -0
  132. package/dist/agents/skills/shared/i18n-knowledge/anti-patterns/pluralization.yaml +80 -0
  133. package/dist/agents/skills/shared/i18n-knowledge/anti-patterns/string-handling.yaml +106 -0
  134. package/dist/agents/skills/shared/i18n-knowledge/frameworks/android-resources.yaml +47 -0
  135. package/dist/agents/skills/shared/i18n-knowledge/frameworks/apple-strings.yaml +47 -0
  136. package/dist/agents/skills/shared/i18n-knowledge/frameworks/backend-patterns.yaml +50 -0
  137. package/dist/agents/skills/shared/i18n-knowledge/frameworks/flutter-intl.yaml +47 -0
  138. package/dist/agents/skills/shared/i18n-knowledge/frameworks/i18next.yaml +47 -0
  139. package/dist/agents/skills/shared/i18n-knowledge/frameworks/react-intl.yaml +47 -0
  140. package/dist/agents/skills/shared/i18n-knowledge/frameworks/vue-i18n.yaml +47 -0
  141. package/dist/agents/skills/shared/i18n-knowledge/industries/ecommerce.yaml +66 -0
  142. package/dist/agents/skills/shared/i18n-knowledge/industries/fintech.yaml +66 -0
  143. package/dist/agents/skills/shared/i18n-knowledge/industries/gaming.yaml +69 -0
  144. package/dist/agents/skills/shared/i18n-knowledge/industries/healthcare.yaml +66 -0
  145. package/dist/agents/skills/shared/i18n-knowledge/industries/legal.yaml +66 -0
  146. package/dist/agents/skills/shared/i18n-knowledge/locales/ar.yaml +41 -0
  147. package/dist/agents/skills/shared/i18n-knowledge/locales/de.yaml +35 -0
  148. package/dist/agents/skills/shared/i18n-knowledge/locales/en.yaml +32 -0
  149. package/dist/agents/skills/shared/i18n-knowledge/locales/es.yaml +35 -0
  150. package/dist/agents/skills/shared/i18n-knowledge/locales/fi.yaml +35 -0
  151. package/dist/agents/skills/shared/i18n-knowledge/locales/fr.yaml +35 -0
  152. package/dist/agents/skills/shared/i18n-knowledge/locales/he.yaml +41 -0
  153. package/dist/agents/skills/shared/i18n-knowledge/locales/hi.yaml +35 -0
  154. package/dist/agents/skills/shared/i18n-knowledge/locales/it.yaml +32 -0
  155. package/dist/agents/skills/shared/i18n-knowledge/locales/ja.yaml +38 -0
  156. package/dist/agents/skills/shared/i18n-knowledge/locales/ko.yaml +38 -0
  157. package/dist/agents/skills/shared/i18n-knowledge/locales/nl.yaml +32 -0
  158. package/dist/agents/skills/shared/i18n-knowledge/locales/pl.yaml +35 -0
  159. package/dist/agents/skills/shared/i18n-knowledge/locales/pt.yaml +32 -0
  160. package/dist/agents/skills/shared/i18n-knowledge/locales/ru.yaml +35 -0
  161. package/dist/agents/skills/shared/i18n-knowledge/locales/sv.yaml +32 -0
  162. package/dist/agents/skills/shared/i18n-knowledge/locales/th.yaml +35 -0
  163. package/dist/agents/skills/shared/i18n-knowledge/locales/tr.yaml +35 -0
  164. package/dist/agents/skills/shared/i18n-knowledge/locales/zh-Hans.yaml +38 -0
  165. package/dist/agents/skills/shared/i18n-knowledge/locales/zh-Hant.yaml +35 -0
  166. package/dist/agents/skills/shared/i18n-knowledge/mcp-interop/i18next-mcp.yaml +56 -0
  167. package/dist/agents/skills/shared/i18n-knowledge/mcp-interop/lingo-dev.yaml +56 -0
  168. package/dist/agents/skills/shared/i18n-knowledge/mcp-interop/lokalise.yaml +60 -0
  169. package/dist/agents/skills/shared/i18n-knowledge/mcp-interop/tolgee.yaml +60 -0
  170. package/dist/agents/skills/shared/i18n-knowledge/testing/locale-testing.yaml +107 -0
  171. package/dist/agents/skills/shared/i18n-knowledge/testing/pseudo-localization.yaml +86 -0
  172. package/dist/bin/harness.js +64 -4
  173. package/dist/{chunk-GA6GN5J2.js → chunk-E2RTDBMG.js} +2263 -41
  174. package/dist/{chunk-FFIX3QVG.js → chunk-KJANDVVC.js} +141 -49
  175. package/dist/{chunk-4WUGOJQ7.js → chunk-RT2LYQHF.js} +1 -1
  176. package/dist/{dist-C4J67MPP.js → dist-CCM3L3UE.js} +95 -1
  177. package/dist/{dist-N4D4QWFV.js → dist-K6KTTN3I.js} +4 -4
  178. package/dist/index.d.ts +187 -7
  179. package/dist/index.js +7 -3
  180. package/dist/validate-cross-check-ZGKFQY57.js +7 -0
  181. package/package.json +9 -9
  182. package/dist/agents/skills/node_modules/.bin/glob +0 -17
  183. package/dist/agents/skills/node_modules/.bin/vitest +0 -17
  184. package/dist/agents/skills/node_modules/.bin/yaml +0 -17
  185. package/dist/templates/advanced/docs/specs/.gitkeep +0 -0
  186. package/dist/templates/intermediate/docs/specs/.gitkeep +0 -0
  187. package/dist/validate-cross-check-WGXQ7K62.js +0 -7
@@ -0,0 +1,292 @@
1
+ # Harness Skill Authoring
2
+
3
+ > Create and extend harness skills following the rich skill format. Define purpose, choose type, write skill.yaml and SKILL.md with all required sections, validate, and test.
4
+
5
+ ## When to Use
6
+
7
+ - Creating a new skill for a team's recurring workflow
8
+ - Extending an existing skill with new phases, gates, or examples
9
+ - Converting an informal process ("how we do code reviews") into a formal harness skill
10
+ - When a team notices they repeat the same multi-step process and wants to codify it
11
+ - NOT when running an existing skill (use the skill directly)
12
+ - NOT when listing or discovering skills (use `harness skill list`)
13
+ - NOT when the process is a one-off task that will not recur
14
+
15
+ ## Process
16
+
17
+ ### Phase 1: DEFINE — Establish the Skill's Purpose
18
+
19
+ 1. **Identify the recurring process.** What does the team do repeatedly? Name it. Describe it in one sentence. This becomes the skill's `description` in `skill.yaml` and the blockquote summary in `SKILL.md`.
20
+
21
+ 2. **Define the scope boundary.** A good skill does one thing well. If the process has distinct phases that could be done independently, consider whether it should be multiple skills. Signs of a skill that is too broad: more than 6 phases, multiple unrelated triggers, trying to serve two different audiences.
22
+
23
+ 3. **Identify the trigger conditions.** When should this skill activate?
24
+ - `manual` — Only when explicitly invoked
25
+ - `on_new_feature` — When starting a new feature
26
+ - `on_bug_fix` — When fixing a bug
27
+ - `on_pr_review` — When reviewing a pull request
28
+ - `on_project_init` — When initializing or entering a project
29
+ - Multiple triggers are fine if the skill genuinely applies to all of them
30
+
31
+ 4. **Determine required tools.** What tools does the skill need? Common sets:
32
+ - Read-only analysis: `Read`, `Glob`, `Grep`
33
+ - Code modification: `Read`, `Write`, `Edit`, `Glob`, `Grep`, `Bash`
34
+ - Full workflow: all of the above plus specialized tools
35
+
36
+ ### Phase 2: CHOOSE TYPE — Rigid or Flexible
37
+
38
+ 1. **Choose rigid when:**
39
+ - The process has strict ordering that must not be violated
40
+ - Skipping steps causes real damage (data loss, security holes, broken deployments)
41
+ - Compliance or policy requires auditability of each step
42
+ - The process includes mandatory checkpoints where human approval is needed
43
+ - Examples: TDD cycle, deployment pipeline, security audit, database migration
44
+
45
+ 2. **Choose flexible when:**
46
+ - The process has recommended steps but the order can adapt to context
47
+ - The agent should use judgment about which steps to emphasize
48
+ - Different situations call for different subsets of the process
49
+ - The process is more about guidelines than rigid procedure
50
+ - Examples: code review, onboarding, brainstorming, project initialization
51
+
52
+ 3. **Key difference in SKILL.md:** Rigid skills require `## Gates` and `## Escalation` sections. Flexible skills may omit them (though they can include them if useful).
53
+
54
+ ### Phase 3: WRITE SKILL.YAML — Define Metadata
55
+
56
+ 1. **Create the skill directory** under `agents/skills/<platform>/<skill-name>/`.
57
+
58
+ 2. **Write `skill.yaml`** with all required fields:
59
+
60
+ ```yaml
61
+ name: <skill-name> # Kebab-case, matches directory name
62
+ version: '1.0.0' # Semver
63
+ description: <one-line summary> # What this skill does
64
+ triggers:
65
+ - <trigger-1>
66
+ - <trigger-2>
67
+ platforms:
68
+ - claude-code # Which agent platforms support this skill
69
+ tools:
70
+ - <tool-1> # Tools the skill requires
71
+ - <tool-2>
72
+ cli:
73
+ command: harness skill run <skill-name>
74
+ args:
75
+ - name: <arg-name>
76
+ description: <arg-description>
77
+ required: <true|false>
78
+ mcp:
79
+ tool: run_skill
80
+ input:
81
+ skill: <skill-name>
82
+ type: <rigid|flexible>
83
+ state:
84
+ persistent: <true|false> # Does this skill maintain state across sessions?
85
+ files:
86
+ - <state-file-path> # List state files if persistent
87
+ depends_on:
88
+ - <prerequisite-skill> # Skills that must be available (not necessarily run first)
89
+ ```
90
+
91
+ 3. **Validate the YAML.** Ensure proper indentation, correct field names, and valid values. The `name` field must match the directory name exactly.
92
+
93
+ ### Phase 4: WRITE SKILL.MD — Author the Skill Content
94
+
95
+ 1. **Start with the heading and summary:**
96
+
97
+ ```markdown
98
+ # <Skill Name>
99
+
100
+ > <One-sentence description of what the skill does and why.>
101
+ ```
102
+
103
+ 2. **Write `## When to Use`.** Include both positive (when TO use) and negative (when NOT to use) conditions. Be specific. Negative conditions prevent misapplication and point to the correct alternative skill.
104
+
105
+ 3. **Write `## Process`.** This is the core of the skill. Guidelines for writing good process sections:
106
+ - **Use phases to organize.** Group related steps into named phases (e.g., ASSESS, IMPLEMENT, VERIFY). Each phase should have a clear purpose and completion criteria.
107
+ - **Number every step.** Steps within a phase are numbered. This makes them referenceable ("go back to Phase 2, step 3").
108
+ - **Be prescriptive about actions.** Say "Run `harness validate`" not "consider validating." Say "Read the file" not "you might want to read the file."
109
+ - **Include decision points.** When the process branches, state the conditions clearly: "If X, do A. If Y, do B."
110
+ - **State what NOT to do.** Prohibitions prevent common mistakes: "Do not proceed to Phase 3 if validation fails."
111
+ - **For rigid skills:** Add an Iron Law at the top — the one inviolable principle. Then define phases with mandatory ordering and explicit gates between them.
112
+ - **For flexible skills:** Describe the recommended flow but acknowledge that adaptation is expected. Focus on outcomes rather than exact commands.
113
+
114
+ 4. **Write `## Harness Integration`.** List every harness CLI command the skill uses, with a brief description of when to use it. This section connects the skill to the harness toolchain.
115
+
116
+ 5. **Write `## Success Criteria`.** Define how to know the skill was executed well. Each criterion should be observable and verifiable — not subjective.
117
+
118
+ 6. **Write `## Examples`.** At least one concrete example showing the full process from start to finish. Use realistic project names, file paths, and commands. Show both the commands and their expected outputs.
119
+
120
+ 7. **For rigid skills, write `## Gates`.** Gates are hard stops — conditions that must be true to proceed. Each gate should state what happens if violated. Format: "**<condition> = <consequence>.**"
121
+
122
+ 8. **For rigid skills, write `## Escalation`.** Define when to stop and ask for help. Each escalation condition should describe the symptom, the likely cause, and what to report.
123
+
124
+ ### Phase 5: VALIDATE — Verify the Skill
125
+
126
+ 1. **Run `harness skill validate`** to check:
127
+ - `skill.yaml` has all required fields and valid values
128
+ - `SKILL.md` has all required sections (`## When to Use`, `## Process`, `## Harness Integration`, `## Success Criteria`, `## Examples`)
129
+ - Rigid skills have `## Gates` and `## Escalation` sections
130
+ - The `name` in `skill.yaml` matches the directory name
131
+ - Referenced tools exist
132
+ - Referenced dependencies exist
133
+
134
+ 2. **Fix any validation errors.** Common issues:
135
+ - Missing required section in `SKILL.md`
136
+ - `name` field does not match directory name
137
+ - Invalid trigger name
138
+ - Missing `type` field in `skill.yaml`
139
+
140
+ 3. **Test by running the skill:** `harness skill run <name>`. Verify it loads correctly and the process instructions make sense in context.
141
+
142
+ ### Skill Quality Checklist
143
+
144
+ Evaluate every skill along two dimensions:
145
+
146
+ | | **Clear activation** | **Ambiguous activation** | **Missing activation** |
147
+ | --------------------------- | ----------------------------------- | --------------------------------------- | ---------------------- |
148
+ | **Specific implementation** | Good skill | Wasted — good instructions nobody finds | Broken |
149
+ | **Vague implementation** | Trap — agents activate but flounder | Bad skill | Empty shell |
150
+ | **Missing implementation** | Stub | Stub | Does not exist |
151
+
152
+ - **Good skill** = clear activation + specific implementation. The agent knows when to use it and exactly what to do.
153
+ - **Clear activation + vague implementation** = trap. The skill fires correctly but the agent has no concrete instructions, leading to inconsistent results.
154
+ - **Ambiguous activation + specific implementation** = wasted. Great instructions that never get used because the agent does not know when to activate the skill.
155
+
156
+ Use this checklist as a final quality gate before declaring a skill complete.
157
+
158
+ ## Harness Integration
159
+
160
+ - **`harness skill validate`** — Validate a skill's `skill.yaml` and `SKILL.md` against the schema and structure requirements.
161
+ - **`harness skill run <name>`** — Execute a skill to test it in context.
162
+ - **`harness skill list`** — List all available skills, useful for checking that a new skill appears after creation.
163
+ - **`harness add skill <name> --type <type>`** — Scaffold a new skill directory with template files (alternative to manual creation).
164
+
165
+ ## Success Criteria
166
+
167
+ - `skill.yaml` exists with all required fields and passes schema validation
168
+ - `SKILL.md` exists with all required sections filled with substantive content (not placeholders)
169
+ - The skill name in `skill.yaml` matches the directory name
170
+ - `harness skill validate` passes with zero errors
171
+ - The process section has clear, numbered, actionable steps organized into phases
172
+ - When to Use includes both positive and negative conditions
173
+ - At least one concrete example demonstrates the full process
174
+ - Rigid skills include Gates and Escalation sections with specific conditions and consequences
175
+ - The skill can be loaded and run with `harness skill run <name>`
176
+
177
+ ## Examples
178
+
179
+ ### Example: Creating a Flexible Skill for Database Migration Review
180
+
181
+ **DEFINE:**
182
+
183
+ ```
184
+ Process: The team reviews database migrations before applying them.
185
+ Scope: Review only — not creating or applying migrations.
186
+ Triggers: manual (invoked when a migration PR is opened).
187
+ Tools: Read, Glob, Grep, Bash.
188
+ ```
189
+
190
+ **CHOOSE TYPE:** Flexible — the review steps can vary based on migration complexity. Some migrations need data impact analysis, others do not.
191
+
192
+ **WRITE skill.yaml:**
193
+
194
+ ```yaml
195
+ name: review-db-migration
196
+ version: '1.0.0'
197
+ description: Review database migration files for safety and correctness
198
+ triggers:
199
+ - manual
200
+ platforms:
201
+ - claude-code
202
+ tools:
203
+ - Read
204
+ - Glob
205
+ - Grep
206
+ - Bash
207
+ cli:
208
+ command: harness skill run review-db-migration
209
+ args:
210
+ - name: migration-file
211
+ description: Path to the migration file to review
212
+ required: true
213
+ mcp:
214
+ tool: run_skill
215
+ input:
216
+ skill: review-db-migration
217
+ type: flexible
218
+ state:
219
+ persistent: false
220
+ files: []
221
+ depends_on: []
222
+ ```
223
+
224
+ **WRITE SKILL.md:**
225
+
226
+ ```markdown
227
+ # Review Database Migration
228
+
229
+ > Review database migration files for safety, correctness, and
230
+ > reversibility before they are applied to any environment.
231
+
232
+ ## When to Use
233
+
234
+ - When a new migration file has been created and needs review
235
+ - When a migration PR is opened
236
+ - NOT when writing migrations (write first, then review)
237
+ - NOT when applying migrations to environments (that is a deployment concern)
238
+
239
+ ## Process
240
+
241
+ ### Phase 1: ANALYZE — Understand the Migration
242
+
243
+ 1. Read the migration file completely...
244
+ [... full process content ...]
245
+
246
+ ## Harness Integration
247
+
248
+ - `harness validate` — Verify project health after migration review
249
+ [... etc ...]
250
+ ```
251
+
252
+ **VALIDATE:**
253
+
254
+ ```bash
255
+ harness skill validate review-db-migration # Pass
256
+ harness skill run review-db-migration # Loads correctly
257
+ ```
258
+
259
+ ### Example: Creating a Rigid Skill for Release Deployment
260
+
261
+ **DEFINE:**
262
+
263
+ ```
264
+ Process: Deploy a release to production. Strict ordering — cannot skip steps.
265
+ Triggers: manual.
266
+ Tools: Bash, Read, Glob.
267
+ ```
268
+
269
+ **CHOOSE TYPE:** Rigid — skipping the smoke test or rollback verification step could cause production outages. Mandatory checkpoints for human approval before each environment promotion.
270
+
271
+ **WRITE SKILL.md (key rigid sections):**
272
+
273
+ ```markdown
274
+ ## Gates
275
+
276
+ - **Tests must pass before build.** If the test suite fails, do not
277
+ proceed to build. Fix the tests first.
278
+ - **Staging must be verified before production.** If staging smoke tests
279
+ fail, do not promote to production. Roll back staging and investigate.
280
+ - **Human approval required at each promotion.** Use [checkpoint:human-verify]
281
+ before promoting from staging to production. No auto-promotion.
282
+
283
+ ## Escalation
284
+
285
+ - **When staging smoke tests fail on a test that passed locally:**
286
+ Report: "Smoke test [name] fails in staging but passes locally.
287
+ Likely cause: environment-specific configuration or data difference.
288
+ Need to investigate before proceeding."
289
+ - **When rollback verification fails:** This is critical. Report immediately:
290
+ "Rollback to version [X] failed. Current state: [description].
291
+ Manual intervention required."
292
+ ```
@@ -0,0 +1,32 @@
1
+ name: harness-skill-authoring
2
+ version: "1.0.0"
3
+ description: Create and maintain harness skills following the rich skill format
4
+ cognitive_mode: constructive-architect
5
+ triggers:
6
+ - manual
7
+ platforms:
8
+ - claude-code
9
+ - gemini-cli
10
+ tools:
11
+ - Bash
12
+ - Read
13
+ - Write
14
+ - Edit
15
+ - Glob
16
+ - Grep
17
+ cli:
18
+ command: harness skill run harness-skill-authoring
19
+ args:
20
+ - name: path
21
+ description: Project root path
22
+ required: false
23
+ mcp:
24
+ tool: run_skill
25
+ input:
26
+ skill: harness-skill-authoring
27
+ path: string
28
+ type: flexible
29
+ state:
30
+ persistent: false
31
+ files: []
32
+ depends_on: []