Convert the developer documentation to Cohesivo SaaS - #3382
Draft
mnocon wants to merge 51 commits into
Draft
Conversation
Specs and issues for the SaaS conversion live in .scratch/ as a local worklist. Keeping it out of git means pull request diffs stay pure documentation changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
|
Preview of modified files: Too many files modified in a single PR, preview link list is skipped. (568 files > 150) |
Remove all 480 entries of the mkdocs-redirects redirect_maps block from plugins.yml, along with the redirects plugin registration itself, and drop the now-unused mkdocs-redirects dependency from requirements.txt. The same redirects remain live on the maintained on-premise documentation branches, which continue to serve those URLs. Doing this first means no later conversion batch has to decide whether a page it deleted needs a redirect entry. build_package_docs.py still reads redirect_maps from plugins.yml and degrades to an empty map when the block is absent, so package builds and their tests are unaffected. No documentation page is touched. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the redirects plugin registration and all 480 redirect entries from plugins.yml, plus the now-unused mkdocs-redirects dependency. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds tests/python/test_conversion_invariants.py, which walks docs/ and asserts four end-state invariants of the Cohesivo SaaS conversion as four independent assertions, each naming the offending pages on failure: - no page carries edition frontmatter (`edition:` / `editions:`) - no page references a product-name variable slated for deletion - no page contains a PHP code sample (fenced block or .php include macro) - no page carries the stale internal `delete:` marker Today's 431 violations (74 / 29 / 314 / 14) are recorded in tests/python/invariants-baseline.yaml, following the convention of tests/yaml-validation-baseline.yaml: plain YAML beside the code that reads it, a generated-file header explaining regeneration, and sorted deterministic output so a shrinking baseline is a clean diff. Regenerate with the new `--update-invariant-baseline` pytest flag. A violation on a page absent from the baseline fails, and so does removing a baseline entry whose violation persists. A baseline entry whose violation is gone is reported as a warning rather than a failure, so that conversion tickets landing in parallel do not turn the baseline into a merge-conflict magnet. The test, its baseline and the new conftest fixtures are temporary and are removed by conversion ticket 20, which requires every baseline list to be empty. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Adds four independently reported invariants over the documentation tree — no edition frontmatter, no deleted product-name variable, no PHP code sample, no stale delete: marker — with today's 431 violations recorded as an accepted baseline so the suite is green on landing. Temporary scaffolding: the test and its baseline are deleted by ticket 20. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the custom field type tutorial, the beginner website tutorial, and the page-and-form tutorial in full (25 pages, 46 images/assets), along with the Tutorials navigation section in mkdocs.yml. A replacement SaaS getting-started tutorial is separate work. Fixes every inbound link left dangling by the deletion, including the front page's primary "Beginner tutorial" entry tile (docs/index.md), which is removed while leaving the remaining two tiles as a coherent entry-point row. Judgement calls, per the ticket notes: - docs/users/user_registration.md is kept (it has substantial content beyond the dead link) with its procedure link replaced by a pointer to the anonymous user/register policy. - docs/content_management/images/add_image_asset_from_dam.md now points at Page blocks instead of the deleted tutorial step. - docs/content_management/pages/ibexa_connect_scenario_block.md keeps its profiler caution but drops the tutorial setup instruction. - docs/content_management/content_management_guide.md drops the custom-field-type clause outright (not a SaaS capability). - Three further dangling links were found beyond the ticket's list, in referrer pages slated for deletion by other in-flight tickets (09, 11) that haven't merged into this branch yet: fixed here too so this branch's build stays green independently. PYTHONPATH=tools ~/python/bin/python3.13 -m mkdocs build --strict: exit 0 PYTHONPATH=tools ~/python/bin/python3.13 -m pytest -q: 95 passed Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes all three tutorials (25 pages) and 46 images used only by them, removes the Tutorials nav section, and strips inbound links from 10 surviving pages including the front page's primary entry tile. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cohesivo is headless: the reader owns the presentation layer and cannot deploy template files, so the whole Templating section (26 pages plus 2 images, and the now-orphaned rendering_dump_variable snippet) is removed, along with its nav entry. 36 surviving pages had their inbound links into the section de-linked or removed; where a sentence only existed to point at deleted content (Assets/Webpack Encore, dead Content-queries/Page-layout cross-references, template customization instructions in passwords.md) the sentence was dropped rather than repointed. The image-variations concept was folded as plain prose into content_management/images/images.md instead of being linked. Page Builder, Form Builder, and Site Factory pages were left in place and only had their dangling links fixed. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Delete the PHP API and everything that only makes sense with it: - docs/api/php_api/ in full (php_api.md plus the 3620-file phpDocumentor output under php_api_reference/) - docs/api/event_reference/ (20 pages, PHP event-class tables) - docs/api/graphql/ (5 pages) and the orphaned jwt-graphiql.png - docs/api/rest_api/extending_rest_api/ (2 pages, both require deploying PHP) - docs/administration/dashboard/php_api_dashboard_service.md - docs/recommendations/raptor_integration/tracking_php_api.md REST usage, REST authentication, the generated REST reference and the OpenAPI schema dumps are retained and are now the section's whole content. Remove every inbound link into the deleted space: - 539 links into the generated class reference across 156 surviving pages (117 of them search reference pages) are unlinked, keeping the surrounding prose intact - links to php_api.md#service-container are repointed at the Symfony service container documentation; #using-sudo and #setting-the-repository-user links are unlinked - five cards() blocks that named deleted pages are fixed (a stale card is a hard build failure, not a warning) - the "PHP API" tile is dropped from the front page accordion - GraphQL mentions in the surviving MCP and RelationList pages are reworded to REST or removed Navigation: the PHP API, GraphQL, Event reference and Extending REST API groups are gone, and the remaining REST API group is flattened into API: so the section is one landing page plus REST. lychee.toml.dist drops the now-dead site/api/php_api/php_api_reference/ exclusion. Remaining php_api references in code_samples/, phpstan-baseline.neon, build_package_docs.py, tools/api_refs/ and the CI workflows belong to ticket 21. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes docs/templating/ in full (26 pages + 2 images) and an orphaned snippet, removes the Templating nav section, and strips inbound links from 36 surviving pages. Page Builder, Form Builder and Site Factory are retained as authoring features. Conflict resolution: ticket 08 edited four tutorial pages that ticket 12 had already deleted. The deletions win — those tutorials are gone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Cohesivo tenants have no server, no shell and no repository codebase, so nothing in the documentation should instruct them to provision, configure or operate infrastructure. Deleted: - docs/infrastructure_and_maintenance/ in full (24 pages plus images and diagram sources): request lifecycle, databases, cache and HTTP cache, reverse proxies, Fastly, clustering, DevOps, backup, performance, background tasks, environments, sessions, the security pages and the support and maintenance FAQ - docs/search/search_engines/ in full (7 pages) plus the elasticsearch_clear_index snippet, whose only call site was there - docs/administration/project_organization/ in full (3 pages), including the architecture and bundle-registration pages - docs/administration/configuration/repository_configuration.md - the two images orphaned by the above (architecture.png, solr.png) Navigation: removed the Infrastructure and maintenance top-level section, the Search engines group and the two remaining entries. No section is left with a single child by this change. Surviving pages: removed every inbound link into the deleted space, keeping the sentence where it still carried meaning and dropping it where it was only a pointer. Fixed the cards() blocks on the Administration and Search landing pages, which would otherwise crash the build. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes docs/api/php_api/ in full (3,621 files of generated phpDocumentor output plus the PHP API usage page), the event reference, the GraphQL section, the REST extension points, and the PHP dashboard/tracking API pages. Removes links into that space from 156 surviving pages and flattens the REST group into the API section. Conflict resolution: four modify/delete conflicts against tickets 08 and 12 resolved in favour of the deletion. In custom_recommendation_rendering.md each branch had removed one of two links and kept the other; the resolution takes both removals. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…with-CLI, CDP export schedule Removes the data-migration section (9 pages), the search reindexing page, the translate-with-CLI page, and the CDP data export schedule page, since a Cohesivo SaaS reader has no console to run these procedures on. Updates mkdocs.yml nav accordingly and removes every inbound link from surviving pages (a content_management.md and an ai_actions.md cards() block would otherwise crash the build with FileNotFoundError). Accepted consequence: the documentation now has no described path for bulk content import, export, or search reindexing. Whether these return as UI actions or background jobs is a product decision tracked outside this conversion. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the infrastructure and maintenance section, the search engine overview and configuration pages, the project organization pages, and the repository connection page (47 files), and strips inbound links from 39 surviving pages. Conflict resolution: ten modify/delete conflicts against tickets 07, 08, 10 and 12 resolved in favour of the deletion in both directions. In configuration.md each branch had removed one bullet from the settings list and kept the other; the resolution drops both. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the edition comparison page and the two per-edition product pages (docs/ibexa_products/editions.md, ibexa_headless.md, ibexa_experience.md), along with the 16 images used only by them. Replaces the "Cohesivo editions" nav section with a single flat entry pointing to the new docs/on_premise.md page, which states that an on-premise Cohesivo exists and links to its documentation without claiming any specific features. Removes inbound links to the deleted pages from 9 surviving pages. Per the spec's rule that self-hosted-only concepts are removed rather than hedged, "LTS Update" sentences that existed only to point at editions.md#lts-updates are deleted outright; sentences that also carried real functional content are restated without the edition framing. The docs/index.md LTS-Update promo tile is left untouched (ticket 19's concern) and still links to the deleted page; the two pages the ticket originally named (product_guides.md, user_management_guide.md) do not actually link to any edition page, confirmed and left alone. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the data-migration section, the search reindexing page, the translate-with-CLI page and the CDP data export schedule page (12 files), and strips inbound links from 10 surviving pages. Conflict resolution: three modify/delete conflicts against tickets 09 and 10 resolved in favour of the deletion. In mkdocs.yml, HEAD had dropped the whole Infrastructure and maintenance section while ticket 10 had dropped the Reindex search entry; the merged nav keeps neither. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the edition comparison page, both per-edition product pages and 16 images, replaces the editions nav section with a single on-premise pointer page, and removes 9 inbound links. Conflict resolution: both modify/delete conflicts resolved in favour of the deletion — bundles.md was deleted by ticket 09, editions.md by this ticket. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Delete the two install-only pages (Qualifio, Raptor CDP) and fold their account-registration step into the corresponding feature page. Keep and strip the two pages that also carry real configuration content (Quable connector, Raptor connector), removing only their package-installation sections. Remove package-installation and on-disk-secret steps from the surviving AI Actions, MCP Servers, integrated help, translations management, and remote PIM support pages, replacing .env instructions with neutral "provide in your instance's settings" language. Add saas_review/siteaccess labels to retained pages that describe SiteAccess-aware settings, update the nav (drop 2 entries, relabel 3), and fix every anchor/link that pointed at removed sections. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the two install-only pages, folding their account-registration steps into the corresponding feature pages; keeps the two pages carrying real configuration content with their install sections removed; strips package installation and on-disk secret steps from five more pages; adds SiteAccess review labels to four. Conflict resolution: editions.md resolved in favour of ticket 05's deletion. Three pages conflicted because HEAD still carried the install sections that ticket 13 removed; resolved per hunk in favour of the removal, so auto-merged edits elsewhere in those files survive. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Remove all four edition-marking mechanisms so no feature reads as gated behind a licence tier: - Drop `edition:` frontmatter from all 59 pages that still carried it (45 experience, 13 lts-update, 1 headless). Three field-type reference pages had it as their only frontmatter key, so their now-empty frontmatter block is removed too. No page uses the plural `editions:`. - Delete docs/snippets/experience_badge.md and docs/snippets/lts-update_badge.md and clean up all 13 heading call sites. Heading slugs are unchanged, so no inbound anchor links break. - Remove the edition-badge branch from theme/main.html. - Remove the .pill--headless/--experience/--lts-update rules and their colour variables from scss/pills.scss, scss/_variables.scss and the committed docs/css/pills.css, plus the now-dead `div.pills` rule. .pill, .pill--inline, .pill--new and the release-note categories .pill--new-feature / .pill--first-release are kept: they back the nav version pill, the "New in doc" marker and the release-notes badges. - Reduce the release-notes filter and entry categories to New feature and First release, and shrink validate_categories() in main.py to match. Restate docs/release_notes.md's title and description without the on-premise product name or LTS Update wording. - Empty the `edition_frontmatter` list in the conversion-invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes edition marking across all four mechanisms: edition: frontmatter from 59 pages, both badge snippets and their 13 call sites, the theme branch that rendered badges, and the badge rules and colour variables in the SCSS source and compiled CSS. Reduces the release-notes category whitelist and restates release-notes metadata. Conflict resolution: the two install-only pages resolved in favour of ticket 13's deletion. Three hunks needed composing rather than side-picking, because ticket 13 had renamed headings and rewritten a description in the same places ticket 03 removed badges and the edition key: the merged state keeps 13's "## Configure … connector" headings without the badge include, and 13's new description without edition: lts-update. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A reader is no longer told to write a class, register a component, or deploy code in order to extend the product. The features those extensions customised are still documented. Deleted (56 pages): - the Back Office code-level customization cluster (22 pages): menus, tabs, browser/UDW and browser tabs, user settings, thumbnails, calendar, search suggestion and sorting, integrated help and product tour customization, the content tab switcher, notifications, date-and-time formatting, and the Back Office element pages - the search extensibility tree (7 pages) - the create-a-custom-X pages across field types, permissions, workflow, forms, and the product catalog (11 pages) - the extend-X pages, including the Online Editor and AI Actions extension pages, and the product catalog customization group (6 pages) - both OAuth pages, with no replacement: an OAuth client is not a SaaS feature, and the identity-provider role goes on the same reasoning - the remaining pages carrying the legacy `delete:` frontmatter marker (form_and_template, tracking_functions, hybrid_tracking) - five further single-purpose code-level customizations that match the same rule: customize_dashboard, customize_field_type_metadata, customize_email_notifications, custom_recommendation_rendering, multifile_upload Retained, per the ticket: the Back Office section landing page, Back Office configuration, product tour and its configuration page, content tree, subitems list, the anchor menu page, and all nine admin panel pages. create_custom_page_block and create_custom_richtext_block are left to ticket 15, which owns the Page Builder and Form Builder strip. Also removed 40 images that only the deleted pages referenced, the 56 navigation entries, the eight `cards()` blocks that named a deleted page (a `cards()` entry pointing at a missing file crashes the build), 79 inbound references from surviving pages, and the now-empty `stale_delete_marker` baseline list. No page in docs/ carries a `delete:` key any more. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Ticket 03 already stripped every edition marker from the docs; this removes the now-dead code that produced the "Editions: X, Y" line in llms.txt output. - Delete editions_from_frontmatter() and FRONTMATTER_EDITION_DISPLAY (llmstxt_preprocess.py): the frontmatter edition reader has no input left. - Drop the editions parameter and emitted line from inject_page_metadata() and update its caller in hooks.py accordingly. - Delete _process_inline_pills() / _pill_edition() (llmstxt_preprocess.py): unreachable now that the edition badge snippets are gone from docs/ and custom.js's runtime-injected pill carries no edition class. - PILL_CLASS_TO_EDITION stays: still used by _process_release_note_tags() for the surviving release-note categories. - Update module/function docstrings that referenced the removed helpers. Tests: remove the 7 tests asserting on editions_from_frontmatter/the editions line, and the 3 tests covering the now-deleted inline-pill merging. Retain and adjust the tests covering description injection, the llms.txt pointer, and their ordering (drop the editions kwarg/assertions). Change test_release_note_tags_appended_to_heading's sample pill classes to surviving categories (new-feature/first-release) since that function is kept. Rename test_description_and_editions_lines_are_kept to test_description_and_trailing_content_are_kept: it exercises strip_llms_txt_pointer's handling of trailing content, not editions. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes 56 pages and 40 images covering the Back Office code-level customization cluster, the search extensibility pages, the create-a-custom-X and extend-X pages, and both OAuth pages, and removes every remaining legacy delete: marker. Fixes 79 inbound references across 38 files, including 21 cards() entries. Back Office feature pages are retained. Conflict resolution: eleven modify/delete conflicts resolved in favour of the deletion. Two hunks needed composing: configure_translations_management.md keeps ticket 13's no-install phrasing with ticket 11's link removal, and the Raptor nav keeps ticket 13's relabelled entry while dropping ticket 11's emptied "Track with Raptor" group, both of whose pages this ticket deletes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Remove the three edition-name variables (product_name_headless,
product_name_exp, product_name_com), the cloud-platform variable
(product_name_cloud), and the two variables with no call sites at all
(product_name_content, product_name_oss) from mkdocs.yml, and rewrite
every call site.
Sentences that drew a distinction between editions become plain
statements about Cohesivo; where the distinction was the whole point of
the sentence, the sentence is gone. Cloud-platform mentions are resolved
per mention: the content-management "install a local instance or set up
an instance on the cloud" clause described infrastructure a tenant
cannot act on and is dropped, while the AI Actions availability line is
restated unconditionally without naming a platform.
The same pass clears residual literal edition prose ("in all Cohesivo
editions", "regardless of its edition", the Experience/Headless
Dashboard Builder note). docs/index.md and the product-guides opener are
left to ticket 19, which owns them.
The site display name is now Cohesivo Documentation.
The deleted_product_variables list in tests/python/invariants-baseline.yaml
is now empty.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the frontmatter edition reader, the inline-pill functions dead since ticket 03, and the editions line from page-metadata injection, along with the 10 tests that covered them. Retains description injection, the documentation-index pointer and their ordering. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the three edition-name variables, the cloud-platform variable and the two unused ones, rewrites all 17 surviving call sites per mention, clears residual literal edition prose, and sets the site display name to Cohesivo Documentation. Conflict resolution: customize_dashboard.md resolved in favour of ticket 11's deletion. In configure_ai_actions.md ticket 06 had dropped "regardless of its edition" while ticket 11 had dropped "or build your own ones"; the merged text takes both removals. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the PHP example and its implement-it-in-code prose from 168 pages across the criteria, aggregation, sort clause, URL search, activity log, AI actions, content type and embeddings reference trees, leaving each page's feature description, fields, semantics and REST example intact. Pages with no REST counterpart keep no example; none was invented. Deletes search_api.md, a PHP API page, and folds its conceptual introduction into the search landing page. Rewrites its 13 inbound references: de-linked where the sentence still carries the concept, repointed where a surviving reference page covers it. Restores the FieldValueCriterion::COMPARISON_* constants to code spans after ticket 07 removed their links (residue R4). Removes 177 search/ entries from the invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes PHP samples and the implement-it-in-code prose that introduced them across content management, including the field type reference. Deletes the content API and content management API pages, whose whole subject was PHP API usage. In the field type reference, the "PHP API field type" wrapper is unwrapped and its PHP-only subsections (Constructor, String representation) removed, while the Settings, Validation, Input expectations and Hash format tables are retained: they document field-definition configuration and the field's data shape, not PHP mechanics. Removes the GraphQL field type operations section from matrixfield.md, orphaned when ticket 07 deleted GraphQL (residue R1), and the taxonomy reindex console commands (residue R3). Removes 59 content_management/ entries from the invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the PHP example from 168 reference pages, leaving each page's feature description and REST example intact; deletes search_api.md and folds its conceptual introduction into the search landing page; restores the FieldValueCriterion constants to code spans. Removes 177 baseline entries. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes the content API and content management API pages, unwraps the field type reference's PHP API section while keeping its Settings, Validation, Input expectations and Hash format tables, and clears residue R1 and R3. Conflict resolution: four modify/delete conflicts resolved in favour of the deletion. Ticket 14 had fixed inbound links in those pages so its own branch would build standalone; ticket 15 deletes them outright. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the "PHP API" section from the recent activity page, keeping its Configuration, Permission and security, User privacy and REST API sections; removes the ConfigResolver service-injection section from dynamic configuration while keeping the SiteAccess scope and namespace semantics the spec preserves; and drops the container parameter sample from the configuration page. Clears residue R2 (a GraphQL console reference orphaned by ticket 07) and R17 (the back office described as produced by the ibexa/admin-ui bundle, which a tenant does not install). Repoints three anchor links orphaned by the removed PHP API section at the surviving REST API section. Removes 20 administration/ entries from the invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes nine pages that exist only to document a PHP API or a code-level extension point: the catalog, price, product, Quable, segment and language API pages, the SiteAccess injection page, an orphaned snippet, and the Raptor CDP data customization page, whose subject is writing PHP field processors. Strips PHP from the pages that survive as feature documentation, removing the sections that existed only to tell the reader to write a class or open a PHP shell. The REST binary-attachment example becomes a description of the REST sequence rather than a PHP client script. Keeps the conceptual half of SiteAccess-aware configuration — the namespace/scope/parameter format and its inheritance rules, which the spec preserves — and cuts the bundle implementation that followed it. Clears residue R15 (an orphaned Extensibility section) and R18 (an instruction to restart the application). Removes 58 entries from the invariant baseline. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes nine PHP API and code-level extension pages, strips PHP from the pages that survive as feature documentation, keeps the conceptual half of SiteAccess-aware configuration, and clears residue R15 and R18. Conflict resolution: tickets 16 and 17 pruned overlapping regions of the invariant baseline. Resolved from ground truth rather than by hand-merging line lists — with tickets 14 through 17 all merged, docs/ contains zero PHP samples, so php_code_sample is empty. All four invariant lists are now empty. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Flags, in author-facing frontmatter only, every surviving page whose
SiteAccess content still needs a product decision, so a maintainer can
enumerate the outstanding work with one search:
grep -rln '^saas_review:' docs --include='*.md'
Schema (as landed by ticket 13):
saas_review: list of reason values
- siteaccess
- links_removed
saas_review_note: >- one free-text note per page
38 pages now carry `saas_review`; 34 are new here and 4 were already
labelled by ticket 13 (three of those gain the `links_removed` reason and
an extended note). Inclusion rule: a page is labelled when it documents a
SiteAccess-scoped setting or the SiteAccess scoping/matching semantics
themselves; 16 of the 54 pages that merely mention the string are left
unlabelled (a cross-link, a concept definition, the `X-Siteaccess`
request header, a component parameter named `siteaccess`, a deprecated
permission limitation, or a statement that something is *not*
SiteAccess-aware).
`links_removed` (27 pages) records, in the same note, which deleted pages
this page used to link to, so a later pass can check the surrounding
prose.
No SiteAccess content is rewritten and no UI is invented, per the spec's
Out of Scope entry. No page's body changes: every hunk is an addition
inside the leading `---` block, and one page
(`measurementfield.md`) gains a frontmatter block it did not have.
The theme extends Material's `base.html` and has no generic frontmatter
loop, so the keys do not render: after a strict build, `saas_review` and
the note text appear nowhere under `site/`, including `llms.txt` and
`llms-full.txt`.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The documentation no longer contains PHP code, so the repository stops
carrying a PHP toolchain.
Deleted:
- phpstan.neon, phpstan-baseline.neon, .php-cs-fixer{,-factory,-inline}.php,
deptrac.yaml, deptrac.baseline.yaml, rector.php
- tools/php-cs-fixer/, tools/code_samples/, tools/extract-inline-php.php,
tools/sync-inline-php-to-markdown.php, tests/InlineSamples/
- tools/api_refs/.phpdoc/ (103 files), phpdoc.dist.xml, phpdoc.dev.xml
- 242 committed PHP code samples, plus two orphaned YAML samples whose
!php/const tags pointed at the deleted example classes
- .github/workflows/code_samples.yaml
Edited, not deleted:
- tools/api_refs/api_refs.sh keeps the shared DXP install, the OpenAPI dump
and the Redocly REST reference build; only phpDocumentor generation and the
package/namespace edition maps are gone. Output arguments renumbered.
- .github/workflows/api_refs.yaml builds and commits the REST reference only,
and the dead 4.6 branch (tools/php_api_ref, raml2html) is collapsed.
- .github/workflows/build.yaml drops Setup PHP, the php-cs-fixer install and
the PHP CS Fixer run; the auto-commit message is now "JS CS Fixes".
- .github/workflows/preview_comment.yaml no longer diffs the generated PHP
class reference.
- composer.json is trimmed, not removed: it is the manifest of the agent
documentation package. PHP-tooling dev dependencies and their scripts are
gone; the ibexa/* bundles stay because the YAML validation suite needs them.
Deviation from the ticket, per user decision: YAML sample validation is kept.
phpunit.xml.dist, tests/Yaml/, tests/Markdown/, tests/ConfigurationProvider.php,
tests/ValidationBaseline.php, tests/bootstrap.php and
tests/generate-yaml-baseline.php survive, so the ~158 YAML samples referenced by
surviving pages stay validated. A new "Validate YAML samples" workflow replaces
the YAML half of the deleted code-samples workflow. This leaves the ticket's
"unit-test configuration files are removed" box unsatisfied on purpose.
Also: the YAML baseline is regenerated (35 -> 34 entries, stale paths dropped),
the PR template loses its redirects and PHP CS Fixer items, dead .gitignore
entries go, and dump_class_paths.php now emits a JSON object so the empty map
stays a mapping.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Labels 38 of 54 surviving pages that mention SiteAccess with a list-valued saas_review key and a free-text note, extending rather than overwriting the four pages ticket 13 labelled ahead of it. Frontmatter only: the body of every touched page is byte-identical. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Deletes 370 files of PHP toolchain: the committed PHP samples, the phpDocumentor template set, phpstan, php-cs-fixer, deptrac, rector and the inline-sample tooling. Edits api_refs.sh so its REST reference and OpenAPI generation survive, trims composer.json, and reworks the CI workflows. Per the user's decision, YAML sample validation is retained rather than removed with the rest of the PHP tooling, and a replacement workflow preserves the CI coverage the deleted code-samples workflow carried. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
| - uses: actions/checkout@v7 | ||
|
|
||
| - name: Setup PHP Action | ||
| uses: shivammathur/setup-php@v2 |
|
|
||
| # The installed ibexa/* bundles are what makes it possible to build the | ||
| # full Symfony configuration tree the YAML samples are validated against. | ||
| - uses: ramsey/composer-install@v4 |
Front page: named "Cohesivo by Ibexa", states the headless SaaS premise, replaces the dead LTS-Update promo tile (R12) with an on-premise pointer, drops the "Notable changes in v5.0" accordion whose release-note anchors no longer exist, and carries the feature overview displaced from the deleted editions page as four link cards. Every href verified against the built site. First steps: rewritten around what a tenant can do after logging in. The welcome-page removal, Twig template and view config, design engine, and the YAML SiteAccess and language configuration steps are gone; the SiteAccess section is reduced to the concept and the page carries a saas_review label. Product guides: the landing page no longer opens on product editions, and its single-child nav section is collapsed (R9). Naming: site_name and the doc switcher entry become "Cohesivo Developer Documentation", the logo asset is renamed to cohesivo-logo.png, and the OpenAPI x-logo injected by api_refs.sh is repointed to it (R23). Back office translations: the composer and bin/console instructions are removed (R19). Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Removes the three surviving "LTS Update" mentions, whose only explanation was the editions page deleted by ticket 05, and the "Custom string translations" section, which instructed the reader to call TranslatorInterface and place .xliff files in a bundle's Resources/translations folder. Removes that section's only inbound reference. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Rebuilds the front page around "Cohesivo by Ibexa" with every href verified by hand, carrying the feature overview displaced from the deleted editions page and acknowledging the on-premise product; rewrites first steps around what a tenant can do after logging in; collapses the Product guides nav section; renames the logo and aligns the site name; and clears the last LTS Update, console-command and bundle-translation residue. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…lding All four invariants (edition frontmatter, deleted product-name variables, PHP code samples, stale delete markers) hold with zero violations across docs/, verified independently of the test before deletion. Removes the now-satisfied temporary test, its empty baseline, and the pytest_addoption plus repo_root/docs_dir fixtures that conftest.py carried solely for it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Re-derives all four conversion invariants independently of the test — 0 edition frontmatter, 0 deleted product-name variables, 0 PHP code samples, 0 stale delete: markers across 374 pages — then removes the temporary test, its baseline and the conftest fixtures ticket 01 added. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The spec says a page containing Twig markup is deleted, but "Sections kept" retains Page Builder, Form Builder and Site Factory as authoring features. Where the two collide the KEEP list wins: strip the Twig, keep the page. - Removed the Twig fences and their introducing prose from the nine pages that carried them, plus the Twig-template configuration residue on invitations.md, user_registration.md, imageassetfield.md, user_generated_content.md, workflow.md and cp_configuration.md. - Deleted customer_management/create_user_registration_form.md: stripping left only the user_registration configuration, which users/user_registration.md already documents. Inbound links and the nav entry now point there. - Deleted all 98 tracked .twig files and the four code samples orphaned by the strip; nothing under docs/, tools/ or tests/ references them any more. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Applies the spec rule "a console command means its containing section is removed; if the page has nothing left, the page is deleted" to every remaining `bin/console`, `composer` and `yarn` instruction found by a fresh grep of docs/. Deleted: - users/update_basic_user_data.md: all five sections were `bin/console` recipes, so nothing survived. Its nav entry and the users.md card are gone; its only outbound link pointed at the passwords.md section also removed here. - snippets/page_block_cache_clear.md: the whole snippet was a cache-clearing console recipe, so its three include macros go with it. Stripped: users/passwords.md (Revoking passwords), configure_ai_actions.md (Initiate integration), mcp_usage.md, mcp_config.md, raptor_cdp_data_export.md, back_office_configuration.md, languages.md, set_up_translation_siteaccess.md, configure_translations_management.md, install_quable.md (Synchronize taxonomy), rest_api_usage.md and subitems_list.md. No UI replacement is invented for any removed capability; whether these return as UI actions is an open product decision. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Applies the spec rule "a package-installation step or an on-disk secrets/environment step is removed". YAML blocks that document a setting's shape are kept; only the prose that names a file to open is reframed to name the configuration key instead. Confirmed sites fixed: mcp_config.md (lexik_jwt_authentication.yaml and security.yaml), rest_responses.md (.env CORS_ALLOW_ORIGIN and nelmio_cors.yaml), connector_installation_configuration.md, fastly_io.md (.env variant of the variation handler), and a further ~15 pages found by a fresh grep of docs/ for `.env`, `config/packages`, `config/services` and `config/bundles.php`. Removed from multisite/site_factory/site_factory.md: - "Define domains", which was a Docker Compose, nginx vhost and /etc/hosts procedure for a dev environment. - "Disable Site Factory", which edited four config files and removed a dedicated database connection and cache pool. The page's own link to the removed section is gone. Left alone deliberately: administration/configuration/configuration.md, which the spec keeps and labels rather than rewriting, and YAML examples whose file paths are part of a setting's value. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
…ipeline PILL_CLASS_TO_EDITION still mapped pill--lts-update, pill--experience and pill--headless to "LTS Update", "Experience" and "Headless", and appended them to headings in LLM-facing output — an edition mechanism the conversion missed, found by both axes of the code review. Renames the map to PILL_CLASS_TO_CATEGORY and keeps only pill--new-feature and pill--first-release, which are live release-note categories that main.py still emits. Restores the PEP 8 blank-line gaps. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
matrixfield.md ended on a sentence promising an example that had been removed. search_criteria_and_sort_clauses.md was never stripped and had become the Search section's only entry-point card while still linking Legacy and Solr criterion handlers on GitHub, telling the reader to develop a custom Criterion, and documenting service-container tags. Reduced to the concepts a SaaS reader can use, including the Content and Location search distinction restated without the PHP method table, plus the REST custom Field Criterion section. search.md promised aggregations and embeddings without linking either and rendered a single card; it now links what it promises and lists the surviving reference trees. user_authentication.md is deleted. It documented chaining Symfony user providers, injecting a repository user through a PHP listener and editing config/packages/security.yaml — none of which a tenant can do. Both OAuth pages were already deleted on the same reasoning, and restoring identity-provider capability is out of scope. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Restates composer.json's description and keywords and the agent package's README in Cohesivo terms. The composer "name" field is left alone: it is the published package identity that consumers require, and renaming it would break them. Flattens the "### REST API" heading on 57 reference pages where it was the only child of "## Example" — a level left redundant when "### PHP" was cut. Verified beforehand that no page links to a "#example" or "#rest-api" anchor. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Fixes every finding from the two-axis review: Twig stripped from 9 pages and 98 tracked .twig files removed, console commands and on-disk configuration steps removed, the last edition mechanism cut from the llms.txt pipeline, the reader-visible defects the strip left repaired, and naming aligned. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
mnocon
marked this pull request as ready for review
September 8, 2026 11:45
mnocon
marked this pull request as draft
September 8, 2026 11:47
Summary
Errors per inputErrors in site/administration/admin_panel/admin_panel/index.html
Errors in site/administration/admin_panel/corporate_admin_panel/index.html
Errors in site/administration/admin_panel/languages_admin_panel/index.html
Errors in site/administration/admin_panel/roles_admin_panel/index.html
Errors in site/administration/admin_panel/segments_admin_panel/index.html
Errors in site/administration/admin_panel/system_information_admin_panel/index.html
Errors in site/administration/admin_panel/url_management_admin_panel/index.html
Errors in site/administration/admin_panel/users_admin_panel/index.html
Errors in site/administration/admin_panel/workflow_admin_panel/index.html
Errors in site/administration/administration/index.html
Errors in site/administration/back_office/back_office/index.html
Errors in site/administration/back_office/back_office_configuration/index.html
Errors in site/administration/back_office/configure_product_tour/index.html
Errors in site/administration/back_office/content_tree/index.html
Errors in site/administration/back_office/content_type_anchor_menu/index.html
Errors in site/administration/back_office/integrated_help/index.html
Errors in site/administration/back_office/product_tour/index.html
Errors in site/administration/back_office/subitems_list/index.html
Errors in site/administration/configuration/configuration/index.html
Errors in site/administration/configuration/dynamic_configuration/index.html
Errors in site/administration/content_organization/content_types/index.html
Errors in site/administration/content_organization/object_states/index.html
Errors in site/administration/content_organization/sections/index.html
Errors in site/administration/dashboard/configure_default_dashboard/index.html
Errors in site/administration/recent_activity/recent_activity/index.html
Errors in site/ai/ai/index.html
Errors in site/ai/ai_actions/ai_actions/index.html
Errors in site/ai/ai_actions/ai_actions_guide/index.html
Errors in site/ai/ai_actions/configure_ai_actions/index.html
Errors in site/ai/mcp/mcp/index.html
Errors in site/ai/mcp/mcp_config/index.html
Errors in site/ai/mcp/mcp_guide/index.html
Errors in site/ai/mcp/mcp_usage/index.html
Errors in site/api/api/index.html
Errors in site/api/rest_api/rest_api_authentication/index.html
Errors in site/api/rest_api/rest_api_usage/rest_api_usage/index.html
Errors in site/api/rest_api/rest_api_usage/rest_requests/index.html
Errors in site/api/rest_api/rest_api_usage/rest_responses/index.html
Errors in site/api/rest_api/rest_api_usage/testing_rest_api/index.html
Errors in site/content_management/field_types/field_type_reference/addressfield/index.html
Errors in site/content_management/field_types/field_type_reference/authorfield/index.html
Errors in site/content_management/field_types/field_type_reference/binaryfilefield/index.html
Errors in site/content_management/field_types/field_type_reference/checkboxfield/index.html
Errors in site/content_management/field_types/field_type_reference/contentqueryfield/index.html
Errors in site/content_management/field_types/field_type_reference/countryfield/index.html
Errors in site/content_management/field_types/field_type_reference/customergroupfield/index.html
Errors in site/content_management/field_types/field_type_reference/dateandtimefield/index.html
Errors in site/content_management/field_types/field_type_reference/floatfield/index.html
Errors in site/content_management/field_types/field_type_reference/isbnfield/index.html
Errors in site/content_management/field_types/field_type_reference/keywordfield/index.html
Errors in site/content_management/field_types/field_type_reference/maplocationfield/index.html
Errors in site/content_management/field_types/field_type_reference/mediafield/index.html
Errors in site/content_management/field_types/field_type_reference/pagefield/index.html
Errors in site/content_management/field_types/field_type_reference/productspecificationfield/index.html
Errors in site/content_management/field_types/field_type_reference/relationfield/index.html
Errors in site/content_management/field_types/field_type_reference/relationlistfield/index.html
Errors in site/content_management/field_types/field_type_reference/taxonomyentryfield/index.html
Errors in site/content_management/field_types/field_type_reference/userfield/index.html
Errors in site/content_management/field_types/field_types/index.html
Errors in site/getting_started/first_steps/index.html
Errors in site/getting_started/getting_started/index.html
Errors in site/multisite/translations_management/configure_translations_management/index.html
Errors in site/on_premise/index.html
Errors in site/product_catalog/add_remote_pim_support/index.html
Errors in site/product_catalog/attributes/date_and_time/index.html
Errors in site/product_catalog/attributes/symbol_attribute_type/index.html
Errors in site/product_catalog/catalogs/index.html
Errors in site/product_catalog/enable_purchasing_products/index.html
Errors in site/product_catalog/prices/index.html
Errors in site/product_catalog/product_catalog/index.html
Errors in site/product_catalog/product_catalog_configuration/index.html
Errors in site/product_catalog/product_catalog_guide/index.html
Errors in site/product_catalog/products/index.html
Errors in site/product_catalog/quable/configure_quable_connector/index.html
Errors in site/product_catalog/quable/install_quable/index.html
Errors in site/product_catalog/quable/quable/index.html
Errors in site/product_catalog/quable/quable_guide/index.html
Errors in site/product_guides/product_guides/index.html
Errors in site/qualifio/create_campaign/index.html
Errors in site/qualifio/integrate_ibexa_connect/index.html
Errors in site/qualifio/qualifio/index.html
Errors in site/recommendations/raptor_integration/connector_installation_configuration/index.html
Errors in site/recommendations/raptor_integration/raptor_connector/index.html
Errors in site/recommendations/raptor_integration/raptor_connector_guide/index.html
Errors in site/recommendations/raptor_integration/recommendation_blocks/index.html
Errors in site/release_notes/index.html
Errors in site/search/activity_log_search_reference/action_criterion/index.html
Errors in site/search/activity_log_search_reference/activity_log_criteria/index.html
Errors in site/search/activity_log_search_reference/activity_log_sort_clauses/index.html
Errors in site/search/activity_log_search_reference/logged_at_criterion/index.html
Errors in site/search/activity_log_search_reference/object_name_criterion/index.html
Errors in site/search/aggregation_reference/aggregation_reference/index.html
Errors in site/search/aggregation_reference/authorterm_aggregation/index.html
Errors in site/search/aggregation_reference/basepricestats_aggregation/index.html
Errors in site/search/aggregation_reference/checkboxterm_aggregation/index.html
Errors in site/search/aggregation_reference/contenttypegroupterm_aggregation/index.html
Errors in site/search/aggregation_reference/contenttypeterm_aggregation/index.html
Errors in site/search/aggregation_reference/countryterm_aggregation/index.html
Errors in site/search/aggregation_reference/custompricestats_aggregation/index.html
Errors in site/search/aggregation_reference/datemetadatarange_aggregation/index.html
Errors in site/search/aggregation_reference/daterange_aggregation/index.html
Errors in site/search/aggregation_reference/datetimerange_aggregation/index.html
Errors in site/search/aggregation_reference/floatrange_aggregation/index.html
Errors in site/search/aggregation_reference/floatstats_aggregation/index.html
Errors in site/search/aggregation_reference/integerrange_aggregation/index.html
Errors in site/search/aggregation_reference/integerstats_aggregation/index.html
Errors in site/search/aggregation_reference/keywordterm_aggregation/index.html
Errors in site/search/aggregation_reference/languageterm_aggregation/index.html
Errors in site/search/aggregation_reference/locationchildrenterm_aggregation/index.html
Errors in site/search/aggregation_reference/objectstateterm_aggregation/index.html
Errors in site/search/aggregation_reference/product_attribute_aggregations/index.html
Errors in site/search/aggregation_reference/productavailabilityterm_aggregation/index.html
Errors in site/search/aggregation_reference/productpricerange_aggregation/index.html
Errors in site/search/aggregation_reference/productstockrange_aggregation/index.html
Errors in site/search/aggregation_reference/producttypeterm_aggregation/index.html
Errors in site/search/aggregation_reference/rawrange_aggregation/index.html
Errors in site/search/aggregation_reference/rawstats_aggregation/index.html
Errors in site/search/aggregation_reference/rawterm_aggregation/index.html
Errors in site/search/aggregation_reference/sectionterm_aggregation/index.html
Errors in site/search/aggregation_reference/selectionterm_aggregation/index.html
Errors in site/search/aggregation_reference/subtreeterm_aggregation/index.html
Errors in site/search/aggregation_reference/taxonomyentryid_aggregation/index.html
Errors in site/search/aggregation_reference/timerange_aggregation/index.html
Errors in site/search/aggregation_reference/usermetadataterm_aggregation/index.html
Errors in site/search/aggregation_reference/visibilityterm_aggregation/index.html
Errors in site/search/ai_actions_search_reference/action_configuration_criteria/index.html
Errors in site/search/ai_actions_search_reference/action_configuration_sort_clauses/index.html
Errors in site/search/content_type_search_reference/content_type_sort_clauses/index.html
Errors in site/search/criteria_reference/ancestor_criterion/index.html
Errors in site/search/criteria_reference/baseprice_criterion/index.html
Errors in site/search/criteria_reference/catalogname_criterion/index.html
Errors in site/search/criteria_reference/colorattribute_criterion/index.html
Errors in site/search/criteria_reference/contentid_criterion/index.html
Errors in site/search/criteria_reference/contenttypeid_criterion/index.html
Errors in site/search/criteria_reference/contenttypeidentifier_criterion/index.html
Errors in site/search/criteria_reference/createdat_criterion/index.html
Errors in site/search/criteria_reference/currencycode_criterion/index.html
Errors in site/search/criteria_reference/customprice_criterion/index.html
Errors in site/search/criteria_reference/datetimeattributerange_criterion/index.html
Errors in site/search/criteria_reference/field_criterion/index.html
Errors in site/search/criteria_reference/fieldrelation_criterion/index.html
Errors in site/search/criteria_reference/floatattribute_criterion/index.html
Errors in site/search/criteria_reference/image_criterion/index.html
Errors in site/search/criteria_reference/imagedimensions_criterion/index.html
Errors in site/search/criteria_reference/imagemimetype_criterion/index.html
Errors in site/search/criteria_reference/imagewidth_criterion/index.html
Errors in site/search/criteria_reference/integerattribute_criterion/index.html
Errors in site/search/criteria_reference/integerattributerange_criterion/index.html
Errors in site/search/criteria_reference/isbookmarked_criterion/index.html
Errors in site/search/criteria_reference/iscontainer_criterion/index.html
Errors in site/search/criteria_reference/isfieldempty_criterion/index.html
Errors in site/search/criteria_reference/ismainlocation_criterion/index.html
Errors in site/search/criteria_reference/isproductbased_criterion/index.html
Errors in site/search/criteria_reference/isuserbased_criterion/index.html
Errors in site/search/criteria_reference/isuserenabled_criterion/index.html
Errors in site/search/criteria_reference/isvirtual_criterion/index.html
Errors in site/search/criteria_reference/locationid_criterion/index.html
Errors in site/search/criteria_reference/logicaland_criterion/index.html
Errors in site/search/criteria_reference/logicalnot_criterion/index.html
Errors in site/search/criteria_reference/matchall_criterion/index.html
Errors in site/search/criteria_reference/notification_search_criteria/index.html
Errors in site/search/criteria_reference/objectstateidentifier_criterion/index.html
Errors in site/search/criteria_reference/price_currency_criterion/index.html
Errors in site/search/criteria_reference/price_customergroup_criterion/index.html
Errors in site/search/criteria_reference/price_logicaland_criterion/index.html
Errors in site/search/criteria_reference/price_logicalor_criterion/index.html
Errors in site/search/criteria_reference/priority_criterion/index.html
Errors in site/search/criteria_reference/productavailability_criterion/index.html
Errors in site/search/criteria_reference/productcategory_criterion/index.html
Errors in site/search/criteria_reference/productcategorysubtree_criterion/index.html
Errors in site/search/criteria_reference/productcode_criterion/index.html
Errors in site/search/criteria_reference/productstock_criterion/index.html
Errors in site/search/criteria_reference/productstockrange_criterion/index.html
Errors in site/search/criteria_reference/rangemeasurementattributemaximum_criterion/index.html
Errors in site/search/criteria_reference/remoteid_criterion/index.html
Errors in site/search/criteria_reference/search_criteria_reference/index.html
Errors in site/search/criteria_reference/sectionidentifier_criterion/index.html
Errors in site/search/criteria_reference/sibling_criterion/index.html
Errors in site/search/criteria_reference/simplemeasurementattribute_criterion/index.html
Errors in site/search/criteria_reference/symbolattribute_criterion/index.html
Errors in site/search/criteria_reference/taxonomy_subtree/index.html
Errors in site/search/criteria_reference/updated_at_range_criterion/index.html
Errors in site/search/criteria_reference/userid_criterion/index.html
Errors in site/search/criteria_reference/usermetadata_criterion/index.html
Errors in site/search/search/index.html
Errors in site/search/search_criteria_and_sort_clauses/index.html
Errors in site/search/search_in_trash_reference/index.html
Errors in site/search/sort_clause_reference/baseprice_sort_clause/index.html
Errors in site/search/sort_clause_reference/contentid_sort_clause/index.html
Errors in site/search/sort_clause_reference/contentname_sort_clause/index.html
Errors in site/search/sort_clause_reference/contenttranslatedname_sort_clause/index.html
Errors in site/search/sort_clause_reference/contenttypename_sort_clause/index.html
Errors in site/search/sort_clause_reference/createdat_sort_clause/index.html
Errors in site/search/sort_clause_reference/customfield_sort_clause/index.html
Errors in site/search/sort_clause_reference/customprice_sort_clause/index.html
Errors in site/search/sort_clause_reference/datemodified_sort_clause/index.html
Errors in site/search/sort_clause_reference/datepublished_sort_clause/index.html
Errors in site/search/sort_clause_reference/datetrashed_sort_clause/index.html
Errors in site/search/sort_clause_reference/depth_sort_clause/index.html
Errors in site/search/sort_clause_reference/field_sort_clause/index.html
Errors in site/search/sort_clause_reference/id_sort_clause/index.html
Errors in site/search/sort_clause_reference/ismainlocation_sort_clause/index.html
Errors in site/search/sort_clause_reference/maplocationdistance_sort_clause/index.html
Errors in site/search/sort_clause_reference/path_sort_clause/index.html
Errors in site/search/sort_clause_reference/priority_sort_clause/index.html
Errors in site/search/sort_clause_reference/product_sort_clauses/index.html
Errors in site/search/sort_clause_reference/productavailability_sort_clause/index.html
Errors in site/search/sort_clause_reference/productcode_sort_clause/index.html
Errors in site/search/sort_clause_reference/productname_sort_clause/index.html
Errors in site/search/sort_clause_reference/random_sort_clause/index.html
Errors in site/search/sort_clause_reference/score_sort_clause/index.html
Errors in site/search/sort_clause_reference/sectionidentifier_sort_clause/index.html
Errors in site/search/sort_clause_reference/sectionname_sort_clause/index.html
Errors in site/search/sort_clause_reference/sort_clause_reference/index.html
Errors in site/search/sort_clause_reference/userlogin_sort_clause/index.html
Errors in site/search/sort_clause_reference/visibility_sort_clause/index.html
Errors in site/search/url_search_reference/id_url_sort_clause/index.html
Errors in site/search/url_search_reference/logicaland_url_criterion/index.html
Errors in site/search/url_search_reference/logicalnot_url_criterion/index.html
Errors in site/search/url_search_reference/logicalor_url_criterion/index.html
Errors in site/search/url_search_reference/matchall_url_criterion/index.html
Errors in site/search/url_search_reference/matchnone_url_criterion/index.html
Errors in site/search/url_search_reference/pattern_url_criterion/index.html
Errors in site/search/url_search_reference/sectionid_url_criterion/index.html
Errors in site/search/url_search_reference/sectionidentifier_url_criterion/index.html
Errors in site/search/url_search_reference/url_search_criteria/index.html
Errors in site/search/url_search_reference/url_search_sort_clauses/index.html
Errors in site/search/url_search_reference/url_url_sort_clause/index.html
Errors in site/search/url_search_reference/validity_url_criterion/index.html
Errors in site/search/url_search_reference/visibleonly_url_criterion/index.html
Errors in site/search_results/index.html
Errors in site/snippets/aggregation_arguments/index.html
Errors in site/snippets/forms_caution/index.html
Errors in site/snippets/page_block_cache_clear/index.html
Errors in site/snippets/simple_hash_value_caution/index.html
Errors in site/snippets/sort_direction/index.html
Errors in site/users/customer_groups/index.html
Errors in site/users/login_methods/index.html
Errors in site/users/passwords/index.html
Errors in site/users/update_basic_user_data/index.html
Errors in site/users/user_authentication/index.html
Errors in site/users/user_management_guide/index.html
Errors in site/users/user_registration/index.html
Errors in site/users/users/index.html
|
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.
NOT FOR REVIEW
Converts the developer documentation from Ibexa DXP on-premise to Cohesivo SaaS.
A Cohesivo reader has no server, no shell, no repository, no Composer, and no
ability to deploy a PHP class or a Twig template. Today's documentation tells
them to do all of those things. This branch removes what only makes sense for a
self-hosted, code-extended installation, strips PHP from what survives, and
drops the edition concept entirely.
Nothing is lost: the removed content is the on-premise documentation and
remains intact on the maintained on-premise branches. A single page here states
that an on-premise Cohesivo exists and links to it.
Scale
Roughly 230–250 of about 590 documentation pages are deleted and a further 250
or so are stripped, alongside about 3,700 generated and tooling files. Stated up
front so a pull request touching hundreds of pages is expected rather than
alarming.
How this is split
The worklist lives outside version control at
.scratch/cohesivo-saas-conversion/(spec at
spec.md, tickets atissues/NN-*.md), so ticket churn never appearsin a diff. Each ticket lands as its own draft pull request against this branch,
scoped to one theme, and leaves the site building in strict mode and link-clean.
Deletions land before edits, so no edit fixes a link into a page a later batch
removes.
Gates at every merge
PYTHONPATH=tools python -m mkdocs build --strictPYTHONPATH=tools python -m pytest -qticket and is emptied and deleted by 20
Baseline at branch point: strict build clean, 95 Python tests passing.
Accepted consequences
The same redirects remain live on the on-premise branches, which continue to
serve them.
reindexing. Whether those return as UI actions or background jobs is a product
decision tracked outside this conversion.
is separate work.
Out of scope
Authoring the on-premise documentation; rewriting SiteAccess pages as UI
documentation; specifying the add-on provisioning flow; authoring REST examples
for reference pages left without one; authoring real release notes.
🤖 Generated with Claude Code