Conversation
Re-cut off main: the original branch was stacked on the closed phase-1/phase-2 chain, so it carried 16 superseded commits and a merge-base from 2026-07-08. Refreshed against main since: - Variables rows point at /components/variables/ — the section owners settled (Matyas 08-04, Jordan 08-05: variables are a base component), executed in #1051. - The 59 Keboola-as-Code rows are surfaced as an open question rather than left asserting a home that exists nowhere: #1027 died and #1015 gave /cli/ to kbagent. - --build no longer accepts a live dev path as conservation when the row moves; an unrelated page can occupy that URL, which is exactly what /cli/* does today. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This was referenced Aug 19, 2026
…t it at /storage/api/ The row said MERGE → /storage/, but #1053 factually landed the dev page's technical layer (API intro + clients) at /storage/api/ with a clients/ tree. A /storage/ 301 would strand readers one level short of the content. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Iamfle4ka
pushed a commit
that referenced
this pull request
Aug 19, 2026
The dev Storage page's content (API intro + clients) lives on this page now, but only /integrate/storage/api/ was redirected — the bare URL resolved nowhere. Found by the redirect contract's conservation check (#1091). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
David's call (2026-09-02): the legacy Keboola-as-Code pages are not ported into help. The kbagent banner names github.com/keboola/keboola-as-code instead, and every dev-CLI link in the docs now points there (#1094). #1093 is closed. The contract has to say so, otherwise it reports 59 URLs as conservation failures forever. Adds an `external` status: the destination is kept verbatim rather than forced into a help path, --build stops expecting those URLs in dist and reports them separately, and --live checks the 301 against the off-site URL instead of prefixing help's host. The honest reading of the gate on today's main changes accordingly: before 67 resolve nowhere after 59 off-site by decision, 8 genuinely unresolved The remaining 8 are the PRDCT-550 rows — /integrate/ artifacts and jobs, /automate/ run-job and set-schedule, /overview/ api and encryption. Note for the retirement (PRDCT-565): these 59 are the one group whose 301 does not point at help. The edge rules need `developers.keboola.com/cli/**` sent to the repository — or to /cli/, whose banner routes onward — and that choice is now visible in the map rather than implied. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…epo root The 59 CLI rows pointed at github.com/keboola/keboola-as-code — the repository, not the page. That is fine as a statement of intent and useless as an edge rule: a reader following developers.keboola.com/cli/commands/sync/pull/ would land on a monorepo root and have to hunt. keboola-as-code#2654 lands the pages at a predictable path, so each row now carries the file it actually became — commands/sync/pull/ → docs/user-docs/commands/sync/pull.md, and so on for all 59. The same table now exists three times over and agrees with itself: here, in the redirect stubs of the developers-docs deletion PR (keboola/developers-docs#417), and in the ported tree itself. Written into PLACEMENT-MAP.md rather than only into the TSV: --gen regenerates the TSV from the map, so a hand-edited TSV would have been silently reverted by the next person to run it. Verified by regenerating — the destinations survive. The lossy-parse guard earned its keep here: a first attempt at the map edit ate a space before the target column, dropped the parse to 116/175 rows, and the generator refused to write the result instead of shipping a truncated contract.
…y one Yesterday's commit gave each retired CLI URL the exact file it would become in keboola-as-code. That PR (keboola-as-code#2654) was closed by the repo owner on 2026-09-03, so docs/user-docs/ will not exist and those 59 destinations would have been 404s. All 59 now point at the repository root, which is what stays true: the tool lives there, its documentation does not. The map's decision note now says so plainly, including what the choice costs — end-user installation instructions exist nowhere else, and 21 of the CLI's 68 embedded help texts are empty, so for those commands no prose survives at all. That is the owner's call to make; the contract's job is to state it rather than imply a destination that isn't there.
…ses, add the cutover runbook The contract had eight rows carrying proposed topic targets that never got an owner call; #1120 lands those pages 1:1 at their dev paths (the /extend/ precedent), so the rows now record identity and `unsure` drops to zero. Against a main+#1120 build, --build reports 201/201 reachable. New in the map: the 26 Jekyll redirect_from aliases the dev site still honours (/extend/docker/**, /extend/custom-science/**, /integrate/push-data/** …). Help already resolves each through redirect_from on the canonical page; they are rows now — status `alias` — so cutover day checks them too. --live judged the first Location header, which assumed a per-path map at the edge. The edge rule is a host-swap (help + same path; help's own redirect_from does the second hop), so --live now follows the chain — HTTP redirects and help's meta-refresh pages — and compares where a browser actually lands. --vercel prints the vercel.json `redirects` block (148 rules) that would turn help's second hop into a real 301; printed, not written — wiring it is a production routing change for its own PR. PLACEMENT-MAP.md gains the cutover runbook for PRDCT-565: the CloudFront Function (host-swap with the /cli/* → repository carve-out, since help's /cli/ is kbagent), preconditions, cutover-day checks, archive steps, Search Console, rollback. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… homes, not identity connection-docs#1120 no longer lands the eight pages 1:1; it merges them where the concept already lives. The rows now say so: /integrate/jobs/, /automate/run-job/ and /automate/run-orchestration/ → /management/jobs/api/; /overview/encryption/ and the two artifacts pages → /extend/common-interface/…; /automate/set-schedule/ → /flows/schedule-api/; /overview/api/ → /overview/ (folded into one subsection). The /overview/jobs/ alias follows jobs. --build against the #1120 build: 201/201. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…from --vercel, keep the Search Console file The independent review (2026-09-09) found three logic gaps: - --build only checked that a moved/redirect/alias row's target exists; a dropped redirect_from on help would still pass. It now requires a redirect page at the dev path in dist whose meta-refresh points at the contract target, since the edge host-swap forwards the dev path verbatim. The unreachable "pending" branch is gone. - --vercel emitted the 59 off-site CLI rows; wired into vercel.json they would have redirected help's own /cli/ (kbagent) pages to the keboola-as-code repository. External rows are excluded and rules carry statusCode 301 (Vercel's `permanent` means 308). 148 → 97 rules. - --flippable ignored alias rows when picking a target. Runbook: the CloudFront Function passes /google9cde6c6b9250e5a4.html through, because Search Console verifies the dev property by fetching that file with a 200 and the Change of Address needs both properties verified; the bucket is kept until that step is done. Preamble no longer says the eight pages land 1:1. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… after #1120 promoted it Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Iamfle4ka
pushed a commit
that referenced
this pull request
Sep 14, 2026
… job states, dev project on help Nikita's decisions on the review's placement findings (2026-09-14): APIs get their own `## APIs` section on /overview/, ahead of the glossary, instead of an h3 inside "Other Commonly Used Terms". The home page's "API reference" and the other 24 repointed links now land on a first-class section; the anchor is #apis, followed in 15 places here and in #1094, #1091 and developers-docs#418. Job states have one canonical home, /management/jobs/api/#job-status, the list checked against the queue swagger. /management/jobs/ keeps the UI half and drops both its own three-state list and the claim that a job always waits for infrastructure first — the API page says platform delays keep a job in `created`, and the two contradicted each other. /components/running-jobs-in-parallel/ keeps the billing rule and points at the same anchor. Two duplicate explanations collapse to a pointer: ai/index.md on apis.json, and extend/job-queue's API menu, which listed the same Queue API calls the Jobs API page documents in full. The dev home's "Development Project" section lands as /extend/development-project/ — the address #1022 also uses, so that PR drops the file when it rebases. The last three developers.keboola.com links in help point there now, which leaves only the three that #1022 owns. Its figures carry a VERIFY(owner): they come from the dev site unchanged. Verified: build 368 pages, audit-phase2 broken links 0 / missing images 0 / unclosed fences 0; #apis, #stacks, #job-status and the new page resolve in dist; no #apis-and-service-endpoints and no dev-home links left in content. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Iamfle4ka
pushed a commit
that referenced
this pull request
Sep 14, 2026
…s being republished Both items from Jordan's review of this PR. 1. `/overview/api/` is the most-linked retired dev URL, and `redirect-from.mjs` derives its target from the page slug, so a `redirect_from` structurally cannot carry a fragment: the redirect landed at the top of a 200-line page and the reader had to scroll past four sections to reach APIs. Jordan's own suggestion, and the better Diátaxis fit, is a page of its own. `/overview/apis/` now holds the portals table, the token header, the service-endpoint rule, `apis.json` and the Postman collection; the redirect lands exactly on it; `/overview/` keeps one sentence under Stacks. 16 links follow, plus the ones in #1094, #1091 and developers-docs#418. 2. The Development Project page committed to third parties on figures no public source confirms — 3.5 GB storage, Snowflake backend, 10 users, 3 orchestrations — carried from the dev site. Jordan would not merge that unverified, and the cost of publishing a wrong commitment is not the cost of a wrong behaviour note. The page keeps what a developer actually needs (the conditions, registering in the Developer Portal, the support email and the template) and no longer states the size. The figures are logged in the PR body so nothing is lost, and a VERIFY asks the owner to put them back if they still hold. Verified: build 370 pages, audit-phase2 broken internal links 0, missing images 0, unclosed fences 0; /overview/api/ redirects to /overview/apis/; no /overview/#apis references left. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…t to the overview #1120 gave the APIs content its own page so the retired dev URL lands on it exactly rather than at the top of the overview. The contract follows: status moved, target /overview/apis/. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This branch was successfully deployed
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.
Linear: PRDCT-572 · Re-cut off
main, replaces #1043 (same content, no dead base).#1043 was based on
PRDCT-560-devdocs-link-cleanup— a branch belonging to a closed PR in the abandoned phase-1/phase-2 stack. It carried 16 superseded commits and a merge-base from 2026-07-08, so it could never have merged anywhere useful. This is the same deliverable re-cut offmain, exactly as #1051–#1054 were.What it adds
The dev-domain retirement contract as a checkable artifact — today that truth is scattered across PLACEMENT-MAP, MIGRATION-REPORTs and batch PRs, and the in-build redirects are meta-refresh pages, not 301 rules.
PLACEMENT-MAP.md— 175/175 dev pages mapped_data/redirects/dev-to-help.tsv— generated, never hand-editedscripts/check-redirects.mjs—--gen·--build(conservation gate) ·--flippable·--live(cutover day)Refreshed against a month of
mainVariables rows now point at
/components/variables/. The map still said Transformations; the owners settled it since (Matyáš 08-04: variables are a base component with no location constraint; Jordan 08-05), and #1051 executes it.The checker accepted false conservation — fixed.
--buildcounted a row as safe if either the dev path or the final target resolved. For a row that moves, a live dev path can be an unrelated page occupying that URL — which is precisely/cli/*today: kbagent sits there, so three Keboola-as-Code rows were reported "pending" while a reader following them lands on a different tool's docs. Conservation now requires the final target, except for identity redirects. The honest count went 117 → 120.The finding that needs a call: 59 Keboola-as-Code pages have no home
Added to the map's UNSURE section rather than answered, since placement is not mine to make:
/cli/keboola-as-code/**, a tree that exists in no branch and no open PR — PRDCT-470: phase-1 dev-docs migration — one script run (165 pages) #1027 (phase 1) was closed, and PRDCT-490: new top-level CLI section — kbagent #1015 gave/cli/to kbagent.cli/index.mdstill sends readers to the livedevelopers.keboola.com/cli/for the legacy tool.The page already carries
TODO(human-review, Jordan)on the KaC deprecation timeline — this is the same decision: port them under/cli/keboola-as-code/, or declare end-of-life and 301 the lot to/cli/?Expected state of the gate
--buildcurrently fails: 120 of 175 dev URLs resolve nowhere onmain, because the four batch PRs (#1051–#1054) are still open and phase-1's redirect pages died with #1027. That failure is the artifact's value — it quantifies the gap. It goes green as the batches land; the 59 CLI rows will not, until the question above is answered.--flippablereports 29 dev-domain links in content whose target already lives on help — a separate mechanical follow-up, not included here.🤖 Generated with Claude Code
Update 2026-09-08 — contract complete, cutover runbook included
redirect_fromaliases the dev site still honours (/extend/docker/**,/extend/custom-science/**,/integrate/push-data/**…) are rows with statusalias, so--livecovers them.unsure→ 0.--buildagainst a main + PRDCT-582: merge the last 8 dev pages into help, keeping what is current and not already there #1120 build: ✓ 201/201 reachable. Againstmainalone it lists those eight until PRDCT-582: merge the last 8 dev pages into help, keeping what is current and not already there #1120 merges, so the merge order is PRDCT-582: merge the last 8 dev pages into help, keeping what is current and not already there #1120 → this.--livenow follows the whole chain (edge 301 → helpredirect_from→ page) and judges the landing URL. The edge rule is a host-swap, not a per-path map, so the firstLocationwas the wrong thing to check.--vercelprints theredirectsblock (97 rules,statusCode: 301, off-site CLI rows excluded because help's/cli/is kbagent) that would make help's second hop a real 301 instead of a meta-refresh page. Printed only; wiring it intovercel.jsonis a separate PR.PLACEMENT-MAP.md: the CloudFront Function (host-swap with the/cli/*→ repository carve-out, because help's/cli/is kbagent), preconditions, cutover-day checks, archive steps, Search Console, rollback. This is the PRDCT-565 hand-off.Update 2026-09-09 — review fixes (
0d9e6283)The independent review of the #1120 wave found three logic gaps here, all fixed:
--buildonly checked that a moved/redirect/alias row's target exists, so a droppedredirect_fromon help would still have passed. It now also requires a redirect page at the dev path indist/whose meta-refresh points at the contract target — that is what a host-swapped request hits. Against the PRDCT-582: merge the last 8 dev pages into help, keeping what is current and not already there #1120 build: 201/201 honoured.--vercelemitted the 59 off-site CLI rows; wired in, they would have redirected help's own/cli/pages to the keboola-as-code repository. Excluded; rules carrystatusCode: 301(Vercel'spermanentmeans 308).--flippableignored alias rows.Runbook: the CloudFront Function passes
/google9cde6c6b9250e5a4.htmlthrough so Search Console can keep the dev property verified for the Change of Address, and the bucket stays until that step is done. The eight rows for the last pages now point at their merged homes (/management/jobs/api/,/extend/common-interface/…,/flows/schedule-api/,/overview/).