k-harness 0.8.1 → 0.8.3
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 +17 -13
- package/package.json +1 -1
- package/src/init.js +5 -17
package/README.md
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
# K-Harness
|
|
2
2
|
|
|
3
|
+
[](https://www.npmjs.com/package/k-harness)
|
|
4
|
+
[](https://www.npmjs.com/package/k-harness)
|
|
5
|
+
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
|
|
3
7
|
Project Direction Management Framework for LLM-Driven Development.
|
|
4
8
|
|
|
5
9
|
## What It Does
|
|
@@ -53,7 +57,7 @@ npx k-harness init --ide antigravity
|
|
|
53
57
|
|-----|----------------------|--------|--------|
|
|
54
58
|
| **VS Code Copilot** | `.github/copilot-instructions.md` | `.github/skills/*/SKILL.md` | `.github/agents/*.agent.md` |
|
|
55
59
|
| **Claude Code** | `.claude/rules/core.md` | `.claude/skills/*/SKILL.md` | `.claude/skills/*/SKILL.md` |
|
|
56
|
-
| **Cursor** | `.cursor/rules/core.mdc` | `.cursor/
|
|
60
|
+
| **Cursor** | `.cursor/rules/core.mdc` | `.cursor/skills/*/SKILL.md` | `.cursor/skills/*/SKILL.md` |
|
|
57
61
|
| **Codex** | `AGENTS.md` | `.agents/skills/*/SKILL.md` | (merged into AGENTS.md) |
|
|
58
62
|
| **Windsurf** | `.windsurfrules` | (merged) | (merged) |
|
|
59
63
|
| **Augment Code** | `.augment/rules/core.md` | `.augment/skills/*/SKILL.md` | `.augment/skills/*/SKILL.md` |
|
|
@@ -118,18 +122,18 @@ When goals, technology, or scope changes, run the `pivot` skill:
|
|
|
118
122
|
|
|
119
123
|
See [docs/reference.md](docs/reference.md) for detailed descriptions of every skill, agent, rule, and state file.
|
|
120
124
|
|
|
121
|
-
## Why
|
|
122
|
-
|
|
123
|
-
| | BMAD v6.2.2 | gstack v0.15.1 | K-Harness |
|
|
124
|
-
|
|
125
|
-
| Focus | Enterprise SDLC methodology | 1-person software factory | Project direction management |
|
|
126
|
-
| Files | 200+ | ~40 | ~20 |
|
|
127
|
-
| Dependencies | Node 20+ | Bun + Node + Playwright | Zero |
|
|
128
|
-
| IDE support | 20+ (installer) | 5 (setup --host) | 7 (native format) |
|
|
129
|
-
| Direction management | ❌ | ❌ | ✅ (Direction Guard + pivot + Decision Log) |
|
|
130
|
-
|
|
|
131
|
-
|
|
|
132
|
-
| Context per task | 4-6 files | 1 file | 2-3 files |
|
|
125
|
+
## Why K-Harness?
|
|
126
|
+
|
|
127
|
+
| | BMAD v6.2.2 | gstack v0.15.1 | GSD v1.33.0 | K-Harness |
|
|
128
|
+
|---|---|---|---|---|
|
|
129
|
+
| Focus | Enterprise SDLC methodology | 1-person software factory | Full lifecycle automation | Project direction management |
|
|
130
|
+
| Files | 200+ | ~40 | Hundreds | ~20 |
|
|
131
|
+
| Dependencies | Node 20+ | Bun + Node + Playwright | Node 18+ | Zero |
|
|
132
|
+
| IDE support | 20+ (installer) | 5 (setup --host) | 13 (runtime select) | 7 (native format) |
|
|
133
|
+
| Direction management | ❌ | ❌ | ❌ | ✅ (Direction Guard + pivot + Decision Log) |
|
|
134
|
+
| Iron Laws (code quality rules) | ❌ | ❌ | ❌ | ✅ (6 laws embedded in skills) |
|
|
135
|
+
| Cold start | ❌ | ❌ | `/gsd-new-project` | ✅ (`bootstrap` skill) |
|
|
136
|
+
| Context per task | 4-6 files | 1 file | Fresh 200k per plan | 2-3 files (22-line dispatcher) |
|
|
133
137
|
|
|
134
138
|
## License
|
|
135
139
|
|
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 — ${skill.id}\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 — ${agent.id}\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);
|