k-harness 0.8.2 → 0.8.4

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 (3) hide show
  1. package/README.md +4 -6
  2. package/package.json +1 -1
  3. package/src/init.js +18 -34
package/README.md CHANGED
@@ -39,7 +39,6 @@ npx k-harness init --ide claude
39
39
  npx k-harness init --ide cursor
40
40
  npx k-harness init --ide codex
41
41
  npx k-harness init --ide windsurf
42
- npx k-harness init --ide augment
43
42
  npx k-harness init --ide antigravity
44
43
  ```
45
44
 
@@ -47,7 +46,7 @@ npx k-harness init --ide antigravity
47
46
 
48
47
  | Flag | Description |
49
48
  |------|-------------|
50
- | `--ide <name>` | Target IDE: `vscode`, `claude`, `cursor`, `codex`, `windsurf`, `augment`, `antigravity` |
49
+ | `--ide <name>` | Target IDE: `vscode`, `claude`, `cursor`, `codex`, `windsurf`, `antigravity` |
51
50
  | `--dir <path>` | Target directory (default: current directory) |
52
51
  | `--overwrite` | Overwrite existing files |
53
52
 
@@ -57,10 +56,9 @@ npx k-harness init --ide antigravity
57
56
  |-----|----------------------|--------|--------|
58
57
  | **VS Code Copilot** | `.github/copilot-instructions.md` | `.github/skills/*/SKILL.md` | `.github/agents/*.agent.md` |
59
58
  | **Claude Code** | `.claude/rules/core.md` | `.claude/skills/*/SKILL.md` | `.claude/skills/*/SKILL.md` |
60
- | **Cursor** | `.cursor/rules/core.mdc` | `.cursor/rules/*.mdc` | `.cursor/rules/*.mdc` |
61
- | **Codex** | `AGENTS.md` | `.agents/skills/*/SKILL.md` | (merged into AGENTS.md) |
62
- | **Windsurf** | `.windsurfrules` | (merged) | (merged) |
63
- | **Augment Code** | `.augment/rules/core.md` | `.augment/skills/*/SKILL.md` | `.augment/skills/*/SKILL.md` |
59
+ | **Cursor** | `.cursor/rules/core.mdc` | `.cursor/skills/*/SKILL.md` | `.cursor/skills/*/SKILL.md` |
60
+ | **Codex** | `AGENTS.md` | `.agents/skills/*/SKILL.md` | `.agents/skills/*/SKILL.md` |
61
+ | **Windsurf** | `.windsurf/rules/core.md` | `.windsurf/skills/*/SKILL.md` | `.windsurf/skills/*/SKILL.md` |
64
62
  | **Google Antigravity** | `.agent/rules/core.md` | `.agent/skills/*/SKILL.md` | `.agent/skills/*/SKILL.md` |
65
63
 
66
64
  All IDEs also get state files (`project-state.md`, `project-brief.md`, `features.md`, `failure-patterns.md`, `dependency-map.md`) in the `docs/` directory.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k-harness",
3
- "version": "0.8.2",
3
+ "version": "0.8.4",
4
4
  "description": "LLM Development Harness — IDE-agnostic rules, skills, and agents that prevent common AI coding failures",
5
5
  "keywords": [
6
6
  "llm",
package/src/init.js CHANGED
@@ -148,30 +148,18 @@ function generateClaude(targetDir, overwrite) {
148
148
  }
149
149
 
150
150
  function generateCursor(targetDir, overwrite) {
151
- // .cursor/rules/core.mdc — dispatcher only
151
+ // .cursor/rules/core.mdc — dispatcher only (always active)
152
152
  const coreRules = readTemplate('core-rules.md');
153
153
  const coreMdc =
154
154
  '---\ndescription: K-Harness dispatcher — workflow guidance and state file references\nalwaysApply: true\n---\n\n' +
155
155
  coreRules;
156
156
  writeFile(targetDir, '.cursor/rules/core.mdc', coreMdc, overwrite);
157
157
 
158
- // Skills as rules
159
- for (const skill of SKILLS) {
160
- const content = readTemplate(`skills/${skill.id}.md`);
161
- const mdc =
162
- `---\ndescription: ${skill.desc}\nalwaysApply: false\n---\n\n` +
163
- content;
164
- writeFile(targetDir, `.cursor/rules/${skill.id}.mdc`, mdc, overwrite);
165
- }
158
+ // Skills (.cursor/skills — invokable by mentioning skill name)
159
+ writeSkills(targetDir, '.cursor/skills', overwrite);
166
160
 
167
- // Agents as rules
168
- for (const agent of AGENTS) {
169
- const content = readTemplate(agent.file);
170
- const mdc =
171
- `---\ndescription: ${agent.desc}\nalwaysApply: false\n---\n\n` +
172
- content;
173
- writeFile(targetDir, `.cursor/rules/${agent.id}.mdc`, mdc, overwrite);
174
- }
161
+ // Agents as skills
162
+ writeAgentsAsSkills(targetDir, '.cursor/skills', overwrite);
175
163
 
176
164
  // State files
177
165
  writeStateFiles(targetDir, overwrite);
@@ -181,32 +169,29 @@ function generateCodex(targetDir, overwrite) {
181
169
  // AGENTS.md — dispatcher only
182
170
  writeFile(targetDir, 'AGENTS.md', readTemplate('core-rules.md'), overwrite);
183
171
 
184
- // Skills (SKILL.md with frontmatter for slash commands)
172
+ // Skills (SKILL.md with frontmatter invokable via $skill-name)
185
173
  writeSkills(targetDir, '.agents/skills', overwrite);
186
174
 
187
- // State files
188
- writeStateFiles(targetDir, overwrite);
189
- }
190
-
191
- function generateWindsurf(targetDir, overwrite) {
192
- // .windsurfrules — dispatcher only (rules are embedded in skills)
193
- writeFile(targetDir, '.windsurfrules', readTemplate('core-rules.md'), overwrite);
175
+ // Agents as skills
176
+ writeAgentsAsSkills(targetDir, '.agents/skills', overwrite);
194
177
 
195
178
  // State files
196
179
  writeStateFiles(targetDir, overwrite);
197
180
  }
198
181
 
199
- function generateAugment(targetDir, overwrite) {
200
- // .augment/rules/core.md — dispatcher only
182
+ function generateWindsurf(targetDir, overwrite) {
183
+ // .windsurf/rules/core.md — dispatcher (trigger: always_on)
201
184
  const coreRules = readTemplate('core-rules.md');
202
185
  const coreRule =
203
- '---\ndescription: K-Harness dispatcher — workflow guidance and state file references\ntype: always\n---\n\n' +
186
+ '---\ntrigger: always_on\n---\n\n' +
204
187
  coreRules;
205
- writeFile(targetDir, '.augment/rules/core.md', coreRule, overwrite);
188
+ writeFile(targetDir, '.windsurf/rules/core.md', coreRule, overwrite);
189
+
190
+ // Skills (.windsurf/skills — Agent Skills standard)
191
+ writeSkills(targetDir, '.windsurf/skills', overwrite);
206
192
 
207
- // .augment/skills/ SKILL.md format (enables / slash commands)
208
- writeSkills(targetDir, '.augment/skills', overwrite);
209
- writeAgentsAsSkills(targetDir, '.augment/skills', overwrite);
193
+ // Agents as skills
194
+ writeAgentsAsSkills(targetDir, '.windsurf/skills', overwrite);
210
195
 
211
196
  // State files
212
197
  writeStateFiles(targetDir, overwrite);
@@ -235,7 +220,6 @@ const GENERATORS = {
235
220
  cursor: { name: 'Cursor', fn: generateCursor },
236
221
  codex: { name: 'Codex (OpenAI)', fn: generateCodex },
237
222
  windsurf: { name: 'Windsurf', fn: generateWindsurf },
238
- augment: { name: 'Augment Code', fn: generateAugment },
239
223
  antigravity: { name: 'Google Antigravity', fn: generateAntigravity },
240
224
  };
241
225
 
@@ -276,7 +260,7 @@ function showHelp() {
276
260
  npx k-harness init [options]
277
261
 
278
262
  Options:
279
- --ide <name> IDE target: vscode, claude, cursor, codex, windsurf, augment, antigravity
263
+ --ide <name> IDE target: vscode, claude, cursor, codex, windsurf, antigravity
280
264
  --dir <path> Target directory (default: current directory)
281
265
  --overwrite Overwrite existing files
282
266
  --help Show this help