Skip to content

docs(plugin): close the reference gaps a 0.88.0 audit found - #641

Merged
padak merged 1 commit into
mainfrom
claude/docs-0880-reference-gaps
Aug 22, 2026
Merged

docs(plugin): close the reference gaps a 0.88.0 audit found#641
padak merged 1 commit into
mainfrom
claude/docs-0880-reference-gaps

Conversation

@padak

@padak padak commented Aug 22, 2026

Copy link
Copy Markdown
Member

Why

After shipping 0.88.0 I audited every changelog bullet in that release against the agent-facing reference surfaces — commands-reference.md, gotchas.md, the *-workflow.md set, and keboola-expert.md. Coverage was good: 14 of 15 bullets were documented in at least one surface, most in three or four.

One was documented nowhere, and two entries were accurate but incomplete.

The real gap: #636

data-app validate-repo's two setup.sh rules now match comment-stripped code. No reference file mentioned it. The existing text still just says the check exists ("no pip install in setup.sh").

It matters to an agent because the old behaviour was wrong in both directions:

  • a script whose comment read # always uv sync here, never pip install was rejected as BLOCKING — penalising exactly the author who documented the rule;
  • a script whose only mention of uv sync was in a comment satisfied golden-rule.setup-sh-uv-sync while installing nothing.

So an agent looking at a BLOCKING setup-sh-no-pip from an older kbagent may be looking at a comment, and should read the file before telling anyone to change what the script runs. The gotcha also states the stripper's limits — it tracks quotes but is deliberately not a shell parser, so heredocs and ${...#...} are out of scope — so nobody reads the rule as a guarantee.

Added to gotchas.md, commands-reference.md and data-app-workflow.md.

Incomplete entry: table-detail

Its commands-reference entry covers #621's definition object thoroughly but said nothing about #624's read side: the resolution precedence (native definition → columnMetadata KBC.description → legacy flat key, with the alias-table fallback), the always-present legacy_column_descriptions field, the human-mode warning pointing at describe-migrate, and that reading never writes so it is safe under --deny-writes.

The describe-column entry already said "read back in storage table-detail" — but table-detail itself did not advertise that it does this, or that it resolves descriptions written by the UI and by components, not just kbagent's own.

Note on the audit method

The first pass of this audit produced four false gaps, because grepping for a phrase I expected the docs to use is not the same as checking whether the topic is covered. keboola-expert.md does carry #621 and #624 — including the sharp version of the #621 warning ("create-table only echoes the layout you REQUESTED, so it proves nothing"). Every remaining -- in my matrix was verified by hand before concluding anything.

Verification

make check green: 5857 passed, 12 skipped. check_version_gates.py resolves 419 markers (up from 418), check_command_sync.py clean. Docs only — no source, no behaviour change, no version bump.


Open in Devin Review

Audited every 0.88.0 changelog bullet against the agent-facing reference
surfaces (commands-reference.md, gotchas.md, the *-workflow.md set,
keboola-expert.md). Everything was covered except one change, plus two
entries that were accurate but incomplete.

