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.
- package/README.md +4 -6
- package/package.json +1 -1
- 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`, `
|
|
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/
|
|
61
|
-
| **Codex** | `AGENTS.md` | `.agents/skills/*/SKILL.md` |
|
|
62
|
-
| **Windsurf** | `.
|
|
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
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
|
|
159
|
-
|
|
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
|
|
168
|
-
|
|
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
|
|
172
|
+
// Skills (SKILL.md with frontmatter — invokable via $skill-name)
|
|
185
173
|
writeSkills(targetDir, '.agents/skills', overwrite);
|
|
186
174
|
|
|
187
|
-
//
|
|
188
|
-
|
|
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
|
|
200
|
-
// .
|
|
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
|
-
'---\
|
|
186
|
+
'---\ntrigger: always_on\n---\n\n' +
|
|
204
187
|
coreRules;
|
|
205
|
-
writeFile(targetDir, '.
|
|
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
|
-
//
|
|
208
|
-
|
|
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,
|
|
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
|