docs(plugin): close the reference gaps a 0.88.0 audit found - #641
Merged
Conversation
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).
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.mdset, andkeboola-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 twosetup.shrules now match comment-stripped code. No reference file mentioned it. The existing text still just says the check exists ("nopip installinsetup.sh").It matters to an agent because the old behaviour was wrong in both directions:
# always uv sync here, never pip installwas rejected as BLOCKING — penalising exactly the author who documented the rule;uv syncwas in a comment satisfiedgolden-rule.setup-sh-uv-syncwhile installing nothing.So an agent looking at a BLOCKING
setup-sh-no-pipfrom 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.mdanddata-app-workflow.md.Incomplete entry:
table-detailIts
commands-referenceentry covers #621'sdefinitionobject thoroughly but said nothing about #624's read side: the resolution precedence (native definition →columnMetadataKBC.description→ legacy flat key, with the alias-table fallback), the always-presentlegacy_column_descriptionsfield, the human-mode warning pointing atdescribe-migrate, and that reading never writes so it is safe under--deny-writes.The
describe-columnentry already said "read back instorage table-detail" — buttable-detailitself 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.mddoes carry #621 and #624 — including the sharp version of the #621 warning ("create-tableonly echoes the layout you REQUESTED, so it proves nothing"). Every remaining--in my matrix was verified by hand before concluding anything.Verification
make checkgreen: 5857 passed, 12 skipped.check_version_gates.pyresolves 419 markers (up from 418),check_command_sync.pyclean. Docs only — no source, no behaviour change, no version bump.