- gotchas: `data-app validate-repo`'s two setup.sh rules now read
  comment-stripped code (#636). This had NO coverage anywhere. It matters to
  an agent because it broke in both directions before 0.88.0: a script whose
  comment read `# never pip install` was rejected as BLOCKING, and a script
  whose only `uv sync` was in a comment satisfied the dependency-install rule
  while installing nothing. An agent advising on a repo validated by an older
  kbagent needs to know a BLOCKING may be about a comment. The stripper's
  limits (not a shell parser; heredocs out of scope) are stated too, so nobody
  reads it as a guarantee.
- commands-reference: the same note on the `validate-repo` entry.
- commands-reference: the `table-detail` entry documented #621's `definition`
  thoroughly but said nothing about #624's READ side -- the resolution
  precedence into `column_details[].description` and the
  `legacy_column_descriptions` field. The `describe-column` entry pointed at
  table-detail for read-back; table-detail did not advertise it.
- data-app-workflow: the same comment-stripping note in the pre-flight
  validation section.

No behaviour change, docs only. `check_version_gates.py` now resolves 419
markers (up from 418).

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

@padak
padak merged commit 3e817c2 into main Aug 22, 2026
5 checks passed
@padak
padak deleted the claude/docs-0880-reference-gaps branch August 22, 2026 19:56
padak added a commit that referenced this pull request Aug 22, 2026
pyproject/plugin.json/marketplace.json were already renumbered to 0.89.0 by
v0.88.0.

Changelog: adds 0.89.0 entries for #645 (describe-batch --from-file shape
validation, issue #640), #642 (table-detail human column descriptions), #620
(sync-action forwards root authorization/runtime), #517 (stable metavar
contract, issue #513), #586 (documented prompt budget gated against the
enforced one, issue #585) and #641 (docs-only), and decorates the existing

Silent-drift surfaces:

* gotchas.md -- resolves both "(Release step: ... tag this sentence)"
  placeholders. Both were left by commits AFTER the v0.88.0 tag (#642 and
  #645), so both are tagged (since v0.89.0), not 0.88.0. Adds the #620 gotcha:
  below 0.89.0 a sync action on an OAuth / Service-Account component died with
  an opaque empty-body 400 because the broker reference was never forwarded.
* #620 shipped with no doc surfaces at all -- CLAUDE.md, AGENT_CONTEXT and
  commands-reference.md now carry the forwarding rule (root only, never
  row-overridden, only when non-empty) with its version gate.
* #645 never reached CLAUDE.md -- the describe-batch shape check and its
  behaviour change are recorded there now; commands-reference gains the
  version tag.
* #642's human Description column is version-tagged in CLAUDE.md,
  commands-reference.md, AGENT_CONTEXT and storage-describe-workflow.md.
* #643 was otherwise complete; adds the two surfaces it did not touch --
  safe-write-workflow.md (delete is reversible; never blind-retry on <= 0.88.x)
  and a keboola-expert.md matrix row for delete/restore/trash-list.
  keboola-expert.md is 49 774 B, well inside the 70 000 B budget.

make check green: 5934 passed, 12 skipped. version-gate-check resolves all 438
markers across 72 versions.
padak added a commit that referenced this pull request Aug 23, 2026
pyproject/plugin.json/marketplace.json were already renumbered to 0.89.0 by
v0.88.0.

Changelog: adds 0.89.0 entries for #645 (describe-batch --from-file shape
validation, issue #640), #642 (table-detail human column descriptions), #620
(sync-action forwards root authorization/runtime), #517 (stable metavar
contract, issue #513), #586 (documented prompt budget gated against the
enforced one, issue #585) and #641 (docs-only), and decorates the existing

Silent-drift surfaces:

* gotchas.md -- resolves both "(Release step: ... tag this sentence)"
  placeholders. Both were left by commits AFTER the v0.88.0 tag (#642 and
  #645), so both are tagged (since v0.89.0), not 0.88.0. Adds the #620 gotcha:
  below 0.89.0 a sync action on an OAuth / Service-Account component died with
  an opaque empty-body 400 because the broker reference was never forwarded.
* #620 shipped with no doc surfaces at all -- CLAUDE.md, AGENT_CONTEXT and
  commands-reference.md now carry the forwarding rule (root only, never
  row-overridden, only when non-empty) with its version gate.
* #645 never reached CLAUDE.md -- the describe-batch shape check and its
  behaviour change are recorded there now; commands-reference gains the
  version tag.
* #642's human Description column is version-tagged in CLAUDE.md,
  commands-reference.md, AGENT_CONTEXT and storage-describe-workflow.md.
* #643 was otherwise complete; adds the two surfaces it did not touch --
  safe-write-workflow.md (delete is reversible; never blind-retry on <= 0.88.x)
  and a keboola-expert.md matrix row for delete/restore/trash-list.
  keboola-expert.md is 49 774 B, well inside the 70 000 B budget.

make check green: 5934 passed, 12 skipped. version-gate-check resolves all 438
markers across 72 versions.
padak added a commit that referenced this pull request Aug 23, 2026
…es (#651)

Release prep for 0.89.0: adds the changelog entries for everything merged since v0.88.0 (#620, #642, #643, #644, #645, #646, #647, #648, #649, #650, #517, #586, #641), resolves every vNEXT placeholder left by feature PRs to v0.89.0 per the new #648 release process, closes the 10 gaps a full doc-surface audit found across the kbagent plugin (SKILL.md triggers, commands-reference, gotchas, workflow files, keboola-expert.md, AGENT_CONTEXT, CLAUDE.md), and records the live e2e verification evidence. Version files were already at 0.89.0 (bumped by #643); make version-sync is a no-op.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant