@kody-ade/kody-engine 0.4.107 → 0.4.108

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
@@ -880,7 +880,7 @@ var init_loadPriorArt = __esm({
880
880
  // package.json
881
881
  var package_default = {
882
882
  name: "@kody-ade/kody-engine",
883
- version: "0.4.107",
883
+ version: "0.4.108",
884
884
  description: "kody \u2014 autonomous development engine. Single-session Claude Code agent behind a generic executor + declarative executable profiles.",
885
885
  license: "MIT",
886
886
  type: "module",
@@ -83,6 +83,15 @@ COMMIT_MSG: plan: <very short title>
83
83
  PR_SUMMARY:
84
84
  <A deep, detailed implementation plan in markdown with the following sections, in order. Omit a section only if its trigger condition is not met — do not leave placeholders. Depth is expected; brevity for its own sake is not a goal.
85
85
 
86
+ ## Requirement coverage
87
+ Enumerate EVERY discrete ask in the issue (and any answered clarifications) as a
88
+ checklist, each mapped to where this plan delivers it:
89
+ - <verbatim ask> → <the section/file in this plan that addresses it>
90
+ - <verbatim ask> → ⚠ MISSING — <what's needed, or why it can't be planned>
91
+ Do not finalize a plan that still has a ⚠ MISSING row unless that row is also
92
+ listed under "Ambiguities & assumptions" with a concrete blocker. Silently
93
+ dropping an ask the issue made is a planning failure.
94
+
86
95
  ## Existing patterns found
87
96
  For each major part of the change, name the sibling module in this repo that
88
97
  already solves a similar problem and state how this plan reuses it.
@@ -176,6 +185,8 @@ No filler. No marketing language. Depth over brevity.>
176
185
  - Read-only. Do NOT modify any file.
177
186
  - Do NOT run git or gh commands.
178
187
  - No speculative scope — plan only what the issue asks for, but plan it THOROUGHLY.
188
+ - **Deliver the full ask or split it — never silently shrink it.** Planning a reduced version of what the issue requested is the most damaging failure mode. When any of these phrases (or their intent) describe a *stated requirement* rather than a genuine deferred phase, treat it as a BLOCKER: `"v1"`, `"v2 later"`, `"simplified"`, `"basic version"`, `"minimal"`, `"static for now"`, `"hardcoded for now"`, `"placeholder"`, `"stub"`, `"will be wired later"`, `"future enhancement"`. If the full ask is genuinely too large for one plan, output `FAILED: scope too large — split into <sub-issues>` — do NOT quietly plan less than was asked.
189
+ - **Authority limits on narrowing scope.** You may narrow or split scope ONLY for concrete constraints: output/context-token budget, information you cannot obtain, or a dependency conflict. You may NOT narrow scope because a part looks hard, complex, or time-consuming — difficulty is never a license to reduce the ask.
179
190
  - **Plan length ≤ ~1500 lines / ~15k tokens.** Larger plans get truncated by output token caps before the closing `DONE` marker — and a truncated plan is worse than a smaller one. If a feature legitimately needs more, output `FAILED: scope too large for single plan — split into <list of sub-issues>` instead of overrunning.
180
191
  - If the issue is ambiguous and you cannot make progress without input, output `FAILED: <what's unclear>` instead of a plan.
181
192
  - If the Research floor cannot be met because required files are missing or unreadable, output `FAILED: <what could not be read>` instead of a half-blind plan.
@@ -32,6 +32,28 @@ Base: {{pr.baseRefName}} ← Head: {{pr.headRefName}}
32
32
 
33
33
  4. Drop duplicate findings, keep every distinct `file:line` citation. Do not invent citations — only pass through what the subagents reported from files they actually read.
34
34
 
35
+ # Review stance — do not go soft
36
+
37
+ Default to skepticism: assume the diff contains a defect until the code proves otherwise, and surface every issue you can demonstrate with a `file:line`. Watch for the ways a reviewer quietly goes easy — each is a failure here:
38
+
39
+ - Downgrading a real BLOCK to a WARN or a Suggestion so the review feels less harsh.
40
+ - Accepting "looks right" without confirming the change is actually wired (apply the depth ladder below).
41
+ - Treating a stub or placeholder shipped against a *stated* requirement as acceptable. Phrases like `"v1"`, `"basic version"`, `"simplified"`, `"minimal"`, `"static for now"`, `"hardcoded for now"`, `"placeholder"`, `"stub"`, `"will be wired later"`, `"future enhancement"` — when they describe a behavior the issue actually asked for — are a **FAIL**, not a note.
42
+ - Returning **PASS** when a whole dimension came back `BLOCKED`/`NEEDS_CONTEXT`.
43
+
44
+ Severity reflects the risk in the code, never how it feels to report it.
45
+
46
+ # Implementation depth — existence is not implementation
47
+
48
+ For every change in the diff, don't stop at "the code is there". Walk the ladder:
49
+
50
+ 1. **Exists** — the function / route / field / component is present.
51
+ 2. **Substantive** — it has real logic, not a stub, `TODO`, `return null`, or an echo of its input.
52
+ 3. **Wired** — its output is actually consumed: the query result is returned, the fetched response is used, the new config key is read where it matters, the handler is registered/exported, the component is rendered. Grep the symbol's usages to confirm it's consumed, not just defined.
53
+ 4. **Functional** — it produces the right result for the issue's cases.
54
+
55
+ Missing *wiring* is the most common defect — a query that exists but whose result is never returned, a fetch whose response is ignored, a config default added in code but absent from the schema. A change that reaches only Exists/Substantive but isn't wired is a correctness **FAIL**, not a style note.
56
+
35
57
  # Required output
36
58
 
37
59
  Your FINAL message must be exactly this markdown — no preamble, no DONE/COMMIT_MSG/PR_SUMMARY markers. The entire final message IS the review comment, posted verbatim:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kody-ade/kody-engine",
3
- "version": "0.4.107",
3
+ "version": "0.4.108",
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",
@@ -90,4 +90,4 @@ jobs:
90
90
  INIT_MESSAGE: ${{ inputs.message }}
91
91
  MODEL: ${{ inputs.model }}
92
92
  DASHBOARD_URL: ${{ inputs.dashboardUrl }}
93
- run: npx -y -p @kody-ade/kody-engine@0.4.107 kody-engine
93
+ run: npx -y -p @kody-ade/kody-engine@0.4.108 kody-engine