k-harness 0.1.0 → 0.2.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 (3) hide show
  1. package/README.md +3 -1
  2. package/package.json +1 -1
  3. package/src/init.js +55 -2
package/README.md CHANGED
@@ -28,13 +28,14 @@ npx k-harness init --ide claude
28
28
  npx k-harness init --ide cursor
29
29
  npx k-harness init --ide codex
30
30
  npx k-harness init --ide windsurf
31
+ npx k-harness init --ide augment
31
32
  ```
32
33
 
33
34
  ### Options
34
35
 
35
36
  | Flag | Description |
36
37
  |------|-------------|
37
- | `--ide <name>` | Target IDE: `vscode`, `claude`, `cursor`, `codex`, `windsurf` |
38
+ | `--ide <name>` | Target IDE: `vscode`, `claude`, `cursor`, `codex`, `windsurf`, `augment` |
38
39
  | `--dir <path>` | Target directory (default: current directory) |
39
40
  | `--overwrite` | Overwrite existing files |
40
41
 
@@ -47,6 +48,7 @@ npx k-harness init --ide windsurf
47
48
  | **Cursor** | `.cursor/rules/core.mdc` | `.cursor/rules/*.mdc` | `.cursor/rules/*.mdc` | `.cursor/rules/*.mdc` |
48
49
  | **Codex** | `AGENTS.md` | (merged into AGENTS.md) | `.agents/skills/*/SKILL.md` | (merged into AGENTS.md) |
49
50
  | **Windsurf** | `.windsurfrules` | (merged) | (merged) | (merged) |
51
+ | **Augment Code** | `.augment/rules/core.md` | `.augment/rules/*.md` | `.augment/rules/*.md` | `.augment/rules/*.md` |
50
52
 
51
53
  All IDEs also get `project-state.md`, `failure-patterns.md`, `features.md`, and `project-brief.md` at the project root.
52
54
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "k-harness",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
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
@@ -210,6 +210,58 @@ function generateWindsurf(targetDir, overwrite) {
210
210
  writeFile(targetDir, 'project-brief.md', readTemplate('project-brief.md'), overwrite);
211
211
  }
212
212
 
213
+ function generateAugment(targetDir, overwrite) {
214
+ // .augment/rules/ — Always-type rules for core, testing, backend
215
+ const coreRules = readTemplate('core-rules.md');
216
+ const coreRule =
217
+ '---\ndescription: Core project rules — Iron Laws, completion protocol, concreteness\ntype: always\n---\n\n' +
218
+ coreRules;
219
+ writeFile(targetDir, '.augment/rules/core.md', coreRule, overwrite);
220
+
221
+ const testingRules = readTemplate('testing-rules.md');
222
+ const testingRule =
223
+ '---\ndescription: Testing rules — mock sync, forbidden patterns\ntype: auto\nglobs: "**/*.test.*,**/*.spec.*,**/__mocks__/**,**/__tests__/**"\n---\n\n' +
224
+ testingRules;
225
+ writeFile(targetDir, '.augment/rules/testing.md', testingRule, overwrite);
226
+
227
+ const backendRules = readTemplate('backend-rules.md');
228
+ const backendRule =
229
+ '---\ndescription: Backend code rules — architecture enforcement, type safety\ntype: auto\nglobs: "src/**/*.ts,src/**/*.js"\n---\n\n' +
230
+ backendRules;
231
+ writeFile(targetDir, '.augment/rules/backend.md', backendRule, overwrite);
232
+
233
+ // Skills as Auto rules
234
+ const skills = ['test-integrity', 'security-checklist', 'investigate', 'impact-analysis', 'feature-breakdown'];
235
+ for (const skill of skills) {
236
+ const content = readTemplate(`skills/${skill}.md`);
237
+ const rule =
238
+ `---\ndescription: Skill — ${skill}\ntype: manual\n---\n\n` +
239
+ content;
240
+ writeFile(targetDir, `.augment/rules/${skill}.md`, rule, overwrite);
241
+ }
242
+
243
+ // Agents as Manual rules
244
+ const agents = [
245
+ { name: 'reviewer', file: 'agents/reviewer.md' },
246
+ { name: 'sprint-manager', file: 'agents/sprint-manager.md' },
247
+ { name: 'planner', file: 'agents/planner.md' },
248
+ ];
249
+ for (const agent of agents) {
250
+ const content = readTemplate(agent.file);
251
+ const rule =
252
+ `---\ndescription: Agent — ${agent.name}\ntype: manual\n---\n\n` +
253
+ content;
254
+ writeFile(targetDir, `.augment/rules/${agent.name}.md`, rule, overwrite);
255
+ }
256
+
257
+ // State files
258
+ writeFile(targetDir, 'project-state.md', readTemplate('project-state.md'), overwrite);
259
+ writeFile(targetDir, 'failure-patterns.md', readTemplate('failure-patterns.md'), overwrite);
260
+ writeFile(targetDir, 'dependency-map.md', readTemplate('dependency-map.md'), overwrite);
261
+ writeFile(targetDir, 'features.md', readTemplate('features.md'), overwrite);
262
+ writeFile(targetDir, 'project-brief.md', readTemplate('project-brief.md'), overwrite);
263
+ }
264
+
213
265
  // ─── IDE registry ────────────────────────────────────────────
214
266
  const GENERATORS = {
215
267
  vscode: { name: 'VS Code Copilot', fn: generateVscode },
@@ -217,6 +269,7 @@ const GENERATORS = {
217
269
  cursor: { name: 'Cursor', fn: generateCursor },
218
270
  codex: { name: 'Codex (OpenAI)', fn: generateCodex },
219
271
  windsurf: { name: 'Windsurf', fn: generateWindsurf },
272
+ augment: { name: 'Augment Code', fn: generateAugment },
220
273
  };
221
274
 
222
275
  // ─── Interactive prompt ──────────────────────────────────────
@@ -238,7 +291,7 @@ async function promptIde() {
238
291
  });
239
292
  console.log();
240
293
 
241
- const answer = await askQuestion(' Choice (1-5): ');
294
+ const answer = await askQuestion(` Choice (1-${keys.length}): `);
242
295
  const idx = parseInt(answer, 10) - 1;
243
296
  if (idx < 0 || idx >= keys.length || isNaN(idx)) {
244
297
  console.error(' Invalid choice.');
@@ -256,7 +309,7 @@ function showHelp() {
256
309
  npx k-harness init [options]
257
310
 
258
311
  Options:
259
- --ide <name> IDE target: vscode, claude, cursor, codex, windsurf
312
+ --ide <name> IDE target: vscode, claude, cursor, codex, windsurf, augment
260
313
  --dir <path> Target directory (default: current directory)
261
314
  --overwrite Overwrite existing files
262
315
  --help Show this help