@kody-ade/kody-engine 0.4.337 → 0.4.338

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/dist/bin/kody.js CHANGED
@@ -15,7 +15,7 @@ var init_package = __esm({
15
15
  "package.json"() {
16
16
  package_default = {
17
17
  name: "@kody-ade/kody-engine",
18
- version: "0.4.337",
18
+ version: "0.4.338",
19
19
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
20
20
  license: "MIT",
21
21
  type: "module",
@@ -11403,7 +11403,7 @@ function formatCapabilityReference(data, profileName) {
11403
11403
  lines.push(`- Capability: \`${capabilitySlug}\`${capabilityTitle ? ` \u2014 *${capabilityTitle}*` : ""}`);
11404
11404
  }
11405
11405
  if (executableSlug) {
11406
- lines.push(`- Executable: \`${executableSlug}\``);
11406
+ lines.push(`- Implementation: \`${executableSlug}\``);
11407
11407
  }
11408
11408
  const agentLine = agentSlug ? `\`${agentSlug}\`${agentTitle && agentTitle !== agentSlug ? ` \u2014 *${agentTitle}*` : ""}` : "";
11409
11409
  if (agentLine) {
@@ -19153,7 +19153,7 @@ var init_writeAgentRunSummary = __esm({
19153
19153
  writeAgentRunSummary = async (ctx, profile) => {
19154
19154
  const summaryPath = process.env.GITHUB_STEP_SUMMARY;
19155
19155
  if (!summaryPath) return;
19156
- const executable = profile.name;
19156
+ const implementation = profile.name;
19157
19157
  const issue = ctx.args.issue;
19158
19158
  const pr = ctx.args.pr;
19159
19159
  const target = issue ? `issue #${issue}` : pr ? `PR #${pr}` : "(unknown)";
@@ -19162,9 +19162,9 @@ var init_writeAgentRunSummary = __esm({
19162
19162
  const reason = ctx.output.reason;
19163
19163
  const status = exitCode === 0 ? "\u2705 success" : exitCode === 3 ? "\u23ED\uFE0F no-op" : "\u26A0\uFE0F failed";
19164
19164
  const lines = [];
19165
- lines.push(`## kody ${executable} \u2014 ${status}`);
19165
+ lines.push(`## kody ${implementation} \u2014 ${status}`);
19166
19166
  lines.push("");
19167
- lines.push(`- **Executable:** \`${executable}\``);
19167
+ lines.push(`- **Implementation:** \`${implementation}\``);
19168
19168
  lines.push(`- **Target:** ${target}`);
19169
19169
  if (prUrl) lines.push(`- **PR:** ${prUrl}`);
19170
19170
  lines.push(`- **Exit code:** ${exitCode}`);
@@ -65,6 +65,19 @@ Required files:
65
65
 
66
66
  In `profile.json`, include `"slug": "<slug>"`. The `"name"` field may be a display name, but if `slug` is absent then `name` must equal the slug.
67
67
 
68
+ The profile is part of the Capability contract. It must use the same slug as `model.slug` and must declare the current capability kind field:
69
+
70
+ ```json
71
+ {
72
+ "slug": "<same slug as model.slug>",
73
+ "name": "Display Name",
74
+ "capabilityKind": "observe|act|verify"
75
+ }
76
+ ```
77
+
78
+ Do not put `kind: "observe"`, `kind: "act"`, or `kind: "verify"` in the profile. `kind` is not the capability kind field.
79
+ Every generated file path must use exactly the same slug as `model.slug`.
80
+
68
81
  Add colocated prompt/scripts only if the capability needs a new implementation. Reuse existing capabilities, implementation profiles, skills, or scripts when they fit.
69
82
 
70
83
  # Final Output Contract
@@ -95,7 +108,7 @@ PR_SUMMARY:
95
108
  "files": [
96
109
  {
97
110
  "path": "capabilities/example/profile.json",
98
- "content": "{\n \"name\": \"example\"\n}\n"
111
+ "content": "{\n \"slug\": \"example\",\n \"name\": \"Example\",\n \"capabilityKind\": \"observe\"\n}\n"
99
112
  },
100
113
  {
101
114
  "path": "capabilities/example/capability.md",
@@ -52,6 +52,27 @@ Prefer placing workflow steps on the public capability that owns the composed ac
52
52
 
53
53
  Put the workflow contract in `capabilities/<slug>/profile.json`. Prefer a `workflow` object with `steps`; top-level `steps` are only for existing profiles that already use that shape.
54
54
 
55
+ The workflow profile is stored as a capability profile because workflows are composed capability runs. The generated file path must use exactly the same slug as `model.slug`.
56
+
57
+ Minimum profile shape:
58
+
59
+ ```json
60
+ {
61
+ "slug": "<same slug as model.slug>",
62
+ "name": "Display Name",
63
+ "workflow": {
64
+ "steps": [
65
+ {
66
+ "capability": "capability-slug",
67
+ "reason": "why this step exists"
68
+ }
69
+ ]
70
+ }
71
+ }
72
+ ```
73
+
74
+ Do not place workflow files under `workflows/`. Do not use a different profile slug than `model.slug`.
75
+
55
76
  # Final Output Contract
56
77
 
57
78
  If the request is too ambiguous to produce one review-ready Workflow model, output one line:
@@ -80,7 +101,7 @@ PR_SUMMARY:
80
101
  "files": [
81
102
  {
82
103
  "path": "capabilities/example/profile.json",
83
- "content": "{\n \"workflow\": { \"steps\": [] }\n}\n"
104
+ "content": "{\n \"slug\": \"example\",\n \"name\": \"Example Workflow\",\n \"workflow\": { \"steps\": [{ \"capability\": \"example-capability\", \"reason\": \"run the composed capability\" }] }\n}\n"
84
105
  }
85
106
  ]
86
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.337",
3
+ "version": "0.4.338",
4
4
  "description": "kody — autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
5
5
  "license": "MIT",
6
6
  "type": "module",